aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore11
-rw-r--r--Documentation/DocBook/kgdb.tmpl20
-rw-r--r--Documentation/cciss.txt5
-rw-r--r--Documentation/cpusets.txt2
-rw-r--r--Documentation/feature-removal-schedule.txt9
-rw-r--r--Documentation/filesystems/ext4.txt12
-rw-r--r--Documentation/filesystems/sysfs-pci.txt1
-rw-r--r--Documentation/hwmon/sysfs-interface33
-rw-r--r--Documentation/kobject.txt2
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt2
-rw-r--r--Documentation/video4linux/CARDLIST.au08282
-rw-r--r--MAINTAINERS46
-rw-r--r--Makefile4
-rw-r--r--arch/alpha/Makefile1
-rw-r--r--arch/alpha/kernel/core_t2.c2
-rw-r--r--arch/alpha/kernel/pci.c17
-rw-r--r--arch/alpha/kernel/traps.c3
-rw-r--r--arch/arm/mach-pxa/ssp.c2
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c6
-rw-r--r--arch/blackfin/kernel/irqchip.c5
-rw-r--r--arch/blackfin/kernel/traps.c8
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c9
-rw-r--r--arch/blackfin/mach-bf533/boards/ezkit.c6
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c10
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c9
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c10
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c9
-rw-r--r--arch/ia64/Makefile1
-rw-r--r--arch/ia64/kernel/acpi.c9
-rw-r--r--arch/ia64/kernel/iosapic.c2
-rw-r--r--arch/ia64/kernel/perfmon.c10
-rw-r--r--arch/ia64/kernel/sal.c7
-rw-r--r--arch/ia64/kernel/setup.c3
-rw-r--r--arch/ia64/kvm/mmio.c3
-rw-r--r--arch/ia64/sn/kernel/sn2/sn2_smp.c2
-rw-r--r--arch/ia64/uv/kernel/setup.c12
-rw-r--r--arch/m68knommu/platform/coldfire/timers.c8
-rw-r--r--arch/mips/Makefile18
-rw-r--r--arch/mips/au1000/common/platform.c4
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig676
-rw-r--r--arch/mips/configs/tb0219_defconfig192
-rw-r--r--arch/mips/configs/tb0226_defconfig192
-rw-r--r--arch/mips/configs/tb0287_defconfig207
-rw-r--r--arch/mips/fw/arc/identify.c5
-rw-r--r--arch/mips/kernel/smp.c2
-rw-r--r--arch/mips/lasat/interrupt.c2
-rw-r--r--arch/mips/lasat/lasat_board.c13
-rw-r--r--arch/mips/lasat/sysctl.c172
-rw-r--r--arch/mips/lasat/sysctl.h24
-rw-r--r--arch/mips/mips-boards/generic/amon.c4
-rw-r--r--arch/mips/mips-boards/malta/Makefile3
-rw-r--r--arch/mips/mm/c-r4k.c33
-rw-r--r--arch/mips/mm/init.c1
-rw-r--r--arch/mips/mm/page.c2
-rw-r--r--arch/mips/nxp/pnx8550/jbs/board_setup.c11
-rw-r--r--arch/mips/nxp/pnx8550/stb810/board_setup.c10
-rw-r--r--arch/mips/pci/pci-sb1250.c8
-rw-r--r--arch/mips/pci/pci-vr41xx.c14
-rw-r--r--arch/mips/sibyte/swarm/Makefile4
-rw-r--r--arch/mn10300/kernel/process.c1
-rw-r--r--arch/mn10300/kernel/setup.c1
-rw-r--r--arch/parisc/hpux/gate.S3
-rw-r--r--arch/parisc/hpux/wrappers.S3
-rw-r--r--arch/parisc/kernel/entry.S3
-rw-r--r--arch/parisc/kernel/head.S1
-rw-r--r--arch/parisc/kernel/hpmc.S3
-rw-r--r--arch/parisc/kernel/pacache.S3
-rw-r--r--arch/parisc/kernel/parisc_ksyms.c3
-rw-r--r--arch/parisc/kernel/perf_asm.S2
-rw-r--r--arch/parisc/kernel/real2.S13
-rw-r--r--arch/parisc/kernel/signal32.c4
-rw-r--r--arch/parisc/kernel/syscall.S5
-rw-r--r--arch/parisc/kernel/vmlinux.lds.S1
-rw-r--r--arch/parisc/lib/fixup.S3
-rw-r--r--arch/parisc/lib/lusercopy.S5
-rw-r--r--arch/parisc/mm/init.c1
-rw-r--r--arch/powerpc/Makefile4
-rw-r--r--arch/powerpc/boot/Makefile2
-rw-r--r--arch/powerpc/boot/crtsavres.S233
-rw-r--r--arch/powerpc/boot/dts/mpc8377_rdb.dts8
-rw-r--r--arch/powerpc/boot/dts/mpc8378_rdb.dts8
-rw-r--r--arch/powerpc/boot/dts/mpc8379_rdb.dts8
-rw-r--r--arch/powerpc/boot/dts/mpc8548cds.dts4
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig155
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig162
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig146
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig150
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig157
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig150
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig146
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig146
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig146
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig224
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig140
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig168
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig133
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig210
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig135
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig150
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig210
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig137
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig131
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig135
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig152
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig147
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig146
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig146
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig146
-rw-r--r--arch/powerpc/configs/adder875_defconfig52
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig124
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig47
-rw-r--r--arch/powerpc/configs/g5_defconfig62
-rw-r--r--arch/powerpc/configs/linkstation_defconfig172
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig136
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig126
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig151
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig230
-rw-r--r--arch/powerpc/configs/mpc8610_hpcd_defconfig316
-rw-r--r--arch/powerpc/configs/mpc8641_hpcn_defconfig210
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig128
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig47
-rw-r--r--arch/powerpc/configs/ppc64_defconfig66
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig133
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig153
-rw-r--r--arch/powerpc/configs/sbc8641d_defconfig150
-rw-r--r--arch/powerpc/configs/storcenter_defconfig71
-rw-r--r--arch/powerpc/kernel/head_44x.S7
-rw-r--r--arch/powerpc/kernel/irq.c2
-rw-r--r--arch/powerpc/kernel/ppc_ksyms.c2
-rw-r--r--arch/powerpc/kernel/prom_init_check.sh14
-rw-r--r--arch/powerpc/kernel/vdso.c2
-rw-r--r--arch/powerpc/kvm/44x_tlb.c9
-rw-r--r--arch/powerpc/kvm/booke_guest.c33
-rw-r--r--arch/powerpc/kvm/emulate.c12
-rw-r--r--arch/powerpc/lib/Makefile2
-rw-r--r--arch/powerpc/lib/crtsavres.S229
-rw-r--r--arch/powerpc/mm/hash_low_64.S4
-rw-r--r--arch/powerpc/platforms/85xx/Kconfig1
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c44
-rw-r--r--arch/powerpc/platforms/cell/spufs/run.c21
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c19
-rw-r--r--arch/powerpc/platforms/pseries/eeh_driver.c11
-rw-r--r--arch/powerpc/platforms/pseries/nvram.c4
-rw-r--r--arch/powerpc/xmon/xmon.c1
-rw-r--r--arch/s390/Kconfig1
-rw-r--r--arch/s390/kernel/smp.c2
-rw-r--r--arch/s390/kvm/diag.c2
-rw-r--r--arch/s390/kvm/interrupt.c7
-rw-r--r--arch/s390/kvm/kvm-s390.c13
-rw-r--r--arch/s390/mm/pgtable.c44
-rw-r--r--arch/s390/mm/vmem.c2
-rw-r--r--arch/sh/Makefile2
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c41
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7763.c9
-rw-r--r--arch/um/os-Linux/start_up.c25
-rw-r--r--arch/um/os-Linux/sys-i386/registers.c4
-rw-r--r--arch/x86/Kconfig5
-rw-r--r--arch/x86/boot/a20.c3
-rw-r--r--arch/x86/kernel/Makefile1
-rw-r--r--arch/x86/kernel/entry_32.S1
-rw-r--r--arch/x86/kernel/geode_32.c5
-rw-r--r--arch/x86/kernel/head_32.S2
-rw-r--r--arch/x86/kernel/io_apic_32.c12
-rw-r--r--arch/x86/kernel/kvmclock.c89
-rw-r--r--arch/x86/kernel/mfgpt_32.c2
-rw-r--r--arch/x86/kernel/nmi_32.c9
-rw-r--r--arch/x86/kernel/pci-dma.c14
-rw-r--r--arch/x86/kernel/process_32.c1
-rw-r--r--arch/x86/kernel/process_64.c1
-rw-r--r--arch/x86/kernel/pvclock.c141
-rw-r--r--arch/x86/kernel/rtc.c34
-rw-r--r--arch/x86/kernel/setup_32.c10
-rw-r--r--arch/x86/kernel/traps_32.c1
-rw-r--r--arch/x86/kernel/tsc_32.c18
-rw-r--r--arch/x86/kvm/i8254.c23
-rw-r--r--arch/x86/kvm/irq.c6
-rw-r--r--arch/x86/kvm/irq.h2
-rw-r--r--arch/x86/kvm/lapic.c1
-rw-r--r--arch/x86/kvm/mmu.c22
-rw-r--r--arch/x86/kvm/paging_tmpl.h2
-rw-r--r--arch/x86/kvm/svm.c2
-rw-r--r--arch/x86/kvm/vmx.c22
-rw-r--r--arch/x86/kvm/x86.c93
-rw-r--r--arch/x86/kvm/x86_emulate.c3
-rw-r--r--arch/x86/lib/copy_user_64.S25
-rw-r--r--arch/x86/lib/copy_user_nocache_64.S25
-rw-r--r--arch/x86/mm/fault.c5
-rw-r--r--arch/x86/mm/srat_64.c27
-rw-r--r--arch/x86/pci/common.c8
-rw-r--r--arch/x86/xen/Kconfig3
-rw-r--r--arch/x86/xen/enlighten.c56
-rw-r--r--arch/x86/xen/mmu.c75
-rw-r--r--arch/x86/xen/mmu.h24
-rw-r--r--arch/x86/xen/time.c145
-rw-r--r--arch/x86/xen/xen-head.S6
-rw-r--r--block/blktrace.c10
-rw-r--r--block/genhd.c2
-rw-r--r--drivers/acpi/ac.c8
-rw-r--r--drivers/acpi/bay.c19
-rw-r--r--drivers/acpi/dispatcher/dsfield.c5
-rw-r--r--drivers/acpi/dock.c5
-rw-r--r--drivers/acpi/ec.c2
-rw-r--r--drivers/acpi/executer/exconfig.c10
-rw-r--r--drivers/acpi/glue.c9
-rw-r--r--drivers/acpi/hardware/hwsleep.c8
-rw-r--r--drivers/acpi/numa.c31
-rw-r--r--drivers/acpi/parser/psargs.c4
-rw-r--r--drivers/acpi/processor_core.c1
-rw-r--r--drivers/acpi/processor_idle.c13
-rw-r--r--drivers/acpi/sleep/proc.c6
-rw-r--r--drivers/acpi/system.c15
-rw-r--r--drivers/acpi/tables/tbinstal.c25
-rw-r--r--drivers/acpi/tables/tbxface.c2
-rw-r--r--drivers/acpi/thermal.c11
-rw-r--r--drivers/acpi/utilities/utmisc.c2
-rw-r--r--drivers/acpi/video.c3
-rw-r--r--drivers/ata/Kconfig10
-rw-r--r--drivers/ata/ahci.c160
-rw-r--r--drivers/ata/ata_piix.c7
-rw-r--r--drivers/ata/libata-core.c4
-rw-r--r--drivers/ata/libata-scsi.c16
-rw-r--r--drivers/ata/libata.h2
-rw-r--r--drivers/ata/pata_pcmcia.c2
-rw-r--r--drivers/ata/sata_mv.c21
-rw-r--r--drivers/atm/eni.h1
-rw-r--r--drivers/atm/he.c11
-rw-r--r--drivers/atm/he.h13
-rw-r--r--drivers/atm/iphase.c27
-rw-r--r--drivers/base/core.c1
-rw-r--r--drivers/block/cciss.c21
-rw-r--r--drivers/char/Kconfig8
-rw-r--r--drivers/char/agp/agp.h6
-rw-r--r--drivers/char/agp/alpha-agp.c4
-rw-r--r--drivers/char/agp/amd-k7-agp.c4
-rw-r--r--drivers/char/agp/amd64-agp.c4
-rw-r--r--drivers/char/agp/ati-agp.c8
-rw-r--r--drivers/char/agp/backend.c16
-rw-r--r--drivers/char/agp/compat_ioctl.c2
-rw-r--r--drivers/char/agp/efficeon-agp.c6
-rw-r--r--drivers/char/agp/frontend.c12
-rw-r--r--drivers/char/agp/generic.c35
-rw-r--r--drivers/char/agp/hp-agp.c6
-rw-r--r--drivers/char/agp/i460-agp.c2
-rw-r--r--drivers/char/agp/intel-agp.c239
-rw-r--r--drivers/char/agp/nvidia-agp.c4
-rw-r--r--drivers/char/agp/parisc-agp.c6
-rw-r--r--drivers/char/agp/sgi-agp.c8
-rw-r--r--drivers/char/agp/sworks-agp.c6
-rw-r--r--drivers/char/agp/uninorth-agp.c10
-rw-r--r--drivers/char/agp/via-agp.c13
-rw-r--r--drivers/char/drm/ati_pcigart.c8
-rw-r--r--drivers/char/drm/drm.h2
-rw-r--r--drivers/char/drm/drm_drv.c7
-rw-r--r--drivers/char/drm/drm_pciids.h17
-rw-r--r--drivers/char/drm/i915_drv.c1
-rw-r--r--drivers/char/drm/i915_drv.h11
-rw-r--r--drivers/char/drm/r300_cmdbuf.c117
-rw-r--r--drivers/char/drm/r300_reg.h242
-rw-r--r--drivers/char/drm/radeon_cp.c1148
-rw-r--r--drivers/char/drm/radeon_drm.h8
-rw-r--r--drivers/char/drm/radeon_drv.h251
-rw-r--r--drivers/char/drm/radeon_irq.c2
-rw-r--r--drivers/char/drm/radeon_microcode.h1844
-rw-r--r--drivers/char/drm/radeon_state.c17
-rw-r--r--drivers/char/generic_nvram.c2
-rw-r--r--drivers/char/hw_random/intel-rng.c2
-rw-r--r--drivers/char/keyboard.c7
-rw-r--r--drivers/char/tty_ioctl.c7
-rw-r--r--drivers/cpufreq/cpufreq.c2
-rw-r--r--drivers/cpuidle/cpuidle.c40
-rw-r--r--drivers/firewire/Kconfig32
-rw-r--r--drivers/firewire/fw-cdev.c9
-rw-r--r--drivers/firewire/fw-ohci.c110
-rw-r--r--drivers/firewire/fw-sbp2.c3
-rw-r--r--drivers/firewire/fw-transaction.c52
-rw-r--r--drivers/hwmon/abituguru3.c18
-rw-r--r--drivers/hwmon/adt7473.c3
-rw-r--r--drivers/hwmon/lm75.c20
-rw-r--r--drivers/hwmon/lm85.c25
-rw-r--r--drivers/ide/Kconfig8
-rw-r--r--drivers/ide/arm/Makefile1
-rw-r--r--drivers/ide/arm/bast-ide.c89
-rw-r--r--drivers/ide/arm/ide_arm.c1
-rw-r--r--drivers/ide/arm/palm_bk3710.c25
-rw-r--r--drivers/ide/ide-generic.c10
-rw-r--r--drivers/ide/ide-pnp.c1
-rw-r--r--drivers/ide/ide-probe.c6
-rw-r--r--drivers/ide/ide-proc.c1
-rw-r--r--drivers/ide/ide-taskfile.c6
-rw-r--r--drivers/ide/legacy/buddha.c2
-rw-r--r--drivers/ide/legacy/falconide.c2
-rw-r--r--drivers/ide/legacy/gayle.c6
-rw-r--r--drivers/ide/legacy/ide-cs.c44
-rw-r--r--drivers/ide/legacy/macide.c2
-rw-r--r--drivers/ide/legacy/q40ide.c2
-rw-r--r--drivers/ide/pci/cmd640.c2
-rw-r--r--drivers/ide/pci/delkin_cb.c28
-rw-r--r--drivers/ide/pci/opti621.c221
-rw-r--r--drivers/ide/pci/sis5513.c5
-rw-r--r--drivers/ide/ppc/mpc8xx.c4
-rw-r--r--drivers/ide/ppc/pmac.c60
-rw-r--r--drivers/ieee1394/Kconfig118
-rw-r--r--drivers/infiniband/core/umem.c2
-rw-r--r--drivers/infiniband/core/uverbs_main.c2
-rw-r--r--drivers/infiniband/hw/amso1100/c2_rnic.c3
-rw-r--r--drivers/infiniband/hw/mthca/mthca_memfree.c6
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c4
-rw-r--r--drivers/input/misc/Kconfig1
-rw-r--r--drivers/input/mouse/appletouch.c49
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h7
-rw-r--r--drivers/input/serio/i8042.c8
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c1
-rw-r--r--drivers/isdn/hardware/eicon/divasproc.c4
-rw-r--r--drivers/isdn/hysdn/hysdn_procconf.c29
-rw-r--r--drivers/isdn/sc/ioctl.c1
-rw-r--r--drivers/lguest/x86/core.c15
-rw-r--r--drivers/macintosh/mediabay.c7
-rw-r--r--drivers/macintosh/smu.c5
-rw-r--r--drivers/macintosh/therm_adt746x.c13
-rw-r--r--drivers/media/common/ir-keymaps.c38
-rw-r--r--drivers/media/common/tuners/tda18271-common.c10
-rw-r--r--drivers/media/common/tuners/tda18271-fe.c53
-rw-r--r--drivers/media/common/tuners/xc5000.c30
-rw-r--r--drivers/media/common/tuners/xc5000_priv.h1
-rw-r--r--drivers/media/dvb/dvb-usb/gl861.c27
-rw-r--r--drivers/media/dvb/dvb-usb/umt-010.c2
-rw-r--r--drivers/media/dvb/frontends/au8522.c29
-rw-r--r--drivers/media/dvb/frontends/stv0299.c15
-rw-r--r--drivers/media/dvb/frontends/tda10023.c20
-rw-r--r--drivers/media/dvb/frontends/tda1004x.c29
-rw-r--r--drivers/media/dvb/ttpci/Kconfig1
-rw-r--r--drivers/media/dvb/ttpci/av7110_hw.c5
-rw-r--r--drivers/media/video/au0828/au0828-cards.c18
-rw-r--r--drivers/media/video/cx18/Kconfig4
-rw-r--r--drivers/media/video/cx18/cx18-av-core.c73
-rw-r--r--drivers/media/video/cx18/cx18-av-core.h16
-rw-r--r--drivers/media/video/cx18/cx18-cards.c84
-rw-r--r--drivers/media/video/cx18/cx18-cards.h50
-rw-r--r--drivers/media/video/cx18/cx18-dvb.c17
-rw-r--r--drivers/media/video/cx18/cx18-gpio.c26
-rw-r--r--drivers/media/video/cx18/cx18-gpio.h1
-rw-r--r--drivers/media/video/cx18/cx18-i2c.c2
-rw-r--r--drivers/media/video/cx25840/cx25840-core.c2
-rw-r--r--drivers/media/video/cx88/cx88-alsa.c6
-rw-r--r--drivers/media/video/em28xx/em28xx-audio.c18
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c4
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c10
-rw-r--r--drivers/media/video/em28xx/em28xx-reg.h1
-rw-r--r--drivers/media/video/em28xx/em28xx-video.c24
-rw-r--r--drivers/media/video/pxa_camera.c4
-rw-r--r--drivers/media/video/saa7134/saa7134-alsa.c8
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c56
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c43
-rw-r--r--drivers/media/video/saa7134/saa7134-empress.c37
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c9
-rw-r--r--drivers/media/video/soc_camera.c16
-rw-r--r--drivers/media/video/videodev.c245
-rw-r--r--drivers/media/video/vivi.c7
-rw-r--r--drivers/misc/thinkpad_acpi.c494
-rw-r--r--drivers/mmc/host/wbsd.c21
-rw-r--r--drivers/net/7990.c6
-rw-r--r--drivers/net/atlx/atl1.c18
-rw-r--r--drivers/net/bnx2.c9
-rw-r--r--drivers/net/bnx2.h1
-rw-r--r--drivers/net/bnx2x.c5
-rw-r--r--drivers/net/bnx2x.h3
-rw-r--r--drivers/net/bnx2x_init.h3
-rw-r--r--drivers/net/ehea/ehea_main.c19
-rw-r--r--drivers/net/enc28j60.c87
-rw-r--r--drivers/net/fec_mpc52xx.c2
-rw-r--r--drivers/net/forcedeth.c20
-rw-r--r--drivers/net/hamradio/baycom_epp.c2
-rw-r--r--drivers/net/ibm_newemac/Kconfig1
-rw-r--r--drivers/net/ipg.c4
-rw-r--r--drivers/net/irda/Kconfig1
-rw-r--r--drivers/net/ixgbe/ixgbe_82598.c4
-rw-r--r--drivers/net/netxen/netxen_nic.h18
-rw-r--r--drivers/net/netxen/netxen_nic_ethtool.c6
-rw-r--r--drivers/net/netxen/netxen_nic_hw.c112
-rw-r--r--drivers/net/netxen/netxen_nic_init.c46
-rw-r--r--drivers/net/netxen/netxen_nic_isr.c4
-rw-r--r--drivers/net/netxen/netxen_nic_main.c133
-rw-r--r--drivers/net/netxen/netxen_nic_niu.c22
-rw-r--r--drivers/net/pppoe.c37
-rw-r--r--drivers/net/pppol2tp.c20
-rw-r--r--drivers/net/r6040.c2
-rw-r--r--drivers/net/sfc/falcon.c4
-rw-r--r--drivers/net/sky2.c3
-rw-r--r--drivers/net/smc911x.c24
-rw-r--r--drivers/net/smc91x.c17
-rw-r--r--drivers/net/smc91x.h8
-rw-r--r--drivers/net/tg3.c33
-rw-r--r--drivers/net/tulip/tulip_core.c2
-rw-r--r--drivers/net/tun.c15
-rw-r--r--drivers/net/usb/kaweth.c2
-rw-r--r--drivers/net/virtio_net.c52
-rw-r--r--drivers/net/wireless/b43/b43.h1
-rw-r--r--drivers/net/wireless/b43/dma.c65
-rw-r--r--drivers/net/wireless/b43/main.c16
-rw-r--r--drivers/net/wireless/hostap/hostap_main.c8
-rw-r--r--drivers/net/wireless/ipw2200.c176
-rw-r--r--drivers/net/wireless/ipw2200.h6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-led.c5
-rw-r--r--drivers/net/wireless/libertas/cmd.c5
-rw-r--r--drivers/net/wireless/libertas/main.c2
-rw-r--r--drivers/net/wireless/rt2x00/Kconfig19
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00pci.c3
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00usb.c6
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c1
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c2
-rw-r--r--drivers/pci/pci-driver.c2
-rw-r--r--drivers/pci/pci-sysfs.c85
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c46
-rw-r--r--drivers/power/power_supply_sysfs.c2
-rw-r--r--drivers/rtc/Kconfig11
-rw-r--r--drivers/rtc/Makefile3
-rw-r--r--drivers/rtc/rtc-at32ap700x.c7
-rw-r--r--drivers/rtc/rtc-cmos.c31
-rw-r--r--drivers/rtc/rtc-fm3130.c501
-rw-r--r--drivers/s390/char/sclp_vt220.c1
-rw-r--r--drivers/s390/char/tape_3590.c2
-rw-r--r--drivers/s390/cio/blacklist.c6
-rw-r--r--drivers/s390/cio/cio.c20
-rw-r--r--drivers/s390/net/qeth_core_main.c49
-rw-r--r--drivers/s390/net/qeth_core_offl.c6
-rw-r--r--drivers/s390/net/qeth_core_sys.c12
-rw-r--r--drivers/s390/net/qeth_l2_main.c41
-rw-r--r--drivers/s390/net/qeth_l3_main.c75
-rw-r--r--drivers/s390/net/qeth_l3_sys.c24
-rw-r--r--drivers/s390/s390mach.c1
-rw-r--r--drivers/scsi/dpt/dptsig.h3
-rw-r--r--drivers/scsi/hosts.c9
-rw-r--r--drivers/scsi/sr.c3
-rw-r--r--drivers/serial/bfin_5xx.c80
-rw-r--r--drivers/ssb/main.c12
-rw-r--r--drivers/thermal/Kconfig9
-rw-r--r--drivers/thermal/thermal_sys.c4
-rw-r--r--drivers/usb/core/hub.c46
-rw-r--r--drivers/usb/core/quirks.c3
-rw-r--r--drivers/usb/host/Kconfig8
-rw-r--r--drivers/usb/host/isp1760-hcd.c8
-rw-r--r--drivers/usb/misc/Kconfig1
-rw-r--r--drivers/usb/misc/isight_firmware.c23
-rw-r--r--drivers/video/cirrusfb.c6
-rw-r--r--drivers/video/fsl-diu-fb.c4
-rw-r--r--drivers/video/hgafb.c26
-rw-r--r--drivers/video/leo.c58
-rw-r--r--drivers/video/pxafb.c6
-rw-r--r--drivers/virtio/virtio.c2
-rw-r--r--drivers/watchdog/hpwdt.c182
-rw-r--r--drivers/xen/events.c2
-rw-r--r--fs/binfmt_elf.c3
-rw-r--r--fs/block_dev.c10
-rw-r--r--fs/cifs/CHANGES5
-rw-r--r--fs/cifs/cifsfs.c21
-rw-r--r--fs/cifs/cifsglob.h3
-rw-r--r--fs/cifs/cifspdu.h23
-rw-r--r--fs/cifs/cifssmb.c6
-rw-r--r--fs/cifs/connect.c5
-rw-r--r--fs/cifs/dir.c4
-rw-r--r--fs/cifs/file.c7
-rw-r--r--fs/cifs/inode.c148
-rw-r--r--fs/cifs/misc.c3
-rw-r--r--fs/cifs/readdir.c77
-rw-r--r--fs/dcache.c68
-rw-r--r--fs/exec.c8
-rw-r--r--fs/ext4/balloc.c71
-rw-r--r--fs/ext4/mballoc.c8
-rw-r--r--fs/ext4/resize.c6
-rw-r--r--fs/ext4/super.c36
-rw-r--r--fs/fat/file.c44
-rw-r--r--fs/fuse/inode.c4
-rw-r--r--fs/gfs2/bmap.c23
-rw-r--r--fs/gfs2/rgrp.c2
-rw-r--r--fs/jbd2/commit.c1
-rw-r--r--fs/jbd2/recovery.c12
-rw-r--r--fs/locks.c6
-rw-r--r--fs/namei.c26
-rw-r--r--fs/nfs/mount_clnt.c5
-rw-r--r--fs/nfs/super.c76
-rw-r--r--fs/nfs/write.c7
-rw-r--r--fs/ocfs2/cluster/nodemanager.c74
-rw-r--r--fs/ocfs2/cluster/nodemanager.h4
-rw-r--r--fs/ocfs2/stack_o2cb.c41
-rw-r--r--fs/ocfs2/stack_user.c3
-rw-r--r--fs/ocfs2/stackglue.c119
-rw-r--r--fs/ocfs2/stackglue.h19
-rw-r--r--fs/pipe.c10
-rw-r--r--fs/proc/task_mmu.c83
-rw-r--r--fs/select.c2
-rw-r--r--fs/udf/super.c57
-rw-r--r--fs/udf/udfdecl.h2
-rw-r--r--fs/utimes.c59
-rw-r--r--include/acpi/processor.h1
-rw-r--r--include/asm-alpha/core_mcpcia.h2
-rw-r--r--include/asm-alpha/core_t2.h14
-rw-r--r--include/asm-alpha/io.h6
-rw-r--r--include/asm-alpha/mmu_context.h6
-rw-r--r--include/asm-alpha/percpu.h74
-rw-r--r--include/asm-alpha/system.h10
-rw-r--r--include/asm-alpha/vga.h6
-rw-r--r--include/asm-arm/arch-pxa/regs-lcd.h5
-rw-r--r--include/asm-blackfin/mach-bf527/bfin_serial_5xx.h8
-rw-r--r--include/asm-blackfin/mach-bf533/bfin_serial_5xx.h8
-rw-r--r--include/asm-blackfin/mach-bf537/bfin_serial_5xx.h8
-rw-r--r--include/asm-blackfin/mach-bf548/bfin_serial_5xx.h12
-rw-r--r--include/asm-blackfin/mach-bf561/bfin_serial_5xx.h8
-rw-r--r--include/asm-generic/Kbuild.asm2
-rw-r--r--include/asm-ia64/sn/simulator.h7
-rw-r--r--include/asm-m68k/bitops.h45
-rw-r--r--include/asm-mips/cpu-info.h4
-rw-r--r--include/asm-mips/gic.h4
-rw-r--r--include/asm-mips/lasat/serial.h4
-rw-r--r--include/asm-mips/mach-au1x00/au1000.h1
-rw-r--r--include/asm-mips/pgtable-bits.h2
-rw-r--r--include/asm-parisc/checksum.h2
-rw-r--r--include/asm-powerpc/Kbuild1
-rw-r--r--include/asm-powerpc/kvm_ppc.h1
-rw-r--r--include/asm-powerpc/mediabay.h12
-rw-r--r--include/asm-powerpc/spu.h1
-rw-r--r--include/asm-powerpc/spu_csa.h2
-rw-r--r--include/asm-powerpc/system.h2
-rw-r--r--include/asm-s390/system.h8
-rw-r--r--include/asm-x86/geode.h4
-rw-r--r--include/asm-x86/kvm_host.h4
-rw-r--r--include/asm-x86/kvm_para.h18
-rw-r--r--include/asm-x86/page_32.h3
-rw-r--r--include/asm-x86/pvclock-abi.h42
-rw-r--r--include/asm-x86/pvclock.h13
-rw-r--r--include/asm-x86/xen/page.h4
-rw-r--r--include/linux/Kbuild3
-rw-r--r--include/linux/a.out.h8
-rw-r--r--include/linux/agp_backend.h16
-rw-r--r--include/linux/agpgart.h4
-rw-r--r--include/linux/audit.h2
-rw-r--r--include/linux/bootmem.h2
-rw-r--r--include/linux/cpuidle.h1
-rw-r--r--include/linux/dcache.h2
-rw-r--r--include/linux/fs.h2
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/if_tunnel.h2
-rw-r--r--include/linux/ioport.h6
-rw-r--r--include/linux/ipv6.h4
-rw-r--r--include/linux/jbd2.h3
-rw-r--r--include/linux/kvm_host.h3
-rw-r--r--include/linux/math64.h21
-rw-r--r--include/linux/mm.h17
-rw-r--r--include/linux/msdos_fs.h12
-rw-r--r--include/linux/page-flags.h24
-rw-r--r--include/linux/pci.h1
-rw-r--r--include/linux/pci_ids.h1
-rw-r--r--include/linux/proc_fs.h4
-rw-r--r--include/linux/rtnetlink.h1
-rw-r--r--include/linux/sched.h13
-rw-r--r--include/linux/ssb/ssb_driver_gige.h2
-rw-r--r--include/linux/tcp.h7
-rw-r--r--include/linux/thermal.h6
-rw-r--r--include/linux/time.h16
-rw-r--r--include/linux/tty_driver.h5
-rw-r--r--include/linux/virtio_net.h2
-rw-r--r--include/media/cx25840.h6
-rw-r--r--include/media/ir-common.h1
-rw-r--r--include/media/v4l2-dev.h4
-rw-r--r--include/net/inet_sock.h10
-rw-r--r--include/net/ipv6.h6
-rw-r--r--include/net/net_namespace.h11
-rw-r--r--include/net/netfilter/nf_conntrack_extend.h1
-rw-r--r--include/net/request_sock.h4
-rw-r--r--include/net/tcp.h2
-rw-r--r--include/rdma/ib_verbs.h1
-rw-r--r--include/xen/interface/xen.h7
-rw-r--r--ipc/shm.c18
-rw-r--r--kernel/audit.c6
-rw-r--r--kernel/auditfilter.c3
-rw-r--r--kernel/cpuset.c10
-rw-r--r--kernel/futex.c93
-rw-r--r--kernel/kgdb.c3
-rw-r--r--kernel/kprobes.c15
-rw-r--r--kernel/rcupreempt.c2
-rw-r--r--kernel/sched.c70
-rw-r--r--kernel/sched_rt.c66
-rw-r--r--kernel/sched_stats.h6
-rw-r--r--kernel/softlockup.c15
-rw-r--r--lib/div64.c10
-rw-r--r--lib/radix-tree.c120
-rw-r--r--mm/bootmem.c6
-rw-r--r--mm/memory.c67
-rw-r--r--mm/migrate.c10
-rw-r--r--mm/nommu.c21
-rw-r--r--mm/page_alloc.c34
-rw-r--r--mm/pagewalk.c42
-rw-r--r--mm/slab.c5
-rw-r--r--mm/vmscan.c2
-rw-r--r--net/atm/br2684.c78
-rw-r--r--net/core/dev.c38
-rw-r--r--net/core/net_namespace.c3
-rw-r--r--net/dccp/ackvec.c29
-rw-r--r--net/dccp/ccids/ccid3.c14
-rw-r--r--net/dccp/ccids/lib/tfrc.c8
-rw-r--r--net/dccp/ccids/lib/tfrc.h25
-rw-r--r--net/dccp/ccids/lib/tfrc_equation.c8
-rw-r--r--net/dccp/ipv4.c3
-rw-r--r--net/dccp/ipv6.c1
-rw-r--r--net/dccp/minisocks.c8
-rw-r--r--net/dccp/options.c4
-rw-r--r--net/dccp/output.c2
-rw-r--r--net/dccp/probe.c2
-rw-r--r--net/ipv4/fib_semantics.c5
-rw-r--r--net/ipv4/inet_connection_sock.c11
-rw-r--r--net/ipv4/netfilter/nf_nat_core.c3
-rw-r--r--net/ipv4/raw.c2
-rw-r--r--net/ipv4/syncookies.c3
-rw-r--r--net/ipv4/tcp.c18
-rw-r--r--net/ipv4/tcp_input.c45
-rw-r--r--net/ipv4/tcp_ipv4.c14
-rw-r--r--net/ipv4/tcp_minisocks.c32
-rw-r--r--net/ipv4/tcp_timer.c5
-rw-r--r--net/ipv4/xfrm4_mode_tunnel.c2
-rw-r--r--net/ipv6/af_inet6.c2
-rw-r--r--net/ipv6/datagram.c5
-rw-r--r--net/ipv6/ip6_input.c9
-rw-r--r--net/ipv6/ipv6_sockglue.c23
-rw-r--r--net/ipv6/raw.c4
-rw-r--r--net/ipv6/route.c8
-rw-r--r--net/ipv6/sit.c44
-rw-r--r--net/ipv6/syncookies.c1
-rw-r--r--net/ipv6/tcp_ipv6.c1
-rw-r--r--net/key/af_key.c3
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/mac80211/main.c1
-rw-r--r--net/mac80211/mlme.c18
-rw-r--r--net/mac80211/tx.c13
-rw-r--r--net/mac80211/wext.c18
-rw-r--r--net/mac80211/wme.c2
-rw-r--r--net/netfilter/nf_conntrack_core.c3
-rw-r--r--net/netfilter/nf_conntrack_extend.c9
-rw-r--r--net/netfilter/nf_conntrack_h323_main.c22
-rw-r--r--net/netfilter/nf_log.c4
-rw-r--r--net/netlink/genetlink.c15
-rw-r--r--net/sched/sch_htb.c23
-rw-r--r--net/sctp/associola.c13
-rw-r--r--net/sctp/protocol.c15
-rw-r--r--net/sctp/socket.c4
-rw-r--r--net/unix/af_unix.c79
-rw-r--r--scripts/mod/modpost.c25
-rw-r--r--security/dummy.c24
-rw-r--r--sound/isa/sb/sb_mixer.c4
-rw-r--r--sound/pci/aw2/aw2-alsa.c4
-rw-r--r--sound/pci/hda/patch_realtek.c1
-rw-r--r--sound/pci/oxygen/oxygen_mixer.c12
-rw-r--r--virt/kvm/ioapic.c52
651 files changed, 14340 insertions, 8587 deletions
diff --git a/.gitignore b/.gitignore
index d24ad506e799..869e1a3b64b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,10 @@
3# subdirectories here. Add them in the ".gitignore" file 3# subdirectories here. Add them in the ".gitignore" file
4# in that subdirectory instead. 4# in that subdirectory instead.
5# 5#
6# NOTE! Please use 'git-ls-files -i --exclude-standard'
7# command after changing this file, to see if there are
8# any tracked files which get ignored after the change.
9#
6# Normal rules 10# Normal rules
7# 11#
8.* 12.*
@@ -18,18 +22,21 @@
18*.lst 22*.lst
19*.symtypes 23*.symtypes
20*.order 24*.order
25*.elf
26*.bin
27*.gz
21 28
22# 29#
23# Top-level generic files 30# Top-level generic files
24# 31#
25tags 32tags
26TAGS 33TAGS
27vmlinux* 34vmlinux
28!vmlinux.lds.S
29System.map 35System.map
30Module.markers 36Module.markers
31Module.symvers 37Module.symvers
32!.gitignore 38!.gitignore
39!.mailmap
33 40
34# 41#
35# Generated include files 42# Generated include files
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl
index 028a8444d95e..e8acd1f03456 100644
--- a/Documentation/DocBook/kgdb.tmpl
+++ b/Documentation/DocBook/kgdb.tmpl
@@ -84,10 +84,9 @@
84 runs an instance of gdb against the vmlinux file which contains 84 runs an instance of gdb against the vmlinux file which contains
85 the symbols (not boot image such as bzImage, zImage, uImage...). 85 the symbols (not boot image such as bzImage, zImage, uImage...).
86 In gdb the developer specifies the connection parameters and 86 In gdb the developer specifies the connection parameters and
87 connects to kgdb. Depending on which kgdb I/O modules exist in 87 connects to kgdb. The type of connection a developer makes with
88 the kernel for a given architecture, it may be possible to debug 88 gdb depends on the availability of kgdb I/O modules compiled as
89 the test machine's kernel with the development machine using a 89 builtin's or kernel modules in the test machine's kernel.
90 rs232 or ethernet connection.
91 </para> 90 </para>
92 </chapter> 91 </chapter>
93 <chapter id="CompilingAKernel"> 92 <chapter id="CompilingAKernel">
@@ -223,7 +222,7 @@
223 </para> 222 </para>
224 <para> 223 <para>
225 IMPORTANT NOTE: Using this option with kgdb over the console 224 IMPORTANT NOTE: Using this option with kgdb over the console
226 (kgdboc) or kgdb over ethernet (kgdboe) is not supported. 225 (kgdboc) is not supported.
227 </para> 226 </para>
228 </sect1> 227 </sect1>
229 </chapter> 228 </chapter>
@@ -249,18 +248,11 @@
249 (gdb) target remote /dev/ttyS0 248 (gdb) target remote /dev/ttyS0
250 </programlisting> 249 </programlisting>
251 <para> 250 <para>
252 Example (kgdb to a terminal server): 251 Example (kgdb to a terminal server on tcp port 2012):
253 </para> 252 </para>
254 <programlisting> 253 <programlisting>
255 % gdb ./vmlinux 254 % gdb ./vmlinux
256 (gdb) target remote udp:192.168.2.2:6443 255 (gdb) target remote 192.168.2.2:2012
257 </programlisting>
258 <para>
259 Example (kgdb over ethernet):
260 </para>
261 <programlisting>
262 % gdb ./vmlinux
263 (gdb) target remote udp:192.168.2.2:6443
264 </programlisting> 256 </programlisting>
265 <para> 257 <para>
266 Once connected, you can debug a kernel the way you would debug an 258 Once connected, you can debug a kernel the way you would debug an
diff --git a/Documentation/cciss.txt b/Documentation/cciss.txt
index e65736c6b8bc..63e59b8847c5 100644
--- a/Documentation/cciss.txt
+++ b/Documentation/cciss.txt
@@ -21,6 +21,11 @@ This driver is known to work with the following cards:
21 * SA E200 21 * SA E200
22 * SA E200i 22 * SA E200i
23 * SA E500 23 * SA E500
24 * SA P212
25 * SA P410
26 * SA P410i
27 * SA P411
28 * SA P812
24 29
25Detecting drive failures: 30Detecting drive failures:
26------------------------- 31-------------------------
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt
index d803c5c68ab5..353504de3084 100644
--- a/Documentation/cpusets.txt
+++ b/Documentation/cpusets.txt
@@ -542,7 +542,7 @@ otherwise initial value -1 that indicates the cpuset has no request.
542 2 : search cores in a package. 542 2 : search cores in a package.
543 3 : search cpus in a node [= system wide on non-NUMA system] 543 3 : search cpus in a node [= system wide on non-NUMA system]
544 ( 4 : search nodes in a chunk of node [on NUMA system] ) 544 ( 4 : search nodes in a chunk of node [on NUMA system] )
545 ( 5~ : search system wide [on NUMA system]) 545 ( 5 : search system wide [on NUMA system] )
546 546
547This file is per-cpuset and affect the sched domain where the cpuset 547This file is per-cpuset and affect the sched domain where the cpuset
548belongs to. Therefore if the flag 'sched_load_balance' of a cpuset 548belongs to. Therefore if the flag 'sched_load_balance' of a cpuset
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 5b3f31faed56..46ece3fba6f9 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -312,3 +312,12 @@ When: 2.6.26
312Why: Implementation became generic; users should now include 312Why: Implementation became generic; users should now include
313 linux/semaphore.h instead. 313 linux/semaphore.h instead.
314Who: Matthew Wilcox <willy@linux.intel.com> 314Who: Matthew Wilcox <willy@linux.intel.com>
315
316---------------------------
317
318What: CONFIG_THERMAL_HWMON
319When: January 2009
320Why: This option was introduced just to allow older lm-sensors userspace
321 to keep working over the upgrade to 2.6.26. At the scheduled time of
322 removal fixed lm-sensors (2.x or 3.x) should be readily available.
323Who: Rene Herman <rene.herman@gmail.com>
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt
index 560f88dc7090..0c5086db8352 100644
--- a/Documentation/filesystems/ext4.txt
+++ b/Documentation/filesystems/ext4.txt
@@ -139,8 +139,16 @@ commit=nrsec (*) Ext4 can be told to sync all its data and metadata
139 Setting it to very large values will improve 139 Setting it to very large values will improve
140 performance. 140 performance.
141 141
142barrier=1 This enables/disables barriers. barrier=0 disables 142barrier=<0|1(*)> This enables/disables the use of write barriers in
143 it, barrier=1 enables it. 143 the jbd code. barrier=0 disables, barrier=1 enables.
144 This also requires an IO stack which can support
145 barriers, and if jbd gets an error on a barrier
146 write, it will disable again with a warning.
147 Write barriers enforce proper on-disk ordering
148 of journal commits, making volatile disk write caches
149 safe to use, at some performance penalty. If
150 your disks are battery-backed in one way or another,
151 disabling barriers may safely improve performance.
144 152
145orlov (*) This enables the new Orlov block allocator. It is 153orlov (*) This enables the new Orlov block allocator. It is
146 enabled by default. 154 enabled by default.
diff --git a/Documentation/filesystems/sysfs-pci.txt b/Documentation/filesystems/sysfs-pci.txt
index 5daa2aaec2c5..68ef48839c04 100644
--- a/Documentation/filesystems/sysfs-pci.txt
+++ b/Documentation/filesystems/sysfs-pci.txt
@@ -36,6 +36,7 @@ files, each with their own function.
36 local_cpus nearby CPU mask (cpumask, ro) 36 local_cpus nearby CPU mask (cpumask, ro)
37 resource PCI resource host addresses (ascii, ro) 37 resource PCI resource host addresses (ascii, ro)
38 resource0..N PCI resource N, if present (binary, mmap) 38 resource0..N PCI resource N, if present (binary, mmap)
39 resource0_wc..N_wc PCI WC map resource N, if prefetchable (binary, mmap)
39 rom PCI ROM resource, if present (binary, ro) 40 rom PCI ROM resource, if present (binary, ro)
40 subsystem_device PCI subsystem device (ascii, ro) 41 subsystem_device PCI subsystem device (ascii, ro)
41 subsystem_vendor PCI subsystem vendor (ascii, ro) 42 subsystem_vendor PCI subsystem vendor (ascii, ro)
diff --git a/Documentation/hwmon/sysfs-interface b/Documentation/hwmon/sysfs-interface
index f4a8ebc1ef1a..2d845730d4e0 100644
--- a/Documentation/hwmon/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
@@ -2,17 +2,12 @@ Naming and data format standards for sysfs files
2------------------------------------------------ 2------------------------------------------------
3 3
4The libsensors library offers an interface to the raw sensors data 4The libsensors library offers an interface to the raw sensors data
5through the sysfs interface. See libsensors documentation and source for 5through the sysfs interface. Since lm-sensors 3.0.0, libsensors is
6further information. As of writing this document, libsensors 6completely chip-independent. It assumes that all the kernel drivers
7(from lm_sensors 2.8.3) is heavily chip-dependent. Adding or updating 7implement the standard sysfs interface described in this document.
8support for any given chip requires modifying the library's code. 8This makes adding or updating support for any given chip very easy, as
9This is because libsensors was written for the procfs interface 9libsensors, and applications using it, do not need to be modified.
10older kernel modules were using, which wasn't standardized enough. 10This is a major improvement compared to lm-sensors 2.
11Recent versions of libsensors (from lm_sensors 2.8.2 and later) have
12support for the sysfs interface, though.
13
14The new sysfs interface was designed to be as chip-independent as
15possible.
16 11
17Note that motherboards vary widely in the connections to sensor chips. 12Note that motherboards vary widely in the connections to sensor chips.
18There is no standard that ensures, for example, that the second 13There is no standard that ensures, for example, that the second
@@ -35,19 +30,17 @@ access this data in a simple and consistent way. That said, such programs
35will have to implement conversion, labeling and hiding of inputs. For 30will have to implement conversion, labeling and hiding of inputs. For
36this reason, it is still not recommended to bypass the library. 31this reason, it is still not recommended to bypass the library.
37 32
38If you are developing a userspace application please send us feedback on
39this standard.
40
41Note that this standard isn't completely established yet, so it is subject
42to changes. If you are writing a new hardware monitoring driver those
43features can't seem to fit in this interface, please contact us with your
44extension proposal. Keep in mind that backward compatibility must be
45preserved.
46
47Each chip gets its own directory in the sysfs /sys/devices tree. To 33Each chip gets its own directory in the sysfs /sys/devices tree. To
48find all sensor chips, it is easier to follow the device symlinks from 34find all sensor chips, it is easier to follow the device symlinks from
49/sys/class/hwmon/hwmon*. 35/sys/class/hwmon/hwmon*.
50 36
37Up to lm-sensors 3.0.0, libsensors looks for hardware monitoring attributes
38in the "physical" device directory. Since lm-sensors 3.0.1, attributes found
39in the hwmon "class" device directory are also supported. Complex drivers
40(e.g. drivers for multifunction chips) may want to use this possibility to
41avoid namespace pollution. The only drawback will be that older versions of
42libsensors won't support the driver in question.
43
51All sysfs values are fixed point numbers. 44All sysfs values are fixed point numbers.
52 45
53There is only one value per file, unlike the older /proc specification. 46There is only one value per file, unlike the older /proc specification.
diff --git a/Documentation/kobject.txt b/Documentation/kobject.txt
index bf3256e04027..51a8021ee532 100644
--- a/Documentation/kobject.txt
+++ b/Documentation/kobject.txt
@@ -305,7 +305,7 @@ should not be manipulated by any other user.
305 305
306A kset keeps its children in a standard kernel linked list. Kobjects point 306A kset keeps its children in a standard kernel linked list. Kobjects point
307back to their containing kset via their kset field. In almost all cases, 307back to their containing kset via their kset field. In almost all cases,
308the kobjects belonging to a ket have that kset (or, strictly, its embedded 308the kobjects belonging to a kset have that kset (or, strictly, its embedded
309kobject) in their parent. 309kobject) in their parent.
310 310
311As a kset contains a kobject within it, it should always be dynamically 311As a kset contains a kobject within it, it should always be dynamically
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index 01c6c3d8a7e3..64b3f146e4b0 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -503,7 +503,7 @@ generate input device EV_KEY events.
503In addition to the EV_KEY events, thinkpad-acpi may also issue EV_SW 503In addition to the EV_KEY events, thinkpad-acpi may also issue EV_SW
504events for switches: 504events for switches:
505 505
506SW_RADIO T60 and later hardare rfkill rocker switch 506SW_RFKILL_ALL T60 and later hardare rfkill rocker switch
507SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A 507SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A
508 508
509Non hot-key ACPI HKEY event map: 509Non hot-key ACPI HKEY event map:
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828
index aaae360312e4..86d1c8e7b18f 100644
--- a/Documentation/video4linux/CARDLIST.au0828
+++ b/Documentation/video4linux/CARDLIST.au0828
@@ -1,4 +1,4 @@
1 0 -> Unknown board (au0828) 1 0 -> Unknown board (au0828)
2 1 -> Hauppauge HVR950Q (au0828) [2040:7200] 2 1 -> Hauppauge HVR950Q (au0828) [2040:7200,2040:7210,2040:7217,2040:721b,2040:721f,2040:7280,0fd9:0008]
3 2 -> Hauppauge HVR850 (au0828) [2040:7240] 3 2 -> Hauppauge HVR850 (au0828) [2040:7240]
4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] 4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
diff --git a/MAINTAINERS b/MAINTAINERS
index 99f566508d70..8f0ec46a7096 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -228,21 +228,21 @@ ACPI BATTERY DRIVERS
228P: Alexey Starikovskiy 228P: Alexey Starikovskiy
229M: astarikovskiy@suse.de 229M: astarikovskiy@suse.de
230L: linux-acpi@vger.kernel.org 230L: linux-acpi@vger.kernel.org
231W: http://acpi.sourceforge.net/ 231W: http://www.lesswatts.org/projects/acpi/
232S: Supported 232S: Supported
233 233
234ACPI EC DRIVER 234ACPI EC DRIVER
235P: Alexey Starikovskiy 235P: Alexey Starikovskiy
236M: astarikovskiy@suse.de 236M: astarikovskiy@suse.de
237L: linux-acpi@vger.kernel.org 237L: linux-acpi@vger.kernel.org
238W: http://acpi.sourceforge.net/ 238W: http://www.lesswatts.org/projects/acpi/
239S: Supported 239S: Supported
240 240
241ACPI FAN DRIVER 241ACPI FAN DRIVER
242P: Len Brown 242P: Len Brown
243M: len.brown@intel.com 243M: len.brown@intel.com
244L: linux-acpi@vger.kernel.org 244L: linux-acpi@vger.kernel.org
245W: http://acpi.sourceforge.net/ 245W: http://www.lesswatts.org/projects/acpi/
246S: Supported 246S: Supported
247 247
248ACPI PCI HOTPLUG DRIVER 248ACPI PCI HOTPLUG DRIVER
@@ -255,14 +255,14 @@ ACPI THERMAL DRIVER
255P: Len Brown 255P: Len Brown
256M: len.brown@intel.com 256M: len.brown@intel.com
257L: linux-acpi@vger.kernel.org 257L: linux-acpi@vger.kernel.org
258W: http://acpi.sourceforge.net/ 258W: http://www.lesswatts.org/projects/acpi/
259S: Supported 259S: Supported
260 260
261ACPI VIDEO DRIVER 261ACPI VIDEO DRIVER
262P: Rui Zhang 262P: Rui Zhang
263M: rui.zhang@intel.com 263M: rui.zhang@intel.com
264L: linux-acpi@vger.kernel.org 264L: linux-acpi@vger.kernel.org
265W: http://acpi.sourceforge.net/ 265W: http://www.lesswatts.org/projects/acpi/
266S: Supported 266S: Supported
267 267
268ACPI WMI DRIVER 268ACPI WMI DRIVER
@@ -274,7 +274,7 @@ S: Maintained
274 274
275AD1889 ALSA SOUND DRIVER 275AD1889 ALSA SOUND DRIVER
276P: Kyle McMartin 276P: Kyle McMartin
277M: kyle@parisc-linux.org 277M: kyle@mcmartin.ca
278P: Thibaut Varene 278P: Thibaut Varene
279M: T-Bone@parisc-linux.org 279M: T-Bone@parisc-linux.org
280W: http://wiki.parisc-linux.org/AD1889 280W: http://wiki.parisc-linux.org/AD1889
@@ -995,8 +995,8 @@ L: netdev@vger.kernel.org
995S: Supported 995S: Supported
996 996
997BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER 997BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
998P: Eliezer Tamir 998P: Eilon Greenstein
999M: eliezert@broadcom.com 999M: eilong@broadcom.com
1000L: netdev@vger.kernel.org 1000L: netdev@vger.kernel.org
1001S: Supported 1001S: Supported
1002 1002
@@ -1202,6 +1202,7 @@ M: pj@sgi.com
1202M: menage@google.com 1202M: menage@google.com
1203L: linux-kernel@vger.kernel.org 1203L: linux-kernel@vger.kernel.org
1204W: http://www.bullopensource.org/cpuset/ 1204W: http://www.bullopensource.org/cpuset/
1205W: http://oss.sgi.com/projects/cpusets/
1205S: Supported 1206S: Supported
1206 1207
1207CRAMFS FILESYSTEM 1208CRAMFS FILESYSTEM
@@ -1827,7 +1828,7 @@ S: Maintained
1827 1828
1828HARMONY SOUND DRIVER 1829HARMONY SOUND DRIVER
1829P: Kyle McMartin 1830P: Kyle McMartin
1830M: kyle@parisc-linux.org 1831M: kyle@mcmartin.ca
1831L: linux-parisc@vger.kernel.org 1832L: linux-parisc@vger.kernel.org
1832S: Maintained 1833S: Maintained
1833 1834
@@ -3120,7 +3121,7 @@ S: Maintained
3120 3121
3121PARISC ARCHITECTURE 3122PARISC ARCHITECTURE
3122P: Kyle McMartin 3123P: Kyle McMartin
3123M: kyle@parisc-linux.org 3124M: kyle@mcmartin.ca
3124P: Matthew Wilcox 3125P: Matthew Wilcox
3125M: matthew@wil.cx 3126M: matthew@wil.cx
3126P: Grant Grundler 3127P: Grant Grundler
@@ -3264,7 +3265,7 @@ S: Maintained
3264 3265
3265PPP OVER ETHERNET 3266PPP OVER ETHERNET
3266P: Michal Ostrowski 3267P: Michal Ostrowski
3267M: mostrows@speakeasy.net 3268M: mostrows@earthlink.net
3268S: Maintained 3269S: Maintained
3269 3270
3270PPP OVER L2TP 3271PPP OVER L2TP
@@ -3329,9 +3330,11 @@ L: video4linux-list@redhat.com
3329W: http://www.isely.net/pvrusb2/ 3330W: http://www.isely.net/pvrusb2/
3330S: Maintained 3331S: Maintained
3331 3332
3332PXA2xx SUPPORT 3333PXA2xx/PXA3xx SUPPORT
3333P: Nicolas Pitre 3334P: Eric Miao
3334M: nico@cam.org 3335M: eric.miao@marvell.com
3336P: Russell King
3337M: linux@arm.linux.org.uk
3335L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 3338L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
3336S: Maintained 3339S: Maintained
3337 3340
@@ -3658,13 +3661,6 @@ M: romieu@fr.zoreil.com
3658L: netdev@vger.kernel.org 3661L: netdev@vger.kernel.org
3659S: Maintained 3662S: Maintained
3660 3663
3661SIS 5513 IDE CONTROLLER DRIVER
3662P: Lionel Bouton
3663M: Lionel.Bouton@inet6.fr
3664W: http://inet6.dyn.dhs.org/sponsoring/sis5513/index.html
3665W: http://gyver.homeip.net/sis5513/index.html
3666S: Maintained
3667
3668SIS 900/7016 FAST ETHERNET DRIVER 3664SIS 900/7016 FAST ETHERNET DRIVER
3669P: Daniele Venzano 3665P: Daniele Venzano
3670M: venza@brownhat.org 3666M: venza@brownhat.org
@@ -4030,7 +4026,7 @@ TULIP NETWORK DRIVERS
4030P: Grant Grundler 4026P: Grant Grundler
4031M: grundler@parisc-linux.org 4027M: grundler@parisc-linux.org
4032P: Kyle McMartin 4028P: Kyle McMartin
4033M: kyle@parisc-linux.org 4029M: kyle@mcmartin.ca
4034L: netdev@vger.kernel.org 4030L: netdev@vger.kernel.org
4035S: Maintained 4031S: Maintained
4036 4032
@@ -4435,10 +4431,10 @@ M: johnpol@2ka.mipt.ru
4435S: Maintained 4431S: Maintained
4436 4432
4437W83791D HARDWARE MONITORING DRIVER 4433W83791D HARDWARE MONITORING DRIVER
4438P: Charles Spirakis 4434P: Marc Hulsman
4439M: bezaur@gmail.com 4435M: m.hulsman@tudelft.nl
4440L: lm-sensors@lm-sensors.org 4436L: lm-sensors@lm-sensors.org
4441S: Odd Fixes 4437S: Maintained
4442 4438
4443W83793 HARDWARE MONITORING DRIVER 4439W83793 HARDWARE MONITORING DRIVER
4444P: Rudolf Marek 4440P: Rudolf Marek
diff --git a/Makefile b/Makefile
index 2b951205317d..6aff5f47c21d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 26 3SUBLEVEL = 26
4EXTRAVERSION = -rc5 4EXTRAVERSION = -rc8
5NAME = Funky Weasel is Jiggy wit it 5NAME = Rotary Wombat
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
8# To see a list of typical targets execute "make help" 8# To see a list of typical targets execute "make help"
diff --git a/arch/alpha/Makefile b/arch/alpha/Makefile
index 4e1a8e2c4541..4759fe751aa1 100644
--- a/arch/alpha/Makefile
+++ b/arch/alpha/Makefile
@@ -13,6 +13,7 @@ NM := $(NM) -B
13LDFLAGS_vmlinux := -static -N #-relax 13LDFLAGS_vmlinux := -static -N #-relax
14CHECKFLAGS += -D__alpha__ -m64 14CHECKFLAGS += -D__alpha__ -m64
15cflags-y := -pipe -mno-fp-regs -ffixed-8 -msmall-data 15cflags-y := -pipe -mno-fp-regs -ffixed-8 -msmall-data
16cflags-y += $(call cc-option, -fno-jump-tables)
16 17
17cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4 18cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4
18cpuflags-$(CONFIG_ALPHA_EV5) := -mcpu=ev5 19cpuflags-$(CONFIG_ALPHA_EV5) := -mcpu=ev5
diff --git a/arch/alpha/kernel/core_t2.c b/arch/alpha/kernel/core_t2.c
index c0750291b44a..d9980d47ab81 100644
--- a/arch/alpha/kernel/core_t2.c
+++ b/arch/alpha/kernel/core_t2.c
@@ -74,6 +74,8 @@
74# define DBG(args) 74# define DBG(args)
75#endif 75#endif
76 76
77DEFINE_SPINLOCK(t2_hae_lock);
78
77static volatile unsigned int t2_mcheck_any_expected; 79static volatile unsigned int t2_mcheck_any_expected;
78static volatile unsigned int t2_mcheck_last_taken; 80static volatile unsigned int t2_mcheck_last_taken;
79 81
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c
index 36ab22a7ea12..5cf45fc51343 100644
--- a/arch/alpha/kernel/pci.c
+++ b/arch/alpha/kernel/pci.c
@@ -71,6 +71,23 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_i
71static void __init 71static void __init
72quirk_cypress(struct pci_dev *dev) 72quirk_cypress(struct pci_dev *dev)
73{ 73{
74 /* The Notorious Cy82C693 chip. */
75
76 /* The generic legacy mode IDE fixup in drivers/pci/probe.c
77 doesn't work correctly with the Cypress IDE controller as
78 it has non-standard register layout. Fix that. */
79 if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE) {
80 dev->resource[2].start = dev->resource[3].start = 0;
81 dev->resource[2].end = dev->resource[3].end = 0;
82 dev->resource[2].flags = dev->resource[3].flags = 0;
83 if (PCI_FUNC(dev->devfn) == 2) {
84 dev->resource[0].start = 0x170;
85 dev->resource[0].end = 0x177;
86 dev->resource[1].start = 0x376;
87 dev->resource[1].end = 0x376;
88 }
89 }
90
74 /* The Cypress bridge responds on the PCI bus in the address range 91 /* The Cypress bridge responds on the PCI bus in the address range
75 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no 92 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no
76 way to turn this off. The bridge also supports several extended 93 way to turn this off. The bridge also supports several extended
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c
index dc57790250d2..c778779007fc 100644
--- a/arch/alpha/kernel/traps.c
+++ b/arch/alpha/kernel/traps.c
@@ -447,7 +447,7 @@ struct unaligned_stat {
447 447
448 448
449/* Macro for exception fixup code to access integer registers. */ 449/* Macro for exception fixup code to access integer registers. */
450#define una_reg(r) (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)]) 450#define una_reg(r) (_regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)])
451 451
452 452
453asmlinkage void 453asmlinkage void
@@ -456,6 +456,7 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg,
456{ 456{
457 long error, tmp1, tmp2, tmp3, tmp4; 457 long error, tmp1, tmp2, tmp3, tmp4;
458 unsigned long pc = regs->pc - 4; 458 unsigned long pc = regs->pc - 4;
459 unsigned long *_regs = regs->regs;
459 const struct exception_table_entry *fixup; 460 const struct exception_table_entry *fixup;
460 461
461 unaligned[0].count++; 462 unaligned[0].count++;
diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c
index 00af7f2fed66..0bb31982fb6f 100644
--- a/arch/arm/mach-pxa/ssp.c
+++ b/arch/arm/mach-pxa/ssp.c
@@ -330,7 +330,7 @@ struct ssp_device *ssp_request(int port, const char *label)
330 330
331 mutex_unlock(&ssp_lock); 331 mutex_unlock(&ssp_lock);
332 332
333 if (ssp->port_id != port) 333 if (&ssp->node == &ssp_list)
334 return NULL; 334 return NULL;
335 335
336 return ssp; 336 return ssp;
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
index 917325bfbd84..6be0c50122e8 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
@@ -254,7 +254,8 @@ close_cplbtab(struct cplb_tab *table)
254} 254}
255 255
256/* helper function */ 256/* helper function */
257static void __fill_code_cplbtab(struct cplb_tab *t, int i, u32 a_start, u32 a_end) 257static void __init
258__fill_code_cplbtab(struct cplb_tab *t, int i, u32 a_start, u32 a_end)
258{ 259{
259 if (cplb_data[i].psize) { 260 if (cplb_data[i].psize) {
260 fill_cplbtab(t, 261 fill_cplbtab(t,
@@ -291,7 +292,8 @@ static void __fill_code_cplbtab(struct cplb_tab *t, int i, u32 a_start, u32 a_en
291 } 292 }
292} 293}
293 294
294static void __fill_data_cplbtab(struct cplb_tab *t, int i, u32 a_start, u32 a_end) 295static void __init
296__fill_data_cplbtab(struct cplb_tab *t, int i, u32 a_start, u32 a_end)
295{ 297{
296 if (cplb_data[i].psize) { 298 if (cplb_data[i].psize) {
297 fill_cplbtab(t, 299 fill_cplbtab(t,
diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c
index 73647c158774..07402f57c9de 100644
--- a/arch/blackfin/kernel/irqchip.c
+++ b/arch/blackfin/kernel/irqchip.c
@@ -60,9 +60,14 @@ static struct irq_chip bad_chip = {
60}; 60};
61 61
62static struct irq_desc bad_irq_desc = { 62static struct irq_desc bad_irq_desc = {
63 .status = IRQ_DISABLED,
63 .chip = &bad_chip, 64 .chip = &bad_chip,
64 .handle_irq = handle_bad_irq, 65 .handle_irq = handle_bad_irq,
65 .depth = 1, 66 .depth = 1,
67 .lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
68#ifdef CONFIG_SMP
69 .affinity = CPU_MASK_ALL
70#endif
66}; 71};
67 72
68int show_interrupts(struct seq_file *p, void *v) 73int show_interrupts(struct seq_file *p, void *v)
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 7bfbd958980c..f061f5181623 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -67,7 +67,7 @@ void __init trap_init(void)
67 CSYNC(); 67 CSYNC();
68} 68}
69 69
70void *saved_icplb_fault_addr, *saved_dcplb_fault_addr; 70unsigned long saved_icplb_fault_addr, saved_dcplb_fault_addr;
71 71
72int kstack_depth_to_print = 48; 72int kstack_depth_to_print = 48;
73 73
@@ -366,7 +366,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
366 info.si_code = ILL_CPLB_MULHIT; 366 info.si_code = ILL_CPLB_MULHIT;
367 sig = SIGSEGV; 367 sig = SIGSEGV;
368#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO 368#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
369 if (saved_dcplb_fault_addr < (void *)FIXED_CODE_START) 369 if (saved_dcplb_fault_addr < FIXED_CODE_START)
370 printk(KERN_NOTICE "NULL pointer access\n"); 370 printk(KERN_NOTICE "NULL pointer access\n");
371 else 371 else
372#endif 372#endif
@@ -421,7 +421,7 @@ asmlinkage void trap_c(struct pt_regs *fp)
421 info.si_code = ILL_CPLB_MULHIT; 421 info.si_code = ILL_CPLB_MULHIT;
422 sig = SIGSEGV; 422 sig = SIGSEGV;
423#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO 423#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
424 if (saved_icplb_fault_addr < (void *)FIXED_CODE_START) 424 if (saved_icplb_fault_addr < FIXED_CODE_START)
425 printk(KERN_NOTICE "Jump to NULL address\n"); 425 printk(KERN_NOTICE "Jump to NULL address\n");
426 else 426 else
427#endif 427#endif
@@ -939,8 +939,6 @@ void panic_cplb_error(int cplb_panic, struct pt_regs *fp)
939 939
940 oops_in_progress = 1; 940 oops_in_progress = 1;
941 941
942 printk(KERN_EMERG "DCPLB_FAULT_ADDR=%p\n", saved_dcplb_fault_addr);
943 printk(KERN_EMERG "ICPLB_FAULT_ADDR=%p\n", saved_icplb_fault_addr);
944 dump_bfin_process(fp); 942 dump_bfin_process(fp);
945 dump_bfin_mem(fp); 943 dump_bfin_mem(fp);
946 show_regs(fp); 944 show_regs(fp);
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index fa4f4e833e84..5958eecefcf1 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -451,9 +451,6 @@ static struct platform_device net2272_bfin_device = {
451}; 451};
452#endif 452#endif
453 453
454#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
455/* all SPI peripherals info goes here */
456
457#if defined(CONFIG_MTD_M25P80) \ 454#if defined(CONFIG_MTD_M25P80) \
458 || defined(CONFIG_MTD_M25P80_MODULE) 455 || defined(CONFIG_MTD_M25P80_MODULE)
459static struct mtd_partition bfin_spi_flash_partitions[] = { 456static struct mtd_partition bfin_spi_flash_partitions[] = {
@@ -676,6 +673,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
676#endif 673#endif
677}; 674};
678 675
676#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
679/* SPI controller data */ 677/* SPI controller data */
680static struct bfin5xx_spi_master bfin_spi0_info = { 678static struct bfin5xx_spi_master bfin_spi0_info = {
681 .num_chipselect = 8, 679 .num_chipselect = 8,
@@ -1018,10 +1016,7 @@ static int __init stamp_init(void)
1018#endif 1016#endif
1019 1017
1020 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1018 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
1021#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 1019 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
1022 spi_register_board_info(bfin_spi_board_info,
1023 ARRAY_SIZE(bfin_spi_board_info));
1024#endif
1025 1020
1026#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 1021#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
1027 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 1022 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c
index 9d28415163ea..079389cbd859 100644
--- a/arch/blackfin/mach-bf533/boards/ezkit.c
+++ b/arch/blackfin/mach-bf533/boards/ezkit.c
@@ -87,9 +87,6 @@ static struct platform_device smc91x_device = {
87}; 87};
88#endif 88#endif
89 89
90#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
91/* all SPI peripherals info goes here */
92
93#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) 90#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)
94static struct mtd_partition bfin_spi_flash_partitions[] = { 91static struct mtd_partition bfin_spi_flash_partitions[] = {
95 { 92 {
@@ -189,6 +186,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
189#endif 186#endif
190}; 187};
191 188
189#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
192/* SPI (0) */ 190/* SPI (0) */
193static struct resource bfin_spi0_resource[] = { 191static struct resource bfin_spi0_resource[] = {
194 [0] = { 192 [0] = {
@@ -425,9 +423,7 @@ static int __init ezkit_init(void)
425{ 423{
426 printk(KERN_INFO "%s(): registering device resources\n", __func__); 424 printk(KERN_INFO "%s(): registering device resources\n", __func__);
427 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); 425 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices));
428#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
429 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 426 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
430#endif
431 427
432#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 428#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
433 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 429 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index ec05b236dc3f..13ae49515f73 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -161,9 +161,6 @@ static struct platform_device stamp_flash_device = {
161}; 161};
162#endif 162#endif
163 163
164#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
165/* all SPI peripherals info goes here */
166
167#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) 164#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)
168static struct mtd_partition bfin_spi_flash_partitions[] = { 165static struct mtd_partition bfin_spi_flash_partitions[] = {
169 { 166 {
@@ -320,6 +317,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
320#endif 317#endif
321}; 318};
322 319
320#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
323/* SPI (0) */ 321/* SPI (0) */
324static struct resource bfin_spi0_resource[] = { 322static struct resource bfin_spi0_resource[] = {
325 [0] = { 323 [0] = {
@@ -626,10 +624,8 @@ static int __init stamp_init(void)
626 SSYNC(); 624 SSYNC();
627#endif 625#endif
628 626
629#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 627 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
630 spi_register_board_info(bfin_spi_board_info, 628
631 ARRAY_SIZE(bfin_spi_board_info));
632#endif
633#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 629#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
634 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 630 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;
635#endif 631#endif
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index 9a756d1f3d73..671f9d67f23a 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -400,9 +400,6 @@ static struct platform_device stamp_flash_device = {
400}; 400};
401#endif 401#endif
402 402
403#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
404/* all SPI peripherals info goes here */
405
406#if defined(CONFIG_MTD_M25P80) \ 403#if defined(CONFIG_MTD_M25P80) \
407 || defined(CONFIG_MTD_M25P80_MODULE) 404 || defined(CONFIG_MTD_M25P80_MODULE)
408static struct mtd_partition bfin_spi_flash_partitions[] = { 405static struct mtd_partition bfin_spi_flash_partitions[] = {
@@ -629,6 +626,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
629#endif 626#endif
630}; 627};
631 628
629#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
632/* SPI controller data */ 630/* SPI controller data */
633static struct bfin5xx_spi_master bfin_spi0_info = { 631static struct bfin5xx_spi_master bfin_spi0_info = {
634 .num_chipselect = 8, 632 .num_chipselect = 8,
@@ -939,10 +937,7 @@ static int __init stamp_init(void)
939#endif 937#endif
940 938
941 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 939 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
942#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 940 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
943 spi_register_board_info(bfin_spi_board_info,
944 ARRAY_SIZE(bfin_spi_board_info));
945#endif
946 941
947#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 942#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
948 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 943 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index d1682bb37509..af7c211a580e 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -412,8 +412,6 @@ static struct platform_device ezkit_flash_device = {
412}; 412};
413#endif 413#endif
414 414
415#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
416/* all SPI peripherals info goes here */
417#if defined(CONFIG_MTD_M25P80) \ 415#if defined(CONFIG_MTD_M25P80) \
418 || defined(CONFIG_MTD_M25P80_MODULE) 416 || defined(CONFIG_MTD_M25P80_MODULE)
419/* SPI flash chip (m25p16) */ 417/* SPI flash chip (m25p16) */
@@ -481,7 +479,7 @@ static struct bfin5xx_spi_chip spidev_chip_info = {
481}; 479};
482#endif 480#endif
483 481
484static struct spi_board_info bf54x_spi_board_info[] __initdata = { 482static struct spi_board_info bfin_spi_board_info[] __initdata = {
485#if defined(CONFIG_MTD_M25P80) \ 483#if defined(CONFIG_MTD_M25P80) \
486 || defined(CONFIG_MTD_M25P80_MODULE) 484 || defined(CONFIG_MTD_M25P80_MODULE)
487 { 485 {
@@ -527,6 +525,7 @@ static struct spi_board_info bf54x_spi_board_info[] __initdata = {
527#endif 525#endif
528}; 526};
529 527
528#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
530/* SPI (0) */ 529/* SPI (0) */
531static struct resource bfin_spi0_resource[] = { 530static struct resource bfin_spi0_resource[] = {
532 [0] = { 531 [0] = {
@@ -800,10 +799,7 @@ static int __init ezkit_init(void)
800 799
801 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices)); 800 platform_add_devices(ezkit_devices, ARRAY_SIZE(ezkit_devices));
802 801
803#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 802 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
804 spi_register_board_info(bf54x_spi_board_info,
805 ARRAY_SIZE(bf54x_spi_board_info));
806#endif
807 803
808 return 0; 804 return 0;
809} 805}
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index 61d8f7648b24..bc6feded8569 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -280,7 +280,6 @@ static struct platform_device ezkit_flash_device = {
280}; 280};
281#endif 281#endif
282 282
283#ifdef CONFIG_SPI_BFIN
284#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 283#if defined(CONFIG_SND_BLACKFIN_AD1836) \
285 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 284 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE)
286static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 285static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
@@ -295,8 +294,8 @@ static struct bfin5xx_spi_chip spidev_chip_info = {
295 .bits_per_word = 8, 294 .bits_per_word = 8,
296}; 295};
297#endif 296#endif
298#endif
299 297
298#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
300/* SPI (0) */ 299/* SPI (0) */
301static struct resource bfin_spi0_resource[] = { 300static struct resource bfin_spi0_resource[] = {
302 [0] = { 301 [0] = {
@@ -327,6 +326,7 @@ static struct platform_device bfin_spi0_device = {
327 .platform_data = &bfin_spi0_info, /* Passed to driver */ 326 .platform_data = &bfin_spi0_info, /* Passed to driver */
328 }, 327 },
329}; 328};
329#endif
330 330
331static struct spi_board_info bfin_spi_board_info[] __initdata = { 331static struct spi_board_info bfin_spi_board_info[] __initdata = {
332#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 332#if defined(CONFIG_SND_BLACKFIN_AD1836) \
@@ -537,10 +537,7 @@ static int __init ezkit_init(void)
537 SSYNC(); 537 SSYNC();
538#endif 538#endif
539 539
540#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 540 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
541 spi_register_board_info(bfin_spi_board_info,
542 ARRAY_SIZE(bfin_spi_board_info));
543#endif
544 541
545#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 542#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
546 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; 543 irq_desc[PATA_INT].status |= IRQ_NOAUTOEN;
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
index 88f1a55c6c94..e67ee3f27698 100644
--- a/arch/ia64/Makefile
+++ b/arch/ia64/Makefile
@@ -57,6 +57,7 @@ core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/
57core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/ 57core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/
58core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/ 58core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
59core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/ 59core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
60core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
60core-$(CONFIG_KVM) += arch/ia64/kvm/ 61core-$(CONFIG_KVM) += arch/ia64/kvm/
61 62
62drivers-$(CONFIG_PCI) += arch/ia64/pci/ 63drivers-$(CONFIG_PCI) += arch/ia64/pci/
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 853d1f11be00..43687cc60dfb 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -465,7 +465,6 @@ void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
465 printk(KERN_ERR 465 printk(KERN_ERR
466 "ACPI 2.0 SLIT: size mismatch: %d expected, %d actual\n", 466 "ACPI 2.0 SLIT: size mismatch: %d expected, %d actual\n",
467 len, slit->header.length); 467 len, slit->header.length);
468 memset(numa_slit, 10, sizeof(numa_slit));
469 return; 468 return;
470 } 469 }
471 slit_table = slit; 470 slit_table = slit;
@@ -574,8 +573,14 @@ void __init acpi_numa_arch_fixup(void)
574 printk(KERN_INFO "Number of memory chunks in system = %d\n", 573 printk(KERN_INFO "Number of memory chunks in system = %d\n",
575 num_node_memblks); 574 num_node_memblks);
576 575
577 if (!slit_table) 576 if (!slit_table) {
577 for (i = 0; i < MAX_NUMNODES; i++)
578 for (j = 0; j < MAX_NUMNODES; j++)
579 node_distance(i, j) = i == j ? LOCAL_DISTANCE :
580 REMOTE_DISTANCE;
578 return; 581 return;
582 }
583
579 memset(numa_slit, -1, sizeof(numa_slit)); 584 memset(numa_slit, -1, sizeof(numa_slit));
580 for (i = 0; i < slit_table->locality_count; i++) { 585 for (i = 0; i < slit_table->locality_count; i++) {
581 if (!pxm_bit_test(i)) 586 if (!pxm_bit_test(i))
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c
index 082c31dcfd99..39752cdef6ff 100644
--- a/arch/ia64/kernel/iosapic.c
+++ b/arch/ia64/kernel/iosapic.c
@@ -558,8 +558,6 @@ static struct iosapic_rte_info * __init_refok iosapic_alloc_rte (void)
558 if (!iosapic_kmalloc_ok && list_empty(&free_rte_list)) { 558 if (!iosapic_kmalloc_ok && list_empty(&free_rte_list)) {
559 rte = alloc_bootmem(sizeof(struct iosapic_rte_info) * 559 rte = alloc_bootmem(sizeof(struct iosapic_rte_info) *
560 NR_PREALLOCATE_RTE_ENTRIES); 560 NR_PREALLOCATE_RTE_ENTRIES);
561 if (!rte)
562 return NULL;
563 for (i = 0; i < NR_PREALLOCATE_RTE_ENTRIES; i++, rte++) 561 for (i = 0; i < NR_PREALLOCATE_RTE_ENTRIES; i++, rte++)
564 list_add(&rte->rte_list, &free_rte_list); 562 list_add(&rte->rte_list, &free_rte_list);
565 } 563 }
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index 71d05133f556..7714a97b0104 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -1864,11 +1864,6 @@ pfm_flush(struct file *filp, fl_owner_t id)
1864 * invoked after, it will find an empty queue and no 1864 * invoked after, it will find an empty queue and no
1865 * signal will be sent. In both case, we are safe 1865 * signal will be sent. In both case, we are safe
1866 */ 1866 */
1867 if (filp->f_flags & FASYNC) {
1868 DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue));
1869 pfm_do_fasync (-1, filp, ctx, 0);
1870 }
1871
1872 PROTECT_CTX(ctx, flags); 1867 PROTECT_CTX(ctx, flags);
1873 1868
1874 state = ctx->ctx_state; 1869 state = ctx->ctx_state;
@@ -1999,6 +1994,11 @@ pfm_close(struct inode *inode, struct file *filp)
1999 return -EBADF; 1994 return -EBADF;
2000 } 1995 }
2001 1996
1997 if (filp->f_flags & FASYNC) {
1998 DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue));
1999 pfm_do_fasync(-1, filp, ctx, 0);
2000 }
2001
2002 PROTECT_CTX(ctx, flags); 2002 PROTECT_CTX(ctx, flags);
2003 2003
2004 state = ctx->ctx_state; 2004 state = ctx->ctx_state;
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c
index 7e0259709c04..0464173ea568 100644
--- a/arch/ia64/kernel/sal.c
+++ b/arch/ia64/kernel/sal.c
@@ -252,11 +252,10 @@ check_sal_cache_flush (void)
252 local_irq_save(flags); 252 local_irq_save(flags);
253 253
254 /* 254 /*
255 * Schedule a timer interrupt, wait until it's reported, and see if 255 * Send ourselves a timer interrupt, wait until it's reported, and see
256 * SAL_CACHE_FLUSH drops it. 256 * if SAL_CACHE_FLUSH drops it.
257 */ 257 */
258 ia64_set_itv(IA64_TIMER_VECTOR); 258 platform_send_ipi(cpu, IA64_TIMER_VECTOR, IA64_IPI_DM_INT, 0);
259 ia64_set_itm(ia64_get_itc() + 1000);
260 259
261 while (!ia64_get_irr(IA64_TIMER_VECTOR)) 260 while (!ia64_get_irr(IA64_TIMER_VECTOR))
262 cpu_relax(); 261 cpu_relax();
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index f48a809c686d..4ae15c8c2488 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -578,8 +578,6 @@ setup_arch (char **cmdline_p)
578 cpu_init(); /* initialize the bootstrap CPU */ 578 cpu_init(); /* initialize the bootstrap CPU */
579 mmu_context_init(); /* initialize context_id bitmap */ 579 mmu_context_init(); /* initialize context_id bitmap */
580 580
581 check_sal_cache_flush();
582
583#ifdef CONFIG_ACPI 581#ifdef CONFIG_ACPI
584 acpi_boot_init(); 582 acpi_boot_init();
585#endif 583#endif
@@ -607,6 +605,7 @@ setup_arch (char **cmdline_p)
607 ia64_mca_init(); 605 ia64_mca_init();
608 606
609 platform_setup(cmdline_p); 607 platform_setup(cmdline_p);
608 check_sal_cache_flush();
610 paging_init(); 609 paging_init();
611} 610}
612 611
diff --git a/arch/ia64/kvm/mmio.c b/arch/ia64/kvm/mmio.c
index 351bf70da463..7f1a858bc69f 100644
--- a/arch/ia64/kvm/mmio.c
+++ b/arch/ia64/kvm/mmio.c
@@ -159,7 +159,8 @@ static void mmio_access(struct kvm_vcpu *vcpu, u64 src_pa, u64 *dest,
159 159
160 if (p->u.ioreq.state == STATE_IORESP_READY) { 160 if (p->u.ioreq.state == STATE_IORESP_READY) {
161 if (dir == IOREQ_READ) 161 if (dir == IOREQ_READ)
162 *dest = p->u.ioreq.data; 162 /* it's necessary to ensure zero extending */
163 *dest = p->u.ioreq.data & (~0UL >> (64-(s*8)));
163 } else 164 } else
164 panic_vm(vcpu); 165 panic_vm(vcpu);
165out: 166out:
diff --git a/arch/ia64/sn/kernel/sn2/sn2_smp.c b/arch/ia64/sn/kernel/sn2/sn2_smp.c
index 49d3120415eb..e585f9a2afb9 100644
--- a/arch/ia64/sn/kernel/sn2/sn2_smp.c
+++ b/arch/ia64/sn/kernel/sn2/sn2_smp.c
@@ -512,6 +512,8 @@ static ssize_t sn2_ptc_proc_write(struct file *file, const char __user *user, si
512 int cpu; 512 int cpu;
513 char optstr[64]; 513 char optstr[64];
514 514
515 if (count == 0 || count > sizeof(optstr))
516 return -EINVAL;
515 if (copy_from_user(optstr, user, count)) 517 if (copy_from_user(optstr, user, count))
516 return -EFAULT; 518 return -EFAULT;
517 optstr[count - 1] = '\0'; 519 optstr[count - 1] = '\0';
diff --git a/arch/ia64/uv/kernel/setup.c b/arch/ia64/uv/kernel/setup.c
index 9aa743203c3c..cf5f28ae96c4 100644
--- a/arch/ia64/uv/kernel/setup.c
+++ b/arch/ia64/uv/kernel/setup.c
@@ -17,6 +17,9 @@
17DEFINE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); 17DEFINE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
18EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info); 18EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info);
19 19
20#ifdef CONFIG_IA64_SGI_UV
21int sn_prom_type;
22#endif
20 23
21struct redir_addr { 24struct redir_addr {
22 unsigned long redirect; 25 unsigned long redirect;
@@ -64,6 +67,15 @@ void __init uv_setup(char **cmdline_p)
64 m_n_config.s.m_skt = 37; 67 m_n_config.s.m_skt = 37;
65 m_n_config.s.n_skt = 0; 68 m_n_config.s.n_skt = 0;
66 mmr_base = 0; 69 mmr_base = 0;
70#if 0
71 /* Need BIOS calls - TDB */
72 if (!ia64_sn_is_fake_prom())
73 sn_prom_type = 1;
74 else
75#endif
76 sn_prom_type = 2;
77 printk(KERN_INFO "Running on medusa with %s PROM\n",
78 (sn_prom_type == 1) ? "real" : "fake");
67 } else { 79 } else {
68 get_lowmem_redirect(&lowmem_redir_base, &lowmem_redir_size); 80 get_lowmem_redirect(&lowmem_redir_base, &lowmem_redir_size);
69 node_id.v = uv_read_local_mmr(UVH_NODE_ID); 81 node_id.v = uv_read_local_mmr(UVH_NODE_ID);
diff --git a/arch/m68knommu/platform/coldfire/timers.c b/arch/m68knommu/platform/coldfire/timers.c
index ba5a9f32ebd4..454f25493491 100644
--- a/arch/m68knommu/platform/coldfire/timers.c
+++ b/arch/m68knommu/platform/coldfire/timers.c
@@ -111,7 +111,13 @@ void hw_timer_init(void)
111 111
112 __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR)); 112 __raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR));
113 mcftmr_cycles_per_jiffy = FREQ / HZ; 113 mcftmr_cycles_per_jiffy = FREQ / HZ;
114 __raw_writetrr(mcftmr_cycles_per_jiffy, TA(MCFTIMER_TRR)); 114 /*
115 * The coldfire timer runs from 0 to TRR included, then 0
116 * again and so on. It counts thus actually TRR + 1 steps
117 * for 1 tick, not TRR. So if you want n cycles,
118 * initialize TRR with n - 1.
119 */
120 __raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR));
115 __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | 121 __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
116 MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); 122 MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));
117 123
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 69648d01acc0..ad36c946ff96 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -538,19 +538,19 @@ cflags-$(CONFIG_SIBYTE_BCM1x80) += -Iinclude/asm-mips/mach-sibyte \
538# Sibyte SWARM board 538# Sibyte SWARM board
539# Sibyte BCM91x80 (BigSur) board 539# Sibyte BCM91x80 (BigSur) board
540# 540#
541libs-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/ 541core-$(CONFIG_SIBYTE_CARMEL) += arch/mips/sibyte/swarm/
542load-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000 542load-$(CONFIG_SIBYTE_CARMEL) := 0xffffffff80100000
543libs-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/ 543core-$(CONFIG_SIBYTE_CRHINE) += arch/mips/sibyte/swarm/
544load-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000 544load-$(CONFIG_SIBYTE_CRHINE) := 0xffffffff80100000
545libs-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/ 545core-$(CONFIG_SIBYTE_CRHONE) += arch/mips/sibyte/swarm/
546load-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000 546load-$(CONFIG_SIBYTE_CRHONE) := 0xffffffff80100000
547libs-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/ 547core-$(CONFIG_SIBYTE_RHONE) += arch/mips/sibyte/swarm/
548load-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000 548load-$(CONFIG_SIBYTE_RHONE) := 0xffffffff80100000
549libs-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/ 549core-$(CONFIG_SIBYTE_SENTOSA) += arch/mips/sibyte/swarm/
550load-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000 550load-$(CONFIG_SIBYTE_SENTOSA) := 0xffffffff80100000
551libs-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/ 551core-$(CONFIG_SIBYTE_SWARM) += arch/mips/sibyte/swarm/
552load-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000 552load-$(CONFIG_SIBYTE_SWARM) := 0xffffffff80100000
553libs-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/ 553core-$(CONFIG_SIBYTE_BIGSUR) += arch/mips/sibyte/swarm/
554load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000 554load-$(CONFIG_SIBYTE_BIGSUR) := 0xffffffff80100000
555 555
556# 556#
@@ -565,7 +565,11 @@ load-$(CONFIG_BCM47XX) := 0xffffffff80001000
565# 565#
566core-$(CONFIG_SNI_RM) += arch/mips/sni/ 566core-$(CONFIG_SNI_RM) += arch/mips/sni/
567cflags-$(CONFIG_SNI_RM) += -Iinclude/asm-mips/mach-rm 567cflags-$(CONFIG_SNI_RM) += -Iinclude/asm-mips/mach-rm
568ifdef CONFIG_CPU_LITTLE_ENDIAN
568load-$(CONFIG_SNI_RM) += 0xffffffff80600000 569load-$(CONFIG_SNI_RM) += 0xffffffff80600000
570else
571load-$(CONFIG_SNI_RM) += 0xffffffff80030000
572endif
569all-$(CONFIG_SNI_RM) := vmlinux.ecoff 573all-$(CONFIG_SNI_RM) := vmlinux.ecoff
570 574
571# 575#
diff --git a/arch/mips/au1000/common/platform.c b/arch/mips/au1000/common/platform.c
index 8cae7753ef79..74d6d4a593be 100644
--- a/arch/mips/au1000/common/platform.c
+++ b/arch/mips/au1000/common/platform.c
@@ -165,12 +165,12 @@ static struct resource au1xxx_usb_gdt_resources[] = {
165static struct resource au1xxx_mmc_resources[] = { 165static struct resource au1xxx_mmc_resources[] = {
166 [0] = { 166 [0] = {
167 .start = SD0_PHYS_ADDR, 167 .start = SD0_PHYS_ADDR,
168 .end = SD0_PHYS_ADDR + 0x40, 168 .end = SD0_PHYS_ADDR + 0x7ffff,
169 .flags = IORESOURCE_MEM, 169 .flags = IORESOURCE_MEM,
170 }, 170 },
171 [1] = { 171 [1] = {
172 .start = SD1_PHYS_ADDR, 172 .start = SD1_PHYS_ADDR,
173 .end = SD1_PHYS_ADDR + 0x40, 173 .end = SD1_PHYS_ADDR + 0x7ffff,
174 .flags = IORESOURCE_MEM, 174 .flags = IORESOURCE_MEM,
175 }, 175 },
176 [2] = { 176 [2] = {
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index 117470b60e34..4b8799802788 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_defconfig
@@ -1,67 +1,58 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.25
4# Tue Feb 20 21:47:40 2007 4# Sat May 3 00:38:11 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_MIPS_MTX1 is not set
13# CONFIG_MIPS_BOSPORUS is not set
14# CONFIG_MIPS_PB1000 is not set
15# CONFIG_MIPS_PB1100 is not set
16# CONFIG_MIPS_PB1500 is not set
17# CONFIG_MIPS_PB1550 is not set
18# CONFIG_MIPS_PB1200 is not set
19# CONFIG_MIPS_DB1000 is not set
20# CONFIG_MIPS_DB1100 is not set
21# CONFIG_MIPS_DB1500 is not set
22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
26# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set
29# CONFIG_MIPS_ATLAS is not set 19# CONFIG_MIPS_ATLAS is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_MIPS_SEAD is not set 21# CONFIG_MIPS_SEAD is not set
32# CONFIG_WR_PPMC is not set
33# CONFIG_MIPS_SIM is not set 22# CONFIG_MIPS_SIM is not set
34# CONFIG_MOMENCO_JAGUAR_ATX is not set 23# CONFIG_MARKEINS is not set
35# CONFIG_MIPS_XXS1500 is not set 24# CONFIG_MACH_VR41XX is not set
36# CONFIG_PNX8550_JBS is not set 25# CONFIG_PNX8550_JBS is not set
37# CONFIG_PNX8550_STB810 is not set 26# CONFIG_PNX8550_STB810 is not set
38# CONFIG_MACH_VR41XX is not set 27# CONFIG_PMC_MSP is not set
39# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
40# CONFIG_MARKEINS is not set
41# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
42# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
43# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
44# CONFIG_SIBYTE_BIGSUR is not set
45CONFIG_SIBYTE_SWARM=y
46# CONFIG_SIBYTE_SENTOSA is not set
47# CONFIG_SIBYTE_RHONE is not set
48# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_LITTLESUR is not set
50# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
34# CONFIG_SIBYTE_CARMEL is not set
51# CONFIG_SIBYTE_CRHONE is not set 35# CONFIG_SIBYTE_CRHONE is not set
36# CONFIG_SIBYTE_RHONE is not set
37CONFIG_SIBYTE_SWARM=y
38# CONFIG_SIBYTE_LITTLESUR is not set
39# CONFIG_SIBYTE_SENTOSA is not set
40# CONFIG_SIBYTE_BIGSUR is not set
52# CONFIG_SNI_RM is not set 41# CONFIG_SNI_RM is not set
53# CONFIG_TOSHIBA_JMR3927 is not set 42# CONFIG_TOSHIBA_JMR3927 is not set
54# CONFIG_TOSHIBA_RBTX4927 is not set 43# CONFIG_TOSHIBA_RBTX4927 is not set
55# CONFIG_TOSHIBA_RBTX4938 is not set 44# CONFIG_TOSHIBA_RBTX4938 is not set
45# CONFIG_WR_PPMC is not set
56CONFIG_SIBYTE_SB1250=y 46CONFIG_SIBYTE_SB1250=y
57CONFIG_SIBYTE_SB1xxx_SOC=y 47CONFIG_SIBYTE_SB1xxx_SOC=y
58CONFIG_CPU_SB1_PASS_1=y 48# CONFIG_CPU_SB1_PASS_1 is not set
59# CONFIG_CPU_SB1_PASS_2_1250 is not set 49# CONFIG_CPU_SB1_PASS_2_1250 is not set
60# CONFIG_CPU_SB1_PASS_2_2 is not set 50CONFIG_CPU_SB1_PASS_2_2=y
61# CONFIG_CPU_SB1_PASS_4 is not set 51# CONFIG_CPU_SB1_PASS_4 is not set
62# CONFIG_CPU_SB1_PASS_2_112x is not set 52# CONFIG_CPU_SB1_PASS_2_112x is not set
63# CONFIG_CPU_SB1_PASS_3 is not set 53# CONFIG_CPU_SB1_PASS_3 is not set
64CONFIG_SIBYTE_HAS_LDT=y 54CONFIG_SIBYTE_HAS_LDT=y
55CONFIG_SIBYTE_ENABLE_LDT_IF_PCI=y
65# CONFIG_SIMULATION is not set 56# CONFIG_SIMULATION is not set
66# CONFIG_SB1_CEX_ALWAYS_FATAL is not set 57# CONFIG_SB1_CEX_ALWAYS_FATAL is not set
67# CONFIG_SB1_CERR_STALL is not set 58# CONFIG_SB1_CERR_STALL is not set
@@ -69,20 +60,32 @@ CONFIG_SIBYTE_CFE=y
69# CONFIG_SIBYTE_CFE_CONSOLE is not set 60# CONFIG_SIBYTE_CFE_CONSOLE is not set
70# CONFIG_SIBYTE_BUS_WATCHER is not set 61# CONFIG_SIBYTE_BUS_WATCHER is not set
71# CONFIG_SIBYTE_TBPROF is not set 62# CONFIG_SIBYTE_TBPROF is not set
63CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y
72CONFIG_RWSEM_GENERIC_SPINLOCK=y 64CONFIG_RWSEM_GENERIC_SPINLOCK=y
73# CONFIG_ARCH_HAS_ILOG2_U32 is not set 65# CONFIG_ARCH_HAS_ILOG2_U32 is not set
74# CONFIG_ARCH_HAS_ILOG2_U64 is not set 66# CONFIG_ARCH_HAS_ILOG2_U64 is not set
67CONFIG_ARCH_SUPPORTS_OPROFILE=y
75CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
76CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
77CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_GENERIC_CLOCKEVENTS=y
78CONFIG_GENERIC_TIME=y 72CONFIG_GENERIC_TIME=y
73CONFIG_GENERIC_CMOS_UPDATE=y
79CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 74CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
80# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 75# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
76CONFIG_CEVT_SB1250=y
77CONFIG_CSRC_SB1250=y
78CONFIG_CFE=y
81CONFIG_DMA_COHERENT=y 79CONFIG_DMA_COHERENT=y
80CONFIG_EARLY_PRINTK=y
81CONFIG_SYS_HAS_EARLY_PRINTK=y
82# CONFIG_HOTPLUG_CPU is not set
83# CONFIG_NO_IOPORT is not set
82CONFIG_CPU_BIG_ENDIAN=y 84CONFIG_CPU_BIG_ENDIAN=y
83# CONFIG_CPU_LITTLE_ENDIAN is not set 85# CONFIG_CPU_LITTLE_ENDIAN is not set
84CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 86CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
85CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 87CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
88CONFIG_IRQ_CPU=y
86CONFIG_SWAP_IO_SPACE=y 89CONFIG_SWAP_IO_SPACE=y
87CONFIG_BOOT_ELF32=y 90CONFIG_BOOT_ELF32=y
88CONFIG_MIPS_L1_CACHE_SHIFT=5 91CONFIG_MIPS_L1_CACHE_SHIFT=5
@@ -90,6 +93,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
90# 93#
91# CPU selection 94# CPU selection
92# 95#
96# CONFIG_CPU_LOONGSON2 is not set
93# CONFIG_CPU_MIPS32_R1 is not set 97# CONFIG_CPU_MIPS32_R1 is not set
94# CONFIG_CPU_MIPS32_R2 is not set 98# CONFIG_CPU_MIPS32_R2 is not set
95# CONFIG_CPU_MIPS64_R1 is not set 99# CONFIG_CPU_MIPS64_R1 is not set
@@ -130,8 +134,7 @@ CONFIG_CPU_HAS_PREFETCH=y
130CONFIG_MIPS_MT_DISABLED=y 134CONFIG_MIPS_MT_DISABLED=y
131# CONFIG_MIPS_MT_SMP is not set 135# CONFIG_MIPS_MT_SMP is not set
132# CONFIG_MIPS_MT_SMTC is not set 136# CONFIG_MIPS_MT_SMTC is not set
133# CONFIG_MIPS_VPE_LOADER is not set 137CONFIG_SB1_PASS_2_WORKAROUNDS=y
134CONFIG_SB1_PASS_1_WORKAROUNDS=y
135CONFIG_CPU_HAS_LLSC=y 138CONFIG_CPU_HAS_LLSC=y
136CONFIG_CPU_HAS_SYNC=y 139CONFIG_CPU_HAS_SYNC=y
137CONFIG_GENERIC_HARDIRQS=y 140CONFIG_GENERIC_HARDIRQS=y
@@ -140,6 +143,7 @@ CONFIG_IRQ_PER_CPU=y
140CONFIG_CPU_SUPPORTS_HIGHMEM=y 143CONFIG_CPU_SUPPORTS_HIGHMEM=y
141CONFIG_SYS_SUPPORTS_HIGHMEM=y 144CONFIG_SYS_SUPPORTS_HIGHMEM=y
142CONFIG_ARCH_FLATMEM_ENABLE=y 145CONFIG_ARCH_FLATMEM_ENABLE=y
146CONFIG_ARCH_POPULATES_NODE_MAP=y
143CONFIG_SELECT_MEMORY_MODEL=y 147CONFIG_SELECT_MEMORY_MODEL=y
144CONFIG_FLATMEM_MANUAL=y 148CONFIG_FLATMEM_MANUAL=y
145# CONFIG_DISCONTIGMEM_MANUAL is not set 149# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -147,13 +151,19 @@ CONFIG_FLATMEM_MANUAL=y
147CONFIG_FLATMEM=y 151CONFIG_FLATMEM=y
148CONFIG_FLAT_NODE_MEM_MAP=y 152CONFIG_FLAT_NODE_MEM_MAP=y
149# CONFIG_SPARSEMEM_STATIC is not set 153# CONFIG_SPARSEMEM_STATIC is not set
154# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
150CONFIG_SPLIT_PTLOCK_CPUS=4 155CONFIG_SPLIT_PTLOCK_CPUS=4
151CONFIG_RESOURCES_64BIT=y 156CONFIG_RESOURCES_64BIT=y
152CONFIG_ZONE_DMA_FLAG=1 157CONFIG_ZONE_DMA_FLAG=0
158CONFIG_VIRT_TO_BUS=y
153CONFIG_SMP=y 159CONFIG_SMP=y
154CONFIG_SYS_SUPPORTS_SMP=y 160CONFIG_SYS_SUPPORTS_SMP=y
155CONFIG_NR_CPUS_DEFAULT_2=y 161CONFIG_NR_CPUS_DEFAULT_2=y
156CONFIG_NR_CPUS=2 162CONFIG_NR_CPUS=2
163CONFIG_TICK_ONESHOT=y
164# CONFIG_NO_HZ is not set
165CONFIG_HIGH_RES_TIMERS=y
166CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
157# CONFIG_HZ_48 is not set 167# CONFIG_HZ_48 is not set
158# CONFIG_HZ_100 is not set 168# CONFIG_HZ_100 is not set
159# CONFIG_HZ_128 is not set 169# CONFIG_HZ_128 is not set
@@ -166,38 +176,49 @@ CONFIG_HZ=1000
166CONFIG_PREEMPT_NONE=y 176CONFIG_PREEMPT_NONE=y
167# CONFIG_PREEMPT_VOLUNTARY is not set 177# CONFIG_PREEMPT_VOLUNTARY is not set
168# CONFIG_PREEMPT is not set 178# CONFIG_PREEMPT is not set
169CONFIG_PREEMPT_BKL=y
170# CONFIG_KEXEC is not set 179# CONFIG_KEXEC is not set
180CONFIG_SECCOMP=y
171CONFIG_LOCKDEP_SUPPORT=y 181CONFIG_LOCKDEP_SUPPORT=y
172CONFIG_STACKTRACE_SUPPORT=y 182CONFIG_STACKTRACE_SUPPORT=y
173CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 183CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
174 184
175# 185#
176# Code maturity level options 186# General setup
177# 187#
178CONFIG_EXPERIMENTAL=y 188CONFIG_EXPERIMENTAL=y
179CONFIG_LOCK_KERNEL=y 189CONFIG_LOCK_KERNEL=y
180CONFIG_INIT_ENV_ARG_LIMIT=32 190CONFIG_INIT_ENV_ARG_LIMIT=32
181
182#
183# General setup
184#
185CONFIG_LOCALVERSION="" 191CONFIG_LOCALVERSION=""
186CONFIG_LOCALVERSION_AUTO=y 192CONFIG_LOCALVERSION_AUTO=y
187CONFIG_SWAP=y 193CONFIG_SWAP=y
188CONFIG_SYSVIPC=y 194CONFIG_SYSVIPC=y
189# CONFIG_IPC_NS is not set
190CONFIG_SYSVIPC_SYSCTL=y 195CONFIG_SYSVIPC_SYSCTL=y
191# CONFIG_POSIX_MQUEUE is not set 196# CONFIG_POSIX_MQUEUE is not set
192# CONFIG_BSD_PROCESS_ACCT is not set 197# CONFIG_BSD_PROCESS_ACCT is not set
193# CONFIG_TASKSTATS is not set 198# CONFIG_TASKSTATS is not set
194# CONFIG_UTS_NS is not set
195# CONFIG_AUDIT is not set 199# CONFIG_AUDIT is not set
196# CONFIG_IKCONFIG is not set 200# CONFIG_IKCONFIG is not set
201CONFIG_LOG_BUF_SHIFT=15
197CONFIG_CGROUPS=y 202CONFIG_CGROUPS=y
203# CONFIG_CGROUP_DEBUG is not set
204# CONFIG_CGROUP_NS is not set
198CONFIG_CPUSETS=y 205CONFIG_CPUSETS=y
199CONFIG_SYSFS_DEPRECATED=y 206CONFIG_GROUP_SCHED=y
207CONFIG_FAIR_GROUP_SCHED=y
208# CONFIG_RT_GROUP_SCHED is not set
209CONFIG_USER_SCHED=y
210# CONFIG_CGROUP_SCHED is not set
211CONFIG_CGROUP_CPUACCT=y
212# CONFIG_RESOURCE_COUNTERS is not set
213# CONFIG_SYSFS_DEPRECATED_V2 is not set
214# CONFIG_PROC_PID_CPUSET is not set
200CONFIG_RELAY=y 215CONFIG_RELAY=y
216CONFIG_NAMESPACES=y
217# CONFIG_UTS_NS is not set
218# CONFIG_IPC_NS is not set
219# CONFIG_USER_NS is not set
220# CONFIG_PID_NS is not set
221CONFIG_BLK_DEV_INITRD=y
201CONFIG_INITRAMFS_SOURCE="" 222CONFIG_INITRAMFS_SOURCE=""
202# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
203CONFIG_SYSCTL=y 224CONFIG_SYSCTL=y
@@ -209,20 +230,29 @@ CONFIG_HOTPLUG=y
209CONFIG_PRINTK=y 230CONFIG_PRINTK=y
210CONFIG_BUG=y 231CONFIG_BUG=y
211CONFIG_ELF_CORE=y 232CONFIG_ELF_CORE=y
233# CONFIG_COMPAT_BRK is not set
212CONFIG_BASE_FULL=y 234CONFIG_BASE_FULL=y
213CONFIG_FUTEX=y 235CONFIG_FUTEX=y
236CONFIG_ANON_INODES=y
214CONFIG_EPOLL=y 237CONFIG_EPOLL=y
238CONFIG_SIGNALFD=y
239CONFIG_TIMERFD=y
240CONFIG_EVENTFD=y
215CONFIG_SHMEM=y 241CONFIG_SHMEM=y
216CONFIG_SLAB=y
217CONFIG_VM_EVENT_COUNTERS=y 242CONFIG_VM_EVENT_COUNTERS=y
243CONFIG_SLAB=y
244# CONFIG_SLUB is not set
245# CONFIG_SLOB is not set
246# CONFIG_PROFILING is not set
247# CONFIG_MARKERS is not set
248CONFIG_HAVE_OPROFILE=y
249# CONFIG_HAVE_KPROBES is not set
250# CONFIG_HAVE_KRETPROBES is not set
251CONFIG_PROC_PAGE_MONITOR=y
252CONFIG_SLABINFO=y
218CONFIG_RT_MUTEXES=y 253CONFIG_RT_MUTEXES=y
219# CONFIG_TINY_SHMEM is not set 254# CONFIG_TINY_SHMEM is not set
220CONFIG_BASE_SMALL=0 255CONFIG_BASE_SMALL=0
221# CONFIG_SLOB is not set
222
223#
224# Loadable module support
225#
226CONFIG_MODULES=y 256CONFIG_MODULES=y
227CONFIG_MODULE_UNLOAD=y 257CONFIG_MODULE_UNLOAD=y
228# CONFIG_MODULE_FORCE_UNLOAD is not set 258# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -230,12 +260,10 @@ CONFIG_MODVERSIONS=y
230CONFIG_MODULE_SRCVERSION_ALL=y 260CONFIG_MODULE_SRCVERSION_ALL=y
231CONFIG_KMOD=y 261CONFIG_KMOD=y
232CONFIG_STOP_MACHINE=y 262CONFIG_STOP_MACHINE=y
233
234#
235# Block layer
236#
237CONFIG_BLOCK=y 263CONFIG_BLOCK=y
238# CONFIG_BLK_DEV_IO_TRACE is not set 264# CONFIG_BLK_DEV_IO_TRACE is not set
265CONFIG_BLK_DEV_BSG=y
266CONFIG_BLOCK_COMPAT=y
239 267
240# 268#
241# IO Schedulers 269# IO Schedulers
@@ -249,22 +277,19 @@ CONFIG_DEFAULT_AS=y
249# CONFIG_DEFAULT_CFQ is not set 277# CONFIG_DEFAULT_CFQ is not set
250# CONFIG_DEFAULT_NOOP is not set 278# CONFIG_DEFAULT_NOOP is not set
251CONFIG_DEFAULT_IOSCHED="anticipatory" 279CONFIG_DEFAULT_IOSCHED="anticipatory"
280CONFIG_CLASSIC_RCU=y
252 281
253# 282#
254# Bus options (PCI, PCMCIA, EISA, ISA, TC) 283# Bus options (PCI, PCMCIA, EISA, ISA, TC)
255# 284#
256CONFIG_HW_HAS_PCI=y 285CONFIG_HW_HAS_PCI=y
257CONFIG_PCI=y 286CONFIG_PCI=y
287CONFIG_PCI_DOMAINS=y
288# CONFIG_ARCH_SUPPORTS_MSI is not set
289# CONFIG_PCI_LEGACY is not set
258CONFIG_MMU=y 290CONFIG_MMU=y
259 291CONFIG_ZONE_DMA32=y
260#
261# PCCARD (PCMCIA/CardBus) support
262#
263# CONFIG_PCCARD is not set 292# CONFIG_PCCARD is not set
264
265#
266# PCI Hotplug Support
267#
268# CONFIG_HOTPLUG_PCI is not set 293# CONFIG_HOTPLUG_PCI is not set
269 294
270# 295#
@@ -272,7 +297,6 @@ CONFIG_MMU=y
272# 297#
273CONFIG_BINFMT_ELF=y 298CONFIG_BINFMT_ELF=y
274# CONFIG_BINFMT_MISC is not set 299# CONFIG_BINFMT_MISC is not set
275# CONFIG_BUILD_ELF64 is not set
276CONFIG_MIPS32_COMPAT=y 300CONFIG_MIPS32_COMPAT=y
277CONFIG_COMPAT=y 301CONFIG_COMPAT=y
278CONFIG_SYSVIPC_COMPAT=y 302CONFIG_SYSVIPC_COMPAT=y
@@ -286,7 +310,6 @@ CONFIG_BINFMT_ELF32=y
286CONFIG_PM=y 310CONFIG_PM=y
287# CONFIG_PM_LEGACY is not set 311# CONFIG_PM_LEGACY is not set
288# CONFIG_PM_DEBUG is not set 312# CONFIG_PM_DEBUG is not set
289# CONFIG_PM_SYSFS_DEPRECATED is not set
290 313
291# 314#
292# Networking 315# Networking
@@ -296,7 +319,6 @@ CONFIG_NET=y
296# 319#
297# Networking options 320# Networking options
298# 321#
299# CONFIG_NETDEBUG is not set
300CONFIG_PACKET=y 322CONFIG_PACKET=y
301CONFIG_PACKET_MMAP=y 323CONFIG_PACKET_MMAP=y
302CONFIG_UNIX=y 324CONFIG_UNIX=y
@@ -304,6 +326,7 @@ CONFIG_XFRM=y
304CONFIG_XFRM_USER=m 326CONFIG_XFRM_USER=m
305# CONFIG_XFRM_SUB_POLICY is not set 327# CONFIG_XFRM_SUB_POLICY is not set
306CONFIG_XFRM_MIGRATE=y 328CONFIG_XFRM_MIGRATE=y
329# CONFIG_XFRM_STATISTICS is not set
307CONFIG_NET_KEY=y 330CONFIG_NET_KEY=y
308CONFIG_NET_KEY_MIGRATE=y 331CONFIG_NET_KEY_MIGRATE=y
309CONFIG_INET=y 332CONFIG_INET=y
@@ -326,6 +349,7 @@ CONFIG_IP_PNP_BOOTP=y
326CONFIG_INET_XFRM_MODE_TRANSPORT=m 349CONFIG_INET_XFRM_MODE_TRANSPORT=m
327CONFIG_INET_XFRM_MODE_TUNNEL=m 350CONFIG_INET_XFRM_MODE_TUNNEL=m
328CONFIG_INET_XFRM_MODE_BEET=m 351CONFIG_INET_XFRM_MODE_BEET=m
352CONFIG_INET_LRO=m
329CONFIG_INET_DIAG=y 353CONFIG_INET_DIAG=y
330CONFIG_INET_TCP_DIAG=y 354CONFIG_INET_TCP_DIAG=y
331# CONFIG_TCP_CONG_ADVANCED is not set 355# CONFIG_TCP_CONG_ADVANCED is not set
@@ -333,24 +357,15 @@ CONFIG_TCP_CONG_CUBIC=y
333CONFIG_DEFAULT_TCP_CONG="cubic" 357CONFIG_DEFAULT_TCP_CONG="cubic"
334CONFIG_TCP_MD5SIG=y 358CONFIG_TCP_MD5SIG=y
335# CONFIG_IPV6 is not set 359# CONFIG_IPV6 is not set
336# CONFIG_INET6_XFRM_TUNNEL is not set
337# CONFIG_INET6_TUNNEL is not set
338CONFIG_NETWORK_SECMARK=y 360CONFIG_NETWORK_SECMARK=y
339# CONFIG_NETFILTER is not set 361# CONFIG_NETFILTER is not set
340
341#
342# DCCP Configuration (EXPERIMENTAL)
343#
344# CONFIG_IP_DCCP is not set 362# CONFIG_IP_DCCP is not set
345 363CONFIG_IP_SCTP=m
346# 364# CONFIG_SCTP_DBG_MSG is not set
347# SCTP Configuration (EXPERIMENTAL) 365# CONFIG_SCTP_DBG_OBJCNT is not set
348# 366# CONFIG_SCTP_HMAC_NONE is not set
349# CONFIG_IP_SCTP is not set 367# CONFIG_SCTP_HMAC_SHA1 is not set
350 368CONFIG_SCTP_HMAC_MD5=y
351#
352# TIPC Configuration (EXPERIMENTAL)
353#
354# CONFIG_TIPC is not set 369# CONFIG_TIPC is not set
355# CONFIG_ATM is not set 370# CONFIG_ATM is not set
356# CONFIG_BRIDGE is not set 371# CONFIG_BRIDGE is not set
@@ -363,26 +378,52 @@ CONFIG_NETWORK_SECMARK=y
363# CONFIG_LAPB is not set 378# CONFIG_LAPB is not set
364# CONFIG_ECONET is not set 379# CONFIG_ECONET is not set
365# CONFIG_WAN_ROUTER is not set 380# CONFIG_WAN_ROUTER is not set
366
367#
368# QoS and/or fair queueing
369#
370# CONFIG_NET_SCHED is not set 381# CONFIG_NET_SCHED is not set
382CONFIG_NET_SCH_FIFO=y
371 383
372# 384#
373# Network testing 385# Network testing
374# 386#
375# CONFIG_NET_PKTGEN is not set 387# CONFIG_NET_PKTGEN is not set
376# CONFIG_HAMRADIO is not set 388# CONFIG_HAMRADIO is not set
389# CONFIG_CAN is not set
377# CONFIG_IRDA is not set 390# CONFIG_IRDA is not set
378# CONFIG_BT is not set 391# CONFIG_BT is not set
392# CONFIG_AF_RXRPC is not set
393
394#
395# Wireless
396#
397CONFIG_CFG80211=m
398CONFIG_NL80211=y
399CONFIG_WIRELESS_EXT=y
400CONFIG_MAC80211=m
401
402#
403# Rate control algorithm selection
404#
405CONFIG_MAC80211_RC_DEFAULT_PID=y
406# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
407
408#
409# Selecting 'y' for an algorithm will
410#
411
412#
413# build the algorithm into mac80211.
414#
415CONFIG_MAC80211_RC_DEFAULT="pid"
416CONFIG_MAC80211_RC_PID=y
417# CONFIG_MAC80211_MESH is not set
418# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
419# CONFIG_MAC80211_DEBUG is not set
379CONFIG_IEEE80211=m 420CONFIG_IEEE80211=m
380# CONFIG_IEEE80211_DEBUG is not set 421# CONFIG_IEEE80211_DEBUG is not set
381CONFIG_IEEE80211_CRYPT_WEP=m 422CONFIG_IEEE80211_CRYPT_WEP=m
382CONFIG_IEEE80211_CRYPT_CCMP=m 423CONFIG_IEEE80211_CRYPT_CCMP=m
383CONFIG_IEEE80211_SOFTMAC=m 424CONFIG_IEEE80211_CRYPT_TKIP=m
384# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set 425CONFIG_RFKILL=m
385CONFIG_WIRELESS_EXT=y 426# CONFIG_NET_9P is not set
386 427
387# 428#
388# Device Drivers 429# Device Drivers
@@ -391,34 +432,15 @@ CONFIG_WIRELESS_EXT=y
391# 432#
392# Generic Driver Options 433# Generic Driver Options
393# 434#
435CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
394CONFIG_STANDALONE=y 436CONFIG_STANDALONE=y
395CONFIG_PREVENT_FIRMWARE_BUILD=y 437CONFIG_PREVENT_FIRMWARE_BUILD=y
396CONFIG_FW_LOADER=m 438CONFIG_FW_LOADER=m
397# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
398
399#
400# Connector - unified userspace <-> kernelspace linker
401#
402CONFIG_CONNECTOR=m 440CONFIG_CONNECTOR=m
403
404#
405# Memory Technology Devices (MTD)
406#
407# CONFIG_MTD is not set 441# CONFIG_MTD is not set
408
409#
410# Parallel port support
411#
412# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
413 443CONFIG_BLK_DEV=y
414#
415# Plug and Play support
416#
417# CONFIG_PNPACPI is not set
418
419#
420# Block devices
421#
422# CONFIG_BLK_CPQ_DA is not set 444# CONFIG_BLK_CPQ_DA is not set
423# CONFIG_BLK_CPQ_CISS_DA is not set 445# CONFIG_BLK_CPQ_CISS_DA is not set
424# CONFIG_BLK_DEV_DAC960 is not set 446# CONFIG_BLK_DEV_DAC960 is not set
@@ -427,49 +449,77 @@ CONFIG_CONNECTOR=m
427# CONFIG_BLK_DEV_LOOP is not set 449# CONFIG_BLK_DEV_LOOP is not set
428# CONFIG_BLK_DEV_NBD is not set 450# CONFIG_BLK_DEV_NBD is not set
429# CONFIG_BLK_DEV_SX8 is not set 451# CONFIG_BLK_DEV_SX8 is not set
452# CONFIG_BLK_DEV_UB is not set
430CONFIG_BLK_DEV_RAM=y 453CONFIG_BLK_DEV_RAM=y
431CONFIG_BLK_DEV_RAM_COUNT=16 454CONFIG_BLK_DEV_RAM_COUNT=16
432CONFIG_BLK_DEV_RAM_SIZE=9220 455CONFIG_BLK_DEV_RAM_SIZE=9220
433CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 456# CONFIG_BLK_DEV_XIP is not set
434CONFIG_BLK_DEV_INITRD=y
435CONFIG_CDROM_PKTCDVD=m 457CONFIG_CDROM_PKTCDVD=m
436CONFIG_CDROM_PKTCDVD_BUFFERS=8 458CONFIG_CDROM_PKTCDVD_BUFFERS=8
437# CONFIG_CDROM_PKTCDVD_WCACHE is not set 459# CONFIG_CDROM_PKTCDVD_WCACHE is not set
438CONFIG_ATA_OVER_ETH=m 460CONFIG_ATA_OVER_ETH=m
439 461CONFIG_MISC_DEVICES=y
440# 462# CONFIG_PHANTOM is not set
441# Misc devices 463# CONFIG_EEPROM_93CX6 is not set
442#
443CONFIG_SGI_IOC4=m 464CONFIG_SGI_IOC4=m
444# CONFIG_TIFM_CORE is not set 465# CONFIG_TIFM_CORE is not set
445 466# CONFIG_ENCLOSURE_SERVICES is not set
446# 467CONFIG_HAVE_IDE=y
447# ATA/ATAPI/MFM/RLL support
448#
449CONFIG_IDE=y 468CONFIG_IDE=y
450CONFIG_IDE_MAX_HWIFS=4 469CONFIG_IDE_MAX_HWIFS=4
451CONFIG_BLK_DEV_IDE=y 470CONFIG_BLK_DEV_IDE=y
452 471
453# 472#
454# Please see Documentation/ide.txt for help/info on IDE drives 473# Please see Documentation/ide/ide.txt for help/info on IDE drives
455# 474#
456# CONFIG_BLK_DEV_IDE_SATA is not set 475# CONFIG_BLK_DEV_IDE_SATA is not set
457CONFIG_BLK_DEV_IDEDISK=y 476CONFIG_BLK_DEV_IDEDISK=y
458# CONFIG_IDEDISK_MULTI_MODE is not set 477# CONFIG_IDEDISK_MULTI_MODE is not set
459CONFIG_BLK_DEV_IDECD=y 478CONFIG_BLK_DEV_IDECD=y
479CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
460CONFIG_BLK_DEV_IDETAPE=y 480CONFIG_BLK_DEV_IDETAPE=y
461CONFIG_BLK_DEV_IDEFLOPPY=y 481CONFIG_BLK_DEV_IDEFLOPPY=y
462# CONFIG_IDE_TASK_IOCTL is not set 482# CONFIG_IDE_TASK_IOCTL is not set
483CONFIG_IDE_PROC_FS=y
463 484
464# 485#
465# IDE chipset support/bugfixes 486# IDE chipset support/bugfixes
466# 487#
467CONFIG_IDE_GENERIC=y 488# CONFIG_IDE_GENERIC is not set
468# CONFIG_BLK_DEV_IDEPCI is not set 489# CONFIG_BLK_DEV_PLATFORM is not set
490
491#
492# PCI IDE chipsets support
493#
494# CONFIG_BLK_DEV_GENERIC is not set
495# CONFIG_BLK_DEV_OPTI621 is not set
496# CONFIG_BLK_DEV_AEC62XX is not set
497# CONFIG_BLK_DEV_ALI15X3 is not set
498# CONFIG_BLK_DEV_AMD74XX is not set
499# CONFIG_BLK_DEV_CMD64X is not set
500# CONFIG_BLK_DEV_TRIFLEX is not set
501# CONFIG_BLK_DEV_CY82C693 is not set
502# CONFIG_BLK_DEV_CS5520 is not set
503# CONFIG_BLK_DEV_CS5530 is not set
504# CONFIG_BLK_DEV_HPT34X is not set
505# CONFIG_BLK_DEV_HPT366 is not set
506# CONFIG_BLK_DEV_JMICRON is not set
507# CONFIG_BLK_DEV_SC1200 is not set
508# CONFIG_BLK_DEV_PIIX is not set
509# CONFIG_BLK_DEV_IT8213 is not set
510# CONFIG_BLK_DEV_IT821X is not set
511# CONFIG_BLK_DEV_NS87415 is not set
512# CONFIG_BLK_DEV_PDC202XX_OLD is not set
513# CONFIG_BLK_DEV_PDC202XX_NEW is not set
514# CONFIG_BLK_DEV_SVWKS is not set
515# CONFIG_BLK_DEV_SIIMAGE is not set
516# CONFIG_BLK_DEV_SLC90E66 is not set
517# CONFIG_BLK_DEV_TRM290 is not set
518# CONFIG_BLK_DEV_VIA82CXXX is not set
519# CONFIG_BLK_DEV_TC86C001 is not set
469CONFIG_BLK_DEV_IDE_SWARM=y 520CONFIG_BLK_DEV_IDE_SWARM=y
470# CONFIG_IDE_ARM is not set
471# CONFIG_BLK_DEV_IDEDMA is not set 521# CONFIG_BLK_DEV_IDEDMA is not set
472# CONFIG_IDEDMA_AUTO is not set 522# CONFIG_BLK_DEV_HD_ONLY is not set
473# CONFIG_BLK_DEV_HD is not set 523# CONFIG_BLK_DEV_HD is not set
474 524
475# 525#
@@ -477,89 +527,68 @@ CONFIG_BLK_DEV_IDE_SWARM=y
477# 527#
478CONFIG_RAID_ATTRS=m 528CONFIG_RAID_ATTRS=m
479# CONFIG_SCSI is not set 529# CONFIG_SCSI is not set
530# CONFIG_SCSI_DMA is not set
480# CONFIG_SCSI_NETLINK is not set 531# CONFIG_SCSI_NETLINK is not set
481
482#
483# Serial ATA (prod) and Parallel ATA (experimental) drivers
484#
485# CONFIG_ATA is not set 532# CONFIG_ATA is not set
486
487#
488# Multi-device support (RAID and LVM)
489#
490# CONFIG_MD is not set 533# CONFIG_MD is not set
491
492#
493# Fusion MPT device support
494#
495# CONFIG_FUSION is not set 534# CONFIG_FUSION is not set
496 535
497# 536#
498# IEEE 1394 (FireWire) support 537# IEEE 1394 (FireWire) support
499# 538#
539# CONFIG_FIREWIRE is not set
500# CONFIG_IEEE1394 is not set 540# CONFIG_IEEE1394 is not set
501
502#
503# I2O device support
504#
505# CONFIG_I2O is not set 541# CONFIG_I2O is not set
506
507#
508# Network device support
509#
510CONFIG_NETDEVICES=y 542CONFIG_NETDEVICES=y
543CONFIG_NETDEVICES_MULTIQUEUE=y
511# CONFIG_DUMMY is not set 544# CONFIG_DUMMY is not set
512# CONFIG_BONDING is not set 545# CONFIG_BONDING is not set
546CONFIG_MACVLAN=m
513# CONFIG_EQUALIZER is not set 547# CONFIG_EQUALIZER is not set
514# CONFIG_TUN is not set 548# CONFIG_TUN is not set
515 549# CONFIG_VETH is not set
516#
517# ARCnet devices
518#
519# CONFIG_ARCNET is not set 550# CONFIG_ARCNET is not set
520 551CONFIG_PHYLIB=y
521#
522# PHY device support
523#
524CONFIG_PHYLIB=m
525 552
526# 553#
527# MII PHY device drivers 554# MII PHY device drivers
528# 555#
529CONFIG_MARVELL_PHY=m 556# CONFIG_MARVELL_PHY is not set
530CONFIG_DAVICOM_PHY=m 557# CONFIG_DAVICOM_PHY is not set
531CONFIG_QSEMI_PHY=m 558# CONFIG_QSEMI_PHY is not set
532CONFIG_LXT_PHY=m 559# CONFIG_LXT_PHY is not set
533CONFIG_CICADA_PHY=m 560# CONFIG_CICADA_PHY is not set
534CONFIG_VITESSE_PHY=m 561# CONFIG_VITESSE_PHY is not set
535CONFIG_SMSC_PHY=m 562# CONFIG_SMSC_PHY is not set
536# CONFIG_BROADCOM_PHY is not set 563CONFIG_BROADCOM_PHY=y
564# CONFIG_ICPLUS_PHY is not set
565# CONFIG_REALTEK_PHY is not set
537# CONFIG_FIXED_PHY is not set 566# CONFIG_FIXED_PHY is not set
538 567# CONFIG_MDIO_BITBANG is not set
539#
540# Ethernet (10 or 100Mbit)
541#
542CONFIG_NET_ETHERNET=y 568CONFIG_NET_ETHERNET=y
543CONFIG_MII=y 569CONFIG_MII=y
570# CONFIG_AX88796 is not set
544# CONFIG_HAPPYMEAL is not set 571# CONFIG_HAPPYMEAL is not set
545# CONFIG_SUNGEM is not set 572# CONFIG_SUNGEM is not set
546# CONFIG_CASSINI is not set 573# CONFIG_CASSINI is not set
547# CONFIG_NET_VENDOR_3COM is not set 574# CONFIG_NET_VENDOR_3COM is not set
548# CONFIG_DM9000 is not set 575# CONFIG_DM9000 is not set
549
550#
551# Tulip family network device support
552#
553# CONFIG_NET_TULIP is not set 576# CONFIG_NET_TULIP is not set
554# CONFIG_HP100 is not set 577# CONFIG_HP100 is not set
578# CONFIG_IBM_NEW_EMAC_ZMII is not set
579# CONFIG_IBM_NEW_EMAC_RGMII is not set
580# CONFIG_IBM_NEW_EMAC_TAH is not set
581# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
555# CONFIG_NET_PCI is not set 582# CONFIG_NET_PCI is not set
556 583# CONFIG_B44 is not set
557# 584CONFIG_NETDEV_1000=y
558# Ethernet (1000 Mbit)
559#
560# CONFIG_ACENIC is not set 585# CONFIG_ACENIC is not set
561# CONFIG_DL2K is not set 586# CONFIG_DL2K is not set
562# CONFIG_E1000 is not set 587# CONFIG_E1000 is not set
588# CONFIG_E1000E is not set
589# CONFIG_E1000E_ENABLED is not set
590# CONFIG_IP1000 is not set
591# CONFIG_IGB is not set
563# CONFIG_NS83820 is not set 592# CONFIG_NS83820 is not set
564# CONFIG_HAMACHI is not set 593# CONFIG_HAMACHI is not set
565# CONFIG_YELLOWFIN is not set 594# CONFIG_YELLOWFIN is not set
@@ -568,53 +597,70 @@ CONFIG_SB1250_MAC=y
568# CONFIG_SIS190 is not set 597# CONFIG_SIS190 is not set
569# CONFIG_SKGE is not set 598# CONFIG_SKGE is not set
570# CONFIG_SKY2 is not set 599# CONFIG_SKY2 is not set
571# CONFIG_SK98LIN is not set 600# CONFIG_VIA_VELOCITY is not set
572# CONFIG_TIGON3 is not set 601# CONFIG_TIGON3 is not set
573# CONFIG_BNX2 is not set 602# CONFIG_BNX2 is not set
574CONFIG_QLA3XXX=m 603# CONFIG_QLA3XXX is not set
575# CONFIG_ATL1 is not set 604# CONFIG_ATL1 is not set
576 605CONFIG_NETDEV_10000=y
577#
578# Ethernet (10000 Mbit)
579#
580# CONFIG_CHELSIO_T1 is not set 606# CONFIG_CHELSIO_T1 is not set
581CONFIG_CHELSIO_T3=m 607# CONFIG_CHELSIO_T3 is not set
608# CONFIG_IXGBE is not set
582# CONFIG_IXGB is not set 609# CONFIG_IXGB is not set
583# CONFIG_S2IO is not set 610# CONFIG_S2IO is not set
584# CONFIG_MYRI10GE is not set 611# CONFIG_MYRI10GE is not set
585CONFIG_NETXEN_NIC=m 612# CONFIG_NETXEN_NIC is not set
586 613# CONFIG_NIU is not set
587# 614# CONFIG_MLX4_CORE is not set
588# Token Ring devices 615# CONFIG_TEHUTI is not set
589# 616# CONFIG_BNX2X is not set
590# CONFIG_TR is not set 617# CONFIG_TR is not set
591 618
592# 619#
593# Wireless LAN (non-hamradio) 620# Wireless LAN
594# 621#
595# CONFIG_NET_RADIO is not set 622# CONFIG_WLAN_PRE80211 is not set
596 623CONFIG_WLAN_80211=y
597# 624# CONFIG_IPW2100 is not set
598# Wan interfaces 625# CONFIG_IPW2200 is not set
599# 626# CONFIG_LIBERTAS is not set
627# CONFIG_HERMES is not set
628# CONFIG_ATMEL is not set
629# CONFIG_PRISM54 is not set
630# CONFIG_USB_ZD1201 is not set
631# CONFIG_USB_NET_RNDIS_WLAN is not set
632# CONFIG_RTL8180 is not set
633# CONFIG_RTL8187 is not set
634# CONFIG_ADM8211 is not set
635# CONFIG_P54_COMMON is not set
636# CONFIG_ATH5K is not set
637# CONFIG_IWLCORE is not set
638# CONFIG_IWLWIFI_LEDS is not set
639# CONFIG_IWL4965 is not set
640# CONFIG_IWL3945 is not set
641# CONFIG_HOSTAP is not set
642# CONFIG_B43 is not set
643# CONFIG_B43LEGACY is not set
644# CONFIG_ZD1211RW is not set
645# CONFIG_RT2X00 is not set
646
647#
648# USB Network Adapters
649#
650# CONFIG_USB_CATC is not set
651# CONFIG_USB_KAWETH is not set
652# CONFIG_USB_PEGASUS is not set
653# CONFIG_USB_RTL8150 is not set
654# CONFIG_USB_USBNET is not set
600# CONFIG_WAN is not set 655# CONFIG_WAN is not set
601# CONFIG_FDDI is not set 656# CONFIG_FDDI is not set
602# CONFIG_HIPPI is not set 657# CONFIG_HIPPI is not set
603# CONFIG_PPP is not set 658# CONFIG_PPP is not set
604# CONFIG_SLIP is not set 659# CONFIG_SLIP is not set
605# CONFIG_SHAPER is not set
606# CONFIG_NETCONSOLE is not set 660# CONFIG_NETCONSOLE is not set
607# CONFIG_NETPOLL is not set 661# CONFIG_NETPOLL is not set
608# CONFIG_NET_POLL_CONTROLLER is not set 662# CONFIG_NET_POLL_CONTROLLER is not set
609
610#
611# ISDN subsystem
612#
613# CONFIG_ISDN is not set 663# CONFIG_ISDN is not set
614
615#
616# Telephony Support
617#
618# CONFIG_PHONE is not set 664# CONFIG_PHONE is not set
619 665
620# 666#
@@ -637,24 +683,8 @@ CONFIG_SERIO_RAW=m
637# Character devices 683# Character devices
638# 684#
639# CONFIG_VT is not set 685# CONFIG_VT is not set
640CONFIG_SERIAL_NONSTANDARD=y 686# CONFIG_SERIAL_NONSTANDARD is not set
641# CONFIG_COMPUTONE is not set 687# CONFIG_NOZOMI is not set
642# CONFIG_ROCKETPORT is not set
643# CONFIG_CYCLADES is not set
644# CONFIG_DIGIEPCA is not set
645# CONFIG_MOXA_INTELLIO is not set
646# CONFIG_MOXA_SMARTIO is not set
647CONFIG_MOXA_SMARTIO_NEW=m
648# CONFIG_ISI is not set
649# CONFIG_SYNCLINKMP is not set
650# CONFIG_SYNCLINK_GT is not set
651# CONFIG_N_HDLC is not set
652# CONFIG_SPECIALIX is not set
653# CONFIG_SX is not set
654# CONFIG_RIO is not set
655# CONFIG_STALDRV is not set
656CONFIG_SERIAL_SB1250_DUART=y
657CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
658 688
659# 689#
660# Serial drivers 690# Serial drivers
@@ -664,37 +694,22 @@ CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
664# 694#
665# Non-8250 serial port support 695# Non-8250 serial port support
666# 696#
697CONFIG_SERIAL_SB1250_DUART=y
698CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
699CONFIG_SERIAL_CORE=y
700CONFIG_SERIAL_CORE_CONSOLE=y
667# CONFIG_SERIAL_JSM is not set 701# CONFIG_SERIAL_JSM is not set
668CONFIG_UNIX98_PTYS=y 702CONFIG_UNIX98_PTYS=y
669CONFIG_LEGACY_PTYS=y 703CONFIG_LEGACY_PTYS=y
670CONFIG_LEGACY_PTY_COUNT=256 704CONFIG_LEGACY_PTY_COUNT=256
671
672#
673# IPMI
674#
675# CONFIG_IPMI_HANDLER is not set 705# CONFIG_IPMI_HANDLER is not set
676
677#
678# Watchdog Cards
679#
680# CONFIG_WATCHDOG is not set
681# CONFIG_HW_RANDOM is not set 706# CONFIG_HW_RANDOM is not set
682# CONFIG_RTC is not set 707# CONFIG_RTC is not set
683# CONFIG_GEN_RTC is not set
684# CONFIG_DTLK is not set
685# CONFIG_R3964 is not set 708# CONFIG_R3964 is not set
686# CONFIG_APPLICOM is not set 709# CONFIG_APPLICOM is not set
687# CONFIG_DRM is not set
688# CONFIG_RAW_DRIVER is not set 710# CONFIG_RAW_DRIVER is not set
689
690#
691# TPM devices
692#
693# CONFIG_TCG_TPM is not set 711# CONFIG_TCG_TPM is not set
694 712CONFIG_DEVPORT=y
695#
696# I2C support
697#
698# CONFIG_I2C is not set 713# CONFIG_I2C is not set
699 714
700# 715#
@@ -702,109 +717,139 @@ CONFIG_LEGACY_PTY_COUNT=256
702# 717#
703# CONFIG_SPI is not set 718# CONFIG_SPI is not set
704# CONFIG_SPI_MASTER is not set 719# CONFIG_SPI_MASTER is not set
720# CONFIG_W1 is not set
721# CONFIG_POWER_SUPPLY is not set
722# CONFIG_HWMON is not set
723# CONFIG_THERMAL is not set
724# CONFIG_WATCHDOG is not set
705 725
706# 726#
707# Dallas's 1-wire bus 727# Sonics Silicon Backplane
708# 728#
709# CONFIG_W1 is not set 729CONFIG_SSB_POSSIBLE=y
730# CONFIG_SSB is not set
710 731
711# 732#
712# Hardware Monitoring support 733# Multifunction device drivers
713# 734#
714# CONFIG_HWMON is not set 735# CONFIG_MFD_SM501 is not set
715# CONFIG_HWMON_VID is not set
716 736
717# 737#
718# Multimedia devices 738# Multimedia devices
719# 739#
720# CONFIG_VIDEO_DEV is not set 740# CONFIG_VIDEO_DEV is not set
721 741# CONFIG_DVB_CORE is not set
722# 742# CONFIG_DAB is not set
723# Digital Video Broadcasting Devices
724#
725# CONFIG_DVB is not set
726 743
727# 744#
728# Graphics support 745# Graphics support
729# 746#
730# CONFIG_FIRMWARE_EDID is not set 747# CONFIG_DRM is not set
748# CONFIG_VGASTATE is not set
749# CONFIG_VIDEO_OUTPUT_CONTROL is not set
731# CONFIG_FB is not set 750# CONFIG_FB is not set
732# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 751# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
733 752
734# 753#
735# Sound 754# Display device support
736# 755#
737# CONFIG_SOUND is not set 756# CONFIG_DISPLAY_SUPPORT is not set
738 757
739# 758#
740# USB support 759# Sound
741# 760#
761# CONFIG_SOUND is not set
762CONFIG_USB_SUPPORT=y
742CONFIG_USB_ARCH_HAS_HCD=y 763CONFIG_USB_ARCH_HAS_HCD=y
743CONFIG_USB_ARCH_HAS_OHCI=y 764CONFIG_USB_ARCH_HAS_OHCI=y
744CONFIG_USB_ARCH_HAS_EHCI=y 765CONFIG_USB_ARCH_HAS_EHCI=y
745# CONFIG_USB is not set 766CONFIG_USB=y
746 767# CONFIG_USB_DEBUG is not set
747# 768# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
748# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
749#
750 769
751# 770#
752# USB Gadget Support 771# Miscellaneous USB options
753# 772#
754# CONFIG_USB_GADGET is not set 773CONFIG_USB_DEVICEFS=y
774CONFIG_USB_DEVICE_CLASS=y
775# CONFIG_USB_DYNAMIC_MINORS is not set
776# CONFIG_USB_SUSPEND is not set
777# CONFIG_USB_PERSIST is not set
778# CONFIG_USB_OTG is not set
755 779
756# 780#
757# MMC/SD Card support 781# USB Host Controller Drivers
758# 782#
759# CONFIG_MMC is not set 783# CONFIG_USB_EHCI_HCD is not set
784# CONFIG_USB_ISP116X_HCD is not set
785CONFIG_USB_OHCI_HCD=y
786# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
787# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
788CONFIG_USB_OHCI_LITTLE_ENDIAN=y
789# CONFIG_USB_UHCI_HCD is not set
790# CONFIG_USB_SL811_HCD is not set
791# CONFIG_USB_R8A66597_HCD is not set
760 792
761# 793#
762# LED devices 794# USB Device Class drivers
763# 795#
764# CONFIG_NEW_LEDS is not set 796# CONFIG_USB_ACM is not set
797# CONFIG_USB_PRINTER is not set
765 798
766# 799#
767# LED drivers 800# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
768# 801#
769 802
770# 803#
771# LED Triggers 804# may also be needed; see USB_STORAGE Help for more information
772# 805#
806# CONFIG_USB_LIBUSUAL is not set
773 807
774# 808#
775# InfiniBand support 809# USB Imaging devices
776# 810#
777# CONFIG_INFINIBAND is not set 811# CONFIG_USB_MDC800 is not set
812CONFIG_USB_MON=y
778 813
779# 814#
780# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 815# USB port drivers
781# 816#
817# CONFIG_USB_SERIAL is not set
782 818
783# 819#
784# Real Time Clock 820# USB Miscellaneous drivers
785# 821#
822# CONFIG_USB_EMI62 is not set
823# CONFIG_USB_EMI26 is not set
824# CONFIG_USB_ADUTUX is not set
825# CONFIG_USB_AUERSWALD is not set
826# CONFIG_USB_RIO500 is not set
827# CONFIG_USB_LEGOTOWER is not set
828# CONFIG_USB_LCD is not set
829# CONFIG_USB_BERRY_CHARGE is not set
830# CONFIG_USB_LED is not set
831# CONFIG_USB_CYPRESS_CY7C63 is not set
832# CONFIG_USB_CYTHERM is not set
833# CONFIG_USB_PHIDGET is not set
834# CONFIG_USB_IDMOUSE is not set
835# CONFIG_USB_FTDI_ELAN is not set
836# CONFIG_USB_APPLEDISPLAY is not set
837# CONFIG_USB_LD is not set
838# CONFIG_USB_TRANCEVIBRATOR is not set
839# CONFIG_USB_IOWARRIOR is not set
840# CONFIG_USB_TEST is not set
841# CONFIG_USB_GADGET is not set
842# CONFIG_MMC is not set
843# CONFIG_MEMSTICK is not set
844# CONFIG_NEW_LEDS is not set
845# CONFIG_INFINIBAND is not set
846CONFIG_RTC_LIB=y
786# CONFIG_RTC_CLASS is not set 847# CONFIG_RTC_CLASS is not set
787 848
788# 849#
789# DMA Engine support 850# Userspace I/O
790#
791# CONFIG_DMA_ENGINE is not set
792
793#
794# DMA Clients
795#
796
797#
798# DMA Devices
799#
800
801#
802# Auxiliary Display support
803#
804
805#
806# Virtualization
807# 851#
852# CONFIG_UIO is not set
808 853
809# 854#
810# File systems 855# File systems
@@ -823,15 +868,14 @@ CONFIG_FS_POSIX_ACL=y
823# CONFIG_XFS_FS is not set 868# CONFIG_XFS_FS is not set
824# CONFIG_GFS2_FS is not set 869# CONFIG_GFS2_FS is not set
825# CONFIG_OCFS2_FS is not set 870# CONFIG_OCFS2_FS is not set
826# CONFIG_MINIX_FS is not set 871CONFIG_DNOTIFY=y
827# CONFIG_ROMFS_FS is not set
828CONFIG_INOTIFY=y 872CONFIG_INOTIFY=y
829CONFIG_INOTIFY_USER=y 873CONFIG_INOTIFY_USER=y
830# CONFIG_QUOTA is not set 874# CONFIG_QUOTA is not set
831CONFIG_DNOTIFY=y
832# CONFIG_AUTOFS_FS is not set 875# CONFIG_AUTOFS_FS is not set
833# CONFIG_AUTOFS4_FS is not set 876# CONFIG_AUTOFS4_FS is not set
834CONFIG_FUSE_FS=m 877CONFIG_FUSE_FS=m
878CONFIG_GENERIC_ACL=y
835 879
836# 880#
837# CD-ROM/DVD Filesystems 881# CD-ROM/DVD Filesystems
@@ -853,9 +897,9 @@ CONFIG_PROC_FS=y
853CONFIG_PROC_KCORE=y 897CONFIG_PROC_KCORE=y
854CONFIG_PROC_SYSCTL=y 898CONFIG_PROC_SYSCTL=y
855CONFIG_SYSFS=y 899CONFIG_SYSFS=y
856# CONFIG_TMPFS is not set 900CONFIG_TMPFS=y
901CONFIG_TMPFS_POSIX_ACL=y
857# CONFIG_HUGETLB_PAGE is not set 902# CONFIG_HUGETLB_PAGE is not set
858CONFIG_RAMFS=y
859CONFIG_CONFIGFS_FS=m 903CONFIG_CONFIGFS_FS=m
860 904
861# 905#
@@ -871,14 +915,13 @@ CONFIG_CONFIGFS_FS=m
871# CONFIG_EFS_FS is not set 915# CONFIG_EFS_FS is not set
872# CONFIG_CRAMFS is not set 916# CONFIG_CRAMFS is not set
873# CONFIG_VXFS_FS is not set 917# CONFIG_VXFS_FS is not set
918# CONFIG_MINIX_FS is not set
874# CONFIG_HPFS_FS is not set 919# CONFIG_HPFS_FS is not set
875# CONFIG_QNX4FS_FS is not set 920# CONFIG_QNX4FS_FS is not set
921# CONFIG_ROMFS_FS is not set
876# CONFIG_SYSV_FS is not set 922# CONFIG_SYSV_FS is not set
877# CONFIG_UFS_FS is not set 923# CONFIG_UFS_FS is not set
878 924CONFIG_NETWORK_FILESYSTEMS=y
879#
880# Network File Systems
881#
882CONFIG_NFS_FS=y 925CONFIG_NFS_FS=y
883CONFIG_NFS_V3=y 926CONFIG_NFS_V3=y
884# CONFIG_NFS_V3_ACL is not set 927# CONFIG_NFS_V3_ACL is not set
@@ -890,6 +933,7 @@ CONFIG_LOCKD=y
890CONFIG_LOCKD_V4=y 933CONFIG_LOCKD_V4=y
891CONFIG_NFS_COMMON=y 934CONFIG_NFS_COMMON=y
892CONFIG_SUNRPC=y 935CONFIG_SUNRPC=y
936# CONFIG_SUNRPC_BIND34 is not set
893# CONFIG_RPCSEC_GSS_KRB5 is not set 937# CONFIG_RPCSEC_GSS_KRB5 is not set
894# CONFIG_RPCSEC_GSS_SPKM3 is not set 938# CONFIG_RPCSEC_GSS_SPKM3 is not set
895# CONFIG_SMB_FS is not set 939# CONFIG_SMB_FS is not set
@@ -897,45 +941,29 @@ CONFIG_SUNRPC=y
897# CONFIG_NCP_FS is not set 941# CONFIG_NCP_FS is not set
898# CONFIG_CODA_FS is not set 942# CONFIG_CODA_FS is not set
899# CONFIG_AFS_FS is not set 943# CONFIG_AFS_FS is not set
900# CONFIG_9P_FS is not set
901 944
902# 945#
903# Partition Types 946# Partition Types
904# 947#
905# CONFIG_PARTITION_ADVANCED is not set 948# CONFIG_PARTITION_ADVANCED is not set
906CONFIG_MSDOS_PARTITION=y 949CONFIG_MSDOS_PARTITION=y
907
908#
909# Native Language Support
910#
911# CONFIG_NLS is not set 950# CONFIG_NLS is not set
912
913#
914# Distributed Lock Manager
915#
916CONFIG_DLM=m 951CONFIG_DLM=m
917CONFIG_DLM_TCP=y
918# CONFIG_DLM_SCTP is not set
919# CONFIG_DLM_DEBUG is not set 952# CONFIG_DLM_DEBUG is not set
920 953
921# 954#
922# Profiling support
923#
924# CONFIG_PROFILING is not set
925
926#
927# Kernel hacking 955# Kernel hacking
928# 956#
929CONFIG_TRACE_IRQFLAGS_SUPPORT=y 957CONFIG_TRACE_IRQFLAGS_SUPPORT=y
930# CONFIG_PRINTK_TIME is not set 958# CONFIG_PRINTK_TIME is not set
959CONFIG_ENABLE_WARN_DEPRECATED=y
931CONFIG_ENABLE_MUST_CHECK=y 960CONFIG_ENABLE_MUST_CHECK=y
932# CONFIG_MAGIC_SYSRQ is not set 961# CONFIG_MAGIC_SYSRQ is not set
933# CONFIG_UNUSED_SYMBOLS is not set 962# CONFIG_UNUSED_SYMBOLS is not set
934# CONFIG_DEBUG_FS is not set 963# CONFIG_DEBUG_FS is not set
935# CONFIG_HEADERS_CHECK is not set 964# CONFIG_HEADERS_CHECK is not set
936# CONFIG_DEBUG_KERNEL is not set 965# CONFIG_DEBUG_KERNEL is not set
937CONFIG_LOG_BUF_SHIFT=15 966# CONFIG_SAMPLES is not set
938CONFIG_CROSSCOMPILE=y
939CONFIG_CMDLINE="" 967CONFIG_CMDLINE=""
940CONFIG_SYS_SUPPORTS_KGDB=y 968CONFIG_SYS_SUPPORTS_KGDB=y
941# CONFIG_SB1XXX_CORELIS is not set 969# CONFIG_SB1XXX_CORELIS is not set
@@ -946,13 +974,12 @@ CONFIG_SYS_SUPPORTS_KGDB=y
946CONFIG_KEYS=y 974CONFIG_KEYS=y
947CONFIG_KEYS_DEBUG_PROC_KEYS=y 975CONFIG_KEYS_DEBUG_PROC_KEYS=y
948# CONFIG_SECURITY is not set 976# CONFIG_SECURITY is not set
949 977# CONFIG_SECURITY_FILE_CAPABILITIES is not set
950#
951# Cryptographic options
952#
953CONFIG_CRYPTO=y 978CONFIG_CRYPTO=y
954CONFIG_CRYPTO_ALGAPI=y 979CONFIG_CRYPTO_ALGAPI=y
980CONFIG_CRYPTO_AEAD=m
955CONFIG_CRYPTO_BLKCIPHER=m 981CONFIG_CRYPTO_BLKCIPHER=m
982CONFIG_CRYPTO_SEQIV=m
956CONFIG_CRYPTO_HASH=y 983CONFIG_CRYPTO_HASH=y
957CONFIG_CRYPTO_MANAGER=y 984CONFIG_CRYPTO_MANAGER=y
958CONFIG_CRYPTO_HMAC=y 985CONFIG_CRYPTO_HMAC=y
@@ -970,6 +997,11 @@ CONFIG_CRYPTO_ECB=m
970CONFIG_CRYPTO_CBC=m 997CONFIG_CRYPTO_CBC=m
971CONFIG_CRYPTO_PCBC=m 998CONFIG_CRYPTO_PCBC=m
972CONFIG_CRYPTO_LRW=m 999CONFIG_CRYPTO_LRW=m
1000CONFIG_CRYPTO_XTS=m
1001CONFIG_CRYPTO_CTR=m
1002CONFIG_CRYPTO_GCM=m
1003CONFIG_CRYPTO_CCM=m
1004CONFIG_CRYPTO_CRYPTD=m
973CONFIG_CRYPTO_DES=m 1005CONFIG_CRYPTO_DES=m
974CONFIG_CRYPTO_FCRYPT=m 1006CONFIG_CRYPTO_FCRYPT=m
975CONFIG_CRYPTO_BLOWFISH=m 1007CONFIG_CRYPTO_BLOWFISH=m
@@ -983,15 +1015,16 @@ CONFIG_CRYPTO_TEA=m
983CONFIG_CRYPTO_ARC4=m 1015CONFIG_CRYPTO_ARC4=m
984CONFIG_CRYPTO_KHAZAD=m 1016CONFIG_CRYPTO_KHAZAD=m
985CONFIG_CRYPTO_ANUBIS=m 1017CONFIG_CRYPTO_ANUBIS=m
1018CONFIG_CRYPTO_SEED=m
1019CONFIG_CRYPTO_SALSA20=m
986CONFIG_CRYPTO_DEFLATE=m 1020CONFIG_CRYPTO_DEFLATE=m
987CONFIG_CRYPTO_MICHAEL_MIC=m 1021CONFIG_CRYPTO_MICHAEL_MIC=m
988CONFIG_CRYPTO_CRC32C=m 1022CONFIG_CRYPTO_CRC32C=m
989CONFIG_CRYPTO_CAMELLIA=m 1023CONFIG_CRYPTO_CAMELLIA=m
990# CONFIG_CRYPTO_TEST is not set 1024# CONFIG_CRYPTO_TEST is not set
991 1025CONFIG_CRYPTO_AUTHENC=m
992# 1026CONFIG_CRYPTO_LZO=m
993# Hardware crypto devices 1027# CONFIG_CRYPTO_HW is not set
994#
995 1028
996# 1029#
997# Library routines 1030# Library routines
@@ -999,10 +1032,15 @@ CONFIG_CRYPTO_CAMELLIA=m
999CONFIG_BITREVERSE=y 1032CONFIG_BITREVERSE=y
1000# CONFIG_CRC_CCITT is not set 1033# CONFIG_CRC_CCITT is not set
1001CONFIG_CRC16=m 1034CONFIG_CRC16=m
1035# CONFIG_CRC_ITU_T is not set
1002CONFIG_CRC32=y 1036CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set
1003CONFIG_LIBCRC32C=m 1038CONFIG_LIBCRC32C=m
1004CONFIG_ZLIB_INFLATE=m 1039CONFIG_ZLIB_INFLATE=m
1005CONFIG_ZLIB_DEFLATE=m 1040CONFIG_ZLIB_DEFLATE=m
1041CONFIG_LZO_COMPRESS=m
1042CONFIG_LZO_DECOMPRESS=m
1006CONFIG_PLIST=y 1043CONFIG_PLIST=y
1007CONFIG_HAS_IOMEM=y 1044CONFIG_HAS_IOMEM=y
1008CONFIG_HAS_IOPORT=y 1045CONFIG_HAS_IOPORT=y
1046CONFIG_HAS_DMA=y
diff --git a/arch/mips/configs/tb0219_defconfig b/arch/mips/configs/tb0219_defconfig
index af82e1a1823c..8dd3ae39bcad 100644
--- a/arch/mips/configs/tb0219_defconfig
+++ b/arch/mips/configs/tb0219_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.23-rc2 3# Linux kernel version: 2.6.26-rc1
4# Wed Aug 8 16:11:47 2007 4# Mon May 12 11:54:51 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -10,9 +10,11 @@ CONFIG_MIPS=y
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
13# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
16# CONFIG_LEMOTE_FULONG is not set 18# CONFIG_LEMOTE_FULONG is not set
17# CONFIG_MIPS_ATLAS is not set 19# CONFIG_MIPS_ATLAS is not set
18# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
@@ -26,6 +28,7 @@ CONFIG_MACH_VR41XX=y
26# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
27# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
28# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
29# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
30# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
31# CONFIG_SIBYTE_CARMEL is not set 34# CONFIG_SIBYTE_CARMEL is not set
@@ -53,12 +56,17 @@ CONFIG_PCI_VR41XX=y
53CONFIG_RWSEM_GENERIC_SPINLOCK=y 56CONFIG_RWSEM_GENERIC_SPINLOCK=y
54# CONFIG_ARCH_HAS_ILOG2_U32 is not set 57# CONFIG_ARCH_HAS_ILOG2_U32 is not set
55# CONFIG_ARCH_HAS_ILOG2_U64 is not set 58# CONFIG_ARCH_HAS_ILOG2_U64 is not set
59CONFIG_ARCH_SUPPORTS_OPROFILE=y
56CONFIG_GENERIC_FIND_NEXT_BIT=y 60CONFIG_GENERIC_FIND_NEXT_BIT=y
57CONFIG_GENERIC_HWEIGHT=y 61CONFIG_GENERIC_HWEIGHT=y
58CONFIG_GENERIC_CALIBRATE_DELAY=y 62CONFIG_GENERIC_CALIBRATE_DELAY=y
63CONFIG_GENERIC_CLOCKEVENTS=y
59CONFIG_GENERIC_TIME=y 64CONFIG_GENERIC_TIME=y
65CONFIG_GENERIC_CMOS_UPDATE=y
60CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 66CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
61CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 67CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
68CONFIG_CEVT_R4K=y
69CONFIG_CSRC_R4K=y
62CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
63CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
64# CONFIG_HOTPLUG_CPU is not set 72# CONFIG_HOTPLUG_CPU is not set
@@ -113,6 +121,7 @@ CONFIG_CPU_HAS_SYNC=y
113CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
114CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
115CONFIG_ARCH_FLATMEM_ENABLE=y 123CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_ARCH_POPULATES_NODE_MAP=y
116CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
117CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
118# CONFIG_DISCONTIGMEM_MANUAL is not set 127# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -120,10 +129,16 @@ CONFIG_FLATMEM_MANUAL=y
120CONFIG_FLATMEM=y 129CONFIG_FLATMEM=y
121CONFIG_FLAT_NODE_MEM_MAP=y 130CONFIG_FLAT_NODE_MEM_MAP=y
122# CONFIG_SPARSEMEM_STATIC is not set 131# CONFIG_SPARSEMEM_STATIC is not set
132# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
133CONFIG_PAGEFLAGS_EXTENDED=y
123CONFIG_SPLIT_PTLOCK_CPUS=4 134CONFIG_SPLIT_PTLOCK_CPUS=4
124# CONFIG_RESOURCES_64BIT is not set 135# CONFIG_RESOURCES_64BIT is not set
125CONFIG_ZONE_DMA_FLAG=0 136CONFIG_ZONE_DMA_FLAG=0
126CONFIG_VIRT_TO_BUS=y 137CONFIG_VIRT_TO_BUS=y
138# CONFIG_TICK_ONESHOT is not set
139# CONFIG_NO_HZ is not set
140# CONFIG_HIGH_RES_TIMERS is not set
141CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
127# CONFIG_HZ_48 is not set 142# CONFIG_HZ_48 is not set
128# CONFIG_HZ_100 is not set 143# CONFIG_HZ_100 is not set
129# CONFIG_HZ_128 is not set 144# CONFIG_HZ_128 is not set
@@ -156,23 +171,29 @@ CONFIG_SYSVIPC_SYSCTL=y
156# CONFIG_POSIX_MQUEUE is not set 171# CONFIG_POSIX_MQUEUE is not set
157# CONFIG_BSD_PROCESS_ACCT is not set 172# CONFIG_BSD_PROCESS_ACCT is not set
158# CONFIG_TASKSTATS is not set 173# CONFIG_TASKSTATS is not set
159# CONFIG_USER_NS is not set
160# CONFIG_AUDIT is not set 174# CONFIG_AUDIT is not set
161# CONFIG_IKCONFIG is not set 175# CONFIG_IKCONFIG is not set
162CONFIG_LOG_BUF_SHIFT=14 176CONFIG_LOG_BUF_SHIFT=14
177# CONFIG_CGROUPS is not set
178# CONFIG_GROUP_SCHED is not set
163CONFIG_SYSFS_DEPRECATED=y 179CONFIG_SYSFS_DEPRECATED=y
180CONFIG_SYSFS_DEPRECATED_V2=y
164# CONFIG_RELAY is not set 181# CONFIG_RELAY is not set
182# CONFIG_NAMESPACES is not set
165# CONFIG_BLK_DEV_INITRD is not set 183# CONFIG_BLK_DEV_INITRD is not set
166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 184# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
167CONFIG_SYSCTL=y 185CONFIG_SYSCTL=y
168CONFIG_EMBEDDED=y 186CONFIG_EMBEDDED=y
169CONFIG_SYSCTL_SYSCALL=y 187CONFIG_SYSCTL_SYSCALL=y
188CONFIG_SYSCTL_SYSCALL_CHECK=y
170CONFIG_KALLSYMS=y 189CONFIG_KALLSYMS=y
171# CONFIG_KALLSYMS_EXTRA_PASS is not set 190# CONFIG_KALLSYMS_EXTRA_PASS is not set
172CONFIG_HOTPLUG=y 191CONFIG_HOTPLUG=y
173CONFIG_PRINTK=y 192CONFIG_PRINTK=y
174CONFIG_BUG=y 193CONFIG_BUG=y
175CONFIG_ELF_CORE=y 194CONFIG_ELF_CORE=y
195# CONFIG_PCSPKR_PLATFORM is not set
196CONFIG_COMPAT_BRK=y
176CONFIG_BASE_FULL=y 197CONFIG_BASE_FULL=y
177CONFIG_FUTEX=y 198CONFIG_FUTEX=y
178CONFIG_ANON_INODES=y 199CONFIG_ANON_INODES=y
@@ -185,10 +206,19 @@ CONFIG_VM_EVENT_COUNTERS=y
185CONFIG_SLAB=y 206CONFIG_SLAB=y
186# CONFIG_SLUB is not set 207# CONFIG_SLUB is not set
187# CONFIG_SLOB is not set 208# CONFIG_SLOB is not set
209# CONFIG_PROFILING is not set
210# CONFIG_MARKERS is not set
211CONFIG_HAVE_OPROFILE=y
212# CONFIG_HAVE_KPROBES is not set
213# CONFIG_HAVE_KRETPROBES is not set
214# CONFIG_HAVE_DMA_ATTRS is not set
215CONFIG_PROC_PAGE_MONITOR=y
216CONFIG_SLABINFO=y
188CONFIG_RT_MUTEXES=y 217CONFIG_RT_MUTEXES=y
189# CONFIG_TINY_SHMEM is not set 218# CONFIG_TINY_SHMEM is not set
190CONFIG_BASE_SMALL=0 219CONFIG_BASE_SMALL=0
191CONFIG_MODULES=y 220CONFIG_MODULES=y
221# CONFIG_MODULE_FORCE_LOAD is not set
192CONFIG_MODULE_UNLOAD=y 222CONFIG_MODULE_UNLOAD=y
193CONFIG_MODULE_FORCE_UNLOAD=y 223CONFIG_MODULE_FORCE_UNLOAD=y
194CONFIG_MODVERSIONS=y 224CONFIG_MODVERSIONS=y
@@ -212,18 +242,17 @@ CONFIG_DEFAULT_AS=y
212# CONFIG_DEFAULT_CFQ is not set 242# CONFIG_DEFAULT_CFQ is not set
213# CONFIG_DEFAULT_NOOP is not set 243# CONFIG_DEFAULT_NOOP is not set
214CONFIG_DEFAULT_IOSCHED="anticipatory" 244CONFIG_DEFAULT_IOSCHED="anticipatory"
245CONFIG_CLASSIC_RCU=y
215 246
216# 247#
217# Bus options (PCI, PCMCIA, EISA, ISA, TC) 248# Bus options (PCI, PCMCIA, EISA, ISA, TC)
218# 249#
219CONFIG_HW_HAS_PCI=y 250CONFIG_HW_HAS_PCI=y
220CONFIG_PCI=y 251CONFIG_PCI=y
252CONFIG_PCI_DOMAINS=y
221# CONFIG_ARCH_SUPPORTS_MSI is not set 253# CONFIG_ARCH_SUPPORTS_MSI is not set
254CONFIG_PCI_LEGACY=y
222CONFIG_MMU=y 255CONFIG_MMU=y
223
224#
225# PCCARD (PCMCIA/CardBus) support
226#
227# CONFIG_PCCARD is not set 256# CONFIG_PCCARD is not set
228# CONFIG_HOTPLUG_PCI is not set 257# CONFIG_HOTPLUG_PCI is not set
229 258
@@ -237,6 +266,7 @@ CONFIG_TRAD_SIGNALS=y
237# 266#
238# Power management options 267# Power management options
239# 268#
269CONFIG_ARCH_SUSPEND_POSSIBLE=y
240# CONFIG_PM is not set 270# CONFIG_PM is not set
241 271
242# 272#
@@ -278,6 +308,7 @@ CONFIG_INET_TUNNEL=m
278# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 308# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
279# CONFIG_INET_XFRM_MODE_TUNNEL is not set 309# CONFIG_INET_XFRM_MODE_TUNNEL is not set
280# CONFIG_INET_XFRM_MODE_BEET is not set 310# CONFIG_INET_XFRM_MODE_BEET is not set
311# CONFIG_INET_LRO is not set
281CONFIG_INET_DIAG=y 312CONFIG_INET_DIAG=y
282CONFIG_INET_TCP_DIAG=y 313CONFIG_INET_TCP_DIAG=y
283# CONFIG_TCP_CONG_ADVANCED is not set 314# CONFIG_TCP_CONG_ADVANCED is not set
@@ -285,15 +316,10 @@ CONFIG_TCP_CONG_CUBIC=y
285CONFIG_DEFAULT_TCP_CONG="cubic" 316CONFIG_DEFAULT_TCP_CONG="cubic"
286# CONFIG_TCP_MD5SIG is not set 317# CONFIG_TCP_MD5SIG is not set
287# CONFIG_IPV6 is not set 318# CONFIG_IPV6 is not set
288# CONFIG_INET6_XFRM_TUNNEL is not set
289# CONFIG_INET6_TUNNEL is not set
290CONFIG_NETWORK_SECMARK=y 319CONFIG_NETWORK_SECMARK=y
291# CONFIG_NETFILTER is not set 320# CONFIG_NETFILTER is not set
292# CONFIG_IP_DCCP is not set 321# CONFIG_IP_DCCP is not set
293# CONFIG_IP_SCTP is not set 322# CONFIG_IP_SCTP is not set
294# CONFIG_SCTP_HMAC_NONE is not set
295# CONFIG_SCTP_HMAC_SHA1 is not set
296# CONFIG_SCTP_HMAC_MD5 is not set
297# CONFIG_TIPC is not set 323# CONFIG_TIPC is not set
298# CONFIG_ATM is not set 324# CONFIG_ATM is not set
299# CONFIG_BRIDGE is not set 325# CONFIG_BRIDGE is not set
@@ -306,10 +332,6 @@ CONFIG_NETWORK_SECMARK=y
306# CONFIG_LAPB is not set 332# CONFIG_LAPB is not set
307# CONFIG_ECONET is not set 333# CONFIG_ECONET is not set
308# CONFIG_WAN_ROUTER is not set 334# CONFIG_WAN_ROUTER is not set
309
310#
311# QoS and/or fair queueing
312#
313# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
314 336
315# 337#
@@ -317,6 +339,7 @@ CONFIG_NETWORK_SECMARK=y
317# 339#
318# CONFIG_NET_PKTGEN is not set 340# CONFIG_NET_PKTGEN is not set
319# CONFIG_HAMRADIO is not set 341# CONFIG_HAMRADIO is not set
342# CONFIG_CAN is not set
320# CONFIG_IRDA is not set 343# CONFIG_IRDA is not set
321# CONFIG_BT is not set 344# CONFIG_BT is not set
322# CONFIG_AF_RXRPC is not set 345# CONFIG_AF_RXRPC is not set
@@ -339,6 +362,7 @@ CONFIG_FIB_RULES=y
339# 362#
340# Generic Driver Options 363# Generic Driver Options
341# 364#
365CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
342CONFIG_STANDALONE=y 366CONFIG_STANDALONE=y
343CONFIG_PREVENT_FIRMWARE_BUILD=y 367CONFIG_PREVENT_FIRMWARE_BUILD=y
344CONFIG_FW_LOADER=m 368CONFIG_FW_LOADER=m
@@ -360,10 +384,11 @@ CONFIG_BLK_DEV_NBD=m
360CONFIG_BLK_DEV_RAM=y 384CONFIG_BLK_DEV_RAM=y
361CONFIG_BLK_DEV_RAM_COUNT=16 385CONFIG_BLK_DEV_RAM_COUNT=16
362CONFIG_BLK_DEV_RAM_SIZE=4096 386CONFIG_BLK_DEV_RAM_SIZE=4096
363CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 387CONFIG_BLK_DEV_XIP=y
364# CONFIG_CDROM_PKTCDVD is not set 388# CONFIG_CDROM_PKTCDVD is not set
365# CONFIG_ATA_OVER_ETH is not set 389# CONFIG_ATA_OVER_ETH is not set
366# CONFIG_MISC_DEVICES is not set 390# CONFIG_MISC_DEVICES is not set
391CONFIG_HAVE_IDE=y
367# CONFIG_IDE is not set 392# CONFIG_IDE is not set
368 393
369# 394#
@@ -375,10 +400,6 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
375# CONFIG_SCSI_NETLINK is not set 400# CONFIG_SCSI_NETLINK is not set
376# CONFIG_ATA is not set 401# CONFIG_ATA is not set
377# CONFIG_MD is not set 402# CONFIG_MD is not set
378
379#
380# Fusion MPT device support
381#
382# CONFIG_FUSION is not set 403# CONFIG_FUSION is not set
383 404
384# 405#
@@ -394,6 +415,7 @@ CONFIG_NETDEVICES=y
394# CONFIG_MACVLAN is not set 415# CONFIG_MACVLAN is not set
395# CONFIG_EQUALIZER is not set 416# CONFIG_EQUALIZER is not set
396# CONFIG_TUN is not set 417# CONFIG_TUN is not set
418# CONFIG_VETH is not set
397# CONFIG_ARCNET is not set 419# CONFIG_ARCNET is not set
398CONFIG_PHYLIB=m 420CONFIG_PHYLIB=m
399 421
@@ -409,7 +431,8 @@ CONFIG_VITESSE_PHY=m
409CONFIG_SMSC_PHY=m 431CONFIG_SMSC_PHY=m
410# CONFIG_BROADCOM_PHY is not set 432# CONFIG_BROADCOM_PHY is not set
411# CONFIG_ICPLUS_PHY is not set 433# CONFIG_ICPLUS_PHY is not set
412# CONFIG_FIXED_PHY is not set 434# CONFIG_REALTEK_PHY is not set
435# CONFIG_MDIO_BITBANG is not set
413CONFIG_NET_ETHERNET=y 436CONFIG_NET_ETHERNET=y
414CONFIG_MII=y 437CONFIG_MII=y
415# CONFIG_AX88796 is not set 438# CONFIG_AX88796 is not set
@@ -420,6 +443,10 @@ CONFIG_MII=y
420# CONFIG_DM9000 is not set 443# CONFIG_DM9000 is not set
421# CONFIG_NET_TULIP is not set 444# CONFIG_NET_TULIP is not set
422# CONFIG_HP100 is not set 445# CONFIG_HP100 is not set
446# CONFIG_IBM_NEW_EMAC_ZMII is not set
447# CONFIG_IBM_NEW_EMAC_RGMII is not set
448# CONFIG_IBM_NEW_EMAC_TAH is not set
449# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
423CONFIG_NET_PCI=y 450CONFIG_NET_PCI=y
424# CONFIG_PCNET32 is not set 451# CONFIG_PCNET32 is not set
425# CONFIG_AMD8111_ETH is not set 452# CONFIG_AMD8111_ETH is not set
@@ -427,7 +454,6 @@ CONFIG_NET_PCI=y
427# CONFIG_B44 is not set 454# CONFIG_B44 is not set
428# CONFIG_FORCEDETH is not set 455# CONFIG_FORCEDETH is not set
429# CONFIG_TC35815 is not set 456# CONFIG_TC35815 is not set
430# CONFIG_DGRS is not set
431# CONFIG_EEPRO100 is not set 457# CONFIG_EEPRO100 is not set
432# CONFIG_E100 is not set 458# CONFIG_E100 is not set
433# CONFIG_FEALNX is not set 459# CONFIG_FEALNX is not set
@@ -439,6 +465,7 @@ CONFIG_8139TOO_PIO=y
439# CONFIG_8139TOO_TUNE_TWISTER is not set 465# CONFIG_8139TOO_TUNE_TWISTER is not set
440# CONFIG_8139TOO_8129 is not set 466# CONFIG_8139TOO_8129 is not set
441# CONFIG_8139_OLD_RX_RESET is not set 467# CONFIG_8139_OLD_RX_RESET is not set
468# CONFIG_R6040 is not set
442# CONFIG_SIS900 is not set 469# CONFIG_SIS900 is not set
443# CONFIG_EPIC100 is not set 470# CONFIG_EPIC100 is not set
444# CONFIG_SUNDANCE is not set 471# CONFIG_SUNDANCE is not set
@@ -451,6 +478,10 @@ CONFIG_NETDEV_1000=y
451# CONFIG_ACENIC is not set 478# CONFIG_ACENIC is not set
452# CONFIG_DL2K is not set 479# CONFIG_DL2K is not set
453# CONFIG_E1000 is not set 480# CONFIG_E1000 is not set
481# CONFIG_E1000E is not set
482# CONFIG_E1000E_ENABLED is not set
483# CONFIG_IP1000 is not set
484# CONFIG_IGB is not set
454# CONFIG_NS83820 is not set 485# CONFIG_NS83820 is not set
455# CONFIG_HAMACHI is not set 486# CONFIG_HAMACHI is not set
456# CONFIG_YELLOWFIN is not set 487# CONFIG_YELLOWFIN is not set
@@ -472,6 +503,7 @@ CONFIG_VIA_VELOCITY=y
472# 503#
473# CONFIG_WLAN_PRE80211 is not set 504# CONFIG_WLAN_PRE80211 is not set
474# CONFIG_WLAN_80211 is not set 505# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set
475 507
476# 508#
477# USB Network Adapters 509# USB Network Adapters
@@ -480,14 +512,12 @@ CONFIG_VIA_VELOCITY=y
480# CONFIG_USB_KAWETH is not set 512# CONFIG_USB_KAWETH is not set
481# CONFIG_USB_PEGASUS is not set 513# CONFIG_USB_PEGASUS is not set
482# CONFIG_USB_RTL8150 is not set 514# CONFIG_USB_RTL8150 is not set
483# CONFIG_USB_USBNET_MII is not set
484# CONFIG_USB_USBNET is not set 515# CONFIG_USB_USBNET is not set
485# CONFIG_WAN is not set 516# CONFIG_WAN is not set
486# CONFIG_FDDI is not set 517# CONFIG_FDDI is not set
487# CONFIG_HIPPI is not set 518# CONFIG_HIPPI is not set
488# CONFIG_PPP is not set 519# CONFIG_PPP is not set
489# CONFIG_SLIP is not set 520# CONFIG_SLIP is not set
490# CONFIG_SHAPER is not set
491# CONFIG_NETCONSOLE is not set 521# CONFIG_NETCONSOLE is not set
492# CONFIG_NETPOLL is not set 522# CONFIG_NETPOLL is not set
493# CONFIG_NET_POLL_CONTROLLER is not set 523# CONFIG_NET_POLL_CONTROLLER is not set
@@ -506,7 +536,6 @@ CONFIG_INPUT=y
506# 536#
507# CONFIG_INPUT_MOUSEDEV is not set 537# CONFIG_INPUT_MOUSEDEV is not set
508# CONFIG_INPUT_JOYDEV is not set 538# CONFIG_INPUT_JOYDEV is not set
509# CONFIG_INPUT_TSDEV is not set
510# CONFIG_INPUT_EVDEV is not set 539# CONFIG_INPUT_EVDEV is not set
511# CONFIG_INPUT_EVBUG is not set 540# CONFIG_INPUT_EVBUG is not set
512 541
@@ -533,7 +562,9 @@ CONFIG_VT=y
533CONFIG_VT_CONSOLE=y 562CONFIG_VT_CONSOLE=y
534CONFIG_HW_CONSOLE=y 563CONFIG_HW_CONSOLE=y
535CONFIG_VT_HW_CONSOLE_BINDING=y 564CONFIG_VT_HW_CONSOLE_BINDING=y
565# CONFIG_DEVKMEM is not set
536# CONFIG_SERIAL_NONSTANDARD is not set 566# CONFIG_SERIAL_NONSTANDARD is not set
567# CONFIG_NOZOMI is not set
537 568
538# 569#
539# Serial drivers 570# Serial drivers
@@ -552,52 +583,62 @@ CONFIG_UNIX98_PTYS=y
552CONFIG_LEGACY_PTYS=y 583CONFIG_LEGACY_PTYS=y
553CONFIG_LEGACY_PTY_COUNT=256 584CONFIG_LEGACY_PTY_COUNT=256
554# CONFIG_IPMI_HANDLER is not set 585# CONFIG_IPMI_HANDLER is not set
555# CONFIG_WATCHDOG is not set
556# CONFIG_HW_RANDOM is not set 586# CONFIG_HW_RANDOM is not set
557# CONFIG_RTC is not set
558# CONFIG_R3964 is not set 587# CONFIG_R3964 is not set
559# CONFIG_APPLICOM is not set 588# CONFIG_APPLICOM is not set
560CONFIG_GPIO_TB0219=y 589CONFIG_GPIO_TB0219=y
561# CONFIG_DRM is not set
562CONFIG_GPIO_VR41XX=y 590CONFIG_GPIO_VR41XX=y
563# CONFIG_RAW_DRIVER is not set 591# CONFIG_RAW_DRIVER is not set
564# CONFIG_TCG_TPM is not set 592# CONFIG_TCG_TPM is not set
565CONFIG_DEVPORT=y 593CONFIG_DEVPORT=y
566# CONFIG_I2C is not set 594# CONFIG_I2C is not set
567
568#
569# SPI support
570#
571# CONFIG_SPI is not set 595# CONFIG_SPI is not set
572# CONFIG_SPI_MASTER is not set
573# CONFIG_W1 is not set 596# CONFIG_W1 is not set
574# CONFIG_POWER_SUPPLY is not set 597# CONFIG_POWER_SUPPLY is not set
575# CONFIG_HWMON is not set 598# CONFIG_HWMON is not set
599# CONFIG_THERMAL is not set
600# CONFIG_WATCHDOG is not set
601
602#
603# Sonics Silicon Backplane
604#
605CONFIG_SSB_POSSIBLE=y
606# CONFIG_SSB is not set
576 607
577# 608#
578# Multifunction device drivers 609# Multifunction device drivers
579# 610#
580# CONFIG_MFD_SM501 is not set 611# CONFIG_MFD_SM501 is not set
612# CONFIG_HTC_PASIC3 is not set
581 613
582# 614#
583# Multimedia devices 615# Multimedia devices
584# 616#
617
618#
619# Multimedia core support
620#
585# CONFIG_VIDEO_DEV is not set 621# CONFIG_VIDEO_DEV is not set
586# CONFIG_DVB_CORE is not set 622# CONFIG_DVB_CORE is not set
623
624#
625# Multimedia drivers
626#
587# CONFIG_DAB is not set 627# CONFIG_DAB is not set
588 628
589# 629#
590# Graphics support 630# Graphics support
591# 631#
632# CONFIG_DRM is not set
633# CONFIG_VGASTATE is not set
634# CONFIG_VIDEO_OUTPUT_CONTROL is not set
635# CONFIG_FB is not set
592# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 636# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
593 637
594# 638#
595# Display device support 639# Display device support
596# 640#
597# CONFIG_DISPLAY_SUPPORT is not set 641# CONFIG_DISPLAY_SUPPORT is not set
598# CONFIG_VGASTATE is not set
599# CONFIG_VIDEO_OUTPUT_CONTROL is not set
600# CONFIG_FB is not set
601 642
602# 643#
603# Console display driver support 644# Console display driver support
@@ -616,6 +657,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
616CONFIG_USB_ARCH_HAS_EHCI=y 657CONFIG_USB_ARCH_HAS_EHCI=y
617CONFIG_USB=m 658CONFIG_USB=m
618# CONFIG_USB_DEBUG is not set 659# CONFIG_USB_DEBUG is not set
660# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
619 661
620# 662#
621# Miscellaneous USB options 663# Miscellaneous USB options
@@ -624,15 +666,18 @@ CONFIG_USB_DEVICEFS=y
624CONFIG_USB_DEVICE_CLASS=y 666CONFIG_USB_DEVICE_CLASS=y
625# CONFIG_USB_DYNAMIC_MINORS is not set 667# CONFIG_USB_DYNAMIC_MINORS is not set
626# CONFIG_USB_OTG is not set 668# CONFIG_USB_OTG is not set
669# CONFIG_USB_OTG_WHITELIST is not set
670# CONFIG_USB_OTG_BLACKLIST_HUB is not set
627 671
628# 672#
629# USB Host Controller Drivers 673# USB Host Controller Drivers
630# 674#
675# CONFIG_USB_C67X00_HCD is not set
631CONFIG_USB_EHCI_HCD=m 676CONFIG_USB_EHCI_HCD=m
632# CONFIG_USB_EHCI_SPLIT_ISO is not set
633# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 677# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
634# CONFIG_USB_EHCI_TT_NEWSCHED is not set 678# CONFIG_USB_EHCI_TT_NEWSCHED is not set
635# CONFIG_USB_ISP116X_HCD is not set 679# CONFIG_USB_ISP116X_HCD is not set
680# CONFIG_USB_ISP1760_HCD is not set
636CONFIG_USB_OHCI_HCD=m 681CONFIG_USB_OHCI_HCD=m
637# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 682# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
638# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 683# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -665,10 +710,6 @@ CONFIG_USB_MON=y
665# 710#
666# USB port drivers 711# USB port drivers
667# 712#
668
669#
670# USB Serial Converter support
671#
672# CONFIG_USB_SERIAL is not set 713# CONFIG_USB_SERIAL is not set
673 714
674# 715#
@@ -694,17 +735,11 @@ CONFIG_USB_MON=y
694# CONFIG_USB_TRANCEVIBRATOR is not set 735# CONFIG_USB_TRANCEVIBRATOR is not set
695# CONFIG_USB_IOWARRIOR is not set 736# CONFIG_USB_IOWARRIOR is not set
696# CONFIG_USB_TEST is not set 737# CONFIG_USB_TEST is not set
697
698#
699# USB DSL modem support
700#
701
702#
703# USB Gadget Support
704#
705# CONFIG_USB_GADGET is not set 738# CONFIG_USB_GADGET is not set
706# CONFIG_MMC is not set 739# CONFIG_MMC is not set
740# CONFIG_MEMSTICK is not set
707# CONFIG_NEW_LEDS is not set 741# CONFIG_NEW_LEDS is not set
742# CONFIG_ACCESSIBILITY is not set
708# CONFIG_INFINIBAND is not set 743# CONFIG_INFINIBAND is not set
709CONFIG_RTC_LIB=y 744CONFIG_RTC_LIB=y
710CONFIG_RTC_CLASS=y 745CONFIG_RTC_CLASS=y
@@ -729,9 +764,10 @@ CONFIG_RTC_INTF_DEV=y
729# Platform RTC drivers 764# Platform RTC drivers
730# 765#
731# CONFIG_RTC_DRV_CMOS is not set 766# CONFIG_RTC_DRV_CMOS is not set
767# CONFIG_RTC_DRV_DS1511 is not set
732# CONFIG_RTC_DRV_DS1553 is not set 768# CONFIG_RTC_DRV_DS1553 is not set
733# CONFIG_RTC_DRV_STK17TA8 is not set
734# CONFIG_RTC_DRV_DS1742 is not set 769# CONFIG_RTC_DRV_DS1742 is not set
770# CONFIG_RTC_DRV_STK17TA8 is not set
735# CONFIG_RTC_DRV_M48T86 is not set 771# CONFIG_RTC_DRV_M48T86 is not set
736# CONFIG_RTC_DRV_M48T59 is not set 772# CONFIG_RTC_DRV_M48T59 is not set
737# CONFIG_RTC_DRV_V3020 is not set 773# CONFIG_RTC_DRV_V3020 is not set
@@ -740,23 +776,6 @@ CONFIG_RTC_INTF_DEV=y
740# on-CPU RTC drivers 776# on-CPU RTC drivers
741# 777#
742CONFIG_RTC_DRV_VR41XX=y 778CONFIG_RTC_DRV_VR41XX=y
743
744#
745# DMA Engine support
746#
747# CONFIG_DMA_ENGINE is not set
748
749#
750# DMA Clients
751#
752
753#
754# DMA Devices
755#
756
757#
758# Userspace I/O
759#
760# CONFIG_UIO is not set 779# CONFIG_UIO is not set
761 780
762# 781#
@@ -771,20 +790,16 @@ CONFIG_EXT3_FS_XATTR=y
771# CONFIG_EXT3_FS_SECURITY is not set 790# CONFIG_EXT3_FS_SECURITY is not set
772# CONFIG_EXT4DEV_FS is not set 791# CONFIG_EXT4DEV_FS is not set
773CONFIG_JBD=y 792CONFIG_JBD=y
774# CONFIG_JBD_DEBUG is not set
775CONFIG_FS_MBCACHE=y 793CONFIG_FS_MBCACHE=y
776# CONFIG_REISERFS_FS is not set 794# CONFIG_REISERFS_FS is not set
777# CONFIG_JFS_FS is not set 795# CONFIG_JFS_FS is not set
778CONFIG_FS_POSIX_ACL=y 796CONFIG_FS_POSIX_ACL=y
779# CONFIG_XFS_FS is not set 797# CONFIG_XFS_FS is not set
780# CONFIG_GFS2_FS is not set
781# CONFIG_OCFS2_FS is not set 798# CONFIG_OCFS2_FS is not set
782# CONFIG_MINIX_FS is not set 799CONFIG_DNOTIFY=y
783CONFIG_ROMFS_FS=m
784CONFIG_INOTIFY=y 800CONFIG_INOTIFY=y
785CONFIG_INOTIFY_USER=y 801CONFIG_INOTIFY_USER=y
786# CONFIG_QUOTA is not set 802# CONFIG_QUOTA is not set
787CONFIG_DNOTIFY=y
788# CONFIG_AUTOFS_FS is not set 803# CONFIG_AUTOFS_FS is not set
789CONFIG_AUTOFS4_FS=y 804CONFIG_AUTOFS4_FS=y
790# CONFIG_FUSE_FS is not set 805# CONFIG_FUSE_FS is not set
@@ -813,7 +828,6 @@ CONFIG_SYSFS=y
813CONFIG_TMPFS=y 828CONFIG_TMPFS=y
814CONFIG_TMPFS_POSIX_ACL=y 829CONFIG_TMPFS_POSIX_ACL=y
815# CONFIG_HUGETLB_PAGE is not set 830# CONFIG_HUGETLB_PAGE is not set
816CONFIG_RAMFS=y
817# CONFIG_CONFIGFS_FS is not set 831# CONFIG_CONFIGFS_FS is not set
818 832
819# 833#
@@ -828,24 +842,21 @@ CONFIG_RAMFS=y
828# CONFIG_EFS_FS is not set 842# CONFIG_EFS_FS is not set
829CONFIG_CRAMFS=m 843CONFIG_CRAMFS=m
830# CONFIG_VXFS_FS is not set 844# CONFIG_VXFS_FS is not set
845# CONFIG_MINIX_FS is not set
831# CONFIG_HPFS_FS is not set 846# CONFIG_HPFS_FS is not set
832# CONFIG_QNX4FS_FS is not set 847# CONFIG_QNX4FS_FS is not set
848CONFIG_ROMFS_FS=m
833# CONFIG_SYSV_FS is not set 849# CONFIG_SYSV_FS is not set
834# CONFIG_UFS_FS is not set 850# CONFIG_UFS_FS is not set
835 851CONFIG_NETWORK_FILESYSTEMS=y
836#
837# Network File Systems
838#
839CONFIG_NFS_FS=y 852CONFIG_NFS_FS=y
840CONFIG_NFS_V3=y 853CONFIG_NFS_V3=y
841# CONFIG_NFS_V3_ACL is not set 854# CONFIG_NFS_V3_ACL is not set
842# CONFIG_NFS_V4 is not set 855# CONFIG_NFS_V4 is not set
843# CONFIG_NFS_DIRECTIO is not set
844CONFIG_NFSD=y 856CONFIG_NFSD=y
845CONFIG_NFSD_V3=y 857CONFIG_NFSD_V3=y
846# CONFIG_NFSD_V3_ACL is not set 858# CONFIG_NFSD_V3_ACL is not set
847# CONFIG_NFSD_V4 is not set 859# CONFIG_NFSD_V4 is not set
848CONFIG_NFSD_TCP=y
849CONFIG_ROOT_NFS=y 860CONFIG_ROOT_NFS=y
850CONFIG_LOCKD=y 861CONFIG_LOCKD=y
851CONFIG_LOCKD_V4=y 862CONFIG_LOCKD_V4=y
@@ -866,47 +877,38 @@ CONFIG_SUNRPC=y
866# 877#
867# CONFIG_PARTITION_ADVANCED is not set 878# CONFIG_PARTITION_ADVANCED is not set
868CONFIG_MSDOS_PARTITION=y 879CONFIG_MSDOS_PARTITION=y
869
870#
871# Native Language Support
872#
873# CONFIG_NLS is not set 880# CONFIG_NLS is not set
874
875#
876# Distributed Lock Manager
877#
878# CONFIG_DLM is not set 881# CONFIG_DLM is not set
879 882
880# 883#
881# Profiling support
882#
883# CONFIG_PROFILING is not set
884
885#
886# Kernel hacking 884# Kernel hacking
887# 885#
888CONFIG_TRACE_IRQFLAGS_SUPPORT=y 886CONFIG_TRACE_IRQFLAGS_SUPPORT=y
889# CONFIG_PRINTK_TIME is not set 887# CONFIG_PRINTK_TIME is not set
888CONFIG_ENABLE_WARN_DEPRECATED=y
890CONFIG_ENABLE_MUST_CHECK=y 889CONFIG_ENABLE_MUST_CHECK=y
890CONFIG_FRAME_WARN=1024
891# CONFIG_MAGIC_SYSRQ is not set 891# CONFIG_MAGIC_SYSRQ is not set
892# CONFIG_UNUSED_SYMBOLS is not set 892# CONFIG_UNUSED_SYMBOLS is not set
893# CONFIG_DEBUG_FS is not set 893# CONFIG_DEBUG_FS is not set
894# CONFIG_HEADERS_CHECK is not set 894# CONFIG_HEADERS_CHECK is not set
895# CONFIG_DEBUG_KERNEL is not set 895# CONFIG_DEBUG_KERNEL is not set
896CONFIG_CROSSCOMPILE=y 896# CONFIG_SAMPLES is not set
897CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" 897CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
898 898
899# 899#
900# Security options 900# Security options
901# 901#
902# CONFIG_KEYS is not set 902# CONFIG_KEYS is not set
903# CONFIG_SECURITY is not set 903# CONFIG_SECURITY is not set
904# CONFIG_SECURITY_FILE_CAPABILITIES is not set
904# CONFIG_CRYPTO is not set 905# CONFIG_CRYPTO is not set
905 906
906# 907#
907# Library routines 908# Library routines
908# 909#
909CONFIG_BITREVERSE=y 910CONFIG_BITREVERSE=y
911# CONFIG_GENERIC_FIND_FIRST_BIT is not set
910CONFIG_CRC_CCITT=y 912CONFIG_CRC_CCITT=y
911# CONFIG_CRC16 is not set 913# CONFIG_CRC16 is not set
912# CONFIG_CRC_ITU_T is not set 914# CONFIG_CRC_ITU_T is not set
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig
index a95385b24546..2ba240e897c6 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.23-rc2 3# Linux kernel version: 2.6.26-rc1
4# Thu Aug 9 11:16:55 2007 4# Mon May 12 11:53:54 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -10,9 +10,11 @@ CONFIG_MIPS=y
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
13# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
16# CONFIG_LEMOTE_FULONG is not set 18# CONFIG_LEMOTE_FULONG is not set
17# CONFIG_MIPS_ATLAS is not set 19# CONFIG_MIPS_ATLAS is not set
18# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
@@ -26,6 +28,7 @@ CONFIG_MACH_VR41XX=y
26# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
27# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
28# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
29# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
30# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
31# CONFIG_SIBYTE_CARMEL is not set 34# CONFIG_SIBYTE_CARMEL is not set
@@ -53,12 +56,17 @@ CONFIG_PCI_VR41XX=y
53CONFIG_RWSEM_GENERIC_SPINLOCK=y 56CONFIG_RWSEM_GENERIC_SPINLOCK=y
54# CONFIG_ARCH_HAS_ILOG2_U32 is not set 57# CONFIG_ARCH_HAS_ILOG2_U32 is not set
55# CONFIG_ARCH_HAS_ILOG2_U64 is not set 58# CONFIG_ARCH_HAS_ILOG2_U64 is not set
59CONFIG_ARCH_SUPPORTS_OPROFILE=y
56CONFIG_GENERIC_FIND_NEXT_BIT=y 60CONFIG_GENERIC_FIND_NEXT_BIT=y
57CONFIG_GENERIC_HWEIGHT=y 61CONFIG_GENERIC_HWEIGHT=y
58CONFIG_GENERIC_CALIBRATE_DELAY=y 62CONFIG_GENERIC_CALIBRATE_DELAY=y
63CONFIG_GENERIC_CLOCKEVENTS=y
59CONFIG_GENERIC_TIME=y 64CONFIG_GENERIC_TIME=y
65CONFIG_GENERIC_CMOS_UPDATE=y
60CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 66CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
61CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 67CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
68CONFIG_CEVT_R4K=y
69CONFIG_CSRC_R4K=y
62CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
63CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
64# CONFIG_HOTPLUG_CPU is not set 72# CONFIG_HOTPLUG_CPU is not set
@@ -113,6 +121,7 @@ CONFIG_CPU_HAS_SYNC=y
113CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
114CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
115CONFIG_ARCH_FLATMEM_ENABLE=y 123CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_ARCH_POPULATES_NODE_MAP=y
116CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
117CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
118# CONFIG_DISCONTIGMEM_MANUAL is not set 127# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -120,10 +129,16 @@ CONFIG_FLATMEM_MANUAL=y
120CONFIG_FLATMEM=y 129CONFIG_FLATMEM=y
121CONFIG_FLAT_NODE_MEM_MAP=y 130CONFIG_FLAT_NODE_MEM_MAP=y
122# CONFIG_SPARSEMEM_STATIC is not set 131# CONFIG_SPARSEMEM_STATIC is not set
132# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
133CONFIG_PAGEFLAGS_EXTENDED=y
123CONFIG_SPLIT_PTLOCK_CPUS=4 134CONFIG_SPLIT_PTLOCK_CPUS=4
124# CONFIG_RESOURCES_64BIT is not set 135# CONFIG_RESOURCES_64BIT is not set
125CONFIG_ZONE_DMA_FLAG=0 136CONFIG_ZONE_DMA_FLAG=0
126CONFIG_VIRT_TO_BUS=y 137CONFIG_VIRT_TO_BUS=y
138# CONFIG_TICK_ONESHOT is not set
139# CONFIG_NO_HZ is not set
140# CONFIG_HIGH_RES_TIMERS is not set
141CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
127# CONFIG_HZ_48 is not set 142# CONFIG_HZ_48 is not set
128# CONFIG_HZ_100 is not set 143# CONFIG_HZ_100 is not set
129# CONFIG_HZ_128 is not set 144# CONFIG_HZ_128 is not set
@@ -156,23 +171,29 @@ CONFIG_SYSVIPC_SYSCTL=y
156# CONFIG_POSIX_MQUEUE is not set 171# CONFIG_POSIX_MQUEUE is not set
157# CONFIG_BSD_PROCESS_ACCT is not set 172# CONFIG_BSD_PROCESS_ACCT is not set
158# CONFIG_TASKSTATS is not set 173# CONFIG_TASKSTATS is not set
159# CONFIG_USER_NS is not set
160# CONFIG_AUDIT is not set 174# CONFIG_AUDIT is not set
161# CONFIG_IKCONFIG is not set 175# CONFIG_IKCONFIG is not set
162CONFIG_LOG_BUF_SHIFT=14 176CONFIG_LOG_BUF_SHIFT=14
177# CONFIG_CGROUPS is not set
178# CONFIG_GROUP_SCHED is not set
163CONFIG_SYSFS_DEPRECATED=y 179CONFIG_SYSFS_DEPRECATED=y
180CONFIG_SYSFS_DEPRECATED_V2=y
164# CONFIG_RELAY is not set 181# CONFIG_RELAY is not set
182# CONFIG_NAMESPACES is not set
165# CONFIG_BLK_DEV_INITRD is not set 183# CONFIG_BLK_DEV_INITRD is not set
166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 184# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
167CONFIG_SYSCTL=y 185CONFIG_SYSCTL=y
168CONFIG_EMBEDDED=y 186CONFIG_EMBEDDED=y
169CONFIG_SYSCTL_SYSCALL=y 187CONFIG_SYSCTL_SYSCALL=y
188CONFIG_SYSCTL_SYSCALL_CHECK=y
170CONFIG_KALLSYMS=y 189CONFIG_KALLSYMS=y
171# CONFIG_KALLSYMS_EXTRA_PASS is not set 190# CONFIG_KALLSYMS_EXTRA_PASS is not set
172CONFIG_HOTPLUG=y 191CONFIG_HOTPLUG=y
173CONFIG_PRINTK=y 192CONFIG_PRINTK=y
174CONFIG_BUG=y 193CONFIG_BUG=y
175CONFIG_ELF_CORE=y 194CONFIG_ELF_CORE=y
195# CONFIG_PCSPKR_PLATFORM is not set
196CONFIG_COMPAT_BRK=y
176CONFIG_BASE_FULL=y 197CONFIG_BASE_FULL=y
177CONFIG_FUTEX=y 198CONFIG_FUTEX=y
178CONFIG_ANON_INODES=y 199CONFIG_ANON_INODES=y
@@ -185,10 +206,19 @@ CONFIG_VM_EVENT_COUNTERS=y
185CONFIG_SLAB=y 206CONFIG_SLAB=y
186# CONFIG_SLUB is not set 207# CONFIG_SLUB is not set
187# CONFIG_SLOB is not set 208# CONFIG_SLOB is not set
209# CONFIG_PROFILING is not set
210# CONFIG_MARKERS is not set
211CONFIG_HAVE_OPROFILE=y
212# CONFIG_HAVE_KPROBES is not set
213# CONFIG_HAVE_KRETPROBES is not set
214# CONFIG_HAVE_DMA_ATTRS is not set
215CONFIG_PROC_PAGE_MONITOR=y
216CONFIG_SLABINFO=y
188CONFIG_RT_MUTEXES=y 217CONFIG_RT_MUTEXES=y
189# CONFIG_TINY_SHMEM is not set 218# CONFIG_TINY_SHMEM is not set
190CONFIG_BASE_SMALL=0 219CONFIG_BASE_SMALL=0
191CONFIG_MODULES=y 220CONFIG_MODULES=y
221# CONFIG_MODULE_FORCE_LOAD is not set
192CONFIG_MODULE_UNLOAD=y 222CONFIG_MODULE_UNLOAD=y
193CONFIG_MODULE_FORCE_UNLOAD=y 223CONFIG_MODULE_FORCE_UNLOAD=y
194CONFIG_MODVERSIONS=y 224CONFIG_MODVERSIONS=y
@@ -212,18 +242,17 @@ CONFIG_DEFAULT_AS=y
212# CONFIG_DEFAULT_CFQ is not set 242# CONFIG_DEFAULT_CFQ is not set
213# CONFIG_DEFAULT_NOOP is not set 243# CONFIG_DEFAULT_NOOP is not set
214CONFIG_DEFAULT_IOSCHED="anticipatory" 244CONFIG_DEFAULT_IOSCHED="anticipatory"
245CONFIG_CLASSIC_RCU=y
215 246
216# 247#
217# Bus options (PCI, PCMCIA, EISA, ISA, TC) 248# Bus options (PCI, PCMCIA, EISA, ISA, TC)
218# 249#
219CONFIG_HW_HAS_PCI=y 250CONFIG_HW_HAS_PCI=y
220CONFIG_PCI=y 251CONFIG_PCI=y
252CONFIG_PCI_DOMAINS=y
221# CONFIG_ARCH_SUPPORTS_MSI is not set 253# CONFIG_ARCH_SUPPORTS_MSI is not set
254CONFIG_PCI_LEGACY=y
222CONFIG_MMU=y 255CONFIG_MMU=y
223
224#
225# PCCARD (PCMCIA/CardBus) support
226#
227# CONFIG_PCCARD is not set 256# CONFIG_PCCARD is not set
228# CONFIG_HOTPLUG_PCI is not set 257# CONFIG_HOTPLUG_PCI is not set
229 258
@@ -237,6 +266,7 @@ CONFIG_TRAD_SIGNALS=y
237# 266#
238# Power management options 267# Power management options
239# 268#
269CONFIG_ARCH_SUSPEND_POSSIBLE=y
240# CONFIG_PM is not set 270# CONFIG_PM is not set
241 271
242# 272#
@@ -277,6 +307,7 @@ CONFIG_SYN_COOKIES=y
277# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 307# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
278# CONFIG_INET_XFRM_MODE_TUNNEL is not set 308# CONFIG_INET_XFRM_MODE_TUNNEL is not set
279# CONFIG_INET_XFRM_MODE_BEET is not set 309# CONFIG_INET_XFRM_MODE_BEET is not set
310# CONFIG_INET_LRO is not set
280CONFIG_INET_DIAG=y 311CONFIG_INET_DIAG=y
281CONFIG_INET_TCP_DIAG=y 312CONFIG_INET_TCP_DIAG=y
282# CONFIG_TCP_CONG_ADVANCED is not set 313# CONFIG_TCP_CONG_ADVANCED is not set
@@ -284,15 +315,10 @@ CONFIG_TCP_CONG_CUBIC=y
284CONFIG_DEFAULT_TCP_CONG="cubic" 315CONFIG_DEFAULT_TCP_CONG="cubic"
285# CONFIG_TCP_MD5SIG is not set 316# CONFIG_TCP_MD5SIG is not set
286# CONFIG_IPV6 is not set 317# CONFIG_IPV6 is not set
287# CONFIG_INET6_XFRM_TUNNEL is not set
288# CONFIG_INET6_TUNNEL is not set
289CONFIG_NETWORK_SECMARK=y 318CONFIG_NETWORK_SECMARK=y
290# CONFIG_NETFILTER is not set 319# CONFIG_NETFILTER is not set
291# CONFIG_IP_DCCP is not set 320# CONFIG_IP_DCCP is not set
292# CONFIG_IP_SCTP is not set 321# CONFIG_IP_SCTP is not set
293# CONFIG_SCTP_HMAC_NONE is not set
294# CONFIG_SCTP_HMAC_SHA1 is not set
295# CONFIG_SCTP_HMAC_MD5 is not set
296# CONFIG_TIPC is not set 322# CONFIG_TIPC is not set
297# CONFIG_ATM is not set 323# CONFIG_ATM is not set
298# CONFIG_BRIDGE is not set 324# CONFIG_BRIDGE is not set
@@ -305,10 +331,6 @@ CONFIG_NETWORK_SECMARK=y
305# CONFIG_LAPB is not set 331# CONFIG_LAPB is not set
306# CONFIG_ECONET is not set 332# CONFIG_ECONET is not set
307# CONFIG_WAN_ROUTER is not set 333# CONFIG_WAN_ROUTER is not set
308
309#
310# QoS and/or fair queueing
311#
312# CONFIG_NET_SCHED is not set 334# CONFIG_NET_SCHED is not set
313 335
314# 336#
@@ -316,6 +338,7 @@ CONFIG_NETWORK_SECMARK=y
316# 338#
317# CONFIG_NET_PKTGEN is not set 339# CONFIG_NET_PKTGEN is not set
318# CONFIG_HAMRADIO is not set 340# CONFIG_HAMRADIO is not set
341# CONFIG_CAN is not set
319# CONFIG_IRDA is not set 342# CONFIG_IRDA is not set
320# CONFIG_BT is not set 343# CONFIG_BT is not set
321# CONFIG_AF_RXRPC is not set 344# CONFIG_AF_RXRPC is not set
@@ -338,6 +361,7 @@ CONFIG_FIB_RULES=y
338# 361#
339# Generic Driver Options 362# Generic Driver Options
340# 363#
364CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
341CONFIG_STANDALONE=y 365CONFIG_STANDALONE=y
342CONFIG_PREVENT_FIRMWARE_BUILD=y 366CONFIG_PREVENT_FIRMWARE_BUILD=y
343CONFIG_FW_LOADER=y 367CONFIG_FW_LOADER=y
@@ -359,10 +383,11 @@ CONFIG_BLK_DEV_NBD=m
359CONFIG_BLK_DEV_RAM=y 383CONFIG_BLK_DEV_RAM=y
360CONFIG_BLK_DEV_RAM_COUNT=16 384CONFIG_BLK_DEV_RAM_COUNT=16
361CONFIG_BLK_DEV_RAM_SIZE=4096 385CONFIG_BLK_DEV_RAM_SIZE=4096
362CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 386CONFIG_BLK_DEV_XIP=y
363# CONFIG_CDROM_PKTCDVD is not set 387# CONFIG_CDROM_PKTCDVD is not set
364# CONFIG_ATA_OVER_ETH is not set 388# CONFIG_ATA_OVER_ETH is not set
365# CONFIG_MISC_DEVICES is not set 389# CONFIG_MISC_DEVICES is not set
390CONFIG_HAVE_IDE=y
366# CONFIG_IDE is not set 391# CONFIG_IDE is not set
367 392
368# 393#
@@ -402,18 +427,13 @@ CONFIG_SCSI_WAIT_SCAN=m
402# CONFIG_SCSI_ISCSI_ATTRS is not set 427# CONFIG_SCSI_ISCSI_ATTRS is not set
403CONFIG_SCSI_SAS_ATTRS=m 428CONFIG_SCSI_SAS_ATTRS=m
404CONFIG_SCSI_SAS_LIBSAS=m 429CONFIG_SCSI_SAS_LIBSAS=m
430CONFIG_SCSI_SAS_HOST_SMP=y
405# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set 431# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
432# CONFIG_SCSI_SRP_ATTRS is not set
406# CONFIG_SCSI_LOWLEVEL is not set 433# CONFIG_SCSI_LOWLEVEL is not set
407# CONFIG_ATA is not set 434# CONFIG_ATA is not set
408# CONFIG_MD is not set 435# CONFIG_MD is not set
409
410#
411# Fusion MPT device support
412#
413# CONFIG_FUSION is not set 436# CONFIG_FUSION is not set
414# CONFIG_FUSION_SPI is not set
415# CONFIG_FUSION_FC is not set
416# CONFIG_FUSION_SAS is not set
417 437
418# 438#
419# IEEE 1394 (FireWire) support 439# IEEE 1394 (FireWire) support
@@ -428,6 +448,7 @@ CONFIG_NETDEVICES=y
428# CONFIG_MACVLAN is not set 448# CONFIG_MACVLAN is not set
429# CONFIG_EQUALIZER is not set 449# CONFIG_EQUALIZER is not set
430# CONFIG_TUN is not set 450# CONFIG_TUN is not set
451# CONFIG_VETH is not set
431# CONFIG_ARCNET is not set 452# CONFIG_ARCNET is not set
432# CONFIG_PHYLIB is not set 453# CONFIG_PHYLIB is not set
433CONFIG_NET_ETHERNET=y 454CONFIG_NET_ETHERNET=y
@@ -440,6 +461,10 @@ CONFIG_MII=y
440# CONFIG_DM9000 is not set 461# CONFIG_DM9000 is not set
441# CONFIG_NET_TULIP is not set 462# CONFIG_NET_TULIP is not set
442# CONFIG_HP100 is not set 463# CONFIG_HP100 is not set
464# CONFIG_IBM_NEW_EMAC_ZMII is not set
465# CONFIG_IBM_NEW_EMAC_RGMII is not set
466# CONFIG_IBM_NEW_EMAC_TAH is not set
467# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
443CONFIG_NET_PCI=y 468CONFIG_NET_PCI=y
444# CONFIG_PCNET32 is not set 469# CONFIG_PCNET32 is not set
445# CONFIG_AMD8111_ETH is not set 470# CONFIG_AMD8111_ETH is not set
@@ -447,7 +472,6 @@ CONFIG_NET_PCI=y
447# CONFIG_B44 is not set 472# CONFIG_B44 is not set
448# CONFIG_FORCEDETH is not set 473# CONFIG_FORCEDETH is not set
449# CONFIG_TC35815 is not set 474# CONFIG_TC35815 is not set
450# CONFIG_DGRS is not set
451# CONFIG_EEPRO100 is not set 475# CONFIG_EEPRO100 is not set
452CONFIG_E100=y 476CONFIG_E100=y
453# CONFIG_FEALNX is not set 477# CONFIG_FEALNX is not set
@@ -455,6 +479,7 @@ CONFIG_E100=y
455# CONFIG_NE2K_PCI is not set 479# CONFIG_NE2K_PCI is not set
456# CONFIG_8139CP is not set 480# CONFIG_8139CP is not set
457# CONFIG_8139TOO is not set 481# CONFIG_8139TOO is not set
482# CONFIG_R6040 is not set
458# CONFIG_SIS900 is not set 483# CONFIG_SIS900 is not set
459# CONFIG_EPIC100 is not set 484# CONFIG_EPIC100 is not set
460# CONFIG_SUNDANCE is not set 485# CONFIG_SUNDANCE is not set
@@ -470,6 +495,7 @@ CONFIG_E100=y
470# 495#
471# CONFIG_WLAN_PRE80211 is not set 496# CONFIG_WLAN_PRE80211 is not set
472# CONFIG_WLAN_80211 is not set 497# CONFIG_WLAN_80211 is not set
498# CONFIG_IWLWIFI_LEDS is not set
473 499
474# 500#
475# USB Network Adapters 501# USB Network Adapters
@@ -478,7 +504,6 @@ CONFIG_USB_CATC=m
478CONFIG_USB_KAWETH=m 504CONFIG_USB_KAWETH=m
479CONFIG_USB_PEGASUS=m 505CONFIG_USB_PEGASUS=m
480CONFIG_USB_RTL8150=m 506CONFIG_USB_RTL8150=m
481# CONFIG_USB_USBNET_MII is not set
482# CONFIG_USB_USBNET is not set 507# CONFIG_USB_USBNET is not set
483# CONFIG_WAN is not set 508# CONFIG_WAN is not set
484# CONFIG_FDDI is not set 509# CONFIG_FDDI is not set
@@ -486,7 +511,6 @@ CONFIG_USB_RTL8150=m
486# CONFIG_PPP is not set 511# CONFIG_PPP is not set
487# CONFIG_SLIP is not set 512# CONFIG_SLIP is not set
488# CONFIG_NET_FC is not set 513# CONFIG_NET_FC is not set
489# CONFIG_SHAPER is not set
490# CONFIG_NETCONSOLE is not set 514# CONFIG_NETCONSOLE is not set
491# CONFIG_NETPOLL is not set 515# CONFIG_NETPOLL is not set
492# CONFIG_NET_POLL_CONTROLLER is not set 516# CONFIG_NET_POLL_CONTROLLER is not set
@@ -505,7 +529,6 @@ CONFIG_INPUT=y
505# 529#
506# CONFIG_INPUT_MOUSEDEV is not set 530# CONFIG_INPUT_MOUSEDEV is not set
507# CONFIG_INPUT_JOYDEV is not set 531# CONFIG_INPUT_JOYDEV is not set
508# CONFIG_INPUT_TSDEV is not set
509# CONFIG_INPUT_EVDEV is not set 532# CONFIG_INPUT_EVDEV is not set
510# CONFIG_INPUT_EVBUG is not set 533# CONFIG_INPUT_EVBUG is not set
511 534
@@ -532,7 +555,9 @@ CONFIG_VT=y
532CONFIG_VT_CONSOLE=y 555CONFIG_VT_CONSOLE=y
533CONFIG_HW_CONSOLE=y 556CONFIG_HW_CONSOLE=y
534CONFIG_VT_HW_CONSOLE_BINDING=y 557CONFIG_VT_HW_CONSOLE_BINDING=y
558# CONFIG_DEVKMEM is not set
535# CONFIG_SERIAL_NONSTANDARD is not set 559# CONFIG_SERIAL_NONSTANDARD is not set
560# CONFIG_NOZOMI is not set
536 561
537# 562#
538# Serial drivers 563# Serial drivers
@@ -551,52 +576,62 @@ CONFIG_UNIX98_PTYS=y
551CONFIG_LEGACY_PTYS=y 576CONFIG_LEGACY_PTYS=y
552CONFIG_LEGACY_PTY_COUNT=256 577CONFIG_LEGACY_PTY_COUNT=256
553# CONFIG_IPMI_HANDLER is not set 578# CONFIG_IPMI_HANDLER is not set
554# CONFIG_WATCHDOG is not set
555# CONFIG_HW_RANDOM is not set 579# CONFIG_HW_RANDOM is not set
556# CONFIG_RTC is not set
557# CONFIG_R3964 is not set 580# CONFIG_R3964 is not set
558# CONFIG_APPLICOM is not set 581# CONFIG_APPLICOM is not set
559# CONFIG_GPIO_TB0219 is not set 582# CONFIG_GPIO_TB0219 is not set
560# CONFIG_DRM is not set
561CONFIG_GPIO_VR41XX=y 583CONFIG_GPIO_VR41XX=y
562# CONFIG_RAW_DRIVER is not set 584# CONFIG_RAW_DRIVER is not set
563# CONFIG_TCG_TPM is not set 585# CONFIG_TCG_TPM is not set
564CONFIG_DEVPORT=y 586CONFIG_DEVPORT=y
565# CONFIG_I2C is not set 587# CONFIG_I2C is not set
566
567#
568# SPI support
569#
570# CONFIG_SPI is not set 588# CONFIG_SPI is not set
571# CONFIG_SPI_MASTER is not set
572# CONFIG_W1 is not set 589# CONFIG_W1 is not set
573# CONFIG_POWER_SUPPLY is not set 590# CONFIG_POWER_SUPPLY is not set
574# CONFIG_HWMON is not set 591# CONFIG_HWMON is not set
592# CONFIG_THERMAL is not set
593# CONFIG_WATCHDOG is not set
594
595#
596# Sonics Silicon Backplane
597#
598CONFIG_SSB_POSSIBLE=y
599# CONFIG_SSB is not set
575 600
576# 601#
577# Multifunction device drivers 602# Multifunction device drivers
578# 603#
579# CONFIG_MFD_SM501 is not set 604# CONFIG_MFD_SM501 is not set
605# CONFIG_HTC_PASIC3 is not set
580 606
581# 607#
582# Multimedia devices 608# Multimedia devices
583# 609#
610
611#
612# Multimedia core support
613#
584# CONFIG_VIDEO_DEV is not set 614# CONFIG_VIDEO_DEV is not set
585# CONFIG_DVB_CORE is not set 615# CONFIG_DVB_CORE is not set
616
617#
618# Multimedia drivers
619#
586# CONFIG_DAB is not set 620# CONFIG_DAB is not set
587 621
588# 622#
589# Graphics support 623# Graphics support
590# 624#
625# CONFIG_DRM is not set
626# CONFIG_VGASTATE is not set
627# CONFIG_VIDEO_OUTPUT_CONTROL is not set
628# CONFIG_FB is not set
591# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 629# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
592 630
593# 631#
594# Display device support 632# Display device support
595# 633#
596# CONFIG_DISPLAY_SUPPORT is not set 634# CONFIG_DISPLAY_SUPPORT is not set
597# CONFIG_VGASTATE is not set
598# CONFIG_VIDEO_OUTPUT_CONTROL is not set
599# CONFIG_FB is not set
600 635
601# 636#
602# Console display driver support 637# Console display driver support
@@ -615,6 +650,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
615CONFIG_USB_ARCH_HAS_EHCI=y 650CONFIG_USB_ARCH_HAS_EHCI=y
616CONFIG_USB=y 651CONFIG_USB=y
617# CONFIG_USB_DEBUG is not set 652# CONFIG_USB_DEBUG is not set
653# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
618 654
619# 655#
620# Miscellaneous USB options 656# Miscellaneous USB options
@@ -623,15 +659,18 @@ CONFIG_USB_DEVICEFS=y
623CONFIG_USB_DEVICE_CLASS=y 659CONFIG_USB_DEVICE_CLASS=y
624# CONFIG_USB_DYNAMIC_MINORS is not set 660# CONFIG_USB_DYNAMIC_MINORS is not set
625# CONFIG_USB_OTG is not set 661# CONFIG_USB_OTG is not set
662# CONFIG_USB_OTG_WHITELIST is not set
663# CONFIG_USB_OTG_BLACKLIST_HUB is not set
626 664
627# 665#
628# USB Host Controller Drivers 666# USB Host Controller Drivers
629# 667#
668# CONFIG_USB_C67X00_HCD is not set
630CONFIG_USB_EHCI_HCD=y 669CONFIG_USB_EHCI_HCD=y
631# CONFIG_USB_EHCI_SPLIT_ISO is not set
632# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 670# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
633# CONFIG_USB_EHCI_TT_NEWSCHED is not set 671# CONFIG_USB_EHCI_TT_NEWSCHED is not set
634# CONFIG_USB_ISP116X_HCD is not set 672# CONFIG_USB_ISP116X_HCD is not set
673# CONFIG_USB_ISP1760_HCD is not set
635CONFIG_USB_OHCI_HCD=y 674CONFIG_USB_OHCI_HCD=y
636# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 675# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
637# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 676# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -657,13 +696,16 @@ CONFIG_USB_STORAGE=y
657# CONFIG_USB_STORAGE_DEBUG is not set 696# CONFIG_USB_STORAGE_DEBUG is not set
658# CONFIG_USB_STORAGE_DATAFAB is not set 697# CONFIG_USB_STORAGE_DATAFAB is not set
659# CONFIG_USB_STORAGE_FREECOM is not set 698# CONFIG_USB_STORAGE_FREECOM is not set
699# CONFIG_USB_STORAGE_ISD200 is not set
660# CONFIG_USB_STORAGE_DPCM is not set 700# CONFIG_USB_STORAGE_DPCM is not set
661# CONFIG_USB_STORAGE_USBAT is not set 701# CONFIG_USB_STORAGE_USBAT is not set
662# CONFIG_USB_STORAGE_SDDR09 is not set 702# CONFIG_USB_STORAGE_SDDR09 is not set
663# CONFIG_USB_STORAGE_SDDR55 is not set 703# CONFIG_USB_STORAGE_SDDR55 is not set
664# CONFIG_USB_STORAGE_JUMPSHOT is not set 704# CONFIG_USB_STORAGE_JUMPSHOT is not set
665# CONFIG_USB_STORAGE_ALAUDA is not set 705# CONFIG_USB_STORAGE_ALAUDA is not set
706# CONFIG_USB_STORAGE_ONETOUCH is not set
666# CONFIG_USB_STORAGE_KARMA is not set 707# CONFIG_USB_STORAGE_KARMA is not set
708# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
667# CONFIG_USB_LIBUSUAL is not set 709# CONFIG_USB_LIBUSUAL is not set
668 710
669# 711#
@@ -676,10 +718,6 @@ CONFIG_USB_STORAGE=y
676# 718#
677# USB port drivers 719# USB port drivers
678# 720#
679
680#
681# USB Serial Converter support
682#
683# CONFIG_USB_SERIAL is not set 721# CONFIG_USB_SERIAL is not set
684 722
685# 723#
@@ -705,17 +743,11 @@ CONFIG_USB_STORAGE=y
705# CONFIG_USB_TRANCEVIBRATOR is not set 743# CONFIG_USB_TRANCEVIBRATOR is not set
706# CONFIG_USB_IOWARRIOR is not set 744# CONFIG_USB_IOWARRIOR is not set
707# CONFIG_USB_TEST is not set 745# CONFIG_USB_TEST is not set
708
709#
710# USB DSL modem support
711#
712
713#
714# USB Gadget Support
715#
716# CONFIG_USB_GADGET is not set 746# CONFIG_USB_GADGET is not set
717# CONFIG_MMC is not set 747# CONFIG_MMC is not set
748# CONFIG_MEMSTICK is not set
718# CONFIG_NEW_LEDS is not set 749# CONFIG_NEW_LEDS is not set
750# CONFIG_ACCESSIBILITY is not set
719# CONFIG_INFINIBAND is not set 751# CONFIG_INFINIBAND is not set
720CONFIG_RTC_LIB=y 752CONFIG_RTC_LIB=y
721CONFIG_RTC_CLASS=y 753CONFIG_RTC_CLASS=y
@@ -740,9 +772,10 @@ CONFIG_RTC_INTF_DEV=y
740# Platform RTC drivers 772# Platform RTC drivers
741# 773#
742# CONFIG_RTC_DRV_CMOS is not set 774# CONFIG_RTC_DRV_CMOS is not set
775# CONFIG_RTC_DRV_DS1511 is not set
743# CONFIG_RTC_DRV_DS1553 is not set 776# CONFIG_RTC_DRV_DS1553 is not set
744# CONFIG_RTC_DRV_STK17TA8 is not set
745# CONFIG_RTC_DRV_DS1742 is not set 777# CONFIG_RTC_DRV_DS1742 is not set
778# CONFIG_RTC_DRV_STK17TA8 is not set
746# CONFIG_RTC_DRV_M48T86 is not set 779# CONFIG_RTC_DRV_M48T86 is not set
747# CONFIG_RTC_DRV_M48T59 is not set 780# CONFIG_RTC_DRV_M48T59 is not set
748# CONFIG_RTC_DRV_V3020 is not set 781# CONFIG_RTC_DRV_V3020 is not set
@@ -751,23 +784,6 @@ CONFIG_RTC_INTF_DEV=y
751# on-CPU RTC drivers 784# on-CPU RTC drivers
752# 785#
753CONFIG_RTC_DRV_VR41XX=y 786CONFIG_RTC_DRV_VR41XX=y
754
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#
769# Userspace I/O
770#
771# CONFIG_UIO is not set 787# CONFIG_UIO is not set
772 788
773# 789#
@@ -782,14 +798,11 @@ CONFIG_EXT2_FS=y
782# CONFIG_JFS_FS is not set 798# CONFIG_JFS_FS is not set
783CONFIG_FS_POSIX_ACL=y 799CONFIG_FS_POSIX_ACL=y
784# CONFIG_XFS_FS is not set 800# CONFIG_XFS_FS is not set
785# CONFIG_GFS2_FS is not set
786# CONFIG_OCFS2_FS is not set 801# CONFIG_OCFS2_FS is not set
787# CONFIG_MINIX_FS is not set 802CONFIG_DNOTIFY=y
788CONFIG_ROMFS_FS=m
789CONFIG_INOTIFY=y 803CONFIG_INOTIFY=y
790CONFIG_INOTIFY_USER=y 804CONFIG_INOTIFY_USER=y
791# CONFIG_QUOTA is not set 805# CONFIG_QUOTA is not set
792CONFIG_DNOTIFY=y
793# CONFIG_AUTOFS_FS is not set 806# CONFIG_AUTOFS_FS is not set
794CONFIG_AUTOFS4_FS=y 807CONFIG_AUTOFS4_FS=y
795# CONFIG_FUSE_FS is not set 808# CONFIG_FUSE_FS is not set
@@ -818,7 +831,6 @@ CONFIG_SYSFS=y
818CONFIG_TMPFS=y 831CONFIG_TMPFS=y
819CONFIG_TMPFS_POSIX_ACL=y 832CONFIG_TMPFS_POSIX_ACL=y
820# CONFIG_HUGETLB_PAGE is not set 833# CONFIG_HUGETLB_PAGE is not set
821CONFIG_RAMFS=y
822# CONFIG_CONFIGFS_FS is not set 834# CONFIG_CONFIGFS_FS is not set
823 835
824# 836#
@@ -833,24 +845,21 @@ CONFIG_RAMFS=y
833# CONFIG_EFS_FS is not set 845# CONFIG_EFS_FS is not set
834CONFIG_CRAMFS=m 846CONFIG_CRAMFS=m
835# CONFIG_VXFS_FS is not set 847# CONFIG_VXFS_FS is not set
848# CONFIG_MINIX_FS is not set
836# CONFIG_HPFS_FS is not set 849# CONFIG_HPFS_FS is not set
837# CONFIG_QNX4FS_FS is not set 850# CONFIG_QNX4FS_FS is not set
851CONFIG_ROMFS_FS=m
838# CONFIG_SYSV_FS is not set 852# CONFIG_SYSV_FS is not set
839# CONFIG_UFS_FS is not set 853# CONFIG_UFS_FS is not set
840 854CONFIG_NETWORK_FILESYSTEMS=y
841#
842# Network File Systems
843#
844CONFIG_NFS_FS=y 855CONFIG_NFS_FS=y
845CONFIG_NFS_V3=y 856CONFIG_NFS_V3=y
846# CONFIG_NFS_V3_ACL is not set 857# CONFIG_NFS_V3_ACL is not set
847# CONFIG_NFS_V4 is not set 858# CONFIG_NFS_V4 is not set
848# CONFIG_NFS_DIRECTIO is not set
849CONFIG_NFSD=m 859CONFIG_NFSD=m
850CONFIG_NFSD_V3=y 860CONFIG_NFSD_V3=y
851# CONFIG_NFSD_V3_ACL is not set 861# CONFIG_NFSD_V3_ACL is not set
852# CONFIG_NFSD_V4 is not set 862# CONFIG_NFSD_V4 is not set
853# CONFIG_NFSD_TCP is not set
854CONFIG_ROOT_NFS=y 863CONFIG_ROOT_NFS=y
855CONFIG_LOCKD=y 864CONFIG_LOCKD=y
856CONFIG_LOCKD_V4=y 865CONFIG_LOCKD_V4=y
@@ -871,47 +880,38 @@ CONFIG_SUNRPC=y
871# 880#
872# CONFIG_PARTITION_ADVANCED is not set 881# CONFIG_PARTITION_ADVANCED is not set
873CONFIG_MSDOS_PARTITION=y 882CONFIG_MSDOS_PARTITION=y
874
875#
876# Native Language Support
877#
878# CONFIG_NLS is not set 883# CONFIG_NLS is not set
879
880#
881# Distributed Lock Manager
882#
883# CONFIG_DLM is not set 884# CONFIG_DLM is not set
884 885
885# 886#
886# Profiling support
887#
888# CONFIG_PROFILING is not set
889
890#
891# Kernel hacking 887# Kernel hacking
892# 888#
893CONFIG_TRACE_IRQFLAGS_SUPPORT=y 889CONFIG_TRACE_IRQFLAGS_SUPPORT=y
894# CONFIG_PRINTK_TIME is not set 890# CONFIG_PRINTK_TIME is not set
891CONFIG_ENABLE_WARN_DEPRECATED=y
895CONFIG_ENABLE_MUST_CHECK=y 892CONFIG_ENABLE_MUST_CHECK=y
893CONFIG_FRAME_WARN=1024
896# CONFIG_MAGIC_SYSRQ is not set 894# CONFIG_MAGIC_SYSRQ is not set
897# CONFIG_UNUSED_SYMBOLS is not set 895# CONFIG_UNUSED_SYMBOLS is not set
898# CONFIG_DEBUG_FS is not set 896# CONFIG_DEBUG_FS is not set
899# CONFIG_HEADERS_CHECK is not set 897# CONFIG_HEADERS_CHECK is not set
900# CONFIG_DEBUG_KERNEL is not set 898# CONFIG_DEBUG_KERNEL is not set
901CONFIG_CROSSCOMPILE=y 899# CONFIG_SAMPLES is not set
902CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" 900CONFIG_CMDLINE="cca=3 mem=32M console=ttyVR0,115200"
903 901
904# 902#
905# Security options 903# Security options
906# 904#
907# CONFIG_KEYS is not set 905# CONFIG_KEYS is not set
908# CONFIG_SECURITY is not set 906# CONFIG_SECURITY is not set
907# CONFIG_SECURITY_FILE_CAPABILITIES is not set
909# CONFIG_CRYPTO is not set 908# CONFIG_CRYPTO is not set
910 909
911# 910#
912# Library routines 911# Library routines
913# 912#
914CONFIG_BITREVERSE=m 913CONFIG_BITREVERSE=m
914# CONFIG_GENERIC_FIND_FIRST_BIT is not set
915# CONFIG_CRC_CCITT is not set 915# CONFIG_CRC_CCITT is not set
916# CONFIG_CRC16 is not set 916# CONFIG_CRC16 is not set
917# CONFIG_CRC_ITU_T is not set 917# CONFIG_CRC_ITU_T is not set
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig
index 40d4a40a970e..a5d0f3c55ed1 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.23-rc2 3# Linux kernel version: 2.6.26-rc1
4# Thu Aug 9 14:03:54 2007 4# Mon May 12 11:55:55 2008
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -10,9 +10,11 @@ CONFIG_MIPS=y
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_BASLER_EXCITE is not set 12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set
13# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
16# CONFIG_LEMOTE_FULONG is not set 18# CONFIG_LEMOTE_FULONG is not set
17# CONFIG_MIPS_ATLAS is not set 19# CONFIG_MIPS_ATLAS is not set
18# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
@@ -26,6 +28,7 @@ CONFIG_MACH_VR41XX=y
26# CONFIG_PMC_YOSEMITE is not set 28# CONFIG_PMC_YOSEMITE is not set
27# CONFIG_SGI_IP22 is not set 29# CONFIG_SGI_IP22 is not set
28# CONFIG_SGI_IP27 is not set 30# CONFIG_SGI_IP27 is not set
31# CONFIG_SGI_IP28 is not set
29# CONFIG_SGI_IP32 is not set 32# CONFIG_SGI_IP32 is not set
30# CONFIG_SIBYTE_CRHINE is not set 33# CONFIG_SIBYTE_CRHINE is not set
31# CONFIG_SIBYTE_CARMEL is not set 34# CONFIG_SIBYTE_CARMEL is not set
@@ -53,12 +56,17 @@ CONFIG_PCI_VR41XX=y
53CONFIG_RWSEM_GENERIC_SPINLOCK=y 56CONFIG_RWSEM_GENERIC_SPINLOCK=y
54# CONFIG_ARCH_HAS_ILOG2_U32 is not set 57# CONFIG_ARCH_HAS_ILOG2_U32 is not set
55# CONFIG_ARCH_HAS_ILOG2_U64 is not set 58# CONFIG_ARCH_HAS_ILOG2_U64 is not set
59CONFIG_ARCH_SUPPORTS_OPROFILE=y
56CONFIG_GENERIC_FIND_NEXT_BIT=y 60CONFIG_GENERIC_FIND_NEXT_BIT=y
57CONFIG_GENERIC_HWEIGHT=y 61CONFIG_GENERIC_HWEIGHT=y
58CONFIG_GENERIC_CALIBRATE_DELAY=y 62CONFIG_GENERIC_CALIBRATE_DELAY=y
63CONFIG_GENERIC_CLOCKEVENTS=y
59CONFIG_GENERIC_TIME=y 64CONFIG_GENERIC_TIME=y
65CONFIG_GENERIC_CMOS_UPDATE=y
60CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 66CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
61CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 67CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
68CONFIG_CEVT_R4K=y
69CONFIG_CSRC_R4K=y
62CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
63CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
64# CONFIG_HOTPLUG_CPU is not set 72# CONFIG_HOTPLUG_CPU is not set
@@ -113,6 +121,7 @@ CONFIG_CPU_HAS_SYNC=y
113CONFIG_GENERIC_HARDIRQS=y 121CONFIG_GENERIC_HARDIRQS=y
114CONFIG_GENERIC_IRQ_PROBE=y 122CONFIG_GENERIC_IRQ_PROBE=y
115CONFIG_ARCH_FLATMEM_ENABLE=y 123CONFIG_ARCH_FLATMEM_ENABLE=y
124CONFIG_ARCH_POPULATES_NODE_MAP=y
116CONFIG_SELECT_MEMORY_MODEL=y 125CONFIG_SELECT_MEMORY_MODEL=y
117CONFIG_FLATMEM_MANUAL=y 126CONFIG_FLATMEM_MANUAL=y
118# CONFIG_DISCONTIGMEM_MANUAL is not set 127# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -120,10 +129,16 @@ CONFIG_FLATMEM_MANUAL=y
120CONFIG_FLATMEM=y 129CONFIG_FLATMEM=y
121CONFIG_FLAT_NODE_MEM_MAP=y 130CONFIG_FLAT_NODE_MEM_MAP=y
122# CONFIG_SPARSEMEM_STATIC is not set 131# CONFIG_SPARSEMEM_STATIC is not set
132# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
133CONFIG_PAGEFLAGS_EXTENDED=y
123CONFIG_SPLIT_PTLOCK_CPUS=4 134CONFIG_SPLIT_PTLOCK_CPUS=4
124# CONFIG_RESOURCES_64BIT is not set 135# CONFIG_RESOURCES_64BIT is not set
125CONFIG_ZONE_DMA_FLAG=0 136CONFIG_ZONE_DMA_FLAG=0
126CONFIG_VIRT_TO_BUS=y 137CONFIG_VIRT_TO_BUS=y
138# CONFIG_TICK_ONESHOT is not set
139# CONFIG_NO_HZ is not set
140# CONFIG_HIGH_RES_TIMERS is not set
141CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
127# CONFIG_HZ_48 is not set 142# CONFIG_HZ_48 is not set
128# CONFIG_HZ_100 is not set 143# CONFIG_HZ_100 is not set
129# CONFIG_HZ_128 is not set 144# CONFIG_HZ_128 is not set
@@ -156,12 +171,15 @@ CONFIG_SYSVIPC_SYSCTL=y
156# CONFIG_POSIX_MQUEUE is not set 171# CONFIG_POSIX_MQUEUE is not set
157# CONFIG_BSD_PROCESS_ACCT is not set 172# CONFIG_BSD_PROCESS_ACCT is not set
158# CONFIG_TASKSTATS is not set 173# CONFIG_TASKSTATS is not set
159# CONFIG_USER_NS is not set
160# CONFIG_AUDIT is not set 174# CONFIG_AUDIT is not set
161# CONFIG_IKCONFIG is not set 175# CONFIG_IKCONFIG is not set
162CONFIG_LOG_BUF_SHIFT=14 176CONFIG_LOG_BUF_SHIFT=14
177# CONFIG_CGROUPS is not set
178# CONFIG_GROUP_SCHED is not set
163CONFIG_SYSFS_DEPRECATED=y 179CONFIG_SYSFS_DEPRECATED=y
180CONFIG_SYSFS_DEPRECATED_V2=y
164# CONFIG_RELAY is not set 181# CONFIG_RELAY is not set
182# CONFIG_NAMESPACES is not set
165# CONFIG_BLK_DEV_INITRD is not set 183# CONFIG_BLK_DEV_INITRD is not set
166# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 184# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
167CONFIG_SYSCTL=y 185CONFIG_SYSCTL=y
@@ -173,6 +191,8 @@ CONFIG_HOTPLUG=y
173CONFIG_PRINTK=y 191CONFIG_PRINTK=y
174CONFIG_BUG=y 192CONFIG_BUG=y
175CONFIG_ELF_CORE=y 193CONFIG_ELF_CORE=y
194# CONFIG_PCSPKR_PLATFORM is not set
195CONFIG_COMPAT_BRK=y
176CONFIG_BASE_FULL=y 196CONFIG_BASE_FULL=y
177CONFIG_FUTEX=y 197CONFIG_FUTEX=y
178CONFIG_ANON_INODES=y 198CONFIG_ANON_INODES=y
@@ -185,10 +205,19 @@ CONFIG_VM_EVENT_COUNTERS=y
185CONFIG_SLAB=y 205CONFIG_SLAB=y
186# CONFIG_SLUB is not set 206# CONFIG_SLUB is not set
187# CONFIG_SLOB is not set 207# CONFIG_SLOB is not set
208# CONFIG_PROFILING is not set
209# CONFIG_MARKERS is not set
210CONFIG_HAVE_OPROFILE=y
211# CONFIG_HAVE_KPROBES is not set
212# CONFIG_HAVE_KRETPROBES is not set
213# CONFIG_HAVE_DMA_ATTRS is not set
214CONFIG_PROC_PAGE_MONITOR=y
215CONFIG_SLABINFO=y
188CONFIG_RT_MUTEXES=y 216CONFIG_RT_MUTEXES=y
189# CONFIG_TINY_SHMEM is not set 217# CONFIG_TINY_SHMEM is not set
190CONFIG_BASE_SMALL=0 218CONFIG_BASE_SMALL=0
191CONFIG_MODULES=y 219CONFIG_MODULES=y
220# CONFIG_MODULE_FORCE_LOAD is not set
192CONFIG_MODULE_UNLOAD=y 221CONFIG_MODULE_UNLOAD=y
193CONFIG_MODULE_FORCE_UNLOAD=y 222CONFIG_MODULE_FORCE_UNLOAD=y
194CONFIG_MODVERSIONS=y 223CONFIG_MODVERSIONS=y
@@ -212,18 +241,17 @@ CONFIG_DEFAULT_AS=y
212# CONFIG_DEFAULT_CFQ is not set 241# CONFIG_DEFAULT_CFQ is not set
213# CONFIG_DEFAULT_NOOP is not set 242# CONFIG_DEFAULT_NOOP is not set
214CONFIG_DEFAULT_IOSCHED="anticipatory" 243CONFIG_DEFAULT_IOSCHED="anticipatory"
244CONFIG_CLASSIC_RCU=y
215 245
216# 246#
217# Bus options (PCI, PCMCIA, EISA, ISA, TC) 247# Bus options (PCI, PCMCIA, EISA, ISA, TC)
218# 248#
219CONFIG_HW_HAS_PCI=y 249CONFIG_HW_HAS_PCI=y
220CONFIG_PCI=y 250CONFIG_PCI=y
251CONFIG_PCI_DOMAINS=y
221# CONFIG_ARCH_SUPPORTS_MSI is not set 252# CONFIG_ARCH_SUPPORTS_MSI is not set
253CONFIG_PCI_LEGACY=y
222CONFIG_MMU=y 254CONFIG_MMU=y
223
224#
225# PCCARD (PCMCIA/CardBus) support
226#
227# CONFIG_PCCARD is not set 255# CONFIG_PCCARD is not set
228# CONFIG_HOTPLUG_PCI is not set 256# CONFIG_HOTPLUG_PCI is not set
229 257
@@ -237,6 +265,7 @@ CONFIG_TRAD_SIGNALS=y
237# 265#
238# Power management options 266# Power management options
239# 267#
268CONFIG_ARCH_SUSPEND_POSSIBLE=y
240# CONFIG_PM is not set 269# CONFIG_PM is not set
241 270
242# 271#
@@ -278,6 +307,7 @@ CONFIG_INET_TUNNEL=m
278# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 307# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
279# CONFIG_INET_XFRM_MODE_TUNNEL is not set 308# CONFIG_INET_XFRM_MODE_TUNNEL is not set
280# CONFIG_INET_XFRM_MODE_BEET is not set 309# CONFIG_INET_XFRM_MODE_BEET is not set
310# CONFIG_INET_LRO is not set
281CONFIG_INET_DIAG=y 311CONFIG_INET_DIAG=y
282CONFIG_INET_TCP_DIAG=y 312CONFIG_INET_TCP_DIAG=y
283CONFIG_TCP_CONG_ADVANCED=y 313CONFIG_TCP_CONG_ADVANCED=y
@@ -302,8 +332,6 @@ CONFIG_DEFAULT_BIC=y
302CONFIG_DEFAULT_TCP_CONG="bic" 332CONFIG_DEFAULT_TCP_CONG="bic"
303# CONFIG_TCP_MD5SIG is not set 333# CONFIG_TCP_MD5SIG is not set
304# CONFIG_IPV6 is not set 334# CONFIG_IPV6 is not set
305# CONFIG_INET6_XFRM_TUNNEL is not set
306# CONFIG_INET6_TUNNEL is not set
307CONFIG_NETWORK_SECMARK=y 335CONFIG_NETWORK_SECMARK=y
308# CONFIG_NETFILTER is not set 336# CONFIG_NETFILTER is not set
309# CONFIG_IP_DCCP is not set 337# CONFIG_IP_DCCP is not set
@@ -320,10 +348,6 @@ CONFIG_NETWORK_SECMARK=y
320# CONFIG_LAPB is not set 348# CONFIG_LAPB is not set
321# CONFIG_ECONET is not set 349# CONFIG_ECONET is not set
322# CONFIG_WAN_ROUTER is not set 350# CONFIG_WAN_ROUTER is not set
323
324#
325# QoS and/or fair queueing
326#
327# CONFIG_NET_SCHED is not set 351# CONFIG_NET_SCHED is not set
328 352
329# 353#
@@ -331,6 +355,7 @@ CONFIG_NETWORK_SECMARK=y
331# 355#
332# CONFIG_NET_PKTGEN is not set 356# CONFIG_NET_PKTGEN is not set
333# CONFIG_HAMRADIO is not set 357# CONFIG_HAMRADIO is not set
358# CONFIG_CAN is not set
334# CONFIG_IRDA is not set 359# CONFIG_IRDA is not set
335# CONFIG_BT is not set 360# CONFIG_BT is not set
336# CONFIG_AF_RXRPC is not set 361# CONFIG_AF_RXRPC is not set
@@ -353,6 +378,7 @@ CONFIG_FIB_RULES=y
353# 378#
354# Generic Driver Options 379# Generic Driver Options
355# 380#
381CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
356CONFIG_STANDALONE=y 382CONFIG_STANDALONE=y
357CONFIG_PREVENT_FIRMWARE_BUILD=y 383CONFIG_PREVENT_FIRMWARE_BUILD=y
358CONFIG_FW_LOADER=m 384CONFIG_FW_LOADER=m
@@ -374,10 +400,11 @@ CONFIG_BLK_DEV_NBD=m
374CONFIG_BLK_DEV_RAM=y 400CONFIG_BLK_DEV_RAM=y
375CONFIG_BLK_DEV_RAM_COUNT=16 401CONFIG_BLK_DEV_RAM_COUNT=16
376CONFIG_BLK_DEV_RAM_SIZE=4096 402CONFIG_BLK_DEV_RAM_SIZE=4096
377CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 403CONFIG_BLK_DEV_XIP=y
378# CONFIG_CDROM_PKTCDVD is not set 404# CONFIG_CDROM_PKTCDVD is not set
379# CONFIG_ATA_OVER_ETH is not set 405# CONFIG_ATA_OVER_ETH is not set
380# CONFIG_MISC_DEVICES is not set 406# CONFIG_MISC_DEVICES is not set
407CONFIG_HAVE_IDE=y
381# CONFIG_IDE is not set 408# CONFIG_IDE is not set
382 409
383# 410#
@@ -416,10 +443,14 @@ CONFIG_SCSI_WAIT_SCAN=m
416# CONFIG_SCSI_FC_ATTRS is not set 443# CONFIG_SCSI_FC_ATTRS is not set
417# CONFIG_SCSI_ISCSI_ATTRS is not set 444# CONFIG_SCSI_ISCSI_ATTRS is not set
418# CONFIG_SCSI_SAS_LIBSAS is not set 445# CONFIG_SCSI_SAS_LIBSAS is not set
446# CONFIG_SCSI_SRP_ATTRS is not set
419# CONFIG_SCSI_LOWLEVEL is not set 447# CONFIG_SCSI_LOWLEVEL is not set
420CONFIG_ATA=y 448CONFIG_ATA=y
421# CONFIG_ATA_NONSTANDARD is not set 449# CONFIG_ATA_NONSTANDARD is not set
450CONFIG_SATA_PMP=y
422# CONFIG_SATA_AHCI is not set 451# CONFIG_SATA_AHCI is not set
452# CONFIG_SATA_SIL24 is not set
453CONFIG_ATA_SFF=y
423# CONFIG_SATA_SVW is not set 454# CONFIG_SATA_SVW is not set
424# CONFIG_ATA_PIIX is not set 455# CONFIG_ATA_PIIX is not set
425# CONFIG_SATA_MV is not set 456# CONFIG_SATA_MV is not set
@@ -429,7 +460,6 @@ CONFIG_ATA=y
429# CONFIG_SATA_PROMISE is not set 460# CONFIG_SATA_PROMISE is not set
430# CONFIG_SATA_SX4 is not set 461# CONFIG_SATA_SX4 is not set
431# CONFIG_SATA_SIL is not set 462# CONFIG_SATA_SIL is not set
432# CONFIG_SATA_SIL24 is not set
433# CONFIG_SATA_SIS is not set 463# CONFIG_SATA_SIS is not set
434# CONFIG_SATA_ULI is not set 464# CONFIG_SATA_ULI is not set
435# CONFIG_SATA_VIA is not set 465# CONFIG_SATA_VIA is not set
@@ -458,7 +488,9 @@ CONFIG_ATA=y
458# CONFIG_PATA_MPIIX is not set 488# CONFIG_PATA_MPIIX is not set
459# CONFIG_PATA_OLDPIIX is not set 489# CONFIG_PATA_OLDPIIX is not set
460# CONFIG_PATA_NETCELL is not set 490# CONFIG_PATA_NETCELL is not set
491# CONFIG_PATA_NINJA32 is not set
461# CONFIG_PATA_NS87410 is not set 492# CONFIG_PATA_NS87410 is not set
493# CONFIG_PATA_NS87415 is not set
462# CONFIG_PATA_OPTI is not set 494# CONFIG_PATA_OPTI is not set
463# CONFIG_PATA_OPTIDMA is not set 495# CONFIG_PATA_OPTIDMA is not set
464# CONFIG_PATA_PDC_OLD is not set 496# CONFIG_PATA_PDC_OLD is not set
@@ -472,15 +504,9 @@ CONFIG_PATA_SIL680=y
472# CONFIG_PATA_VIA is not set 504# CONFIG_PATA_VIA is not set
473# CONFIG_PATA_WINBOND is not set 505# CONFIG_PATA_WINBOND is not set
474# CONFIG_PATA_PLATFORM is not set 506# CONFIG_PATA_PLATFORM is not set
507# CONFIG_PATA_SCH is not set
475# CONFIG_MD is not set 508# CONFIG_MD is not set
476
477#
478# Fusion MPT device support
479#
480# CONFIG_FUSION is not set 509# CONFIG_FUSION is not set
481# CONFIG_FUSION_SPI is not set
482# CONFIG_FUSION_FC is not set
483# CONFIG_FUSION_SAS is not set
484 510
485# 511#
486# IEEE 1394 (FireWire) support 512# IEEE 1394 (FireWire) support
@@ -520,6 +546,7 @@ CONFIG_NETDEVICES=y
520# CONFIG_MACVLAN is not set 546# CONFIG_MACVLAN is not set
521# CONFIG_EQUALIZER is not set 547# CONFIG_EQUALIZER is not set
522# CONFIG_TUN is not set 548# CONFIG_TUN is not set
549# CONFIG_VETH is not set
523# CONFIG_ARCNET is not set 550# CONFIG_ARCNET is not set
524# CONFIG_PHYLIB is not set 551# CONFIG_PHYLIB is not set
525CONFIG_NET_ETHERNET=y 552CONFIG_NET_ETHERNET=y
@@ -532,6 +559,10 @@ CONFIG_MII=y
532# CONFIG_DM9000 is not set 559# CONFIG_DM9000 is not set
533# CONFIG_NET_TULIP is not set 560# CONFIG_NET_TULIP is not set
534# CONFIG_HP100 is not set 561# CONFIG_HP100 is not set
562# CONFIG_IBM_NEW_EMAC_ZMII is not set
563# CONFIG_IBM_NEW_EMAC_RGMII is not set
564# CONFIG_IBM_NEW_EMAC_TAH is not set
565# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
535CONFIG_NET_PCI=y 566CONFIG_NET_PCI=y
536# CONFIG_PCNET32 is not set 567# CONFIG_PCNET32 is not set
537# CONFIG_AMD8111_ETH is not set 568# CONFIG_AMD8111_ETH is not set
@@ -539,7 +570,6 @@ CONFIG_NET_PCI=y
539# CONFIG_B44 is not set 570# CONFIG_B44 is not set
540# CONFIG_FORCEDETH is not set 571# CONFIG_FORCEDETH is not set
541# CONFIG_TC35815 is not set 572# CONFIG_TC35815 is not set
542# CONFIG_DGRS is not set
543# CONFIG_EEPRO100 is not set 573# CONFIG_EEPRO100 is not set
544# CONFIG_E100 is not set 574# CONFIG_E100 is not set
545# CONFIG_FEALNX is not set 575# CONFIG_FEALNX is not set
@@ -551,6 +581,7 @@ CONFIG_8139TOO_PIO=y
551# CONFIG_8139TOO_TUNE_TWISTER is not set 581# CONFIG_8139TOO_TUNE_TWISTER is not set
552# CONFIG_8139TOO_8129 is not set 582# CONFIG_8139TOO_8129 is not set
553# CONFIG_8139_OLD_RX_RESET is not set 583# CONFIG_8139_OLD_RX_RESET is not set
584# CONFIG_R6040 is not set
554# CONFIG_SIS900 is not set 585# CONFIG_SIS900 is not set
555# CONFIG_EPIC100 is not set 586# CONFIG_EPIC100 is not set
556# CONFIG_SUNDANCE is not set 587# CONFIG_SUNDANCE is not set
@@ -563,6 +594,10 @@ CONFIG_NETDEV_1000=y
563# CONFIG_ACENIC is not set 594# CONFIG_ACENIC is not set
564# CONFIG_DL2K is not set 595# CONFIG_DL2K is not set
565# CONFIG_E1000 is not set 596# CONFIG_E1000 is not set
597# CONFIG_E1000E is not set
598# CONFIG_E1000E_ENABLED is not set
599# CONFIG_IP1000 is not set
600# CONFIG_IGB is not set
566# CONFIG_NS83820 is not set 601# CONFIG_NS83820 is not set
567# CONFIG_HAMACHI is not set 602# CONFIG_HAMACHI is not set
568# CONFIG_YELLOWFIN is not set 603# CONFIG_YELLOWFIN is not set
@@ -584,6 +619,7 @@ CONFIG_VIA_VELOCITY=y
584# 619#
585# CONFIG_WLAN_PRE80211 is not set 620# CONFIG_WLAN_PRE80211 is not set
586# CONFIG_WLAN_80211 is not set 621# CONFIG_WLAN_80211 is not set
622# CONFIG_IWLWIFI_LEDS is not set
587 623
588# 624#
589# USB Network Adapters 625# USB Network Adapters
@@ -592,7 +628,6 @@ CONFIG_VIA_VELOCITY=y
592# CONFIG_USB_KAWETH is not set 628# CONFIG_USB_KAWETH is not set
593# CONFIG_USB_PEGASUS is not set 629# CONFIG_USB_PEGASUS is not set
594# CONFIG_USB_RTL8150 is not set 630# CONFIG_USB_RTL8150 is not set
595# CONFIG_USB_USBNET_MII is not set
596# CONFIG_USB_USBNET is not set 631# CONFIG_USB_USBNET is not set
597# CONFIG_WAN is not set 632# CONFIG_WAN is not set
598# CONFIG_FDDI is not set 633# CONFIG_FDDI is not set
@@ -600,7 +635,6 @@ CONFIG_VIA_VELOCITY=y
600# CONFIG_PPP is not set 635# CONFIG_PPP is not set
601# CONFIG_SLIP is not set 636# CONFIG_SLIP is not set
602# CONFIG_NET_FC is not set 637# CONFIG_NET_FC is not set
603# CONFIG_SHAPER is not set
604# CONFIG_NETCONSOLE is not set 638# CONFIG_NETCONSOLE is not set
605# CONFIG_NETPOLL is not set 639# CONFIG_NETPOLL is not set
606# CONFIG_NET_POLL_CONTROLLER is not set 640# CONFIG_NET_POLL_CONTROLLER is not set
@@ -622,7 +656,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
622CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 656CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
623CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 657CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
624# CONFIG_INPUT_JOYDEV is not set 658# CONFIG_INPUT_JOYDEV is not set
625# CONFIG_INPUT_TSDEV is not set
626# CONFIG_INPUT_EVDEV is not set 659# CONFIG_INPUT_EVDEV is not set
627# CONFIG_INPUT_EVBUG is not set 660# CONFIG_INPUT_EVBUG is not set
628 661
@@ -649,7 +682,9 @@ CONFIG_VT=y
649CONFIG_VT_CONSOLE=y 682CONFIG_VT_CONSOLE=y
650CONFIG_HW_CONSOLE=y 683CONFIG_HW_CONSOLE=y
651CONFIG_VT_HW_CONSOLE_BINDING=y 684CONFIG_VT_HW_CONSOLE_BINDING=y
685# CONFIG_DEVKMEM is not set
652# CONFIG_SERIAL_NONSTANDARD is not set 686# CONFIG_SERIAL_NONSTANDARD is not set
687# CONFIG_NOZOMI is not set
653 688
654# 689#
655# Serial drivers 690# Serial drivers
@@ -668,49 +703,53 @@ CONFIG_UNIX98_PTYS=y
668CONFIG_LEGACY_PTYS=y 703CONFIG_LEGACY_PTYS=y
669CONFIG_LEGACY_PTY_COUNT=256 704CONFIG_LEGACY_PTY_COUNT=256
670# CONFIG_IPMI_HANDLER is not set 705# CONFIG_IPMI_HANDLER is not set
671# CONFIG_WATCHDOG is not set
672# CONFIG_HW_RANDOM is not set 706# CONFIG_HW_RANDOM is not set
673# CONFIG_RTC is not set
674# CONFIG_R3964 is not set 707# CONFIG_R3964 is not set
675# CONFIG_APPLICOM is not set 708# CONFIG_APPLICOM is not set
676# CONFIG_GPIO_TB0219 is not set 709# CONFIG_GPIO_TB0219 is not set
677# CONFIG_DRM is not set
678CONFIG_GPIO_VR41XX=y 710CONFIG_GPIO_VR41XX=y
679# CONFIG_RAW_DRIVER is not set 711# CONFIG_RAW_DRIVER is not set
680# CONFIG_TCG_TPM is not set 712# CONFIG_TCG_TPM is not set
681CONFIG_DEVPORT=y 713CONFIG_DEVPORT=y
682# CONFIG_I2C is not set 714# CONFIG_I2C is not set
683
684#
685# SPI support
686#
687# CONFIG_SPI is not set 715# CONFIG_SPI is not set
688# CONFIG_SPI_MASTER is not set
689# CONFIG_W1 is not set 716# CONFIG_W1 is not set
690# CONFIG_POWER_SUPPLY is not set 717# CONFIG_POWER_SUPPLY is not set
691# CONFIG_HWMON is not set 718# CONFIG_HWMON is not set
719# CONFIG_THERMAL is not set
720# CONFIG_WATCHDOG is not set
721
722#
723# Sonics Silicon Backplane
724#
725CONFIG_SSB_POSSIBLE=y
726# CONFIG_SSB is not set
692 727
693# 728#
694# Multifunction device drivers 729# Multifunction device drivers
695# 730#
696CONFIG_MFD_SM501=y 731CONFIG_MFD_SM501=y
732# CONFIG_HTC_PASIC3 is not set
697 733
698# 734#
699# Multimedia devices 735# Multimedia devices
700# 736#
737
738#
739# Multimedia core support
740#
701# CONFIG_VIDEO_DEV is not set 741# CONFIG_VIDEO_DEV is not set
702# CONFIG_DVB_CORE is not set 742# CONFIG_DVB_CORE is not set
703# CONFIG_DAB is not set
704 743
705# 744#
706# Graphics support 745# Multimedia drivers
707# 746#
708# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 747# CONFIG_DAB is not set
709 748
710# 749#
711# Display device support 750# Graphics support
712# 751#
713# CONFIG_DISPLAY_SUPPORT is not set 752# CONFIG_DRM is not set
714# CONFIG_VGASTATE is not set 753# CONFIG_VGASTATE is not set
715CONFIG_VIDEO_OUTPUT_CONTROL=m 754CONFIG_VIDEO_OUTPUT_CONTROL=m
716CONFIG_FB=y 755CONFIG_FB=y
@@ -719,9 +758,11 @@ CONFIG_FB=y
719CONFIG_FB_CFB_FILLRECT=y 758CONFIG_FB_CFB_FILLRECT=y
720CONFIG_FB_CFB_COPYAREA=y 759CONFIG_FB_CFB_COPYAREA=y
721CONFIG_FB_CFB_IMAGEBLIT=y 760CONFIG_FB_CFB_IMAGEBLIT=y
761# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
722# CONFIG_FB_SYS_FILLRECT is not set 762# CONFIG_FB_SYS_FILLRECT is not set
723# CONFIG_FB_SYS_COPYAREA is not set 763# CONFIG_FB_SYS_COPYAREA is not set
724# CONFIG_FB_SYS_IMAGEBLIT is not set 764# CONFIG_FB_SYS_IMAGEBLIT is not set
765# CONFIG_FB_FOREIGN_ENDIAN is not set
725# CONFIG_FB_SYS_FOPS is not set 766# CONFIG_FB_SYS_FOPS is not set
726CONFIG_FB_DEFERRED_IO=y 767CONFIG_FB_DEFERRED_IO=y
727# CONFIG_FB_SVGALIB is not set 768# CONFIG_FB_SVGALIB is not set
@@ -757,7 +798,14 @@ CONFIG_FB_DEFERRED_IO=y
757# CONFIG_FB_ARK is not set 798# CONFIG_FB_ARK is not set
758# CONFIG_FB_PM3 is not set 799# CONFIG_FB_PM3 is not set
759CONFIG_FB_SM501=y 800CONFIG_FB_SM501=y
801# CONFIG_FB_COBALT is not set
760# CONFIG_FB_VIRTUAL is not set 802# CONFIG_FB_VIRTUAL is not set
803# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
804
805#
806# Display device support
807#
808# CONFIG_DISPLAY_SUPPORT is not set
761 809
762# 810#
763# Console display driver support 811# Console display driver support
@@ -787,6 +835,7 @@ CONFIG_FONT_8x16=y
787CONFIG_HID_SUPPORT=y 835CONFIG_HID_SUPPORT=y
788CONFIG_HID=y 836CONFIG_HID=y
789# CONFIG_HID_DEBUG is not set 837# CONFIG_HID_DEBUG is not set
838# CONFIG_HIDRAW is not set
790 839
791# 840#
792# USB Input Devices 841# USB Input Devices
@@ -807,6 +856,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
807CONFIG_USB_ARCH_HAS_EHCI=y 856CONFIG_USB_ARCH_HAS_EHCI=y
808CONFIG_USB=m 857CONFIG_USB=m
809# CONFIG_USB_DEBUG is not set 858# CONFIG_USB_DEBUG is not set
859# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
810 860
811# 861#
812# Miscellaneous USB options 862# Miscellaneous USB options
@@ -815,15 +865,18 @@ CONFIG_USB=m
815CONFIG_USB_DEVICE_CLASS=y 865CONFIG_USB_DEVICE_CLASS=y
816# CONFIG_USB_DYNAMIC_MINORS is not set 866# CONFIG_USB_DYNAMIC_MINORS is not set
817# CONFIG_USB_OTG is not set 867# CONFIG_USB_OTG is not set
868# CONFIG_USB_OTG_WHITELIST is not set
869# CONFIG_USB_OTG_BLACKLIST_HUB is not set
818 870
819# 871#
820# USB Host Controller Drivers 872# USB Host Controller Drivers
821# 873#
874# CONFIG_USB_C67X00_HCD is not set
822CONFIG_USB_EHCI_HCD=m 875CONFIG_USB_EHCI_HCD=m
823# CONFIG_USB_EHCI_SPLIT_ISO is not set
824# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 876# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
825# CONFIG_USB_EHCI_TT_NEWSCHED is not set 877# CONFIG_USB_EHCI_TT_NEWSCHED is not set
826# CONFIG_USB_ISP116X_HCD is not set 878# CONFIG_USB_ISP116X_HCD is not set
879# CONFIG_USB_ISP1760_HCD is not set
827CONFIG_USB_OHCI_HCD=m 880CONFIG_USB_OHCI_HCD=m
828# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 881# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
829# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 882# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -849,13 +902,16 @@ CONFIG_USB_STORAGE=m
849# CONFIG_USB_STORAGE_DEBUG is not set 902# CONFIG_USB_STORAGE_DEBUG is not set
850# CONFIG_USB_STORAGE_DATAFAB is not set 903# CONFIG_USB_STORAGE_DATAFAB is not set
851# CONFIG_USB_STORAGE_FREECOM is not set 904# CONFIG_USB_STORAGE_FREECOM is not set
905# CONFIG_USB_STORAGE_ISD200 is not set
852# CONFIG_USB_STORAGE_DPCM is not set 906# CONFIG_USB_STORAGE_DPCM is not set
853# CONFIG_USB_STORAGE_USBAT is not set 907# CONFIG_USB_STORAGE_USBAT is not set
854# CONFIG_USB_STORAGE_SDDR09 is not set 908# CONFIG_USB_STORAGE_SDDR09 is not set
855# CONFIG_USB_STORAGE_SDDR55 is not set 909# CONFIG_USB_STORAGE_SDDR55 is not set
856# CONFIG_USB_STORAGE_JUMPSHOT is not set 910# CONFIG_USB_STORAGE_JUMPSHOT is not set
857# CONFIG_USB_STORAGE_ALAUDA is not set 911# CONFIG_USB_STORAGE_ALAUDA is not set
912# CONFIG_USB_STORAGE_ONETOUCH is not set
858# CONFIG_USB_STORAGE_KARMA is not set 913# CONFIG_USB_STORAGE_KARMA is not set
914# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
859# CONFIG_USB_LIBUSUAL is not set 915# CONFIG_USB_LIBUSUAL is not set
860 916
861# 917#
@@ -868,10 +924,6 @@ CONFIG_USB_MON=y
868# 924#
869# USB port drivers 925# USB port drivers
870# 926#
871
872#
873# USB Serial Converter support
874#
875# CONFIG_USB_SERIAL is not set 927# CONFIG_USB_SERIAL is not set
876 928
877# 929#
@@ -896,36 +948,14 @@ CONFIG_USB_MON=y
896# CONFIG_USB_LD is not set 948# CONFIG_USB_LD is not set
897# CONFIG_USB_TRANCEVIBRATOR is not set 949# CONFIG_USB_TRANCEVIBRATOR is not set
898# CONFIG_USB_IOWARRIOR is not set 950# CONFIG_USB_IOWARRIOR is not set
899
900#
901# USB DSL modem support
902#
903
904#
905# USB Gadget Support
906#
907# CONFIG_USB_GADGET is not set 951# CONFIG_USB_GADGET is not set
908# CONFIG_MMC is not set 952# CONFIG_MMC is not set
953# CONFIG_MEMSTICK is not set
909# CONFIG_NEW_LEDS is not set 954# CONFIG_NEW_LEDS is not set
955# CONFIG_ACCESSIBILITY is not set
910# CONFIG_INFINIBAND is not set 956# CONFIG_INFINIBAND is not set
957CONFIG_RTC_LIB=y
911# CONFIG_RTC_CLASS is not set 958# CONFIG_RTC_CLASS is not set
912
913#
914# DMA Engine support
915#
916# CONFIG_DMA_ENGINE is not set
917
918#
919# DMA Clients
920#
921
922#
923# DMA Devices
924#
925
926#
927# Userspace I/O
928#
929# CONFIG_UIO is not set 959# CONFIG_UIO is not set
930 960
931# 961#
@@ -940,25 +970,21 @@ CONFIG_EXT3_FS_XATTR=y
940# CONFIG_EXT3_FS_SECURITY is not set 970# CONFIG_EXT3_FS_SECURITY is not set
941# CONFIG_EXT4DEV_FS is not set 971# CONFIG_EXT4DEV_FS is not set
942CONFIG_JBD=y 972CONFIG_JBD=y
943# CONFIG_JBD_DEBUG is not set
944CONFIG_FS_MBCACHE=y 973CONFIG_FS_MBCACHE=y
945# CONFIG_REISERFS_FS is not set 974# CONFIG_REISERFS_FS is not set
946# CONFIG_JFS_FS is not set 975# CONFIG_JFS_FS is not set
947CONFIG_FS_POSIX_ACL=y 976CONFIG_FS_POSIX_ACL=y
948CONFIG_XFS_FS=y 977CONFIG_XFS_FS=y
949CONFIG_XFS_QUOTA=y 978CONFIG_XFS_QUOTA=y
950# CONFIG_XFS_SECURITY is not set
951CONFIG_XFS_POSIX_ACL=y 979CONFIG_XFS_POSIX_ACL=y
952# CONFIG_XFS_RT is not set 980# CONFIG_XFS_RT is not set
953# CONFIG_GFS2_FS is not set 981# CONFIG_XFS_DEBUG is not set
954# CONFIG_OCFS2_FS is not set 982# CONFIG_OCFS2_FS is not set
955# CONFIG_MINIX_FS is not set 983CONFIG_DNOTIFY=y
956CONFIG_ROMFS_FS=m
957CONFIG_INOTIFY=y 984CONFIG_INOTIFY=y
958CONFIG_INOTIFY_USER=y 985CONFIG_INOTIFY_USER=y
959# CONFIG_QUOTA is not set 986# CONFIG_QUOTA is not set
960CONFIG_QUOTACTL=y 987CONFIG_QUOTACTL=y
961CONFIG_DNOTIFY=y
962# CONFIG_AUTOFS_FS is not set 988# CONFIG_AUTOFS_FS is not set
963CONFIG_AUTOFS4_FS=y 989CONFIG_AUTOFS4_FS=y
964# CONFIG_FUSE_FS is not set 990# CONFIG_FUSE_FS is not set
@@ -987,7 +1013,6 @@ CONFIG_SYSFS=y
987CONFIG_TMPFS=y 1013CONFIG_TMPFS=y
988CONFIG_TMPFS_POSIX_ACL=y 1014CONFIG_TMPFS_POSIX_ACL=y
989# CONFIG_HUGETLB_PAGE is not set 1015# CONFIG_HUGETLB_PAGE is not set
990CONFIG_RAMFS=y
991# CONFIG_CONFIGFS_FS is not set 1016# CONFIG_CONFIGFS_FS is not set
992 1017
993# 1018#
@@ -1002,24 +1027,21 @@ CONFIG_RAMFS=y
1002# CONFIG_EFS_FS is not set 1027# CONFIG_EFS_FS is not set
1003CONFIG_CRAMFS=m 1028CONFIG_CRAMFS=m
1004# CONFIG_VXFS_FS is not set 1029# CONFIG_VXFS_FS is not set
1030# CONFIG_MINIX_FS is not set
1005# CONFIG_HPFS_FS is not set 1031# CONFIG_HPFS_FS is not set
1006# CONFIG_QNX4FS_FS is not set 1032# CONFIG_QNX4FS_FS is not set
1033CONFIG_ROMFS_FS=m
1007# CONFIG_SYSV_FS is not set 1034# CONFIG_SYSV_FS is not set
1008# CONFIG_UFS_FS is not set 1035# CONFIG_UFS_FS is not set
1009 1036CONFIG_NETWORK_FILESYSTEMS=y
1010#
1011# Network File Systems
1012#
1013CONFIG_NFS_FS=y 1037CONFIG_NFS_FS=y
1014CONFIG_NFS_V3=y 1038CONFIG_NFS_V3=y
1015# CONFIG_NFS_V3_ACL is not set 1039# CONFIG_NFS_V3_ACL is not set
1016# CONFIG_NFS_V4 is not set 1040# CONFIG_NFS_V4 is not set
1017# CONFIG_NFS_DIRECTIO is not set
1018CONFIG_NFSD=m 1041CONFIG_NFSD=m
1019CONFIG_NFSD_V3=y 1042CONFIG_NFSD_V3=y
1020# CONFIG_NFSD_V3_ACL is not set 1043# CONFIG_NFSD_V3_ACL is not set
1021# CONFIG_NFSD_V4 is not set 1044# CONFIG_NFSD_V4 is not set
1022CONFIG_NFSD_TCP=y
1023CONFIG_ROOT_NFS=y 1045CONFIG_ROOT_NFS=y
1024CONFIG_LOCKD=y 1046CONFIG_LOCKD=y
1025CONFIG_LOCKD_V4=y 1047CONFIG_LOCKD_V4=y
@@ -1040,47 +1062,38 @@ CONFIG_SUNRPC=y
1040# 1062#
1041# CONFIG_PARTITION_ADVANCED is not set 1063# CONFIG_PARTITION_ADVANCED is not set
1042CONFIG_MSDOS_PARTITION=y 1064CONFIG_MSDOS_PARTITION=y
1043
1044#
1045# Native Language Support
1046#
1047# CONFIG_NLS is not set 1065# CONFIG_NLS is not set
1048
1049#
1050# Distributed Lock Manager
1051#
1052# CONFIG_DLM is not set 1066# CONFIG_DLM is not set
1053 1067
1054# 1068#
1055# Profiling support
1056#
1057# CONFIG_PROFILING is not set
1058
1059#
1060# Kernel hacking 1069# Kernel hacking
1061# 1070#
1062CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1071CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1063# CONFIG_PRINTK_TIME is not set 1072# CONFIG_PRINTK_TIME is not set
1073CONFIG_ENABLE_WARN_DEPRECATED=y
1064CONFIG_ENABLE_MUST_CHECK=y 1074CONFIG_ENABLE_MUST_CHECK=y
1075CONFIG_FRAME_WARN=1024
1065# CONFIG_MAGIC_SYSRQ is not set 1076# CONFIG_MAGIC_SYSRQ is not set
1066# CONFIG_UNUSED_SYMBOLS is not set 1077# CONFIG_UNUSED_SYMBOLS is not set
1067# CONFIG_DEBUG_FS is not set 1078# CONFIG_DEBUG_FS is not set
1068# CONFIG_HEADERS_CHECK is not set 1079# CONFIG_HEADERS_CHECK is not set
1069# CONFIG_DEBUG_KERNEL is not set 1080# CONFIG_DEBUG_KERNEL is not set
1070CONFIG_CROSSCOMPILE=y 1081# CONFIG_SAMPLES is not set
1071CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" 1082CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
1072 1083
1073# 1084#
1074# Security options 1085# Security options
1075# 1086#
1076# CONFIG_KEYS is not set 1087# CONFIG_KEYS is not set
1077# CONFIG_SECURITY is not set 1088# CONFIG_SECURITY is not set
1089# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1078# CONFIG_CRYPTO is not set 1090# CONFIG_CRYPTO is not set
1079 1091
1080# 1092#
1081# Library routines 1093# Library routines
1082# 1094#
1083CONFIG_BITREVERSE=y 1095CONFIG_BITREVERSE=y
1096# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1084CONFIG_CRC_CCITT=y 1097CONFIG_CRC_CCITT=y
1085# CONFIG_CRC16 is not set 1098# CONFIG_CRC16 is not set
1086# CONFIG_CRC_ITU_T is not set 1099# CONFIG_CRC_ITU_T is not set
diff --git a/arch/mips/fw/arc/identify.c b/arch/mips/fw/arc/identify.c
index 28dfd2e2989a..23066985a734 100644
--- a/arch/mips/fw/arc/identify.c
+++ b/arch/mips/fw/arc/identify.c
@@ -67,6 +67,11 @@ static struct smatch mach_table[] = {
67 .liname = "SNI RM200_PCI", 67 .liname = "SNI RM200_PCI",
68 .type = MACH_SNI_RM200_PCI, 68 .type = MACH_SNI_RM200_PCI,
69 .flags = PROM_FLAG_DONT_FREE_TEMP, 69 .flags = PROM_FLAG_DONT_FREE_TEMP,
70 }, {
71 .arcname = "RM200PCI-R5K",
72 .liname = "SNI RM200_PCI-R5K",
73 .type = MACH_SNI_RM200_PCI,
74 .flags = PROM_FLAG_DONT_FREE_TEMP,
70 } 75 }
71}; 76};
72 77
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index 63370cdd3c90..cdf87a9dd4ba 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -216,6 +216,7 @@ int smp_call_function(void (*func) (void *info), void *info, int retry,
216{ 216{
217 return smp_call_function_mask(cpu_online_map, func, info, retry, wait); 217 return smp_call_function_mask(cpu_online_map, func, info, retry, wait);
218} 218}
219EXPORT_SYMBOL(smp_call_function);
219 220
220void smp_call_function_interrupt(void) 221void smp_call_function_interrupt(void)
221{ 222{
@@ -271,6 +272,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
271 put_cpu(); 272 put_cpu();
272 return 0; 273 return 0;
273} 274}
275EXPORT_SYMBOL(smp_call_function_single);
274 276
275static void stop_this_cpu(void *dummy) 277static void stop_this_cpu(void *dummy)
276{ 278{
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c
index cfeab669782f..a56c15026965 100644
--- a/arch/mips/lasat/interrupt.c
+++ b/arch/mips/lasat/interrupt.c
@@ -34,11 +34,13 @@ static volatile int lasat_int_mask_shift;
34 34
35void disable_lasat_irq(unsigned int irq_nr) 35void disable_lasat_irq(unsigned int irq_nr)
36{ 36{
37 irq_nr -= LASAT_IRQ_BASE;
37 *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift; 38 *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift;
38} 39}
39 40
40void enable_lasat_irq(unsigned int irq_nr) 41void enable_lasat_irq(unsigned int irq_nr)
41{ 42{
43 irq_nr -= LASAT_IRQ_BASE;
42 *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift; 44 *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift;
43} 45}
44 46
diff --git a/arch/mips/lasat/lasat_board.c b/arch/mips/lasat/lasat_board.c
index ec2f658c3709..31e328b3814d 100644
--- a/arch/mips/lasat/lasat_board.c
+++ b/arch/mips/lasat/lasat_board.c
@@ -23,18 +23,19 @@
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/string.h> 24#include <linux/string.h>
25#include <linux/ctype.h> 25#include <linux/ctype.h>
26#include <linux/mutex.h>
26#include <asm/bootinfo.h> 27#include <asm/bootinfo.h>
27#include <asm/addrspace.h> 28#include <asm/addrspace.h>
28#include "at93c.h" 29#include "at93c.h"
29/* New model description table */ 30/* New model description table */
30#include "lasat_models.h" 31#include "lasat_models.h"
31 32
33static DEFINE_MUTEX(lasat_eeprom_mutex);
34
32#define EEPROM_CRC(data, len) (~crc32(~0, data, len)) 35#define EEPROM_CRC(data, len) (~crc32(~0, data, len))
33 36
34struct lasat_info lasat_board_info; 37struct lasat_info lasat_board_info;
35 38
36void update_bcastaddr(void);
37
38int EEPROMRead(unsigned int pos, unsigned char *data, int len) 39int EEPROMRead(unsigned int pos, unsigned char *data, int len)
39{ 40{
40 int i; 41 int i;
@@ -258,10 +259,6 @@ int lasat_init_board_info(void)
258 sprintf(lasat_board_info.li_typestr, "%d", 10 * c); 259 sprintf(lasat_board_info.li_typestr, "%d", 10 * c);
259 } 260 }
260 261
261#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL)
262 update_bcastaddr();
263#endif
264
265 return 0; 262 return 0;
266} 263}
267 264
@@ -269,6 +266,8 @@ void lasat_write_eeprom_info(void)
269{ 266{
270 unsigned long crc; 267 unsigned long crc;
271 268
269 mutex_lock(&lasat_eeprom_mutex);
270
272 /* Generate the CRC */ 271 /* Generate the CRC */
273 crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info), 272 crc = EEPROM_CRC((unsigned char *)(&lasat_board_info.li_eeprom_info),
274 sizeof(struct lasat_eeprom_struct) - 4); 273 sizeof(struct lasat_eeprom_struct) - 4);
@@ -277,4 +276,6 @@ void lasat_write_eeprom_info(void)
277 /* Write the EEPROM info */ 276 /* Write the EEPROM info */
278 EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info, 277 EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info,
279 sizeof(struct lasat_eeprom_struct)); 278 sizeof(struct lasat_eeprom_struct));
279
280 mutex_unlock(&lasat_eeprom_mutex);
280} 281}
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c
index 389336c4ecc5..866881ec0cf8 100644
--- a/arch/mips/lasat/sysctl.c
+++ b/arch/mips/lasat/sysctl.c
@@ -29,15 +29,13 @@
29#include <linux/string.h> 29#include <linux/string.h>
30#include <linux/net.h> 30#include <linux/net.h>
31#include <linux/inet.h> 31#include <linux/inet.h>
32#include <linux/mutex.h>
33#include <linux/uaccess.h> 32#include <linux/uaccess.h>
34 33
35#include <asm/time.h> 34#include <asm/time.h>
36 35
37#include "sysctl.h" 36#ifdef CONFIG_DS1603
38#include "ds1603.h" 37#include "ds1603.h"
39 38#endif
40static DEFINE_MUTEX(lasat_info_mutex);
41 39
42/* Strategy function to write EEPROM after changing string entry */ 40/* Strategy function to write EEPROM after changing string entry */
43int sysctl_lasatstring(ctl_table *table, int *name, int nlen, 41int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
@@ -46,18 +44,15 @@ int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
46{ 44{
47 int r; 45 int r;
48 46
49 mutex_lock(&lasat_info_mutex);
50 r = sysctl_string(table, name, 47 r = sysctl_string(table, name,
51 nlen, oldval, oldlenp, newval, newlen); 48 nlen, oldval, oldlenp, newval, newlen);
52 if (r < 0) { 49 if (r < 0)
53 mutex_unlock(&lasat_info_mutex);
54 return r; 50 return r;
55 } 51
56 if (newval && newlen) 52 if (newval && newlen)
57 lasat_write_eeprom_info(); 53 lasat_write_eeprom_info();
58 mutex_unlock(&lasat_info_mutex);
59 54
60 return 1; 55 return 0;
61} 56}
62 57
63 58
@@ -67,14 +62,11 @@ int proc_dolasatstring(ctl_table *table, int write, struct file *filp,
67{ 62{
68 int r; 63 int r;
69 64
70 mutex_lock(&lasat_info_mutex);
71 r = proc_dostring(table, write, filp, buffer, lenp, ppos); 65 r = proc_dostring(table, write, filp, buffer, lenp, ppos);
72 if ((!write) || r) { 66 if ((!write) || r)
73 mutex_unlock(&lasat_info_mutex);
74 return r; 67 return r;
75 } 68
76 lasat_write_eeprom_info(); 69 lasat_write_eeprom_info();
77 mutex_unlock(&lasat_info_mutex);
78 70
79 return 0; 71 return 0;
80} 72}
@@ -85,28 +77,24 @@ int proc_dolasatint(ctl_table *table, int write, struct file *filp,
85{ 77{
86 int r; 78 int r;
87 79
88 mutex_lock(&lasat_info_mutex);
89 r = proc_dointvec(table, write, filp, buffer, lenp, ppos); 80 r = proc_dointvec(table, write, filp, buffer, lenp, ppos);
90 if ((!write) || r) { 81 if ((!write) || r)
91 mutex_unlock(&lasat_info_mutex);
92 return r; 82 return r;
93 } 83
94 lasat_write_eeprom_info(); 84 lasat_write_eeprom_info();
95 mutex_unlock(&lasat_info_mutex);
96 85
97 return 0; 86 return 0;
98} 87}
99 88
89#ifdef CONFIG_DS1603
100static int rtctmp; 90static int rtctmp;
101 91
102#ifdef CONFIG_DS1603
103/* proc function to read/write RealTime Clock */ 92/* proc function to read/write RealTime Clock */
104int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, 93int proc_dolasatrtc(ctl_table *table, int write, struct file *filp,
105 void *buffer, size_t *lenp, loff_t *ppos) 94 void *buffer, size_t *lenp, loff_t *ppos)
106{ 95{
107 int r; 96 int r;
108 97
109 mutex_lock(&lasat_info_mutex);
110 if (!write) { 98 if (!write) {
111 rtctmp = read_persistent_clock(); 99 rtctmp = read_persistent_clock();
112 /* check for time < 0 and set to 0 */ 100 /* check for time < 0 and set to 0 */
@@ -114,12 +102,11 @@ int proc_dolasatrtc(ctl_table *table, int write, struct file *filp,
114 rtctmp = 0; 102 rtctmp = 0;
115 } 103 }
116 r = proc_dointvec(table, write, filp, buffer, lenp, ppos); 104 r = proc_dointvec(table, write, filp, buffer, lenp, ppos);
117 if ((!write) || r) { 105 if (r)
118 mutex_unlock(&lasat_info_mutex);
119 return r; 106 return r;
120 } 107
121 rtc_mips_set_mmss(rtctmp); 108 if (write)
122 mutex_unlock(&lasat_info_mutex); 109 rtc_mips_set_mmss(rtctmp);
123 110
124 return 0; 111 return 0;
125} 112}
@@ -132,17 +119,14 @@ int sysctl_lasat_intvec(ctl_table *table, int *name, int nlen,
132{ 119{
133 int r; 120 int r;
134 121
135 mutex_lock(&lasat_info_mutex);
136 r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); 122 r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen);
137 if (r < 0) { 123 if (r < 0)
138 mutex_unlock(&lasat_info_mutex);
139 return r; 124 return r;
140 } 125
141 if (newval && newlen) 126 if (newval && newlen)
142 lasat_write_eeprom_info(); 127 lasat_write_eeprom_info();
143 mutex_unlock(&lasat_info_mutex);
144 128
145 return 1; 129 return 0;
146} 130}
147 131
148#ifdef CONFIG_DS1603 132#ifdef CONFIG_DS1603
@@ -153,50 +137,27 @@ int sysctl_lasat_rtc(ctl_table *table, int *name, int nlen,
153{ 137{
154 int r; 138 int r;
155 139
156 mutex_lock(&lasat_info_mutex);
157 rtctmp = read_persistent_clock(); 140 rtctmp = read_persistent_clock();
158 if (rtctmp < 0) 141 if (rtctmp < 0)
159 rtctmp = 0; 142 rtctmp = 0;
160 r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); 143 r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen);
161 if (r < 0) { 144 if (r < 0)
162 mutex_unlock(&lasat_info_mutex);
163 return r; 145 return r;
164 }
165 if (newval && newlen) 146 if (newval && newlen)
166 rtc_mips_set_mmss(rtctmp); 147 rtc_mips_set_mmss(rtctmp);
167 mutex_unlock(&lasat_info_mutex);
168 148
169 return 1; 149 return r;
170} 150}
171#endif 151#endif
172 152
173#ifdef CONFIG_INET 153#ifdef CONFIG_INET
174static char lasat_bcastaddr[16];
175
176void update_bcastaddr(void)
177{
178 unsigned int ip;
179
180 ip = (lasat_board_info.li_eeprom_info.ipaddr &
181 lasat_board_info.li_eeprom_info.netmask) |
182 ~lasat_board_info.li_eeprom_info.netmask;
183
184 sprintf(lasat_bcastaddr, "%d.%d.%d.%d",
185 (ip) & 0xff,
186 (ip >> 8) & 0xff,
187 (ip >> 16) & 0xff,
188 (ip >> 24) & 0xff);
189}
190
191static char proc_lasat_ipbuf[32];
192
193/* Parsing of IP address */
194int proc_lasat_ip(ctl_table *table, int write, struct file *filp, 154int proc_lasat_ip(ctl_table *table, int write, struct file *filp,
195 void *buffer, size_t *lenp, loff_t *ppos) 155 void *buffer, size_t *lenp, loff_t *ppos)
196{ 156{
197 unsigned int ip; 157 unsigned int ip;
198 char *p, c; 158 char *p, c;
199 int len; 159 int len;
160 char ipbuf[32];
200 161
201 if (!table->data || !table->maxlen || !*lenp || 162 if (!table->data || !table->maxlen || !*lenp ||
202 (*ppos && !write)) { 163 (*ppos && !write)) {
@@ -204,117 +165,88 @@ int proc_lasat_ip(ctl_table *table, int write, struct file *filp,
204 return 0; 165 return 0;
205 } 166 }
206 167
207 mutex_lock(&lasat_info_mutex);
208 if (write) { 168 if (write) {
209 len = 0; 169 len = 0;
210 p = buffer; 170 p = buffer;
211 while (len < *lenp) { 171 while (len < *lenp) {
212 if (get_user(c, p++)) { 172 if (get_user(c, p++))
213 mutex_unlock(&lasat_info_mutex);
214 return -EFAULT; 173 return -EFAULT;
215 }
216 if (c == 0 || c == '\n') 174 if (c == 0 || c == '\n')
217 break; 175 break;
218 len++; 176 len++;
219 } 177 }
220 if (len >= sizeof(proc_lasat_ipbuf)-1) 178 if (len >= sizeof(ipbuf)-1)
221 len = sizeof(proc_lasat_ipbuf) - 1; 179 len = sizeof(ipbuf) - 1;
222 if (copy_from_user(proc_lasat_ipbuf, buffer, len)) { 180 if (copy_from_user(ipbuf, buffer, len))
223 mutex_unlock(&lasat_info_mutex);
224 return -EFAULT; 181 return -EFAULT;
225 } 182 ipbuf[len] = 0;
226 proc_lasat_ipbuf[len] = 0;
227 *ppos += *lenp; 183 *ppos += *lenp;
228 /* Now see if we can convert it to a valid IP */ 184 /* Now see if we can convert it to a valid IP */
229 ip = in_aton(proc_lasat_ipbuf); 185 ip = in_aton(ipbuf);
230 *(unsigned int *)(table->data) = ip; 186 *(unsigned int *)(table->data) = ip;
231 lasat_write_eeprom_info(); 187 lasat_write_eeprom_info();
232 } else { 188 } else {
233 ip = *(unsigned int *)(table->data); 189 ip = *(unsigned int *)(table->data);
234 sprintf(proc_lasat_ipbuf, "%d.%d.%d.%d", 190 sprintf(ipbuf, "%d.%d.%d.%d",
235 (ip) & 0xff, 191 (ip) & 0xff,
236 (ip >> 8) & 0xff, 192 (ip >> 8) & 0xff,
237 (ip >> 16) & 0xff, 193 (ip >> 16) & 0xff,
238 (ip >> 24) & 0xff); 194 (ip >> 24) & 0xff);
239 len = strlen(proc_lasat_ipbuf); 195 len = strlen(ipbuf);
240 if (len > *lenp) 196 if (len > *lenp)
241 len = *lenp; 197 len = *lenp;
242 if (len) 198 if (len)
243 if (copy_to_user(buffer, proc_lasat_ipbuf, len)) { 199 if (copy_to_user(buffer, ipbuf, len))
244 mutex_unlock(&lasat_info_mutex);
245 return -EFAULT; 200 return -EFAULT;
246 }
247 if (len < *lenp) { 201 if (len < *lenp) {
248 if (put_user('\n', ((char *) buffer) + len)) { 202 if (put_user('\n', ((char *) buffer) + len))
249 mutex_unlock(&lasat_info_mutex);
250 return -EFAULT; 203 return -EFAULT;
251 }
252 len++; 204 len++;
253 } 205 }
254 *lenp = len; 206 *lenp = len;
255 *ppos += len; 207 *ppos += len;
256 } 208 }
257 update_bcastaddr();
258 mutex_unlock(&lasat_info_mutex);
259 209
260 return 0; 210 return 0;
261} 211}
262#endif /* defined(CONFIG_INET) */ 212#endif
263 213
264static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen, 214static int sysctl_lasat_prid(ctl_table *table, int *name, int nlen,
265 void *oldval, size_t *oldlenp, 215 void *oldval, size_t *oldlenp,
266 void *newval, size_t newlen) 216 void *newval, size_t newlen)
267{ 217{
268 int r; 218 int r;
269 219
270 mutex_lock(&lasat_info_mutex);
271 r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen); 220 r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen);
272 if (r < 0) { 221 if (r < 0)
273 mutex_unlock(&lasat_info_mutex);
274 return r; 222 return r;
275 }
276
277 if (newval && newlen) { 223 if (newval && newlen) {
278 if (name && *name == LASAT_PRID) 224 lasat_board_info.li_eeprom_info.prid = *(int *)newval;
279 lasat_board_info.li_eeprom_info.prid = *(int *)newval;
280
281 lasat_write_eeprom_info(); 225 lasat_write_eeprom_info();
282 lasat_init_board_info(); 226 lasat_init_board_info();
283 } 227 }
284 mutex_unlock(&lasat_info_mutex);
285
286 return 0; 228 return 0;
287} 229}
288 230
289int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp, 231int proc_lasat_prid(ctl_table *table, int write, struct file *filp,
290 void *buffer, size_t *lenp, loff_t *ppos) 232 void *buffer, size_t *lenp, loff_t *ppos)
291{ 233{
292 int r; 234 int r;
293 235
294 mutex_lock(&lasat_info_mutex);
295 r = proc_dointvec(table, write, filp, buffer, lenp, ppos); 236 r = proc_dointvec(table, write, filp, buffer, lenp, ppos);
296 if ((!write) || r) { 237 if (r < 0)
297 mutex_unlock(&lasat_info_mutex);
298 return r; 238 return r;
239 if (write) {
240 lasat_board_info.li_eeprom_info.prid =
241 lasat_board_info.li_prid;
242 lasat_write_eeprom_info();
243 lasat_init_board_info();
299 } 244 }
300 if (filp && filp->f_path.dentry) {
301 if (!strcmp(filp->f_path.dentry->d_name.name, "prid"))
302 lasat_board_info.li_eeprom_info.prid =
303 lasat_board_info.li_prid;
304 if (!strcmp(filp->f_path.dentry->d_name.name, "debugaccess"))
305 lasat_board_info.li_eeprom_info.debugaccess =
306 lasat_board_info.li_debugaccess;
307 }
308 lasat_write_eeprom_info();
309 mutex_unlock(&lasat_info_mutex);
310
311 return 0; 245 return 0;
312} 246}
313 247
314extern int lasat_boot_to_service; 248extern int lasat_boot_to_service;
315 249
316#ifdef CONFIG_SYSCTL
317
318static ctl_table lasat_table[] = { 250static ctl_table lasat_table[] = {
319 { 251 {
320 .ctl_name = CTL_UNNUMBERED, 252 .ctl_name = CTL_UNNUMBERED,
@@ -349,8 +281,8 @@ static ctl_table lasat_table[] = {
349 .data = &lasat_board_info.li_prid, 281 .data = &lasat_board_info.li_prid,
350 .maxlen = sizeof(int), 282 .maxlen = sizeof(int),
351 .mode = 0644, 283 .mode = 0644,
352 .proc_handler = &proc_lasat_eeprom_value, 284 .proc_handler = &proc_lasat_prid,
353 .strategy = &sysctl_lasat_eeprom_value 285 .strategy = &sysctl_lasat_prid
354 }, 286 },
355#ifdef CONFIG_INET 287#ifdef CONFIG_INET
356 { 288 {
@@ -363,7 +295,7 @@ static ctl_table lasat_table[] = {
363 .strategy = &sysctl_lasat_intvec 295 .strategy = &sysctl_lasat_intvec
364 }, 296 },
365 { 297 {
366 .ctl_name = LASAT_NETMASK, 298 .ctl_name = CTL_UNNUMBERED,
367 .procname = "netmask", 299 .procname = "netmask",
368 .data = &lasat_board_info.li_eeprom_info.netmask, 300 .data = &lasat_board_info.li_eeprom_info.netmask,
369 .maxlen = sizeof(int), 301 .maxlen = sizeof(int),
@@ -371,15 +303,6 @@ static ctl_table lasat_table[] = {
371 .proc_handler = &proc_lasat_ip, 303 .proc_handler = &proc_lasat_ip,
372 .strategy = &sysctl_lasat_intvec 304 .strategy = &sysctl_lasat_intvec
373 }, 305 },
374 {
375 .ctl_name = CTL_UNNUMBERED,
376 .procname = "bcastaddr",
377 .data = &lasat_bcastaddr,
378 .maxlen = sizeof(lasat_bcastaddr),
379 .mode = 0600,
380 .proc_handler = &proc_dostring,
381 .strategy = &sysctl_string
382 },
383#endif 306#endif
384 { 307 {
385 .ctl_name = CTL_UNNUMBERED, 308 .ctl_name = CTL_UNNUMBERED,
@@ -417,7 +340,7 @@ static ctl_table lasat_table[] = {
417 .data = &lasat_board_info.li_namestr, 340 .data = &lasat_board_info.li_namestr,
418 .maxlen = sizeof(lasat_board_info.li_namestr), 341 .maxlen = sizeof(lasat_board_info.li_namestr),
419 .mode = 0444, 342 .mode = 0444,
420 .proc_handler = &proc_dostring, 343 .proc_handler = &proc_dostring,
421 .strategy = &sysctl_string 344 .strategy = &sysctl_string
422 }, 345 },
423 { 346 {
@@ -448,9 +371,12 @@ static int __init lasat_register_sysctl(void)
448 371
449 lasat_table_header = 372 lasat_table_header =
450 register_sysctl_table(lasat_root_table); 373 register_sysctl_table(lasat_root_table);
374 if (!lasat_table_header) {
375 printk(KERN_ERR "Unable to register LASAT sysctl\n");
376 return -ENOMEM;
377 }
451 378
452 return 0; 379 return 0;
453} 380}
454 381
455__initcall(lasat_register_sysctl); 382__initcall(lasat_register_sysctl);
456#endif /* CONFIG_SYSCTL */
diff --git a/arch/mips/lasat/sysctl.h b/arch/mips/lasat/sysctl.h
deleted file mode 100644
index 341b97933423..000000000000
--- a/arch/mips/lasat/sysctl.h
+++ /dev/null
@@ -1,24 +0,0 @@
1/*
2 * LASAT sysctl values
3 */
4
5#ifndef _LASAT_SYSCTL_H
6#define _LASAT_SYSCTL_H
7
8/* /proc/sys/lasat */
9enum {
10 LASAT_CPU_HZ = 1,
11 LASAT_BUS_HZ,
12 LASAT_MODEL,
13 LASAT_PRID,
14 LASAT_IPADDR,
15 LASAT_NETMASK,
16 LASAT_BCAST,
17 LASAT_PASSWORD,
18 LASAT_SBOOT,
19 LASAT_RTC,
20 LASAT_NAMESTR,
21 LASAT_TYPESTR,
22};
23
24#endif /* _LASAT_SYSCTL_H */
diff --git a/arch/mips/mips-boards/generic/amon.c b/arch/mips/mips-boards/generic/amon.c
index b7633fda4180..96236bf33838 100644
--- a/arch/mips/mips-boards/generic/amon.c
+++ b/arch/mips/mips-boards/generic/amon.c
@@ -28,7 +28,7 @@
28 28
29int amon_cpu_avail(int cpu) 29int amon_cpu_avail(int cpu)
30{ 30{
31 struct cpulaunch *launch = (struct cpulaunch *)KSEG0ADDR(CPULAUNCH); 31 struct cpulaunch *launch = (struct cpulaunch *)CKSEG0ADDR(CPULAUNCH);
32 32
33 if (cpu < 0 || cpu >= NCPULAUNCH) { 33 if (cpu < 0 || cpu >= NCPULAUNCH) {
34 pr_debug("avail: cpu%d is out of range\n", cpu); 34 pr_debug("avail: cpu%d is out of range\n", cpu);
@@ -53,7 +53,7 @@ void amon_cpu_start(int cpu,
53 unsigned long gp, unsigned long a0) 53 unsigned long gp, unsigned long a0)
54{ 54{
55 volatile struct cpulaunch *launch = 55 volatile struct cpulaunch *launch =
56 (struct cpulaunch *)KSEG0ADDR(CPULAUNCH); 56 (struct cpulaunch *)CKSEG0ADDR(CPULAUNCH);
57 57
58 if (!amon_cpu_avail(cpu)) 58 if (!amon_cpu_avail(cpu))
59 return; 59 return;
diff --git a/arch/mips/mips-boards/malta/Makefile b/arch/mips/mips-boards/malta/Makefile
index 8dc6e2ac4c03..db4ad654a6d3 100644
--- a/arch/mips/mips-boards/malta/Makefile
+++ b/arch/mips/mips-boards/malta/Makefile
@@ -19,9 +19,8 @@
19# under Linux. 19# under Linux.
20# 20#
21 21
22obj-y := malta_int.o malta_platform.o malta_setup.o 22obj-y := malta_int.o malta_mtd.o malta_platform.o malta_setup.o
23 23
24obj-$(CONFIG_MTD) += malta_mtd.o
25# FIXME FIXME FIXME 24# FIXME FIXME FIXME
26obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o 25obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o
27 26
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 643c8bcffff3..27096751ddce 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -446,6 +446,7 @@ static inline void local_r4k_flush_cache_page(void *args)
446 struct page *page = pfn_to_page(fcp_args->pfn); 446 struct page *page = pfn_to_page(fcp_args->pfn);
447 int exec = vma->vm_flags & VM_EXEC; 447 int exec = vma->vm_flags & VM_EXEC;
448 struct mm_struct *mm = vma->vm_mm; 448 struct mm_struct *mm = vma->vm_mm;
449 int map_coherent = 0;
449 pgd_t *pgdp; 450 pgd_t *pgdp;
450 pud_t *pudp; 451 pud_t *pudp;
451 pmd_t *pmdp; 452 pmd_t *pmdp;
@@ -479,7 +480,9 @@ static inline void local_r4k_flush_cache_page(void *args)
479 * Use kmap_coherent or kmap_atomic to do flushes for 480 * Use kmap_coherent or kmap_atomic to do flushes for
480 * another ASID than the current one. 481 * another ASID than the current one.
481 */ 482 */
482 if (cpu_has_dc_aliases) 483 map_coherent = (cpu_has_dc_aliases &&
484 page_mapped(page) && !Page_dcache_dirty(page));
485 if (map_coherent)
483 vaddr = kmap_coherent(page, addr); 486 vaddr = kmap_coherent(page, addr);
484 else 487 else
485 vaddr = kmap_atomic(page, KM_USER0); 488 vaddr = kmap_atomic(page, KM_USER0);
@@ -502,7 +505,7 @@ static inline void local_r4k_flush_cache_page(void *args)
502 } 505 }
503 506
504 if (vaddr) { 507 if (vaddr) {
505 if (cpu_has_dc_aliases) 508 if (map_coherent)
506 kunmap_coherent(); 509 kunmap_coherent();
507 else 510 else
508 kunmap_atomic(vaddr, KM_USER0); 511 kunmap_atomic(vaddr, KM_USER0);
@@ -1226,6 +1229,28 @@ void au1x00_fixup_config_od(void)
1226 } 1229 }
1227} 1230}
1228 1231
1232/* CP0 hazard avoidance. */
1233#define NXP_BARRIER() \
1234 __asm__ __volatile__( \
1235 ".set noreorder\n\t" \
1236 "nop; nop; nop; nop; nop; nop;\n\t" \
1237 ".set reorder\n\t")
1238
1239static void nxp_pr4450_fixup_config(void)
1240{
1241 unsigned long config0;
1242
1243 config0 = read_c0_config();
1244
1245 /* clear all three cache coherency fields */
1246 config0 &= ~(0x7 | (7 << 25) | (7 << 28));
1247 config0 |= (((_page_cachable_default >> _CACHE_SHIFT) << 0) |
1248 ((_page_cachable_default >> _CACHE_SHIFT) << 25) |
1249 ((_page_cachable_default >> _CACHE_SHIFT) << 28));
1250 write_c0_config(config0);
1251 NXP_BARRIER();
1252}
1253
1229static int __cpuinitdata cca = -1; 1254static int __cpuinitdata cca = -1;
1230 1255
1231static int __init cca_setup(char *str) 1256static int __init cca_setup(char *str)
@@ -1271,6 +1296,10 @@ static void __cpuinit coherency_setup(void)
1271 case CPU_AU1500: /* rev. AB */ 1296 case CPU_AU1500: /* rev. AB */
1272 au1x00_fixup_config_od(); 1297 au1x00_fixup_config_od();
1273 break; 1298 break;
1299
1300 case PRID_IMP_PR4450:
1301 nxp_pr4450_fixup_config();
1302 break;
1274 } 1303 }
1275} 1304}
1276 1305
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index ecd562d2c348..137c14bafd6b 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -71,6 +71,7 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
71 * don't have to care about aliases on other CPUs. 71 * don't have to care about aliases on other CPUs.
72 */ 72 */
73unsigned long empty_zero_page, zero_page_mask; 73unsigned long empty_zero_page, zero_page_mask;
74EXPORT_SYMBOL_GPL(empty_zero_page);
74 75
75/* 76/*
76 * Not static inline because used by IP27 special magic initialization code 77 * Not static inline because used by IP27 special magic initialization code
diff --git a/arch/mips/mm/page.c b/arch/mips/mm/page.c
index cab81f42eee5..1edf0cbbeede 100644
--- a/arch/mips/mm/page.c
+++ b/arch/mips/mm/page.c
@@ -460,7 +460,7 @@ void __cpuinit build_copy_page(void)
460 build_copy_load_pref(&buf, -off); 460 build_copy_load_pref(&buf, -off);
461 off -= cache_line_size; 461 off -= cache_line_size;
462 } 462 }
463 off = cache_line_size ? min(8, pref_bias_copy_load / cache_line_size) * 463 off = cache_line_size ? min(8, pref_bias_copy_store / cache_line_size) *
464 cache_line_size : 0; 464 cache_line_size : 0;
465 while (off) { 465 while (off) {
466 build_copy_store_pref(&buf, -off); 466 build_copy_store_pref(&buf, -off);
diff --git a/arch/mips/nxp/pnx8550/jbs/board_setup.c b/arch/mips/nxp/pnx8550/jbs/board_setup.c
index f92826e0096d..57dd903ca408 100644
--- a/arch/mips/nxp/pnx8550/jbs/board_setup.c
+++ b/arch/mips/nxp/pnx8550/jbs/board_setup.c
@@ -47,16 +47,7 @@
47 47
48void __init board_setup(void) 48void __init board_setup(void)
49{ 49{
50 unsigned long config0, configpr; 50 unsigned long configpr;
51
52 config0 = read_c0_config();
53
54 /* clear all three cache coherency fields */
55 config0 &= ~(0x7 | (7<<25) | (7<<28));
56 config0 |= (CONF_CM_DEFAULT | (CONF_CM_DEFAULT<<25) |
57 (CONF_CM_DEFAULT<<28));
58 write_c0_config(config0);
59 BARRIER;
60 51
61 configpr = read_c0_config7(); 52 configpr = read_c0_config7();
62 configpr |= (1<<19); /* enable tlb */ 53 configpr |= (1<<19); /* enable tlb */
diff --git a/arch/mips/nxp/pnx8550/stb810/board_setup.c b/arch/mips/nxp/pnx8550/stb810/board_setup.c
index 1282c27cfcb7..af2a55e0b4e9 100644
--- a/arch/mips/nxp/pnx8550/stb810/board_setup.c
+++ b/arch/mips/nxp/pnx8550/stb810/board_setup.c
@@ -33,15 +33,7 @@
33 33
34void __init board_setup(void) 34void __init board_setup(void)
35{ 35{
36 unsigned long config0, configpr; 36 unsigned long configpr;
37
38 config0 = read_c0_config();
39
40 /* clear all three cache coherency fields */
41 config0 &= ~(0x7 | (7<<25) | (7<<28));
42 config0 |= (CONF_CM_DEFAULT | (CONF_CM_DEFAULT<<25) |
43 (CONF_CM_DEFAULT<<28));
44 write_c0_config(config0);
45 37
46 configpr = read_c0_config7(); 38 configpr = read_c0_config7();
47 configpr |= (1<<19); /* enable tlb */ 39 configpr |= (1<<19); /* enable tlb */
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c
index 42e4d2c800fa..2a09ad91ec8c 100644
--- a/arch/mips/pci/pci-sb1250.c
+++ b/arch/mips/pci/pci-sb1250.c
@@ -207,6 +207,7 @@ struct pci_controller sb1250_controller = {
207 207
208static int __init sb1250_pcibios_init(void) 208static int __init sb1250_pcibios_init(void)
209{ 209{
210 void __iomem *io_map_base;
210 uint32_t cmdreg; 211 uint32_t cmdreg;
211 uint64_t reg; 212 uint64_t reg;
212 extern int pci_probe_only; 213 extern int pci_probe_only;
@@ -253,12 +254,13 @@ static int __init sb1250_pcibios_init(void)
253 * works correctly with most of Linux's drivers. 254 * works correctly with most of Linux's drivers.
254 * XXX ehs: Should this happen in PCI Device mode? 255 * XXX ehs: Should this happen in PCI Device mode?
255 */ 256 */
256
257 set_io_port_base((unsigned long)
258 ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536));
259 isa_slot_offset = (unsigned long) 257 isa_slot_offset = (unsigned long)
260 ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024 * 1024); 258 ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024 * 1024);
261 259
260 io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024);
261 sb1250_controller.io_map_base = io_map_base;
262 set_io_port_base((unsigned long)io_map_base);
263
262#ifdef CONFIG_SIBYTE_HAS_LDT 264#ifdef CONFIG_SIBYTE_HAS_LDT
263 /* 265 /*
264 * Also check the LDT bridge's enable, just in case we didn't 266 * Also check the LDT bridge's enable, just in case we didn't
diff --git a/arch/mips/pci/pci-vr41xx.c b/arch/mips/pci/pci-vr41xx.c
index 33c4f683d067..d1e049b55f34 100644
--- a/arch/mips/pci/pci-vr41xx.c
+++ b/arch/mips/pci/pci-vr41xx.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright (C) 2001-2003 MontaVista Software Inc. 4 * Copyright (C) 2001-2003 MontaVista Software Inc.
5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com> 5 * Author: Yoichi Yuasa <yyuasa@mvista.com or source@mvista.com>
6 * Copyright (C) 2004-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 6 * Copyright (C) 2004-2008 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
7 * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org) 7 * Copyright (C) 2004 by Ralf Baechle (ralf@linux-mips.org)
8 * 8 *
9 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
@@ -300,6 +300,18 @@ static int __init vr41xx_pciu_init(void)
300 ioport_resource.end = IO_PORT_RESOURCE_END; 300 ioport_resource.end = IO_PORT_RESOURCE_END;
301 } 301 }
302 302
303 if (setup->master_io) {
304 void __iomem *io_map_base;
305 struct resource *res = vr41xx_pci_controller.io_resource;
306 master = setup->master_io;
307 io_map_base = ioremap(master->bus_base_address,
308 res->end - res->start + 1);
309 if (!io_map_base)
310 return -EBUSY;
311
312 vr41xx_pci_controller.io_map_base = (unsigned long)io_map_base;
313 }
314
303 register_pci_controller(&vr41xx_pci_controller); 315 register_pci_controller(&vr41xx_pci_controller);
304 316
305 return 0; 317 return 0;
diff --git a/arch/mips/sibyte/swarm/Makefile b/arch/mips/sibyte/swarm/Makefile
index 2d626039195c..1775755a2619 100644
--- a/arch/mips/sibyte/swarm/Makefile
+++ b/arch/mips/sibyte/swarm/Makefile
@@ -1,3 +1,3 @@
1lib-y = setup.o rtc_xicor1241.o rtc_m41t81.o 1obj-y := setup.o rtc_xicor1241.o rtc_m41t81.o
2 2
3lib-$(CONFIG_KGDB) += dbg_io.o 3obj-$(CONFIG_KGDB) += dbg_io.o
diff --git a/arch/mn10300/kernel/process.c b/arch/mn10300/kernel/process.c
index 3b0d579fc15d..9c623c88387b 100644
--- a/arch/mn10300/kernel/process.c
+++ b/arch/mn10300/kernel/process.c
@@ -20,7 +20,6 @@
20#include <linux/ptrace.h> 20#include <linux/ptrace.h>
21#include <linux/slab.h> 21#include <linux/slab.h>
22#include <linux/user.h> 22#include <linux/user.h>
23#include <linux/a.out.h>
24#include <linux/interrupt.h> 23#include <linux/interrupt.h>
25#include <linux/delay.h> 24#include <linux/delay.h>
26#include <linux/reboot.h> 25#include <linux/reboot.h>
diff --git a/arch/mn10300/kernel/setup.c b/arch/mn10300/kernel/setup.c
index 6b7ce2636851..017121ce896f 100644
--- a/arch/mn10300/kernel/setup.c
+++ b/arch/mn10300/kernel/setup.c
@@ -17,7 +17,6 @@
17#include <linux/ptrace.h> 17#include <linux/ptrace.h>
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/user.h> 19#include <linux/user.h>
20#include <linux/a.out.h>
21#include <linux/tty.h> 20#include <linux/tty.h>
22#include <linux/ioport.h> 21#include <linux/ioport.h>
23#include <linux/delay.h> 22#include <linux/delay.h>
diff --git a/arch/parisc/hpux/gate.S b/arch/parisc/hpux/gate.S
index f0b18ce89842..38a1c1b8d4e8 100644
--- a/arch/parisc/hpux/gate.S
+++ b/arch/parisc/hpux/gate.S
@@ -13,10 +13,9 @@
13#include <asm/unistd.h> 13#include <asm/unistd.h>
14#include <asm/errno.h> 14#include <asm/errno.h>
15#include <linux/linkage.h> 15#include <linux/linkage.h>
16#include <linux/init.h>
17 16
18 .level LEVEL 17 .level LEVEL
19 __HEAD 18 .text
20 19
21 .import hpux_call_table 20 .import hpux_call_table
22 .import hpux_syscall_exit,code 21 .import hpux_syscall_exit,code
diff --git a/arch/parisc/hpux/wrappers.S b/arch/parisc/hpux/wrappers.S
index ccd3a50c0995..58c53c879c02 100644
--- a/arch/parisc/hpux/wrappers.S
+++ b/arch/parisc/hpux/wrappers.S
@@ -28,10 +28,9 @@
28#include <asm/assembly.h> 28#include <asm/assembly.h>
29#include <asm/signal.h> 29#include <asm/signal.h>
30#include <linux/linkage.h> 30#include <linux/linkage.h>
31#include <linux/init.h>
32 31
33 .level LEVEL 32 .level LEVEL
34 __HEAD 33 .text
35 34
36 /* These should probably go in a header file somewhere. 35 /* These should probably go in a header file somewhere.
37 * They are duplicated in kernel/wrappers.S 36 * They are duplicated in kernel/wrappers.S
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index 5d0837458c19..d1fa4edd2d80 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -38,7 +38,6 @@
38#include <asm/thread_info.h> 38#include <asm/thread_info.h>
39 39
40#include <linux/linkage.h> 40#include <linux/linkage.h>
41#include <linux/init.h>
42 41
43#ifdef CONFIG_64BIT 42#ifdef CONFIG_64BIT
44 .level 2.0w 43 .level 2.0w
@@ -622,7 +621,7 @@
622 * the static part of the kernel address space. 621 * the static part of the kernel address space.
623 */ 622 */
624 623
625 __HEAD 624 .text
626 625
627 .align PAGE_SIZE 626 .align PAGE_SIZE
628 627
diff --git a/arch/parisc/kernel/head.S b/arch/parisc/kernel/head.S
index 5680a2c3b13d..a84e31e82876 100644
--- a/arch/parisc/kernel/head.S
+++ b/arch/parisc/kernel/head.S
@@ -33,6 +33,7 @@ ENTRY(boot_args)
33END(boot_args) 33END(boot_args)
34 34
35 __HEAD 35 __HEAD
36
36 .align 4 37 .align 4
37 .import init_thread_union,data 38 .import init_thread_union,data
38 .import fault_vector_20,code /* IVA parisc 2.0 32 bit */ 39 .import fault_vector_20,code /* IVA parisc 2.0 32 bit */
diff --git a/arch/parisc/kernel/hpmc.S b/arch/parisc/kernel/hpmc.S
index 068322eb8c9b..2cbf13b3ef11 100644
--- a/arch/parisc/kernel/hpmc.S
+++ b/arch/parisc/kernel/hpmc.S
@@ -47,7 +47,6 @@
47#include <asm/pdc.h> 47#include <asm/pdc.h>
48 48
49#include <linux/linkage.h> 49#include <linux/linkage.h>
50#include <linux/init.h>
51 50
52 /* 51 /*
53 * stack for os_hpmc, the HPMC handler. 52 * stack for os_hpmc, the HPMC handler.
@@ -77,7 +76,7 @@ ENTRY(hpmc_pim_data)
77 .block HPMC_PIM_DATA_SIZE 76 .block HPMC_PIM_DATA_SIZE
78END(hpmc_pim_data) 77END(hpmc_pim_data)
79 78
80 __HEAD 79 .text
81 80
82 .import intr_save, code 81 .import intr_save, code
83ENTRY(os_hpmc) 82ENTRY(os_hpmc)
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
index e3246a5ca74f..09b77b2553c6 100644
--- a/arch/parisc/kernel/pacache.S
+++ b/arch/parisc/kernel/pacache.S
@@ -37,9 +37,8 @@
37#include <asm/pgtable.h> 37#include <asm/pgtable.h>
38#include <asm/cache.h> 38#include <asm/cache.h>
39#include <linux/linkage.h> 39#include <linux/linkage.h>
40#include <linux/init.h>
41 40
42 __HEAD 41 .text
43 .align 128 42 .align 128
44 43
45ENTRY(flush_tlb_all_local) 44ENTRY(flush_tlb_all_local)
diff --git a/arch/parisc/kernel/parisc_ksyms.c b/arch/parisc/kernel/parisc_ksyms.c
index 5b7fc4aa044d..0eecfbbc59cd 100644
--- a/arch/parisc/kernel/parisc_ksyms.c
+++ b/arch/parisc/kernel/parisc_ksyms.c
@@ -152,3 +152,6 @@ EXPORT_SYMBOL($$dyncall);
152EXPORT_SYMBOL(node_data); 152EXPORT_SYMBOL(node_data);
153EXPORT_SYMBOL(pfnnid_map); 153EXPORT_SYMBOL(pfnnid_map);
154#endif 154#endif
155
156/* from pacache.S -- needed for copy_page */
157EXPORT_SYMBOL(copy_user_page_asm);
diff --git a/arch/parisc/kernel/perf_asm.S b/arch/parisc/kernel/perf_asm.S
index d411dfb5b6d1..fa6ea99bb324 100644
--- a/arch/parisc/kernel/perf_asm.S
+++ b/arch/parisc/kernel/perf_asm.S
@@ -43,7 +43,7 @@
43; The coprocessor only needs to be enabled when 43; The coprocessor only needs to be enabled when
44; starting/stopping the coprocessor with the pmenb/pmdis. 44; starting/stopping the coprocessor with the pmenb/pmdis.
45; 45;
46 __HEAD 46 .text
47 47
48ENTRY(perf_intrigue_enable_perf_counters) 48ENTRY(perf_intrigue_enable_perf_counters)
49 .proc 49 .proc
diff --git a/arch/parisc/kernel/real2.S b/arch/parisc/kernel/real2.S
index 47fbdae6efd5..7a92695d95a6 100644
--- a/arch/parisc/kernel/real2.S
+++ b/arch/parisc/kernel/real2.S
@@ -12,7 +12,6 @@
12#include <asm/assembly.h> 12#include <asm/assembly.h>
13 13
14#include <linux/linkage.h> 14#include <linux/linkage.h>
15#include <linux/init.h>
16 15
17 .section .bss 16 .section .bss
18 .export real_stack 17 .export real_stack
@@ -40,7 +39,7 @@ save_cr_end:
40/************************ 32-bit real-mode calls ***********************/ 39/************************ 32-bit real-mode calls ***********************/
41/* This can be called in both narrow and wide kernels */ 40/* This can be called in both narrow and wide kernels */
42 41
43 __HEAD 42 .text
44 43
45 /* unsigned long real32_call_asm(unsigned int *sp, 44 /* unsigned long real32_call_asm(unsigned int *sp,
46 * unsigned int *arg0p, 45 * unsigned int *arg0p,
@@ -114,7 +113,7 @@ ENDPROC(real32_call_asm)
114# define PUSH_CR(r, where) mfctl r, %r1 ! STREG,ma %r1, REG_SZ(where) 113# define PUSH_CR(r, where) mfctl r, %r1 ! STREG,ma %r1, REG_SZ(where)
115# define POP_CR(r, where) LDREG,mb -REG_SZ(where), %r1 ! mtctl %r1, r 114# define POP_CR(r, where) LDREG,mb -REG_SZ(where), %r1 ! mtctl %r1, r
116 115
117 __HEAD 116 .text
118save_control_regs: 117save_control_regs:
119 load32 PA(save_cr_space), %r28 118 load32 PA(save_cr_space), %r28
120 PUSH_CR(%cr24, %r28) 119 PUSH_CR(%cr24, %r28)
@@ -146,7 +145,7 @@ restore_control_regs:
146/* rfi_virt2real() and rfi_real2virt() could perhaps be adapted for 145/* rfi_virt2real() and rfi_real2virt() could perhaps be adapted for
147 * more general-purpose use by the several places which need RFIs 146 * more general-purpose use by the several places which need RFIs
148 */ 147 */
149 __HEAD 148 .text
150 .align 128 149 .align 128
151rfi_virt2real: 150rfi_virt2real:
152 /* switch to real mode... */ 151 /* switch to real mode... */
@@ -181,7 +180,7 @@ rfi_v2r_1:
181 bv 0(%r2) 180 bv 0(%r2)
182 nop 181 nop
183 182
184 __HEAD 183 .text
185 .align 128 184 .align 128
186rfi_real2virt: 185rfi_real2virt:
187 rsm PSW_SM_I,%r0 186 rsm PSW_SM_I,%r0
@@ -219,7 +218,7 @@ rfi_r2v_1:
219 218
220/************************ 64-bit real-mode calls ***********************/ 219/************************ 64-bit real-mode calls ***********************/
221/* This is only usable in wide kernels right now and will probably stay so */ 220/* This is only usable in wide kernels right now and will probably stay so */
222 __HEAD 221 .text
223 /* unsigned long real64_call_asm(unsigned long *sp, 222 /* unsigned long real64_call_asm(unsigned long *sp,
224 * unsigned long *arg0p, 223 * unsigned long *arg0p,
225 * unsigned long fn) 224 * unsigned long fn)
@@ -277,7 +276,7 @@ ENDPROC(real64_call_asm)
277 276
278#endif 277#endif
279 278
280 __HEAD 279 .text
281 /* http://lists.parisc-linux.org/hypermail/parisc-linux/10916.html 280 /* http://lists.parisc-linux.org/hypermail/parisc-linux/10916.html
282 ** GCC 3.3 and later has a new function in libgcc.a for 281 ** GCC 3.3 and later has a new function in libgcc.a for
283 ** comparing function pointers. 282 ** comparing function pointers.
diff --git a/arch/parisc/kernel/signal32.c b/arch/parisc/kernel/signal32.c
index db94affe5c71..fb59852006de 100644
--- a/arch/parisc/kernel/signal32.c
+++ b/arch/parisc/kernel/signal32.c
@@ -289,7 +289,7 @@ setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __
289 &sc->sc_iaoq[0], compat_reg); 289 &sc->sc_iaoq[0], compat_reg);
290 290
291 /* Store upper half */ 291 /* Store upper half */
292 compat_reg = (compat_uint_t)(regs->gr[32] >> 32); 292 compat_reg = (compat_uint_t)(regs->gr[31] >> 32);
293 err |= __put_user(compat_reg, &rf->rf_iaoq[0]); 293 err |= __put_user(compat_reg, &rf->rf_iaoq[0]);
294 DBG(2,"setup_sigcontext32: upper half iaoq[0] = %#x\n", compat_reg); 294 DBG(2,"setup_sigcontext32: upper half iaoq[0] = %#x\n", compat_reg);
295 295
@@ -299,7 +299,7 @@ setup_sigcontext32(struct compat_sigcontext __user *sc, struct compat_regfile __
299 DBG(2,"setup_sigcontext32: sc->sc_iaoq[1] = %p <= %#x\n", 299 DBG(2,"setup_sigcontext32: sc->sc_iaoq[1] = %p <= %#x\n",
300 &sc->sc_iaoq[1], compat_reg); 300 &sc->sc_iaoq[1], compat_reg);
301 /* Store upper half */ 301 /* Store upper half */
302 compat_reg = (compat_uint_t)((regs->gr[32]+4) >> 32); 302 compat_reg = (compat_uint_t)((regs->gr[31]+4) >> 32);
303 err |= __put_user(compat_reg, &rf->rf_iaoq[1]); 303 err |= __put_user(compat_reg, &rf->rf_iaoq[1]);
304 DBG(2,"setup_sigcontext32: upper half iaoq[1] = %#x\n", compat_reg); 304 DBG(2,"setup_sigcontext32: upper half iaoq[1] = %#x\n", compat_reg);
305 305
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
index ae509d8cd03f..69b6eebc466e 100644
--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -17,7 +17,6 @@
17#include <asm/processor.h> 17#include <asm/processor.h>
18 18
19#include <linux/linkage.h> 19#include <linux/linkage.h>
20#include <linux/init.h>
21 20
22 /* We fill the empty parts of the gateway page with 21 /* We fill the empty parts of the gateway page with
23 * something that will kill the kernel or a 22 * something that will kill the kernel or a
@@ -27,7 +26,7 @@
27 26
28 .level LEVEL 27 .level LEVEL
29 28
30 __HEAD 29 .text
31 30
32 .import syscall_exit,code 31 .import syscall_exit,code
33 .import syscall_exit_rfi,code 32 .import syscall_exit_rfi,code
@@ -637,7 +636,7 @@ END(sys_call_table64)
637 All light-weight-syscall atomic operations 636 All light-weight-syscall atomic operations
638 will use this set of locks 637 will use this set of locks
639 */ 638 */
640 .section .data, "aw" 639 .section .data
641 .align PAGE_SIZE 640 .align PAGE_SIZE
642ENTRY(lws_lock_start) 641ENTRY(lws_lock_start)
643 /* lws locks */ 642 /* lws locks */
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index 50b4a3a25d0a..2e516b871752 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -50,6 +50,7 @@ SECTIONS
50 50
51 _text = .; /* Text and read-only data */ 51 _text = .; /* Text and read-only data */
52 .text ALIGN(16) : { 52 .text ALIGN(16) : {
53 HEAD_TEXT
53 TEXT_TEXT 54 TEXT_TEXT
54 SCHED_TEXT 55 SCHED_TEXT
55 LOCK_TEXT 56 LOCK_TEXT
diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S
index 4821ad6d5269..d172d4245cdc 100644
--- a/arch/parisc/lib/fixup.S
+++ b/arch/parisc/lib/fixup.S
@@ -23,7 +23,6 @@
23#include <asm/assembly.h> 23#include <asm/assembly.h>
24#include <asm/errno.h> 24#include <asm/errno.h>
25#include <linux/linkage.h> 25#include <linux/linkage.h>
26#include <linux/init.h>
27 26
28#ifdef CONFIG_SMP 27#ifdef CONFIG_SMP
29 .macro get_fault_ip t1 t2 28 .macro get_fault_ip t1 t2
@@ -56,7 +55,7 @@
56 55
57 .level LEVEL 56 .level LEVEL
58 57
59 __HEAD 58 .text
60 .section .fixup, "ax" 59 .section .fixup, "ax"
61 60
62 /* get_user() fixups, store -EFAULT in r8, and 0 in r9 */ 61 /* get_user() fixups, store -EFAULT in r8, and 0 in r9 */
diff --git a/arch/parisc/lib/lusercopy.S b/arch/parisc/lib/lusercopy.S
index b0d885350846..1bd23ccec17b 100644
--- a/arch/parisc/lib/lusercopy.S
+++ b/arch/parisc/lib/lusercopy.S
@@ -33,12 +33,11 @@
33 */ 33 */
34 34
35 35
36 .text
37
36#include <asm/assembly.h> 38#include <asm/assembly.h>
37#include <asm/errno.h> 39#include <asm/errno.h>
38#include <linux/linkage.h> 40#include <linux/linkage.h>
39#include <linux/init.h>
40
41 __HEAD
42 41
43 /* 42 /*
44 * get_sr gets the appropriate space value into 43 * get_sr gets the appropriate space value into
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 78fe252b92c3..ce0da689a89d 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -547,6 +547,7 @@ void __init mem_init(void)
547} 547}
548 548
549unsigned long *empty_zero_page __read_mostly; 549unsigned long *empty_zero_page __read_mostly;
550EXPORT_SYMBOL(empty_zero_page);
550 551
551void show_mem(void) 552void show_mem(void)
552{ 553{
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9dcdc036cdf7..b7d4c4ce2fe6 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -96,6 +96,8 @@ endif
96else 96else
97 KBUILD_CFLAGS += $(call cc-option,-mtune=power4) 97 KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
98endif 98endif
99else
100LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
99endif 101endif
100 102
101ifeq ($(CONFIG_TUNE_CELL),y) 103ifeq ($(CONFIG_TUNE_CELL),y)
@@ -154,7 +156,7 @@ all: zImage
154 156
155CPPFLAGS_vmlinux.lds := -Upowerpc 157CPPFLAGS_vmlinux.lds := -Upowerpc
156 158
157BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% 159BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
158 160
159PHONY += $(BOOT_TARGETS) 161PHONY += $(BOOT_TARGETS)
160 162
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 3463253893f2..4721baf92892 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -51,7 +51,7 @@ $(addprefix $(obj)/,$(zlib) gunzip_util.o main.o): \
51 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader)) 51 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
52 52
53src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c 53src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
54src-wlib := string.S crt0.S stdio.c main.c \ 54src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
55 $(addprefix libfdt/,$(src-libfdt)) libfdt-wrapper.c \ 55 $(addprefix libfdt/,$(src-libfdt)) libfdt-wrapper.c \
56 ns16550.c serial.c simple_alloc.c div64.S util.S \ 56 ns16550.c serial.c simple_alloc.c div64.S util.S \
57 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \ 57 gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
diff --git a/arch/powerpc/boot/crtsavres.S b/arch/powerpc/boot/crtsavres.S
new file mode 100644
index 000000000000..f3d9b35c07d4
--- /dev/null
+++ b/arch/powerpc/boot/crtsavres.S
@@ -0,0 +1,233 @@
1/*
2 * Special support for eabi and SVR4
3 *
4 * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
5 * Copyright 2008 Freescale Semiconductor, Inc.
6 * Written By Michael Meissner
7 *
8 * Based on gcc/config/rs6000/crtsavres.asm from gcc
9 *
10 * This file 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, or (at your option) any
13 * later version.
14 *
15 * In addition to the permissions in the GNU General Public License, the
16 * Free Software Foundation gives you unlimited permission to link the
17 * compiled version of this file with other programs, and to distribute
18 * those programs without any restriction coming from the use of this
19 * file. (The General Public License restrictions do apply in other
20 * respects; for example, they cover modification of the file, and
21 * distribution when not linked into another program.)
22 *
23 * This file is distributed in the hope that it will be useful, but
24 * WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26 * General Public License for more details.
27 *
28 * You should have received a copy of the GNU General Public License
29 * along with this program; see the file COPYING. If not, write to
30 * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
31 * Boston, MA 02110-1301, USA.
32 *
33 * As a special exception, if you link this library with files
34 * compiled with GCC to produce an executable, this does not cause
35 * the resulting executable to be covered by the GNU General Public License.
36 * This exception does not however invalidate any other reasons why
37 * the executable file might be covered by the GNU General Public License.
38 */
39
40 .file "crtsavres.S"
41 .section ".text"
42
43/* On PowerPC64 Linux, these functions are provided by the linker. */
44#ifndef __powerpc64__
45
46#define _GLOBAL(name) \
47 .type name,@function; \
48 .globl name; \
49name:
50
51/* Routines for saving integer registers, called by the compiler. */
52/* Called with r11 pointing to the stack header word of the caller of the */
53/* function, just beyond the end of the integer save area. */
54
55_GLOBAL(_savegpr_14)
56_GLOBAL(_save32gpr_14)
57 stw 14,-72(11) /* save gp registers */
58_GLOBAL(_savegpr_15)
59_GLOBAL(_save32gpr_15)
60 stw 15,-68(11)
61_GLOBAL(_savegpr_16)
62_GLOBAL(_save32gpr_16)
63 stw 16,-64(11)
64_GLOBAL(_savegpr_17)
65_GLOBAL(_save32gpr_17)
66 stw 17,-60(11)
67_GLOBAL(_savegpr_18)
68_GLOBAL(_save32gpr_18)
69 stw 18,-56(11)
70_GLOBAL(_savegpr_19)
71_GLOBAL(_save32gpr_19)
72 stw 19,-52(11)
73_GLOBAL(_savegpr_20)
74_GLOBAL(_save32gpr_20)
75 stw 20,-48(11)
76_GLOBAL(_savegpr_21)
77_GLOBAL(_save32gpr_21)
78 stw 21,-44(11)
79_GLOBAL(_savegpr_22)
80_GLOBAL(_save32gpr_22)
81 stw 22,-40(11)
82_GLOBAL(_savegpr_23)
83_GLOBAL(_save32gpr_23)
84 stw 23,-36(11)
85_GLOBAL(_savegpr_24)
86_GLOBAL(_save32gpr_24)
87 stw 24,-32(11)
88_GLOBAL(_savegpr_25)
89_GLOBAL(_save32gpr_25)
90 stw 25,-28(11)
91_GLOBAL(_savegpr_26)
92_GLOBAL(_save32gpr_26)
93 stw 26,-24(11)
94_GLOBAL(_savegpr_27)
95_GLOBAL(_save32gpr_27)
96 stw 27,-20(11)
97_GLOBAL(_savegpr_28)
98_GLOBAL(_save32gpr_28)
99 stw 28,-16(11)
100_GLOBAL(_savegpr_29)
101_GLOBAL(_save32gpr_29)
102 stw 29,-12(11)
103_GLOBAL(_savegpr_30)
104_GLOBAL(_save32gpr_30)
105 stw 30,-8(11)
106_GLOBAL(_savegpr_31)
107_GLOBAL(_save32gpr_31)
108 stw 31,-4(11)
109 blr
110
111/* Routines for restoring integer registers, called by the compiler. */
112/* Called with r11 pointing to the stack header word of the caller of the */
113/* function, just beyond the end of the integer restore area. */
114
115_GLOBAL(_restgpr_14)
116_GLOBAL(_rest32gpr_14)
117 lwz 14,-72(11) /* restore gp registers */
118_GLOBAL(_restgpr_15)
119_GLOBAL(_rest32gpr_15)
120 lwz 15,-68(11)
121_GLOBAL(_restgpr_16)
122_GLOBAL(_rest32gpr_16)
123 lwz 16,-64(11)
124_GLOBAL(_restgpr_17)
125_GLOBAL(_rest32gpr_17)
126 lwz 17,-60(11)
127_GLOBAL(_restgpr_18)
128_GLOBAL(_rest32gpr_18)
129 lwz 18,-56(11)
130_GLOBAL(_restgpr_19)
131_GLOBAL(_rest32gpr_19)
132 lwz 19,-52(11)
133_GLOBAL(_restgpr_20)
134_GLOBAL(_rest32gpr_20)
135 lwz 20,-48(11)
136_GLOBAL(_restgpr_21)
137_GLOBAL(_rest32gpr_21)
138 lwz 21,-44(11)
139_GLOBAL(_restgpr_22)
140_GLOBAL(_rest32gpr_22)
141 lwz 22,-40(11)
142_GLOBAL(_restgpr_23)
143_GLOBAL(_rest32gpr_23)
144 lwz 23,-36(11)
145_GLOBAL(_restgpr_24)
146_GLOBAL(_rest32gpr_24)
147 lwz 24,-32(11)
148_GLOBAL(_restgpr_25)
149_GLOBAL(_rest32gpr_25)
150 lwz 25,-28(11)
151_GLOBAL(_restgpr_26)
152_GLOBAL(_rest32gpr_26)
153 lwz 26,-24(11)
154_GLOBAL(_restgpr_27)
155_GLOBAL(_rest32gpr_27)
156 lwz 27,-20(11)
157_GLOBAL(_restgpr_28)
158_GLOBAL(_rest32gpr_28)
159 lwz 28,-16(11)
160_GLOBAL(_restgpr_29)
161_GLOBAL(_rest32gpr_29)
162 lwz 29,-12(11)
163_GLOBAL(_restgpr_30)
164_GLOBAL(_rest32gpr_30)
165 lwz 30,-8(11)
166_GLOBAL(_restgpr_31)
167_GLOBAL(_rest32gpr_31)
168 lwz 31,-4(11)
169 blr
170
171/* Routines for restoring integer registers, called by the compiler. */
172/* Called with r11 pointing to the stack header word of the caller of the */
173/* function, just beyond the end of the integer restore area. */
174
175_GLOBAL(_restgpr_14_x)
176_GLOBAL(_rest32gpr_14_x)
177 lwz 14,-72(11) /* restore gp registers */
178_GLOBAL(_restgpr_15_x)
179_GLOBAL(_rest32gpr_15_x)
180 lwz 15,-68(11)
181_GLOBAL(_restgpr_16_x)
182_GLOBAL(_rest32gpr_16_x)
183 lwz 16,-64(11)
184_GLOBAL(_restgpr_17_x)
185_GLOBAL(_rest32gpr_17_x)
186 lwz 17,-60(11)
187_GLOBAL(_restgpr_18_x)
188_GLOBAL(_rest32gpr_18_x)
189 lwz 18,-56(11)
190_GLOBAL(_restgpr_19_x)
191_GLOBAL(_rest32gpr_19_x)
192 lwz 19,-52(11)
193_GLOBAL(_restgpr_20_x)
194_GLOBAL(_rest32gpr_20_x)
195 lwz 20,-48(11)
196_GLOBAL(_restgpr_21_x)
197_GLOBAL(_rest32gpr_21_x)
198 lwz 21,-44(11)
199_GLOBAL(_restgpr_22_x)
200_GLOBAL(_rest32gpr_22_x)
201 lwz 22,-40(11)
202_GLOBAL(_restgpr_23_x)
203_GLOBAL(_rest32gpr_23_x)
204 lwz 23,-36(11)
205_GLOBAL(_restgpr_24_x)
206_GLOBAL(_rest32gpr_24_x)
207 lwz 24,-32(11)
208_GLOBAL(_restgpr_25_x)
209_GLOBAL(_rest32gpr_25_x)
210 lwz 25,-28(11)
211_GLOBAL(_restgpr_26_x)
212_GLOBAL(_rest32gpr_26_x)
213 lwz 26,-24(11)
214_GLOBAL(_restgpr_27_x)
215_GLOBAL(_rest32gpr_27_x)
216 lwz 27,-20(11)
217_GLOBAL(_restgpr_28_x)
218_GLOBAL(_rest32gpr_28_x)
219 lwz 28,-16(11)
220_GLOBAL(_restgpr_29_x)
221_GLOBAL(_rest32gpr_29_x)
222 lwz 29,-12(11)
223_GLOBAL(_restgpr_30_x)
224_GLOBAL(_rest32gpr_30_x)
225 lwz 30,-8(11)
226_GLOBAL(_restgpr_31_x)
227_GLOBAL(_rest32gpr_31_x)
228 lwz 0,4(11)
229 lwz 31,-4(11)
230 mtlr 0
231 mr 1,11
232 blr
233#endif
diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts
index e05743ad7b3f..1f4538790302 100644
--- a/arch/powerpc/boot/dts/mpc8377_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts
@@ -199,12 +199,6 @@
199 reg = <0x2>; 199 reg = <0x2>;
200 device_type = "ethernet-phy"; 200 device_type = "ethernet-phy";
201 }; 201 };
202 phy3: ethernet-phy@3 {
203 interrupt-parent = <&ipic>;
204 interrupts = <18 0x8>;
205 reg = <0x3>;
206 device_type = "ethernet-phy";
207 };
208 }; 202 };
209 203
210 enet0: ethernet@24000 { 204 enet0: ethernet@24000 {
@@ -230,7 +224,7 @@
230 interrupts = <35 0x8 36 0x8 37 0x8>; 224 interrupts = <35 0x8 36 0x8 37 0x8>;
231 phy-connection-type = "mii"; 225 phy-connection-type = "mii";
232 interrupt-parent = <&ipic>; 226 interrupt-parent = <&ipic>;
233 phy-handle = <&phy3>; 227 fixed-link = <1 1 1000 0 0>;
234 }; 228 };
235 229
236 serial0: serial@4500 { 230 serial0: serial@4500 {
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts
index a8bdbaa975c9..44e34d3f21cf 100644
--- a/arch/powerpc/boot/dts/mpc8378_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts
@@ -199,12 +199,6 @@
199 reg = <0x2>; 199 reg = <0x2>;
200 device_type = "ethernet-phy"; 200 device_type = "ethernet-phy";
201 }; 201 };
202 phy3: ethernet-phy@3 {
203 interrupt-parent = <&ipic>;
204 interrupts = <18 0x8>;
205 reg = <0x3>;
206 device_type = "ethernet-phy";
207 };
208 }; 202 };
209 203
210 enet0: ethernet@24000 { 204 enet0: ethernet@24000 {
@@ -230,7 +224,7 @@
230 interrupts = <35 0x8 36 0x8 37 0x8>; 224 interrupts = <35 0x8 36 0x8 37 0x8>;
231 phy-connection-type = "mii"; 225 phy-connection-type = "mii";
232 interrupt-parent = <&ipic>; 226 interrupt-parent = <&ipic>;
233 phy-handle = <&phy3>; 227 fixed-link = <1 1 1000 0 0>;
234 }; 228 };
235 229
236 serial0: serial@4500 { 230 serial0: serial@4500 {
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts
index 9d636e39f23f..eeedf5884881 100644
--- a/arch/powerpc/boot/dts/mpc8379_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts
@@ -199,12 +199,6 @@
199 reg = <0x2>; 199 reg = <0x2>;
200 device_type = "ethernet-phy"; 200 device_type = "ethernet-phy";
201 }; 201 };
202 phy3: ethernet-phy@3 {
203 interrupt-parent = <&ipic>;
204 interrupts = <18 0x8>;
205 reg = <0x3>;
206 device_type = "ethernet-phy";
207 };
208 }; 202 };
209 203
210 enet0: ethernet@24000 { 204 enet0: ethernet@24000 {
@@ -230,7 +224,7 @@
230 interrupts = <35 0x8 36 0x8 37 0x8>; 224 interrupts = <35 0x8 36 0x8 37 0x8>;
231 phy-connection-type = "mii"; 225 phy-connection-type = "mii";
232 interrupt-parent = <&ipic>; 226 interrupt-parent = <&ipic>;
233 phy-handle = <&phy3>; 227 fixed-link = <1 1 1000 0 0>;
234 }; 228 };
235 229
236 serial0: serial@4500 { 230 serial0: serial@4500 {
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts
index 621388db3c9e..d1fa6bbfaea0 100644
--- a/arch/powerpc/boot/dts/mpc8548cds.dts
+++ b/arch/powerpc/boot/dts/mpc8548cds.dts
@@ -449,7 +449,7 @@
449 interrupts = <26 2>; 449 interrupts = <26 2>;
450 bus-range = <0 255>; 450 bus-range = <0 255>;
451 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 451 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
452 0x1000000 0x0 0x0 0xe3000000 0x0 0x8000000>; 452 0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>;
453 clock-frequency = <33333333>; 453 clock-frequency = <33333333>;
454 #interrupt-cells = <1>; 454 #interrupt-cells = <1>;
455 #size-cells = <2>; 455 #size-cells = <2>;
@@ -468,7 +468,7 @@
468 468
469 0x1000000 0x0 0x0 469 0x1000000 0x0 0x0
470 0x1000000 0x0 0x0 470 0x1000000 0x0 0x0
471 0x0 0x8000000>; 471 0x0 0x100000>;
472 }; 472 };
473 }; 473 };
474}; 474};
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 7d18440e398f..5428f9f5ed85 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Fri Apr 11 11:10:09 2008 4# Mon Jun 9 08:52:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -196,7 +201,6 @@ CONFIG_PREEMPT_NONE=y
196# CONFIG_PREEMPT is not set 201# CONFIG_PREEMPT is not set
197CONFIG_BINFMT_ELF=y 202CONFIG_BINFMT_ELF=y
198# CONFIG_BINFMT_MISC is not set 203# CONFIG_BINFMT_MISC is not set
199CONFIG_FORCE_MAX_ZONEORDER=11
200# CONFIG_IOMMU_HELPER is not set 204# CONFIG_IOMMU_HELPER is not set
201CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
202CONFIG_ARCH_HAS_WALK_MEMORY=y 206CONFIG_ARCH_HAS_WALK_MEMORY=y
@@ -211,11 +215,13 @@ CONFIG_FLATMEM=y
211CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
212# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
214CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
215# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
217CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
218CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
219CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
220# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
221# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -239,6 +245,7 @@ CONFIG_PCI_LEGACY=y
239# CONFIG_PCI_DEBUG is not set 245# CONFIG_PCI_DEBUG is not set
240# CONFIG_PCCARD is not set 246# CONFIG_PCCARD is not set
241# CONFIG_HOTPLUG_PCI is not set 247# CONFIG_HOTPLUG_PCI is not set
248# CONFIG_HAS_RAPIDIO is not set
242 249
243# 250#
244# Advanced setup 251# Advanced setup
@@ -248,11 +255,11 @@ CONFIG_PCI_LEGACY=y
248# 255#
249# Default settings for advanced configuration options are used 256# Default settings for advanced configuration options are used
250# 257#
251CONFIG_HIGHMEM_START=0xfe000000
252CONFIG_LOWMEM_SIZE=0x30000000 258CONFIG_LOWMEM_SIZE=0x30000000
259CONFIG_PAGE_OFFSET=0xc0000000
253CONFIG_KERNEL_START=0xc0000000 260CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000
254CONFIG_TASK_SIZE=0xc0000000 262CONFIG_TASK_SIZE=0xc0000000
255CONFIG_BOOT_LOAD=0x00800000
256 263
257# 264#
258# Networking 265# Networking
@@ -300,8 +307,6 @@ CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 307CONFIG_DEFAULT_TCP_CONG="cubic"
301# CONFIG_TCP_MD5SIG is not set 308# CONFIG_TCP_MD5SIG is not set
302# CONFIG_IPV6 is not set 309# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set 310# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set 311# CONFIG_NETFILTER is not set
307# CONFIG_IP_DCCP is not set 312# CONFIG_IP_DCCP is not set
@@ -362,6 +367,7 @@ CONFIG_MTD_PARTITIONS=y
362# CONFIG_MTD_REDBOOT_PARTS is not set 367# CONFIG_MTD_REDBOOT_PARTS is not set
363# CONFIG_MTD_CMDLINE_PARTS is not set 368# CONFIG_MTD_CMDLINE_PARTS is not set
364CONFIG_MTD_OF_PARTS=y 369CONFIG_MTD_OF_PARTS=y
370# CONFIG_MTD_AR7_PARTS is not set
365 371
366# 372#
367# User Modules And Translation Layers 373# User Modules And Translation Layers
@@ -445,6 +451,7 @@ CONFIG_MTD_NAND_FSL_ELBC=y
445# 451#
446# CONFIG_MTD_UBI is not set 452# CONFIG_MTD_UBI is not set
447CONFIG_OF_DEVICE=y 453CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y
448# CONFIG_PARPORT is not set 455# CONFIG_PARPORT is not set
449CONFIG_BLK_DEV=y 456CONFIG_BLK_DEV=y
450# CONFIG_BLK_DEV_FD is not set 457# CONFIG_BLK_DEV_FD is not set
@@ -641,7 +648,6 @@ CONFIG_NETDEV_1000=y
641# CONFIG_SIS190 is not set 648# CONFIG_SIS190 is not set
642# CONFIG_SKGE is not set 649# CONFIG_SKGE is not set
643# CONFIG_SKY2 is not set 650# CONFIG_SKY2 is not set
644# CONFIG_SK98LIN is not set
645# CONFIG_VIA_VELOCITY is not set 651# CONFIG_VIA_VELOCITY is not set
646# CONFIG_TIGON3 is not set 652# CONFIG_TIGON3 is not set
647# CONFIG_BNX2 is not set 653# CONFIG_BNX2 is not set
@@ -661,6 +667,7 @@ CONFIG_NETDEV_10000=y
661# CONFIG_MLX4_CORE is not set 667# CONFIG_MLX4_CORE is not set
662# CONFIG_TEHUTI is not set 668# CONFIG_TEHUTI is not set
663# CONFIG_BNX2X is not set 669# CONFIG_BNX2X is not set
670# CONFIG_SFC is not set
664# CONFIG_TR is not set 671# CONFIG_TR is not set
665 672
666# 673#
@@ -668,6 +675,7 @@ CONFIG_NETDEV_10000=y
668# 675#
669# CONFIG_WLAN_PRE80211 is not set 676# CONFIG_WLAN_PRE80211 is not set
670# CONFIG_WLAN_80211 is not set 677# CONFIG_WLAN_80211 is not set
678# CONFIG_IWLWIFI_LEDS is not set
671 679
672# 680#
673# USB Network Adapters 681# USB Network Adapters
@@ -724,6 +732,7 @@ CONFIG_INPUT=y
724# Character devices 732# Character devices
725# 733#
726# CONFIG_VT is not set 734# CONFIG_VT is not set
735CONFIG_DEVKMEM=y
727# CONFIG_SERIAL_NONSTANDARD is not set 736# CONFIG_SERIAL_NONSTANDARD is not set
728# CONFIG_NOZOMI is not set 737# CONFIG_NOZOMI is not set
729 738
@@ -751,7 +760,6 @@ CONFIG_LEGACY_PTY_COUNT=256
751# CONFIG_IPMI_HANDLER is not set 760# CONFIG_IPMI_HANDLER is not set
752CONFIG_HW_RANDOM=y 761CONFIG_HW_RANDOM=y
753# CONFIG_NVRAM is not set 762# CONFIG_NVRAM is not set
754# CONFIG_GEN_RTC is not set
755# CONFIG_R3964 is not set 763# CONFIG_R3964 is not set
756# CONFIG_APPLICOM is not set 764# CONFIG_APPLICOM is not set
757# CONFIG_RAW_DRIVER is not set 765# CONFIG_RAW_DRIVER is not set
@@ -762,13 +770,6 @@ CONFIG_I2C_BOARDINFO=y
762CONFIG_I2C_CHARDEV=y 770CONFIG_I2C_CHARDEV=y
763 771
764# 772#
765# I2C Algorithms
766#
767# CONFIG_I2C_ALGOBIT is not set
768# CONFIG_I2C_ALGOPCF is not set
769# CONFIG_I2C_ALGOPCA is not set
770
771#
772# I2C Hardware Bus support 773# I2C Hardware Bus support
773# 774#
774# CONFIG_I2C_ALI1535 is not set 775# CONFIG_I2C_ALI1535 is not set
@@ -795,6 +796,7 @@ CONFIG_I2C_MPC=y
795# CONFIG_I2C_VIA is not set 796# CONFIG_I2C_VIA is not set
796# CONFIG_I2C_VIAPRO is not set 797# CONFIG_I2C_VIAPRO is not set
797# CONFIG_I2C_VOODOO3 is not set 798# CONFIG_I2C_VOODOO3 is not set
799# CONFIG_I2C_PCA_PLATFORM is not set
798 800
799# 801#
800# Miscellaneous I2C Chip support 802# Miscellaneous I2C Chip support
@@ -804,17 +806,12 @@ CONFIG_I2C_MPC=y
804# CONFIG_SENSORS_PCF8574 is not set 806# CONFIG_SENSORS_PCF8574 is not set
805# CONFIG_PCF8575 is not set 807# CONFIG_PCF8575 is not set
806# CONFIG_SENSORS_PCF8591 is not set 808# CONFIG_SENSORS_PCF8591 is not set
807# CONFIG_TPS65010 is not set
808# CONFIG_SENSORS_MAX6875 is not set 809# CONFIG_SENSORS_MAX6875 is not set
809# CONFIG_SENSORS_TSL2550 is not set 810# CONFIG_SENSORS_TSL2550 is not set
810# CONFIG_I2C_DEBUG_CORE is not set 811# CONFIG_I2C_DEBUG_CORE is not set
811# CONFIG_I2C_DEBUG_ALGO is not set 812# CONFIG_I2C_DEBUG_ALGO is not set
812# CONFIG_I2C_DEBUG_BUS is not set 813# CONFIG_I2C_DEBUG_BUS is not set
813# CONFIG_I2C_DEBUG_CHIP is not set 814# CONFIG_I2C_DEBUG_CHIP is not set
814
815#
816# SPI support
817#
818CONFIG_SPI=y 815CONFIG_SPI=y
819# CONFIG_SPI_DEBUG is not set 816# CONFIG_SPI_DEBUG is not set
820CONFIG_SPI_MASTER=y 817CONFIG_SPI_MASTER=y
@@ -919,12 +916,22 @@ CONFIG_SSB_POSSIBLE=y
919# Multifunction device drivers 916# Multifunction device drivers
920# 917#
921# CONFIG_MFD_SM501 is not set 918# CONFIG_MFD_SM501 is not set
919# CONFIG_HTC_PASIC3 is not set
922 920
923# 921#
924# Multimedia devices 922# Multimedia devices
925# 923#
924
925#
926# Multimedia core support
927#
926# CONFIG_VIDEO_DEV is not set 928# CONFIG_VIDEO_DEV is not set
927# CONFIG_DVB_CORE is not set 929# CONFIG_DVB_CORE is not set
930# CONFIG_VIDEO_MEDIA is not set
931
932#
933# Multimedia drivers
934#
928CONFIG_DAB=y 935CONFIG_DAB=y
929# CONFIG_USB_DABUSB is not set 936# CONFIG_USB_DABUSB is not set
930 937
@@ -977,16 +984,20 @@ CONFIG_USB_DEVICEFS=y
977CONFIG_USB_DEVICE_CLASS=y 984CONFIG_USB_DEVICE_CLASS=y
978# CONFIG_USB_DYNAMIC_MINORS is not set 985# CONFIG_USB_DYNAMIC_MINORS is not set
979# CONFIG_USB_OTG is not set 986# CONFIG_USB_OTG is not set
987# CONFIG_USB_OTG_WHITELIST is not set
988# CONFIG_USB_OTG_BLACKLIST_HUB is not set
980 989
981# 990#
982# USB Host Controller Drivers 991# USB Host Controller Drivers
983# 992#
993# CONFIG_USB_C67X00_HCD is not set
984CONFIG_USB_EHCI_HCD=y 994CONFIG_USB_EHCI_HCD=y
985CONFIG_USB_EHCI_ROOT_HUB_TT=y 995CONFIG_USB_EHCI_ROOT_HUB_TT=y
986# CONFIG_USB_EHCI_TT_NEWSCHED is not set 996# CONFIG_USB_EHCI_TT_NEWSCHED is not set
987CONFIG_USB_EHCI_FSL=y 997CONFIG_USB_EHCI_FSL=y
988CONFIG_USB_EHCI_HCD_PPC_OF=y 998CONFIG_USB_EHCI_HCD_PPC_OF=y
989# CONFIG_USB_ISP116X_HCD is not set 999# CONFIG_USB_ISP116X_HCD is not set
1000# CONFIG_USB_ISP1760_HCD is not set
990CONFIG_USB_OHCI_HCD=y 1001CONFIG_USB_OHCI_HCD=y
991CONFIG_USB_OHCI_HCD_PPC_OF=y 1002CONFIG_USB_OHCI_HCD_PPC_OF=y
992CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1003CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1004,6 +1015,7 @@ CONFIG_USB_UHCI_HCD=y
1004# 1015#
1005# CONFIG_USB_ACM is not set 1016# CONFIG_USB_ACM is not set
1006# CONFIG_USB_PRINTER is not set 1017# CONFIG_USB_PRINTER is not set
1018# CONFIG_USB_WDM is not set
1007 1019
1008# 1020#
1009# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1021# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1023,7 +1035,9 @@ CONFIG_USB_STORAGE=y
1023# CONFIG_USB_STORAGE_SDDR55 is not set 1035# CONFIG_USB_STORAGE_SDDR55 is not set
1024# CONFIG_USB_STORAGE_JUMPSHOT is not set 1036# CONFIG_USB_STORAGE_JUMPSHOT is not set
1025# CONFIG_USB_STORAGE_ALAUDA is not set 1037# CONFIG_USB_STORAGE_ALAUDA is not set
1038# CONFIG_USB_STORAGE_ONETOUCH is not set
1026# CONFIG_USB_STORAGE_KARMA is not set 1039# CONFIG_USB_STORAGE_KARMA is not set
1040# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1027# CONFIG_USB_LIBUSUAL is not set 1041# CONFIG_USB_LIBUSUAL is not set
1028 1042
1029# 1043#
@@ -1061,6 +1075,7 @@ CONFIG_USB_MON=y
1061# CONFIG_USB_TRANCEVIBRATOR is not set 1075# CONFIG_USB_TRANCEVIBRATOR is not set
1062# CONFIG_USB_IOWARRIOR is not set 1076# CONFIG_USB_IOWARRIOR is not set
1063# CONFIG_USB_TEST is not set 1077# CONFIG_USB_TEST is not set
1078# CONFIG_USB_ISIGHTFW is not set
1064CONFIG_USB_GADGET=y 1079CONFIG_USB_GADGET=y
1065# CONFIG_USB_GADGET_DEBUG is not set 1080# CONFIG_USB_GADGET_DEBUG is not set
1066# CONFIG_USB_GADGET_DEBUG_FILES is not set 1081# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1072,6 +1087,7 @@ CONFIG_USB_GADGET_NET2280=y
1072CONFIG_USB_NET2280=y 1087CONFIG_USB_NET2280=y
1073# CONFIG_USB_GADGET_PXA2XX is not set 1088# CONFIG_USB_GADGET_PXA2XX is not set
1074# CONFIG_USB_GADGET_M66592 is not set 1089# CONFIG_USB_GADGET_M66592 is not set
1090# CONFIG_USB_GADGET_PXA27X is not set
1075# CONFIG_USB_GADGET_GOKU is not set 1091# CONFIG_USB_GADGET_GOKU is not set
1076# CONFIG_USB_GADGET_LH7A40X is not set 1092# CONFIG_USB_GADGET_LH7A40X is not set
1077# CONFIG_USB_GADGET_OMAP is not set 1093# CONFIG_USB_GADGET_OMAP is not set
@@ -1090,6 +1106,7 @@ CONFIG_USB_ETH_RNDIS=y
1090# CONFIG_MMC is not set 1106# CONFIG_MMC is not set
1091# CONFIG_MEMSTICK is not set 1107# CONFIG_MEMSTICK is not set
1092# CONFIG_NEW_LEDS is not set 1108# CONFIG_NEW_LEDS is not set
1109# CONFIG_ACCESSIBILITY is not set
1093# CONFIG_INFINIBAND is not set 1110# CONFIG_INFINIBAND is not set
1094# CONFIG_EDAC is not set 1111# CONFIG_EDAC is not set
1095CONFIG_RTC_LIB=y 1112CONFIG_RTC_LIB=y
@@ -1144,11 +1161,8 @@ CONFIG_RTC_DRV_DS1307=y
1144# 1161#
1145# on-CPU RTC drivers 1162# on-CPU RTC drivers
1146# 1163#
1164# CONFIG_RTC_DRV_PPC is not set
1147# CONFIG_DMADEVICES is not set 1165# CONFIG_DMADEVICES is not set
1148
1149#
1150# Userspace I/O
1151#
1152# CONFIG_UIO is not set 1166# CONFIG_UIO is not set
1153 1167
1154# 1168#
@@ -1168,7 +1182,6 @@ CONFIG_FS_MBCACHE=y
1168# CONFIG_JFS_FS is not set 1182# CONFIG_JFS_FS is not set
1169# CONFIG_FS_POSIX_ACL is not set 1183# CONFIG_FS_POSIX_ACL is not set
1170# CONFIG_XFS_FS is not set 1184# CONFIG_XFS_FS is not set
1171# CONFIG_GFS2_FS is not set
1172# CONFIG_OCFS2_FS is not set 1185# CONFIG_OCFS2_FS is not set
1173CONFIG_DNOTIFY=y 1186CONFIG_DNOTIFY=y
1174CONFIG_INOTIFY=y 1187CONFIG_INOTIFY=y
@@ -1237,7 +1250,6 @@ CONFIG_NFS_FS=y
1237CONFIG_NFS_V3=y 1250CONFIG_NFS_V3=y
1238# CONFIG_NFS_V3_ACL is not set 1251# CONFIG_NFS_V3_ACL is not set
1239CONFIG_NFS_V4=y 1252CONFIG_NFS_V4=y
1240# CONFIG_NFS_DIRECTIO is not set
1241# CONFIG_NFSD is not set 1253# CONFIG_NFSD is not set
1242CONFIG_ROOT_NFS=y 1254CONFIG_ROOT_NFS=y
1243CONFIG_LOCKD=y 1255CONFIG_LOCKD=y
@@ -1282,6 +1294,7 @@ CONFIG_MSDOS_PARTITION=y
1282# Library routines 1294# Library routines
1283# 1295#
1284CONFIG_BITREVERSE=y 1296CONFIG_BITREVERSE=y
1297# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1285# CONFIG_CRC_CCITT is not set 1298# CONFIG_CRC_CCITT is not set
1286# CONFIG_CRC16 is not set 1299# CONFIG_CRC16 is not set
1287# CONFIG_CRC_ITU_T is not set 1300# CONFIG_CRC_ITU_T is not set
@@ -1302,6 +1315,7 @@ CONFIG_HAVE_LMB=y
1302# CONFIG_PRINTK_TIME is not set 1315# CONFIG_PRINTK_TIME is not set
1303CONFIG_ENABLE_WARN_DEPRECATED=y 1316CONFIG_ENABLE_WARN_DEPRECATED=y
1304CONFIG_ENABLE_MUST_CHECK=y 1317CONFIG_ENABLE_MUST_CHECK=y
1318CONFIG_FRAME_WARN=1024
1305# CONFIG_MAGIC_SYSRQ is not set 1319# CONFIG_MAGIC_SYSRQ is not set
1306# CONFIG_UNUSED_SYMBOLS is not set 1320# CONFIG_UNUSED_SYMBOLS is not set
1307# CONFIG_DEBUG_FS is not set 1321# CONFIG_DEBUG_FS is not set
@@ -1312,6 +1326,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1312CONFIG_SCHED_DEBUG=y 1326CONFIG_SCHED_DEBUG=y
1313# CONFIG_SCHEDSTATS is not set 1327# CONFIG_SCHEDSTATS is not set
1314# CONFIG_TIMER_STATS is not set 1328# CONFIG_TIMER_STATS is not set
1329# CONFIG_DEBUG_OBJECTS is not set
1315# CONFIG_SLUB_DEBUG_ON is not set 1330# CONFIG_SLUB_DEBUG_ON is not set
1316# CONFIG_SLUB_STATS is not set 1331# CONFIG_SLUB_STATS is not set
1317# CONFIG_DEBUG_RT_MUTEXES is not set 1332# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1324,6 +1339,7 @@ CONFIG_SCHED_DEBUG=y
1324# CONFIG_DEBUG_BUGVERBOSE is not set 1339# CONFIG_DEBUG_BUGVERBOSE is not set
1325# CONFIG_DEBUG_INFO is not set 1340# CONFIG_DEBUG_INFO is not set
1326# CONFIG_DEBUG_VM is not set 1341# CONFIG_DEBUG_VM is not set
1342# CONFIG_DEBUG_WRITECOUNT is not set
1327# CONFIG_DEBUG_LIST is not set 1343# CONFIG_DEBUG_LIST is not set
1328# CONFIG_DEBUG_SG is not set 1344# CONFIG_DEBUG_SG is not set
1329# CONFIG_BOOT_PRINTK_DELAY is not set 1345# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1335,6 +1351,7 @@ CONFIG_SCHED_DEBUG=y
1335# CONFIG_DEBUG_STACK_USAGE is not set 1351# CONFIG_DEBUG_STACK_USAGE is not set
1336# CONFIG_DEBUG_PAGEALLOC is not set 1352# CONFIG_DEBUG_PAGEALLOC is not set
1337# CONFIG_DEBUGGER is not set 1353# CONFIG_DEBUGGER is not set
1354# CONFIG_IRQSTACKS is not set
1338# CONFIG_BDI_SWITCH is not set 1355# CONFIG_BDI_SWITCH is not set
1339# CONFIG_PPC_EARLY_DEBUG is not set 1356# CONFIG_PPC_EARLY_DEBUG is not set
1340 1357
@@ -1345,51 +1362,81 @@ CONFIG_SCHED_DEBUG=y
1345# CONFIG_SECURITY is not set 1362# CONFIG_SECURITY is not set
1346# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1363# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1347CONFIG_CRYPTO=y 1364CONFIG_CRYPTO=y
1365
1366#
1367# Crypto core or helper
1368#
1348CONFIG_CRYPTO_ALGAPI=y 1369CONFIG_CRYPTO_ALGAPI=y
1349CONFIG_CRYPTO_BLKCIPHER=y 1370CONFIG_CRYPTO_BLKCIPHER=y
1350# CONFIG_CRYPTO_SEQIV is not set
1351CONFIG_CRYPTO_MANAGER=y 1371CONFIG_CRYPTO_MANAGER=y
1372# CONFIG_CRYPTO_GF128MUL is not set
1373# CONFIG_CRYPTO_NULL is not set
1374# CONFIG_CRYPTO_CRYPTD is not set
1375# CONFIG_CRYPTO_AUTHENC is not set
1376# CONFIG_CRYPTO_TEST is not set
1377
1378#
1379# Authenticated Encryption with Associated Data
1380#
1381# CONFIG_CRYPTO_CCM is not set
1382# CONFIG_CRYPTO_GCM is not set
1383# CONFIG_CRYPTO_SEQIV is not set
1384
1385#
1386# Block modes
1387#
1388CONFIG_CRYPTO_CBC=y
1389# CONFIG_CRYPTO_CTR is not set
1390# CONFIG_CRYPTO_CTS is not set
1391# CONFIG_CRYPTO_ECB is not set
1392# CONFIG_CRYPTO_LRW is not set
1393CONFIG_CRYPTO_PCBC=m
1394# CONFIG_CRYPTO_XTS is not set
1395
1396#
1397# Hash modes
1398#
1352# CONFIG_CRYPTO_HMAC is not set 1399# CONFIG_CRYPTO_HMAC is not set
1353# CONFIG_CRYPTO_XCBC is not set 1400# CONFIG_CRYPTO_XCBC is not set
1354# CONFIG_CRYPTO_NULL is not set 1401
1402#
1403# Digest
1404#
1405# CONFIG_CRYPTO_CRC32C is not set
1355# CONFIG_CRYPTO_MD4 is not set 1406# CONFIG_CRYPTO_MD4 is not set
1356CONFIG_CRYPTO_MD5=y 1407CONFIG_CRYPTO_MD5=y
1408# CONFIG_CRYPTO_MICHAEL_MIC is not set
1357# CONFIG_CRYPTO_SHA1 is not set 1409# CONFIG_CRYPTO_SHA1 is not set
1358# CONFIG_CRYPTO_SHA256 is not set 1410# CONFIG_CRYPTO_SHA256 is not set
1359# CONFIG_CRYPTO_SHA512 is not set 1411# CONFIG_CRYPTO_SHA512 is not set
1360# CONFIG_CRYPTO_WP512 is not set
1361# CONFIG_CRYPTO_TGR192 is not set 1412# CONFIG_CRYPTO_TGR192 is not set
1362# CONFIG_CRYPTO_GF128MUL is not set 1413# CONFIG_CRYPTO_WP512 is not set
1363# CONFIG_CRYPTO_ECB is not set 1414
1364CONFIG_CRYPTO_CBC=y 1415#
1365CONFIG_CRYPTO_PCBC=m 1416# Ciphers
1366# CONFIG_CRYPTO_LRW is not set 1417#
1367# CONFIG_CRYPTO_XTS is not set
1368# CONFIG_CRYPTO_CTR is not set
1369# CONFIG_CRYPTO_GCM is not set
1370# CONFIG_CRYPTO_CCM is not set
1371# CONFIG_CRYPTO_CRYPTD is not set
1372CONFIG_CRYPTO_DES=y
1373# CONFIG_CRYPTO_FCRYPT is not set
1374# CONFIG_CRYPTO_BLOWFISH is not set
1375# CONFIG_CRYPTO_TWOFISH is not set
1376# CONFIG_CRYPTO_SERPENT is not set
1377# CONFIG_CRYPTO_AES is not set 1418# CONFIG_CRYPTO_AES is not set
1419# CONFIG_CRYPTO_ANUBIS is not set
1420# CONFIG_CRYPTO_ARC4 is not set
1421# CONFIG_CRYPTO_BLOWFISH is not set
1422# CONFIG_CRYPTO_CAMELLIA is not set
1378# CONFIG_CRYPTO_CAST5 is not set 1423# CONFIG_CRYPTO_CAST5 is not set
1379# CONFIG_CRYPTO_CAST6 is not set 1424# CONFIG_CRYPTO_CAST6 is not set
1380# CONFIG_CRYPTO_TEA is not set 1425CONFIG_CRYPTO_DES=y
1381# CONFIG_CRYPTO_ARC4 is not set 1426# CONFIG_CRYPTO_FCRYPT is not set
1382# CONFIG_CRYPTO_KHAZAD is not set 1427# CONFIG_CRYPTO_KHAZAD is not set
1383# CONFIG_CRYPTO_ANUBIS is not set
1384# CONFIG_CRYPTO_SEED is not set
1385# CONFIG_CRYPTO_SALSA20 is not set 1428# CONFIG_CRYPTO_SALSA20 is not set
1429# CONFIG_CRYPTO_SEED is not set
1430# CONFIG_CRYPTO_SERPENT is not set
1431# CONFIG_CRYPTO_TEA is not set
1432# CONFIG_CRYPTO_TWOFISH is not set
1433
1434#
1435# Compression
1436#
1386# CONFIG_CRYPTO_DEFLATE is not set 1437# CONFIG_CRYPTO_DEFLATE is not set
1387# CONFIG_CRYPTO_MICHAEL_MIC is not set
1388# CONFIG_CRYPTO_CRC32C is not set
1389# CONFIG_CRYPTO_CAMELLIA is not set
1390# CONFIG_CRYPTO_TEST is not set
1391# CONFIG_CRYPTO_AUTHENC is not set
1392# CONFIG_CRYPTO_LZO is not set 1438# CONFIG_CRYPTO_LZO is not set
1393CONFIG_CRYPTO_HW=y 1439CONFIG_CRYPTO_HW=y
1394# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1440# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1395# CONFIG_PPC_CLOCK is not set 1441# CONFIG_PPC_CLOCK is not set
1442# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 1f57456dd81e..9bc3a03ae264 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:15 2008 4# Mon Jun 9 08:52:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
218CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
219# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -238,6 +245,7 @@ CONFIG_PCI_LEGACY=y
238# CONFIG_PCI_DEBUG is not set 245# CONFIG_PCI_DEBUG is not set
239# CONFIG_PCCARD is not set 246# CONFIG_PCCARD is not set
240# CONFIG_HOTPLUG_PCI is not set 247# CONFIG_HOTPLUG_PCI is not set
248# CONFIG_HAS_RAPIDIO is not set
241 249
242# 250#
243# Advanced setup 251# Advanced setup
@@ -247,11 +255,11 @@ CONFIG_PCI_LEGACY=y
247# 255#
248# Default settings for advanced configuration options are used 256# Default settings for advanced configuration options are used
249# 257#
250CONFIG_HIGHMEM_START=0xfe000000
251CONFIG_LOWMEM_SIZE=0x30000000 258CONFIG_LOWMEM_SIZE=0x30000000
259CONFIG_PAGE_OFFSET=0xc0000000
252CONFIG_KERNEL_START=0xc0000000 260CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000
253CONFIG_TASK_SIZE=0xc0000000 262CONFIG_TASK_SIZE=0xc0000000
254CONFIG_BOOT_LOAD=0x00800000
255 263
256# 264#
257# Networking 265# Networking
@@ -299,8 +307,6 @@ CONFIG_TCP_CONG_CUBIC=y
299CONFIG_DEFAULT_TCP_CONG="cubic" 307CONFIG_DEFAULT_TCP_CONG="cubic"
300# CONFIG_TCP_MD5SIG is not set 308# CONFIG_TCP_MD5SIG is not set
301# CONFIG_IPV6 is not set 309# CONFIG_IPV6 is not set
302# CONFIG_INET6_XFRM_TUNNEL is not set
303# CONFIG_INET6_TUNNEL is not set
304# CONFIG_NETWORK_SECMARK is not set 310# CONFIG_NETWORK_SECMARK is not set
305# CONFIG_NETFILTER is not set 311# CONFIG_NETFILTER is not set
306# CONFIG_IP_DCCP is not set 312# CONFIG_IP_DCCP is not set
@@ -361,6 +367,7 @@ CONFIG_MTD_PARTITIONS=y
361# CONFIG_MTD_REDBOOT_PARTS is not set 367# CONFIG_MTD_REDBOOT_PARTS is not set
362# CONFIG_MTD_CMDLINE_PARTS is not set 368# CONFIG_MTD_CMDLINE_PARTS is not set
363# CONFIG_MTD_OF_PARTS is not set 369# CONFIG_MTD_OF_PARTS is not set
370# CONFIG_MTD_AR7_PARTS is not set
364 371
365# 372#
366# User Modules And Translation Layers 373# User Modules And Translation Layers
@@ -444,6 +451,7 @@ CONFIG_MTD_NAND_IDS=y
444# 451#
445# CONFIG_MTD_UBI is not set 452# CONFIG_MTD_UBI is not set
446CONFIG_OF_DEVICE=y 453CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y
447# CONFIG_PARPORT is not set 455# CONFIG_PARPORT is not set
448CONFIG_BLK_DEV=y 456CONFIG_BLK_DEV=y
449# CONFIG_BLK_DEV_FD is not set 457# CONFIG_BLK_DEV_FD is not set
@@ -549,7 +557,11 @@ CONFIG_SCSI_LOWLEVEL=y
549# CONFIG_SCSI_SRP is not set 557# CONFIG_SCSI_SRP is not set
550CONFIG_ATA=y 558CONFIG_ATA=y
551# CONFIG_ATA_NONSTANDARD is not set 559# CONFIG_ATA_NONSTANDARD is not set
560CONFIG_SATA_PMP=y
552# CONFIG_SATA_AHCI is not set 561# CONFIG_SATA_AHCI is not set
562# CONFIG_SATA_SIL24 is not set
563CONFIG_SATA_FSL=y
564CONFIG_ATA_SFF=y
553# CONFIG_SATA_SVW is not set 565# CONFIG_SATA_SVW is not set
554# CONFIG_ATA_PIIX is not set 566# CONFIG_ATA_PIIX is not set
555# CONFIG_SATA_MV is not set 567# CONFIG_SATA_MV is not set
@@ -559,13 +571,11 @@ CONFIG_ATA=y
559# CONFIG_SATA_PROMISE is not set 571# CONFIG_SATA_PROMISE is not set
560# CONFIG_SATA_SX4 is not set 572# CONFIG_SATA_SX4 is not set
561# CONFIG_SATA_SIL is not set 573# CONFIG_SATA_SIL is not set
562# CONFIG_SATA_SIL24 is not set
563# CONFIG_SATA_SIS is not set 574# CONFIG_SATA_SIS is not set
564# CONFIG_SATA_ULI is not set 575# CONFIG_SATA_ULI is not set
565# CONFIG_SATA_VIA is not set 576# CONFIG_SATA_VIA is not set
566# CONFIG_SATA_VITESSE is not set 577# CONFIG_SATA_VITESSE is not set
567# CONFIG_SATA_INIC162X is not set 578# CONFIG_SATA_INIC162X is not set
568CONFIG_SATA_FSL=y
569# CONFIG_PATA_ALI is not set 579# CONFIG_PATA_ALI is not set
570# CONFIG_PATA_AMD is not set 580# CONFIG_PATA_AMD is not set
571# CONFIG_PATA_ARTOP is not set 581# CONFIG_PATA_ARTOP is not set
@@ -605,6 +615,7 @@ CONFIG_SATA_FSL=y
605# CONFIG_PATA_VIA is not set 615# CONFIG_PATA_VIA is not set
606# CONFIG_PATA_WINBOND is not set 616# CONFIG_PATA_WINBOND is not set
607# CONFIG_PATA_PLATFORM is not set 617# CONFIG_PATA_PLATFORM is not set
618# CONFIG_PATA_SCH is not set
608CONFIG_MD=y 619CONFIG_MD=y
609CONFIG_BLK_DEV_MD=y 620CONFIG_BLK_DEV_MD=y
610CONFIG_MD_LINEAR=y 621CONFIG_MD_LINEAR=y
@@ -698,7 +709,6 @@ CONFIG_NETDEV_1000=y
698# CONFIG_SIS190 is not set 709# CONFIG_SIS190 is not set
699# CONFIG_SKGE is not set 710# CONFIG_SKGE is not set
700# CONFIG_SKY2 is not set 711# CONFIG_SKY2 is not set
701# CONFIG_SK98LIN is not set
702# CONFIG_VIA_VELOCITY is not set 712# CONFIG_VIA_VELOCITY is not set
703# CONFIG_TIGON3 is not set 713# CONFIG_TIGON3 is not set
704# CONFIG_BNX2 is not set 714# CONFIG_BNX2 is not set
@@ -718,6 +728,7 @@ CONFIG_NETDEV_10000=y
718# CONFIG_MLX4_CORE is not set 728# CONFIG_MLX4_CORE is not set
719# CONFIG_TEHUTI is not set 729# CONFIG_TEHUTI is not set
720# CONFIG_BNX2X is not set 730# CONFIG_BNX2X is not set
731# CONFIG_SFC is not set
721# CONFIG_TR is not set 732# CONFIG_TR is not set
722 733
723# 734#
@@ -725,6 +736,7 @@ CONFIG_NETDEV_10000=y
725# 736#
726# CONFIG_WLAN_PRE80211 is not set 737# CONFIG_WLAN_PRE80211 is not set
727# CONFIG_WLAN_80211 is not set 738# CONFIG_WLAN_80211 is not set
739# CONFIG_IWLWIFI_LEDS is not set
728 740
729# 741#
730# USB Network Adapters 742# USB Network Adapters
@@ -781,6 +793,7 @@ CONFIG_INPUT=y
781# Character devices 793# Character devices
782# 794#
783# CONFIG_VT is not set 795# CONFIG_VT is not set
796CONFIG_DEVKMEM=y
784# CONFIG_SERIAL_NONSTANDARD is not set 797# CONFIG_SERIAL_NONSTANDARD is not set
785# CONFIG_NOZOMI is not set 798# CONFIG_NOZOMI is not set
786 799
@@ -808,7 +821,6 @@ CONFIG_LEGACY_PTY_COUNT=256
808# CONFIG_IPMI_HANDLER is not set 821# CONFIG_IPMI_HANDLER is not set
809CONFIG_HW_RANDOM=y 822CONFIG_HW_RANDOM=y
810# CONFIG_NVRAM is not set 823# CONFIG_NVRAM is not set
811# CONFIG_GEN_RTC is not set
812# CONFIG_R3964 is not set 824# CONFIG_R3964 is not set
813# CONFIG_APPLICOM is not set 825# CONFIG_APPLICOM is not set
814# CONFIG_RAW_DRIVER is not set 826# CONFIG_RAW_DRIVER is not set
@@ -819,13 +831,6 @@ CONFIG_I2C_BOARDINFO=y
819CONFIG_I2C_CHARDEV=y 831CONFIG_I2C_CHARDEV=y
820 832
821# 833#
822# I2C Algorithms
823#
824# CONFIG_I2C_ALGOBIT is not set
825# CONFIG_I2C_ALGOPCF is not set
826# CONFIG_I2C_ALGOPCA is not set
827
828#
829# I2C Hardware Bus support 834# I2C Hardware Bus support
830# 835#
831# CONFIG_I2C_ALI1535 is not set 836# CONFIG_I2C_ALI1535 is not set
@@ -852,6 +857,7 @@ CONFIG_I2C_MPC=y
852# CONFIG_I2C_VIA is not set 857# CONFIG_I2C_VIA is not set
853# CONFIG_I2C_VIAPRO is not set 858# CONFIG_I2C_VIAPRO is not set
854# CONFIG_I2C_VOODOO3 is not set 859# CONFIG_I2C_VOODOO3 is not set
860# CONFIG_I2C_PCA_PLATFORM is not set
855 861
856# 862#
857# Miscellaneous I2C Chip support 863# Miscellaneous I2C Chip support
@@ -861,17 +867,12 @@ CONFIG_I2C_MPC=y
861# CONFIG_SENSORS_PCF8574 is not set 867# CONFIG_SENSORS_PCF8574 is not set
862# CONFIG_PCF8575 is not set 868# CONFIG_PCF8575 is not set
863# CONFIG_SENSORS_PCF8591 is not set 869# CONFIG_SENSORS_PCF8591 is not set
864# CONFIG_TPS65010 is not set
865# CONFIG_SENSORS_MAX6875 is not set 870# CONFIG_SENSORS_MAX6875 is not set
866# CONFIG_SENSORS_TSL2550 is not set 871# CONFIG_SENSORS_TSL2550 is not set
867# CONFIG_I2C_DEBUG_CORE is not set 872# CONFIG_I2C_DEBUG_CORE is not set
868# CONFIG_I2C_DEBUG_ALGO is not set 873# CONFIG_I2C_DEBUG_ALGO is not set
869# CONFIG_I2C_DEBUG_BUS is not set 874# CONFIG_I2C_DEBUG_BUS is not set
870# CONFIG_I2C_DEBUG_CHIP is not set 875# CONFIG_I2C_DEBUG_CHIP is not set
871
872#
873# SPI support
874#
875CONFIG_SPI=y 876CONFIG_SPI=y
876# CONFIG_SPI_DEBUG is not set 877# CONFIG_SPI_DEBUG is not set
877CONFIG_SPI_MASTER=y 878CONFIG_SPI_MASTER=y
@@ -976,12 +977,22 @@ CONFIG_SSB_POSSIBLE=y
976# Multifunction device drivers 977# Multifunction device drivers
977# 978#
978# CONFIG_MFD_SM501 is not set 979# CONFIG_MFD_SM501 is not set
980# CONFIG_HTC_PASIC3 is not set
979 981
980# 982#
981# Multimedia devices 983# Multimedia devices
982# 984#
985
986#
987# Multimedia core support
988#
983# CONFIG_VIDEO_DEV is not set 989# CONFIG_VIDEO_DEV is not set
984# CONFIG_DVB_CORE is not set 990# CONFIG_DVB_CORE is not set
991# CONFIG_VIDEO_MEDIA is not set
992
993#
994# Multimedia drivers
995#
985CONFIG_DAB=y 996CONFIG_DAB=y
986# CONFIG_USB_DABUSB is not set 997# CONFIG_USB_DABUSB is not set
987 998
@@ -1034,16 +1045,20 @@ CONFIG_USB_DEVICEFS=y
1034CONFIG_USB_DEVICE_CLASS=y 1045CONFIG_USB_DEVICE_CLASS=y
1035# CONFIG_USB_DYNAMIC_MINORS is not set 1046# CONFIG_USB_DYNAMIC_MINORS is not set
1036# CONFIG_USB_OTG is not set 1047# CONFIG_USB_OTG is not set
1048# CONFIG_USB_OTG_WHITELIST is not set
1049# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1037 1050
1038# 1051#
1039# USB Host Controller Drivers 1052# USB Host Controller Drivers
1040# 1053#
1054# CONFIG_USB_C67X00_HCD is not set
1041CONFIG_USB_EHCI_HCD=y 1055CONFIG_USB_EHCI_HCD=y
1042CONFIG_USB_EHCI_ROOT_HUB_TT=y 1056CONFIG_USB_EHCI_ROOT_HUB_TT=y
1043# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1057# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1044CONFIG_USB_EHCI_FSL=y 1058CONFIG_USB_EHCI_FSL=y
1045CONFIG_USB_EHCI_HCD_PPC_OF=y 1059CONFIG_USB_EHCI_HCD_PPC_OF=y
1046# CONFIG_USB_ISP116X_HCD is not set 1060# CONFIG_USB_ISP116X_HCD is not set
1061# CONFIG_USB_ISP1760_HCD is not set
1047CONFIG_USB_OHCI_HCD=y 1062CONFIG_USB_OHCI_HCD=y
1048CONFIG_USB_OHCI_HCD_PPC_OF=y 1063CONFIG_USB_OHCI_HCD_PPC_OF=y
1049CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1064CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1061,6 +1076,7 @@ CONFIG_USB_UHCI_HCD=y
1061# 1076#
1062# CONFIG_USB_ACM is not set 1077# CONFIG_USB_ACM is not set
1063# CONFIG_USB_PRINTER is not set 1078# CONFIG_USB_PRINTER is not set
1079# CONFIG_USB_WDM is not set
1064 1080
1065# 1081#
1066# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1082# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1080,7 +1096,9 @@ CONFIG_USB_STORAGE=y
1080# CONFIG_USB_STORAGE_SDDR55 is not set 1096# CONFIG_USB_STORAGE_SDDR55 is not set
1081# CONFIG_USB_STORAGE_JUMPSHOT is not set 1097# CONFIG_USB_STORAGE_JUMPSHOT is not set
1082# CONFIG_USB_STORAGE_ALAUDA is not set 1098# CONFIG_USB_STORAGE_ALAUDA is not set
1099# CONFIG_USB_STORAGE_ONETOUCH is not set
1083# CONFIG_USB_STORAGE_KARMA is not set 1100# CONFIG_USB_STORAGE_KARMA is not set
1101# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1084# CONFIG_USB_LIBUSUAL is not set 1102# CONFIG_USB_LIBUSUAL is not set
1085 1103
1086# 1104#
@@ -1118,6 +1136,7 @@ CONFIG_USB_MON=y
1118# CONFIG_USB_TRANCEVIBRATOR is not set 1136# CONFIG_USB_TRANCEVIBRATOR is not set
1119# CONFIG_USB_IOWARRIOR is not set 1137# CONFIG_USB_IOWARRIOR is not set
1120# CONFIG_USB_TEST is not set 1138# CONFIG_USB_TEST is not set
1139# CONFIG_USB_ISIGHTFW is not set
1121CONFIG_USB_GADGET=y 1140CONFIG_USB_GADGET=y
1122# CONFIG_USB_GADGET_DEBUG is not set 1141# CONFIG_USB_GADGET_DEBUG is not set
1123# CONFIG_USB_GADGET_DEBUG_FILES is not set 1142# CONFIG_USB_GADGET_DEBUG_FILES is not set
@@ -1129,6 +1148,7 @@ CONFIG_USB_GADGET_NET2280=y
1129CONFIG_USB_NET2280=y 1148CONFIG_USB_NET2280=y
1130# CONFIG_USB_GADGET_PXA2XX is not set 1149# CONFIG_USB_GADGET_PXA2XX is not set
1131# CONFIG_USB_GADGET_M66592 is not set 1150# CONFIG_USB_GADGET_M66592 is not set
1151# CONFIG_USB_GADGET_PXA27X is not set
1132# CONFIG_USB_GADGET_GOKU is not set 1152# CONFIG_USB_GADGET_GOKU is not set
1133# CONFIG_USB_GADGET_LH7A40X is not set 1153# CONFIG_USB_GADGET_LH7A40X is not set
1134# CONFIG_USB_GADGET_OMAP is not set 1154# CONFIG_USB_GADGET_OMAP is not set
@@ -1147,6 +1167,7 @@ CONFIG_USB_ETH_RNDIS=y
1147# CONFIG_MMC is not set 1167# CONFIG_MMC is not set
1148# CONFIG_MEMSTICK is not set 1168# CONFIG_MEMSTICK is not set
1149# CONFIG_NEW_LEDS is not set 1169# CONFIG_NEW_LEDS is not set
1170# CONFIG_ACCESSIBILITY is not set
1150# CONFIG_INFINIBAND is not set 1171# CONFIG_INFINIBAND is not set
1151# CONFIG_EDAC is not set 1172# CONFIG_EDAC is not set
1152CONFIG_RTC_LIB=y 1173CONFIG_RTC_LIB=y
@@ -1201,11 +1222,8 @@ CONFIG_RTC_DRV_DS1307=y
1201# 1222#
1202# on-CPU RTC drivers 1223# on-CPU RTC drivers
1203# 1224#
1225# CONFIG_RTC_DRV_PPC is not set
1204# CONFIG_DMADEVICES is not set 1226# CONFIG_DMADEVICES is not set
1205
1206#
1207# Userspace I/O
1208#
1209# CONFIG_UIO is not set 1227# CONFIG_UIO is not set
1210 1228
1211# 1229#
@@ -1225,7 +1243,6 @@ CONFIG_FS_MBCACHE=y
1225# CONFIG_JFS_FS is not set 1243# CONFIG_JFS_FS is not set
1226# CONFIG_FS_POSIX_ACL is not set 1244# CONFIG_FS_POSIX_ACL is not set
1227# CONFIG_XFS_FS is not set 1245# CONFIG_XFS_FS is not set
1228# CONFIG_GFS2_FS is not set
1229# CONFIG_OCFS2_FS is not set 1246# CONFIG_OCFS2_FS is not set
1230CONFIG_DNOTIFY=y 1247CONFIG_DNOTIFY=y
1231CONFIG_INOTIFY=y 1248CONFIG_INOTIFY=y
@@ -1294,7 +1311,6 @@ CONFIG_NFS_FS=y
1294CONFIG_NFS_V3=y 1311CONFIG_NFS_V3=y
1295# CONFIG_NFS_V3_ACL is not set 1312# CONFIG_NFS_V3_ACL is not set
1296CONFIG_NFS_V4=y 1313CONFIG_NFS_V4=y
1297# CONFIG_NFS_DIRECTIO is not set
1298# CONFIG_NFSD is not set 1314# CONFIG_NFSD is not set
1299CONFIG_ROOT_NFS=y 1315CONFIG_ROOT_NFS=y
1300CONFIG_LOCKD=y 1316CONFIG_LOCKD=y
@@ -1339,6 +1355,7 @@ CONFIG_MSDOS_PARTITION=y
1339# Library routines 1355# Library routines
1340# 1356#
1341CONFIG_BITREVERSE=y 1357CONFIG_BITREVERSE=y
1358# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1342# CONFIG_CRC_CCITT is not set 1359# CONFIG_CRC_CCITT is not set
1343# CONFIG_CRC16 is not set 1360# CONFIG_CRC16 is not set
1344# CONFIG_CRC_ITU_T is not set 1361# CONFIG_CRC_ITU_T is not set
@@ -1351,6 +1368,7 @@ CONFIG_PLIST=y
1351CONFIG_HAS_IOMEM=y 1368CONFIG_HAS_IOMEM=y
1352CONFIG_HAS_IOPORT=y 1369CONFIG_HAS_IOPORT=y
1353CONFIG_HAS_DMA=y 1370CONFIG_HAS_DMA=y
1371CONFIG_HAVE_LMB=y
1354 1372
1355# 1373#
1356# Kernel hacking 1374# Kernel hacking
@@ -1358,6 +1376,7 @@ CONFIG_HAS_DMA=y
1358# CONFIG_PRINTK_TIME is not set 1376# CONFIG_PRINTK_TIME is not set
1359CONFIG_ENABLE_WARN_DEPRECATED=y 1377CONFIG_ENABLE_WARN_DEPRECATED=y
1360CONFIG_ENABLE_MUST_CHECK=y 1378CONFIG_ENABLE_MUST_CHECK=y
1379CONFIG_FRAME_WARN=1024
1361# CONFIG_MAGIC_SYSRQ is not set 1380# CONFIG_MAGIC_SYSRQ is not set
1362# CONFIG_UNUSED_SYMBOLS is not set 1381# CONFIG_UNUSED_SYMBOLS is not set
1363# CONFIG_DEBUG_FS is not set 1382# CONFIG_DEBUG_FS is not set
@@ -1368,6 +1387,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1368CONFIG_SCHED_DEBUG=y 1387CONFIG_SCHED_DEBUG=y
1369# CONFIG_SCHEDSTATS is not set 1388# CONFIG_SCHEDSTATS is not set
1370# CONFIG_TIMER_STATS is not set 1389# CONFIG_TIMER_STATS is not set
1390# CONFIG_DEBUG_OBJECTS is not set
1371# CONFIG_SLUB_DEBUG_ON is not set 1391# CONFIG_SLUB_DEBUG_ON is not set
1372# CONFIG_SLUB_STATS is not set 1392# CONFIG_SLUB_STATS is not set
1373# CONFIG_DEBUG_RT_MUTEXES is not set 1393# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1380,6 +1400,7 @@ CONFIG_SCHED_DEBUG=y
1380# CONFIG_DEBUG_BUGVERBOSE is not set 1400# CONFIG_DEBUG_BUGVERBOSE is not set
1381# CONFIG_DEBUG_INFO is not set 1401# CONFIG_DEBUG_INFO is not set
1382# CONFIG_DEBUG_VM is not set 1402# CONFIG_DEBUG_VM is not set
1403# CONFIG_DEBUG_WRITECOUNT is not set
1383# CONFIG_DEBUG_LIST is not set 1404# CONFIG_DEBUG_LIST is not set
1384# CONFIG_DEBUG_SG is not set 1405# CONFIG_DEBUG_SG is not set
1385# CONFIG_BOOT_PRINTK_DELAY is not set 1406# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1391,6 +1412,7 @@ CONFIG_SCHED_DEBUG=y
1391# CONFIG_DEBUG_STACK_USAGE is not set 1412# CONFIG_DEBUG_STACK_USAGE is not set
1392# CONFIG_DEBUG_PAGEALLOC is not set 1413# CONFIG_DEBUG_PAGEALLOC is not set
1393# CONFIG_DEBUGGER is not set 1414# CONFIG_DEBUGGER is not set
1415# CONFIG_IRQSTACKS is not set
1394# CONFIG_BDI_SWITCH is not set 1416# CONFIG_BDI_SWITCH is not set
1395# CONFIG_PPC_EARLY_DEBUG is not set 1417# CONFIG_PPC_EARLY_DEBUG is not set
1396 1418
@@ -1401,51 +1423,81 @@ CONFIG_SCHED_DEBUG=y
1401# CONFIG_SECURITY is not set 1423# CONFIG_SECURITY is not set
1402# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1424# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1403CONFIG_CRYPTO=y 1425CONFIG_CRYPTO=y
1426
1427#
1428# Crypto core or helper
1429#
1404CONFIG_CRYPTO_ALGAPI=y 1430CONFIG_CRYPTO_ALGAPI=y
1405CONFIG_CRYPTO_BLKCIPHER=y 1431CONFIG_CRYPTO_BLKCIPHER=y
1406# CONFIG_CRYPTO_SEQIV is not set
1407CONFIG_CRYPTO_MANAGER=y 1432CONFIG_CRYPTO_MANAGER=y
1433# CONFIG_CRYPTO_GF128MUL is not set
1434# CONFIG_CRYPTO_NULL is not set
1435# CONFIG_CRYPTO_CRYPTD is not set
1436# CONFIG_CRYPTO_AUTHENC is not set
1437# CONFIG_CRYPTO_TEST is not set
1438
1439#
1440# Authenticated Encryption with Associated Data
1441#
1442# CONFIG_CRYPTO_CCM is not set
1443# CONFIG_CRYPTO_GCM is not set
1444# CONFIG_CRYPTO_SEQIV is not set
1445
1446#
1447# Block modes
1448#
1449CONFIG_CRYPTO_CBC=y
1450# CONFIG_CRYPTO_CTR is not set
1451# CONFIG_CRYPTO_CTS is not set
1452# CONFIG_CRYPTO_ECB is not set
1453# CONFIG_CRYPTO_LRW is not set
1454CONFIG_CRYPTO_PCBC=m
1455# CONFIG_CRYPTO_XTS is not set
1456
1457#
1458# Hash modes
1459#
1408# CONFIG_CRYPTO_HMAC is not set 1460# CONFIG_CRYPTO_HMAC is not set
1409# CONFIG_CRYPTO_XCBC is not set 1461# CONFIG_CRYPTO_XCBC is not set
1410# CONFIG_CRYPTO_NULL is not set 1462
1463#
1464# Digest
1465#
1466# CONFIG_CRYPTO_CRC32C is not set
1411# CONFIG_CRYPTO_MD4 is not set 1467# CONFIG_CRYPTO_MD4 is not set
1412CONFIG_CRYPTO_MD5=y 1468CONFIG_CRYPTO_MD5=y
1469# CONFIG_CRYPTO_MICHAEL_MIC is not set
1413# CONFIG_CRYPTO_SHA1 is not set 1470# CONFIG_CRYPTO_SHA1 is not set
1414# CONFIG_CRYPTO_SHA256 is not set 1471# CONFIG_CRYPTO_SHA256 is not set
1415# CONFIG_CRYPTO_SHA512 is not set 1472# CONFIG_CRYPTO_SHA512 is not set
1416# CONFIG_CRYPTO_WP512 is not set
1417# CONFIG_CRYPTO_TGR192 is not set 1473# CONFIG_CRYPTO_TGR192 is not set
1418# CONFIG_CRYPTO_GF128MUL is not set 1474# CONFIG_CRYPTO_WP512 is not set
1419# CONFIG_CRYPTO_ECB is not set 1475
1420CONFIG_CRYPTO_CBC=y 1476#
1421CONFIG_CRYPTO_PCBC=m 1477# Ciphers
1422# CONFIG_CRYPTO_LRW is not set 1478#
1423# CONFIG_CRYPTO_XTS is not set
1424# CONFIG_CRYPTO_CTR is not set
1425# CONFIG_CRYPTO_GCM is not set
1426# CONFIG_CRYPTO_CCM is not set
1427# CONFIG_CRYPTO_CRYPTD is not set
1428CONFIG_CRYPTO_DES=y
1429# CONFIG_CRYPTO_FCRYPT is not set
1430# CONFIG_CRYPTO_BLOWFISH is not set
1431# CONFIG_CRYPTO_TWOFISH is not set
1432# CONFIG_CRYPTO_SERPENT is not set
1433# CONFIG_CRYPTO_AES is not set 1479# CONFIG_CRYPTO_AES is not set
1480# CONFIG_CRYPTO_ANUBIS is not set
1481# CONFIG_CRYPTO_ARC4 is not set
1482# CONFIG_CRYPTO_BLOWFISH is not set
1483# CONFIG_CRYPTO_CAMELLIA is not set
1434# CONFIG_CRYPTO_CAST5 is not set 1484# CONFIG_CRYPTO_CAST5 is not set
1435# CONFIG_CRYPTO_CAST6 is not set 1485# CONFIG_CRYPTO_CAST6 is not set
1436# CONFIG_CRYPTO_TEA is not set 1486CONFIG_CRYPTO_DES=y
1437# CONFIG_CRYPTO_ARC4 is not set 1487# CONFIG_CRYPTO_FCRYPT is not set
1438# CONFIG_CRYPTO_KHAZAD is not set 1488# CONFIG_CRYPTO_KHAZAD is not set
1439# CONFIG_CRYPTO_ANUBIS is not set
1440# CONFIG_CRYPTO_SEED is not set
1441# CONFIG_CRYPTO_SALSA20 is not set 1489# CONFIG_CRYPTO_SALSA20 is not set
1490# CONFIG_CRYPTO_SEED is not set
1491# CONFIG_CRYPTO_SERPENT is not set
1492# CONFIG_CRYPTO_TEA is not set
1493# CONFIG_CRYPTO_TWOFISH is not set
1494
1495#
1496# Compression
1497#
1442# CONFIG_CRYPTO_DEFLATE is not set 1498# CONFIG_CRYPTO_DEFLATE is not set
1443# CONFIG_CRYPTO_MICHAEL_MIC is not set
1444# CONFIG_CRYPTO_CRC32C is not set
1445# CONFIG_CRYPTO_CAMELLIA is not set
1446# CONFIG_CRYPTO_TEST is not set
1447# CONFIG_CRYPTO_AUTHENC is not set
1448# CONFIG_CRYPTO_LZO is not set 1499# CONFIG_CRYPTO_LZO is not set
1449CONFIG_CRYPTO_HW=y 1500CONFIG_CRYPTO_HW=y
1450# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1501# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1451# CONFIG_PPC_CLOCK is not set 1502# CONFIG_PPC_CLOCK is not set
1503# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 50cceda8994f..1eca26f3659a 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:36:51 2008 4# Mon Jun 9 08:52:22 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -212,11 +217,13 @@ CONFIG_FLATMEM=y
212CONFIG_FLAT_NODE_MEM_MAP=y 217CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_STATIC is not set 218# CONFIG_SPARSEMEM_STATIC is not set
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
216# CONFIG_RESOURCES_64BIT is not set 222# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 223CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 224CONFIG_BOUNCE=y
219CONFIG_VIRT_TO_BUS=y 225CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11
220CONFIG_PROC_DEVICETREE=y 227CONFIG_PROC_DEVICETREE=y
221# CONFIG_CMDLINE_BOOL is not set 228# CONFIG_CMDLINE_BOOL is not set
222# CONFIG_PM is not set 229# CONFIG_PM is not set
@@ -239,6 +246,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
239CONFIG_PCI_LEGACY=y 246CONFIG_PCI_LEGACY=y
240# CONFIG_PCCARD is not set 247# CONFIG_PCCARD is not set
241# CONFIG_HOTPLUG_PCI is not set 248# CONFIG_HOTPLUG_PCI is not set
249# CONFIG_HAS_RAPIDIO is not set
242 250
243# 251#
244# Advanced setup 252# Advanced setup
@@ -248,11 +256,11 @@ CONFIG_PCI_LEGACY=y
248# 256#
249# Default settings for advanced configuration options are used 257# Default settings for advanced configuration options are used
250# 258#
251CONFIG_HIGHMEM_START=0xfe000000
252CONFIG_LOWMEM_SIZE=0x30000000 259CONFIG_LOWMEM_SIZE=0x30000000
260CONFIG_PAGE_OFFSET=0xc0000000
253CONFIG_KERNEL_START=0xc0000000 261CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000
254CONFIG_TASK_SIZE=0xc0000000 263CONFIG_TASK_SIZE=0xc0000000
255CONFIG_BOOT_LOAD=0x00800000
256 264
257# 265#
258# Networking 266# Networking
@@ -300,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 308CONFIG_DEFAULT_TCP_CONG="cubic"
301# CONFIG_TCP_MD5SIG is not set 309# CONFIG_TCP_MD5SIG is not set
302# CONFIG_IPV6 is not set 310# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set 311# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set 312# CONFIG_NETFILTER is not set
307# CONFIG_IP_DCCP is not set 313# CONFIG_IP_DCCP is not set
@@ -355,6 +361,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
355# CONFIG_CONNECTOR is not set 361# CONFIG_CONNECTOR is not set
356# CONFIG_MTD is not set 362# CONFIG_MTD is not set
357CONFIG_OF_DEVICE=y 363CONFIG_OF_DEVICE=y
364CONFIG_OF_I2C=y
358# CONFIG_PARPORT is not set 365# CONFIG_PARPORT is not set
359CONFIG_BLK_DEV=y 366CONFIG_BLK_DEV=y
360# CONFIG_BLK_DEV_FD is not set 367# CONFIG_BLK_DEV_FD is not set
@@ -522,7 +529,6 @@ CONFIG_NETDEV_1000=y
522# CONFIG_SIS190 is not set 529# CONFIG_SIS190 is not set
523# CONFIG_SKGE is not set 530# CONFIG_SKGE is not set
524# CONFIG_SKY2 is not set 531# CONFIG_SKY2 is not set
525# CONFIG_SK98LIN is not set
526# CONFIG_VIA_VELOCITY is not set 532# CONFIG_VIA_VELOCITY is not set
527# CONFIG_TIGON3 is not set 533# CONFIG_TIGON3 is not set
528# CONFIG_BNX2 is not set 534# CONFIG_BNX2 is not set
@@ -546,6 +552,7 @@ CONFIG_NETDEV_10000=y
546# CONFIG_MLX4_CORE is not set 552# CONFIG_MLX4_CORE is not set
547# CONFIG_TEHUTI is not set 553# CONFIG_TEHUTI is not set
548# CONFIG_BNX2X is not set 554# CONFIG_BNX2X is not set
555# CONFIG_SFC is not set
549# CONFIG_TR is not set 556# CONFIG_TR is not set
550 557
551# 558#
@@ -553,6 +560,7 @@ CONFIG_NETDEV_10000=y
553# 560#
554# CONFIG_WLAN_PRE80211 is not set 561# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 562# CONFIG_WLAN_80211 is not set
563# CONFIG_IWLWIFI_LEDS is not set
556# CONFIG_WAN is not set 564# CONFIG_WAN is not set
557# CONFIG_FDDI is not set 565# CONFIG_FDDI is not set
558# CONFIG_HIPPI is not set 566# CONFIG_HIPPI is not set
@@ -600,6 +608,7 @@ CONFIG_INPUT=y
600# Character devices 608# Character devices
601# 609#
602# CONFIG_VT is not set 610# CONFIG_VT is not set
611CONFIG_DEVKMEM=y
603# CONFIG_SERIAL_NONSTANDARD is not set 612# CONFIG_SERIAL_NONSTANDARD is not set
604# CONFIG_NOZOMI is not set 613# CONFIG_NOZOMI is not set
605 614
@@ -628,7 +637,6 @@ CONFIG_LEGACY_PTY_COUNT=256
628# CONFIG_IPMI_HANDLER is not set 637# CONFIG_IPMI_HANDLER is not set
629CONFIG_HW_RANDOM=y 638CONFIG_HW_RANDOM=y
630# CONFIG_NVRAM is not set 639# CONFIG_NVRAM is not set
631# CONFIG_GEN_RTC is not set
632# CONFIG_R3964 is not set 640# CONFIG_R3964 is not set
633# CONFIG_APPLICOM is not set 641# CONFIG_APPLICOM is not set
634# CONFIG_RAW_DRIVER is not set 642# CONFIG_RAW_DRIVER is not set
@@ -639,13 +647,6 @@ CONFIG_I2C_BOARDINFO=y
639CONFIG_I2C_CHARDEV=y 647CONFIG_I2C_CHARDEV=y
640 648
641# 649#
642# I2C Algorithms
643#
644# CONFIG_I2C_ALGOBIT is not set
645# CONFIG_I2C_ALGOPCF is not set
646# CONFIG_I2C_ALGOPCA is not set
647
648#
649# I2C Hardware Bus support 650# I2C Hardware Bus support
650# 651#
651# CONFIG_I2C_ALI1535 is not set 652# CONFIG_I2C_ALI1535 is not set
@@ -671,6 +672,7 @@ CONFIG_I2C_MPC=y
671# CONFIG_I2C_VIA is not set 672# CONFIG_I2C_VIA is not set
672# CONFIG_I2C_VIAPRO is not set 673# CONFIG_I2C_VIAPRO is not set
673# CONFIG_I2C_VOODOO3 is not set 674# CONFIG_I2C_VOODOO3 is not set
675# CONFIG_I2C_PCA_PLATFORM is not set
674 676
675# 677#
676# Miscellaneous I2C Chip support 678# Miscellaneous I2C Chip support
@@ -680,19 +682,13 @@ CONFIG_I2C_MPC=y
680# CONFIG_SENSORS_PCF8574 is not set 682# CONFIG_SENSORS_PCF8574 is not set
681# CONFIG_PCF8575 is not set 683# CONFIG_PCF8575 is not set
682# CONFIG_SENSORS_PCF8591 is not set 684# CONFIG_SENSORS_PCF8591 is not set
683# CONFIG_TPS65010 is not set
684# CONFIG_SENSORS_MAX6875 is not set 685# CONFIG_SENSORS_MAX6875 is not set
685# CONFIG_SENSORS_TSL2550 is not set 686# CONFIG_SENSORS_TSL2550 is not set
686# CONFIG_I2C_DEBUG_CORE is not set 687# CONFIG_I2C_DEBUG_CORE is not set
687# CONFIG_I2C_DEBUG_ALGO is not set 688# CONFIG_I2C_DEBUG_ALGO is not set
688# CONFIG_I2C_DEBUG_BUS is not set 689# CONFIG_I2C_DEBUG_BUS is not set
689# CONFIG_I2C_DEBUG_CHIP is not set 690# CONFIG_I2C_DEBUG_CHIP is not set
690
691#
692# SPI support
693#
694# CONFIG_SPI is not set 691# CONFIG_SPI is not set
695# CONFIG_SPI_MASTER is not set
696# CONFIG_W1 is not set 692# CONFIG_W1 is not set
697# CONFIG_POWER_SUPPLY is not set 693# CONFIG_POWER_SUPPLY is not set
698CONFIG_HWMON=y 694CONFIG_HWMON=y
@@ -775,12 +771,22 @@ CONFIG_SSB_POSSIBLE=y
775# Multifunction device drivers 771# Multifunction device drivers
776# 772#
777# CONFIG_MFD_SM501 is not set 773# CONFIG_MFD_SM501 is not set
774# CONFIG_HTC_PASIC3 is not set
778 775
779# 776#
780# Multimedia devices 777# Multimedia devices
781# 778#
779
780#
781# Multimedia core support
782#
782# CONFIG_VIDEO_DEV is not set 783# CONFIG_VIDEO_DEV is not set
783# CONFIG_DVB_CORE is not set 784# CONFIG_DVB_CORE is not set
785# CONFIG_VIDEO_MEDIA is not set
786
787#
788# Multimedia drivers
789#
784CONFIG_DAB=y 790CONFIG_DAB=y
785 791
786# 792#
@@ -811,6 +817,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
811CONFIG_USB_ARCH_HAS_OHCI=y 817CONFIG_USB_ARCH_HAS_OHCI=y
812CONFIG_USB_ARCH_HAS_EHCI=y 818CONFIG_USB_ARCH_HAS_EHCI=y
813# CONFIG_USB is not set 819# CONFIG_USB is not set
820# CONFIG_USB_OTG_WHITELIST is not set
821# CONFIG_USB_OTG_BLACKLIST_HUB is not set
814 822
815# 823#
816# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 824# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -819,6 +827,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
819# CONFIG_MMC is not set 827# CONFIG_MMC is not set
820# CONFIG_MEMSTICK is not set 828# CONFIG_MEMSTICK is not set
821# CONFIG_NEW_LEDS is not set 829# CONFIG_NEW_LEDS is not set
830# CONFIG_ACCESSIBILITY is not set
822# CONFIG_INFINIBAND is not set 831# CONFIG_INFINIBAND is not set
823# CONFIG_EDAC is not set 832# CONFIG_EDAC is not set
824CONFIG_RTC_LIB=y 833CONFIG_RTC_LIB=y
@@ -870,11 +879,8 @@ CONFIG_RTC_DRV_DS1374=y
870# 879#
871# on-CPU RTC drivers 880# on-CPU RTC drivers
872# 881#
882# CONFIG_RTC_DRV_PPC is not set
873# CONFIG_DMADEVICES is not set 883# CONFIG_DMADEVICES is not set
874
875#
876# Userspace I/O
877#
878# CONFIG_UIO is not set 884# CONFIG_UIO is not set
879 885
880# 886#
@@ -894,7 +900,6 @@ CONFIG_FS_MBCACHE=y
894# CONFIG_JFS_FS is not set 900# CONFIG_JFS_FS is not set
895# CONFIG_FS_POSIX_ACL is not set 901# CONFIG_FS_POSIX_ACL is not set
896# CONFIG_XFS_FS is not set 902# CONFIG_XFS_FS is not set
897# CONFIG_GFS2_FS is not set
898# CONFIG_OCFS2_FS is not set 903# CONFIG_OCFS2_FS is not set
899CONFIG_DNOTIFY=y 904CONFIG_DNOTIFY=y
900CONFIG_INOTIFY=y 905CONFIG_INOTIFY=y
@@ -952,7 +957,6 @@ CONFIG_NFS_FS=y
952CONFIG_NFS_V3=y 957CONFIG_NFS_V3=y
953# CONFIG_NFS_V3_ACL is not set 958# CONFIG_NFS_V3_ACL is not set
954CONFIG_NFS_V4=y 959CONFIG_NFS_V4=y
955# CONFIG_NFS_DIRECTIO is not set
956# CONFIG_NFSD is not set 960# CONFIG_NFSD is not set
957CONFIG_ROOT_NFS=y 961CONFIG_ROOT_NFS=y
958CONFIG_LOCKD=y 962CONFIG_LOCKD=y
@@ -995,6 +999,7 @@ CONFIG_UCC=y
995# Library routines 999# Library routines
996# 1000#
997CONFIG_BITREVERSE=y 1001CONFIG_BITREVERSE=y
1002# CONFIG_GENERIC_FIND_FIRST_BIT is not set
998# CONFIG_CRC_CCITT is not set 1003# CONFIG_CRC_CCITT is not set
999# CONFIG_CRC16 is not set 1004# CONFIG_CRC16 is not set
1000# CONFIG_CRC_ITU_T is not set 1005# CONFIG_CRC_ITU_T is not set
@@ -1005,6 +1010,7 @@ CONFIG_PLIST=y
1005CONFIG_HAS_IOMEM=y 1010CONFIG_HAS_IOMEM=y
1006CONFIG_HAS_IOPORT=y 1011CONFIG_HAS_IOPORT=y
1007CONFIG_HAS_DMA=y 1012CONFIG_HAS_DMA=y
1013CONFIG_HAVE_LMB=y
1008 1014
1009# 1015#
1010# Kernel hacking 1016# Kernel hacking
@@ -1012,6 +1018,7 @@ CONFIG_HAS_DMA=y
1012# CONFIG_PRINTK_TIME is not set 1018# CONFIG_PRINTK_TIME is not set
1013CONFIG_ENABLE_WARN_DEPRECATED=y 1019CONFIG_ENABLE_WARN_DEPRECATED=y
1014CONFIG_ENABLE_MUST_CHECK=y 1020CONFIG_ENABLE_MUST_CHECK=y
1021CONFIG_FRAME_WARN=1024
1015# CONFIG_MAGIC_SYSRQ is not set 1022# CONFIG_MAGIC_SYSRQ is not set
1016# CONFIG_UNUSED_SYMBOLS is not set 1023# CONFIG_UNUSED_SYMBOLS is not set
1017# CONFIG_DEBUG_FS is not set 1024# CONFIG_DEBUG_FS is not set
@@ -1021,6 +1028,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1021# CONFIG_SLUB_STATS is not set 1028# CONFIG_SLUB_STATS is not set
1022# CONFIG_DEBUG_BUGVERBOSE is not set 1029# CONFIG_DEBUG_BUGVERBOSE is not set
1023# CONFIG_SAMPLES is not set 1030# CONFIG_SAMPLES is not set
1031# CONFIG_IRQSTACKS is not set
1024# CONFIG_PPC_EARLY_DEBUG is not set 1032# CONFIG_PPC_EARLY_DEBUG is not set
1025 1033
1026# 1034#
@@ -1030,52 +1038,82 @@ CONFIG_ENABLE_MUST_CHECK=y
1030# CONFIG_SECURITY is not set 1038# CONFIG_SECURITY is not set
1031# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1039# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1032CONFIG_CRYPTO=y 1040CONFIG_CRYPTO=y
1041
1042#
1043# Crypto core or helper
1044#
1033CONFIG_CRYPTO_ALGAPI=y 1045CONFIG_CRYPTO_ALGAPI=y
1034CONFIG_CRYPTO_BLKCIPHER=y 1046CONFIG_CRYPTO_BLKCIPHER=y
1035# CONFIG_CRYPTO_SEQIV is not set
1036CONFIG_CRYPTO_MANAGER=y 1047CONFIG_CRYPTO_MANAGER=y
1048# CONFIG_CRYPTO_GF128MUL is not set
1049# CONFIG_CRYPTO_NULL is not set
1050# CONFIG_CRYPTO_CRYPTD is not set
1051# CONFIG_CRYPTO_AUTHENC is not set
1052# CONFIG_CRYPTO_TEST is not set
1053
1054#
1055# Authenticated Encryption with Associated Data
1056#
1057# CONFIG_CRYPTO_CCM is not set
1058# CONFIG_CRYPTO_GCM is not set
1059# CONFIG_CRYPTO_SEQIV is not set
1060
1061#
1062# Block modes
1063#
1064CONFIG_CRYPTO_CBC=y
1065# CONFIG_CRYPTO_CTR is not set
1066# CONFIG_CRYPTO_CTS is not set
1067CONFIG_CRYPTO_ECB=m
1068# CONFIG_CRYPTO_LRW is not set
1069CONFIG_CRYPTO_PCBC=m
1070# CONFIG_CRYPTO_XTS is not set
1071
1072#
1073# Hash modes
1074#
1037# CONFIG_CRYPTO_HMAC is not set 1075# CONFIG_CRYPTO_HMAC is not set
1038# CONFIG_CRYPTO_XCBC is not set 1076# CONFIG_CRYPTO_XCBC is not set
1039# CONFIG_CRYPTO_NULL is not set 1077
1078#
1079# Digest
1080#
1081# CONFIG_CRYPTO_CRC32C is not set
1040# CONFIG_CRYPTO_MD4 is not set 1082# CONFIG_CRYPTO_MD4 is not set
1041CONFIG_CRYPTO_MD5=y 1083CONFIG_CRYPTO_MD5=y
1084# CONFIG_CRYPTO_MICHAEL_MIC is not set
1042# CONFIG_CRYPTO_SHA1 is not set 1085# CONFIG_CRYPTO_SHA1 is not set
1043# CONFIG_CRYPTO_SHA256 is not set 1086# CONFIG_CRYPTO_SHA256 is not set
1044# CONFIG_CRYPTO_SHA512 is not set 1087# CONFIG_CRYPTO_SHA512 is not set
1045# CONFIG_CRYPTO_WP512 is not set
1046# CONFIG_CRYPTO_TGR192 is not set 1088# CONFIG_CRYPTO_TGR192 is not set
1047# CONFIG_CRYPTO_GF128MUL is not set 1089# CONFIG_CRYPTO_WP512 is not set
1048CONFIG_CRYPTO_ECB=m 1090
1049CONFIG_CRYPTO_CBC=y 1091#
1050CONFIG_CRYPTO_PCBC=m 1092# Ciphers
1051# CONFIG_CRYPTO_LRW is not set 1093#
1052# CONFIG_CRYPTO_XTS is not set
1053# CONFIG_CRYPTO_CTR is not set
1054# CONFIG_CRYPTO_GCM is not set
1055# CONFIG_CRYPTO_CCM is not set
1056# CONFIG_CRYPTO_CRYPTD is not set
1057CONFIG_CRYPTO_DES=y
1058# CONFIG_CRYPTO_FCRYPT is not set
1059# CONFIG_CRYPTO_BLOWFISH is not set
1060# CONFIG_CRYPTO_TWOFISH is not set
1061# CONFIG_CRYPTO_SERPENT is not set
1062# CONFIG_CRYPTO_AES is not set 1094# CONFIG_CRYPTO_AES is not set
1095# CONFIG_CRYPTO_ANUBIS is not set
1096# CONFIG_CRYPTO_ARC4 is not set
1097# CONFIG_CRYPTO_BLOWFISH is not set
1098# CONFIG_CRYPTO_CAMELLIA is not set
1063# CONFIG_CRYPTO_CAST5 is not set 1099# CONFIG_CRYPTO_CAST5 is not set
1064# CONFIG_CRYPTO_CAST6 is not set 1100# CONFIG_CRYPTO_CAST6 is not set
1065# CONFIG_CRYPTO_TEA is not set 1101CONFIG_CRYPTO_DES=y
1066# CONFIG_CRYPTO_ARC4 is not set 1102# CONFIG_CRYPTO_FCRYPT is not set
1067# CONFIG_CRYPTO_KHAZAD is not set 1103# CONFIG_CRYPTO_KHAZAD is not set
1068# CONFIG_CRYPTO_ANUBIS is not set
1069# CONFIG_CRYPTO_SEED is not set
1070# CONFIG_CRYPTO_SALSA20 is not set 1104# CONFIG_CRYPTO_SALSA20 is not set
1105# CONFIG_CRYPTO_SEED is not set
1106# CONFIG_CRYPTO_SERPENT is not set
1107# CONFIG_CRYPTO_TEA is not set
1108# CONFIG_CRYPTO_TWOFISH is not set
1109
1110#
1111# Compression
1112#
1071# CONFIG_CRYPTO_DEFLATE is not set 1113# CONFIG_CRYPTO_DEFLATE is not set
1072# CONFIG_CRYPTO_MICHAEL_MIC is not set
1073# CONFIG_CRYPTO_CRC32C is not set
1074# CONFIG_CRYPTO_CAMELLIA is not set
1075# CONFIG_CRYPTO_TEST is not set
1076# CONFIG_CRYPTO_AUTHENC is not set
1077# CONFIG_CRYPTO_LZO is not set 1114# CONFIG_CRYPTO_LZO is not set
1078CONFIG_CRYPTO_HW=y 1115CONFIG_CRYPTO_HW=y
1079# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1116# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1080# CONFIG_PPC_CLOCK is not set 1117# CONFIG_PPC_CLOCK is not set
1081CONFIG_PPC_LIB_RHEAP=y 1118CONFIG_PPC_LIB_RHEAP=y
1119# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index ac913025713e..de95d327463c 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:16 2008 4# Mon Jun 9 08:52:24 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -212,11 +217,13 @@ CONFIG_FLATMEM=y
212CONFIG_FLAT_NODE_MEM_MAP=y 217CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_STATIC is not set 218# CONFIG_SPARSEMEM_STATIC is not set
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
216# CONFIG_RESOURCES_64BIT is not set 222# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 223CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 224CONFIG_BOUNCE=y
219CONFIG_VIRT_TO_BUS=y 225CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11
220CONFIG_PROC_DEVICETREE=y 227CONFIG_PROC_DEVICETREE=y
221# CONFIG_CMDLINE_BOOL is not set 228# CONFIG_CMDLINE_BOOL is not set
222# CONFIG_PM is not set 229# CONFIG_PM is not set
@@ -239,6 +246,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
239CONFIG_PCI_LEGACY=y 246CONFIG_PCI_LEGACY=y
240# CONFIG_PCCARD is not set 247# CONFIG_PCCARD is not set
241# CONFIG_HOTPLUG_PCI is not set 248# CONFIG_HOTPLUG_PCI is not set
249# CONFIG_HAS_RAPIDIO is not set
242 250
243# 251#
244# Advanced setup 252# Advanced setup
@@ -248,11 +256,11 @@ CONFIG_PCI_LEGACY=y
248# 256#
249# Default settings for advanced configuration options are used 257# Default settings for advanced configuration options are used
250# 258#
251CONFIG_HIGHMEM_START=0xfe000000
252CONFIG_LOWMEM_SIZE=0x30000000 259CONFIG_LOWMEM_SIZE=0x30000000
260CONFIG_PAGE_OFFSET=0xc0000000
253CONFIG_KERNEL_START=0xc0000000 261CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000
254CONFIG_TASK_SIZE=0xc0000000 263CONFIG_TASK_SIZE=0xc0000000
255CONFIG_BOOT_LOAD=0x00800000
256 264
257# 265#
258# Networking 266# Networking
@@ -300,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 308CONFIG_DEFAULT_TCP_CONG="cubic"
301# CONFIG_TCP_MD5SIG is not set 309# CONFIG_TCP_MD5SIG is not set
302# CONFIG_IPV6 is not set 310# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set 311# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set 312# CONFIG_NETFILTER is not set
307# CONFIG_IP_DCCP is not set 313# CONFIG_IP_DCCP is not set
@@ -355,6 +361,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
355# CONFIG_CONNECTOR is not set 361# CONFIG_CONNECTOR is not set
356# CONFIG_MTD is not set 362# CONFIG_MTD is not set
357CONFIG_OF_DEVICE=y 363CONFIG_OF_DEVICE=y
364CONFIG_OF_I2C=y
358# CONFIG_PARPORT is not set 365# CONFIG_PARPORT is not set
359CONFIG_BLK_DEV=y 366CONFIG_BLK_DEV=y
360# CONFIG_BLK_DEV_FD is not set 367# CONFIG_BLK_DEV_FD is not set
@@ -526,7 +533,6 @@ CONFIG_E1000=y
526# CONFIG_SIS190 is not set 533# CONFIG_SIS190 is not set
527# CONFIG_SKGE is not set 534# CONFIG_SKGE is not set
528# CONFIG_SKY2 is not set 535# CONFIG_SKY2 is not set
529# CONFIG_SK98LIN is not set
530# CONFIG_VIA_VELOCITY is not set 536# CONFIG_VIA_VELOCITY is not set
531# CONFIG_TIGON3 is not set 537# CONFIG_TIGON3 is not set
532# CONFIG_BNX2 is not set 538# CONFIG_BNX2 is not set
@@ -550,6 +556,7 @@ CONFIG_NETDEV_10000=y
550# CONFIG_MLX4_CORE is not set 556# CONFIG_MLX4_CORE is not set
551# CONFIG_TEHUTI is not set 557# CONFIG_TEHUTI is not set
552# CONFIG_BNX2X is not set 558# CONFIG_BNX2X is not set
559# CONFIG_SFC is not set
553# CONFIG_TR is not set 560# CONFIG_TR is not set
554 561
555# 562#
@@ -557,6 +564,7 @@ CONFIG_NETDEV_10000=y
557# 564#
558# CONFIG_WLAN_PRE80211 is not set 565# CONFIG_WLAN_PRE80211 is not set
559# CONFIG_WLAN_80211 is not set 566# CONFIG_WLAN_80211 is not set
567# CONFIG_IWLWIFI_LEDS is not set
560 568
561# 569#
562# USB Network Adapters 570# USB Network Adapters
@@ -613,6 +621,7 @@ CONFIG_INPUT=y
613# Character devices 621# Character devices
614# 622#
615# CONFIG_VT is not set 623# CONFIG_VT is not set
624CONFIG_DEVKMEM=y
616# CONFIG_SERIAL_NONSTANDARD is not set 625# CONFIG_SERIAL_NONSTANDARD is not set
617# CONFIG_NOZOMI is not set 626# CONFIG_NOZOMI is not set
618 627
@@ -653,13 +662,6 @@ CONFIG_I2C_BOARDINFO=y
653CONFIG_I2C_CHARDEV=y 662CONFIG_I2C_CHARDEV=y
654 663
655# 664#
656# I2C Algorithms
657#
658# CONFIG_I2C_ALGOBIT is not set
659# CONFIG_I2C_ALGOPCF is not set
660# CONFIG_I2C_ALGOPCA is not set
661
662#
663# I2C Hardware Bus support 665# I2C Hardware Bus support
664# 666#
665# CONFIG_I2C_ALI1535 is not set 667# CONFIG_I2C_ALI1535 is not set
@@ -686,6 +688,7 @@ CONFIG_I2C_MPC=y
686# CONFIG_I2C_VIA is not set 688# CONFIG_I2C_VIA is not set
687# CONFIG_I2C_VIAPRO is not set 689# CONFIG_I2C_VIAPRO is not set
688# CONFIG_I2C_VOODOO3 is not set 690# CONFIG_I2C_VOODOO3 is not set
691# CONFIG_I2C_PCA_PLATFORM is not set
689 692
690# 693#
691# Miscellaneous I2C Chip support 694# Miscellaneous I2C Chip support
@@ -695,17 +698,12 @@ CONFIG_I2C_MPC=y
695# CONFIG_SENSORS_PCF8574 is not set 698# CONFIG_SENSORS_PCF8574 is not set
696# CONFIG_PCF8575 is not set 699# CONFIG_PCF8575 is not set
697# CONFIG_SENSORS_PCF8591 is not set 700# CONFIG_SENSORS_PCF8591 is not set
698# CONFIG_TPS65010 is not set
699# CONFIG_SENSORS_MAX6875 is not set 701# CONFIG_SENSORS_MAX6875 is not set
700# CONFIG_SENSORS_TSL2550 is not set 702# CONFIG_SENSORS_TSL2550 is not set
701# CONFIG_I2C_DEBUG_CORE is not set 703# CONFIG_I2C_DEBUG_CORE is not set
702# CONFIG_I2C_DEBUG_ALGO is not set 704# CONFIG_I2C_DEBUG_ALGO is not set
703# CONFIG_I2C_DEBUG_BUS is not set 705# CONFIG_I2C_DEBUG_BUS is not set
704# CONFIG_I2C_DEBUG_CHIP is not set 706# CONFIG_I2C_DEBUG_CHIP is not set
705
706#
707# SPI support
708#
709CONFIG_SPI=y 707CONFIG_SPI=y
710CONFIG_SPI_MASTER=y 708CONFIG_SPI_MASTER=y
711 709
@@ -809,12 +807,22 @@ CONFIG_SSB_POSSIBLE=y
809# Multifunction device drivers 807# Multifunction device drivers
810# 808#
811# CONFIG_MFD_SM501 is not set 809# CONFIG_MFD_SM501 is not set
810# CONFIG_HTC_PASIC3 is not set
812 811
813# 812#
814# Multimedia devices 813# Multimedia devices
815# 814#
815
816#
817# Multimedia core support
818#
816# CONFIG_VIDEO_DEV is not set 819# CONFIG_VIDEO_DEV is not set
817# CONFIG_DVB_CORE is not set 820# CONFIG_DVB_CORE is not set
821# CONFIG_VIDEO_MEDIA is not set
822
823#
824# Multimedia drivers
825#
818CONFIG_DAB=y 826CONFIG_DAB=y
819# CONFIG_USB_DABUSB is not set 827# CONFIG_USB_DABUSB is not set
820 828
@@ -867,16 +875,20 @@ CONFIG_USB_DEVICEFS=y
867CONFIG_USB_DEVICE_CLASS=y 875CONFIG_USB_DEVICE_CLASS=y
868# CONFIG_USB_DYNAMIC_MINORS is not set 876# CONFIG_USB_DYNAMIC_MINORS is not set
869# CONFIG_USB_OTG is not set 877# CONFIG_USB_OTG is not set
878# CONFIG_USB_OTG_WHITELIST is not set
879# CONFIG_USB_OTG_BLACKLIST_HUB is not set
870 880
871# 881#
872# USB Host Controller Drivers 882# USB Host Controller Drivers
873# 883#
884# CONFIG_USB_C67X00_HCD is not set
874CONFIG_USB_EHCI_HCD=y 885CONFIG_USB_EHCI_HCD=y
875# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 886# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
876# CONFIG_USB_EHCI_TT_NEWSCHED is not set 887# CONFIG_USB_EHCI_TT_NEWSCHED is not set
877# CONFIG_USB_EHCI_FSL is not set 888# CONFIG_USB_EHCI_FSL is not set
878CONFIG_USB_EHCI_HCD_PPC_OF=y 889CONFIG_USB_EHCI_HCD_PPC_OF=y
879# CONFIG_USB_ISP116X_HCD is not set 890# CONFIG_USB_ISP116X_HCD is not set
891# CONFIG_USB_ISP1760_HCD is not set
880CONFIG_USB_OHCI_HCD=y 892CONFIG_USB_OHCI_HCD=y
881CONFIG_USB_OHCI_HCD_PPC_OF=y 893CONFIG_USB_OHCI_HCD_PPC_OF=y
882CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 894CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -894,6 +906,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
894# 906#
895# CONFIG_USB_ACM is not set 907# CONFIG_USB_ACM is not set
896# CONFIG_USB_PRINTER is not set 908# CONFIG_USB_PRINTER is not set
909# CONFIG_USB_WDM is not set
897 910
898# 911#
899# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 912# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -913,7 +926,9 @@ CONFIG_USB_STORAGE=y
913# CONFIG_USB_STORAGE_SDDR55 is not set 926# CONFIG_USB_STORAGE_SDDR55 is not set
914# CONFIG_USB_STORAGE_JUMPSHOT is not set 927# CONFIG_USB_STORAGE_JUMPSHOT is not set
915# CONFIG_USB_STORAGE_ALAUDA is not set 928# CONFIG_USB_STORAGE_ALAUDA is not set
929# CONFIG_USB_STORAGE_ONETOUCH is not set
916# CONFIG_USB_STORAGE_KARMA is not set 930# CONFIG_USB_STORAGE_KARMA is not set
931# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
917# CONFIG_USB_LIBUSUAL is not set 932# CONFIG_USB_LIBUSUAL is not set
918 933
919# 934#
@@ -951,6 +966,7 @@ CONFIG_USB_MON=y
951# CONFIG_USB_TRANCEVIBRATOR is not set 966# CONFIG_USB_TRANCEVIBRATOR is not set
952# CONFIG_USB_IOWARRIOR is not set 967# CONFIG_USB_IOWARRIOR is not set
953# CONFIG_USB_TEST is not set 968# CONFIG_USB_TEST is not set
969# CONFIG_USB_ISIGHTFW is not set
954# CONFIG_USB_GADGET is not set 970# CONFIG_USB_GADGET is not set
955CONFIG_MMC=y 971CONFIG_MMC=y
956# CONFIG_MMC_DEBUG is not set 972# CONFIG_MMC_DEBUG is not set
@@ -962,6 +978,7 @@ CONFIG_MMC=y
962CONFIG_MMC_BLOCK=y 978CONFIG_MMC_BLOCK=y
963CONFIG_MMC_BLOCK_BOUNCE=y 979CONFIG_MMC_BLOCK_BOUNCE=y
964# CONFIG_SDIO_UART is not set 980# CONFIG_SDIO_UART is not set
981# CONFIG_MMC_TEST is not set
965 982
966# 983#
967# MMC/SD Host Controller Drivers 984# MMC/SD Host Controller Drivers
@@ -972,14 +989,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y
972CONFIG_MMC_SPI=y 989CONFIG_MMC_SPI=y
973# CONFIG_MEMSTICK is not set 990# CONFIG_MEMSTICK is not set
974# CONFIG_NEW_LEDS is not set 991# CONFIG_NEW_LEDS is not set
992# CONFIG_ACCESSIBILITY is not set
975# CONFIG_INFINIBAND is not set 993# CONFIG_INFINIBAND is not set
976# CONFIG_EDAC is not set 994# CONFIG_EDAC is not set
977# CONFIG_RTC_CLASS is not set 995# CONFIG_RTC_CLASS is not set
978# CONFIG_DMADEVICES is not set 996# CONFIG_DMADEVICES is not set
979
980#
981# Userspace I/O
982#
983# CONFIG_UIO is not set 997# CONFIG_UIO is not set
984 998
985# 999#
@@ -999,7 +1013,6 @@ CONFIG_FS_MBCACHE=y
999# CONFIG_JFS_FS is not set 1013# CONFIG_JFS_FS is not set
1000# CONFIG_FS_POSIX_ACL is not set 1014# CONFIG_FS_POSIX_ACL is not set
1001# CONFIG_XFS_FS is not set 1015# CONFIG_XFS_FS is not set
1002# CONFIG_GFS2_FS is not set
1003# CONFIG_OCFS2_FS is not set 1016# CONFIG_OCFS2_FS is not set
1004CONFIG_DNOTIFY=y 1017CONFIG_DNOTIFY=y
1005CONFIG_INOTIFY=y 1018CONFIG_INOTIFY=y
@@ -1060,7 +1073,6 @@ CONFIG_NFS_FS=y
1060CONFIG_NFS_V3=y 1073CONFIG_NFS_V3=y
1061# CONFIG_NFS_V3_ACL is not set 1074# CONFIG_NFS_V3_ACL is not set
1062CONFIG_NFS_V4=y 1075CONFIG_NFS_V4=y
1063# CONFIG_NFS_DIRECTIO is not set
1064# CONFIG_NFSD is not set 1076# CONFIG_NFSD is not set
1065CONFIG_ROOT_NFS=y 1077CONFIG_ROOT_NFS=y
1066CONFIG_LOCKD=y 1078CONFIG_LOCKD=y
@@ -1147,6 +1159,7 @@ CONFIG_UCC=y
1147# Library routines 1159# Library routines
1148# 1160#
1149CONFIG_BITREVERSE=y 1161CONFIG_BITREVERSE=y
1162# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1150# CONFIG_CRC_CCITT is not set 1163# CONFIG_CRC_CCITT is not set
1151# CONFIG_CRC16 is not set 1164# CONFIG_CRC16 is not set
1152CONFIG_CRC_ITU_T=y 1165CONFIG_CRC_ITU_T=y
@@ -1157,6 +1170,7 @@ CONFIG_PLIST=y
1157CONFIG_HAS_IOMEM=y 1170CONFIG_HAS_IOMEM=y
1158CONFIG_HAS_IOPORT=y 1171CONFIG_HAS_IOPORT=y
1159CONFIG_HAS_DMA=y 1172CONFIG_HAS_DMA=y
1173CONFIG_HAVE_LMB=y
1160 1174
1161# 1175#
1162# Kernel hacking 1176# Kernel hacking
@@ -1164,6 +1178,7 @@ CONFIG_HAS_DMA=y
1164# CONFIG_PRINTK_TIME is not set 1178# CONFIG_PRINTK_TIME is not set
1165CONFIG_ENABLE_WARN_DEPRECATED=y 1179CONFIG_ENABLE_WARN_DEPRECATED=y
1166CONFIG_ENABLE_MUST_CHECK=y 1180CONFIG_ENABLE_MUST_CHECK=y
1181CONFIG_FRAME_WARN=1024
1167# CONFIG_MAGIC_SYSRQ is not set 1182# CONFIG_MAGIC_SYSRQ is not set
1168# CONFIG_UNUSED_SYMBOLS is not set 1183# CONFIG_UNUSED_SYMBOLS is not set
1169# CONFIG_DEBUG_FS is not set 1184# CONFIG_DEBUG_FS is not set
@@ -1173,6 +1188,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1173# CONFIG_SLUB_STATS is not set 1188# CONFIG_SLUB_STATS is not set
1174# CONFIG_DEBUG_BUGVERBOSE is not set 1189# CONFIG_DEBUG_BUGVERBOSE is not set
1175# CONFIG_SAMPLES is not set 1190# CONFIG_SAMPLES is not set
1191# CONFIG_IRQSTACKS is not set
1176# CONFIG_PPC_EARLY_DEBUG is not set 1192# CONFIG_PPC_EARLY_DEBUG is not set
1177 1193
1178# 1194#
@@ -1182,52 +1198,82 @@ CONFIG_ENABLE_MUST_CHECK=y
1182# CONFIG_SECURITY is not set 1198# CONFIG_SECURITY is not set
1183# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1199# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1184CONFIG_CRYPTO=y 1200CONFIG_CRYPTO=y
1201
1202#
1203# Crypto core or helper
1204#
1185CONFIG_CRYPTO_ALGAPI=y 1205CONFIG_CRYPTO_ALGAPI=y
1186CONFIG_CRYPTO_BLKCIPHER=y 1206CONFIG_CRYPTO_BLKCIPHER=y
1187# CONFIG_CRYPTO_SEQIV is not set
1188CONFIG_CRYPTO_MANAGER=y 1207CONFIG_CRYPTO_MANAGER=y
1208# CONFIG_CRYPTO_GF128MUL is not set
1209# CONFIG_CRYPTO_NULL is not set
1210# CONFIG_CRYPTO_CRYPTD is not set
1211# CONFIG_CRYPTO_AUTHENC is not set
1212# CONFIG_CRYPTO_TEST is not set
1213
1214#
1215# Authenticated Encryption with Associated Data
1216#
1217# CONFIG_CRYPTO_CCM is not set
1218# CONFIG_CRYPTO_GCM is not set
1219# CONFIG_CRYPTO_SEQIV is not set
1220
1221#
1222# Block modes
1223#
1224CONFIG_CRYPTO_CBC=y
1225# CONFIG_CRYPTO_CTR is not set
1226# CONFIG_CRYPTO_CTS is not set
1227CONFIG_CRYPTO_ECB=m
1228# CONFIG_CRYPTO_LRW is not set
1229CONFIG_CRYPTO_PCBC=m
1230# CONFIG_CRYPTO_XTS is not set
1231
1232#
1233# Hash modes
1234#
1189# CONFIG_CRYPTO_HMAC is not set 1235# CONFIG_CRYPTO_HMAC is not set
1190# CONFIG_CRYPTO_XCBC is not set 1236# CONFIG_CRYPTO_XCBC is not set
1191# CONFIG_CRYPTO_NULL is not set 1237
1238#
1239# Digest
1240#
1241# CONFIG_CRYPTO_CRC32C is not set
1192# CONFIG_CRYPTO_MD4 is not set 1242# CONFIG_CRYPTO_MD4 is not set
1193CONFIG_CRYPTO_MD5=y 1243CONFIG_CRYPTO_MD5=y
1244# CONFIG_CRYPTO_MICHAEL_MIC is not set
1194# CONFIG_CRYPTO_SHA1 is not set 1245# CONFIG_CRYPTO_SHA1 is not set
1195# CONFIG_CRYPTO_SHA256 is not set 1246# CONFIG_CRYPTO_SHA256 is not set
1196# CONFIG_CRYPTO_SHA512 is not set 1247# CONFIG_CRYPTO_SHA512 is not set
1197# CONFIG_CRYPTO_WP512 is not set
1198# CONFIG_CRYPTO_TGR192 is not set 1248# CONFIG_CRYPTO_TGR192 is not set
1199# CONFIG_CRYPTO_GF128MUL is not set 1249# CONFIG_CRYPTO_WP512 is not set
1200CONFIG_CRYPTO_ECB=m 1250
1201CONFIG_CRYPTO_CBC=y 1251#
1202CONFIG_CRYPTO_PCBC=m 1252# Ciphers
1203# CONFIG_CRYPTO_LRW is not set 1253#
1204# CONFIG_CRYPTO_XTS is not set
1205# CONFIG_CRYPTO_CTR is not set
1206# CONFIG_CRYPTO_GCM is not set
1207# CONFIG_CRYPTO_CCM is not set
1208# CONFIG_CRYPTO_CRYPTD is not set
1209CONFIG_CRYPTO_DES=y
1210# CONFIG_CRYPTO_FCRYPT is not set
1211# CONFIG_CRYPTO_BLOWFISH is not set
1212# CONFIG_CRYPTO_TWOFISH is not set
1213# CONFIG_CRYPTO_SERPENT is not set
1214# CONFIG_CRYPTO_AES is not set 1254# CONFIG_CRYPTO_AES is not set
1255# CONFIG_CRYPTO_ANUBIS is not set
1256# CONFIG_CRYPTO_ARC4 is not set
1257# CONFIG_CRYPTO_BLOWFISH is not set
1258# CONFIG_CRYPTO_CAMELLIA is not set
1215# CONFIG_CRYPTO_CAST5 is not set 1259# CONFIG_CRYPTO_CAST5 is not set
1216# CONFIG_CRYPTO_CAST6 is not set 1260# CONFIG_CRYPTO_CAST6 is not set
1217# CONFIG_CRYPTO_TEA is not set 1261CONFIG_CRYPTO_DES=y
1218# CONFIG_CRYPTO_ARC4 is not set 1262# CONFIG_CRYPTO_FCRYPT is not set
1219# CONFIG_CRYPTO_KHAZAD is not set 1263# CONFIG_CRYPTO_KHAZAD is not set
1220# CONFIG_CRYPTO_ANUBIS is not set
1221# CONFIG_CRYPTO_SEED is not set
1222# CONFIG_CRYPTO_SALSA20 is not set 1264# CONFIG_CRYPTO_SALSA20 is not set
1265# CONFIG_CRYPTO_SEED is not set
1266# CONFIG_CRYPTO_SERPENT is not set
1267# CONFIG_CRYPTO_TEA is not set
1268# CONFIG_CRYPTO_TWOFISH is not set
1269
1270#
1271# Compression
1272#
1223# CONFIG_CRYPTO_DEFLATE is not set 1273# CONFIG_CRYPTO_DEFLATE is not set
1224# CONFIG_CRYPTO_MICHAEL_MIC is not set
1225# CONFIG_CRYPTO_CRC32C is not set
1226# CONFIG_CRYPTO_CAMELLIA is not set
1227# CONFIG_CRYPTO_TEST is not set
1228# CONFIG_CRYPTO_AUTHENC is not set
1229# CONFIG_CRYPTO_LZO is not set 1274# CONFIG_CRYPTO_LZO is not set
1230CONFIG_CRYPTO_HW=y 1275CONFIG_CRYPTO_HW=y
1231# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1276# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1232# CONFIG_PPC_CLOCK is not set 1277# CONFIG_PPC_CLOCK is not set
1233CONFIG_PPC_LIB_RHEAP=y 1278CONFIG_PPC_LIB_RHEAP=y
1279# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index e1de399a7bdd..b47fc9185708 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:17 2008 4# Mon Jun 9 08:52:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
218CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
219# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
237CONFIG_PCI_LEGACY=y 244CONFIG_PCI_LEGACY=y
238# CONFIG_PCCARD is not set 245# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 246# CONFIG_HOTPLUG_PCI is not set
247# CONFIG_HAS_RAPIDIO is not set
240 248
241# 249#
242# Advanced setup 250# Advanced setup
@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y
246# 254#
247# Default settings for advanced configuration options are used 255# Default settings for advanced configuration options are used
248# 256#
249CONFIG_HIGHMEM_START=0xfe000000
250CONFIG_LOWMEM_SIZE=0x30000000 257CONFIG_LOWMEM_SIZE=0x30000000
258CONFIG_PAGE_OFFSET=0xc0000000
251CONFIG_KERNEL_START=0xc0000000 259CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000
252CONFIG_TASK_SIZE=0xc0000000 261CONFIG_TASK_SIZE=0xc0000000
253CONFIG_BOOT_LOAD=0x00800000
254 262
255# 263#
256# Networking 264# Networking
@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y
298CONFIG_DEFAULT_TCP_CONG="cubic" 306CONFIG_DEFAULT_TCP_CONG="cubic"
299# CONFIG_TCP_MD5SIG is not set 307# CONFIG_TCP_MD5SIG is not set
300# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set
303# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
304# CONFIG_NETFILTER is not set 310# CONFIG_NETFILTER is not set
305# CONFIG_IP_DCCP is not set 311# CONFIG_IP_DCCP is not set
@@ -432,6 +438,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# 438#
433# CONFIG_MTD_UBI is not set 439# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 440CONFIG_OF_DEVICE=y
441CONFIG_OF_I2C=y
435# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
436CONFIG_BLK_DEV=y 443CONFIG_BLK_DEV=y
437# CONFIG_BLK_DEV_FD is not set 444# CONFIG_BLK_DEV_FD is not set
@@ -541,7 +548,11 @@ CONFIG_SCSI_LOWLEVEL=y
541# CONFIG_SCSI_SRP is not set 548# CONFIG_SCSI_SRP is not set
542CONFIG_ATA=y 549CONFIG_ATA=y
543# CONFIG_ATA_NONSTANDARD is not set 550# CONFIG_ATA_NONSTANDARD is not set
551CONFIG_SATA_PMP=y
544# CONFIG_SATA_AHCI is not set 552# CONFIG_SATA_AHCI is not set
553# CONFIG_SATA_SIL24 is not set
554# CONFIG_SATA_FSL is not set
555CONFIG_ATA_SFF=y
545# CONFIG_SATA_SVW is not set 556# CONFIG_SATA_SVW is not set
546# CONFIG_ATA_PIIX is not set 557# CONFIG_ATA_PIIX is not set
547# CONFIG_SATA_MV is not set 558# CONFIG_SATA_MV is not set
@@ -551,13 +562,11 @@ CONFIG_ATA=y
551# CONFIG_SATA_PROMISE is not set 562# CONFIG_SATA_PROMISE is not set
552# CONFIG_SATA_SX4 is not set 563# CONFIG_SATA_SX4 is not set
553CONFIG_SATA_SIL=y 564CONFIG_SATA_SIL=y
554# CONFIG_SATA_SIL24 is not set
555# CONFIG_SATA_SIS is not set 565# CONFIG_SATA_SIS is not set
556# CONFIG_SATA_ULI is not set 566# CONFIG_SATA_ULI is not set
557# CONFIG_SATA_VIA is not set 567# CONFIG_SATA_VIA is not set
558# CONFIG_SATA_VITESSE is not set 568# CONFIG_SATA_VITESSE is not set
559# CONFIG_SATA_INIC162X is not set 569# CONFIG_SATA_INIC162X is not set
560# CONFIG_SATA_FSL is not set
561# CONFIG_PATA_ALI is not set 570# CONFIG_PATA_ALI is not set
562# CONFIG_PATA_AMD is not set 571# CONFIG_PATA_AMD is not set
563# CONFIG_PATA_ARTOP is not set 572# CONFIG_PATA_ARTOP is not set
@@ -598,6 +607,7 @@ CONFIG_SATA_SIL=y
598# CONFIG_PATA_WINBOND is not set 607# CONFIG_PATA_WINBOND is not set
599CONFIG_PATA_PLATFORM=y 608CONFIG_PATA_PLATFORM=y
600CONFIG_PATA_OF_PLATFORM=y 609CONFIG_PATA_OF_PLATFORM=y
610# CONFIG_PATA_SCH is not set
601CONFIG_MD=y 611CONFIG_MD=y
602CONFIG_BLK_DEV_MD=y 612CONFIG_BLK_DEV_MD=y
603CONFIG_MD_LINEAR=y 613CONFIG_MD_LINEAR=y
@@ -659,7 +669,6 @@ CONFIG_NETDEV_1000=y
659# CONFIG_SIS190 is not set 669# CONFIG_SIS190 is not set
660# CONFIG_SKGE is not set 670# CONFIG_SKGE is not set
661# CONFIG_SKY2 is not set 671# CONFIG_SKY2 is not set
662# CONFIG_SK98LIN is not set
663# CONFIG_VIA_VELOCITY is not set 672# CONFIG_VIA_VELOCITY is not set
664# CONFIG_TIGON3 is not set 673# CONFIG_TIGON3 is not set
665# CONFIG_BNX2 is not set 674# CONFIG_BNX2 is not set
@@ -679,6 +688,7 @@ CONFIG_NETDEV_10000=y
679# CONFIG_MLX4_CORE is not set 688# CONFIG_MLX4_CORE is not set
680# CONFIG_TEHUTI is not set 689# CONFIG_TEHUTI is not set
681# CONFIG_BNX2X is not set 690# CONFIG_BNX2X is not set
691# CONFIG_SFC is not set
682# CONFIG_TR is not set 692# CONFIG_TR is not set
683 693
684# 694#
@@ -686,6 +696,7 @@ CONFIG_NETDEV_10000=y
686# 696#
687# CONFIG_WLAN_PRE80211 is not set 697# CONFIG_WLAN_PRE80211 is not set
688# CONFIG_WLAN_80211 is not set 698# CONFIG_WLAN_80211 is not set
699# CONFIG_IWLWIFI_LEDS is not set
689 700
690# 701#
691# USB Network Adapters 702# USB Network Adapters
@@ -722,6 +733,7 @@ CONFIG_NETDEV_10000=y
722# Character devices 733# Character devices
723# 734#
724# CONFIG_VT is not set 735# CONFIG_VT is not set
736CONFIG_DEVKMEM=y
725# CONFIG_SERIAL_NONSTANDARD is not set 737# CONFIG_SERIAL_NONSTANDARD is not set
726# CONFIG_NOZOMI is not set 738# CONFIG_NOZOMI is not set
727 739
@@ -749,7 +761,6 @@ CONFIG_LEGACY_PTY_COUNT=256
749# CONFIG_IPMI_HANDLER is not set 761# CONFIG_IPMI_HANDLER is not set
750CONFIG_HW_RANDOM=y 762CONFIG_HW_RANDOM=y
751# CONFIG_NVRAM is not set 763# CONFIG_NVRAM is not set
752# CONFIG_GEN_RTC is not set
753# CONFIG_R3964 is not set 764# CONFIG_R3964 is not set
754# CONFIG_APPLICOM is not set 765# CONFIG_APPLICOM is not set
755# CONFIG_RAW_DRIVER is not set 766# CONFIG_RAW_DRIVER is not set
@@ -760,13 +771,6 @@ CONFIG_I2C_BOARDINFO=y
760CONFIG_I2C_CHARDEV=y 771CONFIG_I2C_CHARDEV=y
761 772
762# 773#
763# I2C Algorithms
764#
765# CONFIG_I2C_ALGOBIT is not set
766# CONFIG_I2C_ALGOPCF is not set
767# CONFIG_I2C_ALGOPCA is not set
768
769#
770# I2C Hardware Bus support 774# I2C Hardware Bus support
771# 775#
772# CONFIG_I2C_ALI1535 is not set 776# CONFIG_I2C_ALI1535 is not set
@@ -793,6 +797,7 @@ CONFIG_I2C_MPC=y
793# CONFIG_I2C_VIA is not set 797# CONFIG_I2C_VIA is not set
794# CONFIG_I2C_VIAPRO is not set 798# CONFIG_I2C_VIAPRO is not set
795# CONFIG_I2C_VOODOO3 is not set 799# CONFIG_I2C_VOODOO3 is not set
800# CONFIG_I2C_PCA_PLATFORM is not set
796 801
797# 802#
798# Miscellaneous I2C Chip support 803# Miscellaneous I2C Chip support
@@ -802,17 +807,12 @@ CONFIG_I2C_MPC=y
802CONFIG_SENSORS_PCF8574=y 807CONFIG_SENSORS_PCF8574=y
803# CONFIG_PCF8575 is not set 808# CONFIG_PCF8575 is not set
804# CONFIG_SENSORS_PCF8591 is not set 809# CONFIG_SENSORS_PCF8591 is not set
805# CONFIG_TPS65010 is not set
806# CONFIG_SENSORS_MAX6875 is not set 810# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 811# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 812# CONFIG_I2C_DEBUG_CORE is not set
809# CONFIG_I2C_DEBUG_ALGO is not set 813# CONFIG_I2C_DEBUG_ALGO is not set
810# CONFIG_I2C_DEBUG_BUS is not set 814# CONFIG_I2C_DEBUG_BUS is not set
811# CONFIG_I2C_DEBUG_CHIP is not set 815# CONFIG_I2C_DEBUG_CHIP is not set
812
813#
814# SPI support
815#
816CONFIG_SPI=y 816CONFIG_SPI=y
817CONFIG_SPI_MASTER=y 817CONFIG_SPI_MASTER=y
818 818
@@ -862,12 +862,22 @@ CONFIG_SSB_POSSIBLE=y
862# Multifunction device drivers 862# Multifunction device drivers
863# 863#
864# CONFIG_MFD_SM501 is not set 864# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set
865 866
866# 867#
867# Multimedia devices 868# Multimedia devices
868# 869#
870
871#
872# Multimedia core support
873#
869# CONFIG_VIDEO_DEV is not set 874# CONFIG_VIDEO_DEV is not set
870# CONFIG_DVB_CORE is not set 875# CONFIG_DVB_CORE is not set
876# CONFIG_VIDEO_MEDIA is not set
877
878#
879# Multimedia drivers
880#
871CONFIG_DAB=y 881CONFIG_DAB=y
872# CONFIG_USB_DABUSB is not set 882# CONFIG_USB_DABUSB is not set
873 883
@@ -905,16 +915,20 @@ CONFIG_USB_DEVICEFS=y
905CONFIG_USB_DEVICE_CLASS=y 915CONFIG_USB_DEVICE_CLASS=y
906# CONFIG_USB_DYNAMIC_MINORS is not set 916# CONFIG_USB_DYNAMIC_MINORS is not set
907# CONFIG_USB_OTG is not set 917# CONFIG_USB_OTG is not set
918# CONFIG_USB_OTG_WHITELIST is not set
919# CONFIG_USB_OTG_BLACKLIST_HUB is not set
908 920
909# 921#
910# USB Host Controller Drivers 922# USB Host Controller Drivers
911# 923#
924# CONFIG_USB_C67X00_HCD is not set
912CONFIG_USB_EHCI_HCD=y 925CONFIG_USB_EHCI_HCD=y
913CONFIG_USB_EHCI_ROOT_HUB_TT=y 926CONFIG_USB_EHCI_ROOT_HUB_TT=y
914# CONFIG_USB_EHCI_TT_NEWSCHED is not set 927# CONFIG_USB_EHCI_TT_NEWSCHED is not set
915CONFIG_USB_EHCI_FSL=y 928CONFIG_USB_EHCI_FSL=y
916CONFIG_USB_EHCI_HCD_PPC_OF=y 929CONFIG_USB_EHCI_HCD_PPC_OF=y
917# CONFIG_USB_ISP116X_HCD is not set 930# CONFIG_USB_ISP116X_HCD is not set
931# CONFIG_USB_ISP1760_HCD is not set
918# CONFIG_USB_OHCI_HCD is not set 932# CONFIG_USB_OHCI_HCD is not set
919CONFIG_USB_UHCI_HCD=y 933CONFIG_USB_UHCI_HCD=y
920# CONFIG_USB_SL811_HCD is not set 934# CONFIG_USB_SL811_HCD is not set
@@ -925,6 +939,7 @@ CONFIG_USB_UHCI_HCD=y
925# 939#
926# CONFIG_USB_ACM is not set 940# CONFIG_USB_ACM is not set
927# CONFIG_USB_PRINTER is not set 941# CONFIG_USB_PRINTER is not set
942# CONFIG_USB_WDM is not set
928 943
929# 944#
930# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 945# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -945,6 +960,7 @@ CONFIG_USB_STORAGE=y
945# CONFIG_USB_STORAGE_JUMPSHOT is not set 960# CONFIG_USB_STORAGE_JUMPSHOT is not set
946# CONFIG_USB_STORAGE_ALAUDA is not set 961# CONFIG_USB_STORAGE_ALAUDA is not set
947# CONFIG_USB_STORAGE_KARMA is not set 962# CONFIG_USB_STORAGE_KARMA is not set
963# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
948# CONFIG_USB_LIBUSUAL is not set 964# CONFIG_USB_LIBUSUAL is not set
949 965
950# 966#
@@ -982,10 +998,12 @@ CONFIG_USB_MON=y
982# CONFIG_USB_TRANCEVIBRATOR is not set 998# CONFIG_USB_TRANCEVIBRATOR is not set
983# CONFIG_USB_IOWARRIOR is not set 999# CONFIG_USB_IOWARRIOR is not set
984# CONFIG_USB_TEST is not set 1000# CONFIG_USB_TEST is not set
1001# CONFIG_USB_ISIGHTFW is not set
985# CONFIG_USB_GADGET is not set 1002# CONFIG_USB_GADGET is not set
986# CONFIG_MMC is not set 1003# CONFIG_MMC is not set
987# CONFIG_MEMSTICK is not set 1004# CONFIG_MEMSTICK is not set
988# CONFIG_NEW_LEDS is not set 1005# CONFIG_NEW_LEDS is not set
1006# CONFIG_ACCESSIBILITY is not set
989# CONFIG_INFINIBAND is not set 1007# CONFIG_INFINIBAND is not set
990# CONFIG_EDAC is not set 1008# CONFIG_EDAC is not set
991CONFIG_RTC_LIB=y 1009CONFIG_RTC_LIB=y
@@ -1040,11 +1058,8 @@ CONFIG_RTC_DRV_DS1307=y
1040# 1058#
1041# on-CPU RTC drivers 1059# on-CPU RTC drivers
1042# 1060#
1061# CONFIG_RTC_DRV_PPC is not set
1043# CONFIG_DMADEVICES is not set 1062# CONFIG_DMADEVICES is not set
1044
1045#
1046# Userspace I/O
1047#
1048# CONFIG_UIO is not set 1063# CONFIG_UIO is not set
1049 1064
1050# 1065#
@@ -1064,7 +1079,6 @@ CONFIG_FS_MBCACHE=y
1064# CONFIG_JFS_FS is not set 1079# CONFIG_JFS_FS is not set
1065# CONFIG_FS_POSIX_ACL is not set 1080# CONFIG_FS_POSIX_ACL is not set
1066# CONFIG_XFS_FS is not set 1081# CONFIG_XFS_FS is not set
1067# CONFIG_GFS2_FS is not set
1068# CONFIG_OCFS2_FS is not set 1082# CONFIG_OCFS2_FS is not set
1069CONFIG_DNOTIFY=y 1083CONFIG_DNOTIFY=y
1070CONFIG_INOTIFY=y 1084CONFIG_INOTIFY=y
@@ -1126,7 +1140,6 @@ CONFIG_NFS_FS=y
1126CONFIG_NFS_V3=y 1140CONFIG_NFS_V3=y
1127# CONFIG_NFS_V3_ACL is not set 1141# CONFIG_NFS_V3_ACL is not set
1128CONFIG_NFS_V4=y 1142CONFIG_NFS_V4=y
1129# CONFIG_NFS_DIRECTIO is not set
1130# CONFIG_NFSD is not set 1143# CONFIG_NFSD is not set
1131CONFIG_ROOT_NFS=y 1144CONFIG_ROOT_NFS=y
1132CONFIG_LOCKD=y 1145CONFIG_LOCKD=y
@@ -1210,6 +1223,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1210# Library routines 1223# Library routines
1211# 1224#
1212CONFIG_BITREVERSE=y 1225CONFIG_BITREVERSE=y
1226# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1213# CONFIG_CRC_CCITT is not set 1227# CONFIG_CRC_CCITT is not set
1214# CONFIG_CRC16 is not set 1228# CONFIG_CRC16 is not set
1215# CONFIG_CRC_ITU_T is not set 1229# CONFIG_CRC_ITU_T is not set
@@ -1220,6 +1234,7 @@ CONFIG_PLIST=y
1220CONFIG_HAS_IOMEM=y 1234CONFIG_HAS_IOMEM=y
1221CONFIG_HAS_IOPORT=y 1235CONFIG_HAS_IOPORT=y
1222CONFIG_HAS_DMA=y 1236CONFIG_HAS_DMA=y
1237CONFIG_HAVE_LMB=y
1223 1238
1224# 1239#
1225# Kernel hacking 1240# Kernel hacking
@@ -1227,6 +1242,7 @@ CONFIG_HAS_DMA=y
1227# CONFIG_PRINTK_TIME is not set 1242# CONFIG_PRINTK_TIME is not set
1228CONFIG_ENABLE_WARN_DEPRECATED=y 1243CONFIG_ENABLE_WARN_DEPRECATED=y
1229CONFIG_ENABLE_MUST_CHECK=y 1244CONFIG_ENABLE_MUST_CHECK=y
1245CONFIG_FRAME_WARN=1024
1230# CONFIG_MAGIC_SYSRQ is not set 1246# CONFIG_MAGIC_SYSRQ is not set
1231# CONFIG_UNUSED_SYMBOLS is not set 1247# CONFIG_UNUSED_SYMBOLS is not set
1232# CONFIG_DEBUG_FS is not set 1248# CONFIG_DEBUG_FS is not set
@@ -1236,6 +1252,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1236# CONFIG_SLUB_STATS is not set 1252# CONFIG_SLUB_STATS is not set
1237# CONFIG_DEBUG_BUGVERBOSE is not set 1253# CONFIG_DEBUG_BUGVERBOSE is not set
1238# CONFIG_SAMPLES is not set 1254# CONFIG_SAMPLES is not set
1255# CONFIG_IRQSTACKS is not set
1239# CONFIG_PPC_EARLY_DEBUG is not set 1256# CONFIG_PPC_EARLY_DEBUG is not set
1240 1257
1241# 1258#
@@ -1245,51 +1262,81 @@ CONFIG_ENABLE_MUST_CHECK=y
1245# CONFIG_SECURITY is not set 1262# CONFIG_SECURITY is not set
1246# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1263# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1247CONFIG_CRYPTO=y 1264CONFIG_CRYPTO=y
1265
1266#
1267# Crypto core or helper
1268#
1248CONFIG_CRYPTO_ALGAPI=y 1269CONFIG_CRYPTO_ALGAPI=y
1249CONFIG_CRYPTO_BLKCIPHER=y 1270CONFIG_CRYPTO_BLKCIPHER=y
1250# CONFIG_CRYPTO_SEQIV is not set
1251CONFIG_CRYPTO_MANAGER=y 1271CONFIG_CRYPTO_MANAGER=y
1272# CONFIG_CRYPTO_GF128MUL is not set
1273# CONFIG_CRYPTO_NULL is not set
1274# CONFIG_CRYPTO_CRYPTD is not set
1275# CONFIG_CRYPTO_AUTHENC is not set
1276# CONFIG_CRYPTO_TEST is not set
1277
1278#
1279# Authenticated Encryption with Associated Data
1280#
1281# CONFIG_CRYPTO_CCM is not set
1282# CONFIG_CRYPTO_GCM is not set
1283# CONFIG_CRYPTO_SEQIV is not set
1284
1285#
1286# Block modes
1287#
1288CONFIG_CRYPTO_CBC=y
1289# CONFIG_CRYPTO_CTR is not set
1290# CONFIG_CRYPTO_CTS is not set
1291# CONFIG_CRYPTO_ECB is not set
1292# CONFIG_CRYPTO_LRW is not set
1293CONFIG_CRYPTO_PCBC=m
1294# CONFIG_CRYPTO_XTS is not set
1295
1296#
1297# Hash modes
1298#
1252# CONFIG_CRYPTO_HMAC is not set 1299# CONFIG_CRYPTO_HMAC is not set
1253# CONFIG_CRYPTO_XCBC is not set 1300# CONFIG_CRYPTO_XCBC is not set
1254# CONFIG_CRYPTO_NULL is not set 1301
1302#
1303# Digest
1304#
1305# CONFIG_CRYPTO_CRC32C is not set
1255# CONFIG_CRYPTO_MD4 is not set 1306# CONFIG_CRYPTO_MD4 is not set
1256CONFIG_CRYPTO_MD5=y 1307CONFIG_CRYPTO_MD5=y
1308# CONFIG_CRYPTO_MICHAEL_MIC is not set
1257# CONFIG_CRYPTO_SHA1 is not set 1309# CONFIG_CRYPTO_SHA1 is not set
1258# CONFIG_CRYPTO_SHA256 is not set 1310# CONFIG_CRYPTO_SHA256 is not set
1259# CONFIG_CRYPTO_SHA512 is not set 1311# CONFIG_CRYPTO_SHA512 is not set
1260# CONFIG_CRYPTO_WP512 is not set
1261# CONFIG_CRYPTO_TGR192 is not set 1312# CONFIG_CRYPTO_TGR192 is not set
1262# CONFIG_CRYPTO_GF128MUL is not set 1313# CONFIG_CRYPTO_WP512 is not set
1263# CONFIG_CRYPTO_ECB is not set 1314
1264CONFIG_CRYPTO_CBC=y 1315#
1265CONFIG_CRYPTO_PCBC=m 1316# Ciphers
1266# CONFIG_CRYPTO_LRW is not set 1317#
1267# CONFIG_CRYPTO_XTS is not set
1268# CONFIG_CRYPTO_CTR is not set
1269# CONFIG_CRYPTO_GCM is not set
1270# CONFIG_CRYPTO_CCM is not set
1271# CONFIG_CRYPTO_CRYPTD is not set
1272CONFIG_CRYPTO_DES=y
1273# CONFIG_CRYPTO_FCRYPT is not set
1274# CONFIG_CRYPTO_BLOWFISH is not set
1275# CONFIG_CRYPTO_TWOFISH is not set
1276# CONFIG_CRYPTO_SERPENT is not set
1277# CONFIG_CRYPTO_AES is not set 1318# CONFIG_CRYPTO_AES is not set
1319# CONFIG_CRYPTO_ANUBIS is not set
1320# CONFIG_CRYPTO_ARC4 is not set
1321# CONFIG_CRYPTO_BLOWFISH is not set
1322# CONFIG_CRYPTO_CAMELLIA is not set
1278# CONFIG_CRYPTO_CAST5 is not set 1323# CONFIG_CRYPTO_CAST5 is not set
1279# CONFIG_CRYPTO_CAST6 is not set 1324# CONFIG_CRYPTO_CAST6 is not set
1280# CONFIG_CRYPTO_TEA is not set 1325CONFIG_CRYPTO_DES=y
1281# CONFIG_CRYPTO_ARC4 is not set 1326# CONFIG_CRYPTO_FCRYPT is not set
1282# CONFIG_CRYPTO_KHAZAD is not set 1327# CONFIG_CRYPTO_KHAZAD is not set
1283# CONFIG_CRYPTO_ANUBIS is not set
1284# CONFIG_CRYPTO_SEED is not set
1285# CONFIG_CRYPTO_SALSA20 is not set 1328# CONFIG_CRYPTO_SALSA20 is not set
1329# CONFIG_CRYPTO_SEED is not set
1330# CONFIG_CRYPTO_SERPENT is not set
1331# CONFIG_CRYPTO_TEA is not set
1332# CONFIG_CRYPTO_TWOFISH is not set
1333
1334#
1335# Compression
1336#
1286# CONFIG_CRYPTO_DEFLATE is not set 1337# CONFIG_CRYPTO_DEFLATE is not set
1287# CONFIG_CRYPTO_MICHAEL_MIC is not set
1288# CONFIG_CRYPTO_CRC32C is not set
1289# CONFIG_CRYPTO_CAMELLIA is not set
1290# CONFIG_CRYPTO_TEST is not set
1291# CONFIG_CRYPTO_AUTHENC is not set
1292# CONFIG_CRYPTO_LZO is not set 1338# CONFIG_CRYPTO_LZO is not set
1293CONFIG_CRYPTO_HW=y 1339CONFIG_CRYPTO_HW=y
1294# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1340# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1295# CONFIG_PPC_CLOCK is not set 1341# CONFIG_PPC_CLOCK is not set
1342# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index b4e39cf82a8c..fdac4845bad9 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:18 2008 4# Mon Jun 9 08:52:26 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
218CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
219# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
237CONFIG_PCI_LEGACY=y 244CONFIG_PCI_LEGACY=y
238# CONFIG_PCCARD is not set 245# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 246# CONFIG_HOTPLUG_PCI is not set
247# CONFIG_HAS_RAPIDIO is not set
240 248
241# 249#
242# Advanced setup 250# Advanced setup
@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y
246# 254#
247# Default settings for advanced configuration options are used 255# Default settings for advanced configuration options are used
248# 256#
249CONFIG_HIGHMEM_START=0xfe000000
250CONFIG_LOWMEM_SIZE=0x30000000 257CONFIG_LOWMEM_SIZE=0x30000000
258CONFIG_PAGE_OFFSET=0xc0000000
251CONFIG_KERNEL_START=0xc0000000 259CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000
252CONFIG_TASK_SIZE=0xc0000000 261CONFIG_TASK_SIZE=0xc0000000
253CONFIG_BOOT_LOAD=0x00800000
254 262
255# 263#
256# Networking 264# Networking
@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y
298CONFIG_DEFAULT_TCP_CONG="cubic" 306CONFIG_DEFAULT_TCP_CONG="cubic"
299# CONFIG_TCP_MD5SIG is not set 307# CONFIG_TCP_MD5SIG is not set
300# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set
303# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
304# CONFIG_NETFILTER is not set 310# CONFIG_NETFILTER is not set
305# CONFIG_IP_DCCP is not set 311# CONFIG_IP_DCCP is not set
@@ -432,6 +438,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
432# 438#
433# CONFIG_MTD_UBI is not set 439# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 440CONFIG_OF_DEVICE=y
441CONFIG_OF_I2C=y
435# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
436CONFIG_BLK_DEV=y 443CONFIG_BLK_DEV=y
437# CONFIG_BLK_DEV_FD is not set 444# CONFIG_BLK_DEV_FD is not set
@@ -587,7 +594,6 @@ CONFIG_NETDEV_1000=y
587# CONFIG_SIS190 is not set 594# CONFIG_SIS190 is not set
588# CONFIG_SKGE is not set 595# CONFIG_SKGE is not set
589# CONFIG_SKY2 is not set 596# CONFIG_SKY2 is not set
590# CONFIG_SK98LIN is not set
591# CONFIG_VIA_VELOCITY is not set 597# CONFIG_VIA_VELOCITY is not set
592# CONFIG_TIGON3 is not set 598# CONFIG_TIGON3 is not set
593# CONFIG_BNX2 is not set 599# CONFIG_BNX2 is not set
@@ -607,6 +613,7 @@ CONFIG_NETDEV_10000=y
607# CONFIG_MLX4_CORE is not set 613# CONFIG_MLX4_CORE is not set
608# CONFIG_TEHUTI is not set 614# CONFIG_TEHUTI is not set
609# CONFIG_BNX2X is not set 615# CONFIG_BNX2X is not set
616# CONFIG_SFC is not set
610# CONFIG_TR is not set 617# CONFIG_TR is not set
611 618
612# 619#
@@ -614,6 +621,7 @@ CONFIG_NETDEV_10000=y
614# 621#
615# CONFIG_WLAN_PRE80211 is not set 622# CONFIG_WLAN_PRE80211 is not set
616# CONFIG_WLAN_80211 is not set 623# CONFIG_WLAN_80211 is not set
624# CONFIG_IWLWIFI_LEDS is not set
617 625
618# 626#
619# USB Network Adapters 627# USB Network Adapters
@@ -650,6 +658,7 @@ CONFIG_NETDEV_10000=y
650# Character devices 658# Character devices
651# 659#
652# CONFIG_VT is not set 660# CONFIG_VT is not set
661CONFIG_DEVKMEM=y
653# CONFIG_SERIAL_NONSTANDARD is not set 662# CONFIG_SERIAL_NONSTANDARD is not set
654# CONFIG_NOZOMI is not set 663# CONFIG_NOZOMI is not set
655 664
@@ -677,7 +686,6 @@ CONFIG_LEGACY_PTY_COUNT=256
677# CONFIG_IPMI_HANDLER is not set 686# CONFIG_IPMI_HANDLER is not set
678CONFIG_HW_RANDOM=y 687CONFIG_HW_RANDOM=y
679# CONFIG_NVRAM is not set 688# CONFIG_NVRAM is not set
680# CONFIG_GEN_RTC is not set
681# CONFIG_R3964 is not set 689# CONFIG_R3964 is not set
682# CONFIG_APPLICOM is not set 690# CONFIG_APPLICOM is not set
683# CONFIG_RAW_DRIVER is not set 691# CONFIG_RAW_DRIVER is not set
@@ -688,13 +696,6 @@ CONFIG_I2C_BOARDINFO=y
688CONFIG_I2C_CHARDEV=y 696CONFIG_I2C_CHARDEV=y
689 697
690# 698#
691# I2C Algorithms
692#
693# CONFIG_I2C_ALGOBIT is not set
694# CONFIG_I2C_ALGOPCF is not set
695# CONFIG_I2C_ALGOPCA is not set
696
697#
698# I2C Hardware Bus support 699# I2C Hardware Bus support
699# 700#
700# CONFIG_I2C_ALI1535 is not set 701# CONFIG_I2C_ALI1535 is not set
@@ -721,6 +722,7 @@ CONFIG_I2C_MPC=y
721# CONFIG_I2C_VIA is not set 722# CONFIG_I2C_VIA is not set
722# CONFIG_I2C_VIAPRO is not set 723# CONFIG_I2C_VIAPRO is not set
723# CONFIG_I2C_VOODOO3 is not set 724# CONFIG_I2C_VOODOO3 is not set
725# CONFIG_I2C_PCA_PLATFORM is not set
724 726
725# 727#
726# Miscellaneous I2C Chip support 728# Miscellaneous I2C Chip support
@@ -730,17 +732,12 @@ CONFIG_I2C_MPC=y
730CONFIG_SENSORS_PCF8574=y 732CONFIG_SENSORS_PCF8574=y
731# CONFIG_PCF8575 is not set 733# CONFIG_PCF8575 is not set
732# CONFIG_SENSORS_PCF8591 is not set 734# CONFIG_SENSORS_PCF8591 is not set
733# CONFIG_TPS65010 is not set
734# CONFIG_SENSORS_MAX6875 is not set 735# CONFIG_SENSORS_MAX6875 is not set
735# CONFIG_SENSORS_TSL2550 is not set 736# CONFIG_SENSORS_TSL2550 is not set
736# CONFIG_I2C_DEBUG_CORE is not set 737# CONFIG_I2C_DEBUG_CORE is not set
737# CONFIG_I2C_DEBUG_ALGO is not set 738# CONFIG_I2C_DEBUG_ALGO is not set
738# CONFIG_I2C_DEBUG_BUS is not set 739# CONFIG_I2C_DEBUG_BUS is not set
739# CONFIG_I2C_DEBUG_CHIP is not set 740# CONFIG_I2C_DEBUG_CHIP is not set
740
741#
742# SPI support
743#
744CONFIG_SPI=y 741CONFIG_SPI=y
745CONFIG_SPI_MASTER=y 742CONFIG_SPI_MASTER=y
746 743
@@ -790,12 +787,22 @@ CONFIG_SSB_POSSIBLE=y
790# Multifunction device drivers 787# Multifunction device drivers
791# 788#
792# CONFIG_MFD_SM501 is not set 789# CONFIG_MFD_SM501 is not set
790# CONFIG_HTC_PASIC3 is not set
793 791
794# 792#
795# Multimedia devices 793# Multimedia devices
796# 794#
795
796#
797# Multimedia core support
798#
797# CONFIG_VIDEO_DEV is not set 799# CONFIG_VIDEO_DEV is not set
798# CONFIG_DVB_CORE is not set 800# CONFIG_DVB_CORE is not set
801# CONFIG_VIDEO_MEDIA is not set
802
803#
804# Multimedia drivers
805#
799CONFIG_DAB=y 806CONFIG_DAB=y
800# CONFIG_USB_DABUSB is not set 807# CONFIG_USB_DABUSB is not set
801 808
@@ -833,16 +840,20 @@ CONFIG_USB=y
833CONFIG_USB_DEVICE_CLASS=y 840CONFIG_USB_DEVICE_CLASS=y
834# CONFIG_USB_DYNAMIC_MINORS is not set 841# CONFIG_USB_DYNAMIC_MINORS is not set
835# CONFIG_USB_OTG is not set 842# CONFIG_USB_OTG is not set
843# CONFIG_USB_OTG_WHITELIST is not set
844# CONFIG_USB_OTG_BLACKLIST_HUB is not set
836 845
837# 846#
838# USB Host Controller Drivers 847# USB Host Controller Drivers
839# 848#
849# CONFIG_USB_C67X00_HCD is not set
840CONFIG_USB_EHCI_HCD=y 850CONFIG_USB_EHCI_HCD=y
841CONFIG_USB_EHCI_ROOT_HUB_TT=y 851CONFIG_USB_EHCI_ROOT_HUB_TT=y
842# CONFIG_USB_EHCI_TT_NEWSCHED is not set 852# CONFIG_USB_EHCI_TT_NEWSCHED is not set
843CONFIG_USB_EHCI_FSL=y 853CONFIG_USB_EHCI_FSL=y
844CONFIG_USB_EHCI_HCD_PPC_OF=y 854CONFIG_USB_EHCI_HCD_PPC_OF=y
845# CONFIG_USB_ISP116X_HCD is not set 855# CONFIG_USB_ISP116X_HCD is not set
856# CONFIG_USB_ISP1760_HCD is not set
846# CONFIG_USB_OHCI_HCD is not set 857# CONFIG_USB_OHCI_HCD is not set
847CONFIG_USB_UHCI_HCD=y 858CONFIG_USB_UHCI_HCD=y
848# CONFIG_USB_SL811_HCD is not set 859# CONFIG_USB_SL811_HCD is not set
@@ -853,6 +864,7 @@ CONFIG_USB_UHCI_HCD=y
853# 864#
854# CONFIG_USB_ACM is not set 865# CONFIG_USB_ACM is not set
855# CONFIG_USB_PRINTER is not set 866# CONFIG_USB_PRINTER is not set
867# CONFIG_USB_WDM is not set
856 868
857# 869#
858# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 870# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -873,6 +885,7 @@ CONFIG_USB_STORAGE=y
873# CONFIG_USB_STORAGE_JUMPSHOT is not set 885# CONFIG_USB_STORAGE_JUMPSHOT is not set
874# CONFIG_USB_STORAGE_ALAUDA is not set 886# CONFIG_USB_STORAGE_ALAUDA is not set
875# CONFIG_USB_STORAGE_KARMA is not set 887# CONFIG_USB_STORAGE_KARMA is not set
888# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
876# CONFIG_USB_LIBUSUAL is not set 889# CONFIG_USB_LIBUSUAL is not set
877 890
878# 891#
@@ -909,10 +922,12 @@ CONFIG_USB_MON=y
909# CONFIG_USB_LD is not set 922# CONFIG_USB_LD is not set
910# CONFIG_USB_TRANCEVIBRATOR is not set 923# CONFIG_USB_TRANCEVIBRATOR is not set
911# CONFIG_USB_IOWARRIOR is not set 924# CONFIG_USB_IOWARRIOR is not set
925# CONFIG_USB_ISIGHTFW is not set
912# CONFIG_USB_GADGET is not set 926# CONFIG_USB_GADGET is not set
913# CONFIG_MMC is not set 927# CONFIG_MMC is not set
914# CONFIG_MEMSTICK is not set 928# CONFIG_MEMSTICK is not set
915# CONFIG_NEW_LEDS is not set 929# CONFIG_NEW_LEDS is not set
930# CONFIG_ACCESSIBILITY is not set
916# CONFIG_INFINIBAND is not set 931# CONFIG_INFINIBAND is not set
917# CONFIG_EDAC is not set 932# CONFIG_EDAC is not set
918CONFIG_RTC_LIB=y 933CONFIG_RTC_LIB=y
@@ -967,11 +982,8 @@ CONFIG_RTC_DRV_DS1307=y
967# 982#
968# on-CPU RTC drivers 983# on-CPU RTC drivers
969# 984#
985# CONFIG_RTC_DRV_PPC is not set
970# CONFIG_DMADEVICES is not set 986# CONFIG_DMADEVICES is not set
971
972#
973# Userspace I/O
974#
975# CONFIG_UIO is not set 987# CONFIG_UIO is not set
976 988
977# 989#
@@ -991,7 +1003,6 @@ CONFIG_FS_MBCACHE=y
991# CONFIG_JFS_FS is not set 1003# CONFIG_JFS_FS is not set
992# CONFIG_FS_POSIX_ACL is not set 1004# CONFIG_FS_POSIX_ACL is not set
993# CONFIG_XFS_FS is not set 1005# CONFIG_XFS_FS is not set
994# CONFIG_GFS2_FS is not set
995# CONFIG_OCFS2_FS is not set 1006# CONFIG_OCFS2_FS is not set
996CONFIG_DNOTIFY=y 1007CONFIG_DNOTIFY=y
997CONFIG_INOTIFY=y 1008CONFIG_INOTIFY=y
@@ -1053,7 +1064,6 @@ CONFIG_NFS_FS=y
1053CONFIG_NFS_V3=y 1064CONFIG_NFS_V3=y
1054# CONFIG_NFS_V3_ACL is not set 1065# CONFIG_NFS_V3_ACL is not set
1055CONFIG_NFS_V4=y 1066CONFIG_NFS_V4=y
1056# CONFIG_NFS_DIRECTIO is not set
1057# CONFIG_NFSD is not set 1067# CONFIG_NFSD is not set
1058CONFIG_ROOT_NFS=y 1068CONFIG_ROOT_NFS=y
1059CONFIG_LOCKD=y 1069CONFIG_LOCKD=y
@@ -1137,6 +1147,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1137# Library routines 1147# Library routines
1138# 1148#
1139CONFIG_BITREVERSE=y 1149CONFIG_BITREVERSE=y
1150# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1140# CONFIG_CRC_CCITT is not set 1151# CONFIG_CRC_CCITT is not set
1141# CONFIG_CRC16 is not set 1152# CONFIG_CRC16 is not set
1142# CONFIG_CRC_ITU_T is not set 1153# CONFIG_CRC_ITU_T is not set
@@ -1147,6 +1158,7 @@ CONFIG_PLIST=y
1147CONFIG_HAS_IOMEM=y 1158CONFIG_HAS_IOMEM=y
1148CONFIG_HAS_IOPORT=y 1159CONFIG_HAS_IOPORT=y
1149CONFIG_HAS_DMA=y 1160CONFIG_HAS_DMA=y
1161CONFIG_HAVE_LMB=y
1150 1162
1151# 1163#
1152# Kernel hacking 1164# Kernel hacking
@@ -1154,6 +1166,7 @@ CONFIG_HAS_DMA=y
1154# CONFIG_PRINTK_TIME is not set 1166# CONFIG_PRINTK_TIME is not set
1155CONFIG_ENABLE_WARN_DEPRECATED=y 1167CONFIG_ENABLE_WARN_DEPRECATED=y
1156CONFIG_ENABLE_MUST_CHECK=y 1168CONFIG_ENABLE_MUST_CHECK=y
1169CONFIG_FRAME_WARN=1024
1157# CONFIG_MAGIC_SYSRQ is not set 1170# CONFIG_MAGIC_SYSRQ is not set
1158# CONFIG_UNUSED_SYMBOLS is not set 1171# CONFIG_UNUSED_SYMBOLS is not set
1159# CONFIG_DEBUG_FS is not set 1172# CONFIG_DEBUG_FS is not set
@@ -1163,6 +1176,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1163# CONFIG_SLUB_STATS is not set 1176# CONFIG_SLUB_STATS is not set
1164# CONFIG_DEBUG_BUGVERBOSE is not set 1177# CONFIG_DEBUG_BUGVERBOSE is not set
1165# CONFIG_SAMPLES is not set 1178# CONFIG_SAMPLES is not set
1179# CONFIG_IRQSTACKS is not set
1166# CONFIG_PPC_EARLY_DEBUG is not set 1180# CONFIG_PPC_EARLY_DEBUG is not set
1167 1181
1168# 1182#
@@ -1172,51 +1186,81 @@ CONFIG_ENABLE_MUST_CHECK=y
1172# CONFIG_SECURITY is not set 1186# CONFIG_SECURITY is not set
1173# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1187# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1174CONFIG_CRYPTO=y 1188CONFIG_CRYPTO=y
1189
1190#
1191# Crypto core or helper
1192#
1175CONFIG_CRYPTO_ALGAPI=y 1193CONFIG_CRYPTO_ALGAPI=y
1176CONFIG_CRYPTO_BLKCIPHER=y 1194CONFIG_CRYPTO_BLKCIPHER=y
1177# CONFIG_CRYPTO_SEQIV is not set
1178CONFIG_CRYPTO_MANAGER=y 1195CONFIG_CRYPTO_MANAGER=y
1196# CONFIG_CRYPTO_GF128MUL is not set
1197# CONFIG_CRYPTO_NULL is not set
1198# CONFIG_CRYPTO_CRYPTD is not set
1199# CONFIG_CRYPTO_AUTHENC is not set
1200# CONFIG_CRYPTO_TEST is not set
1201
1202#
1203# Authenticated Encryption with Associated Data
1204#
1205# CONFIG_CRYPTO_CCM is not set
1206# CONFIG_CRYPTO_GCM is not set
1207# CONFIG_CRYPTO_SEQIV is not set
1208
1209#
1210# Block modes
1211#
1212CONFIG_CRYPTO_CBC=y
1213# CONFIG_CRYPTO_CTR is not set
1214# CONFIG_CRYPTO_CTS is not set
1215# CONFIG_CRYPTO_ECB is not set
1216# CONFIG_CRYPTO_LRW is not set
1217CONFIG_CRYPTO_PCBC=m
1218# CONFIG_CRYPTO_XTS is not set
1219
1220#
1221# Hash modes
1222#
1179# CONFIG_CRYPTO_HMAC is not set 1223# CONFIG_CRYPTO_HMAC is not set
1180# CONFIG_CRYPTO_XCBC is not set 1224# CONFIG_CRYPTO_XCBC is not set
1181# CONFIG_CRYPTO_NULL is not set 1225
1226#
1227# Digest
1228#
1229# CONFIG_CRYPTO_CRC32C is not set
1182# CONFIG_CRYPTO_MD4 is not set 1230# CONFIG_CRYPTO_MD4 is not set
1183CONFIG_CRYPTO_MD5=y 1231CONFIG_CRYPTO_MD5=y
1232# CONFIG_CRYPTO_MICHAEL_MIC is not set
1184# CONFIG_CRYPTO_SHA1 is not set 1233# CONFIG_CRYPTO_SHA1 is not set
1185# CONFIG_CRYPTO_SHA256 is not set 1234# CONFIG_CRYPTO_SHA256 is not set
1186# CONFIG_CRYPTO_SHA512 is not set 1235# CONFIG_CRYPTO_SHA512 is not set
1187# CONFIG_CRYPTO_WP512 is not set
1188# CONFIG_CRYPTO_TGR192 is not set 1236# CONFIG_CRYPTO_TGR192 is not set
1189# CONFIG_CRYPTO_GF128MUL is not set 1237# CONFIG_CRYPTO_WP512 is not set
1190# CONFIG_CRYPTO_ECB is not set 1238
1191CONFIG_CRYPTO_CBC=y 1239#
1192CONFIG_CRYPTO_PCBC=m 1240# Ciphers
1193# CONFIG_CRYPTO_LRW is not set 1241#
1194# CONFIG_CRYPTO_XTS is not set
1195# CONFIG_CRYPTO_CTR is not set
1196# CONFIG_CRYPTO_GCM is not set
1197# CONFIG_CRYPTO_CCM is not set
1198# CONFIG_CRYPTO_CRYPTD is not set
1199CONFIG_CRYPTO_DES=y
1200# CONFIG_CRYPTO_FCRYPT is not set
1201# CONFIG_CRYPTO_BLOWFISH is not set
1202# CONFIG_CRYPTO_TWOFISH is not set
1203# CONFIG_CRYPTO_SERPENT is not set
1204# CONFIG_CRYPTO_AES is not set 1242# CONFIG_CRYPTO_AES is not set
1243# CONFIG_CRYPTO_ANUBIS is not set
1244# CONFIG_CRYPTO_ARC4 is not set
1245# CONFIG_CRYPTO_BLOWFISH is not set
1246# CONFIG_CRYPTO_CAMELLIA is not set
1205# CONFIG_CRYPTO_CAST5 is not set 1247# CONFIG_CRYPTO_CAST5 is not set
1206# CONFIG_CRYPTO_CAST6 is not set 1248# CONFIG_CRYPTO_CAST6 is not set
1207# CONFIG_CRYPTO_TEA is not set 1249CONFIG_CRYPTO_DES=y
1208# CONFIG_CRYPTO_ARC4 is not set 1250# CONFIG_CRYPTO_FCRYPT is not set
1209# CONFIG_CRYPTO_KHAZAD is not set 1251# CONFIG_CRYPTO_KHAZAD is not set
1210# CONFIG_CRYPTO_ANUBIS is not set
1211# CONFIG_CRYPTO_SEED is not set
1212# CONFIG_CRYPTO_SALSA20 is not set 1252# CONFIG_CRYPTO_SALSA20 is not set
1253# CONFIG_CRYPTO_SEED is not set
1254# CONFIG_CRYPTO_SERPENT is not set
1255# CONFIG_CRYPTO_TEA is not set
1256# CONFIG_CRYPTO_TWOFISH is not set
1257
1258#
1259# Compression
1260#
1213# CONFIG_CRYPTO_DEFLATE is not set 1261# CONFIG_CRYPTO_DEFLATE is not set
1214# CONFIG_CRYPTO_MICHAEL_MIC is not set
1215# CONFIG_CRYPTO_CRC32C is not set
1216# CONFIG_CRYPTO_CAMELLIA is not set
1217# CONFIG_CRYPTO_TEST is not set
1218# CONFIG_CRYPTO_AUTHENC is not set
1219# CONFIG_CRYPTO_LZO is not set 1262# CONFIG_CRYPTO_LZO is not set
1220CONFIG_CRYPTO_HW=y 1263CONFIG_CRYPTO_HW=y
1221# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1264# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1222# CONFIG_PPC_CLOCK is not set 1265# CONFIG_PPC_CLOCK is not set
1266# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index b4e82c0e2be7..c82e96e984fc 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:36:56 2008 4# Mon Jun 9 08:52:26 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
218CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
219# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
237CONFIG_PCI_LEGACY=y 244CONFIG_PCI_LEGACY=y
238# CONFIG_PCCARD is not set 245# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 246# CONFIG_HOTPLUG_PCI is not set
247# CONFIG_HAS_RAPIDIO is not set
240 248
241# 249#
242# Advanced setup 250# Advanced setup
@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y
246# 254#
247# Default settings for advanced configuration options are used 255# Default settings for advanced configuration options are used
248# 256#
249CONFIG_HIGHMEM_START=0xfe000000
250CONFIG_LOWMEM_SIZE=0x30000000 257CONFIG_LOWMEM_SIZE=0x30000000
258CONFIG_PAGE_OFFSET=0xc0000000
251CONFIG_KERNEL_START=0xc0000000 259CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000
252CONFIG_TASK_SIZE=0xc0000000 261CONFIG_TASK_SIZE=0xc0000000
253CONFIG_BOOT_LOAD=0x00800000
254 262
255# 263#
256# Networking 264# Networking
@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y
298CONFIG_DEFAULT_TCP_CONG="cubic" 306CONFIG_DEFAULT_TCP_CONG="cubic"
299# CONFIG_TCP_MD5SIG is not set 307# CONFIG_TCP_MD5SIG is not set
300# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set
303# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
304# CONFIG_NETFILTER is not set 310# CONFIG_NETFILTER is not set
305# CONFIG_IP_DCCP is not set 311# CONFIG_IP_DCCP is not set
@@ -353,6 +359,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
353# CONFIG_CONNECTOR is not set 359# CONFIG_CONNECTOR is not set
354# CONFIG_MTD is not set 360# CONFIG_MTD is not set
355CONFIG_OF_DEVICE=y 361CONFIG_OF_DEVICE=y
362CONFIG_OF_I2C=y
356# CONFIG_PARPORT is not set 363# CONFIG_PARPORT is not set
357CONFIG_BLK_DEV=y 364CONFIG_BLK_DEV=y
358# CONFIG_BLK_DEV_FD is not set 365# CONFIG_BLK_DEV_FD is not set
@@ -471,7 +478,6 @@ CONFIG_NETDEV_1000=y
471# CONFIG_SIS190 is not set 478# CONFIG_SIS190 is not set
472# CONFIG_SKGE is not set 479# CONFIG_SKGE is not set
473# CONFIG_SKY2 is not set 480# CONFIG_SKY2 is not set
474# CONFIG_SK98LIN is not set
475# CONFIG_VIA_VELOCITY is not set 481# CONFIG_VIA_VELOCITY is not set
476# CONFIG_TIGON3 is not set 482# CONFIG_TIGON3 is not set
477# CONFIG_BNX2 is not set 483# CONFIG_BNX2 is not set
@@ -491,6 +497,7 @@ CONFIG_NETDEV_10000=y
491# CONFIG_MLX4_CORE is not set 497# CONFIG_MLX4_CORE is not set
492# CONFIG_TEHUTI is not set 498# CONFIG_TEHUTI is not set
493# CONFIG_BNX2X is not set 499# CONFIG_BNX2X is not set
500# CONFIG_SFC is not set
494# CONFIG_TR is not set 501# CONFIG_TR is not set
495 502
496# 503#
@@ -498,6 +505,7 @@ CONFIG_NETDEV_10000=y
498# 505#
499# CONFIG_WLAN_PRE80211 is not set 506# CONFIG_WLAN_PRE80211 is not set
500# CONFIG_WLAN_80211 is not set 507# CONFIG_WLAN_80211 is not set
508# CONFIG_IWLWIFI_LEDS is not set
501# CONFIG_WAN is not set 509# CONFIG_WAN is not set
502# CONFIG_FDDI is not set 510# CONFIG_FDDI is not set
503# CONFIG_HIPPI is not set 511# CONFIG_HIPPI is not set
@@ -544,6 +552,7 @@ CONFIG_INPUT=y
544# Character devices 552# Character devices
545# 553#
546# CONFIG_VT is not set 554# CONFIG_VT is not set
555CONFIG_DEVKMEM=y
547# CONFIG_SERIAL_NONSTANDARD is not set 556# CONFIG_SERIAL_NONSTANDARD is not set
548# CONFIG_NOZOMI is not set 557# CONFIG_NOZOMI is not set
549 558
@@ -571,7 +580,6 @@ CONFIG_LEGACY_PTY_COUNT=256
571# CONFIG_IPMI_HANDLER is not set 580# CONFIG_IPMI_HANDLER is not set
572# CONFIG_HW_RANDOM is not set 581# CONFIG_HW_RANDOM is not set
573# CONFIG_NVRAM is not set 582# CONFIG_NVRAM is not set
574# CONFIG_GEN_RTC is not set
575# CONFIG_R3964 is not set 583# CONFIG_R3964 is not set
576# CONFIG_APPLICOM is not set 584# CONFIG_APPLICOM is not set
577# CONFIG_RAW_DRIVER is not set 585# CONFIG_RAW_DRIVER is not set
@@ -582,13 +590,6 @@ CONFIG_I2C_BOARDINFO=y
582CONFIG_I2C_CHARDEV=y 590CONFIG_I2C_CHARDEV=y
583 591
584# 592#
585# I2C Algorithms
586#
587# CONFIG_I2C_ALGOBIT is not set
588# CONFIG_I2C_ALGOPCF is not set
589# CONFIG_I2C_ALGOPCA is not set
590
591#
592# I2C Hardware Bus support 593# I2C Hardware Bus support
593# 594#
594# CONFIG_I2C_ALI1535 is not set 595# CONFIG_I2C_ALI1535 is not set
@@ -614,6 +615,7 @@ CONFIG_I2C_MPC=y
614# CONFIG_I2C_VIA is not set 615# CONFIG_I2C_VIA is not set
615# CONFIG_I2C_VIAPRO is not set 616# CONFIG_I2C_VIAPRO is not set
616# CONFIG_I2C_VOODOO3 is not set 617# CONFIG_I2C_VOODOO3 is not set
618# CONFIG_I2C_PCA_PLATFORM is not set
617 619
618# 620#
619# Miscellaneous I2C Chip support 621# Miscellaneous I2C Chip support
@@ -623,19 +625,13 @@ CONFIG_I2C_MPC=y
623# CONFIG_SENSORS_PCF8574 is not set 625# CONFIG_SENSORS_PCF8574 is not set
624# CONFIG_PCF8575 is not set 626# CONFIG_PCF8575 is not set
625# CONFIG_SENSORS_PCF8591 is not set 627# CONFIG_SENSORS_PCF8591 is not set
626# CONFIG_TPS65010 is not set
627# CONFIG_SENSORS_MAX6875 is not set 628# CONFIG_SENSORS_MAX6875 is not set
628# CONFIG_SENSORS_TSL2550 is not set 629# CONFIG_SENSORS_TSL2550 is not set
629# CONFIG_I2C_DEBUG_CORE is not set 630# CONFIG_I2C_DEBUG_CORE is not set
630# CONFIG_I2C_DEBUG_ALGO is not set 631# CONFIG_I2C_DEBUG_ALGO is not set
631# CONFIG_I2C_DEBUG_BUS is not set 632# CONFIG_I2C_DEBUG_BUS is not set
632# CONFIG_I2C_DEBUG_CHIP is not set 633# CONFIG_I2C_DEBUG_CHIP is not set
633
634#
635# SPI support
636#
637# CONFIG_SPI is not set 634# CONFIG_SPI is not set
638# CONFIG_SPI_MASTER is not set
639# CONFIG_W1 is not set 635# CONFIG_W1 is not set
640# CONFIG_POWER_SUPPLY is not set 636# CONFIG_POWER_SUPPLY is not set
641CONFIG_HWMON=y 637CONFIG_HWMON=y
@@ -718,12 +714,22 @@ CONFIG_SSB_POSSIBLE=y
718# Multifunction device drivers 714# Multifunction device drivers
719# 715#
720# CONFIG_MFD_SM501 is not set 716# CONFIG_MFD_SM501 is not set
717# CONFIG_HTC_PASIC3 is not set
721 718
722# 719#
723# Multimedia devices 720# Multimedia devices
724# 721#
722
723#
724# Multimedia core support
725#
725# CONFIG_VIDEO_DEV is not set 726# CONFIG_VIDEO_DEV is not set
726# CONFIG_DVB_CORE is not set 727# CONFIG_DVB_CORE is not set
728# CONFIG_VIDEO_MEDIA is not set
729
730#
731# Multimedia drivers
732#
727CONFIG_DAB=y 733CONFIG_DAB=y
728 734
729# 735#
@@ -754,6 +760,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
754CONFIG_USB_ARCH_HAS_OHCI=y 760CONFIG_USB_ARCH_HAS_OHCI=y
755CONFIG_USB_ARCH_HAS_EHCI=y 761CONFIG_USB_ARCH_HAS_EHCI=y
756# CONFIG_USB is not set 762# CONFIG_USB is not set
763# CONFIG_USB_OTG_WHITELIST is not set
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set
757 765
758# 766#
759# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 767# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -762,6 +770,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
762# CONFIG_MMC is not set 770# CONFIG_MMC is not set
763# CONFIG_MEMSTICK is not set 771# CONFIG_MEMSTICK is not set
764# CONFIG_NEW_LEDS is not set 772# CONFIG_NEW_LEDS is not set
773# CONFIG_ACCESSIBILITY is not set
765# CONFIG_INFINIBAND is not set 774# CONFIG_INFINIBAND is not set
766# CONFIG_EDAC is not set 775# CONFIG_EDAC is not set
767CONFIG_RTC_LIB=y 776CONFIG_RTC_LIB=y
@@ -813,11 +822,8 @@ CONFIG_RTC_DRV_DS1374=y
813# 822#
814# on-CPU RTC drivers 823# on-CPU RTC drivers
815# 824#
825# CONFIG_RTC_DRV_PPC is not set
816# CONFIG_DMADEVICES is not set 826# CONFIG_DMADEVICES is not set
817
818#
819# Userspace I/O
820#
821# CONFIG_UIO is not set 827# CONFIG_UIO is not set
822 828
823# 829#
@@ -837,7 +843,6 @@ CONFIG_FS_MBCACHE=y
837# CONFIG_JFS_FS is not set 843# CONFIG_JFS_FS is not set
838# CONFIG_FS_POSIX_ACL is not set 844# CONFIG_FS_POSIX_ACL is not set
839# CONFIG_XFS_FS is not set 845# CONFIG_XFS_FS is not set
840# CONFIG_GFS2_FS is not set
841# CONFIG_OCFS2_FS is not set 846# CONFIG_OCFS2_FS is not set
842CONFIG_DNOTIFY=y 847CONFIG_DNOTIFY=y
843CONFIG_INOTIFY=y 848CONFIG_INOTIFY=y
@@ -895,7 +900,6 @@ CONFIG_NFS_FS=y
895CONFIG_NFS_V3=y 900CONFIG_NFS_V3=y
896# CONFIG_NFS_V3_ACL is not set 901# CONFIG_NFS_V3_ACL is not set
897CONFIG_NFS_V4=y 902CONFIG_NFS_V4=y
898# CONFIG_NFS_DIRECTIO is not set
899# CONFIG_NFSD is not set 903# CONFIG_NFSD is not set
900CONFIG_ROOT_NFS=y 904CONFIG_ROOT_NFS=y
901CONFIG_LOCKD=y 905CONFIG_LOCKD=y
@@ -936,6 +940,7 @@ CONFIG_PARTITION_ADVANCED=y
936# Library routines 940# Library routines
937# 941#
938CONFIG_BITREVERSE=y 942CONFIG_BITREVERSE=y
943# CONFIG_GENERIC_FIND_FIRST_BIT is not set
939# CONFIG_CRC_CCITT is not set 944# CONFIG_CRC_CCITT is not set
940# CONFIG_CRC16 is not set 945# CONFIG_CRC16 is not set
941# CONFIG_CRC_ITU_T is not set 946# CONFIG_CRC_ITU_T is not set
@@ -946,6 +951,7 @@ CONFIG_PLIST=y
946CONFIG_HAS_IOMEM=y 951CONFIG_HAS_IOMEM=y
947CONFIG_HAS_IOPORT=y 952CONFIG_HAS_IOPORT=y
948CONFIG_HAS_DMA=y 953CONFIG_HAS_DMA=y
954CONFIG_HAVE_LMB=y
949 955
950# 956#
951# Kernel hacking 957# Kernel hacking
@@ -953,6 +959,7 @@ CONFIG_HAS_DMA=y
953# CONFIG_PRINTK_TIME is not set 959# CONFIG_PRINTK_TIME is not set
954CONFIG_ENABLE_WARN_DEPRECATED=y 960CONFIG_ENABLE_WARN_DEPRECATED=y
955CONFIG_ENABLE_MUST_CHECK=y 961CONFIG_ENABLE_MUST_CHECK=y
962CONFIG_FRAME_WARN=1024
956# CONFIG_MAGIC_SYSRQ is not set 963# CONFIG_MAGIC_SYSRQ is not set
957# CONFIG_UNUSED_SYMBOLS is not set 964# CONFIG_UNUSED_SYMBOLS is not set
958# CONFIG_DEBUG_FS is not set 965# CONFIG_DEBUG_FS is not set
@@ -962,6 +969,7 @@ CONFIG_ENABLE_MUST_CHECK=y
962# CONFIG_SLUB_STATS is not set 969# CONFIG_SLUB_STATS is not set
963# CONFIG_DEBUG_BUGVERBOSE is not set 970# CONFIG_DEBUG_BUGVERBOSE is not set
964# CONFIG_SAMPLES is not set 971# CONFIG_SAMPLES is not set
972# CONFIG_IRQSTACKS is not set
965# CONFIG_PPC_EARLY_DEBUG is not set 973# CONFIG_PPC_EARLY_DEBUG is not set
966 974
967# 975#
@@ -971,51 +979,81 @@ CONFIG_ENABLE_MUST_CHECK=y
971# CONFIG_SECURITY is not set 979# CONFIG_SECURITY is not set
972# CONFIG_SECURITY_FILE_CAPABILITIES is not set 980# CONFIG_SECURITY_FILE_CAPABILITIES is not set
973CONFIG_CRYPTO=y 981CONFIG_CRYPTO=y
982
983#
984# Crypto core or helper
985#
974CONFIG_CRYPTO_ALGAPI=y 986CONFIG_CRYPTO_ALGAPI=y
975CONFIG_CRYPTO_BLKCIPHER=y 987CONFIG_CRYPTO_BLKCIPHER=y
976# CONFIG_CRYPTO_SEQIV is not set
977CONFIG_CRYPTO_MANAGER=y 988CONFIG_CRYPTO_MANAGER=y
989# CONFIG_CRYPTO_GF128MUL is not set
990# CONFIG_CRYPTO_NULL is not set
991# CONFIG_CRYPTO_CRYPTD is not set
992# CONFIG_CRYPTO_AUTHENC is not set
993# CONFIG_CRYPTO_TEST is not set
994
995#
996# Authenticated Encryption with Associated Data
997#
998# CONFIG_CRYPTO_CCM is not set
999# CONFIG_CRYPTO_GCM is not set
1000# CONFIG_CRYPTO_SEQIV is not set
1001
1002#
1003# Block modes
1004#
1005CONFIG_CRYPTO_CBC=y
1006# CONFIG_CRYPTO_CTR is not set
1007# CONFIG_CRYPTO_CTS is not set
1008CONFIG_CRYPTO_ECB=m
1009# CONFIG_CRYPTO_LRW is not set
1010CONFIG_CRYPTO_PCBC=m
1011# CONFIG_CRYPTO_XTS is not set
1012
1013#
1014# Hash modes
1015#
978# CONFIG_CRYPTO_HMAC is not set 1016# CONFIG_CRYPTO_HMAC is not set
979# CONFIG_CRYPTO_XCBC is not set 1017# CONFIG_CRYPTO_XCBC is not set
980# CONFIG_CRYPTO_NULL is not set 1018
1019#
1020# Digest
1021#
1022# CONFIG_CRYPTO_CRC32C is not set
981# CONFIG_CRYPTO_MD4 is not set 1023# CONFIG_CRYPTO_MD4 is not set
982CONFIG_CRYPTO_MD5=y 1024CONFIG_CRYPTO_MD5=y
1025# CONFIG_CRYPTO_MICHAEL_MIC is not set
983# CONFIG_CRYPTO_SHA1 is not set 1026# CONFIG_CRYPTO_SHA1 is not set
984# CONFIG_CRYPTO_SHA256 is not set 1027# CONFIG_CRYPTO_SHA256 is not set
985# CONFIG_CRYPTO_SHA512 is not set 1028# CONFIG_CRYPTO_SHA512 is not set
986# CONFIG_CRYPTO_WP512 is not set
987# CONFIG_CRYPTO_TGR192 is not set 1029# CONFIG_CRYPTO_TGR192 is not set
988# CONFIG_CRYPTO_GF128MUL is not set 1030# CONFIG_CRYPTO_WP512 is not set
989CONFIG_CRYPTO_ECB=m 1031
990CONFIG_CRYPTO_CBC=y 1032#
991CONFIG_CRYPTO_PCBC=m 1033# Ciphers
992# CONFIG_CRYPTO_LRW is not set 1034#
993# CONFIG_CRYPTO_XTS is not set
994# CONFIG_CRYPTO_CTR is not set
995# CONFIG_CRYPTO_GCM is not set
996# CONFIG_CRYPTO_CCM is not set
997# CONFIG_CRYPTO_CRYPTD is not set
998CONFIG_CRYPTO_DES=y
999# CONFIG_CRYPTO_FCRYPT is not set
1000# CONFIG_CRYPTO_BLOWFISH is not set
1001# CONFIG_CRYPTO_TWOFISH is not set
1002# CONFIG_CRYPTO_SERPENT is not set
1003# CONFIG_CRYPTO_AES is not set 1035# CONFIG_CRYPTO_AES is not set
1036# CONFIG_CRYPTO_ANUBIS is not set
1037# CONFIG_CRYPTO_ARC4 is not set
1038# CONFIG_CRYPTO_BLOWFISH is not set
1039# CONFIG_CRYPTO_CAMELLIA is not set
1004# CONFIG_CRYPTO_CAST5 is not set 1040# CONFIG_CRYPTO_CAST5 is not set
1005# CONFIG_CRYPTO_CAST6 is not set 1041# CONFIG_CRYPTO_CAST6 is not set
1006# CONFIG_CRYPTO_TEA is not set 1042CONFIG_CRYPTO_DES=y
1007# CONFIG_CRYPTO_ARC4 is not set 1043# CONFIG_CRYPTO_FCRYPT is not set
1008# CONFIG_CRYPTO_KHAZAD is not set 1044# CONFIG_CRYPTO_KHAZAD is not set
1009# CONFIG_CRYPTO_ANUBIS is not set
1010# CONFIG_CRYPTO_SEED is not set
1011# CONFIG_CRYPTO_SALSA20 is not set 1045# CONFIG_CRYPTO_SALSA20 is not set
1046# CONFIG_CRYPTO_SEED is not set
1047# CONFIG_CRYPTO_SERPENT is not set
1048# CONFIG_CRYPTO_TEA is not set
1049# CONFIG_CRYPTO_TWOFISH is not set
1050
1051#
1052# Compression
1053#
1012# CONFIG_CRYPTO_DEFLATE is not set 1054# CONFIG_CRYPTO_DEFLATE is not set
1013# CONFIG_CRYPTO_MICHAEL_MIC is not set
1014# CONFIG_CRYPTO_CRC32C is not set
1015# CONFIG_CRYPTO_CAMELLIA is not set
1016# CONFIG_CRYPTO_TEST is not set
1017# CONFIG_CRYPTO_AUTHENC is not set
1018# CONFIG_CRYPTO_LZO is not set 1055# CONFIG_CRYPTO_LZO is not set
1019CONFIG_CRYPTO_HW=y 1056CONFIG_CRYPTO_HW=y
1020# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1057# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1021# CONFIG_PPC_CLOCK is not set 1058# CONFIG_PPC_CLOCK is not set
1059# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index d50a96eddcdc..20fd9f58cf42 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:36:57 2008 4# Mon Jun 9 08:52:27 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -110,12 +113,14 @@ CONFIG_SLUB=y
110CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116# CONFIG_HAVE_DMA_ATTRS is not set
113CONFIG_PROC_PAGE_MONITOR=y 117CONFIG_PROC_PAGE_MONITOR=y
114CONFIG_SLABINFO=y 118CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 119CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 120# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=0 121CONFIG_BASE_SMALL=0
118CONFIG_MODULES=y 122CONFIG_MODULES=y
123# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 124CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 125# CONFIG_MODULE_FORCE_UNLOAD is not set
121# CONFIG_MODVERSIONS is not set 126# CONFIG_MODVERSIONS is not set
@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
218CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
219# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -237,6 +244,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
237CONFIG_PCI_LEGACY=y 244CONFIG_PCI_LEGACY=y
238# CONFIG_PCCARD is not set 245# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 246# CONFIG_HOTPLUG_PCI is not set
247# CONFIG_HAS_RAPIDIO is not set
240 248
241# 249#
242# Advanced setup 250# Advanced setup
@@ -246,11 +254,11 @@ CONFIG_PCI_LEGACY=y
246# 254#
247# Default settings for advanced configuration options are used 255# Default settings for advanced configuration options are used
248# 256#
249CONFIG_HIGHMEM_START=0xfe000000
250CONFIG_LOWMEM_SIZE=0x30000000 257CONFIG_LOWMEM_SIZE=0x30000000
258CONFIG_PAGE_OFFSET=0xc0000000
251CONFIG_KERNEL_START=0xc0000000 259CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000
252CONFIG_TASK_SIZE=0xc0000000 261CONFIG_TASK_SIZE=0xc0000000
253CONFIG_BOOT_LOAD=0x00800000
254 262
255# 263#
256# Networking 264# Networking
@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y
298CONFIG_DEFAULT_TCP_CONG="cubic" 306CONFIG_DEFAULT_TCP_CONG="cubic"
299# CONFIG_TCP_MD5SIG is not set 307# CONFIG_TCP_MD5SIG is not set
300# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set
303# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
304# CONFIG_NETFILTER is not set 310# CONFIG_NETFILTER is not set
305# CONFIG_IP_DCCP is not set 311# CONFIG_IP_DCCP is not set
@@ -353,6 +359,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
353# CONFIG_CONNECTOR is not set 359# CONFIG_CONNECTOR is not set
354# CONFIG_MTD is not set 360# CONFIG_MTD is not set
355CONFIG_OF_DEVICE=y 361CONFIG_OF_DEVICE=y
362CONFIG_OF_I2C=y
356# CONFIG_PARPORT is not set 363# CONFIG_PARPORT is not set
357CONFIG_BLK_DEV=y 364CONFIG_BLK_DEV=y
358# CONFIG_BLK_DEV_FD is not set 365# CONFIG_BLK_DEV_FD is not set
@@ -520,7 +527,6 @@ CONFIG_NETDEV_1000=y
520# CONFIG_SIS190 is not set 527# CONFIG_SIS190 is not set
521# CONFIG_SKGE is not set 528# CONFIG_SKGE is not set
522# CONFIG_SKY2 is not set 529# CONFIG_SKY2 is not set
523# CONFIG_SK98LIN is not set
524# CONFIG_VIA_VELOCITY is not set 530# CONFIG_VIA_VELOCITY is not set
525# CONFIG_TIGON3 is not set 531# CONFIG_TIGON3 is not set
526# CONFIG_BNX2 is not set 532# CONFIG_BNX2 is not set
@@ -544,6 +550,7 @@ CONFIG_NETDEV_10000=y
544# CONFIG_MLX4_CORE is not set 550# CONFIG_MLX4_CORE is not set
545# CONFIG_TEHUTI is not set 551# CONFIG_TEHUTI is not set
546# CONFIG_BNX2X is not set 552# CONFIG_BNX2X is not set
553# CONFIG_SFC is not set
547# CONFIG_TR is not set 554# CONFIG_TR is not set
548 555
549# 556#
@@ -551,6 +558,7 @@ CONFIG_NETDEV_10000=y
551# 558#
552# CONFIG_WLAN_PRE80211 is not set 559# CONFIG_WLAN_PRE80211 is not set
553# CONFIG_WLAN_80211 is not set 560# CONFIG_WLAN_80211 is not set
561# CONFIG_IWLWIFI_LEDS is not set
554# CONFIG_WAN is not set 562# CONFIG_WAN is not set
555# CONFIG_FDDI is not set 563# CONFIG_FDDI is not set
556# CONFIG_HIPPI is not set 564# CONFIG_HIPPI is not set
@@ -598,6 +606,7 @@ CONFIG_INPUT=y
598# Character devices 606# Character devices
599# 607#
600# CONFIG_VT is not set 608# CONFIG_VT is not set
609CONFIG_DEVKMEM=y
601# CONFIG_SERIAL_NONSTANDARD is not set 610# CONFIG_SERIAL_NONSTANDARD is not set
602# CONFIG_NOZOMI is not set 611# CONFIG_NOZOMI is not set
603 612
@@ -626,7 +635,6 @@ CONFIG_LEGACY_PTY_COUNT=256
626# CONFIG_IPMI_HANDLER is not set 635# CONFIG_IPMI_HANDLER is not set
627CONFIG_HW_RANDOM=y 636CONFIG_HW_RANDOM=y
628# CONFIG_NVRAM is not set 637# CONFIG_NVRAM is not set
629# CONFIG_GEN_RTC is not set
630# CONFIG_R3964 is not set 638# CONFIG_R3964 is not set
631# CONFIG_APPLICOM is not set 639# CONFIG_APPLICOM is not set
632# CONFIG_RAW_DRIVER is not set 640# CONFIG_RAW_DRIVER is not set
@@ -637,13 +645,6 @@ CONFIG_I2C_BOARDINFO=y
637CONFIG_I2C_CHARDEV=y 645CONFIG_I2C_CHARDEV=y
638 646
639# 647#
640# I2C Algorithms
641#
642# CONFIG_I2C_ALGOBIT is not set
643# CONFIG_I2C_ALGOPCF is not set
644# CONFIG_I2C_ALGOPCA is not set
645
646#
647# I2C Hardware Bus support 648# I2C Hardware Bus support
648# 649#
649# CONFIG_I2C_ALI1535 is not set 650# CONFIG_I2C_ALI1535 is not set
@@ -669,6 +670,7 @@ CONFIG_I2C_MPC=y
669# CONFIG_I2C_VIA is not set 670# CONFIG_I2C_VIA is not set
670# CONFIG_I2C_VIAPRO is not set 671# CONFIG_I2C_VIAPRO is not set
671# CONFIG_I2C_VOODOO3 is not set 672# CONFIG_I2C_VOODOO3 is not set
673# CONFIG_I2C_PCA_PLATFORM is not set
672 674
673# 675#
674# Miscellaneous I2C Chip support 676# Miscellaneous I2C Chip support
@@ -678,19 +680,13 @@ CONFIG_I2C_MPC=y
678# CONFIG_SENSORS_PCF8574 is not set 680# CONFIG_SENSORS_PCF8574 is not set
679# CONFIG_PCF8575 is not set 681# CONFIG_PCF8575 is not set
680# CONFIG_SENSORS_PCF8591 is not set 682# CONFIG_SENSORS_PCF8591 is not set
681# CONFIG_TPS65010 is not set
682# CONFIG_SENSORS_MAX6875 is not set 683# CONFIG_SENSORS_MAX6875 is not set
683# CONFIG_SENSORS_TSL2550 is not set 684# CONFIG_SENSORS_TSL2550 is not set
684# CONFIG_I2C_DEBUG_CORE is not set 685# CONFIG_I2C_DEBUG_CORE is not set
685# CONFIG_I2C_DEBUG_ALGO is not set 686# CONFIG_I2C_DEBUG_ALGO is not set
686# CONFIG_I2C_DEBUG_BUS is not set 687# CONFIG_I2C_DEBUG_BUS is not set
687# CONFIG_I2C_DEBUG_CHIP is not set 688# CONFIG_I2C_DEBUG_CHIP is not set
688
689#
690# SPI support
691#
692# CONFIG_SPI is not set 689# CONFIG_SPI is not set
693# CONFIG_SPI_MASTER is not set
694# CONFIG_W1 is not set 690# CONFIG_W1 is not set
695# CONFIG_POWER_SUPPLY is not set 691# CONFIG_POWER_SUPPLY is not set
696CONFIG_HWMON=y 692CONFIG_HWMON=y
@@ -773,12 +769,22 @@ CONFIG_SSB_POSSIBLE=y
773# Multifunction device drivers 769# Multifunction device drivers
774# 770#
775# CONFIG_MFD_SM501 is not set 771# CONFIG_MFD_SM501 is not set
772# CONFIG_HTC_PASIC3 is not set
776 773
777# 774#
778# Multimedia devices 775# Multimedia devices
779# 776#
777
778#
779# Multimedia core support
780#
780# CONFIG_VIDEO_DEV is not set 781# CONFIG_VIDEO_DEV is not set
781# CONFIG_DVB_CORE is not set 782# CONFIG_DVB_CORE is not set
783# CONFIG_VIDEO_MEDIA is not set
784
785#
786# Multimedia drivers
787#
782CONFIG_DAB=y 788CONFIG_DAB=y
783 789
784# 790#
@@ -809,6 +815,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
809CONFIG_USB_ARCH_HAS_OHCI=y 815CONFIG_USB_ARCH_HAS_OHCI=y
810CONFIG_USB_ARCH_HAS_EHCI=y 816CONFIG_USB_ARCH_HAS_EHCI=y
811# CONFIG_USB is not set 817# CONFIG_USB is not set
818# CONFIG_USB_OTG_WHITELIST is not set
819# CONFIG_USB_OTG_BLACKLIST_HUB is not set
812 820
813# 821#
814# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 822# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -817,6 +825,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
817# CONFIG_MMC is not set 825# CONFIG_MMC is not set
818# CONFIG_MEMSTICK is not set 826# CONFIG_MEMSTICK is not set
819# CONFIG_NEW_LEDS is not set 827# CONFIG_NEW_LEDS is not set
828# CONFIG_ACCESSIBILITY is not set
820# CONFIG_INFINIBAND is not set 829# CONFIG_INFINIBAND is not set
821# CONFIG_EDAC is not set 830# CONFIG_EDAC is not set
822CONFIG_RTC_LIB=y 831CONFIG_RTC_LIB=y
@@ -868,11 +877,8 @@ CONFIG_RTC_DRV_DS1374=y
868# 877#
869# on-CPU RTC drivers 878# on-CPU RTC drivers
870# 879#
880# CONFIG_RTC_DRV_PPC is not set
871# CONFIG_DMADEVICES is not set 881# CONFIG_DMADEVICES is not set
872
873#
874# Userspace I/O
875#
876# CONFIG_UIO is not set 882# CONFIG_UIO is not set
877 883
878# 884#
@@ -892,7 +898,6 @@ CONFIG_FS_MBCACHE=y
892# CONFIG_JFS_FS is not set 898# CONFIG_JFS_FS is not set
893# CONFIG_FS_POSIX_ACL is not set 899# CONFIG_FS_POSIX_ACL is not set
894# CONFIG_XFS_FS is not set 900# CONFIG_XFS_FS is not set
895# CONFIG_GFS2_FS is not set
896# CONFIG_OCFS2_FS is not set 901# CONFIG_OCFS2_FS is not set
897CONFIG_DNOTIFY=y 902CONFIG_DNOTIFY=y
898CONFIG_INOTIFY=y 903CONFIG_INOTIFY=y
@@ -950,7 +955,6 @@ CONFIG_NFS_FS=y
950CONFIG_NFS_V3=y 955CONFIG_NFS_V3=y
951# CONFIG_NFS_V3_ACL is not set 956# CONFIG_NFS_V3_ACL is not set
952CONFIG_NFS_V4=y 957CONFIG_NFS_V4=y
953# CONFIG_NFS_DIRECTIO is not set
954# CONFIG_NFSD is not set 958# CONFIG_NFSD is not set
955CONFIG_ROOT_NFS=y 959CONFIG_ROOT_NFS=y
956CONFIG_LOCKD=y 960CONFIG_LOCKD=y
@@ -993,6 +997,7 @@ CONFIG_UCC=y
993# Library routines 997# Library routines
994# 998#
995CONFIG_BITREVERSE=y 999CONFIG_BITREVERSE=y
1000# CONFIG_GENERIC_FIND_FIRST_BIT is not set
996# CONFIG_CRC_CCITT is not set 1001# CONFIG_CRC_CCITT is not set
997# CONFIG_CRC16 is not set 1002# CONFIG_CRC16 is not set
998# CONFIG_CRC_ITU_T is not set 1003# CONFIG_CRC_ITU_T is not set
@@ -1003,6 +1008,7 @@ CONFIG_PLIST=y
1003CONFIG_HAS_IOMEM=y 1008CONFIG_HAS_IOMEM=y
1004CONFIG_HAS_IOPORT=y 1009CONFIG_HAS_IOPORT=y
1005CONFIG_HAS_DMA=y 1010CONFIG_HAS_DMA=y
1011CONFIG_HAVE_LMB=y
1006 1012
1007# 1013#
1008# Kernel hacking 1014# Kernel hacking
@@ -1010,6 +1016,7 @@ CONFIG_HAS_DMA=y
1010# CONFIG_PRINTK_TIME is not set 1016# CONFIG_PRINTK_TIME is not set
1011CONFIG_ENABLE_WARN_DEPRECATED=y 1017CONFIG_ENABLE_WARN_DEPRECATED=y
1012CONFIG_ENABLE_MUST_CHECK=y 1018CONFIG_ENABLE_MUST_CHECK=y
1019CONFIG_FRAME_WARN=1024
1013# CONFIG_MAGIC_SYSRQ is not set 1020# CONFIG_MAGIC_SYSRQ is not set
1014# CONFIG_UNUSED_SYMBOLS is not set 1021# CONFIG_UNUSED_SYMBOLS is not set
1015# CONFIG_DEBUG_FS is not set 1022# CONFIG_DEBUG_FS is not set
@@ -1019,6 +1026,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1019# CONFIG_SLUB_STATS is not set 1026# CONFIG_SLUB_STATS is not set
1020# CONFIG_DEBUG_BUGVERBOSE is not set 1027# CONFIG_DEBUG_BUGVERBOSE is not set
1021# CONFIG_SAMPLES is not set 1028# CONFIG_SAMPLES is not set
1029# CONFIG_IRQSTACKS is not set
1022# CONFIG_PPC_EARLY_DEBUG is not set 1030# CONFIG_PPC_EARLY_DEBUG is not set
1023 1031
1024# 1032#
@@ -1028,52 +1036,82 @@ CONFIG_ENABLE_MUST_CHECK=y
1028# CONFIG_SECURITY is not set 1036# CONFIG_SECURITY is not set
1029# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1037# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1030CONFIG_CRYPTO=y 1038CONFIG_CRYPTO=y
1039
1040#
1041# Crypto core or helper
1042#
1031CONFIG_CRYPTO_ALGAPI=y 1043CONFIG_CRYPTO_ALGAPI=y
1032CONFIG_CRYPTO_BLKCIPHER=y 1044CONFIG_CRYPTO_BLKCIPHER=y
1033# CONFIG_CRYPTO_SEQIV is not set
1034CONFIG_CRYPTO_MANAGER=y 1045CONFIG_CRYPTO_MANAGER=y
1046# CONFIG_CRYPTO_GF128MUL is not set
1047# CONFIG_CRYPTO_NULL is not set
1048# CONFIG_CRYPTO_CRYPTD is not set
1049# CONFIG_CRYPTO_AUTHENC is not set
1050# CONFIG_CRYPTO_TEST is not set
1051
1052#
1053# Authenticated Encryption with Associated Data
1054#
1055# CONFIG_CRYPTO_CCM is not set
1056# CONFIG_CRYPTO_GCM is not set
1057# CONFIG_CRYPTO_SEQIV is not set
1058
1059#
1060# Block modes
1061#
1062CONFIG_CRYPTO_CBC=y
1063# CONFIG_CRYPTO_CTR is not set
1064# CONFIG_CRYPTO_CTS is not set
1065CONFIG_CRYPTO_ECB=m
1066# CONFIG_CRYPTO_LRW is not set
1067CONFIG_CRYPTO_PCBC=m
1068# CONFIG_CRYPTO_XTS is not set
1069
1070#
1071# Hash modes
1072#
1035# CONFIG_CRYPTO_HMAC is not set 1073# CONFIG_CRYPTO_HMAC is not set
1036# CONFIG_CRYPTO_XCBC is not set 1074# CONFIG_CRYPTO_XCBC is not set
1037# CONFIG_CRYPTO_NULL is not set 1075
1076#
1077# Digest
1078#
1079# CONFIG_CRYPTO_CRC32C is not set
1038# CONFIG_CRYPTO_MD4 is not set 1080# CONFIG_CRYPTO_MD4 is not set
1039CONFIG_CRYPTO_MD5=y 1081CONFIG_CRYPTO_MD5=y
1082# CONFIG_CRYPTO_MICHAEL_MIC is not set
1040# CONFIG_CRYPTO_SHA1 is not set 1083# CONFIG_CRYPTO_SHA1 is not set
1041# CONFIG_CRYPTO_SHA256 is not set 1084# CONFIG_CRYPTO_SHA256 is not set
1042# CONFIG_CRYPTO_SHA512 is not set 1085# CONFIG_CRYPTO_SHA512 is not set
1043# CONFIG_CRYPTO_WP512 is not set
1044# CONFIG_CRYPTO_TGR192 is not set 1086# CONFIG_CRYPTO_TGR192 is not set
1045# CONFIG_CRYPTO_GF128MUL is not set 1087# CONFIG_CRYPTO_WP512 is not set
1046CONFIG_CRYPTO_ECB=m 1088
1047CONFIG_CRYPTO_CBC=y 1089#
1048CONFIG_CRYPTO_PCBC=m 1090# Ciphers
1049# CONFIG_CRYPTO_LRW is not set 1091#
1050# CONFIG_CRYPTO_XTS is not set
1051# CONFIG_CRYPTO_CTR is not set
1052# CONFIG_CRYPTO_GCM is not set
1053# CONFIG_CRYPTO_CCM is not set
1054# CONFIG_CRYPTO_CRYPTD is not set
1055CONFIG_CRYPTO_DES=y
1056# CONFIG_CRYPTO_FCRYPT is not set
1057# CONFIG_CRYPTO_BLOWFISH is not set
1058# CONFIG_CRYPTO_TWOFISH is not set
1059# CONFIG_CRYPTO_SERPENT is not set
1060# CONFIG_CRYPTO_AES is not set 1092# CONFIG_CRYPTO_AES is not set
1093# CONFIG_CRYPTO_ANUBIS is not set
1094# CONFIG_CRYPTO_ARC4 is not set
1095# CONFIG_CRYPTO_BLOWFISH is not set
1096# CONFIG_CRYPTO_CAMELLIA is not set
1061# CONFIG_CRYPTO_CAST5 is not set 1097# CONFIG_CRYPTO_CAST5 is not set
1062# CONFIG_CRYPTO_CAST6 is not set 1098# CONFIG_CRYPTO_CAST6 is not set
1063# CONFIG_CRYPTO_TEA is not set 1099CONFIG_CRYPTO_DES=y
1064# CONFIG_CRYPTO_ARC4 is not set 1100# CONFIG_CRYPTO_FCRYPT is not set
1065# CONFIG_CRYPTO_KHAZAD is not set 1101# CONFIG_CRYPTO_KHAZAD is not set
1066# CONFIG_CRYPTO_ANUBIS is not set
1067# CONFIG_CRYPTO_SEED is not set
1068# CONFIG_CRYPTO_SALSA20 is not set 1102# CONFIG_CRYPTO_SALSA20 is not set
1103# CONFIG_CRYPTO_SEED is not set
1104# CONFIG_CRYPTO_SERPENT is not set
1105# CONFIG_CRYPTO_TEA is not set
1106# CONFIG_CRYPTO_TWOFISH is not set
1107
1108#
1109# Compression
1110#
1069# CONFIG_CRYPTO_DEFLATE is not set 1111# CONFIG_CRYPTO_DEFLATE is not set
1070# CONFIG_CRYPTO_MICHAEL_MIC is not set
1071# CONFIG_CRYPTO_CRC32C is not set
1072# CONFIG_CRYPTO_CAMELLIA is not set
1073# CONFIG_CRYPTO_TEST is not set
1074# CONFIG_CRYPTO_AUTHENC is not set
1075# CONFIG_CRYPTO_LZO is not set 1112# CONFIG_CRYPTO_LZO is not set
1076CONFIG_CRYPTO_HW=y 1113CONFIG_CRYPTO_HW=y
1077# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1114# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1078# CONFIG_PPC_CLOCK is not set 1115# CONFIG_PPC_CLOCK is not set
1079CONFIG_PPC_LIB_RHEAP=y 1116CONFIG_PPC_LIB_RHEAP=y
1117# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index f377cde785b0..0f94d9f56beb 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:23 2008 4# Mon Jun 9 08:52:28 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
91CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
@@ -111,12 +114,14 @@ CONFIG_HAVE_OPROFILE=y
111# CONFIG_KPROBES is not set 114# CONFIG_KPROBES is not set
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
117# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
119CONFIG_MODULES=y 123CONFIG_MODULES=y
124# CONFIG_MODULE_FORCE_LOAD is not set
120CONFIG_MODULE_UNLOAD=y 125CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 126# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
@@ -211,11 +216,13 @@ CONFIG_FLATMEM=y
211CONFIG_FLAT_NODE_MEM_MAP=y 216CONFIG_FLAT_NODE_MEM_MAP=y
212# CONFIG_SPARSEMEM_STATIC is not set 217# CONFIG_SPARSEMEM_STATIC is not set
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y
214CONFIG_SPLIT_PTLOCK_CPUS=4 220CONFIG_SPLIT_PTLOCK_CPUS=4
215# CONFIG_RESOURCES_64BIT is not set 221# CONFIG_RESOURCES_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=1 222CONFIG_ZONE_DMA_FLAG=1
217CONFIG_BOUNCE=y 223CONFIG_BOUNCE=y
218CONFIG_VIRT_TO_BUS=y 224CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11
219CONFIG_PROC_DEVICETREE=y 226CONFIG_PROC_DEVICETREE=y
220# CONFIG_CMDLINE_BOOL is not set 227# CONFIG_CMDLINE_BOOL is not set
221# CONFIG_PM is not set 228# CONFIG_PM is not set
@@ -234,6 +241,7 @@ CONFIG_FSL_SOC=y
234# CONFIG_PCI_SYSCALL is not set 241# CONFIG_PCI_SYSCALL is not set
235# CONFIG_ARCH_SUPPORTS_MSI is not set 242# CONFIG_ARCH_SUPPORTS_MSI is not set
236# CONFIG_PCCARD is not set 243# CONFIG_PCCARD is not set
244# CONFIG_HAS_RAPIDIO is not set
237 245
238# 246#
239# Advanced setup 247# Advanced setup
@@ -243,11 +251,11 @@ CONFIG_FSL_SOC=y
243# 251#
244# Default settings for advanced configuration options are used 252# Default settings for advanced configuration options are used
245# 253#
246CONFIG_HIGHMEM_START=0xfe000000
247CONFIG_LOWMEM_SIZE=0x30000000 254CONFIG_LOWMEM_SIZE=0x30000000
255CONFIG_PAGE_OFFSET=0xc0000000
248CONFIG_KERNEL_START=0xc0000000 256CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000
249CONFIG_TASK_SIZE=0xc0000000 258CONFIG_TASK_SIZE=0xc0000000
250CONFIG_BOOT_LOAD=0x00800000
251 259
252# 260#
253# Networking 261# Networking
@@ -295,8 +303,6 @@ CONFIG_TCP_CONG_CUBIC=y
295CONFIG_DEFAULT_TCP_CONG="cubic" 303CONFIG_DEFAULT_TCP_CONG="cubic"
296# CONFIG_TCP_MD5SIG is not set 304# CONFIG_TCP_MD5SIG is not set
297# CONFIG_IPV6 is not set 305# CONFIG_IPV6 is not set
298# CONFIG_INET6_XFRM_TUNNEL is not set
299# CONFIG_INET6_TUNNEL is not set
300# CONFIG_NETWORK_SECMARK is not set 306# CONFIG_NETWORK_SECMARK is not set
301# CONFIG_NETFILTER is not set 307# CONFIG_NETFILTER is not set
302# CONFIG_IP_DCCP is not set 308# CONFIG_IP_DCCP is not set
@@ -350,6 +356,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
350# CONFIG_CONNECTOR is not set 356# CONFIG_CONNECTOR is not set
351# CONFIG_MTD is not set 357# CONFIG_MTD is not set
352CONFIG_OF_DEVICE=y 358CONFIG_OF_DEVICE=y
359CONFIG_OF_I2C=y
353# CONFIG_PARPORT is not set 360# CONFIG_PARPORT is not set
354CONFIG_BLK_DEV=y 361CONFIG_BLK_DEV=y
355# CONFIG_BLK_DEV_FD is not set 362# CONFIG_BLK_DEV_FD is not set
@@ -411,8 +418,10 @@ CONFIG_SCSI_LOWLEVEL=y
411# CONFIG_SCSI_DEBUG is not set 418# CONFIG_SCSI_DEBUG is not set
412CONFIG_ATA=y 419CONFIG_ATA=y
413# CONFIG_ATA_NONSTANDARD is not set 420# CONFIG_ATA_NONSTANDARD is not set
414# CONFIG_SATA_MV is not set 421CONFIG_SATA_PMP=y
415CONFIG_SATA_FSL=y 422CONFIG_SATA_FSL=y
423CONFIG_ATA_SFF=y
424# CONFIG_SATA_MV is not set
416# CONFIG_PATA_PLATFORM is not set 425# CONFIG_PATA_PLATFORM is not set
417# CONFIG_MD is not set 426# CONFIG_MD is not set
418# CONFIG_MACINTOSH_DRIVERS is not set 427# CONFIG_MACINTOSH_DRIVERS is not set
@@ -459,6 +468,7 @@ CONFIG_NETDEV_10000=y
459# 468#
460# CONFIG_WLAN_PRE80211 is not set 469# CONFIG_WLAN_PRE80211 is not set
461# CONFIG_WLAN_80211 is not set 470# CONFIG_WLAN_80211 is not set
471# CONFIG_IWLWIFI_LEDS is not set
462# CONFIG_WAN is not set 472# CONFIG_WAN is not set
463# CONFIG_PPP is not set 473# CONFIG_PPP is not set
464# CONFIG_SLIP is not set 474# CONFIG_SLIP is not set
@@ -503,6 +513,7 @@ CONFIG_INPUT=y
503# Character devices 513# Character devices
504# 514#
505# CONFIG_VT is not set 515# CONFIG_VT is not set
516CONFIG_DEVKMEM=y
506# CONFIG_SERIAL_NONSTANDARD is not set 517# CONFIG_SERIAL_NONSTANDARD is not set
507 518
508# 519#
@@ -537,13 +548,6 @@ CONFIG_I2C_BOARDINFO=y
537CONFIG_I2C_CHARDEV=y 548CONFIG_I2C_CHARDEV=y
538 549
539# 550#
540# I2C Algorithms
541#
542# CONFIG_I2C_ALGOBIT is not set
543# CONFIG_I2C_ALGOPCF is not set
544# CONFIG_I2C_ALGOPCA is not set
545
546#
547# I2C Hardware Bus support 551# I2C Hardware Bus support
548# 552#
549CONFIG_I2C_MPC=y 553CONFIG_I2C_MPC=y
@@ -552,6 +556,7 @@ CONFIG_I2C_MPC=y
552# CONFIG_I2C_SIMTEC is not set 556# CONFIG_I2C_SIMTEC is not set
553# CONFIG_I2C_TAOS_EVM is not set 557# CONFIG_I2C_TAOS_EVM is not set
554# CONFIG_I2C_STUB is not set 558# CONFIG_I2C_STUB is not set
559# CONFIG_I2C_PCA_PLATFORM is not set
555 560
556# 561#
557# Miscellaneous I2C Chip support 562# Miscellaneous I2C Chip support
@@ -561,19 +566,13 @@ CONFIG_I2C_MPC=y
561# CONFIG_SENSORS_PCF8574 is not set 566# CONFIG_SENSORS_PCF8574 is not set
562# CONFIG_PCF8575 is not set 567# CONFIG_PCF8575 is not set
563# CONFIG_SENSORS_PCF8591 is not set 568# CONFIG_SENSORS_PCF8591 is not set
564# CONFIG_TPS65010 is not set
565# CONFIG_SENSORS_MAX6875 is not set 569# CONFIG_SENSORS_MAX6875 is not set
566# CONFIG_SENSORS_TSL2550 is not set 570# CONFIG_SENSORS_TSL2550 is not set
567# CONFIG_I2C_DEBUG_CORE is not set 571# CONFIG_I2C_DEBUG_CORE is not set
568# CONFIG_I2C_DEBUG_ALGO is not set 572# CONFIG_I2C_DEBUG_ALGO is not set
569# CONFIG_I2C_DEBUG_BUS is not set 573# CONFIG_I2C_DEBUG_BUS is not set
570# CONFIG_I2C_DEBUG_CHIP is not set 574# CONFIG_I2C_DEBUG_CHIP is not set
571
572#
573# SPI support
574#
575# CONFIG_SPI is not set 575# CONFIG_SPI is not set
576# CONFIG_SPI_MASTER is not set
577# CONFIG_W1 is not set 576# CONFIG_W1 is not set
578# CONFIG_POWER_SUPPLY is not set 577# CONFIG_POWER_SUPPLY is not set
579CONFIG_HWMON=y 578CONFIG_HWMON=y
@@ -646,12 +645,22 @@ CONFIG_SSB_POSSIBLE=y
646# Multifunction device drivers 645# Multifunction device drivers
647# 646#
648# CONFIG_MFD_SM501 is not set 647# CONFIG_MFD_SM501 is not set
648# CONFIG_HTC_PASIC3 is not set
649 649
650# 650#
651# Multimedia devices 651# Multimedia devices
652# 652#
653
654#
655# Multimedia core support
656#
653# CONFIG_VIDEO_DEV is not set 657# CONFIG_VIDEO_DEV is not set
654# CONFIG_DVB_CORE is not set 658# CONFIG_DVB_CORE is not set
659# CONFIG_VIDEO_MEDIA is not set
660
661#
662# Multimedia drivers
663#
655CONFIG_DAB=y 664CONFIG_DAB=y
656 665
657# 666#
@@ -680,6 +689,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
680# CONFIG_USB_ARCH_HAS_OHCI is not set 689# CONFIG_USB_ARCH_HAS_OHCI is not set
681CONFIG_USB_ARCH_HAS_EHCI=y 690CONFIG_USB_ARCH_HAS_EHCI=y
682# CONFIG_USB is not set 691# CONFIG_USB is not set
692# CONFIG_USB_OTG_WHITELIST is not set
693# CONFIG_USB_OTG_BLACKLIST_HUB is not set
683 694
684# 695#
685# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -688,13 +699,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
688# CONFIG_MMC is not set 699# CONFIG_MMC is not set
689# CONFIG_MEMSTICK is not set 700# CONFIG_MEMSTICK is not set
690# CONFIG_NEW_LEDS is not set 701# CONFIG_NEW_LEDS is not set
702# CONFIG_ACCESSIBILITY is not set
691# CONFIG_EDAC is not set 703# CONFIG_EDAC is not set
692# CONFIG_RTC_CLASS is not set 704# CONFIG_RTC_CLASS is not set
693# CONFIG_DMADEVICES is not set 705# CONFIG_DMADEVICES is not set
694
695#
696# Userspace I/O
697#
698# CONFIG_UIO is not set 706# CONFIG_UIO is not set
699 707
700# 708#
@@ -714,7 +722,6 @@ CONFIG_FS_MBCACHE=y
714# CONFIG_JFS_FS is not set 722# CONFIG_JFS_FS is not set
715# CONFIG_FS_POSIX_ACL is not set 723# CONFIG_FS_POSIX_ACL is not set
716# CONFIG_XFS_FS is not set 724# CONFIG_XFS_FS is not set
717# CONFIG_GFS2_FS is not set
718# CONFIG_OCFS2_FS is not set 725# CONFIG_OCFS2_FS is not set
719CONFIG_DNOTIFY=y 726CONFIG_DNOTIFY=y
720CONFIG_INOTIFY=y 727CONFIG_INOTIFY=y
@@ -772,7 +779,6 @@ CONFIG_NFS_FS=y
772CONFIG_NFS_V3=y 779CONFIG_NFS_V3=y
773# CONFIG_NFS_V3_ACL is not set 780# CONFIG_NFS_V3_ACL is not set
774CONFIG_NFS_V4=y 781CONFIG_NFS_V4=y
775# CONFIG_NFS_DIRECTIO is not set
776# CONFIG_NFSD is not set 782# CONFIG_NFSD is not set
777CONFIG_ROOT_NFS=y 783CONFIG_ROOT_NFS=y
778CONFIG_LOCKD=y 784CONFIG_LOCKD=y
@@ -817,6 +823,7 @@ CONFIG_MSDOS_PARTITION=y
817# Library routines 823# Library routines
818# 824#
819CONFIG_BITREVERSE=y 825CONFIG_BITREVERSE=y
826# CONFIG_GENERIC_FIND_FIRST_BIT is not set
820# CONFIG_CRC_CCITT is not set 827# CONFIG_CRC_CCITT is not set
821# CONFIG_CRC16 is not set 828# CONFIG_CRC16 is not set
822# CONFIG_CRC_ITU_T is not set 829# CONFIG_CRC_ITU_T is not set
@@ -827,6 +834,7 @@ CONFIG_PLIST=y
827CONFIG_HAS_IOMEM=y 834CONFIG_HAS_IOMEM=y
828CONFIG_HAS_IOPORT=y 835CONFIG_HAS_IOPORT=y
829CONFIG_HAS_DMA=y 836CONFIG_HAS_DMA=y
837CONFIG_HAVE_LMB=y
830 838
831# 839#
832# Kernel hacking 840# Kernel hacking
@@ -834,6 +842,7 @@ CONFIG_HAS_DMA=y
834# CONFIG_PRINTK_TIME is not set 842# CONFIG_PRINTK_TIME is not set
835CONFIG_ENABLE_WARN_DEPRECATED=y 843CONFIG_ENABLE_WARN_DEPRECATED=y
836CONFIG_ENABLE_MUST_CHECK=y 844CONFIG_ENABLE_MUST_CHECK=y
845CONFIG_FRAME_WARN=1024
837# CONFIG_MAGIC_SYSRQ is not set 846# CONFIG_MAGIC_SYSRQ is not set
838# CONFIG_UNUSED_SYMBOLS is not set 847# CONFIG_UNUSED_SYMBOLS is not set
839# CONFIG_DEBUG_FS is not set 848# CONFIG_DEBUG_FS is not set
@@ -841,6 +850,7 @@ CONFIG_ENABLE_MUST_CHECK=y
841# CONFIG_DEBUG_KERNEL is not set 850# CONFIG_DEBUG_KERNEL is not set
842# CONFIG_DEBUG_BUGVERBOSE is not set 851# CONFIG_DEBUG_BUGVERBOSE is not set
843# CONFIG_SAMPLES is not set 852# CONFIG_SAMPLES is not set
853# CONFIG_IRQSTACKS is not set
844# CONFIG_PPC_EARLY_DEBUG is not set 854# CONFIG_PPC_EARLY_DEBUG is not set
845 855
846# 856#
@@ -850,50 +860,80 @@ CONFIG_ENABLE_MUST_CHECK=y
850# CONFIG_SECURITY is not set 860# CONFIG_SECURITY is not set
851# CONFIG_SECURITY_FILE_CAPABILITIES is not set 861# CONFIG_SECURITY_FILE_CAPABILITIES is not set
852CONFIG_CRYPTO=y 862CONFIG_CRYPTO=y
863
864#
865# Crypto core or helper
866#
853CONFIG_CRYPTO_ALGAPI=y 867CONFIG_CRYPTO_ALGAPI=y
854CONFIG_CRYPTO_BLKCIPHER=y 868CONFIG_CRYPTO_BLKCIPHER=y
855# CONFIG_CRYPTO_SEQIV is not set
856CONFIG_CRYPTO_MANAGER=y 869CONFIG_CRYPTO_MANAGER=y
870# CONFIG_CRYPTO_GF128MUL is not set
871# CONFIG_CRYPTO_NULL is not set
872# CONFIG_CRYPTO_CRYPTD is not set
873# CONFIG_CRYPTO_AUTHENC is not set
874# CONFIG_CRYPTO_TEST is not set
875
876#
877# Authenticated Encryption with Associated Data
878#
879# CONFIG_CRYPTO_CCM is not set
880# CONFIG_CRYPTO_GCM is not set
881# CONFIG_CRYPTO_SEQIV is not set
882
883#
884# Block modes
885#
886CONFIG_CRYPTO_CBC=y
887# CONFIG_CRYPTO_CTR is not set
888# CONFIG_CRYPTO_CTS is not set
889CONFIG_CRYPTO_ECB=m
890# CONFIG_CRYPTO_LRW is not set
891CONFIG_CRYPTO_PCBC=m
892# CONFIG_CRYPTO_XTS is not set
893
894#
895# Hash modes
896#
857# CONFIG_CRYPTO_HMAC is not set 897# CONFIG_CRYPTO_HMAC is not set
858# CONFIG_CRYPTO_XCBC is not set 898# CONFIG_CRYPTO_XCBC is not set
859# CONFIG_CRYPTO_NULL is not set 899
900#
901# Digest
902#
903# CONFIG_CRYPTO_CRC32C is not set
860# CONFIG_CRYPTO_MD4 is not set 904# CONFIG_CRYPTO_MD4 is not set
861CONFIG_CRYPTO_MD5=y 905CONFIG_CRYPTO_MD5=y
906# CONFIG_CRYPTO_MICHAEL_MIC is not set
862# CONFIG_CRYPTO_SHA1 is not set 907# CONFIG_CRYPTO_SHA1 is not set
863# CONFIG_CRYPTO_SHA256 is not set 908# CONFIG_CRYPTO_SHA256 is not set
864# CONFIG_CRYPTO_SHA512 is not set 909# CONFIG_CRYPTO_SHA512 is not set
865# CONFIG_CRYPTO_WP512 is not set
866# CONFIG_CRYPTO_TGR192 is not set 910# CONFIG_CRYPTO_TGR192 is not set
867# CONFIG_CRYPTO_GF128MUL is not set 911# CONFIG_CRYPTO_WP512 is not set
868CONFIG_CRYPTO_ECB=m 912
869CONFIG_CRYPTO_CBC=y 913#
870CONFIG_CRYPTO_PCBC=m 914# Ciphers
871# CONFIG_CRYPTO_LRW is not set 915#
872# CONFIG_CRYPTO_XTS is not set
873# CONFIG_CRYPTO_CTR is not set
874# CONFIG_CRYPTO_GCM is not set
875# CONFIG_CRYPTO_CCM is not set
876# CONFIG_CRYPTO_CRYPTD is not set
877CONFIG_CRYPTO_DES=y
878# CONFIG_CRYPTO_FCRYPT is not set
879# CONFIG_CRYPTO_BLOWFISH is not set
880# CONFIG_CRYPTO_TWOFISH is not set
881# CONFIG_CRYPTO_SERPENT is not set
882# CONFIG_CRYPTO_AES is not set 916# CONFIG_CRYPTO_AES is not set
917# CONFIG_CRYPTO_ANUBIS is not set
918# CONFIG_CRYPTO_ARC4 is not set
919# CONFIG_CRYPTO_BLOWFISH is not set
920# CONFIG_CRYPTO_CAMELLIA is not set
883# CONFIG_CRYPTO_CAST5 is not set 921# CONFIG_CRYPTO_CAST5 is not set
884# CONFIG_CRYPTO_CAST6 is not set 922# CONFIG_CRYPTO_CAST6 is not set
885# CONFIG_CRYPTO_TEA is not set 923CONFIG_CRYPTO_DES=y
886# CONFIG_CRYPTO_ARC4 is not set 924# CONFIG_CRYPTO_FCRYPT is not set
887# CONFIG_CRYPTO_KHAZAD is not set 925# CONFIG_CRYPTO_KHAZAD is not set
888# CONFIG_CRYPTO_ANUBIS is not set
889# CONFIG_CRYPTO_SEED is not set
890# CONFIG_CRYPTO_SALSA20 is not set 926# CONFIG_CRYPTO_SALSA20 is not set
927# CONFIG_CRYPTO_SEED is not set
928# CONFIG_CRYPTO_SERPENT is not set
929# CONFIG_CRYPTO_TEA is not set
930# CONFIG_CRYPTO_TWOFISH is not set
931
932#
933# Compression
934#
891# CONFIG_CRYPTO_DEFLATE is not set 935# CONFIG_CRYPTO_DEFLATE is not set
892# CONFIG_CRYPTO_MICHAEL_MIC is not set
893# CONFIG_CRYPTO_CRC32C is not set
894# CONFIG_CRYPTO_CAMELLIA is not set
895# CONFIG_CRYPTO_TEST is not set
896# CONFIG_CRYPTO_AUTHENC is not set
897# CONFIG_CRYPTO_LZO is not set 936# CONFIG_CRYPTO_LZO is not set
898CONFIG_CRYPTO_HW=y 937CONFIG_CRYPTO_HW=y
899# CONFIG_PPC_CLOCK is not set 938# CONFIG_PPC_CLOCK is not set
939# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index a6331769d88f..0d448556f53a 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:24 2008 4# Tue Jun 10 09:17:12 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
91CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
@@ -111,12 +114,14 @@ CONFIG_HAVE_OPROFILE=y
111# CONFIG_KPROBES is not set 114# CONFIG_KPROBES is not set
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
117# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
119CONFIG_MODULES=y 123CONFIG_MODULES=y
124# CONFIG_MODULE_FORCE_LOAD is not set
120CONFIG_MODULE_UNLOAD=y 125CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 126# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
@@ -211,11 +216,13 @@ CONFIG_FLATMEM=y
211CONFIG_FLAT_NODE_MEM_MAP=y 216CONFIG_FLAT_NODE_MEM_MAP=y
212# CONFIG_SPARSEMEM_STATIC is not set 217# CONFIG_SPARSEMEM_STATIC is not set
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y
214CONFIG_SPLIT_PTLOCK_CPUS=4 220CONFIG_SPLIT_PTLOCK_CPUS=4
215# CONFIG_RESOURCES_64BIT is not set 221# CONFIG_RESOURCES_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=1 222CONFIG_ZONE_DMA_FLAG=1
217CONFIG_BOUNCE=y 223CONFIG_BOUNCE=y
218CONFIG_VIRT_TO_BUS=y 224CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11
219CONFIG_PROC_DEVICETREE=y 226CONFIG_PROC_DEVICETREE=y
220# CONFIG_CMDLINE_BOOL is not set 227# CONFIG_CMDLINE_BOOL is not set
221# CONFIG_PM is not set 228# CONFIG_PM is not set
@@ -234,6 +241,7 @@ CONFIG_FSL_SOC=y
234# CONFIG_PCI_SYSCALL is not set 241# CONFIG_PCI_SYSCALL is not set
235# CONFIG_ARCH_SUPPORTS_MSI is not set 242# CONFIG_ARCH_SUPPORTS_MSI is not set
236# CONFIG_PCCARD is not set 243# CONFIG_PCCARD is not set
244# CONFIG_HAS_RAPIDIO is not set
237 245
238# 246#
239# Advanced setup 247# Advanced setup
@@ -243,11 +251,11 @@ CONFIG_FSL_SOC=y
243# 251#
244# Default settings for advanced configuration options are used 252# Default settings for advanced configuration options are used
245# 253#
246CONFIG_HIGHMEM_START=0xfe000000
247CONFIG_LOWMEM_SIZE=0x30000000 254CONFIG_LOWMEM_SIZE=0x30000000
255CONFIG_PAGE_OFFSET=0xc0000000
248CONFIG_KERNEL_START=0xc0000000 256CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000
249CONFIG_TASK_SIZE=0xc0000000 258CONFIG_TASK_SIZE=0xc0000000
250CONFIG_BOOT_LOAD=0x00800000
251 259
252# 260#
253# Networking 261# Networking
@@ -290,8 +298,6 @@ CONFIG_TCP_CONG_CUBIC=y
290CONFIG_DEFAULT_TCP_CONG="cubic" 298CONFIG_DEFAULT_TCP_CONG="cubic"
291# CONFIG_TCP_MD5SIG is not set 299# CONFIG_TCP_MD5SIG is not set
292# CONFIG_IPV6 is not set 300# CONFIG_IPV6 is not set
293# CONFIG_INET6_XFRM_TUNNEL is not set
294# CONFIG_INET6_TUNNEL is not set
295# CONFIG_NETWORK_SECMARK is not set 301# CONFIG_NETWORK_SECMARK is not set
296# CONFIG_NETFILTER is not set 302# CONFIG_NETFILTER is not set
297# CONFIG_IP_DCCP is not set 303# CONFIG_IP_DCCP is not set
@@ -345,6 +351,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
345# CONFIG_CONNECTOR is not set 351# CONFIG_CONNECTOR is not set
346# CONFIG_MTD is not set 352# CONFIG_MTD is not set
347CONFIG_OF_DEVICE=y 353CONFIG_OF_DEVICE=y
354CONFIG_OF_I2C=y
348# CONFIG_PARPORT is not set 355# CONFIG_PARPORT is not set
349CONFIG_BLK_DEV=y 356CONFIG_BLK_DEV=y
350# CONFIG_BLK_DEV_FD is not set 357# CONFIG_BLK_DEV_FD is not set
@@ -352,6 +359,7 @@ CONFIG_BLK_DEV=y
352CONFIG_BLK_DEV_LOOP=y 359CONFIG_BLK_DEV_LOOP=y
353# CONFIG_BLK_DEV_CRYPTOLOOP is not set 360# CONFIG_BLK_DEV_CRYPTOLOOP is not set
354# CONFIG_BLK_DEV_NBD is not set 361# CONFIG_BLK_DEV_NBD is not set
362# CONFIG_BLK_DEV_UB is not set
355CONFIG_BLK_DEV_RAM=y 363CONFIG_BLK_DEV_RAM=y
356CONFIG_BLK_DEV_RAM_COUNT=16 364CONFIG_BLK_DEV_RAM_COUNT=16
357CONFIG_BLK_DEV_RAM_SIZE=32768 365CONFIG_BLK_DEV_RAM_SIZE=32768
@@ -406,8 +414,10 @@ CONFIG_SCSI_LOWLEVEL=y
406# CONFIG_SCSI_DEBUG is not set 414# CONFIG_SCSI_DEBUG is not set
407CONFIG_ATA=y 415CONFIG_ATA=y
408# CONFIG_ATA_NONSTANDARD is not set 416# CONFIG_ATA_NONSTANDARD is not set
409# CONFIG_SATA_MV is not set 417CONFIG_SATA_PMP=y
410CONFIG_SATA_FSL=y 418CONFIG_SATA_FSL=y
419CONFIG_ATA_SFF=y
420# CONFIG_SATA_MV is not set
411# CONFIG_PATA_PLATFORM is not set 421# CONFIG_PATA_PLATFORM is not set
412CONFIG_MD=y 422CONFIG_MD=y
413CONFIG_BLK_DEV_MD=y 423CONFIG_BLK_DEV_MD=y
@@ -444,7 +454,7 @@ CONFIG_MARVELL_PHY=y
444# CONFIG_BROADCOM_PHY is not set 454# CONFIG_BROADCOM_PHY is not set
445# CONFIG_ICPLUS_PHY is not set 455# CONFIG_ICPLUS_PHY is not set
446# CONFIG_REALTEK_PHY is not set 456# CONFIG_REALTEK_PHY is not set
447# CONFIG_FIXED_PHY is not set 457CONFIG_FIXED_PHY=y
448# CONFIG_MDIO_BITBANG is not set 458# CONFIG_MDIO_BITBANG is not set
449CONFIG_NET_ETHERNET=y 459CONFIG_NET_ETHERNET=y
450CONFIG_MII=y 460CONFIG_MII=y
@@ -464,6 +474,16 @@ CONFIG_GFAR_NAPI=y
464# 474#
465# CONFIG_WLAN_PRE80211 is not set 475# CONFIG_WLAN_PRE80211 is not set
466# CONFIG_WLAN_80211 is not set 476# CONFIG_WLAN_80211 is not set
477# CONFIG_IWLWIFI_LEDS is not set
478
479#
480# USB Network Adapters
481#
482# CONFIG_USB_CATC is not set
483# CONFIG_USB_KAWETH is not set
484# CONFIG_USB_PEGASUS is not set
485# CONFIG_USB_RTL8150 is not set
486# CONFIG_USB_USBNET is not set
467# CONFIG_WAN is not set 487# CONFIG_WAN is not set
468# CONFIG_PPP is not set 488# CONFIG_PPP is not set
469# CONFIG_SLIP is not set 489# CONFIG_SLIP is not set
@@ -508,6 +528,7 @@ CONFIG_INPUT=y
508# Character devices 528# Character devices
509# 529#
510# CONFIG_VT is not set 530# CONFIG_VT is not set
531CONFIG_DEVKMEM=y
511# CONFIG_SERIAL_NONSTANDARD is not set 532# CONFIG_SERIAL_NONSTANDARD is not set
512 533
513# 534#
@@ -542,13 +563,6 @@ CONFIG_I2C_BOARDINFO=y
542CONFIG_I2C_CHARDEV=y 563CONFIG_I2C_CHARDEV=y
543 564
544# 565#
545# I2C Algorithms
546#
547# CONFIG_I2C_ALGOBIT is not set
548# CONFIG_I2C_ALGOPCF is not set
549# CONFIG_I2C_ALGOPCA is not set
550
551#
552# I2C Hardware Bus support 566# I2C Hardware Bus support
553# 567#
554CONFIG_I2C_MPC=y 568CONFIG_I2C_MPC=y
@@ -557,6 +571,8 @@ CONFIG_I2C_MPC=y
557# CONFIG_I2C_SIMTEC is not set 571# CONFIG_I2C_SIMTEC is not set
558# CONFIG_I2C_TAOS_EVM is not set 572# CONFIG_I2C_TAOS_EVM is not set
559# CONFIG_I2C_STUB is not set 573# CONFIG_I2C_STUB is not set
574# CONFIG_I2C_TINY_USB is not set
575# CONFIG_I2C_PCA_PLATFORM is not set
560 576
561# 577#
562# Miscellaneous I2C Chip support 578# Miscellaneous I2C Chip support
@@ -566,19 +582,13 @@ CONFIG_I2C_MPC=y
566# CONFIG_SENSORS_PCF8574 is not set 582# CONFIG_SENSORS_PCF8574 is not set
567# CONFIG_PCF8575 is not set 583# CONFIG_PCF8575 is not set
568# CONFIG_SENSORS_PCF8591 is not set 584# CONFIG_SENSORS_PCF8591 is not set
569# CONFIG_TPS65010 is not set
570# CONFIG_SENSORS_MAX6875 is not set 585# CONFIG_SENSORS_MAX6875 is not set
571# CONFIG_SENSORS_TSL2550 is not set 586# CONFIG_SENSORS_TSL2550 is not set
572# CONFIG_I2C_DEBUG_CORE is not set 587# CONFIG_I2C_DEBUG_CORE is not set
573# CONFIG_I2C_DEBUG_ALGO is not set 588# CONFIG_I2C_DEBUG_ALGO is not set
574# CONFIG_I2C_DEBUG_BUS is not set 589# CONFIG_I2C_DEBUG_BUS is not set
575# CONFIG_I2C_DEBUG_CHIP is not set 590# CONFIG_I2C_DEBUG_CHIP is not set
576
577#
578# SPI support
579#
580# CONFIG_SPI is not set 591# CONFIG_SPI is not set
581# CONFIG_SPI_MASTER is not set
582# CONFIG_W1 is not set 592# CONFIG_W1 is not set
583# CONFIG_POWER_SUPPLY is not set 593# CONFIG_POWER_SUPPLY is not set
584CONFIG_HWMON=y 594CONFIG_HWMON=y
@@ -642,6 +652,11 @@ CONFIG_WATCHDOG=y
642CONFIG_83xx_WDT=y 652CONFIG_83xx_WDT=y
643 653
644# 654#
655# USB-based Watchdog Cards
656#
657# CONFIG_USBPCWATCHDOG is not set
658
659#
645# Sonics Silicon Backplane 660# Sonics Silicon Backplane
646# 661#
647CONFIG_SSB_POSSIBLE=y 662CONFIG_SSB_POSSIBLE=y
@@ -651,13 +666,24 @@ CONFIG_SSB_POSSIBLE=y
651# Multifunction device drivers 666# Multifunction device drivers
652# 667#
653# CONFIG_MFD_SM501 is not set 668# CONFIG_MFD_SM501 is not set
669# CONFIG_HTC_PASIC3 is not set
654 670
655# 671#
656# Multimedia devices 672# Multimedia devices
657# 673#
674
675#
676# Multimedia core support
677#
658# CONFIG_VIDEO_DEV is not set 678# CONFIG_VIDEO_DEV is not set
659# CONFIG_DVB_CORE is not set 679# CONFIG_DVB_CORE is not set
680# CONFIG_VIDEO_MEDIA is not set
681
682#
683# Multimedia drivers
684#
660CONFIG_DAB=y 685CONFIG_DAB=y
686# CONFIG_USB_DABUSB is not set
661 687
662# 688#
663# Graphics support 689# Graphics support
@@ -680,6 +706,14 @@ CONFIG_HID_SUPPORT=y
680CONFIG_HID=y 706CONFIG_HID=y
681# CONFIG_HID_DEBUG is not set 707# CONFIG_HID_DEBUG is not set
682# CONFIG_HIDRAW is not set 708# CONFIG_HIDRAW is not set
709
710#
711# USB Input Devices
712#
713CONFIG_USB_HID=y
714# CONFIG_USB_HIDINPUT_POWERBOOK is not set
715# CONFIG_HID_FF is not set
716# CONFIG_USB_HIDDEV is not set
683CONFIG_USB_SUPPORT=y 717CONFIG_USB_SUPPORT=y
684CONFIG_USB_ARCH_HAS_HCD=y 718CONFIG_USB_ARCH_HAS_HCD=y
685# CONFIG_USB_ARCH_HAS_OHCI is not set 719# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -695,33 +729,83 @@ CONFIG_USB=y
695CONFIG_USB_DEVICE_CLASS=y 729CONFIG_USB_DEVICE_CLASS=y
696# CONFIG_USB_DYNAMIC_MINORS is not set 730# CONFIG_USB_DYNAMIC_MINORS is not set
697# CONFIG_USB_OTG is not set 731# CONFIG_USB_OTG is not set
732# CONFIG_USB_OTG_WHITELIST is not set
733# CONFIG_USB_OTG_BLACKLIST_HUB is not set
698 734
699# 735#
700# USB Host Controller Drivers 736# USB Host Controller Drivers
701# 737#
738# CONFIG_USB_C67X00_HCD is not set
702CONFIG_USB_EHCI_HCD=y 739CONFIG_USB_EHCI_HCD=y
703CONFIG_USB_EHCI_ROOT_HUB_TT=y 740CONFIG_USB_EHCI_ROOT_HUB_TT=y
704# CONFIG_USB_EHCI_TT_NEWSCHED is not set 741# CONFIG_USB_EHCI_TT_NEWSCHED is not set
705CONFIG_USB_EHCI_FSL=y 742CONFIG_USB_EHCI_FSL=y
706CONFIG_USB_EHCI_HCD_PPC_OF=y 743CONFIG_USB_EHCI_HCD_PPC_OF=y
707# CONFIG_USB_ISP116X_HCD is not set 744# CONFIG_USB_ISP116X_HCD is not set
745# CONFIG_USB_ISP1760_HCD is not set
708# CONFIG_USB_SL811_HCD is not set 746# CONFIG_USB_SL811_HCD is not set
709# CONFIG_USB_R8A66597_HCD is not set 747# CONFIG_USB_R8A66597_HCD is not set
710 748
711# 749#
750# USB Device Class drivers
751#
752# CONFIG_USB_ACM is not set
753# CONFIG_USB_PRINTER is not set
754# CONFIG_USB_WDM is not set
755
756#
712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 757# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
713# 758#
759
760#
761# may also be needed; see USB_STORAGE Help for more information
762#
763# CONFIG_USB_STORAGE is not set
764# CONFIG_USB_LIBUSUAL is not set
765
766#
767# USB Imaging devices
768#
769# CONFIG_USB_MDC800 is not set
770# CONFIG_USB_MICROTEK is not set
771CONFIG_USB_MON=y
772
773#
774# USB port drivers
775#
776# CONFIG_USB_SERIAL is not set
777
778#
779# USB Miscellaneous drivers
780#
781# CONFIG_USB_EMI62 is not set
782# CONFIG_USB_EMI26 is not set
783# CONFIG_USB_ADUTUX is not set
784# CONFIG_USB_AUERSWALD is not set
785# CONFIG_USB_RIO500 is not set
786# CONFIG_USB_LEGOTOWER is not set
787# CONFIG_USB_LCD is not set
788# CONFIG_USB_BERRY_CHARGE is not set
789# CONFIG_USB_LED is not set
790# CONFIG_USB_CYPRESS_CY7C63 is not set
791# CONFIG_USB_CYTHERM is not set
792# CONFIG_USB_PHIDGET is not set
793# CONFIG_USB_IDMOUSE is not set
794# CONFIG_USB_FTDI_ELAN is not set
795# CONFIG_USB_APPLEDISPLAY is not set
796# CONFIG_USB_SISUSBVGA is not set
797# CONFIG_USB_LD is not set
798# CONFIG_USB_TRANCEVIBRATOR is not set
799# CONFIG_USB_IOWARRIOR is not set
800# CONFIG_USB_ISIGHTFW is not set
714# CONFIG_USB_GADGET is not set 801# CONFIG_USB_GADGET is not set
715# CONFIG_MMC is not set 802# CONFIG_MMC is not set
716# CONFIG_MEMSTICK is not set 803# CONFIG_MEMSTICK is not set
717# CONFIG_NEW_LEDS is not set 804# CONFIG_NEW_LEDS is not set
805# CONFIG_ACCESSIBILITY is not set
718# CONFIG_EDAC is not set 806# CONFIG_EDAC is not set
719# CONFIG_RTC_CLASS is not set 807# CONFIG_RTC_CLASS is not set
720# CONFIG_DMADEVICES is not set 808# CONFIG_DMADEVICES is not set
721
722#
723# Userspace I/O
724#
725# CONFIG_UIO is not set 809# CONFIG_UIO is not set
726 810
727# 811#
@@ -741,7 +825,6 @@ CONFIG_FS_MBCACHE=y
741# CONFIG_JFS_FS is not set 825# CONFIG_JFS_FS is not set
742# CONFIG_FS_POSIX_ACL is not set 826# CONFIG_FS_POSIX_ACL is not set
743# CONFIG_XFS_FS is not set 827# CONFIG_XFS_FS is not set
744# CONFIG_GFS2_FS is not set
745# CONFIG_OCFS2_FS is not set 828# CONFIG_OCFS2_FS is not set
746CONFIG_DNOTIFY=y 829CONFIG_DNOTIFY=y
747CONFIG_INOTIFY=y 830CONFIG_INOTIFY=y
@@ -799,7 +882,6 @@ CONFIG_NFS_FS=y
799CONFIG_NFS_V3=y 882CONFIG_NFS_V3=y
800# CONFIG_NFS_V3_ACL is not set 883# CONFIG_NFS_V3_ACL is not set
801CONFIG_NFS_V4=y 884CONFIG_NFS_V4=y
802# CONFIG_NFS_DIRECTIO is not set
803# CONFIG_NFSD is not set 885# CONFIG_NFSD is not set
804CONFIG_ROOT_NFS=y 886CONFIG_ROOT_NFS=y
805CONFIG_LOCKD=y 887CONFIG_LOCKD=y
@@ -844,6 +926,7 @@ CONFIG_MSDOS_PARTITION=y
844# Library routines 926# Library routines
845# 927#
846CONFIG_BITREVERSE=y 928CONFIG_BITREVERSE=y
929# CONFIG_GENERIC_FIND_FIRST_BIT is not set
847# CONFIG_CRC_CCITT is not set 930# CONFIG_CRC_CCITT is not set
848# CONFIG_CRC16 is not set 931# CONFIG_CRC16 is not set
849# CONFIG_CRC_ITU_T is not set 932# CONFIG_CRC_ITU_T is not set
@@ -854,6 +937,7 @@ CONFIG_PLIST=y
854CONFIG_HAS_IOMEM=y 937CONFIG_HAS_IOMEM=y
855CONFIG_HAS_IOPORT=y 938CONFIG_HAS_IOPORT=y
856CONFIG_HAS_DMA=y 939CONFIG_HAS_DMA=y
940CONFIG_HAVE_LMB=y
857 941
858# 942#
859# Kernel hacking 943# Kernel hacking
@@ -861,6 +945,7 @@ CONFIG_HAS_DMA=y
861# CONFIG_PRINTK_TIME is not set 945# CONFIG_PRINTK_TIME is not set
862CONFIG_ENABLE_WARN_DEPRECATED=y 946CONFIG_ENABLE_WARN_DEPRECATED=y
863# CONFIG_ENABLE_MUST_CHECK is not set 947# CONFIG_ENABLE_MUST_CHECK is not set
948CONFIG_FRAME_WARN=1024
864# CONFIG_MAGIC_SYSRQ is not set 949# CONFIG_MAGIC_SYSRQ is not set
865# CONFIG_UNUSED_SYMBOLS is not set 950# CONFIG_UNUSED_SYMBOLS is not set
866# CONFIG_DEBUG_FS is not set 951# CONFIG_DEBUG_FS is not set
@@ -868,6 +953,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
868# CONFIG_DEBUG_KERNEL is not set 953# CONFIG_DEBUG_KERNEL is not set
869# CONFIG_DEBUG_BUGVERBOSE is not set 954# CONFIG_DEBUG_BUGVERBOSE is not set
870# CONFIG_SAMPLES is not set 955# CONFIG_SAMPLES is not set
956# CONFIG_IRQSTACKS is not set
871# CONFIG_PPC_EARLY_DEBUG is not set 957# CONFIG_PPC_EARLY_DEBUG is not set
872 958
873# 959#
@@ -881,50 +967,80 @@ CONFIG_ASYNC_CORE=y
881CONFIG_ASYNC_MEMCPY=y 967CONFIG_ASYNC_MEMCPY=y
882CONFIG_ASYNC_XOR=y 968CONFIG_ASYNC_XOR=y
883CONFIG_CRYPTO=y 969CONFIG_CRYPTO=y
970
971#
972# Crypto core or helper
973#
884CONFIG_CRYPTO_ALGAPI=y 974CONFIG_CRYPTO_ALGAPI=y
885CONFIG_CRYPTO_BLKCIPHER=y 975CONFIG_CRYPTO_BLKCIPHER=y
886# CONFIG_CRYPTO_SEQIV is not set
887CONFIG_CRYPTO_MANAGER=y 976CONFIG_CRYPTO_MANAGER=y
977# CONFIG_CRYPTO_GF128MUL is not set
978# CONFIG_CRYPTO_NULL is not set
979# CONFIG_CRYPTO_CRYPTD is not set
980# CONFIG_CRYPTO_AUTHENC is not set
981# CONFIG_CRYPTO_TEST is not set
982
983#
984# Authenticated Encryption with Associated Data
985#
986# CONFIG_CRYPTO_CCM is not set
987# CONFIG_CRYPTO_GCM is not set
988# CONFIG_CRYPTO_SEQIV is not set
989
990#
991# Block modes
992#
993CONFIG_CRYPTO_CBC=y
994# CONFIG_CRYPTO_CTR is not set
995# CONFIG_CRYPTO_CTS is not set
996CONFIG_CRYPTO_ECB=m
997# CONFIG_CRYPTO_LRW is not set
998CONFIG_CRYPTO_PCBC=m
999# CONFIG_CRYPTO_XTS is not set
1000
1001#
1002# Hash modes
1003#
888# CONFIG_CRYPTO_HMAC is not set 1004# CONFIG_CRYPTO_HMAC is not set
889# CONFIG_CRYPTO_XCBC is not set 1005# CONFIG_CRYPTO_XCBC is not set
890# CONFIG_CRYPTO_NULL is not set 1006
1007#
1008# Digest
1009#
1010# CONFIG_CRYPTO_CRC32C is not set
891# CONFIG_CRYPTO_MD4 is not set 1011# CONFIG_CRYPTO_MD4 is not set
892CONFIG_CRYPTO_MD5=y 1012CONFIG_CRYPTO_MD5=y
1013# CONFIG_CRYPTO_MICHAEL_MIC is not set
893# CONFIG_CRYPTO_SHA1 is not set 1014# CONFIG_CRYPTO_SHA1 is not set
894# CONFIG_CRYPTO_SHA256 is not set 1015# CONFIG_CRYPTO_SHA256 is not set
895# CONFIG_CRYPTO_SHA512 is not set 1016# CONFIG_CRYPTO_SHA512 is not set
896# CONFIG_CRYPTO_WP512 is not set
897# CONFIG_CRYPTO_TGR192 is not set 1017# CONFIG_CRYPTO_TGR192 is not set
898# CONFIG_CRYPTO_GF128MUL is not set 1018# CONFIG_CRYPTO_WP512 is not set
899CONFIG_CRYPTO_ECB=m 1019
900CONFIG_CRYPTO_CBC=y 1020#
901CONFIG_CRYPTO_PCBC=m 1021# Ciphers
902# CONFIG_CRYPTO_LRW is not set 1022#
903# CONFIG_CRYPTO_XTS is not set
904# CONFIG_CRYPTO_CTR is not set
905# CONFIG_CRYPTO_GCM is not set
906# CONFIG_CRYPTO_CCM is not set
907# CONFIG_CRYPTO_CRYPTD is not set
908CONFIG_CRYPTO_DES=y
909# CONFIG_CRYPTO_FCRYPT is not set
910# CONFIG_CRYPTO_BLOWFISH is not set
911# CONFIG_CRYPTO_TWOFISH is not set
912# CONFIG_CRYPTO_SERPENT is not set
913# CONFIG_CRYPTO_AES is not set 1023# CONFIG_CRYPTO_AES is not set
1024# CONFIG_CRYPTO_ANUBIS is not set
1025# CONFIG_CRYPTO_ARC4 is not set
1026# CONFIG_CRYPTO_BLOWFISH is not set
1027# CONFIG_CRYPTO_CAMELLIA is not set
914# CONFIG_CRYPTO_CAST5 is not set 1028# CONFIG_CRYPTO_CAST5 is not set
915# CONFIG_CRYPTO_CAST6 is not set 1029# CONFIG_CRYPTO_CAST6 is not set
916# CONFIG_CRYPTO_TEA is not set 1030CONFIG_CRYPTO_DES=y
917# CONFIG_CRYPTO_ARC4 is not set 1031# CONFIG_CRYPTO_FCRYPT is not set
918# CONFIG_CRYPTO_KHAZAD is not set 1032# CONFIG_CRYPTO_KHAZAD is not set
919# CONFIG_CRYPTO_ANUBIS is not set
920# CONFIG_CRYPTO_SEED is not set
921# CONFIG_CRYPTO_SALSA20 is not set 1033# CONFIG_CRYPTO_SALSA20 is not set
1034# CONFIG_CRYPTO_SEED is not set
1035# CONFIG_CRYPTO_SERPENT is not set
1036# CONFIG_CRYPTO_TEA is not set
1037# CONFIG_CRYPTO_TWOFISH is not set
1038
1039#
1040# Compression
1041#
922# CONFIG_CRYPTO_DEFLATE is not set 1042# CONFIG_CRYPTO_DEFLATE is not set
923# CONFIG_CRYPTO_MICHAEL_MIC is not set
924# CONFIG_CRYPTO_CRC32C is not set
925# CONFIG_CRYPTO_CAMELLIA is not set
926# CONFIG_CRYPTO_TEST is not set
927# CONFIG_CRYPTO_AUTHENC is not set
928# CONFIG_CRYPTO_LZO is not set 1043# CONFIG_CRYPTO_LZO is not set
929CONFIG_CRYPTO_HW=y 1044CONFIG_CRYPTO_HW=y
930# CONFIG_PPC_CLOCK is not set 1045# CONFIG_PPC_CLOCK is not set
1046# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 1f1518229f6d..1752918be2c1 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:38 2008 4# Mon Jun 9 08:52:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89# CONFIG_KALLSYMS is not set 92# CONFIG_KALLSYMS is not set
90CONFIG_HOTPLUG=y 93CONFIG_HOTPLUG=y
91CONFIG_PRINTK=y 94CONFIG_PRINTK=y
@@ -109,12 +112,14 @@ CONFIG_SLAB=y
109CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_KPROBES=y 113CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 114CONFIG_HAVE_KRETPROBES=y
115# CONFIG_HAVE_DMA_ATTRS is not set
112CONFIG_PROC_PAGE_MONITOR=y 116CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y 117CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
116CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
117CONFIG_MODULES=y 121CONFIG_MODULES=y
122# CONFIG_MODULE_FORCE_LOAD is not set
118CONFIG_MODULE_UNLOAD=y 123CONFIG_MODULE_UNLOAD=y
119# CONFIG_MODULE_FORCE_UNLOAD is not set 124# CONFIG_MODULE_FORCE_UNLOAD is not set
120# CONFIG_MODVERSIONS is not set 125# CONFIG_MODVERSIONS is not set
@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y
209CONFIG_FLAT_NODE_MEM_MAP=y 214CONFIG_FLAT_NODE_MEM_MAP=y
210# CONFIG_SPARSEMEM_STATIC is not set 215# CONFIG_SPARSEMEM_STATIC is not set
211# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
213# CONFIG_RESOURCES_64BIT is not set 219# CONFIG_RESOURCES_64BIT is not set
214CONFIG_ZONE_DMA_FLAG=1 220CONFIG_ZONE_DMA_FLAG=1
215CONFIG_BOUNCE=y 221CONFIG_BOUNCE=y
216CONFIG_VIRT_TO_BUS=y 222CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11
217CONFIG_PROC_DEVICETREE=y 224CONFIG_PROC_DEVICETREE=y
218# CONFIG_CMDLINE_BOOL is not set 225# CONFIG_CMDLINE_BOOL is not set
219# CONFIG_PM is not set 226# CONFIG_PM is not set
@@ -232,6 +239,7 @@ CONFIG_FSL_SOC=y
232# CONFIG_PCI_SYSCALL is not set 239# CONFIG_PCI_SYSCALL is not set
233# CONFIG_ARCH_SUPPORTS_MSI is not set 240# CONFIG_ARCH_SUPPORTS_MSI is not set
234# CONFIG_PCCARD is not set 241# CONFIG_PCCARD is not set
242# CONFIG_HAS_RAPIDIO is not set
235 243
236# 244#
237# Advanced setup 245# Advanced setup
@@ -241,11 +249,11 @@ CONFIG_FSL_SOC=y
241# 249#
242# Default settings for advanced configuration options are used 250# Default settings for advanced configuration options are used
243# 251#
244CONFIG_HIGHMEM_START=0xfe000000
245CONFIG_LOWMEM_SIZE=0x30000000 252CONFIG_LOWMEM_SIZE=0x30000000
253CONFIG_PAGE_OFFSET=0xc0000000
246CONFIG_KERNEL_START=0xc0000000 254CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000
247CONFIG_TASK_SIZE=0xc0000000 256CONFIG_TASK_SIZE=0xc0000000
248CONFIG_BOOT_LOAD=0x00800000
249 257
250# 258#
251# Networking 259# Networking
@@ -293,8 +301,6 @@ CONFIG_TCP_CONG_CUBIC=y
293CONFIG_DEFAULT_TCP_CONG="cubic" 301CONFIG_DEFAULT_TCP_CONG="cubic"
294# CONFIG_TCP_MD5SIG is not set 302# CONFIG_TCP_MD5SIG is not set
295# CONFIG_IPV6 is not set 303# CONFIG_IPV6 is not set
296# CONFIG_INET6_XFRM_TUNNEL is not set
297# CONFIG_INET6_TUNNEL is not set
298# CONFIG_NETWORK_SECMARK is not set 304# CONFIG_NETWORK_SECMARK is not set
299# CONFIG_NETFILTER is not set 305# CONFIG_NETFILTER is not set
300# CONFIG_IP_DCCP is not set 306# CONFIG_IP_DCCP is not set
@@ -348,6 +354,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
348# CONFIG_CONNECTOR is not set 354# CONFIG_CONNECTOR is not set
349# CONFIG_MTD is not set 355# CONFIG_MTD is not set
350CONFIG_OF_DEVICE=y 356CONFIG_OF_DEVICE=y
357CONFIG_OF_I2C=y
351# CONFIG_PARPORT is not set 358# CONFIG_PARPORT is not set
352CONFIG_BLK_DEV=y 359CONFIG_BLK_DEV=y
353# CONFIG_BLK_DEV_FD is not set 360# CONFIG_BLK_DEV_FD is not set
@@ -420,6 +427,7 @@ CONFIG_GIANFAR=y
420# 427#
421# CONFIG_WLAN_PRE80211 is not set 428# CONFIG_WLAN_PRE80211 is not set
422# CONFIG_WLAN_80211 is not set 429# CONFIG_WLAN_80211 is not set
430# CONFIG_IWLWIFI_LEDS is not set
423# CONFIG_WAN is not set 431# CONFIG_WAN is not set
424# CONFIG_PPP is not set 432# CONFIG_PPP is not set
425# CONFIG_SLIP is not set 433# CONFIG_SLIP is not set
@@ -464,6 +472,7 @@ CONFIG_INPUT=y
464# Character devices 472# Character devices
465# 473#
466# CONFIG_VT is not set 474# CONFIG_VT is not set
475CONFIG_DEVKMEM=y
467# CONFIG_SERIAL_NONSTANDARD is not set 476# CONFIG_SERIAL_NONSTANDARD is not set
468 477
469# 478#
@@ -498,13 +507,6 @@ CONFIG_I2C_BOARDINFO=y
498CONFIG_I2C_CHARDEV=y 507CONFIG_I2C_CHARDEV=y
499 508
500# 509#
501# I2C Algorithms
502#
503# CONFIG_I2C_ALGOBIT is not set
504# CONFIG_I2C_ALGOPCF is not set
505# CONFIG_I2C_ALGOPCA is not set
506
507#
508# I2C Hardware Bus support 510# I2C Hardware Bus support
509# 511#
510CONFIG_I2C_MPC=y 512CONFIG_I2C_MPC=y
@@ -513,6 +515,7 @@ CONFIG_I2C_MPC=y
513# CONFIG_I2C_SIMTEC is not set 515# CONFIG_I2C_SIMTEC is not set
514# CONFIG_I2C_TAOS_EVM is not set 516# CONFIG_I2C_TAOS_EVM is not set
515# CONFIG_I2C_STUB is not set 517# CONFIG_I2C_STUB is not set
518# CONFIG_I2C_PCA_PLATFORM is not set
516 519
517# 520#
518# Miscellaneous I2C Chip support 521# Miscellaneous I2C Chip support
@@ -522,19 +525,13 @@ CONFIG_I2C_MPC=y
522# CONFIG_SENSORS_PCF8574 is not set 525# CONFIG_SENSORS_PCF8574 is not set
523# CONFIG_PCF8575 is not set 526# CONFIG_PCF8575 is not set
524# CONFIG_SENSORS_PCF8591 is not set 527# CONFIG_SENSORS_PCF8591 is not set
525# CONFIG_TPS65010 is not set
526# CONFIG_SENSORS_MAX6875 is not set 528# CONFIG_SENSORS_MAX6875 is not set
527# CONFIG_SENSORS_TSL2550 is not set 529# CONFIG_SENSORS_TSL2550 is not set
528# CONFIG_I2C_DEBUG_CORE is not set 530# CONFIG_I2C_DEBUG_CORE is not set
529# CONFIG_I2C_DEBUG_ALGO is not set 531# CONFIG_I2C_DEBUG_ALGO is not set
530# CONFIG_I2C_DEBUG_BUS is not set 532# CONFIG_I2C_DEBUG_BUS is not set
531# CONFIG_I2C_DEBUG_CHIP is not set 533# CONFIG_I2C_DEBUG_CHIP is not set
532
533#
534# SPI support
535#
536# CONFIG_SPI is not set 534# CONFIG_SPI is not set
537# CONFIG_SPI_MASTER is not set
538# CONFIG_W1 is not set 535# CONFIG_W1 is not set
539# CONFIG_POWER_SUPPLY is not set 536# CONFIG_POWER_SUPPLY is not set
540CONFIG_HWMON=y 537CONFIG_HWMON=y
@@ -607,12 +604,22 @@ CONFIG_SSB_POSSIBLE=y
607# Multifunction device drivers 604# Multifunction device drivers
608# 605#
609# CONFIG_MFD_SM501 is not set 606# CONFIG_MFD_SM501 is not set
607# CONFIG_HTC_PASIC3 is not set
610 608
611# 609#
612# Multimedia devices 610# Multimedia devices
613# 611#
612
613#
614# Multimedia core support
615#
614# CONFIG_VIDEO_DEV is not set 616# CONFIG_VIDEO_DEV is not set
615# CONFIG_DVB_CORE is not set 617# CONFIG_DVB_CORE is not set
618# CONFIG_VIDEO_MEDIA is not set
619
620#
621# Multimedia drivers
622#
616# CONFIG_DAB is not set 623# CONFIG_DAB is not set
617 624
618# 625#
@@ -640,13 +647,10 @@ CONFIG_HID=y
640# CONFIG_MMC is not set 647# CONFIG_MMC is not set
641# CONFIG_MEMSTICK is not set 648# CONFIG_MEMSTICK is not set
642# CONFIG_NEW_LEDS is not set 649# CONFIG_NEW_LEDS is not set
650# CONFIG_ACCESSIBILITY is not set
643# CONFIG_EDAC is not set 651# CONFIG_EDAC is not set
644# CONFIG_RTC_CLASS is not set 652# CONFIG_RTC_CLASS is not set
645# CONFIG_DMADEVICES is not set 653# CONFIG_DMADEVICES is not set
646
647#
648# Userspace I/O
649#
650# CONFIG_UIO is not set 654# CONFIG_UIO is not set
651 655
652# 656#
@@ -659,7 +663,6 @@ CONFIG_HID=y
659# CONFIG_JFS_FS is not set 663# CONFIG_JFS_FS is not set
660# CONFIG_FS_POSIX_ACL is not set 664# CONFIG_FS_POSIX_ACL is not set
661# CONFIG_XFS_FS is not set 665# CONFIG_XFS_FS is not set
662# CONFIG_GFS2_FS is not set
663# CONFIG_OCFS2_FS is not set 666# CONFIG_OCFS2_FS is not set
664CONFIG_DNOTIFY=y 667CONFIG_DNOTIFY=y
665CONFIG_INOTIFY=y 668CONFIG_INOTIFY=y
@@ -717,7 +720,6 @@ CONFIG_NFS_FS=y
717CONFIG_NFS_V3=y 720CONFIG_NFS_V3=y
718# CONFIG_NFS_V3_ACL is not set 721# CONFIG_NFS_V3_ACL is not set
719CONFIG_NFS_V4=y 722CONFIG_NFS_V4=y
720# CONFIG_NFS_DIRECTIO is not set
721# CONFIG_NFSD is not set 723# CONFIG_NFSD is not set
722CONFIG_ROOT_NFS=y 724CONFIG_ROOT_NFS=y
723CONFIG_LOCKD=y 725CONFIG_LOCKD=y
@@ -746,6 +748,7 @@ CONFIG_MSDOS_PARTITION=y
746# Library routines 748# Library routines
747# 749#
748CONFIG_BITREVERSE=y 750CONFIG_BITREVERSE=y
751# CONFIG_GENERIC_FIND_FIRST_BIT is not set
749# CONFIG_CRC_CCITT is not set 752# CONFIG_CRC_CCITT is not set
750# CONFIG_CRC16 is not set 753# CONFIG_CRC16 is not set
751# CONFIG_CRC_ITU_T is not set 754# CONFIG_CRC_ITU_T is not set
@@ -756,6 +759,7 @@ CONFIG_PLIST=y
756CONFIG_HAS_IOMEM=y 759CONFIG_HAS_IOMEM=y
757CONFIG_HAS_IOPORT=y 760CONFIG_HAS_IOPORT=y
758CONFIG_HAS_DMA=y 761CONFIG_HAS_DMA=y
762CONFIG_HAVE_LMB=y
759 763
760# 764#
761# Kernel hacking 765# Kernel hacking
@@ -763,6 +767,7 @@ CONFIG_HAS_DMA=y
763# CONFIG_PRINTK_TIME is not set 767# CONFIG_PRINTK_TIME is not set
764CONFIG_ENABLE_WARN_DEPRECATED=y 768CONFIG_ENABLE_WARN_DEPRECATED=y
765CONFIG_ENABLE_MUST_CHECK=y 769CONFIG_ENABLE_MUST_CHECK=y
770CONFIG_FRAME_WARN=1024
766# CONFIG_MAGIC_SYSRQ is not set 771# CONFIG_MAGIC_SYSRQ is not set
767# CONFIG_UNUSED_SYMBOLS is not set 772# CONFIG_UNUSED_SYMBOLS is not set
768# CONFIG_DEBUG_FS is not set 773# CONFIG_DEBUG_FS is not set
@@ -770,6 +775,7 @@ CONFIG_ENABLE_MUST_CHECK=y
770# CONFIG_DEBUG_KERNEL is not set 775# CONFIG_DEBUG_KERNEL is not set
771# CONFIG_DEBUG_BUGVERBOSE is not set 776# CONFIG_DEBUG_BUGVERBOSE is not set
772# CONFIG_SAMPLES is not set 777# CONFIG_SAMPLES is not set
778# CONFIG_IRQSTACKS is not set
773# CONFIG_PPC_EARLY_DEBUG is not set 779# CONFIG_PPC_EARLY_DEBUG is not set
774 780
775# 781#
@@ -779,50 +785,80 @@ CONFIG_ENABLE_MUST_CHECK=y
779# CONFIG_SECURITY is not set 785# CONFIG_SECURITY is not set
780# CONFIG_SECURITY_FILE_CAPABILITIES is not set 786# CONFIG_SECURITY_FILE_CAPABILITIES is not set
781CONFIG_CRYPTO=y 787CONFIG_CRYPTO=y
788
789#
790# Crypto core or helper
791#
782CONFIG_CRYPTO_ALGAPI=y 792CONFIG_CRYPTO_ALGAPI=y
783CONFIG_CRYPTO_BLKCIPHER=y 793CONFIG_CRYPTO_BLKCIPHER=y
784# CONFIG_CRYPTO_SEQIV is not set
785CONFIG_CRYPTO_MANAGER=y 794CONFIG_CRYPTO_MANAGER=y
795# CONFIG_CRYPTO_GF128MUL is not set
796# CONFIG_CRYPTO_NULL is not set
797# CONFIG_CRYPTO_CRYPTD is not set
798# CONFIG_CRYPTO_AUTHENC is not set
799# CONFIG_CRYPTO_TEST is not set
800
801#
802# Authenticated Encryption with Associated Data
803#
804# CONFIG_CRYPTO_CCM is not set
805# CONFIG_CRYPTO_GCM is not set
806# CONFIG_CRYPTO_SEQIV is not set
807
808#
809# Block modes
810#
811CONFIG_CRYPTO_CBC=y
812# CONFIG_CRYPTO_CTR is not set
813# CONFIG_CRYPTO_CTS is not set
814CONFIG_CRYPTO_ECB=m
815# CONFIG_CRYPTO_LRW is not set
816CONFIG_CRYPTO_PCBC=m
817# CONFIG_CRYPTO_XTS is not set
818
819#
820# Hash modes
821#
786# CONFIG_CRYPTO_HMAC is not set 822# CONFIG_CRYPTO_HMAC is not set
787# CONFIG_CRYPTO_XCBC is not set 823# CONFIG_CRYPTO_XCBC is not set
788# CONFIG_CRYPTO_NULL is not set 824
825#
826# Digest
827#
828# CONFIG_CRYPTO_CRC32C is not set
789# CONFIG_CRYPTO_MD4 is not set 829# CONFIG_CRYPTO_MD4 is not set
790CONFIG_CRYPTO_MD5=y 830CONFIG_CRYPTO_MD5=y
831# CONFIG_CRYPTO_MICHAEL_MIC is not set
791# CONFIG_CRYPTO_SHA1 is not set 832# CONFIG_CRYPTO_SHA1 is not set
792# CONFIG_CRYPTO_SHA256 is not set 833# CONFIG_CRYPTO_SHA256 is not set
793# CONFIG_CRYPTO_SHA512 is not set 834# CONFIG_CRYPTO_SHA512 is not set
794# CONFIG_CRYPTO_WP512 is not set
795# CONFIG_CRYPTO_TGR192 is not set 835# CONFIG_CRYPTO_TGR192 is not set
796# CONFIG_CRYPTO_GF128MUL is not set 836# CONFIG_CRYPTO_WP512 is not set
797CONFIG_CRYPTO_ECB=m 837
798CONFIG_CRYPTO_CBC=y 838#
799CONFIG_CRYPTO_PCBC=m 839# Ciphers
800# CONFIG_CRYPTO_LRW is not set 840#
801# CONFIG_CRYPTO_XTS is not set
802# CONFIG_CRYPTO_CTR is not set
803# CONFIG_CRYPTO_GCM is not set
804# CONFIG_CRYPTO_CCM is not set
805# CONFIG_CRYPTO_CRYPTD is not set
806CONFIG_CRYPTO_DES=y
807# CONFIG_CRYPTO_FCRYPT is not set
808# CONFIG_CRYPTO_BLOWFISH is not set
809# CONFIG_CRYPTO_TWOFISH is not set
810# CONFIG_CRYPTO_SERPENT is not set
811# CONFIG_CRYPTO_AES is not set 841# CONFIG_CRYPTO_AES is not set
842# CONFIG_CRYPTO_ANUBIS is not set
843# CONFIG_CRYPTO_ARC4 is not set
844# CONFIG_CRYPTO_BLOWFISH is not set
845# CONFIG_CRYPTO_CAMELLIA is not set
812# CONFIG_CRYPTO_CAST5 is not set 846# CONFIG_CRYPTO_CAST5 is not set
813# CONFIG_CRYPTO_CAST6 is not set 847# CONFIG_CRYPTO_CAST6 is not set
814# CONFIG_CRYPTO_TEA is not set 848CONFIG_CRYPTO_DES=y
815# CONFIG_CRYPTO_ARC4 is not set 849# CONFIG_CRYPTO_FCRYPT is not set
816# CONFIG_CRYPTO_KHAZAD is not set 850# CONFIG_CRYPTO_KHAZAD is not set
817# CONFIG_CRYPTO_ANUBIS is not set
818# CONFIG_CRYPTO_SEED is not set
819# CONFIG_CRYPTO_SALSA20 is not set 851# CONFIG_CRYPTO_SALSA20 is not set
852# CONFIG_CRYPTO_SEED is not set
853# CONFIG_CRYPTO_SERPENT is not set
854# CONFIG_CRYPTO_TEA is not set
855# CONFIG_CRYPTO_TWOFISH is not set
856
857#
858# Compression
859#
820# CONFIG_CRYPTO_DEFLATE is not set 860# CONFIG_CRYPTO_DEFLATE is not set
821# CONFIG_CRYPTO_MICHAEL_MIC is not set
822# CONFIG_CRYPTO_CRC32C is not set
823# CONFIG_CRYPTO_CAMELLIA is not set
824# CONFIG_CRYPTO_TEST is not set
825# CONFIG_CRYPTO_AUTHENC is not set
826# CONFIG_CRYPTO_LZO is not set 861# CONFIG_CRYPTO_LZO is not set
827# CONFIG_CRYPTO_HW is not set 862# CONFIG_CRYPTO_HW is not set
828# CONFIG_PPC_CLOCK is not set 863# CONFIG_PPC_CLOCK is not set
864# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index 2d0debcefdbf..b82bb042308a 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24 3# Linux kernel version: 2.6.26-rc5
4# Mon Feb 11 16:25:19 2008 4# Mon Jun 9 08:52:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -68,23 +70,22 @@ CONFIG_SYSVIPC_SYSCTL=y
68# CONFIG_POSIX_MQUEUE is not set 70# CONFIG_POSIX_MQUEUE is not set
69# CONFIG_BSD_PROCESS_ACCT is not set 71# CONFIG_BSD_PROCESS_ACCT is not set
70# CONFIG_TASKSTATS is not set 72# CONFIG_TASKSTATS is not set
71# CONFIG_USER_NS is not set
72# CONFIG_PID_NS is not set
73# CONFIG_AUDIT is not set 73# CONFIG_AUDIT is not set
74# CONFIG_IKCONFIG is not set 74# CONFIG_IKCONFIG is not set
75CONFIG_LOG_BUF_SHIFT=14 75CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 76# CONFIG_CGROUPS is not set
77CONFIG_FAIR_GROUP_SCHED=y 77# CONFIG_GROUP_SCHED is not set
78CONFIG_FAIR_USER_SCHED=y
79# CONFIG_FAIR_CGROUP_SCHED is not set
80CONFIG_SYSFS_DEPRECATED=y 78CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 80# CONFIG_RELAY is not set
81# CONFIG_NAMESPACES is not set
82CONFIG_BLK_DEV_INITRD=y 82CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 83CONFIG_INITRAMFS_SOURCE=""
84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 84# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
85CONFIG_SYSCTL=y 85CONFIG_SYSCTL=y
86CONFIG_EMBEDDED=y 86CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 87CONFIG_SYSCTL_SYSCALL=y
88CONFIG_SYSCTL_SYSCALL_CHECK=y
88CONFIG_KALLSYMS=y 89CONFIG_KALLSYMS=y
89# CONFIG_KALLSYMS_ALL is not set 90# CONFIG_KALLSYMS_ALL is not set
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -92,6 +93,7 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 93CONFIG_PRINTK=y
93CONFIG_BUG=y 94CONFIG_BUG=y
94CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_COMPAT_BRK=y
95CONFIG_BASE_FULL=y 97CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 98CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 99CONFIG_ANON_INODES=y
@@ -109,6 +111,8 @@ CONFIG_SLUB=y
109# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
111CONFIG_HAVE_KPROBES=y 113CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y
115# CONFIG_HAVE_DMA_ATTRS is not set
112CONFIG_PROC_PAGE_MONITOR=y 116CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y 117CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
@@ -134,7 +138,6 @@ CONFIG_DEFAULT_AS=y
134# CONFIG_DEFAULT_NOOP is not set 138# CONFIG_DEFAULT_NOOP is not set
135CONFIG_DEFAULT_IOSCHED="anticipatory" 139CONFIG_DEFAULT_IOSCHED="anticipatory"
136CONFIG_CLASSIC_RCU=y 140CONFIG_CLASSIC_RCU=y
137# CONFIG_PREEMPT_RCU is not set
138 141
139# 142#
140# Platform support 143# Platform support
@@ -191,12 +194,13 @@ CONFIG_HZ=250
191CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
192# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
193# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
194CONFIG_RCU_TRACE=y
195CONFIG_BINFMT_ELF=y 197CONFIG_BINFMT_ELF=y
196CONFIG_BINFMT_MISC=y 198CONFIG_BINFMT_MISC=y
197CONFIG_MATH_EMULATION=y 199CONFIG_MATH_EMULATION=y
198# CONFIG_IOMMU_HELPER is not set 200# CONFIG_IOMMU_HELPER is not set
199CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 201CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
202CONFIG_ARCH_HAS_WALK_MEMORY=y
203CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
200CONFIG_ARCH_FLATMEM_ENABLE=y 204CONFIG_ARCH_FLATMEM_ENABLE=y
201CONFIG_ARCH_POPULATES_NODE_MAP=y 205CONFIG_ARCH_POPULATES_NODE_MAP=y
202CONFIG_SELECT_MEMORY_MODEL=y 206CONFIG_SELECT_MEMORY_MODEL=y
@@ -207,16 +211,17 @@ CONFIG_FLATMEM=y
207CONFIG_FLAT_NODE_MEM_MAP=y 211CONFIG_FLAT_NODE_MEM_MAP=y
208# CONFIG_SPARSEMEM_STATIC is not set 212# CONFIG_SPARSEMEM_STATIC is not set
209# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
214CONFIG_PAGEFLAGS_EXTENDED=y
210CONFIG_SPLIT_PTLOCK_CPUS=4 215CONFIG_SPLIT_PTLOCK_CPUS=4
211# CONFIG_RESOURCES_64BIT is not set 216# CONFIG_RESOURCES_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=1 217CONFIG_ZONE_DMA_FLAG=1
213CONFIG_BOUNCE=y 218CONFIG_BOUNCE=y
214CONFIG_VIRT_TO_BUS=y 219CONFIG_VIRT_TO_BUS=y
220CONFIG_FORCE_MAX_ZONEORDER=11
215# CONFIG_PROC_DEVICETREE is not set 221# CONFIG_PROC_DEVICETREE is not set
216# CONFIG_CMDLINE_BOOL is not set 222# CONFIG_CMDLINE_BOOL is not set
217# CONFIG_PM is not set 223# CONFIG_PM is not set
218# CONFIG_SECCOMP is not set 224# CONFIG_SECCOMP is not set
219CONFIG_WANT_DEVICE_TREE=y
220CONFIG_ISA_DMA_API=y 225CONFIG_ISA_DMA_API=y
221 226
222# 227#
@@ -229,6 +234,7 @@ CONFIG_FSL_SOC=y
229# CONFIG_PCI_SYSCALL is not set 234# CONFIG_PCI_SYSCALL is not set
230# CONFIG_ARCH_SUPPORTS_MSI is not set 235# CONFIG_ARCH_SUPPORTS_MSI is not set
231# CONFIG_PCCARD is not set 236# CONFIG_PCCARD is not set
237# CONFIG_HAS_RAPIDIO is not set
232 238
233# 239#
234# Advanced setup 240# Advanced setup
@@ -238,11 +244,12 @@ CONFIG_FSL_SOC=y
238# 244#
239# Default settings for advanced configuration options are used 245# Default settings for advanced configuration options are used
240# 246#
241CONFIG_HIGHMEM_START=0xfe000000
242CONFIG_LOWMEM_SIZE=0x30000000 247CONFIG_LOWMEM_SIZE=0x30000000
248CONFIG_PAGE_OFFSET=0xc0000000
243CONFIG_KERNEL_START=0xc0000000 249CONFIG_KERNEL_START=0xc0000000
250CONFIG_PHYSICAL_START=0x00000000
251CONFIG_PHYSICAL_ALIGN=0x10000000
244CONFIG_TASK_SIZE=0xc0000000 252CONFIG_TASK_SIZE=0xc0000000
245CONFIG_BOOT_LOAD=0x00800000
246 253
247# 254#
248# Networking 255# Networking
@@ -290,8 +297,6 @@ CONFIG_TCP_CONG_CUBIC=y
290CONFIG_DEFAULT_TCP_CONG="cubic" 297CONFIG_DEFAULT_TCP_CONG="cubic"
291# CONFIG_TCP_MD5SIG is not set 298# CONFIG_TCP_MD5SIG is not set
292# CONFIG_IPV6 is not set 299# CONFIG_IPV6 is not set
293# CONFIG_INET6_XFRM_TUNNEL is not set
294# CONFIG_INET6_TUNNEL is not set
295# CONFIG_NETWORK_SECMARK is not set 300# CONFIG_NETWORK_SECMARK is not set
296# CONFIG_NETFILTER is not set 301# CONFIG_NETFILTER is not set
297# CONFIG_IP_DCCP is not set 302# CONFIG_IP_DCCP is not set
@@ -351,6 +356,8 @@ CONFIG_MTD_CONCAT=y
351CONFIG_MTD_PARTITIONS=y 356CONFIG_MTD_PARTITIONS=y
352# CONFIG_MTD_REDBOOT_PARTS is not set 357# CONFIG_MTD_REDBOOT_PARTS is not set
353# CONFIG_MTD_CMDLINE_PARTS is not set 358# CONFIG_MTD_CMDLINE_PARTS is not set
359# CONFIG_MTD_OF_PARTS is not set
360# CONFIG_MTD_AR7_PARTS is not set
354 361
355# 362#
356# User Modules And Translation Layers 363# User Modules And Translation Layers
@@ -430,17 +437,19 @@ CONFIG_BLK_DEV_LOOP=y
430CONFIG_BLK_DEV_RAM=y 437CONFIG_BLK_DEV_RAM=y
431CONFIG_BLK_DEV_RAM_COUNT=16 438CONFIG_BLK_DEV_RAM_COUNT=16
432CONFIG_BLK_DEV_RAM_SIZE=32768 439CONFIG_BLK_DEV_RAM_SIZE=32768
433CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 440# CONFIG_BLK_DEV_XIP is not set
434# CONFIG_CDROM_PKTCDVD is not set 441# CONFIG_CDROM_PKTCDVD is not set
435# CONFIG_ATA_OVER_ETH is not set 442# CONFIG_ATA_OVER_ETH is not set
436CONFIG_MISC_DEVICES=y 443CONFIG_MISC_DEVICES=y
437# CONFIG_EEPROM_93CX6 is not set 444# CONFIG_EEPROM_93CX6 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set
446CONFIG_HAVE_IDE=y
438CONFIG_IDE=y 447CONFIG_IDE=y
439CONFIG_IDE_MAX_HWIFS=4 448CONFIG_IDE_MAX_HWIFS=4
440CONFIG_BLK_DEV_IDE=y 449CONFIG_BLK_DEV_IDE=y
441 450
442# 451#
443# Please see Documentation/ide.txt for help/info on IDE drives 452# Please see Documentation/ide/ide.txt for help/info on IDE drives
444# 453#
445# CONFIG_BLK_DEV_IDE_SATA is not set 454# CONFIG_BLK_DEV_IDE_SATA is not set
446# CONFIG_BLK_DEV_IDEDISK is not set 455# CONFIG_BLK_DEV_IDEDISK is not set
@@ -457,7 +466,7 @@ CONFIG_IDE_PROC_FS=y
457CONFIG_IDE_GENERIC=y 466CONFIG_IDE_GENERIC=y
458# CONFIG_BLK_DEV_PLATFORM is not set 467# CONFIG_BLK_DEV_PLATFORM is not set
459# CONFIG_BLK_DEV_IDEDMA is not set 468# CONFIG_BLK_DEV_IDEDMA is not set
460CONFIG_IDE_ARCH_OBSOLETE_INIT=y 469# CONFIG_BLK_DEV_HD_ONLY is not set
461# CONFIG_BLK_DEV_HD is not set 470# CONFIG_BLK_DEV_HD is not set
462 471
463# 472#
@@ -517,6 +526,7 @@ CONFIG_NETDEV_10000=y
517# 526#
518# CONFIG_WLAN_PRE80211 is not set 527# CONFIG_WLAN_PRE80211 is not set
519# CONFIG_WLAN_80211 is not set 528# CONFIG_WLAN_80211 is not set
529# CONFIG_IWLWIFI_LEDS is not set
520# CONFIG_WAN is not set 530# CONFIG_WAN is not set
521# CONFIG_PPP is not set 531# CONFIG_PPP is not set
522# CONFIG_SLIP is not set 532# CONFIG_SLIP is not set
@@ -561,6 +571,7 @@ CONFIG_INPUT=y
561# Character devices 571# Character devices
562# 572#
563# CONFIG_VT is not set 573# CONFIG_VT is not set
574CONFIG_DEVKMEM=y
564# CONFIG_SERIAL_NONSTANDARD is not set 575# CONFIG_SERIAL_NONSTANDARD is not set
565 576
566# 577#
@@ -594,12 +605,7 @@ CONFIG_GEN_RTC=y
594# CONFIG_RAW_DRIVER is not set 605# CONFIG_RAW_DRIVER is not set
595# CONFIG_TCG_TPM is not set 606# CONFIG_TCG_TPM is not set
596# CONFIG_I2C is not set 607# CONFIG_I2C is not set
597
598#
599# SPI support
600#
601# CONFIG_SPI is not set 608# CONFIG_SPI is not set
602# CONFIG_SPI_MASTER is not set
603# CONFIG_W1 is not set 609# CONFIG_W1 is not set
604# CONFIG_POWER_SUPPLY is not set 610# CONFIG_POWER_SUPPLY is not set
605CONFIG_HWMON=y 611CONFIG_HWMON=y
@@ -615,6 +621,7 @@ CONFIG_HWMON=y
615# CONFIG_SENSORS_W83627HF is not set 621# CONFIG_SENSORS_W83627HF is not set
616# CONFIG_SENSORS_W83627EHF is not set 622# CONFIG_SENSORS_W83627EHF is not set
617# CONFIG_HWMON_DEBUG_CHIP is not set 623# CONFIG_HWMON_DEBUG_CHIP is not set
624# CONFIG_THERMAL is not set
618# CONFIG_WATCHDOG is not set 625# CONFIG_WATCHDOG is not set
619 626
620# 627#
@@ -627,12 +634,22 @@ CONFIG_SSB_POSSIBLE=y
627# Multifunction device drivers 634# Multifunction device drivers
628# 635#
629# CONFIG_MFD_SM501 is not set 636# CONFIG_MFD_SM501 is not set
637# CONFIG_HTC_PASIC3 is not set
630 638
631# 639#
632# Multimedia devices 640# Multimedia devices
633# 641#
642
643#
644# Multimedia core support
645#
634# CONFIG_VIDEO_DEV is not set 646# CONFIG_VIDEO_DEV is not set
635# CONFIG_DVB_CORE is not set 647# CONFIG_DVB_CORE is not set
648# CONFIG_VIDEO_MEDIA is not set
649
650#
651# Multimedia drivers
652#
636CONFIG_DAB=y 653CONFIG_DAB=y
637 654
638# 655#
@@ -660,19 +677,20 @@ CONFIG_USB_SUPPORT=y
660# CONFIG_USB_ARCH_HAS_HCD is not set 677# CONFIG_USB_ARCH_HAS_HCD is not set
661# CONFIG_USB_ARCH_HAS_OHCI is not set 678# CONFIG_USB_ARCH_HAS_OHCI is not set
662# CONFIG_USB_ARCH_HAS_EHCI is not set 679# CONFIG_USB_ARCH_HAS_EHCI is not set
680# CONFIG_USB_OTG_WHITELIST is not set
681# CONFIG_USB_OTG_BLACKLIST_HUB is not set
663 682
664# 683#
665# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 684# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
666# 685#
667# CONFIG_USB_GADGET is not set 686# CONFIG_USB_GADGET is not set
668# CONFIG_MMC is not set 687# CONFIG_MMC is not set
688# CONFIG_MEMSTICK is not set
669# CONFIG_NEW_LEDS is not set 689# CONFIG_NEW_LEDS is not set
690# CONFIG_ACCESSIBILITY is not set
670# CONFIG_EDAC is not set 691# CONFIG_EDAC is not set
671# CONFIG_RTC_CLASS is not set 692# CONFIG_RTC_CLASS is not set
672 693# CONFIG_DMADEVICES is not set
673#
674# Userspace I/O
675#
676# CONFIG_UIO is not set 694# CONFIG_UIO is not set
677 695
678# 696#
@@ -693,14 +711,11 @@ CONFIG_FS_MBCACHE=y
693# CONFIG_JFS_FS is not set 711# CONFIG_JFS_FS is not set
694# CONFIG_FS_POSIX_ACL is not set 712# CONFIG_FS_POSIX_ACL is not set
695# CONFIG_XFS_FS is not set 713# CONFIG_XFS_FS is not set
696# CONFIG_GFS2_FS is not set
697# CONFIG_OCFS2_FS is not set 714# CONFIG_OCFS2_FS is not set
698# CONFIG_MINIX_FS is not set 715CONFIG_DNOTIFY=y
699# CONFIG_ROMFS_FS is not set
700CONFIG_INOTIFY=y 716CONFIG_INOTIFY=y
701CONFIG_INOTIFY_USER=y 717CONFIG_INOTIFY_USER=y
702# CONFIG_QUOTA is not set 718# CONFIG_QUOTA is not set
703CONFIG_DNOTIFY=y
704# CONFIG_AUTOFS_FS is not set 719# CONFIG_AUTOFS_FS is not set
705# CONFIG_AUTOFS4_FS is not set 720# CONFIG_AUTOFS4_FS is not set
706# CONFIG_FUSE_FS is not set 721# CONFIG_FUSE_FS is not set
@@ -743,15 +758,16 @@ CONFIG_TMPFS=y
743# CONFIG_JFFS2_FS is not set 758# CONFIG_JFFS2_FS is not set
744# CONFIG_CRAMFS is not set 759# CONFIG_CRAMFS is not set
745# CONFIG_VXFS_FS is not set 760# CONFIG_VXFS_FS is not set
761# CONFIG_MINIX_FS is not set
746# CONFIG_HPFS_FS is not set 762# CONFIG_HPFS_FS is not set
747# CONFIG_QNX4FS_FS is not set 763# CONFIG_QNX4FS_FS is not set
764# CONFIG_ROMFS_FS is not set
748# CONFIG_SYSV_FS is not set 765# CONFIG_SYSV_FS is not set
749# CONFIG_UFS_FS is not set 766# CONFIG_UFS_FS is not set
750CONFIG_NETWORK_FILESYSTEMS=y 767CONFIG_NETWORK_FILESYSTEMS=y
751CONFIG_NFS_FS=y 768CONFIG_NFS_FS=y
752# CONFIG_NFS_V3 is not set 769# CONFIG_NFS_V3 is not set
753# CONFIG_NFS_V4 is not set 770# CONFIG_NFS_V4 is not set
754# CONFIG_NFS_DIRECTIO is not set
755# CONFIG_NFSD is not set 771# CONFIG_NFSD is not set
756CONFIG_ROOT_NFS=y 772CONFIG_ROOT_NFS=y
757CONFIG_LOCKD=y 773CONFIG_LOCKD=y
@@ -790,6 +806,7 @@ CONFIG_PARTITION_ADVANCED=y
790# Library routines 806# Library routines
791# 807#
792CONFIG_BITREVERSE=y 808CONFIG_BITREVERSE=y
809# CONFIG_GENERIC_FIND_FIRST_BIT is not set
793# CONFIG_CRC_CCITT is not set 810# CONFIG_CRC_CCITT is not set
794# CONFIG_CRC16 is not set 811# CONFIG_CRC16 is not set
795# CONFIG_CRC_ITU_T is not set 812# CONFIG_CRC_ITU_T is not set
@@ -800,6 +817,7 @@ CONFIG_PLIST=y
800CONFIG_HAS_IOMEM=y 817CONFIG_HAS_IOMEM=y
801CONFIG_HAS_IOPORT=y 818CONFIG_HAS_IOPORT=y
802CONFIG_HAS_DMA=y 819CONFIG_HAS_DMA=y
820CONFIG_HAVE_LMB=y
803 821
804# 822#
805# Kernel hacking 823# Kernel hacking
@@ -807,6 +825,7 @@ CONFIG_HAS_DMA=y
807# CONFIG_PRINTK_TIME is not set 825# CONFIG_PRINTK_TIME is not set
808CONFIG_ENABLE_WARN_DEPRECATED=y 826CONFIG_ENABLE_WARN_DEPRECATED=y
809CONFIG_ENABLE_MUST_CHECK=y 827CONFIG_ENABLE_MUST_CHECK=y
828CONFIG_FRAME_WARN=1024
810# CONFIG_MAGIC_SYSRQ is not set 829# CONFIG_MAGIC_SYSRQ is not set
811# CONFIG_UNUSED_SYMBOLS is not set 830# CONFIG_UNUSED_SYMBOLS is not set
812CONFIG_DEBUG_FS=y 831CONFIG_DEBUG_FS=y
@@ -817,7 +836,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
817CONFIG_SCHED_DEBUG=y 836CONFIG_SCHED_DEBUG=y
818# CONFIG_SCHEDSTATS is not set 837# CONFIG_SCHEDSTATS is not set
819# CONFIG_TIMER_STATS is not set 838# CONFIG_TIMER_STATS is not set
839# CONFIG_DEBUG_OBJECTS is not set
820# CONFIG_SLUB_DEBUG_ON is not set 840# CONFIG_SLUB_DEBUG_ON is not set
841# CONFIG_SLUB_STATS is not set
821# CONFIG_DEBUG_RT_MUTEXES is not set 842# CONFIG_DEBUG_RT_MUTEXES is not set
822# CONFIG_RT_MUTEX_TESTER is not set 843# CONFIG_RT_MUTEX_TESTER is not set
823# CONFIG_DEBUG_SPINLOCK is not set 844# CONFIG_DEBUG_SPINLOCK is not set
@@ -829,9 +850,9 @@ CONFIG_DEBUG_MUTEXES=y
829# CONFIG_DEBUG_BUGVERBOSE is not set 850# CONFIG_DEBUG_BUGVERBOSE is not set
830# CONFIG_DEBUG_INFO is not set 851# CONFIG_DEBUG_INFO is not set
831# CONFIG_DEBUG_VM is not set 852# CONFIG_DEBUG_VM is not set
853# CONFIG_DEBUG_WRITECOUNT is not set
832# CONFIG_DEBUG_LIST is not set 854# CONFIG_DEBUG_LIST is not set
833# CONFIG_DEBUG_SG is not set 855# CONFIG_DEBUG_SG is not set
834CONFIG_FORCED_INLINING=y
835# CONFIG_BOOT_PRINTK_DELAY is not set 856# CONFIG_BOOT_PRINTK_DELAY is not set
836# CONFIG_BACKTRACE_SELF_TEST is not set 857# CONFIG_BACKTRACE_SELF_TEST is not set
837# CONFIG_FAULT_INJECTION is not set 858# CONFIG_FAULT_INJECTION is not set
@@ -841,6 +862,7 @@ CONFIG_FORCED_INLINING=y
841# CONFIG_DEBUG_PAGEALLOC is not set 862# CONFIG_DEBUG_PAGEALLOC is not set
842# CONFIG_DEBUGGER is not set 863# CONFIG_DEBUGGER is not set
843# CONFIG_KGDB_CONSOLE is not set 864# CONFIG_KGDB_CONSOLE is not set
865# CONFIG_IRQSTACKS is not set
844# CONFIG_VIRQ_DEBUG is not set 866# CONFIG_VIRQ_DEBUG is not set
845# CONFIG_BDI_SWITCH is not set 867# CONFIG_BDI_SWITCH is not set
846# CONFIG_PPC_EARLY_DEBUG is not set 868# CONFIG_PPC_EARLY_DEBUG is not set
@@ -852,48 +874,78 @@ CONFIG_FORCED_INLINING=y
852# CONFIG_SECURITY is not set 874# CONFIG_SECURITY is not set
853# CONFIG_SECURITY_FILE_CAPABILITIES is not set 875# CONFIG_SECURITY_FILE_CAPABILITIES is not set
854CONFIG_CRYPTO=y 876CONFIG_CRYPTO=y
855# CONFIG_CRYPTO_SEQIV is not set 877
878#
879# Crypto core or helper
880#
856# CONFIG_CRYPTO_MANAGER is not set 881# CONFIG_CRYPTO_MANAGER is not set
882# CONFIG_CRYPTO_GF128MUL is not set
883# CONFIG_CRYPTO_NULL is not set
884# CONFIG_CRYPTO_CRYPTD is not set
885# CONFIG_CRYPTO_AUTHENC is not set
886
887#
888# Authenticated Encryption with Associated Data
889#
890# CONFIG_CRYPTO_CCM is not set
891# CONFIG_CRYPTO_GCM is not set
892# CONFIG_CRYPTO_SEQIV is not set
893
894#
895# Block modes
896#
897# CONFIG_CRYPTO_CBC is not set
898# CONFIG_CRYPTO_CTR is not set
899# CONFIG_CRYPTO_CTS is not set
900# CONFIG_CRYPTO_ECB is not set
901# CONFIG_CRYPTO_LRW is not set
902# CONFIG_CRYPTO_PCBC is not set
903# CONFIG_CRYPTO_XTS is not set
904
905#
906# Hash modes
907#
857# CONFIG_CRYPTO_HMAC is not set 908# CONFIG_CRYPTO_HMAC is not set
858# CONFIG_CRYPTO_XCBC is not set 909# CONFIG_CRYPTO_XCBC is not set
859# CONFIG_CRYPTO_NULL is not set 910
911#
912# Digest
913#
914# CONFIG_CRYPTO_CRC32C is not set
860# CONFIG_CRYPTO_MD4 is not set 915# CONFIG_CRYPTO_MD4 is not set
861# CONFIG_CRYPTO_MD5 is not set 916# CONFIG_CRYPTO_MD5 is not set
917# CONFIG_CRYPTO_MICHAEL_MIC is not set
862# CONFIG_CRYPTO_SHA1 is not set 918# CONFIG_CRYPTO_SHA1 is not set
863# CONFIG_CRYPTO_SHA256 is not set 919# CONFIG_CRYPTO_SHA256 is not set
864# CONFIG_CRYPTO_SHA512 is not set 920# CONFIG_CRYPTO_SHA512 is not set
865# CONFIG_CRYPTO_WP512 is not set
866# CONFIG_CRYPTO_TGR192 is not set 921# CONFIG_CRYPTO_TGR192 is not set
867# CONFIG_CRYPTO_GF128MUL is not set 922# CONFIG_CRYPTO_WP512 is not set
868# CONFIG_CRYPTO_ECB is not set 923
869# CONFIG_CRYPTO_CBC is not set 924#
870# CONFIG_CRYPTO_PCBC is not set 925# Ciphers
871# CONFIG_CRYPTO_LRW is not set 926#
872# CONFIG_CRYPTO_XTS is not set
873# CONFIG_CRYPTO_CTR is not set
874# CONFIG_CRYPTO_GCM is not set
875# CONFIG_CRYPTO_CCM is not set
876# CONFIG_CRYPTO_CRYPTD is not set
877# CONFIG_CRYPTO_DES is not set
878# CONFIG_CRYPTO_FCRYPT is not set
879# CONFIG_CRYPTO_BLOWFISH is not set
880# CONFIG_CRYPTO_TWOFISH is not set
881# CONFIG_CRYPTO_SERPENT is not set
882# CONFIG_CRYPTO_AES is not set 927# CONFIG_CRYPTO_AES is not set
928# CONFIG_CRYPTO_ANUBIS is not set
929# CONFIG_CRYPTO_ARC4 is not set
930# CONFIG_CRYPTO_BLOWFISH is not set
931# CONFIG_CRYPTO_CAMELLIA is not set
883# CONFIG_CRYPTO_CAST5 is not set 932# CONFIG_CRYPTO_CAST5 is not set
884# CONFIG_CRYPTO_CAST6 is not set 933# CONFIG_CRYPTO_CAST6 is not set
885# CONFIG_CRYPTO_TEA is not set 934# CONFIG_CRYPTO_DES is not set
886# CONFIG_CRYPTO_ARC4 is not set 935# CONFIG_CRYPTO_FCRYPT is not set
887# CONFIG_CRYPTO_KHAZAD is not set 936# CONFIG_CRYPTO_KHAZAD is not set
888# CONFIG_CRYPTO_ANUBIS is not set
889# CONFIG_CRYPTO_SEED is not set
890# CONFIG_CRYPTO_SALSA20 is not set 937# CONFIG_CRYPTO_SALSA20 is not set
938# CONFIG_CRYPTO_SEED is not set
939# CONFIG_CRYPTO_SERPENT is not set
940# CONFIG_CRYPTO_TEA is not set
941# CONFIG_CRYPTO_TWOFISH is not set
942
943#
944# Compression
945#
891# CONFIG_CRYPTO_DEFLATE is not set 946# CONFIG_CRYPTO_DEFLATE is not set
892# CONFIG_CRYPTO_MICHAEL_MIC is not set
893# CONFIG_CRYPTO_CRC32C is not set
894# CONFIG_CRYPTO_CAMELLIA is not set
895# CONFIG_CRYPTO_AUTHENC is not set
896# CONFIG_CRYPTO_LZO is not set 947# CONFIG_CRYPTO_LZO is not set
897CONFIG_CRYPTO_HW=y 948CONFIG_CRYPTO_HW=y
898# CONFIG_PPC_CLOCK is not set 949# CONFIG_PPC_CLOCK is not set
899CONFIG_PPC_LIB_RHEAP=y 950CONFIG_PPC_LIB_RHEAP=y
951# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index b998539da86e..f33fd516fd54 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8540_ads_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:25 2008 4# Mon Jun 9 08:52:31 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 94# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -113,6 +116,7 @@ CONFIG_SLUB=y
113CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119# CONFIG_HAVE_DMA_ATTRS is not set
116CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
@@ -153,6 +157,7 @@ CONFIG_MPC8540_ADS=y
153# CONFIG_MPC85xx_CDS is not set 157# CONFIG_MPC85xx_CDS is not set
154# CONFIG_MPC85xx_MDS is not set 158# CONFIG_MPC85xx_MDS is not set
155# CONFIG_MPC85xx_DS is not set 159# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set
156# CONFIG_STX_GP3 is not set 161# CONFIG_STX_GP3 is not set
157# CONFIG_TQM8540 is not set 162# CONFIG_TQM8540 is not set
158# CONFIG_TQM8541 is not set 163# CONFIG_TQM8541 is not set
@@ -208,11 +213,13 @@ CONFIG_FLATMEM=y
208CONFIG_FLAT_NODE_MEM_MAP=y 213CONFIG_FLAT_NODE_MEM_MAP=y
209# CONFIG_SPARSEMEM_STATIC is not set 214# CONFIG_SPARSEMEM_STATIC is not set
210# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y
211CONFIG_SPLIT_PTLOCK_CPUS=4 217CONFIG_SPLIT_PTLOCK_CPUS=4
212# CONFIG_RESOURCES_64BIT is not set 218# CONFIG_RESOURCES_64BIT is not set
213CONFIG_ZONE_DMA_FLAG=1 219CONFIG_ZONE_DMA_FLAG=1
214CONFIG_BOUNCE=y 220CONFIG_BOUNCE=y
215CONFIG_VIRT_TO_BUS=y 221CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11
216CONFIG_PROC_DEVICETREE=y 223CONFIG_PROC_DEVICETREE=y
217# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
218# CONFIG_PM is not set 225# CONFIG_PM is not set
@@ -229,6 +236,7 @@ CONFIG_FSL_SOC=y
229# CONFIG_PCI_SYSCALL is not set 236# CONFIG_PCI_SYSCALL is not set
230# CONFIG_ARCH_SUPPORTS_MSI is not set 237# CONFIG_ARCH_SUPPORTS_MSI is not set
231# CONFIG_PCCARD is not set 238# CONFIG_PCCARD is not set
239# CONFIG_HAS_RAPIDIO is not set
232 240
233# 241#
234# Advanced setup 242# Advanced setup
@@ -238,11 +246,12 @@ CONFIG_FSL_SOC=y
238# 246#
239# Default settings for advanced configuration options are used 247# Default settings for advanced configuration options are used
240# 248#
241CONFIG_HIGHMEM_START=0xfe000000
242CONFIG_LOWMEM_SIZE=0x30000000 249CONFIG_LOWMEM_SIZE=0x30000000
250CONFIG_PAGE_OFFSET=0xc0000000
243CONFIG_KERNEL_START=0xc0000000 251CONFIG_KERNEL_START=0xc0000000
252CONFIG_PHYSICAL_START=0x00000000
253CONFIG_PHYSICAL_ALIGN=0x10000000
244CONFIG_TASK_SIZE=0xc0000000 254CONFIG_TASK_SIZE=0xc0000000
245CONFIG_BOOT_LOAD=0x00800000
246 255
247# 256#
248# Networking 257# Networking
@@ -290,8 +299,6 @@ CONFIG_TCP_CONG_CUBIC=y
290CONFIG_DEFAULT_TCP_CONG="cubic" 299CONFIG_DEFAULT_TCP_CONG="cubic"
291# CONFIG_TCP_MD5SIG is not set 300# CONFIG_TCP_MD5SIG is not set
292# CONFIG_IPV6 is not set 301# CONFIG_IPV6 is not set
293# CONFIG_INET6_XFRM_TUNNEL is not set
294# CONFIG_INET6_TUNNEL is not set
295# CONFIG_NETWORK_SECMARK is not set 302# CONFIG_NETWORK_SECMARK is not set
296# CONFIG_NETFILTER is not set 303# CONFIG_NETFILTER is not set
297# CONFIG_IP_DCCP is not set 304# CONFIG_IP_DCCP is not set
@@ -419,6 +426,7 @@ CONFIG_NETDEV_10000=y
419# 426#
420# CONFIG_WLAN_PRE80211 is not set 427# CONFIG_WLAN_PRE80211 is not set
421# CONFIG_WLAN_80211 is not set 428# CONFIG_WLAN_80211 is not set
429# CONFIG_IWLWIFI_LEDS is not set
422# CONFIG_WAN is not set 430# CONFIG_WAN is not set
423# CONFIG_PPP is not set 431# CONFIG_PPP is not set
424# CONFIG_SLIP is not set 432# CONFIG_SLIP is not set
@@ -463,6 +471,7 @@ CONFIG_INPUT=y
463# Character devices 471# Character devices
464# 472#
465# CONFIG_VT is not set 473# CONFIG_VT is not set
474CONFIG_DEVKMEM=y
466# CONFIG_SERIAL_NONSTANDARD is not set 475# CONFIG_SERIAL_NONSTANDARD is not set
467 476
468# 477#
@@ -494,12 +503,7 @@ CONFIG_GEN_RTC=y
494# CONFIG_RAW_DRIVER is not set 503# CONFIG_RAW_DRIVER is not set
495# CONFIG_TCG_TPM is not set 504# CONFIG_TCG_TPM is not set
496# CONFIG_I2C is not set 505# CONFIG_I2C is not set
497
498#
499# SPI support
500#
501# CONFIG_SPI is not set 506# CONFIG_SPI is not set
502# CONFIG_SPI_MASTER is not set
503# CONFIG_W1 is not set 507# CONFIG_W1 is not set
504# CONFIG_POWER_SUPPLY is not set 508# CONFIG_POWER_SUPPLY is not set
505CONFIG_HWMON=y 509CONFIG_HWMON=y
@@ -528,12 +532,22 @@ CONFIG_SSB_POSSIBLE=y
528# Multifunction device drivers 532# Multifunction device drivers
529# 533#
530# CONFIG_MFD_SM501 is not set 534# CONFIG_MFD_SM501 is not set
535# CONFIG_HTC_PASIC3 is not set
531 536
532# 537#
533# Multimedia devices 538# Multimedia devices
534# 539#
540
541#
542# Multimedia core support
543#
535# CONFIG_VIDEO_DEV is not set 544# CONFIG_VIDEO_DEV is not set
536# CONFIG_DVB_CORE is not set 545# CONFIG_DVB_CORE is not set
546# CONFIG_VIDEO_MEDIA is not set
547
548#
549# Multimedia drivers
550#
537CONFIG_DAB=y 551CONFIG_DAB=y
538 552
539# 553#
@@ -561,6 +575,8 @@ CONFIG_USB_SUPPORT=y
561# CONFIG_USB_ARCH_HAS_HCD is not set 575# CONFIG_USB_ARCH_HAS_HCD is not set
562# CONFIG_USB_ARCH_HAS_OHCI is not set 576# CONFIG_USB_ARCH_HAS_OHCI is not set
563# CONFIG_USB_ARCH_HAS_EHCI is not set 577# CONFIG_USB_ARCH_HAS_EHCI is not set
578# CONFIG_USB_OTG_WHITELIST is not set
579# CONFIG_USB_OTG_BLACKLIST_HUB is not set
564 580
565# 581#
566# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 582# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -569,13 +585,10 @@ CONFIG_USB_SUPPORT=y
569# CONFIG_MMC is not set 585# CONFIG_MMC is not set
570# CONFIG_MEMSTICK is not set 586# CONFIG_MEMSTICK is not set
571# CONFIG_NEW_LEDS is not set 587# CONFIG_NEW_LEDS is not set
588# CONFIG_ACCESSIBILITY is not set
572# CONFIG_EDAC is not set 589# CONFIG_EDAC is not set
573# CONFIG_RTC_CLASS is not set 590# CONFIG_RTC_CLASS is not set
574# CONFIG_DMADEVICES is not set 591# CONFIG_DMADEVICES is not set
575
576#
577# Userspace I/O
578#
579# CONFIG_UIO is not set 592# CONFIG_UIO is not set
580 593
581# 594#
@@ -595,7 +608,6 @@ CONFIG_FS_MBCACHE=y
595# CONFIG_JFS_FS is not set 608# CONFIG_JFS_FS is not set
596# CONFIG_FS_POSIX_ACL is not set 609# CONFIG_FS_POSIX_ACL is not set
597# CONFIG_XFS_FS is not set 610# CONFIG_XFS_FS is not set
598# CONFIG_GFS2_FS is not set
599# CONFIG_OCFS2_FS is not set 611# CONFIG_OCFS2_FS is not set
600CONFIG_DNOTIFY=y 612CONFIG_DNOTIFY=y
601CONFIG_INOTIFY=y 613CONFIG_INOTIFY=y
@@ -652,7 +664,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
652CONFIG_NFS_FS=y 664CONFIG_NFS_FS=y
653# CONFIG_NFS_V3 is not set 665# CONFIG_NFS_V3 is not set
654# CONFIG_NFS_V4 is not set 666# CONFIG_NFS_V4 is not set
655# CONFIG_NFS_DIRECTIO is not set
656# CONFIG_NFSD is not set 667# CONFIG_NFSD is not set
657CONFIG_ROOT_NFS=y 668CONFIG_ROOT_NFS=y
658CONFIG_LOCKD=y 669CONFIG_LOCKD=y
@@ -691,6 +702,7 @@ CONFIG_PARTITION_ADVANCED=y
691# Library routines 702# Library routines
692# 703#
693CONFIG_BITREVERSE=y 704CONFIG_BITREVERSE=y
705# CONFIG_GENERIC_FIND_FIRST_BIT is not set
694# CONFIG_CRC_CCITT is not set 706# CONFIG_CRC_CCITT is not set
695# CONFIG_CRC16 is not set 707# CONFIG_CRC16 is not set
696# CONFIG_CRC_ITU_T is not set 708# CONFIG_CRC_ITU_T is not set
@@ -701,6 +713,7 @@ CONFIG_PLIST=y
701CONFIG_HAS_IOMEM=y 713CONFIG_HAS_IOMEM=y
702CONFIG_HAS_IOPORT=y 714CONFIG_HAS_IOPORT=y
703CONFIG_HAS_DMA=y 715CONFIG_HAS_DMA=y
716CONFIG_HAVE_LMB=y
704 717
705# 718#
706# Kernel hacking 719# Kernel hacking
@@ -708,6 +721,7 @@ CONFIG_HAS_DMA=y
708# CONFIG_PRINTK_TIME is not set 721# CONFIG_PRINTK_TIME is not set
709CONFIG_ENABLE_WARN_DEPRECATED=y 722CONFIG_ENABLE_WARN_DEPRECATED=y
710CONFIG_ENABLE_MUST_CHECK=y 723CONFIG_ENABLE_MUST_CHECK=y
724CONFIG_FRAME_WARN=1024
711# CONFIG_MAGIC_SYSRQ is not set 725# CONFIG_MAGIC_SYSRQ is not set
712# CONFIG_UNUSED_SYMBOLS is not set 726# CONFIG_UNUSED_SYMBOLS is not set
713# CONFIG_DEBUG_FS is not set 727# CONFIG_DEBUG_FS is not set
@@ -718,6 +732,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
718CONFIG_SCHED_DEBUG=y 732CONFIG_SCHED_DEBUG=y
719# CONFIG_SCHEDSTATS is not set 733# CONFIG_SCHEDSTATS is not set
720# CONFIG_TIMER_STATS is not set 734# CONFIG_TIMER_STATS is not set
735# CONFIG_DEBUG_OBJECTS is not set
721# CONFIG_SLUB_DEBUG_ON is not set 736# CONFIG_SLUB_DEBUG_ON is not set
722# CONFIG_SLUB_STATS is not set 737# CONFIG_SLUB_STATS is not set
723# CONFIG_DEBUG_RT_MUTEXES is not set 738# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -730,6 +745,7 @@ CONFIG_DEBUG_MUTEXES=y
730# CONFIG_DEBUG_BUGVERBOSE is not set 745# CONFIG_DEBUG_BUGVERBOSE is not set
731# CONFIG_DEBUG_INFO is not set 746# CONFIG_DEBUG_INFO is not set
732# CONFIG_DEBUG_VM is not set 747# CONFIG_DEBUG_VM is not set
748# CONFIG_DEBUG_WRITECOUNT is not set
733# CONFIG_DEBUG_LIST is not set 749# CONFIG_DEBUG_LIST is not set
734# CONFIG_DEBUG_SG is not set 750# CONFIG_DEBUG_SG is not set
735# CONFIG_BOOT_PRINTK_DELAY is not set 751# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -740,6 +756,7 @@ CONFIG_DEBUG_MUTEXES=y
740# CONFIG_DEBUG_STACK_USAGE is not set 756# CONFIG_DEBUG_STACK_USAGE is not set
741# CONFIG_DEBUG_PAGEALLOC is not set 757# CONFIG_DEBUG_PAGEALLOC is not set
742# CONFIG_DEBUGGER is not set 758# CONFIG_DEBUGGER is not set
759# CONFIG_IRQSTACKS is not set
743# CONFIG_BDI_SWITCH is not set 760# CONFIG_BDI_SWITCH is not set
744# CONFIG_PPC_EARLY_DEBUG is not set 761# CONFIG_PPC_EARLY_DEBUG is not set
745 762
@@ -750,47 +767,77 @@ CONFIG_DEBUG_MUTEXES=y
750# CONFIG_SECURITY is not set 767# CONFIG_SECURITY is not set
751# CONFIG_SECURITY_FILE_CAPABILITIES is not set 768# CONFIG_SECURITY_FILE_CAPABILITIES is not set
752CONFIG_CRYPTO=y 769CONFIG_CRYPTO=y
753# CONFIG_CRYPTO_SEQIV is not set 770
771#
772# Crypto core or helper
773#
754# CONFIG_CRYPTO_MANAGER is not set 774# CONFIG_CRYPTO_MANAGER is not set
775# CONFIG_CRYPTO_GF128MUL is not set
776# CONFIG_CRYPTO_NULL is not set
777# CONFIG_CRYPTO_CRYPTD is not set
778# CONFIG_CRYPTO_AUTHENC is not set
779
780#
781# Authenticated Encryption with Associated Data
782#
783# CONFIG_CRYPTO_CCM is not set
784# CONFIG_CRYPTO_GCM is not set
785# CONFIG_CRYPTO_SEQIV is not set
786
787#
788# Block modes
789#
790# CONFIG_CRYPTO_CBC is not set
791# CONFIG_CRYPTO_CTR is not set
792# CONFIG_CRYPTO_CTS is not set
793# CONFIG_CRYPTO_ECB is not set
794# CONFIG_CRYPTO_LRW is not set
795# CONFIG_CRYPTO_PCBC is not set
796# CONFIG_CRYPTO_XTS is not set
797
798#
799# Hash modes
800#
755# CONFIG_CRYPTO_HMAC is not set 801# CONFIG_CRYPTO_HMAC is not set
756# CONFIG_CRYPTO_XCBC is not set 802# CONFIG_CRYPTO_XCBC is not set
757# CONFIG_CRYPTO_NULL is not set 803
804#
805# Digest
806#
807# CONFIG_CRYPTO_CRC32C is not set
758# CONFIG_CRYPTO_MD4 is not set 808# CONFIG_CRYPTO_MD4 is not set
759# CONFIG_CRYPTO_MD5 is not set 809# CONFIG_CRYPTO_MD5 is not set
810# CONFIG_CRYPTO_MICHAEL_MIC is not set
760# CONFIG_CRYPTO_SHA1 is not set 811# CONFIG_CRYPTO_SHA1 is not set
761# CONFIG_CRYPTO_SHA256 is not set 812# CONFIG_CRYPTO_SHA256 is not set
762# CONFIG_CRYPTO_SHA512 is not set 813# CONFIG_CRYPTO_SHA512 is not set
763# CONFIG_CRYPTO_WP512 is not set
764# CONFIG_CRYPTO_TGR192 is not set 814# CONFIG_CRYPTO_TGR192 is not set
765# CONFIG_CRYPTO_GF128MUL is not set 815# CONFIG_CRYPTO_WP512 is not set
766# CONFIG_CRYPTO_ECB is not set 816
767# CONFIG_CRYPTO_CBC is not set 817#
768# CONFIG_CRYPTO_PCBC is not set 818# Ciphers
769# CONFIG_CRYPTO_LRW is not set 819#
770# CONFIG_CRYPTO_XTS is not set
771# CONFIG_CRYPTO_CTR is not set
772# CONFIG_CRYPTO_GCM is not set
773# CONFIG_CRYPTO_CCM is not set
774# CONFIG_CRYPTO_CRYPTD is not set
775# CONFIG_CRYPTO_DES is not set
776# CONFIG_CRYPTO_FCRYPT is not set
777# CONFIG_CRYPTO_BLOWFISH is not set
778# CONFIG_CRYPTO_TWOFISH is not set
779# CONFIG_CRYPTO_SERPENT is not set
780# CONFIG_CRYPTO_AES is not set 820# CONFIG_CRYPTO_AES is not set
821# CONFIG_CRYPTO_ANUBIS is not set
822# CONFIG_CRYPTO_ARC4 is not set
823# CONFIG_CRYPTO_BLOWFISH is not set
824# CONFIG_CRYPTO_CAMELLIA is not set
781# CONFIG_CRYPTO_CAST5 is not set 825# CONFIG_CRYPTO_CAST5 is not set
782# CONFIG_CRYPTO_CAST6 is not set 826# CONFIG_CRYPTO_CAST6 is not set
783# CONFIG_CRYPTO_TEA is not set 827# CONFIG_CRYPTO_DES is not set
784# CONFIG_CRYPTO_ARC4 is not set 828# CONFIG_CRYPTO_FCRYPT is not set
785# CONFIG_CRYPTO_KHAZAD is not set 829# CONFIG_CRYPTO_KHAZAD is not set
786# CONFIG_CRYPTO_ANUBIS is not set
787# CONFIG_CRYPTO_SEED is not set
788# CONFIG_CRYPTO_SALSA20 is not set 830# CONFIG_CRYPTO_SALSA20 is not set
831# CONFIG_CRYPTO_SEED is not set
832# CONFIG_CRYPTO_SERPENT is not set
833# CONFIG_CRYPTO_TEA is not set
834# CONFIG_CRYPTO_TWOFISH is not set
835
836#
837# Compression
838#
789# CONFIG_CRYPTO_DEFLATE is not set 839# CONFIG_CRYPTO_DEFLATE is not set
790# CONFIG_CRYPTO_MICHAEL_MIC is not set
791# CONFIG_CRYPTO_CRC32C is not set
792# CONFIG_CRYPTO_CAMELLIA is not set
793# CONFIG_CRYPTO_AUTHENC is not set
794# CONFIG_CRYPTO_LZO is not set 840# CONFIG_CRYPTO_LZO is not set
795CONFIG_CRYPTO_HW=y 841CONFIG_CRYPTO_HW=y
796# CONFIG_PPC_CLOCK is not set 842# CONFIG_PPC_CLOCK is not set
843# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index a9f113b243ae..042a85ea7b72 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:03 2008 4# Mon Jun 9 08:52:32 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
94CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
95CONFIG_KALLSYMS_EXTRA_PASS=y 98CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123# CONFIG_HAVE_DMA_ATTRS is not set
120CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
125CONFIG_MODULES=y 129CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set
126CONFIG_MODULE_UNLOAD=y 131CONFIG_MODULE_UNLOAD=y
127CONFIG_MODULE_FORCE_UNLOAD=y 132CONFIG_MODULE_FORCE_UNLOAD=y
128CONFIG_MODVERSIONS=y 133CONFIG_MODVERSIONS=y
@@ -203,7 +208,6 @@ CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
204CONFIG_BINFMT_ELF=y 209CONFIG_BINFMT_ELF=y
205CONFIG_BINFMT_MISC=m 210CONFIG_BINFMT_MISC=m
206CONFIG_FORCE_MAX_ZONEORDER=11
207CONFIG_MATH_EMULATION=y 211CONFIG_MATH_EMULATION=y
208# CONFIG_IOMMU_HELPER is not set 212# CONFIG_IOMMU_HELPER is not set
209CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -219,11 +223,13 @@ CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 223CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set 224# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
223# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 233CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
229# CONFIG_PM is not set 235# CONFIG_PM is not set
@@ -248,6 +254,7 @@ CONFIG_PCI_LEGACY=y
248# CONFIG_PCI_DEBUG is not set 254# CONFIG_PCI_DEBUG is not set
249# CONFIG_PCCARD is not set 255# CONFIG_PCCARD is not set
250# CONFIG_HOTPLUG_PCI is not set 256# CONFIG_HOTPLUG_PCI is not set
257# CONFIG_HAS_RAPIDIO is not set
251 258
252# 259#
253# Advanced setup 260# Advanced setup
@@ -257,11 +264,12 @@ CONFIG_PCI_LEGACY=y
257# 264#
258# Default settings for advanced configuration options are used 265# Default settings for advanced configuration options are used
259# 266#
260CONFIG_HIGHMEM_START=0xfe000000
261CONFIG_LOWMEM_SIZE=0x30000000 267CONFIG_LOWMEM_SIZE=0x30000000
268CONFIG_PAGE_OFFSET=0xc0000000
262CONFIG_KERNEL_START=0xc0000000 269CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000
271CONFIG_PHYSICAL_ALIGN=0x10000000
263CONFIG_TASK_SIZE=0xc0000000 272CONFIG_TASK_SIZE=0xc0000000
264CONFIG_BOOT_LOAD=0x00800000
265 273
266# 274#
267# Networking 275# Networking
@@ -332,8 +340,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
332CONFIG_INET6_XFRM_MODE_BEET=y 340CONFIG_INET6_XFRM_MODE_BEET=y
333# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 341# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
334CONFIG_IPV6_SIT=y 342CONFIG_IPV6_SIT=y
343CONFIG_IPV6_NDISC_NODETYPE=y
335# CONFIG_IPV6_TUNNEL is not set 344# CONFIG_IPV6_TUNNEL is not set
336# CONFIG_IPV6_MULTIPLE_TABLES is not set 345# CONFIG_IPV6_MULTIPLE_TABLES is not set
346# CONFIG_IPV6_MROUTE is not set
337# CONFIG_NETWORK_SECMARK is not set 347# CONFIG_NETWORK_SECMARK is not set
338# CONFIG_NETFILTER is not set 348# CONFIG_NETFILTER is not set
339# CONFIG_IP_DCCP is not set 349# CONFIG_IP_DCCP is not set
@@ -395,6 +405,7 @@ CONFIG_FW_LOADER=y
395# CONFIG_CONNECTOR is not set 405# CONFIG_CONNECTOR is not set
396# CONFIG_MTD is not set 406# CONFIG_MTD is not set
397CONFIG_OF_DEVICE=y 407CONFIG_OF_DEVICE=y
408CONFIG_OF_I2C=y
398# CONFIG_PARPORT is not set 409# CONFIG_PARPORT is not set
399CONFIG_BLK_DEV=y 410CONFIG_BLK_DEV=y
400# CONFIG_BLK_DEV_FD is not set 411# CONFIG_BLK_DEV_FD is not set
@@ -501,7 +512,11 @@ CONFIG_SCSI_LOWLEVEL=y
501# CONFIG_SCSI_SRP is not set 512# CONFIG_SCSI_SRP is not set
502CONFIG_ATA=y 513CONFIG_ATA=y
503# CONFIG_ATA_NONSTANDARD is not set 514# CONFIG_ATA_NONSTANDARD is not set
515CONFIG_SATA_PMP=y
504CONFIG_SATA_AHCI=y 516CONFIG_SATA_AHCI=y
517# CONFIG_SATA_SIL24 is not set
518# CONFIG_SATA_FSL is not set
519CONFIG_ATA_SFF=y
505# CONFIG_SATA_SVW is not set 520# CONFIG_SATA_SVW is not set
506# CONFIG_ATA_PIIX is not set 521# CONFIG_ATA_PIIX is not set
507# CONFIG_SATA_MV is not set 522# CONFIG_SATA_MV is not set
@@ -511,13 +526,11 @@ CONFIG_SATA_AHCI=y
511# CONFIG_SATA_PROMISE is not set 526# CONFIG_SATA_PROMISE is not set
512# CONFIG_SATA_SX4 is not set 527# CONFIG_SATA_SX4 is not set
513# CONFIG_SATA_SIL is not set 528# CONFIG_SATA_SIL is not set
514# CONFIG_SATA_SIL24 is not set
515# CONFIG_SATA_SIS is not set 529# CONFIG_SATA_SIS is not set
516# CONFIG_SATA_ULI is not set 530# CONFIG_SATA_ULI is not set
517# CONFIG_SATA_VIA is not set 531# CONFIG_SATA_VIA is not set
518# CONFIG_SATA_VITESSE is not set 532# CONFIG_SATA_VITESSE is not set
519# CONFIG_SATA_INIC162X is not set 533# CONFIG_SATA_INIC162X is not set
520# CONFIG_SATA_FSL is not set
521CONFIG_PATA_ALI=y 534CONFIG_PATA_ALI=y
522# CONFIG_PATA_AMD is not set 535# CONFIG_PATA_AMD is not set
523# CONFIG_PATA_ARTOP is not set 536# CONFIG_PATA_ARTOP is not set
@@ -557,6 +570,7 @@ CONFIG_PATA_ALI=y
557# CONFIG_PATA_VIA is not set 570# CONFIG_PATA_VIA is not set
558# CONFIG_PATA_WINBOND is not set 571# CONFIG_PATA_WINBOND is not set
559# CONFIG_PATA_PLATFORM is not set 572# CONFIG_PATA_PLATFORM is not set
573# CONFIG_PATA_SCH is not set
560# CONFIG_MD is not set 574# CONFIG_MD is not set
561# CONFIG_FUSION is not set 575# CONFIG_FUSION is not set
562 576
@@ -622,7 +636,6 @@ CONFIG_NETDEV_1000=y
622# CONFIG_SIS190 is not set 636# CONFIG_SIS190 is not set
623# CONFIG_SKGE is not set 637# CONFIG_SKGE is not set
624# CONFIG_SKY2 is not set 638# CONFIG_SKY2 is not set
625# CONFIG_SK98LIN is not set
626# CONFIG_VIA_VELOCITY is not set 639# CONFIG_VIA_VELOCITY is not set
627# CONFIG_TIGON3 is not set 640# CONFIG_TIGON3 is not set
628# CONFIG_BNX2 is not set 641# CONFIG_BNX2 is not set
@@ -642,6 +655,7 @@ CONFIG_NETDEV_10000=y
642# CONFIG_MLX4_CORE is not set 655# CONFIG_MLX4_CORE is not set
643# CONFIG_TEHUTI is not set 656# CONFIG_TEHUTI is not set
644# CONFIG_BNX2X is not set 657# CONFIG_BNX2X is not set
658# CONFIG_SFC is not set
645# CONFIG_TR is not set 659# CONFIG_TR is not set
646 660
647# 661#
@@ -649,6 +663,7 @@ CONFIG_NETDEV_10000=y
649# 663#
650# CONFIG_WLAN_PRE80211 is not set 664# CONFIG_WLAN_PRE80211 is not set
651# CONFIG_WLAN_80211 is not set 665# CONFIG_WLAN_80211 is not set
666# CONFIG_IWLWIFI_LEDS is not set
652 667
653# 668#
654# USB Network Adapters 669# USB Network Adapters
@@ -713,6 +728,7 @@ CONFIG_VT=y
713CONFIG_VT_CONSOLE=y 728CONFIG_VT_CONSOLE=y
714CONFIG_HW_CONSOLE=y 729CONFIG_HW_CONSOLE=y
715# CONFIG_VT_HW_CONSOLE_BINDING is not set 730# CONFIG_VT_HW_CONSOLE_BINDING is not set
731CONFIG_DEVKMEM=y
716# CONFIG_SERIAL_NONSTANDARD is not set 732# CONFIG_SERIAL_NONSTANDARD is not set
717# CONFIG_NOZOMI is not set 733# CONFIG_NOZOMI is not set
718 734
@@ -744,7 +760,6 @@ CONFIG_LEGACY_PTY_COUNT=256
744# CONFIG_IPMI_HANDLER is not set 760# CONFIG_IPMI_HANDLER is not set
745# CONFIG_HW_RANDOM is not set 761# CONFIG_HW_RANDOM is not set
746CONFIG_NVRAM=y 762CONFIG_NVRAM=y
747# CONFIG_GEN_RTC is not set
748# CONFIG_R3964 is not set 763# CONFIG_R3964 is not set
749# CONFIG_APPLICOM is not set 764# CONFIG_APPLICOM is not set
750# CONFIG_RAW_DRIVER is not set 765# CONFIG_RAW_DRIVER is not set
@@ -755,13 +770,6 @@ CONFIG_I2C_BOARDINFO=y
755# CONFIG_I2C_CHARDEV is not set 770# CONFIG_I2C_CHARDEV is not set
756 771
757# 772#
758# I2C Algorithms
759#
760# CONFIG_I2C_ALGOBIT is not set
761# CONFIG_I2C_ALGOPCF is not set
762# CONFIG_I2C_ALGOPCA is not set
763
764#
765# I2C Hardware Bus support 773# I2C Hardware Bus support
766# 774#
767# CONFIG_I2C_ALI1535 is not set 775# CONFIG_I2C_ALI1535 is not set
@@ -788,6 +796,7 @@ CONFIG_I2C_MPC=y
788# CONFIG_I2C_VIA is not set 796# CONFIG_I2C_VIA is not set
789# CONFIG_I2C_VIAPRO is not set 797# CONFIG_I2C_VIAPRO is not set
790# CONFIG_I2C_VOODOO3 is not set 798# CONFIG_I2C_VOODOO3 is not set
799# CONFIG_I2C_PCA_PLATFORM is not set
791 800
792# 801#
793# Miscellaneous I2C Chip support 802# Miscellaneous I2C Chip support
@@ -797,19 +806,13 @@ CONFIG_SENSORS_EEPROM=y
797# CONFIG_SENSORS_PCF8574 is not set 806# CONFIG_SENSORS_PCF8574 is not set
798# CONFIG_PCF8575 is not set 807# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCF8591 is not set 808# CONFIG_SENSORS_PCF8591 is not set
800# CONFIG_TPS65010 is not set
801# CONFIG_SENSORS_MAX6875 is not set 809# CONFIG_SENSORS_MAX6875 is not set
802# CONFIG_SENSORS_TSL2550 is not set 810# CONFIG_SENSORS_TSL2550 is not set
803# CONFIG_I2C_DEBUG_CORE is not set 811# CONFIG_I2C_DEBUG_CORE is not set
804# CONFIG_I2C_DEBUG_ALGO is not set 812# CONFIG_I2C_DEBUG_ALGO is not set
805# CONFIG_I2C_DEBUG_BUS is not set 813# CONFIG_I2C_DEBUG_BUS is not set
806# CONFIG_I2C_DEBUG_CHIP is not set 814# CONFIG_I2C_DEBUG_CHIP is not set
807
808#
809# SPI support
810#
811# CONFIG_SPI is not set 815# CONFIG_SPI is not set
812# CONFIG_SPI_MASTER is not set
813# CONFIG_W1 is not set 816# CONFIG_W1 is not set
814# CONFIG_POWER_SUPPLY is not set 817# CONFIG_POWER_SUPPLY is not set
815# CONFIG_HWMON is not set 818# CONFIG_HWMON is not set
@@ -826,13 +829,33 @@ CONFIG_SSB_POSSIBLE=y
826# Multifunction device drivers 829# Multifunction device drivers
827# 830#
828# CONFIG_MFD_SM501 is not set 831# CONFIG_MFD_SM501 is not set
832# CONFIG_HTC_PASIC3 is not set
829 833
830# 834#
831# Multimedia devices 835# Multimedia devices
832# 836#
837
838#
839# Multimedia core support
840#
833# CONFIG_VIDEO_DEV is not set 841# CONFIG_VIDEO_DEV is not set
834CONFIG_DVB_CORE=m 842CONFIG_DVB_CORE=m
835# CONFIG_DVB_CORE_ATTACH is not set 843CONFIG_VIDEO_MEDIA=m
844
845#
846# Multimedia drivers
847#
848# CONFIG_MEDIA_ATTACH is not set
849CONFIG_MEDIA_TUNER=m
850# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
851CONFIG_MEDIA_TUNER_SIMPLE=m
852CONFIG_MEDIA_TUNER_TDA8290=m
853CONFIG_MEDIA_TUNER_TDA9887=m
854CONFIG_MEDIA_TUNER_TEA5761=m
855CONFIG_MEDIA_TUNER_TEA5767=m
856CONFIG_MEDIA_TUNER_MT20XX=m
857CONFIG_MEDIA_TUNER_XC2028=m
858CONFIG_MEDIA_TUNER_XC5000=m
836CONFIG_DVB_CAPTURE_DRIVERS=y 859CONFIG_DVB_CAPTURE_DRIVERS=y
837 860
838# 861#
@@ -875,14 +898,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
875# 898#
876# DVB-S (satellite) frontends 899# DVB-S (satellite) frontends
877# 900#
878# CONFIG_DVB_STV0299 is not set
879# CONFIG_DVB_CX24110 is not set 901# CONFIG_DVB_CX24110 is not set
880# CONFIG_DVB_CX24123 is not set 902# CONFIG_DVB_CX24123 is not set
881# CONFIG_DVB_TDA8083 is not set
882# CONFIG_DVB_MT312 is not set 903# CONFIG_DVB_MT312 is not set
883# CONFIG_DVB_VES1X93 is not set
884# CONFIG_DVB_S5H1420 is not set 904# CONFIG_DVB_S5H1420 is not set
905# CONFIG_DVB_STV0299 is not set
906# CONFIG_DVB_TDA8083 is not set
885# CONFIG_DVB_TDA10086 is not set 907# CONFIG_DVB_TDA10086 is not set
908# CONFIG_DVB_VES1X93 is not set
909# CONFIG_DVB_TUNER_ITD1000 is not set
910# CONFIG_DVB_TDA826X is not set
911# CONFIG_DVB_TUA6100 is not set
886 912
887# 913#
888# DVB-T (terrestrial) frontends 914# DVB-T (terrestrial) frontends
@@ -900,6 +926,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
900# CONFIG_DVB_DIB3000MC is not set 926# CONFIG_DVB_DIB3000MC is not set
901# CONFIG_DVB_DIB7000M is not set 927# CONFIG_DVB_DIB7000M is not set
902# CONFIG_DVB_DIB7000P is not set 928# CONFIG_DVB_DIB7000P is not set
929# CONFIG_DVB_TDA10048 is not set
903 930
904# 931#
905# DVB-C (cable) frontends 932# DVB-C (cable) frontends
@@ -918,27 +945,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
918# CONFIG_DVB_BCM3510 is not set 945# CONFIG_DVB_BCM3510 is not set
919# CONFIG_DVB_LGDT330X is not set 946# CONFIG_DVB_LGDT330X is not set
920# CONFIG_DVB_S5H1409 is not set 947# CONFIG_DVB_S5H1409 is not set
948# CONFIG_DVB_AU8522 is not set
949# CONFIG_DVB_S5H1411 is not set
921 950
922# 951#
923# Tuners/PLL support 952# Digital terrestrial only tuners/PLL
924# 953#
925# CONFIG_DVB_PLL is not set 954# CONFIG_DVB_PLL is not set
926# CONFIG_DVB_TDA826X is not set
927# CONFIG_DVB_TDA827X is not set
928# CONFIG_DVB_TDA18271 is not set
929# CONFIG_DVB_TUNER_QT1010 is not set
930# CONFIG_DVB_TUNER_MT2060 is not set
931# CONFIG_DVB_TUNER_MT2266 is not set
932# CONFIG_DVB_TUNER_MT2131 is not set
933# CONFIG_DVB_TUNER_DIB0070 is not set 955# CONFIG_DVB_TUNER_DIB0070 is not set
934# CONFIG_DVB_TUNER_XC5000 is not set
935 956
936# 957#
937# Miscellaneous devices 958# SEC control devices for DVB-S
938# 959#
939# CONFIG_DVB_LNBP21 is not set 960# CONFIG_DVB_LNBP21 is not set
961# CONFIG_DVB_ISL6405 is not set
940# CONFIG_DVB_ISL6421 is not set 962# CONFIG_DVB_ISL6421 is not set
941# CONFIG_DVB_TUA6100 is not set
942CONFIG_DAB=y 963CONFIG_DAB=y
943# CONFIG_USB_DABUSB is not set 964# CONFIG_USB_DABUSB is not set
944 965
@@ -1005,6 +1026,7 @@ CONFIG_SND_AC97_CODEC=y
1005# CONFIG_SND_AU8810 is not set 1026# CONFIG_SND_AU8810 is not set
1006# CONFIG_SND_AU8820 is not set 1027# CONFIG_SND_AU8820 is not set
1007# CONFIG_SND_AU8830 is not set 1028# CONFIG_SND_AU8830 is not set
1029# CONFIG_SND_AW2 is not set
1008# CONFIG_SND_AZT3328 is not set 1030# CONFIG_SND_AZT3328 is not set
1009# CONFIG_SND_BT87X is not set 1031# CONFIG_SND_BT87X is not set
1010# CONFIG_SND_CA0106 is not set 1032# CONFIG_SND_CA0106 is not set
@@ -1079,11 +1101,11 @@ CONFIG_SND_INTEL8X0=y
1079# CONFIG_SND_SOC is not set 1101# CONFIG_SND_SOC is not set
1080 1102
1081# 1103#
1082# SoC Audio support for SuperH 1104# ALSA SoC audio for Freescale SOCs
1083# 1105#
1084 1106
1085# 1107#
1086# ALSA SoC audio for Freescale SOCs 1108# SoC Audio for the Texas Instruments OMAP
1087# 1109#
1088 1110
1089# 1111#
@@ -1118,16 +1140,20 @@ CONFIG_USB_DEVICEFS=y
1118CONFIG_USB_DEVICE_CLASS=y 1140CONFIG_USB_DEVICE_CLASS=y
1119# CONFIG_USB_DYNAMIC_MINORS is not set 1141# CONFIG_USB_DYNAMIC_MINORS is not set
1120# CONFIG_USB_OTG is not set 1142# CONFIG_USB_OTG is not set
1143# CONFIG_USB_OTG_WHITELIST is not set
1144# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1121 1145
1122# 1146#
1123# USB Host Controller Drivers 1147# USB Host Controller Drivers
1124# 1148#
1149# CONFIG_USB_C67X00_HCD is not set
1125CONFIG_USB_EHCI_HCD=y 1150CONFIG_USB_EHCI_HCD=y
1126# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1151# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1127# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1152# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1128# CONFIG_USB_EHCI_FSL is not set 1153# CONFIG_USB_EHCI_FSL is not set
1129CONFIG_USB_EHCI_HCD_PPC_OF=y 1154CONFIG_USB_EHCI_HCD_PPC_OF=y
1130# CONFIG_USB_ISP116X_HCD is not set 1155# CONFIG_USB_ISP116X_HCD is not set
1156# CONFIG_USB_ISP1760_HCD is not set
1131CONFIG_USB_OHCI_HCD=y 1157CONFIG_USB_OHCI_HCD=y
1132CONFIG_USB_OHCI_HCD_PPC_OF=y 1158CONFIG_USB_OHCI_HCD_PPC_OF=y
1133CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1159CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1145,6 +1171,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1145# 1171#
1146# CONFIG_USB_ACM is not set 1172# CONFIG_USB_ACM is not set
1147# CONFIG_USB_PRINTER is not set 1173# CONFIG_USB_PRINTER is not set
1174# CONFIG_USB_WDM is not set
1148 1175
1149# 1176#
1150# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1177# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1164,7 +1191,9 @@ CONFIG_USB_STORAGE=y
1164# CONFIG_USB_STORAGE_SDDR55 is not set 1191# CONFIG_USB_STORAGE_SDDR55 is not set
1165# CONFIG_USB_STORAGE_JUMPSHOT is not set 1192# CONFIG_USB_STORAGE_JUMPSHOT is not set
1166# CONFIG_USB_STORAGE_ALAUDA is not set 1193# CONFIG_USB_STORAGE_ALAUDA is not set
1194# CONFIG_USB_STORAGE_ONETOUCH is not set
1167# CONFIG_USB_STORAGE_KARMA is not set 1195# CONFIG_USB_STORAGE_KARMA is not set
1196# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1168# CONFIG_USB_LIBUSUAL is not set 1197# CONFIG_USB_LIBUSUAL is not set
1169 1198
1170# 1199#
@@ -1202,10 +1231,12 @@ CONFIG_USB_MON=y
1202# CONFIG_USB_TRANCEVIBRATOR is not set 1231# CONFIG_USB_TRANCEVIBRATOR is not set
1203# CONFIG_USB_IOWARRIOR is not set 1232# CONFIG_USB_IOWARRIOR is not set
1204# CONFIG_USB_TEST is not set 1233# CONFIG_USB_TEST is not set
1234# CONFIG_USB_ISIGHTFW is not set
1205# CONFIG_USB_GADGET is not set 1235# CONFIG_USB_GADGET is not set
1206# CONFIG_MMC is not set 1236# CONFIG_MMC is not set
1207# CONFIG_MEMSTICK is not set 1237# CONFIG_MEMSTICK is not set
1208# CONFIG_NEW_LEDS is not set 1238# CONFIG_NEW_LEDS is not set
1239# CONFIG_ACCESSIBILITY is not set
1209# CONFIG_INFINIBAND is not set 1240# CONFIG_INFINIBAND is not set
1210# CONFIG_EDAC is not set 1241# CONFIG_EDAC is not set
1211CONFIG_RTC_LIB=y 1242CONFIG_RTC_LIB=y
@@ -1257,23 +1288,19 @@ CONFIG_RTC_DRV_CMOS=y
1257# 1288#
1258# on-CPU RTC drivers 1289# on-CPU RTC drivers
1259# 1290#
1291# CONFIG_RTC_DRV_PPC is not set
1260CONFIG_DMADEVICES=y 1292CONFIG_DMADEVICES=y
1261 1293
1262# 1294#
1263# DMA Devices 1295# DMA Devices
1264# 1296#
1265CONFIG_FSL_DMA=y 1297CONFIG_FSL_DMA=y
1266# CONFIG_FSL_DMA_SELFTEST is not set
1267CONFIG_DMA_ENGINE=y 1298CONFIG_DMA_ENGINE=y
1268 1299
1269# 1300#
1270# DMA Clients 1301# DMA Clients
1271# 1302#
1272# CONFIG_NET_DMA is not set 1303# CONFIG_NET_DMA is not set
1273
1274#
1275# Userspace I/O
1276#
1277# CONFIG_UIO is not set 1304# CONFIG_UIO is not set
1278 1305
1279# 1306#
@@ -1293,7 +1320,6 @@ CONFIG_FS_MBCACHE=y
1293# CONFIG_JFS_FS is not set 1320# CONFIG_JFS_FS is not set
1294# CONFIG_FS_POSIX_ACL is not set 1321# CONFIG_FS_POSIX_ACL is not set
1295# CONFIG_XFS_FS is not set 1322# CONFIG_XFS_FS is not set
1296# CONFIG_GFS2_FS is not set
1297# CONFIG_OCFS2_FS is not set 1323# CONFIG_OCFS2_FS is not set
1298CONFIG_DNOTIFY=y 1324CONFIG_DNOTIFY=y
1299CONFIG_INOTIFY=y 1325CONFIG_INOTIFY=y
@@ -1363,10 +1389,9 @@ CONFIG_NFS_FS=y
1363CONFIG_NFS_V3=y 1389CONFIG_NFS_V3=y
1364# CONFIG_NFS_V3_ACL is not set 1390# CONFIG_NFS_V3_ACL is not set
1365CONFIG_NFS_V4=y 1391CONFIG_NFS_V4=y
1366# CONFIG_NFS_DIRECTIO is not set
1367CONFIG_NFSD=y 1392CONFIG_NFSD=y
1368# CONFIG_NFSD_V3 is not set 1393# CONFIG_NFSD_V3 is not set
1369CONFIG_NFSD_TCP=y 1394# CONFIG_NFSD_V4 is not set
1370CONFIG_ROOT_NFS=y 1395CONFIG_ROOT_NFS=y
1371CONFIG_LOCKD=y 1396CONFIG_LOCKD=y
1372CONFIG_LOCKD_V4=y 1397CONFIG_LOCKD_V4=y
@@ -1450,9 +1475,10 @@ CONFIG_NLS_UTF8=m
1450# Library routines 1475# Library routines
1451# 1476#
1452CONFIG_BITREVERSE=y 1477CONFIG_BITREVERSE=y
1478# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1453# CONFIG_CRC_CCITT is not set 1479# CONFIG_CRC_CCITT is not set
1454# CONFIG_CRC16 is not set 1480# CONFIG_CRC16 is not set
1455# CONFIG_CRC_ITU_T is not set 1481CONFIG_CRC_ITU_T=m
1456CONFIG_CRC32=y 1482CONFIG_CRC32=y
1457# CONFIG_CRC7 is not set 1483# CONFIG_CRC7 is not set
1458CONFIG_LIBCRC32C=m 1484CONFIG_LIBCRC32C=m
@@ -1469,6 +1495,7 @@ CONFIG_HAVE_LMB=y
1469# CONFIG_PRINTK_TIME is not set 1495# CONFIG_PRINTK_TIME is not set
1470CONFIG_ENABLE_WARN_DEPRECATED=y 1496CONFIG_ENABLE_WARN_DEPRECATED=y
1471CONFIG_ENABLE_MUST_CHECK=y 1497CONFIG_ENABLE_MUST_CHECK=y
1498CONFIG_FRAME_WARN=1024
1472# CONFIG_MAGIC_SYSRQ is not set 1499# CONFIG_MAGIC_SYSRQ is not set
1473# CONFIG_UNUSED_SYMBOLS is not set 1500# CONFIG_UNUSED_SYMBOLS is not set
1474# CONFIG_DEBUG_FS is not set 1501# CONFIG_DEBUG_FS is not set
@@ -1479,6 +1506,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1479CONFIG_SCHED_DEBUG=y 1506CONFIG_SCHED_DEBUG=y
1480# CONFIG_SCHEDSTATS is not set 1507# CONFIG_SCHEDSTATS is not set
1481# CONFIG_TIMER_STATS is not set 1508# CONFIG_TIMER_STATS is not set
1509# CONFIG_DEBUG_OBJECTS is not set
1482# CONFIG_SLUB_DEBUG_ON is not set 1510# CONFIG_SLUB_DEBUG_ON is not set
1483# CONFIG_SLUB_STATS is not set 1511# CONFIG_SLUB_STATS is not set
1484# CONFIG_DEBUG_RT_MUTEXES is not set 1512# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1492,6 +1520,7 @@ CONFIG_SCHED_DEBUG=y
1492# CONFIG_DEBUG_BUGVERBOSE is not set 1520# CONFIG_DEBUG_BUGVERBOSE is not set
1493CONFIG_DEBUG_INFO=y 1521CONFIG_DEBUG_INFO=y
1494# CONFIG_DEBUG_VM is not set 1522# CONFIG_DEBUG_VM is not set
1523# CONFIG_DEBUG_WRITECOUNT is not set
1495# CONFIG_DEBUG_LIST is not set 1524# CONFIG_DEBUG_LIST is not set
1496# CONFIG_DEBUG_SG is not set 1525# CONFIG_DEBUG_SG is not set
1497# CONFIG_BOOT_PRINTK_DELAY is not set 1526# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1503,6 +1532,7 @@ CONFIG_DEBUG_INFO=y
1503# CONFIG_DEBUG_STACK_USAGE is not set 1532# CONFIG_DEBUG_STACK_USAGE is not set
1504# CONFIG_DEBUG_PAGEALLOC is not set 1533# CONFIG_DEBUG_PAGEALLOC is not set
1505# CONFIG_DEBUGGER is not set 1534# CONFIG_DEBUGGER is not set
1535# CONFIG_IRQSTACKS is not set
1506# CONFIG_BDI_SWITCH is not set 1536# CONFIG_BDI_SWITCH is not set
1507# CONFIG_PPC_EARLY_DEBUG is not set 1537# CONFIG_PPC_EARLY_DEBUG is not set
1508 1538
@@ -1513,52 +1543,82 @@ CONFIG_DEBUG_INFO=y
1513# CONFIG_SECURITY is not set 1543# CONFIG_SECURITY is not set
1514# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1544# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1515CONFIG_CRYPTO=y 1545CONFIG_CRYPTO=y
1546
1547#
1548# Crypto core or helper
1549#
1516CONFIG_CRYPTO_ALGAPI=y 1550CONFIG_CRYPTO_ALGAPI=y
1517CONFIG_CRYPTO_BLKCIPHER=y 1551CONFIG_CRYPTO_BLKCIPHER=y
1518# CONFIG_CRYPTO_SEQIV is not set
1519CONFIG_CRYPTO_HASH=y 1552CONFIG_CRYPTO_HASH=y
1520CONFIG_CRYPTO_MANAGER=y 1553CONFIG_CRYPTO_MANAGER=y
1554# CONFIG_CRYPTO_GF128MUL is not set
1555# CONFIG_CRYPTO_NULL is not set
1556# CONFIG_CRYPTO_CRYPTD is not set
1557# CONFIG_CRYPTO_AUTHENC is not set
1558# CONFIG_CRYPTO_TEST is not set
1559
1560#
1561# Authenticated Encryption with Associated Data
1562#
1563# CONFIG_CRYPTO_CCM is not set
1564# CONFIG_CRYPTO_GCM is not set
1565# CONFIG_CRYPTO_SEQIV is not set
1566
1567#
1568# Block modes
1569#
1570CONFIG_CRYPTO_CBC=y
1571# CONFIG_CRYPTO_CTR is not set
1572# CONFIG_CRYPTO_CTS is not set
1573# CONFIG_CRYPTO_ECB is not set
1574# CONFIG_CRYPTO_LRW is not set
1575CONFIG_CRYPTO_PCBC=m
1576# CONFIG_CRYPTO_XTS is not set
1577
1578#
1579# Hash modes
1580#
1521CONFIG_CRYPTO_HMAC=y 1581CONFIG_CRYPTO_HMAC=y
1522# CONFIG_CRYPTO_XCBC is not set 1582# CONFIG_CRYPTO_XCBC is not set
1523# CONFIG_CRYPTO_NULL is not set 1583
1584#
1585# Digest
1586#
1587# CONFIG_CRYPTO_CRC32C is not set
1524# CONFIG_CRYPTO_MD4 is not set 1588# CONFIG_CRYPTO_MD4 is not set
1525CONFIG_CRYPTO_MD5=y 1589CONFIG_CRYPTO_MD5=y
1590# CONFIG_CRYPTO_MICHAEL_MIC is not set
1526CONFIG_CRYPTO_SHA1=m 1591CONFIG_CRYPTO_SHA1=m
1527# CONFIG_CRYPTO_SHA256 is not set 1592# CONFIG_CRYPTO_SHA256 is not set
1528# CONFIG_CRYPTO_SHA512 is not set 1593# CONFIG_CRYPTO_SHA512 is not set
1529# CONFIG_CRYPTO_WP512 is not set
1530# CONFIG_CRYPTO_TGR192 is not set 1594# CONFIG_CRYPTO_TGR192 is not set
1531# CONFIG_CRYPTO_GF128MUL is not set 1595# CONFIG_CRYPTO_WP512 is not set
1532# CONFIG_CRYPTO_ECB is not set 1596
1533CONFIG_CRYPTO_CBC=y 1597#
1534CONFIG_CRYPTO_PCBC=m 1598# Ciphers
1535# CONFIG_CRYPTO_LRW is not set 1599#
1536# CONFIG_CRYPTO_XTS is not set
1537# CONFIG_CRYPTO_CTR is not set
1538# CONFIG_CRYPTO_GCM is not set
1539# CONFIG_CRYPTO_CCM is not set
1540# CONFIG_CRYPTO_CRYPTD is not set
1541CONFIG_CRYPTO_DES=y
1542# CONFIG_CRYPTO_FCRYPT is not set
1543# CONFIG_CRYPTO_BLOWFISH is not set
1544# CONFIG_CRYPTO_TWOFISH is not set
1545# CONFIG_CRYPTO_SERPENT is not set
1546# CONFIG_CRYPTO_AES is not set 1600# CONFIG_CRYPTO_AES is not set
1601# CONFIG_CRYPTO_ANUBIS is not set
1602# CONFIG_CRYPTO_ARC4 is not set
1603# CONFIG_CRYPTO_BLOWFISH is not set
1604# CONFIG_CRYPTO_CAMELLIA is not set
1547# CONFIG_CRYPTO_CAST5 is not set 1605# CONFIG_CRYPTO_CAST5 is not set
1548# CONFIG_CRYPTO_CAST6 is not set 1606# CONFIG_CRYPTO_CAST6 is not set
1549# CONFIG_CRYPTO_TEA is not set 1607CONFIG_CRYPTO_DES=y
1550# CONFIG_CRYPTO_ARC4 is not set 1608# CONFIG_CRYPTO_FCRYPT is not set
1551# CONFIG_CRYPTO_KHAZAD is not set 1609# CONFIG_CRYPTO_KHAZAD is not set
1552# CONFIG_CRYPTO_ANUBIS is not set
1553# CONFIG_CRYPTO_SEED is not set
1554# CONFIG_CRYPTO_SALSA20 is not set 1610# CONFIG_CRYPTO_SALSA20 is not set
1611# CONFIG_CRYPTO_SEED is not set
1612# CONFIG_CRYPTO_SERPENT is not set
1613# CONFIG_CRYPTO_TEA is not set
1614# CONFIG_CRYPTO_TWOFISH is not set
1615
1616#
1617# Compression
1618#
1555# CONFIG_CRYPTO_DEFLATE is not set 1619# CONFIG_CRYPTO_DEFLATE is not set
1556# CONFIG_CRYPTO_MICHAEL_MIC is not set
1557# CONFIG_CRYPTO_CRC32C is not set
1558# CONFIG_CRYPTO_CAMELLIA is not set
1559# CONFIG_CRYPTO_TEST is not set
1560# CONFIG_CRYPTO_AUTHENC is not set
1561# CONFIG_CRYPTO_LZO is not set 1620# CONFIG_CRYPTO_LZO is not set
1562CONFIG_CRYPTO_HW=y 1621CONFIG_CRYPTO_HW=y
1563# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1622# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1564# CONFIG_PPC_CLOCK is not set 1623# CONFIG_PPC_CLOCK is not set
1624# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index 851ac9115617..e19592b42043 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8560_ads_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:27 2008 4# Mon Jun 9 08:52:33 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 94# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -113,6 +116,7 @@ CONFIG_SLUB=y
113CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119# CONFIG_HAVE_DMA_ATTRS is not set
116CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
@@ -153,6 +157,7 @@ CONFIG_MPC8560_ADS=y
153# CONFIG_MPC85xx_CDS is not set 157# CONFIG_MPC85xx_CDS is not set
154# CONFIG_MPC85xx_MDS is not set 158# CONFIG_MPC85xx_MDS is not set
155# CONFIG_MPC85xx_DS is not set 159# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set
156# CONFIG_STX_GP3 is not set 161# CONFIG_STX_GP3 is not set
157# CONFIG_TQM8540 is not set 162# CONFIG_TQM8540 is not set
158# CONFIG_TQM8541 is not set 163# CONFIG_TQM8541 is not set
@@ -210,11 +215,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
218# CONFIG_PROC_DEVICETREE is not set 225# CONFIG_PROC_DEVICETREE is not set
219# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -238,6 +245,7 @@ CONFIG_PCI_LEGACY=y
238CONFIG_PCI_DEBUG=y 245CONFIG_PCI_DEBUG=y
239# CONFIG_PCCARD is not set 246# CONFIG_PCCARD is not set
240# CONFIG_HOTPLUG_PCI is not set 247# CONFIG_HOTPLUG_PCI is not set
248# CONFIG_HAS_RAPIDIO is not set
241 249
242# 250#
243# Advanced setup 251# Advanced setup
@@ -247,11 +255,12 @@ CONFIG_PCI_DEBUG=y
247# 255#
248# Default settings for advanced configuration options are used 256# Default settings for advanced configuration options are used
249# 257#
250CONFIG_HIGHMEM_START=0xfe000000
251CONFIG_LOWMEM_SIZE=0x30000000 258CONFIG_LOWMEM_SIZE=0x30000000
259CONFIG_PAGE_OFFSET=0xc0000000
252CONFIG_KERNEL_START=0xc0000000 260CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000
262CONFIG_PHYSICAL_ALIGN=0x10000000
253CONFIG_TASK_SIZE=0xc0000000 263CONFIG_TASK_SIZE=0xc0000000
254CONFIG_BOOT_LOAD=0x00800000
255 264
256# 265#
257# Networking 266# Networking
@@ -299,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y
299CONFIG_DEFAULT_TCP_CONG="cubic" 308CONFIG_DEFAULT_TCP_CONG="cubic"
300# CONFIG_TCP_MD5SIG is not set 309# CONFIG_TCP_MD5SIG is not set
301# CONFIG_IPV6 is not set 310# CONFIG_IPV6 is not set
302# CONFIG_INET6_XFRM_TUNNEL is not set
303# CONFIG_INET6_TUNNEL is not set
304# CONFIG_NETWORK_SECMARK is not set 311# CONFIG_NETWORK_SECMARK is not set
305# CONFIG_NETFILTER is not set 312# CONFIG_NETFILTER is not set
306# CONFIG_IP_DCCP is not set 313# CONFIG_IP_DCCP is not set
@@ -462,7 +469,6 @@ CONFIG_E1000_NAPI=y
462# CONFIG_SIS190 is not set 469# CONFIG_SIS190 is not set
463# CONFIG_SKGE is not set 470# CONFIG_SKGE is not set
464# CONFIG_SKY2 is not set 471# CONFIG_SKY2 is not set
465# CONFIG_SK98LIN is not set
466# CONFIG_VIA_VELOCITY is not set 472# CONFIG_VIA_VELOCITY is not set
467# CONFIG_TIGON3 is not set 473# CONFIG_TIGON3 is not set
468# CONFIG_BNX2 is not set 474# CONFIG_BNX2 is not set
@@ -482,6 +488,7 @@ CONFIG_NETDEV_10000=y
482# CONFIG_MLX4_CORE is not set 488# CONFIG_MLX4_CORE is not set
483# CONFIG_TEHUTI is not set 489# CONFIG_TEHUTI is not set
484# CONFIG_BNX2X is not set 490# CONFIG_BNX2X is not set
491# CONFIG_SFC is not set
485# CONFIG_TR is not set 492# CONFIG_TR is not set
486 493
487# 494#
@@ -489,6 +496,7 @@ CONFIG_NETDEV_10000=y
489# 496#
490# CONFIG_WLAN_PRE80211 is not set 497# CONFIG_WLAN_PRE80211 is not set
491# CONFIG_WLAN_80211 is not set 498# CONFIG_WLAN_80211 is not set
499# CONFIG_IWLWIFI_LEDS is not set
492# CONFIG_WAN is not set 500# CONFIG_WAN is not set
493# CONFIG_FDDI is not set 501# CONFIG_FDDI is not set
494# CONFIG_HIPPI is not set 502# CONFIG_HIPPI is not set
@@ -535,6 +543,7 @@ CONFIG_INPUT=y
535# Character devices 543# Character devices
536# 544#
537# CONFIG_VT is not set 545# CONFIG_VT is not set
546CONFIG_DEVKMEM=y
538# CONFIG_SERIAL_NONSTANDARD is not set 547# CONFIG_SERIAL_NONSTANDARD is not set
539# CONFIG_NOZOMI is not set 548# CONFIG_NOZOMI is not set
540 549
@@ -572,12 +581,7 @@ CONFIG_GEN_RTC=y
572# CONFIG_TCG_TPM is not set 581# CONFIG_TCG_TPM is not set
573CONFIG_DEVPORT=y 582CONFIG_DEVPORT=y
574# CONFIG_I2C is not set 583# CONFIG_I2C is not set
575
576#
577# SPI support
578#
579# CONFIG_SPI is not set 584# CONFIG_SPI is not set
580# CONFIG_SPI_MASTER is not set
581# CONFIG_W1 is not set 585# CONFIG_W1 is not set
582# CONFIG_POWER_SUPPLY is not set 586# CONFIG_POWER_SUPPLY is not set
583CONFIG_HWMON=y 587CONFIG_HWMON=y
@@ -610,12 +614,22 @@ CONFIG_SSB_POSSIBLE=y
610# Multifunction device drivers 614# Multifunction device drivers
611# 615#
612# CONFIG_MFD_SM501 is not set 616# CONFIG_MFD_SM501 is not set
617# CONFIG_HTC_PASIC3 is not set
613 618
614# 619#
615# Multimedia devices 620# Multimedia devices
616# 621#
622
623#
624# Multimedia core support
625#
617# CONFIG_VIDEO_DEV is not set 626# CONFIG_VIDEO_DEV is not set
618# CONFIG_DVB_CORE is not set 627# CONFIG_DVB_CORE is not set
628# CONFIG_VIDEO_MEDIA is not set
629
630#
631# Multimedia drivers
632#
619CONFIG_DAB=y 633CONFIG_DAB=y
620 634
621# 635#
@@ -646,6 +660,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
646CONFIG_USB_ARCH_HAS_OHCI=y 660CONFIG_USB_ARCH_HAS_OHCI=y
647CONFIG_USB_ARCH_HAS_EHCI=y 661CONFIG_USB_ARCH_HAS_EHCI=y
648# CONFIG_USB is not set 662# CONFIG_USB is not set
663# CONFIG_USB_OTG_WHITELIST is not set
664# CONFIG_USB_OTG_BLACKLIST_HUB is not set
649 665
650# 666#
651# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 667# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -654,14 +670,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
654# CONFIG_MMC is not set 670# CONFIG_MMC is not set
655# CONFIG_MEMSTICK is not set 671# CONFIG_MEMSTICK is not set
656# CONFIG_NEW_LEDS is not set 672# CONFIG_NEW_LEDS is not set
673# CONFIG_ACCESSIBILITY is not set
657# CONFIG_INFINIBAND is not set 674# CONFIG_INFINIBAND is not set
658# CONFIG_EDAC is not set 675# CONFIG_EDAC is not set
659# CONFIG_RTC_CLASS is not set 676# CONFIG_RTC_CLASS is not set
660# CONFIG_DMADEVICES is not set 677# CONFIG_DMADEVICES is not set
661
662#
663# Userspace I/O
664#
665# CONFIG_UIO is not set 678# CONFIG_UIO is not set
666 679
667# 680#
@@ -681,7 +694,6 @@ CONFIG_FS_MBCACHE=y
681# CONFIG_JFS_FS is not set 694# CONFIG_JFS_FS is not set
682# CONFIG_FS_POSIX_ACL is not set 695# CONFIG_FS_POSIX_ACL is not set
683# CONFIG_XFS_FS is not set 696# CONFIG_XFS_FS is not set
684# CONFIG_GFS2_FS is not set
685# CONFIG_OCFS2_FS is not set 697# CONFIG_OCFS2_FS is not set
686CONFIG_DNOTIFY=y 698CONFIG_DNOTIFY=y
687CONFIG_INOTIFY=y 699CONFIG_INOTIFY=y
@@ -738,7 +750,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
738CONFIG_NFS_FS=y 750CONFIG_NFS_FS=y
739# CONFIG_NFS_V3 is not set 751# CONFIG_NFS_V3 is not set
740# CONFIG_NFS_V4 is not set 752# CONFIG_NFS_V4 is not set
741# CONFIG_NFS_DIRECTIO is not set
742# CONFIG_NFSD is not set 753# CONFIG_NFSD is not set
743CONFIG_ROOT_NFS=y 754CONFIG_ROOT_NFS=y
744CONFIG_LOCKD=y 755CONFIG_LOCKD=y
@@ -777,6 +788,7 @@ CONFIG_PARTITION_ADVANCED=y
777# Library routines 788# Library routines
778# 789#
779CONFIG_BITREVERSE=y 790CONFIG_BITREVERSE=y
791# CONFIG_GENERIC_FIND_FIRST_BIT is not set
780# CONFIG_CRC_CCITT is not set 792# CONFIG_CRC_CCITT is not set
781# CONFIG_CRC16 is not set 793# CONFIG_CRC16 is not set
782# CONFIG_CRC_ITU_T is not set 794# CONFIG_CRC_ITU_T is not set
@@ -787,6 +799,7 @@ CONFIG_PLIST=y
787CONFIG_HAS_IOMEM=y 799CONFIG_HAS_IOMEM=y
788CONFIG_HAS_IOPORT=y 800CONFIG_HAS_IOPORT=y
789CONFIG_HAS_DMA=y 801CONFIG_HAS_DMA=y
802CONFIG_HAVE_LMB=y
790 803
791# 804#
792# Kernel hacking 805# Kernel hacking
@@ -794,6 +807,7 @@ CONFIG_HAS_DMA=y
794# CONFIG_PRINTK_TIME is not set 807# CONFIG_PRINTK_TIME is not set
795CONFIG_ENABLE_WARN_DEPRECATED=y 808CONFIG_ENABLE_WARN_DEPRECATED=y
796CONFIG_ENABLE_MUST_CHECK=y 809CONFIG_ENABLE_MUST_CHECK=y
810CONFIG_FRAME_WARN=1024
797# CONFIG_MAGIC_SYSRQ is not set 811# CONFIG_MAGIC_SYSRQ is not set
798# CONFIG_UNUSED_SYMBOLS is not set 812# CONFIG_UNUSED_SYMBOLS is not set
799# CONFIG_DEBUG_FS is not set 813# CONFIG_DEBUG_FS is not set
@@ -804,6 +818,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
804CONFIG_SCHED_DEBUG=y 818CONFIG_SCHED_DEBUG=y
805# CONFIG_SCHEDSTATS is not set 819# CONFIG_SCHEDSTATS is not set
806# CONFIG_TIMER_STATS is not set 820# CONFIG_TIMER_STATS is not set
821# CONFIG_DEBUG_OBJECTS is not set
807# CONFIG_SLUB_DEBUG_ON is not set 822# CONFIG_SLUB_DEBUG_ON is not set
808# CONFIG_SLUB_STATS is not set 823# CONFIG_SLUB_STATS is not set
809# CONFIG_DEBUG_RT_MUTEXES is not set 824# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -816,6 +831,7 @@ CONFIG_DEBUG_MUTEXES=y
816# CONFIG_DEBUG_BUGVERBOSE is not set 831# CONFIG_DEBUG_BUGVERBOSE is not set
817# CONFIG_DEBUG_INFO is not set 832# CONFIG_DEBUG_INFO is not set
818# CONFIG_DEBUG_VM is not set 833# CONFIG_DEBUG_VM is not set
834# CONFIG_DEBUG_WRITECOUNT is not set
819# CONFIG_DEBUG_LIST is not set 835# CONFIG_DEBUG_LIST is not set
820# CONFIG_DEBUG_SG is not set 836# CONFIG_DEBUG_SG is not set
821# CONFIG_BOOT_PRINTK_DELAY is not set 837# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -827,6 +843,7 @@ CONFIG_DEBUG_MUTEXES=y
827# CONFIG_DEBUG_PAGEALLOC is not set 843# CONFIG_DEBUG_PAGEALLOC is not set
828# CONFIG_DEBUGGER is not set 844# CONFIG_DEBUGGER is not set
829# CONFIG_KGDB_CONSOLE is not set 845# CONFIG_KGDB_CONSOLE is not set
846# CONFIG_IRQSTACKS is not set
830# CONFIG_BDI_SWITCH is not set 847# CONFIG_BDI_SWITCH is not set
831# CONFIG_PPC_EARLY_DEBUG is not set 848# CONFIG_PPC_EARLY_DEBUG is not set
832 849
@@ -837,49 +854,79 @@ CONFIG_DEBUG_MUTEXES=y
837# CONFIG_SECURITY is not set 854# CONFIG_SECURITY is not set
838# CONFIG_SECURITY_FILE_CAPABILITIES is not set 855# CONFIG_SECURITY_FILE_CAPABILITIES is not set
839CONFIG_CRYPTO=y 856CONFIG_CRYPTO=y
840# CONFIG_CRYPTO_SEQIV is not set 857
858#
859# Crypto core or helper
860#
841# CONFIG_CRYPTO_MANAGER is not set 861# CONFIG_CRYPTO_MANAGER is not set
862# CONFIG_CRYPTO_GF128MUL is not set
863# CONFIG_CRYPTO_NULL is not set
864# CONFIG_CRYPTO_CRYPTD is not set
865# CONFIG_CRYPTO_AUTHENC is not set
866
867#
868# Authenticated Encryption with Associated Data
869#
870# CONFIG_CRYPTO_CCM is not set
871# CONFIG_CRYPTO_GCM is not set
872# CONFIG_CRYPTO_SEQIV is not set
873
874#
875# Block modes
876#
877# CONFIG_CRYPTO_CBC is not set
878# CONFIG_CRYPTO_CTR is not set
879# CONFIG_CRYPTO_CTS is not set
880# CONFIG_CRYPTO_ECB is not set
881# CONFIG_CRYPTO_LRW is not set
882# CONFIG_CRYPTO_PCBC is not set
883# CONFIG_CRYPTO_XTS is not set
884
885#
886# Hash modes
887#
842# CONFIG_CRYPTO_HMAC is not set 888# CONFIG_CRYPTO_HMAC is not set
843# CONFIG_CRYPTO_XCBC is not set 889# CONFIG_CRYPTO_XCBC is not set
844# CONFIG_CRYPTO_NULL is not set 890
891#
892# Digest
893#
894# CONFIG_CRYPTO_CRC32C is not set
845# CONFIG_CRYPTO_MD4 is not set 895# CONFIG_CRYPTO_MD4 is not set
846# CONFIG_CRYPTO_MD5 is not set 896# CONFIG_CRYPTO_MD5 is not set
897# CONFIG_CRYPTO_MICHAEL_MIC is not set
847# CONFIG_CRYPTO_SHA1 is not set 898# CONFIG_CRYPTO_SHA1 is not set
848# CONFIG_CRYPTO_SHA256 is not set 899# CONFIG_CRYPTO_SHA256 is not set
849# CONFIG_CRYPTO_SHA512 is not set 900# CONFIG_CRYPTO_SHA512 is not set
850# CONFIG_CRYPTO_WP512 is not set
851# CONFIG_CRYPTO_TGR192 is not set 901# CONFIG_CRYPTO_TGR192 is not set
852# CONFIG_CRYPTO_GF128MUL is not set 902# CONFIG_CRYPTO_WP512 is not set
853# CONFIG_CRYPTO_ECB is not set 903
854# CONFIG_CRYPTO_CBC is not set 904#
855# CONFIG_CRYPTO_PCBC is not set 905# Ciphers
856# CONFIG_CRYPTO_LRW is not set 906#
857# CONFIG_CRYPTO_XTS is not set
858# CONFIG_CRYPTO_CTR is not set
859# CONFIG_CRYPTO_GCM is not set
860# CONFIG_CRYPTO_CCM is not set
861# CONFIG_CRYPTO_CRYPTD is not set
862# CONFIG_CRYPTO_DES is not set
863# CONFIG_CRYPTO_FCRYPT is not set
864# CONFIG_CRYPTO_BLOWFISH is not set
865# CONFIG_CRYPTO_TWOFISH is not set
866# CONFIG_CRYPTO_SERPENT is not set
867# CONFIG_CRYPTO_AES is not set 907# CONFIG_CRYPTO_AES is not set
908# CONFIG_CRYPTO_ANUBIS is not set
909# CONFIG_CRYPTO_ARC4 is not set
910# CONFIG_CRYPTO_BLOWFISH is not set
911# CONFIG_CRYPTO_CAMELLIA is not set
868# CONFIG_CRYPTO_CAST5 is not set 912# CONFIG_CRYPTO_CAST5 is not set
869# CONFIG_CRYPTO_CAST6 is not set 913# CONFIG_CRYPTO_CAST6 is not set
870# CONFIG_CRYPTO_TEA is not set 914# CONFIG_CRYPTO_DES is not set
871# CONFIG_CRYPTO_ARC4 is not set 915# CONFIG_CRYPTO_FCRYPT is not set
872# CONFIG_CRYPTO_KHAZAD is not set 916# CONFIG_CRYPTO_KHAZAD is not set
873# CONFIG_CRYPTO_ANUBIS is not set
874# CONFIG_CRYPTO_SEED is not set
875# CONFIG_CRYPTO_SALSA20 is not set 917# CONFIG_CRYPTO_SALSA20 is not set
918# CONFIG_CRYPTO_SEED is not set
919# CONFIG_CRYPTO_SERPENT is not set
920# CONFIG_CRYPTO_TEA is not set
921# CONFIG_CRYPTO_TWOFISH is not set
922
923#
924# Compression
925#
876# CONFIG_CRYPTO_DEFLATE is not set 926# CONFIG_CRYPTO_DEFLATE is not set
877# CONFIG_CRYPTO_MICHAEL_MIC is not set
878# CONFIG_CRYPTO_CRC32C is not set
879# CONFIG_CRYPTO_CAMELLIA is not set
880# CONFIG_CRYPTO_AUTHENC is not set
881# CONFIG_CRYPTO_LZO is not set 927# CONFIG_CRYPTO_LZO is not set
882CONFIG_CRYPTO_HW=y 928CONFIG_CRYPTO_HW=y
883# CONFIG_CRYPTO_DEV_HIFN_795X is not set 929# CONFIG_CRYPTO_DEV_HIFN_795X is not set
884# CONFIG_PPC_CLOCK is not set 930# CONFIG_PPC_CLOCK is not set
885CONFIG_PPC_LIB_RHEAP=y 931CONFIG_PPC_LIB_RHEAP=y
932# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index 2b866b385607..28004e93aeee 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:05 2008 4# Mon Jun 9 08:52:34 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90# CONFIG_KALLSYMS is not set 93# CONFIG_KALLSYMS is not set
91CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,12 +114,14 @@ CONFIG_SLUB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
117# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
119CONFIG_MODULES=y 123CONFIG_MODULES=y
124# CONFIG_MODULE_FORCE_LOAD is not set
120CONFIG_MODULE_UNLOAD=y 125CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 126# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
@@ -156,6 +161,7 @@ CONFIG_MPC85xx=y
156# CONFIG_MPC85xx_CDS is not set 161# CONFIG_MPC85xx_CDS is not set
157CONFIG_MPC85xx_MDS=y 162CONFIG_MPC85xx_MDS=y
158# CONFIG_MPC85xx_DS is not set 163# CONFIG_MPC85xx_DS is not set
164# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 165# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 166# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 167# CONFIG_TQM8541 is not set
@@ -212,11 +218,13 @@ CONFIG_FLATMEM=y
212CONFIG_FLAT_NODE_MEM_MAP=y 218CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_STATIC is not set 219# CONFIG_SPARSEMEM_STATIC is not set
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 220# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
221CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 222CONFIG_SPLIT_PTLOCK_CPUS=4
216# CONFIG_RESOURCES_64BIT is not set 223# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
219CONFIG_VIRT_TO_BUS=y 226CONFIG_VIRT_TO_BUS=y
227CONFIG_FORCE_MAX_ZONEORDER=11
220CONFIG_PROC_DEVICETREE=y 228CONFIG_PROC_DEVICETREE=y
221# CONFIG_CMDLINE_BOOL is not set 229# CONFIG_CMDLINE_BOOL is not set
222# CONFIG_PM is not set 230# CONFIG_PM is not set
@@ -240,6 +248,7 @@ CONFIG_PCI_LEGACY=y
240# CONFIG_PCI_DEBUG is not set 248# CONFIG_PCI_DEBUG is not set
241# CONFIG_PCCARD is not set 249# CONFIG_PCCARD is not set
242# CONFIG_HOTPLUG_PCI is not set 250# CONFIG_HOTPLUG_PCI is not set
251# CONFIG_HAS_RAPIDIO is not set
243 252
244# 253#
245# Advanced setup 254# Advanced setup
@@ -249,11 +258,12 @@ CONFIG_PCI_LEGACY=y
249# 258#
250# Default settings for advanced configuration options are used 259# Default settings for advanced configuration options are used
251# 260#
252CONFIG_HIGHMEM_START=0xfe000000
253CONFIG_LOWMEM_SIZE=0x30000000 261CONFIG_LOWMEM_SIZE=0x30000000
262CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 263CONFIG_KERNEL_START=0xc0000000
264CONFIG_PHYSICAL_START=0x00000000
265CONFIG_PHYSICAL_ALIGN=0x10000000
255CONFIG_TASK_SIZE=0xc0000000 266CONFIG_TASK_SIZE=0xc0000000
256CONFIG_BOOT_LOAD=0x00800000
257 267
258# 268#
259# Networking 269# Networking
@@ -301,8 +311,6 @@ CONFIG_TCP_CONG_CUBIC=y
301CONFIG_DEFAULT_TCP_CONG="cubic" 311CONFIG_DEFAULT_TCP_CONG="cubic"
302# CONFIG_TCP_MD5SIG is not set 312# CONFIG_TCP_MD5SIG is not set
303# CONFIG_IPV6 is not set 313# CONFIG_IPV6 is not set
304# CONFIG_INET6_XFRM_TUNNEL is not set
305# CONFIG_INET6_TUNNEL is not set
306# CONFIG_NETWORK_SECMARK is not set 314# CONFIG_NETWORK_SECMARK is not set
307# CONFIG_NETFILTER is not set 315# CONFIG_NETFILTER is not set
308# CONFIG_IP_DCCP is not set 316# CONFIG_IP_DCCP is not set
@@ -358,6 +366,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
358# CONFIG_CONNECTOR is not set 366# CONFIG_CONNECTOR is not set
359# CONFIG_MTD is not set 367# CONFIG_MTD is not set
360CONFIG_OF_DEVICE=y 368CONFIG_OF_DEVICE=y
369CONFIG_OF_I2C=y
361# CONFIG_PARPORT is not set 370# CONFIG_PARPORT is not set
362CONFIG_BLK_DEV=y 371CONFIG_BLK_DEV=y
363# CONFIG_BLK_DEV_FD is not set 372# CONFIG_BLK_DEV_FD is not set
@@ -525,7 +534,6 @@ CONFIG_NETDEV_1000=y
525# CONFIG_SIS190 is not set 534# CONFIG_SIS190 is not set
526# CONFIG_SKGE is not set 535# CONFIG_SKGE is not set
527# CONFIG_SKY2 is not set 536# CONFIG_SKY2 is not set
528# CONFIG_SK98LIN is not set
529# CONFIG_VIA_VELOCITY is not set 537# CONFIG_VIA_VELOCITY is not set
530# CONFIG_TIGON3 is not set 538# CONFIG_TIGON3 is not set
531# CONFIG_BNX2 is not set 539# CONFIG_BNX2 is not set
@@ -546,6 +554,7 @@ CONFIG_NETDEV_10000=y
546# CONFIG_MLX4_CORE is not set 554# CONFIG_MLX4_CORE is not set
547# CONFIG_TEHUTI is not set 555# CONFIG_TEHUTI is not set
548# CONFIG_BNX2X is not set 556# CONFIG_BNX2X is not set
557# CONFIG_SFC is not set
549# CONFIG_TR is not set 558# CONFIG_TR is not set
550 559
551# 560#
@@ -553,6 +562,7 @@ CONFIG_NETDEV_10000=y
553# 562#
554# CONFIG_WLAN_PRE80211 is not set 563# CONFIG_WLAN_PRE80211 is not set
555# CONFIG_WLAN_80211 is not set 564# CONFIG_WLAN_80211 is not set
565# CONFIG_IWLWIFI_LEDS is not set
556# CONFIG_WAN is not set 566# CONFIG_WAN is not set
557# CONFIG_FDDI is not set 567# CONFIG_FDDI is not set
558# CONFIG_HIPPI is not set 568# CONFIG_HIPPI is not set
@@ -600,6 +610,7 @@ CONFIG_INPUT=y
600# Character devices 610# Character devices
601# 611#
602# CONFIG_VT is not set 612# CONFIG_VT is not set
613CONFIG_DEVKMEM=y
603# CONFIG_SERIAL_NONSTANDARD is not set 614# CONFIG_SERIAL_NONSTANDARD is not set
604# CONFIG_NOZOMI is not set 615# CONFIG_NOZOMI is not set
605 616
@@ -629,7 +640,6 @@ CONFIG_LEGACY_PTY_COUNT=256
629# CONFIG_IPMI_HANDLER is not set 640# CONFIG_IPMI_HANDLER is not set
630CONFIG_HW_RANDOM=y 641CONFIG_HW_RANDOM=y
631# CONFIG_NVRAM is not set 642# CONFIG_NVRAM is not set
632# CONFIG_GEN_RTC is not set
633# CONFIG_R3964 is not set 643# CONFIG_R3964 is not set
634# CONFIG_APPLICOM is not set 644# CONFIG_APPLICOM is not set
635# CONFIG_RAW_DRIVER is not set 645# CONFIG_RAW_DRIVER is not set
@@ -640,13 +650,6 @@ CONFIG_I2C_BOARDINFO=y
640CONFIG_I2C_CHARDEV=y 650CONFIG_I2C_CHARDEV=y
641 651
642# 652#
643# I2C Algorithms
644#
645# CONFIG_I2C_ALGOBIT is not set
646# CONFIG_I2C_ALGOPCF is not set
647# CONFIG_I2C_ALGOPCA is not set
648
649#
650# I2C Hardware Bus support 653# I2C Hardware Bus support
651# 654#
652# CONFIG_I2C_ALI1535 is not set 655# CONFIG_I2C_ALI1535 is not set
@@ -672,6 +675,7 @@ CONFIG_I2C_MPC=y
672# CONFIG_I2C_VIA is not set 675# CONFIG_I2C_VIA is not set
673# CONFIG_I2C_VIAPRO is not set 676# CONFIG_I2C_VIAPRO is not set
674# CONFIG_I2C_VOODOO3 is not set 677# CONFIG_I2C_VOODOO3 is not set
678# CONFIG_I2C_PCA_PLATFORM is not set
675 679
676# 680#
677# Miscellaneous I2C Chip support 681# Miscellaneous I2C Chip support
@@ -681,19 +685,13 @@ CONFIG_I2C_MPC=y
681# CONFIG_SENSORS_PCF8574 is not set 685# CONFIG_SENSORS_PCF8574 is not set
682# CONFIG_PCF8575 is not set 686# CONFIG_PCF8575 is not set
683# CONFIG_SENSORS_PCF8591 is not set 687# CONFIG_SENSORS_PCF8591 is not set
684# CONFIG_TPS65010 is not set
685# CONFIG_SENSORS_MAX6875 is not set 688# CONFIG_SENSORS_MAX6875 is not set
686# CONFIG_SENSORS_TSL2550 is not set 689# CONFIG_SENSORS_TSL2550 is not set
687# CONFIG_I2C_DEBUG_CORE is not set 690# CONFIG_I2C_DEBUG_CORE is not set
688# CONFIG_I2C_DEBUG_ALGO is not set 691# CONFIG_I2C_DEBUG_ALGO is not set
689# CONFIG_I2C_DEBUG_BUS is not set 692# CONFIG_I2C_DEBUG_BUS is not set
690# CONFIG_I2C_DEBUG_CHIP is not set 693# CONFIG_I2C_DEBUG_CHIP is not set
691
692#
693# SPI support
694#
695# CONFIG_SPI is not set 694# CONFIG_SPI is not set
696# CONFIG_SPI_MASTER is not set
697# CONFIG_W1 is not set 695# CONFIG_W1 is not set
698# CONFIG_POWER_SUPPLY is not set 696# CONFIG_POWER_SUPPLY is not set
699CONFIG_HWMON=y 697CONFIG_HWMON=y
@@ -776,12 +774,22 @@ CONFIG_SSB_POSSIBLE=y
776# Multifunction device drivers 774# Multifunction device drivers
777# 775#
778# CONFIG_MFD_SM501 is not set 776# CONFIG_MFD_SM501 is not set
777# CONFIG_HTC_PASIC3 is not set
779 778
780# 779#
781# Multimedia devices 780# Multimedia devices
782# 781#
782
783#
784# Multimedia core support
785#
783# CONFIG_VIDEO_DEV is not set 786# CONFIG_VIDEO_DEV is not set
784# CONFIG_DVB_CORE is not set 787# CONFIG_DVB_CORE is not set
788# CONFIG_VIDEO_MEDIA is not set
789
790#
791# Multimedia drivers
792#
785CONFIG_DAB=y 793CONFIG_DAB=y
786 794
787# 795#
@@ -812,6 +820,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
812CONFIG_USB_ARCH_HAS_OHCI=y 820CONFIG_USB_ARCH_HAS_OHCI=y
813CONFIG_USB_ARCH_HAS_EHCI=y 821CONFIG_USB_ARCH_HAS_EHCI=y
814# CONFIG_USB is not set 822# CONFIG_USB is not set
823# CONFIG_USB_OTG_WHITELIST is not set
824# CONFIG_USB_OTG_BLACKLIST_HUB is not set
815 825
816# 826#
817# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 827# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -820,6 +830,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
820# CONFIG_MMC is not set 830# CONFIG_MMC is not set
821# CONFIG_MEMSTICK is not set 831# CONFIG_MEMSTICK is not set
822# CONFIG_NEW_LEDS is not set 832# CONFIG_NEW_LEDS is not set
833# CONFIG_ACCESSIBILITY is not set
823# CONFIG_INFINIBAND is not set 834# CONFIG_INFINIBAND is not set
824# CONFIG_EDAC is not set 835# CONFIG_EDAC is not set
825CONFIG_RTC_LIB=y 836CONFIG_RTC_LIB=y
@@ -871,11 +882,8 @@ CONFIG_RTC_DRV_DS1374=y
871# 882#
872# on-CPU RTC drivers 883# on-CPU RTC drivers
873# 884#
885# CONFIG_RTC_DRV_PPC is not set
874# CONFIG_DMADEVICES is not set 886# CONFIG_DMADEVICES is not set
875
876#
877# Userspace I/O
878#
879# CONFIG_UIO is not set 887# CONFIG_UIO is not set
880 888
881# 889#
@@ -895,7 +903,6 @@ CONFIG_FS_MBCACHE=y
895# CONFIG_JFS_FS is not set 903# CONFIG_JFS_FS is not set
896# CONFIG_FS_POSIX_ACL is not set 904# CONFIG_FS_POSIX_ACL is not set
897# CONFIG_XFS_FS is not set 905# CONFIG_XFS_FS is not set
898# CONFIG_GFS2_FS is not set
899# CONFIG_OCFS2_FS is not set 906# CONFIG_OCFS2_FS is not set
900CONFIG_DNOTIFY=y 907CONFIG_DNOTIFY=y
901CONFIG_INOTIFY=y 908CONFIG_INOTIFY=y
@@ -953,7 +960,6 @@ CONFIG_NFS_FS=y
953CONFIG_NFS_V3=y 960CONFIG_NFS_V3=y
954# CONFIG_NFS_V3_ACL is not set 961# CONFIG_NFS_V3_ACL is not set
955CONFIG_NFS_V4=y 962CONFIG_NFS_V4=y
956# CONFIG_NFS_DIRECTIO is not set
957# CONFIG_NFSD is not set 963# CONFIG_NFSD is not set
958CONFIG_ROOT_NFS=y 964CONFIG_ROOT_NFS=y
959CONFIG_LOCKD=y 965CONFIG_LOCKD=y
@@ -994,6 +1000,7 @@ CONFIG_PARTITION_ADVANCED=y
994# Library routines 1000# Library routines
995# 1001#
996CONFIG_BITREVERSE=y 1002CONFIG_BITREVERSE=y
1003# CONFIG_GENERIC_FIND_FIRST_BIT is not set
997# CONFIG_CRC_CCITT is not set 1004# CONFIG_CRC_CCITT is not set
998# CONFIG_CRC16 is not set 1005# CONFIG_CRC16 is not set
999# CONFIG_CRC_ITU_T is not set 1006# CONFIG_CRC_ITU_T is not set
@@ -1004,6 +1011,7 @@ CONFIG_PLIST=y
1004CONFIG_HAS_IOMEM=y 1011CONFIG_HAS_IOMEM=y
1005CONFIG_HAS_IOPORT=y 1012CONFIG_HAS_IOPORT=y
1006CONFIG_HAS_DMA=y 1013CONFIG_HAS_DMA=y
1014CONFIG_HAVE_LMB=y
1007 1015
1008# 1016#
1009# Kernel hacking 1017# Kernel hacking
@@ -1011,6 +1019,7 @@ CONFIG_HAS_DMA=y
1011# CONFIG_PRINTK_TIME is not set 1019# CONFIG_PRINTK_TIME is not set
1012CONFIG_ENABLE_WARN_DEPRECATED=y 1020CONFIG_ENABLE_WARN_DEPRECATED=y
1013CONFIG_ENABLE_MUST_CHECK=y 1021CONFIG_ENABLE_MUST_CHECK=y
1022CONFIG_FRAME_WARN=1024
1014# CONFIG_MAGIC_SYSRQ is not set 1023# CONFIG_MAGIC_SYSRQ is not set
1015# CONFIG_UNUSED_SYMBOLS is not set 1024# CONFIG_UNUSED_SYMBOLS is not set
1016# CONFIG_DEBUG_FS is not set 1025# CONFIG_DEBUG_FS is not set
@@ -1021,6 +1030,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1021CONFIG_SCHED_DEBUG=y 1030CONFIG_SCHED_DEBUG=y
1022# CONFIG_SCHEDSTATS is not set 1031# CONFIG_SCHEDSTATS is not set
1023# CONFIG_TIMER_STATS is not set 1032# CONFIG_TIMER_STATS is not set
1033# CONFIG_DEBUG_OBJECTS is not set
1024# CONFIG_SLUB_DEBUG_ON is not set 1034# CONFIG_SLUB_DEBUG_ON is not set
1025# CONFIG_SLUB_STATS is not set 1035# CONFIG_SLUB_STATS is not set
1026# CONFIG_DEBUG_RT_MUTEXES is not set 1036# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1033,6 +1043,7 @@ CONFIG_SCHED_DEBUG=y
1033# CONFIG_DEBUG_BUGVERBOSE is not set 1043# CONFIG_DEBUG_BUGVERBOSE is not set
1034# CONFIG_DEBUG_INFO is not set 1044# CONFIG_DEBUG_INFO is not set
1035# CONFIG_DEBUG_VM is not set 1045# CONFIG_DEBUG_VM is not set
1046# CONFIG_DEBUG_WRITECOUNT is not set
1036# CONFIG_DEBUG_LIST is not set 1047# CONFIG_DEBUG_LIST is not set
1037# CONFIG_DEBUG_SG is not set 1048# CONFIG_DEBUG_SG is not set
1038# CONFIG_BOOT_PRINTK_DELAY is not set 1049# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1045,6 +1056,7 @@ CONFIG_SCHED_DEBUG=y
1045# CONFIG_DEBUG_PAGEALLOC is not set 1056# CONFIG_DEBUG_PAGEALLOC is not set
1046CONFIG_DEBUGGER=y 1057CONFIG_DEBUGGER=y
1047# CONFIG_XMON is not set 1058# CONFIG_XMON is not set
1059# CONFIG_IRQSTACKS is not set
1048# CONFIG_BDI_SWITCH is not set 1060# CONFIG_BDI_SWITCH is not set
1049CONFIG_PPC_EARLY_DEBUG=y 1061CONFIG_PPC_EARLY_DEBUG=y
1050# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 1062# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
@@ -1066,52 +1078,82 @@ CONFIG_PPC_EARLY_DEBUG=y
1066# CONFIG_SECURITY is not set 1078# CONFIG_SECURITY is not set
1067# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1079# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1068CONFIG_CRYPTO=y 1080CONFIG_CRYPTO=y
1081
1082#
1083# Crypto core or helper
1084#
1069CONFIG_CRYPTO_ALGAPI=y 1085CONFIG_CRYPTO_ALGAPI=y
1070CONFIG_CRYPTO_BLKCIPHER=y 1086CONFIG_CRYPTO_BLKCIPHER=y
1071# CONFIG_CRYPTO_SEQIV is not set
1072CONFIG_CRYPTO_MANAGER=y 1087CONFIG_CRYPTO_MANAGER=y
1088# CONFIG_CRYPTO_GF128MUL is not set
1089# CONFIG_CRYPTO_NULL is not set
1090# CONFIG_CRYPTO_CRYPTD is not set
1091# CONFIG_CRYPTO_AUTHENC is not set
1092# CONFIG_CRYPTO_TEST is not set
1093
1094#
1095# Authenticated Encryption with Associated Data
1096#
1097# CONFIG_CRYPTO_CCM is not set
1098# CONFIG_CRYPTO_GCM is not set
1099# CONFIG_CRYPTO_SEQIV is not set
1100
1101#
1102# Block modes
1103#
1104CONFIG_CRYPTO_CBC=y
1105# CONFIG_CRYPTO_CTR is not set
1106# CONFIG_CRYPTO_CTS is not set
1107CONFIG_CRYPTO_ECB=m
1108# CONFIG_CRYPTO_LRW is not set
1109CONFIG_CRYPTO_PCBC=m
1110# CONFIG_CRYPTO_XTS is not set
1111
1112#
1113# Hash modes
1114#
1073# CONFIG_CRYPTO_HMAC is not set 1115# CONFIG_CRYPTO_HMAC is not set
1074# CONFIG_CRYPTO_XCBC is not set 1116# CONFIG_CRYPTO_XCBC is not set
1075# CONFIG_CRYPTO_NULL is not set 1117
1118#
1119# Digest
1120#
1121# CONFIG_CRYPTO_CRC32C is not set
1076# CONFIG_CRYPTO_MD4 is not set 1122# CONFIG_CRYPTO_MD4 is not set
1077CONFIG_CRYPTO_MD5=y 1123CONFIG_CRYPTO_MD5=y
1124# CONFIG_CRYPTO_MICHAEL_MIC is not set
1078# CONFIG_CRYPTO_SHA1 is not set 1125# CONFIG_CRYPTO_SHA1 is not set
1079# CONFIG_CRYPTO_SHA256 is not set 1126# CONFIG_CRYPTO_SHA256 is not set
1080# CONFIG_CRYPTO_SHA512 is not set 1127# CONFIG_CRYPTO_SHA512 is not set
1081# CONFIG_CRYPTO_WP512 is not set
1082# CONFIG_CRYPTO_TGR192 is not set 1128# CONFIG_CRYPTO_TGR192 is not set
1083# CONFIG_CRYPTO_GF128MUL is not set 1129# CONFIG_CRYPTO_WP512 is not set
1084CONFIG_CRYPTO_ECB=m 1130
1085CONFIG_CRYPTO_CBC=y 1131#
1086CONFIG_CRYPTO_PCBC=m 1132# Ciphers
1087# CONFIG_CRYPTO_LRW is not set 1133#
1088# CONFIG_CRYPTO_XTS is not set
1089# CONFIG_CRYPTO_CTR is not set
1090# CONFIG_CRYPTO_GCM is not set
1091# CONFIG_CRYPTO_CCM is not set
1092# CONFIG_CRYPTO_CRYPTD is not set
1093CONFIG_CRYPTO_DES=y
1094# CONFIG_CRYPTO_FCRYPT is not set
1095# CONFIG_CRYPTO_BLOWFISH is not set
1096# CONFIG_CRYPTO_TWOFISH is not set
1097# CONFIG_CRYPTO_SERPENT is not set
1098# CONFIG_CRYPTO_AES is not set 1134# CONFIG_CRYPTO_AES is not set
1135# CONFIG_CRYPTO_ANUBIS is not set
1136# CONFIG_CRYPTO_ARC4 is not set
1137# CONFIG_CRYPTO_BLOWFISH is not set
1138# CONFIG_CRYPTO_CAMELLIA is not set
1099# CONFIG_CRYPTO_CAST5 is not set 1139# CONFIG_CRYPTO_CAST5 is not set
1100# CONFIG_CRYPTO_CAST6 is not set 1140# CONFIG_CRYPTO_CAST6 is not set
1101# CONFIG_CRYPTO_TEA is not set 1141CONFIG_CRYPTO_DES=y
1102# CONFIG_CRYPTO_ARC4 is not set 1142# CONFIG_CRYPTO_FCRYPT is not set
1103# CONFIG_CRYPTO_KHAZAD is not set 1143# CONFIG_CRYPTO_KHAZAD is not set
1104# CONFIG_CRYPTO_ANUBIS is not set
1105# CONFIG_CRYPTO_SEED is not set
1106# CONFIG_CRYPTO_SALSA20 is not set 1144# CONFIG_CRYPTO_SALSA20 is not set
1145# CONFIG_CRYPTO_SEED is not set
1146# CONFIG_CRYPTO_SERPENT is not set
1147# CONFIG_CRYPTO_TEA is not set
1148# CONFIG_CRYPTO_TWOFISH is not set
1149
1150#
1151# Compression
1152#
1107# CONFIG_CRYPTO_DEFLATE is not set 1153# CONFIG_CRYPTO_DEFLATE is not set
1108# CONFIG_CRYPTO_MICHAEL_MIC is not set
1109# CONFIG_CRYPTO_CRC32C is not set
1110# CONFIG_CRYPTO_CAMELLIA is not set
1111# CONFIG_CRYPTO_TEST is not set
1112# CONFIG_CRYPTO_AUTHENC is not set
1113# CONFIG_CRYPTO_LZO is not set 1154# CONFIG_CRYPTO_LZO is not set
1114CONFIG_CRYPTO_HW=y 1155CONFIG_CRYPTO_HW=y
1115# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1156# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1116# CONFIG_PPC_CLOCK is not set 1157# CONFIG_PPC_CLOCK is not set
1117CONFIG_PPC_LIB_RHEAP=y 1158CONFIG_PPC_LIB_RHEAP=y
1159# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index 53aa6f3173a5..03627cfebcb4 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:06 2008 4# Mon Jun 9 08:52:35 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
94CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
95CONFIG_KALLSYMS_EXTRA_PASS=y 98CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123# CONFIG_HAVE_DMA_ATTRS is not set
120CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
125CONFIG_MODULES=y 129CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set
126CONFIG_MODULE_UNLOAD=y 131CONFIG_MODULE_UNLOAD=y
127CONFIG_MODULE_FORCE_UNLOAD=y 132CONFIG_MODULE_FORCE_UNLOAD=y
128CONFIG_MODVERSIONS=y 133CONFIG_MODVERSIONS=y
@@ -162,6 +167,7 @@ CONFIG_MPC85xx=y
162# CONFIG_MPC85xx_CDS is not set 167# CONFIG_MPC85xx_CDS is not set
163# CONFIG_MPC85xx_MDS is not set 168# CONFIG_MPC85xx_MDS is not set
164CONFIG_MPC85xx_DS=y 169CONFIG_MPC85xx_DS=y
170# CONFIG_KSI8560 is not set
165# CONFIG_STX_GP3 is not set 171# CONFIG_STX_GP3 is not set
166# CONFIG_TQM8540 is not set 172# CONFIG_TQM8540 is not set
167# CONFIG_TQM8541 is not set 173# CONFIG_TQM8541 is not set
@@ -217,11 +223,13 @@ CONFIG_FLATMEM=y
217CONFIG_FLAT_NODE_MEM_MAP=y 223CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_STATIC is not set 224# CONFIG_SPARSEMEM_STATIC is not set
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
221# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
224CONFIG_VIRT_TO_BUS=y 231CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 233CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
227# CONFIG_PM is not set 235# CONFIG_PM is not set
@@ -246,6 +254,7 @@ CONFIG_PCI_LEGACY=y
246# CONFIG_PCI_DEBUG is not set 254# CONFIG_PCI_DEBUG is not set
247# CONFIG_PCCARD is not set 255# CONFIG_PCCARD is not set
248# CONFIG_HOTPLUG_PCI is not set 256# CONFIG_HOTPLUG_PCI is not set
257# CONFIG_HAS_RAPIDIO is not set
249 258
250# 259#
251# Advanced setup 260# Advanced setup
@@ -255,11 +264,12 @@ CONFIG_PCI_LEGACY=y
255# 264#
256# Default settings for advanced configuration options are used 265# Default settings for advanced configuration options are used
257# 266#
258CONFIG_HIGHMEM_START=0xfe000000
259CONFIG_LOWMEM_SIZE=0x30000000 267CONFIG_LOWMEM_SIZE=0x30000000
268CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 269CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000
271CONFIG_PHYSICAL_ALIGN=0x10000000
261CONFIG_TASK_SIZE=0xc0000000 272CONFIG_TASK_SIZE=0xc0000000
262CONFIG_BOOT_LOAD=0x00800000
263 273
264# 274#
265# Networking 275# Networking
@@ -330,8 +340,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
330CONFIG_INET6_XFRM_MODE_BEET=y 340CONFIG_INET6_XFRM_MODE_BEET=y
331# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 341# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
332CONFIG_IPV6_SIT=y 342CONFIG_IPV6_SIT=y
343CONFIG_IPV6_NDISC_NODETYPE=y
333# CONFIG_IPV6_TUNNEL is not set 344# CONFIG_IPV6_TUNNEL is not set
334# CONFIG_IPV6_MULTIPLE_TABLES is not set 345# CONFIG_IPV6_MULTIPLE_TABLES is not set
346# CONFIG_IPV6_MROUTE is not set
335# CONFIG_NETWORK_SECMARK is not set 347# CONFIG_NETWORK_SECMARK is not set
336# CONFIG_NETFILTER is not set 348# CONFIG_NETFILTER is not set
337# CONFIG_IP_DCCP is not set 349# CONFIG_IP_DCCP is not set
@@ -393,6 +405,7 @@ CONFIG_FW_LOADER=y
393# CONFIG_CONNECTOR is not set 405# CONFIG_CONNECTOR is not set
394# CONFIG_MTD is not set 406# CONFIG_MTD is not set
395CONFIG_OF_DEVICE=y 407CONFIG_OF_DEVICE=y
408CONFIG_OF_I2C=y
396# CONFIG_PARPORT is not set 409# CONFIG_PARPORT is not set
397CONFIG_BLK_DEV=y 410CONFIG_BLK_DEV=y
398# CONFIG_BLK_DEV_FD is not set 411# CONFIG_BLK_DEV_FD is not set
@@ -499,7 +512,11 @@ CONFIG_SCSI_LOWLEVEL=y
499# CONFIG_SCSI_SRP is not set 512# CONFIG_SCSI_SRP is not set
500CONFIG_ATA=y 513CONFIG_ATA=y
501# CONFIG_ATA_NONSTANDARD is not set 514# CONFIG_ATA_NONSTANDARD is not set
515CONFIG_SATA_PMP=y
502CONFIG_SATA_AHCI=y 516CONFIG_SATA_AHCI=y
517# CONFIG_SATA_SIL24 is not set
518# CONFIG_SATA_FSL is not set
519CONFIG_ATA_SFF=y
503# CONFIG_SATA_SVW is not set 520# CONFIG_SATA_SVW is not set
504# CONFIG_ATA_PIIX is not set 521# CONFIG_ATA_PIIX is not set
505# CONFIG_SATA_MV is not set 522# CONFIG_SATA_MV is not set
@@ -509,13 +526,11 @@ CONFIG_SATA_AHCI=y
509# CONFIG_SATA_PROMISE is not set 526# CONFIG_SATA_PROMISE is not set
510# CONFIG_SATA_SX4 is not set 527# CONFIG_SATA_SX4 is not set
511# CONFIG_SATA_SIL is not set 528# CONFIG_SATA_SIL is not set
512# CONFIG_SATA_SIL24 is not set
513# CONFIG_SATA_SIS is not set 529# CONFIG_SATA_SIS is not set
514# CONFIG_SATA_ULI is not set 530# CONFIG_SATA_ULI is not set
515# CONFIG_SATA_VIA is not set 531# CONFIG_SATA_VIA is not set
516# CONFIG_SATA_VITESSE is not set 532# CONFIG_SATA_VITESSE is not set
517# CONFIG_SATA_INIC162X is not set 533# CONFIG_SATA_INIC162X is not set
518# CONFIG_SATA_FSL is not set
519CONFIG_PATA_ALI=y 534CONFIG_PATA_ALI=y
520# CONFIG_PATA_AMD is not set 535# CONFIG_PATA_AMD is not set
521# CONFIG_PATA_ARTOP is not set 536# CONFIG_PATA_ARTOP is not set
@@ -555,6 +570,7 @@ CONFIG_PATA_ALI=y
555# CONFIG_PATA_VIA is not set 570# CONFIG_PATA_VIA is not set
556# CONFIG_PATA_WINBOND is not set 571# CONFIG_PATA_WINBOND is not set
557# CONFIG_PATA_PLATFORM is not set 572# CONFIG_PATA_PLATFORM is not set
573# CONFIG_PATA_SCH is not set
558# CONFIG_MD is not set 574# CONFIG_MD is not set
559# CONFIG_FUSION is not set 575# CONFIG_FUSION is not set
560 576
@@ -620,7 +636,6 @@ CONFIG_NETDEV_1000=y
620# CONFIG_SIS190 is not set 636# CONFIG_SIS190 is not set
621# CONFIG_SKGE is not set 637# CONFIG_SKGE is not set
622# CONFIG_SKY2 is not set 638# CONFIG_SKY2 is not set
623# CONFIG_SK98LIN is not set
624# CONFIG_VIA_VELOCITY is not set 639# CONFIG_VIA_VELOCITY is not set
625# CONFIG_TIGON3 is not set 640# CONFIG_TIGON3 is not set
626# CONFIG_BNX2 is not set 641# CONFIG_BNX2 is not set
@@ -640,6 +655,7 @@ CONFIG_NETDEV_10000=y
640# CONFIG_MLX4_CORE is not set 655# CONFIG_MLX4_CORE is not set
641# CONFIG_TEHUTI is not set 656# CONFIG_TEHUTI is not set
642# CONFIG_BNX2X is not set 657# CONFIG_BNX2X is not set
658# CONFIG_SFC is not set
643# CONFIG_TR is not set 659# CONFIG_TR is not set
644 660
645# 661#
@@ -647,6 +663,7 @@ CONFIG_NETDEV_10000=y
647# 663#
648# CONFIG_WLAN_PRE80211 is not set 664# CONFIG_WLAN_PRE80211 is not set
649# CONFIG_WLAN_80211 is not set 665# CONFIG_WLAN_80211 is not set
666# CONFIG_IWLWIFI_LEDS is not set
650 667
651# 668#
652# USB Network Adapters 669# USB Network Adapters
@@ -711,6 +728,7 @@ CONFIG_VT=y
711CONFIG_VT_CONSOLE=y 728CONFIG_VT_CONSOLE=y
712CONFIG_HW_CONSOLE=y 729CONFIG_HW_CONSOLE=y
713# CONFIG_VT_HW_CONSOLE_BINDING is not set 730# CONFIG_VT_HW_CONSOLE_BINDING is not set
731CONFIG_DEVKMEM=y
714# CONFIG_SERIAL_NONSTANDARD is not set 732# CONFIG_SERIAL_NONSTANDARD is not set
715# CONFIG_NOZOMI is not set 733# CONFIG_NOZOMI is not set
716 734
@@ -742,7 +760,6 @@ CONFIG_LEGACY_PTY_COUNT=256
742# CONFIG_IPMI_HANDLER is not set 760# CONFIG_IPMI_HANDLER is not set
743# CONFIG_HW_RANDOM is not set 761# CONFIG_HW_RANDOM is not set
744CONFIG_NVRAM=y 762CONFIG_NVRAM=y
745# CONFIG_GEN_RTC is not set
746# CONFIG_R3964 is not set 763# CONFIG_R3964 is not set
747# CONFIG_APPLICOM is not set 764# CONFIG_APPLICOM is not set
748# CONFIG_RAW_DRIVER is not set 765# CONFIG_RAW_DRIVER is not set
@@ -753,13 +770,6 @@ CONFIG_I2C_BOARDINFO=y
753# CONFIG_I2C_CHARDEV is not set 770# CONFIG_I2C_CHARDEV is not set
754 771
755# 772#
756# I2C Algorithms
757#
758# CONFIG_I2C_ALGOBIT is not set
759# CONFIG_I2C_ALGOPCF is not set
760# CONFIG_I2C_ALGOPCA is not set
761
762#
763# I2C Hardware Bus support 773# I2C Hardware Bus support
764# 774#
765# CONFIG_I2C_ALI1535 is not set 775# CONFIG_I2C_ALI1535 is not set
@@ -786,6 +796,7 @@ CONFIG_I2C_MPC=y
786# CONFIG_I2C_VIA is not set 796# CONFIG_I2C_VIA is not set
787# CONFIG_I2C_VIAPRO is not set 797# CONFIG_I2C_VIAPRO is not set
788# CONFIG_I2C_VOODOO3 is not set 798# CONFIG_I2C_VOODOO3 is not set
799# CONFIG_I2C_PCA_PLATFORM is not set
789 800
790# 801#
791# Miscellaneous I2C Chip support 802# Miscellaneous I2C Chip support
@@ -795,19 +806,13 @@ CONFIG_SENSORS_EEPROM=y
795# CONFIG_SENSORS_PCF8574 is not set 806# CONFIG_SENSORS_PCF8574 is not set
796# CONFIG_PCF8575 is not set 807# CONFIG_PCF8575 is not set
797# CONFIG_SENSORS_PCF8591 is not set 808# CONFIG_SENSORS_PCF8591 is not set
798# CONFIG_TPS65010 is not set
799# CONFIG_SENSORS_MAX6875 is not set 809# CONFIG_SENSORS_MAX6875 is not set
800# CONFIG_SENSORS_TSL2550 is not set 810# CONFIG_SENSORS_TSL2550 is not set
801# CONFIG_I2C_DEBUG_CORE is not set 811# CONFIG_I2C_DEBUG_CORE is not set
802# CONFIG_I2C_DEBUG_ALGO is not set 812# CONFIG_I2C_DEBUG_ALGO is not set
803# CONFIG_I2C_DEBUG_BUS is not set 813# CONFIG_I2C_DEBUG_BUS is not set
804# CONFIG_I2C_DEBUG_CHIP is not set 814# CONFIG_I2C_DEBUG_CHIP is not set
805
806#
807# SPI support
808#
809# CONFIG_SPI is not set 815# CONFIG_SPI is not set
810# CONFIG_SPI_MASTER is not set
811# CONFIG_W1 is not set 816# CONFIG_W1 is not set
812# CONFIG_POWER_SUPPLY is not set 817# CONFIG_POWER_SUPPLY is not set
813# CONFIG_HWMON is not set 818# CONFIG_HWMON is not set
@@ -824,13 +829,33 @@ CONFIG_SSB_POSSIBLE=y
824# Multifunction device drivers 829# Multifunction device drivers
825# 830#
826# CONFIG_MFD_SM501 is not set 831# CONFIG_MFD_SM501 is not set
832# CONFIG_HTC_PASIC3 is not set
827 833
828# 834#
829# Multimedia devices 835# Multimedia devices
830# 836#
837
838#
839# Multimedia core support
840#
831# CONFIG_VIDEO_DEV is not set 841# CONFIG_VIDEO_DEV is not set
832CONFIG_DVB_CORE=m 842CONFIG_DVB_CORE=m
833# CONFIG_DVB_CORE_ATTACH is not set 843CONFIG_VIDEO_MEDIA=m
844
845#
846# Multimedia drivers
847#
848# CONFIG_MEDIA_ATTACH is not set
849CONFIG_MEDIA_TUNER=m
850# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
851CONFIG_MEDIA_TUNER_SIMPLE=m
852CONFIG_MEDIA_TUNER_TDA8290=m
853CONFIG_MEDIA_TUNER_TDA9887=m
854CONFIG_MEDIA_TUNER_TEA5761=m
855CONFIG_MEDIA_TUNER_TEA5767=m
856CONFIG_MEDIA_TUNER_MT20XX=m
857CONFIG_MEDIA_TUNER_XC2028=m
858CONFIG_MEDIA_TUNER_XC5000=m
834CONFIG_DVB_CAPTURE_DRIVERS=y 859CONFIG_DVB_CAPTURE_DRIVERS=y
835 860
836# 861#
@@ -873,14 +898,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
873# 898#
874# DVB-S (satellite) frontends 899# DVB-S (satellite) frontends
875# 900#
876# CONFIG_DVB_STV0299 is not set
877# CONFIG_DVB_CX24110 is not set 901# CONFIG_DVB_CX24110 is not set
878# CONFIG_DVB_CX24123 is not set 902# CONFIG_DVB_CX24123 is not set
879# CONFIG_DVB_TDA8083 is not set
880# CONFIG_DVB_MT312 is not set 903# CONFIG_DVB_MT312 is not set
881# CONFIG_DVB_VES1X93 is not set
882# CONFIG_DVB_S5H1420 is not set 904# CONFIG_DVB_S5H1420 is not set
905# CONFIG_DVB_STV0299 is not set
906# CONFIG_DVB_TDA8083 is not set
883# CONFIG_DVB_TDA10086 is not set 907# CONFIG_DVB_TDA10086 is not set
908# CONFIG_DVB_VES1X93 is not set
909# CONFIG_DVB_TUNER_ITD1000 is not set
910# CONFIG_DVB_TDA826X is not set
911# CONFIG_DVB_TUA6100 is not set
884 912
885# 913#
886# DVB-T (terrestrial) frontends 914# DVB-T (terrestrial) frontends
@@ -898,6 +926,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
898# CONFIG_DVB_DIB3000MC is not set 926# CONFIG_DVB_DIB3000MC is not set
899# CONFIG_DVB_DIB7000M is not set 927# CONFIG_DVB_DIB7000M is not set
900# CONFIG_DVB_DIB7000P is not set 928# CONFIG_DVB_DIB7000P is not set
929# CONFIG_DVB_TDA10048 is not set
901 930
902# 931#
903# DVB-C (cable) frontends 932# DVB-C (cable) frontends
@@ -916,27 +945,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
916# CONFIG_DVB_BCM3510 is not set 945# CONFIG_DVB_BCM3510 is not set
917# CONFIG_DVB_LGDT330X is not set 946# CONFIG_DVB_LGDT330X is not set
918# CONFIG_DVB_S5H1409 is not set 947# CONFIG_DVB_S5H1409 is not set
948# CONFIG_DVB_AU8522 is not set
949# CONFIG_DVB_S5H1411 is not set
919 950
920# 951#
921# Tuners/PLL support 952# Digital terrestrial only tuners/PLL
922# 953#
923# CONFIG_DVB_PLL is not set 954# CONFIG_DVB_PLL is not set
924# CONFIG_DVB_TDA826X is not set
925# CONFIG_DVB_TDA827X is not set
926# CONFIG_DVB_TDA18271 is not set
927# CONFIG_DVB_TUNER_QT1010 is not set
928# CONFIG_DVB_TUNER_MT2060 is not set
929# CONFIG_DVB_TUNER_MT2266 is not set
930# CONFIG_DVB_TUNER_MT2131 is not set
931# CONFIG_DVB_TUNER_DIB0070 is not set 955# CONFIG_DVB_TUNER_DIB0070 is not set
932# CONFIG_DVB_TUNER_XC5000 is not set
933 956
934# 957#
935# Miscellaneous devices 958# SEC control devices for DVB-S
936# 959#
937# CONFIG_DVB_LNBP21 is not set 960# CONFIG_DVB_LNBP21 is not set
961# CONFIG_DVB_ISL6405 is not set
938# CONFIG_DVB_ISL6421 is not set 962# CONFIG_DVB_ISL6421 is not set
939# CONFIG_DVB_TUA6100 is not set
940CONFIG_DAB=y 963CONFIG_DAB=y
941# CONFIG_USB_DABUSB is not set 964# CONFIG_USB_DABUSB is not set
942 965
@@ -1003,6 +1026,7 @@ CONFIG_SND_AC97_CODEC=y
1003# CONFIG_SND_AU8810 is not set 1026# CONFIG_SND_AU8810 is not set
1004# CONFIG_SND_AU8820 is not set 1027# CONFIG_SND_AU8820 is not set
1005# CONFIG_SND_AU8830 is not set 1028# CONFIG_SND_AU8830 is not set
1029# CONFIG_SND_AW2 is not set
1006# CONFIG_SND_AZT3328 is not set 1030# CONFIG_SND_AZT3328 is not set
1007# CONFIG_SND_BT87X is not set 1031# CONFIG_SND_BT87X is not set
1008# CONFIG_SND_CA0106 is not set 1032# CONFIG_SND_CA0106 is not set
@@ -1077,11 +1101,11 @@ CONFIG_SND_INTEL8X0=y
1077# CONFIG_SND_SOC is not set 1101# CONFIG_SND_SOC is not set
1078 1102
1079# 1103#
1080# SoC Audio support for SuperH 1104# ALSA SoC audio for Freescale SOCs
1081# 1105#
1082 1106
1083# 1107#
1084# ALSA SoC audio for Freescale SOCs 1108# SoC Audio for the Texas Instruments OMAP
1085# 1109#
1086 1110
1087# 1111#
@@ -1116,16 +1140,20 @@ CONFIG_USB_DEVICEFS=y
1116CONFIG_USB_DEVICE_CLASS=y 1140CONFIG_USB_DEVICE_CLASS=y
1117# CONFIG_USB_DYNAMIC_MINORS is not set 1141# CONFIG_USB_DYNAMIC_MINORS is not set
1118# CONFIG_USB_OTG is not set 1142# CONFIG_USB_OTG is not set
1143# CONFIG_USB_OTG_WHITELIST is not set
1144# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1119 1145
1120# 1146#
1121# USB Host Controller Drivers 1147# USB Host Controller Drivers
1122# 1148#
1149# CONFIG_USB_C67X00_HCD is not set
1123CONFIG_USB_EHCI_HCD=y 1150CONFIG_USB_EHCI_HCD=y
1124# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1151# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1125# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1152# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1126# CONFIG_USB_EHCI_FSL is not set 1153# CONFIG_USB_EHCI_FSL is not set
1127CONFIG_USB_EHCI_HCD_PPC_OF=y 1154CONFIG_USB_EHCI_HCD_PPC_OF=y
1128# CONFIG_USB_ISP116X_HCD is not set 1155# CONFIG_USB_ISP116X_HCD is not set
1156# CONFIG_USB_ISP1760_HCD is not set
1129CONFIG_USB_OHCI_HCD=y 1157CONFIG_USB_OHCI_HCD=y
1130CONFIG_USB_OHCI_HCD_PPC_OF=y 1158CONFIG_USB_OHCI_HCD_PPC_OF=y
1131CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1159CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1143,6 +1171,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1143# 1171#
1144# CONFIG_USB_ACM is not set 1172# CONFIG_USB_ACM is not set
1145# CONFIG_USB_PRINTER is not set 1173# CONFIG_USB_PRINTER is not set
1174# CONFIG_USB_WDM is not set
1146 1175
1147# 1176#
1148# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1177# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1162,7 +1191,9 @@ CONFIG_USB_STORAGE=y
1162# CONFIG_USB_STORAGE_SDDR55 is not set 1191# CONFIG_USB_STORAGE_SDDR55 is not set
1163# CONFIG_USB_STORAGE_JUMPSHOT is not set 1192# CONFIG_USB_STORAGE_JUMPSHOT is not set
1164# CONFIG_USB_STORAGE_ALAUDA is not set 1193# CONFIG_USB_STORAGE_ALAUDA is not set
1194# CONFIG_USB_STORAGE_ONETOUCH is not set
1165# CONFIG_USB_STORAGE_KARMA is not set 1195# CONFIG_USB_STORAGE_KARMA is not set
1196# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1166# CONFIG_USB_LIBUSUAL is not set 1197# CONFIG_USB_LIBUSUAL is not set
1167 1198
1168# 1199#
@@ -1200,10 +1231,12 @@ CONFIG_USB_MON=y
1200# CONFIG_USB_TRANCEVIBRATOR is not set 1231# CONFIG_USB_TRANCEVIBRATOR is not set
1201# CONFIG_USB_IOWARRIOR is not set 1232# CONFIG_USB_IOWARRIOR is not set
1202# CONFIG_USB_TEST is not set 1233# CONFIG_USB_TEST is not set
1234# CONFIG_USB_ISIGHTFW is not set
1203# CONFIG_USB_GADGET is not set 1235# CONFIG_USB_GADGET is not set
1204# CONFIG_MMC is not set 1236# CONFIG_MMC is not set
1205# CONFIG_MEMSTICK is not set 1237# CONFIG_MEMSTICK is not set
1206# CONFIG_NEW_LEDS is not set 1238# CONFIG_NEW_LEDS is not set
1239# CONFIG_ACCESSIBILITY is not set
1207# CONFIG_INFINIBAND is not set 1240# CONFIG_INFINIBAND is not set
1208# CONFIG_EDAC is not set 1241# CONFIG_EDAC is not set
1209CONFIG_RTC_LIB=y 1242CONFIG_RTC_LIB=y
@@ -1255,11 +1288,8 @@ CONFIG_RTC_DRV_CMOS=y
1255# 1288#
1256# on-CPU RTC drivers 1289# on-CPU RTC drivers
1257# 1290#
1291# CONFIG_RTC_DRV_PPC is not set
1258# CONFIG_DMADEVICES is not set 1292# CONFIG_DMADEVICES is not set
1259
1260#
1261# Userspace I/O
1262#
1263# CONFIG_UIO is not set 1293# CONFIG_UIO is not set
1264 1294
1265# 1295#
@@ -1279,7 +1309,6 @@ CONFIG_FS_MBCACHE=y
1279# CONFIG_JFS_FS is not set 1309# CONFIG_JFS_FS is not set
1280# CONFIG_FS_POSIX_ACL is not set 1310# CONFIG_FS_POSIX_ACL is not set
1281# CONFIG_XFS_FS is not set 1311# CONFIG_XFS_FS is not set
1282# CONFIG_GFS2_FS is not set
1283# CONFIG_OCFS2_FS is not set 1312# CONFIG_OCFS2_FS is not set
1284CONFIG_DNOTIFY=y 1313CONFIG_DNOTIFY=y
1285CONFIG_INOTIFY=y 1314CONFIG_INOTIFY=y
@@ -1349,10 +1378,9 @@ CONFIG_NFS_FS=y
1349CONFIG_NFS_V3=y 1378CONFIG_NFS_V3=y
1350# CONFIG_NFS_V3_ACL is not set 1379# CONFIG_NFS_V3_ACL is not set
1351CONFIG_NFS_V4=y 1380CONFIG_NFS_V4=y
1352# CONFIG_NFS_DIRECTIO is not set
1353CONFIG_NFSD=y 1381CONFIG_NFSD=y
1354# CONFIG_NFSD_V3 is not set 1382# CONFIG_NFSD_V3 is not set
1355CONFIG_NFSD_TCP=y 1383# CONFIG_NFSD_V4 is not set
1356CONFIG_ROOT_NFS=y 1384CONFIG_ROOT_NFS=y
1357CONFIG_LOCKD=y 1385CONFIG_LOCKD=y
1358CONFIG_LOCKD_V4=y 1386CONFIG_LOCKD_V4=y
@@ -1436,9 +1464,10 @@ CONFIG_NLS_UTF8=m
1436# Library routines 1464# Library routines
1437# 1465#
1438CONFIG_BITREVERSE=y 1466CONFIG_BITREVERSE=y
1467# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1439# CONFIG_CRC_CCITT is not set 1468# CONFIG_CRC_CCITT is not set
1440# CONFIG_CRC16 is not set 1469# CONFIG_CRC16 is not set
1441# CONFIG_CRC_ITU_T is not set 1470CONFIG_CRC_ITU_T=m
1442CONFIG_CRC32=y 1471CONFIG_CRC32=y
1443# CONFIG_CRC7 is not set 1472# CONFIG_CRC7 is not set
1444CONFIG_LIBCRC32C=m 1473CONFIG_LIBCRC32C=m
@@ -1447,6 +1476,7 @@ CONFIG_PLIST=y
1447CONFIG_HAS_IOMEM=y 1476CONFIG_HAS_IOMEM=y
1448CONFIG_HAS_IOPORT=y 1477CONFIG_HAS_IOPORT=y
1449CONFIG_HAS_DMA=y 1478CONFIG_HAS_DMA=y
1479CONFIG_HAVE_LMB=y
1450 1480
1451# 1481#
1452# Kernel hacking 1482# Kernel hacking
@@ -1454,6 +1484,7 @@ CONFIG_HAS_DMA=y
1454# CONFIG_PRINTK_TIME is not set 1484# CONFIG_PRINTK_TIME is not set
1455CONFIG_ENABLE_WARN_DEPRECATED=y 1485CONFIG_ENABLE_WARN_DEPRECATED=y
1456CONFIG_ENABLE_MUST_CHECK=y 1486CONFIG_ENABLE_MUST_CHECK=y
1487CONFIG_FRAME_WARN=1024
1457# CONFIG_MAGIC_SYSRQ is not set 1488# CONFIG_MAGIC_SYSRQ is not set
1458# CONFIG_UNUSED_SYMBOLS is not set 1489# CONFIG_UNUSED_SYMBOLS is not set
1459# CONFIG_DEBUG_FS is not set 1490# CONFIG_DEBUG_FS is not set
@@ -1464,6 +1495,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1464CONFIG_SCHED_DEBUG=y 1495CONFIG_SCHED_DEBUG=y
1465# CONFIG_SCHEDSTATS is not set 1496# CONFIG_SCHEDSTATS is not set
1466# CONFIG_TIMER_STATS is not set 1497# CONFIG_TIMER_STATS is not set
1498# CONFIG_DEBUG_OBJECTS is not set
1467# CONFIG_SLUB_DEBUG_ON is not set 1499# CONFIG_SLUB_DEBUG_ON is not set
1468# CONFIG_SLUB_STATS is not set 1500# CONFIG_SLUB_STATS is not set
1469# CONFIG_DEBUG_RT_MUTEXES is not set 1501# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1477,6 +1509,7 @@ CONFIG_SCHED_DEBUG=y
1477# CONFIG_DEBUG_BUGVERBOSE is not set 1509# CONFIG_DEBUG_BUGVERBOSE is not set
1478CONFIG_DEBUG_INFO=y 1510CONFIG_DEBUG_INFO=y
1479# CONFIG_DEBUG_VM is not set 1511# CONFIG_DEBUG_VM is not set
1512# CONFIG_DEBUG_WRITECOUNT is not set
1480# CONFIG_DEBUG_LIST is not set 1513# CONFIG_DEBUG_LIST is not set
1481# CONFIG_DEBUG_SG is not set 1514# CONFIG_DEBUG_SG is not set
1482# CONFIG_BOOT_PRINTK_DELAY is not set 1515# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1488,6 +1521,7 @@ CONFIG_DEBUG_INFO=y
1488# CONFIG_DEBUG_STACK_USAGE is not set 1521# CONFIG_DEBUG_STACK_USAGE is not set
1489# CONFIG_DEBUG_PAGEALLOC is not set 1522# CONFIG_DEBUG_PAGEALLOC is not set
1490# CONFIG_DEBUGGER is not set 1523# CONFIG_DEBUGGER is not set
1524# CONFIG_IRQSTACKS is not set
1491# CONFIG_BDI_SWITCH is not set 1525# CONFIG_BDI_SWITCH is not set
1492# CONFIG_PPC_EARLY_DEBUG is not set 1526# CONFIG_PPC_EARLY_DEBUG is not set
1493 1527
@@ -1498,52 +1532,82 @@ CONFIG_DEBUG_INFO=y
1498# CONFIG_SECURITY is not set 1532# CONFIG_SECURITY is not set
1499# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1533# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1500CONFIG_CRYPTO=y 1534CONFIG_CRYPTO=y
1535
1536#
1537# Crypto core or helper
1538#
1501CONFIG_CRYPTO_ALGAPI=y 1539CONFIG_CRYPTO_ALGAPI=y
1502CONFIG_CRYPTO_BLKCIPHER=y 1540CONFIG_CRYPTO_BLKCIPHER=y
1503# CONFIG_CRYPTO_SEQIV is not set
1504CONFIG_CRYPTO_HASH=y 1541CONFIG_CRYPTO_HASH=y
1505CONFIG_CRYPTO_MANAGER=y 1542CONFIG_CRYPTO_MANAGER=y
1543# CONFIG_CRYPTO_GF128MUL is not set
1544# CONFIG_CRYPTO_NULL is not set
1545# CONFIG_CRYPTO_CRYPTD is not set
1546# CONFIG_CRYPTO_AUTHENC is not set
1547# CONFIG_CRYPTO_TEST is not set
1548
1549#
1550# Authenticated Encryption with Associated Data
1551#
1552# CONFIG_CRYPTO_CCM is not set
1553# CONFIG_CRYPTO_GCM is not set
1554# CONFIG_CRYPTO_SEQIV is not set
1555
1556#
1557# Block modes
1558#
1559CONFIG_CRYPTO_CBC=y
1560# CONFIG_CRYPTO_CTR is not set
1561# CONFIG_CRYPTO_CTS is not set
1562# CONFIG_CRYPTO_ECB is not set
1563# CONFIG_CRYPTO_LRW is not set
1564CONFIG_CRYPTO_PCBC=m
1565# CONFIG_CRYPTO_XTS is not set
1566
1567#
1568# Hash modes
1569#
1506CONFIG_CRYPTO_HMAC=y 1570CONFIG_CRYPTO_HMAC=y
1507# CONFIG_CRYPTO_XCBC is not set 1571# CONFIG_CRYPTO_XCBC is not set
1508# CONFIG_CRYPTO_NULL is not set 1572
1573#
1574# Digest
1575#
1576# CONFIG_CRYPTO_CRC32C is not set
1509# CONFIG_CRYPTO_MD4 is not set 1577# CONFIG_CRYPTO_MD4 is not set
1510CONFIG_CRYPTO_MD5=y 1578CONFIG_CRYPTO_MD5=y
1579# CONFIG_CRYPTO_MICHAEL_MIC is not set
1511CONFIG_CRYPTO_SHA1=m 1580CONFIG_CRYPTO_SHA1=m
1512# CONFIG_CRYPTO_SHA256 is not set 1581# CONFIG_CRYPTO_SHA256 is not set
1513# CONFIG_CRYPTO_SHA512 is not set 1582# CONFIG_CRYPTO_SHA512 is not set
1514# CONFIG_CRYPTO_WP512 is not set
1515# CONFIG_CRYPTO_TGR192 is not set 1583# CONFIG_CRYPTO_TGR192 is not set
1516# CONFIG_CRYPTO_GF128MUL is not set 1584# CONFIG_CRYPTO_WP512 is not set
1517# CONFIG_CRYPTO_ECB is not set 1585
1518CONFIG_CRYPTO_CBC=y 1586#
1519CONFIG_CRYPTO_PCBC=m 1587# Ciphers
1520# CONFIG_CRYPTO_LRW is not set 1588#
1521# CONFIG_CRYPTO_XTS is not set
1522# CONFIG_CRYPTO_CTR is not set
1523# CONFIG_CRYPTO_GCM is not set
1524# CONFIG_CRYPTO_CCM is not set
1525# CONFIG_CRYPTO_CRYPTD is not set
1526CONFIG_CRYPTO_DES=y
1527# CONFIG_CRYPTO_FCRYPT is not set
1528# CONFIG_CRYPTO_BLOWFISH is not set
1529# CONFIG_CRYPTO_TWOFISH is not set
1530# CONFIG_CRYPTO_SERPENT is not set
1531# CONFIG_CRYPTO_AES is not set 1589# CONFIG_CRYPTO_AES is not set
1590# CONFIG_CRYPTO_ANUBIS is not set
1591# CONFIG_CRYPTO_ARC4 is not set
1592# CONFIG_CRYPTO_BLOWFISH is not set
1593# CONFIG_CRYPTO_CAMELLIA is not set
1532# CONFIG_CRYPTO_CAST5 is not set 1594# CONFIG_CRYPTO_CAST5 is not set
1533# CONFIG_CRYPTO_CAST6 is not set 1595# CONFIG_CRYPTO_CAST6 is not set
1534# CONFIG_CRYPTO_TEA is not set 1596CONFIG_CRYPTO_DES=y
1535# CONFIG_CRYPTO_ARC4 is not set 1597# CONFIG_CRYPTO_FCRYPT is not set
1536# CONFIG_CRYPTO_KHAZAD is not set 1598# CONFIG_CRYPTO_KHAZAD is not set
1537# CONFIG_CRYPTO_ANUBIS is not set
1538# CONFIG_CRYPTO_SEED is not set
1539# CONFIG_CRYPTO_SALSA20 is not set 1599# CONFIG_CRYPTO_SALSA20 is not set
1600# CONFIG_CRYPTO_SEED is not set
1601# CONFIG_CRYPTO_SERPENT is not set
1602# CONFIG_CRYPTO_TEA is not set
1603# CONFIG_CRYPTO_TWOFISH is not set
1604
1605#
1606# Compression
1607#
1540# CONFIG_CRYPTO_DEFLATE is not set 1608# CONFIG_CRYPTO_DEFLATE is not set
1541# CONFIG_CRYPTO_MICHAEL_MIC is not set
1542# CONFIG_CRYPTO_CRC32C is not set
1543# CONFIG_CRYPTO_CAMELLIA is not set
1544# CONFIG_CRYPTO_TEST is not set
1545# CONFIG_CRYPTO_AUTHENC is not set
1546# CONFIG_CRYPTO_LZO is not set 1609# CONFIG_CRYPTO_LZO is not set
1547CONFIG_CRYPTO_HW=y 1610CONFIG_CRYPTO_HW=y
1548# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1611# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1549# CONFIG_PPC_CLOCK is not set 1612# CONFIG_PPC_CLOCK is not set
1613# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index a469fe918816..b09f0032a10b 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc85xx_cds_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:30 2008 4# Mon Jun 9 08:52:36 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 94# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -113,6 +116,7 @@ CONFIG_SLUB=y
113CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119# CONFIG_HAVE_DMA_ATTRS is not set
116CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
117CONFIG_SLABINFO=y 121CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
@@ -153,6 +157,7 @@ CONFIG_MPC85xx=y
153CONFIG_MPC85xx_CDS=y 157CONFIG_MPC85xx_CDS=y
154# CONFIG_MPC85xx_MDS is not set 158# CONFIG_MPC85xx_MDS is not set
155# CONFIG_MPC85xx_DS is not set 159# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set
156# CONFIG_STX_GP3 is not set 161# CONFIG_STX_GP3 is not set
157# CONFIG_TQM8540 is not set 162# CONFIG_TQM8540 is not set
158# CONFIG_TQM8541 is not set 163# CONFIG_TQM8541 is not set
@@ -208,11 +213,13 @@ CONFIG_FLATMEM=y
208CONFIG_FLAT_NODE_MEM_MAP=y 213CONFIG_FLAT_NODE_MEM_MAP=y
209# CONFIG_SPARSEMEM_STATIC is not set 214# CONFIG_SPARSEMEM_STATIC is not set
210# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y
211CONFIG_SPLIT_PTLOCK_CPUS=4 217CONFIG_SPLIT_PTLOCK_CPUS=4
212# CONFIG_RESOURCES_64BIT is not set 218# CONFIG_RESOURCES_64BIT is not set
213CONFIG_ZONE_DMA_FLAG=1 219CONFIG_ZONE_DMA_FLAG=1
214CONFIG_BOUNCE=y 220CONFIG_BOUNCE=y
215CONFIG_VIRT_TO_BUS=y 221CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11
216CONFIG_PROC_DEVICETREE=y 223CONFIG_PROC_DEVICETREE=y
217# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
218# CONFIG_PM is not set 225# CONFIG_PM is not set
@@ -236,6 +243,7 @@ CONFIG_PCI_LEGACY=y
236# CONFIG_PCI_DEBUG is not set 243# CONFIG_PCI_DEBUG is not set
237# CONFIG_PCCARD is not set 244# CONFIG_PCCARD is not set
238# CONFIG_HOTPLUG_PCI is not set 245# CONFIG_HOTPLUG_PCI is not set
246# CONFIG_HAS_RAPIDIO is not set
239 247
240# 248#
241# Advanced setup 249# Advanced setup
@@ -245,11 +253,12 @@ CONFIG_PCI_LEGACY=y
245# 253#
246# Default settings for advanced configuration options are used 254# Default settings for advanced configuration options are used
247# 255#
248CONFIG_HIGHMEM_START=0xfe000000
249CONFIG_LOWMEM_SIZE=0x30000000 256CONFIG_LOWMEM_SIZE=0x30000000
257CONFIG_PAGE_OFFSET=0xc0000000
250CONFIG_KERNEL_START=0xc0000000 258CONFIG_KERNEL_START=0xc0000000
259CONFIG_PHYSICAL_START=0x00000000
260CONFIG_PHYSICAL_ALIGN=0x10000000
251CONFIG_TASK_SIZE=0xc0000000 261CONFIG_TASK_SIZE=0xc0000000
252CONFIG_BOOT_LOAD=0x00800000
253 262
254# 263#
255# Networking 264# Networking
@@ -297,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y
297CONFIG_DEFAULT_TCP_CONG="cubic" 306CONFIG_DEFAULT_TCP_CONG="cubic"
298# CONFIG_TCP_MD5SIG is not set 307# CONFIG_TCP_MD5SIG is not set
299# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
300# CONFIG_INET6_XFRM_TUNNEL is not set
301# CONFIG_INET6_TUNNEL is not set
302# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
303# CONFIG_NETFILTER is not set 310# CONFIG_NETFILTER is not set
304# CONFIG_IP_DCCP is not set 311# CONFIG_IP_DCCP is not set
@@ -437,7 +444,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
437CONFIG_BLK_DEV_VIA82CXXX=y 444CONFIG_BLK_DEV_VIA82CXXX=y
438# CONFIG_BLK_DEV_TC86C001 is not set 445# CONFIG_BLK_DEV_TC86C001 is not set
439CONFIG_BLK_DEV_IDEDMA=y 446CONFIG_BLK_DEV_IDEDMA=y
440CONFIG_IDE_ARCH_OBSOLETE_INIT=y 447# CONFIG_BLK_DEV_HD_ONLY is not set
441# CONFIG_BLK_DEV_HD is not set 448# CONFIG_BLK_DEV_HD is not set
442 449
443# 450#
@@ -515,7 +522,6 @@ CONFIG_E1000_NAPI=y
515# CONFIG_SIS190 is not set 522# CONFIG_SIS190 is not set
516# CONFIG_SKGE is not set 523# CONFIG_SKGE is not set
517# CONFIG_SKY2 is not set 524# CONFIG_SKY2 is not set
518# CONFIG_SK98LIN is not set
519# CONFIG_VIA_VELOCITY is not set 525# CONFIG_VIA_VELOCITY is not set
520# CONFIG_TIGON3 is not set 526# CONFIG_TIGON3 is not set
521# CONFIG_BNX2 is not set 527# CONFIG_BNX2 is not set
@@ -535,6 +541,7 @@ CONFIG_NETDEV_10000=y
535# CONFIG_MLX4_CORE is not set 541# CONFIG_MLX4_CORE is not set
536# CONFIG_TEHUTI is not set 542# CONFIG_TEHUTI is not set
537# CONFIG_BNX2X is not set 543# CONFIG_BNX2X is not set
544# CONFIG_SFC is not set
538# CONFIG_TR is not set 545# CONFIG_TR is not set
539 546
540# 547#
@@ -542,6 +549,7 @@ CONFIG_NETDEV_10000=y
542# 549#
543# CONFIG_WLAN_PRE80211 is not set 550# CONFIG_WLAN_PRE80211 is not set
544# CONFIG_WLAN_80211 is not set 551# CONFIG_WLAN_80211 is not set
552# CONFIG_IWLWIFI_LEDS is not set
545# CONFIG_WAN is not set 553# CONFIG_WAN is not set
546# CONFIG_FDDI is not set 554# CONFIG_FDDI is not set
547# CONFIG_HIPPI is not set 555# CONFIG_HIPPI is not set
@@ -588,6 +596,7 @@ CONFIG_INPUT=y
588# Character devices 596# Character devices
589# 597#
590# CONFIG_VT is not set 598# CONFIG_VT is not set
599CONFIG_DEVKMEM=y
591# CONFIG_SERIAL_NONSTANDARD is not set 600# CONFIG_SERIAL_NONSTANDARD is not set
592# CONFIG_NOZOMI is not set 601# CONFIG_NOZOMI is not set
593 602
@@ -624,12 +633,7 @@ CONFIG_GEN_RTC=y
624# CONFIG_TCG_TPM is not set 633# CONFIG_TCG_TPM is not set
625CONFIG_DEVPORT=y 634CONFIG_DEVPORT=y
626# CONFIG_I2C is not set 635# CONFIG_I2C is not set
627
628#
629# SPI support
630#
631# CONFIG_SPI is not set 636# CONFIG_SPI is not set
632# CONFIG_SPI_MASTER is not set
633# CONFIG_W1 is not set 637# CONFIG_W1 is not set
634# CONFIG_POWER_SUPPLY is not set 638# CONFIG_POWER_SUPPLY is not set
635CONFIG_HWMON=y 639CONFIG_HWMON=y
@@ -662,12 +666,22 @@ CONFIG_SSB_POSSIBLE=y
662# Multifunction device drivers 666# Multifunction device drivers
663# 667#
664# CONFIG_MFD_SM501 is not set 668# CONFIG_MFD_SM501 is not set
669# CONFIG_HTC_PASIC3 is not set
665 670
666# 671#
667# Multimedia devices 672# Multimedia devices
668# 673#
674
675#
676# Multimedia core support
677#
669# CONFIG_VIDEO_DEV is not set 678# CONFIG_VIDEO_DEV is not set
670# CONFIG_DVB_CORE is not set 679# CONFIG_DVB_CORE is not set
680# CONFIG_VIDEO_MEDIA is not set
681
682#
683# Multimedia drivers
684#
671CONFIG_DAB=y 685CONFIG_DAB=y
672 686
673# 687#
@@ -698,6 +712,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
698CONFIG_USB_ARCH_HAS_OHCI=y 712CONFIG_USB_ARCH_HAS_OHCI=y
699CONFIG_USB_ARCH_HAS_EHCI=y 713CONFIG_USB_ARCH_HAS_EHCI=y
700# CONFIG_USB is not set 714# CONFIG_USB is not set
715# CONFIG_USB_OTG_WHITELIST is not set
716# CONFIG_USB_OTG_BLACKLIST_HUB is not set
701 717
702# 718#
703# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -706,14 +722,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
706# CONFIG_MMC is not set 722# CONFIG_MMC is not set
707# CONFIG_MEMSTICK is not set 723# CONFIG_MEMSTICK is not set
708# CONFIG_NEW_LEDS is not set 724# CONFIG_NEW_LEDS is not set
725# CONFIG_ACCESSIBILITY is not set
709# CONFIG_INFINIBAND is not set 726# CONFIG_INFINIBAND is not set
710# CONFIG_EDAC is not set 727# CONFIG_EDAC is not set
711# CONFIG_RTC_CLASS is not set 728# CONFIG_RTC_CLASS is not set
712# CONFIG_DMADEVICES is not set 729# CONFIG_DMADEVICES is not set
713
714#
715# Userspace I/O
716#
717# CONFIG_UIO is not set 730# CONFIG_UIO is not set
718 731
719# 732#
@@ -733,7 +746,6 @@ CONFIG_FS_MBCACHE=y
733# CONFIG_JFS_FS is not set 746# CONFIG_JFS_FS is not set
734# CONFIG_FS_POSIX_ACL is not set 747# CONFIG_FS_POSIX_ACL is not set
735# CONFIG_XFS_FS is not set 748# CONFIG_XFS_FS is not set
736# CONFIG_GFS2_FS is not set
737# CONFIG_OCFS2_FS is not set 749# CONFIG_OCFS2_FS is not set
738CONFIG_DNOTIFY=y 750CONFIG_DNOTIFY=y
739CONFIG_INOTIFY=y 751CONFIG_INOTIFY=y
@@ -790,7 +802,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
790CONFIG_NFS_FS=y 802CONFIG_NFS_FS=y
791# CONFIG_NFS_V3 is not set 803# CONFIG_NFS_V3 is not set
792# CONFIG_NFS_V4 is not set 804# CONFIG_NFS_V4 is not set
793# CONFIG_NFS_DIRECTIO is not set
794# CONFIG_NFSD is not set 805# CONFIG_NFSD is not set
795CONFIG_ROOT_NFS=y 806CONFIG_ROOT_NFS=y
796CONFIG_LOCKD=y 807CONFIG_LOCKD=y
@@ -829,6 +840,7 @@ CONFIG_PARTITION_ADVANCED=y
829# Library routines 840# Library routines
830# 841#
831CONFIG_BITREVERSE=y 842CONFIG_BITREVERSE=y
843# CONFIG_GENERIC_FIND_FIRST_BIT is not set
832# CONFIG_CRC_CCITT is not set 844# CONFIG_CRC_CCITT is not set
833# CONFIG_CRC16 is not set 845# CONFIG_CRC16 is not set
834# CONFIG_CRC_ITU_T is not set 846# CONFIG_CRC_ITU_T is not set
@@ -839,6 +851,7 @@ CONFIG_PLIST=y
839CONFIG_HAS_IOMEM=y 851CONFIG_HAS_IOMEM=y
840CONFIG_HAS_IOPORT=y 852CONFIG_HAS_IOPORT=y
841CONFIG_HAS_DMA=y 853CONFIG_HAS_DMA=y
854CONFIG_HAVE_LMB=y
842 855
843# 856#
844# Kernel hacking 857# Kernel hacking
@@ -846,6 +859,7 @@ CONFIG_HAS_DMA=y
846# CONFIG_PRINTK_TIME is not set 859# CONFIG_PRINTK_TIME is not set
847CONFIG_ENABLE_WARN_DEPRECATED=y 860CONFIG_ENABLE_WARN_DEPRECATED=y
848CONFIG_ENABLE_MUST_CHECK=y 861CONFIG_ENABLE_MUST_CHECK=y
862CONFIG_FRAME_WARN=1024
849# CONFIG_MAGIC_SYSRQ is not set 863# CONFIG_MAGIC_SYSRQ is not set
850# CONFIG_UNUSED_SYMBOLS is not set 864# CONFIG_UNUSED_SYMBOLS is not set
851# CONFIG_DEBUG_FS is not set 865# CONFIG_DEBUG_FS is not set
@@ -856,6 +870,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
856CONFIG_SCHED_DEBUG=y 870CONFIG_SCHED_DEBUG=y
857# CONFIG_SCHEDSTATS is not set 871# CONFIG_SCHEDSTATS is not set
858# CONFIG_TIMER_STATS is not set 872# CONFIG_TIMER_STATS is not set
873# CONFIG_DEBUG_OBJECTS is not set
859# CONFIG_SLUB_DEBUG_ON is not set 874# CONFIG_SLUB_DEBUG_ON is not set
860# CONFIG_SLUB_STATS is not set 875# CONFIG_SLUB_STATS is not set
861# CONFIG_DEBUG_RT_MUTEXES is not set 876# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -868,6 +883,7 @@ CONFIG_DEBUG_MUTEXES=y
868# CONFIG_DEBUG_BUGVERBOSE is not set 883# CONFIG_DEBUG_BUGVERBOSE is not set
869# CONFIG_DEBUG_INFO is not set 884# CONFIG_DEBUG_INFO is not set
870# CONFIG_DEBUG_VM is not set 885# CONFIG_DEBUG_VM is not set
886# CONFIG_DEBUG_WRITECOUNT is not set
871# CONFIG_DEBUG_LIST is not set 887# CONFIG_DEBUG_LIST is not set
872# CONFIG_DEBUG_SG is not set 888# CONFIG_DEBUG_SG is not set
873# CONFIG_BOOT_PRINTK_DELAY is not set 889# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -878,6 +894,7 @@ CONFIG_DEBUG_MUTEXES=y
878# CONFIG_DEBUG_STACK_USAGE is not set 894# CONFIG_DEBUG_STACK_USAGE is not set
879# CONFIG_DEBUG_PAGEALLOC is not set 895# CONFIG_DEBUG_PAGEALLOC is not set
880# CONFIG_DEBUGGER is not set 896# CONFIG_DEBUGGER is not set
897# CONFIG_IRQSTACKS is not set
881# CONFIG_BDI_SWITCH is not set 898# CONFIG_BDI_SWITCH is not set
882# CONFIG_PPC_EARLY_DEBUG is not set 899# CONFIG_PPC_EARLY_DEBUG is not set
883 900
@@ -888,48 +905,78 @@ CONFIG_DEBUG_MUTEXES=y
888# CONFIG_SECURITY is not set 905# CONFIG_SECURITY is not set
889# CONFIG_SECURITY_FILE_CAPABILITIES is not set 906# CONFIG_SECURITY_FILE_CAPABILITIES is not set
890CONFIG_CRYPTO=y 907CONFIG_CRYPTO=y
891# CONFIG_CRYPTO_SEQIV is not set 908
909#
910# Crypto core or helper
911#
892# CONFIG_CRYPTO_MANAGER is not set 912# CONFIG_CRYPTO_MANAGER is not set
913# CONFIG_CRYPTO_GF128MUL is not set
914# CONFIG_CRYPTO_NULL is not set
915# CONFIG_CRYPTO_CRYPTD is not set
916# CONFIG_CRYPTO_AUTHENC is not set
917
918#
919# Authenticated Encryption with Associated Data
920#
921# CONFIG_CRYPTO_CCM is not set
922# CONFIG_CRYPTO_GCM is not set
923# CONFIG_CRYPTO_SEQIV is not set
924
925#
926# Block modes
927#
928# CONFIG_CRYPTO_CBC is not set
929# CONFIG_CRYPTO_CTR is not set
930# CONFIG_CRYPTO_CTS is not set
931# CONFIG_CRYPTO_ECB is not set
932# CONFIG_CRYPTO_LRW is not set
933# CONFIG_CRYPTO_PCBC is not set
934# CONFIG_CRYPTO_XTS is not set
935
936#
937# Hash modes
938#
893# CONFIG_CRYPTO_HMAC is not set 939# CONFIG_CRYPTO_HMAC is not set
894# CONFIG_CRYPTO_XCBC is not set 940# CONFIG_CRYPTO_XCBC is not set
895# CONFIG_CRYPTO_NULL is not set 941
942#
943# Digest
944#
945# CONFIG_CRYPTO_CRC32C is not set
896# CONFIG_CRYPTO_MD4 is not set 946# CONFIG_CRYPTO_MD4 is not set
897# CONFIG_CRYPTO_MD5 is not set 947# CONFIG_CRYPTO_MD5 is not set
948# CONFIG_CRYPTO_MICHAEL_MIC is not set
898# CONFIG_CRYPTO_SHA1 is not set 949# CONFIG_CRYPTO_SHA1 is not set
899# CONFIG_CRYPTO_SHA256 is not set 950# CONFIG_CRYPTO_SHA256 is not set
900# CONFIG_CRYPTO_SHA512 is not set 951# CONFIG_CRYPTO_SHA512 is not set
901# CONFIG_CRYPTO_WP512 is not set
902# CONFIG_CRYPTO_TGR192 is not set 952# CONFIG_CRYPTO_TGR192 is not set
903# CONFIG_CRYPTO_GF128MUL is not set 953# CONFIG_CRYPTO_WP512 is not set
904# CONFIG_CRYPTO_ECB is not set 954
905# CONFIG_CRYPTO_CBC is not set 955#
906# CONFIG_CRYPTO_PCBC is not set 956# Ciphers
907# CONFIG_CRYPTO_LRW is not set 957#
908# CONFIG_CRYPTO_XTS is not set
909# CONFIG_CRYPTO_CTR is not set
910# CONFIG_CRYPTO_GCM is not set
911# CONFIG_CRYPTO_CCM is not set
912# CONFIG_CRYPTO_CRYPTD is not set
913# CONFIG_CRYPTO_DES is not set
914# CONFIG_CRYPTO_FCRYPT is not set
915# CONFIG_CRYPTO_BLOWFISH is not set
916# CONFIG_CRYPTO_TWOFISH is not set
917# CONFIG_CRYPTO_SERPENT is not set
918# CONFIG_CRYPTO_AES is not set 958# CONFIG_CRYPTO_AES is not set
959# CONFIG_CRYPTO_ANUBIS is not set
960# CONFIG_CRYPTO_ARC4 is not set
961# CONFIG_CRYPTO_BLOWFISH is not set
962# CONFIG_CRYPTO_CAMELLIA is not set
919# CONFIG_CRYPTO_CAST5 is not set 963# CONFIG_CRYPTO_CAST5 is not set
920# CONFIG_CRYPTO_CAST6 is not set 964# CONFIG_CRYPTO_CAST6 is not set
921# CONFIG_CRYPTO_TEA is not set 965# CONFIG_CRYPTO_DES is not set
922# CONFIG_CRYPTO_ARC4 is not set 966# CONFIG_CRYPTO_FCRYPT is not set
923# CONFIG_CRYPTO_KHAZAD is not set 967# CONFIG_CRYPTO_KHAZAD is not set
924# CONFIG_CRYPTO_ANUBIS is not set
925# CONFIG_CRYPTO_SEED is not set
926# CONFIG_CRYPTO_SALSA20 is not set 968# CONFIG_CRYPTO_SALSA20 is not set
969# CONFIG_CRYPTO_SEED is not set
970# CONFIG_CRYPTO_SERPENT is not set
971# CONFIG_CRYPTO_TEA is not set
972# CONFIG_CRYPTO_TWOFISH is not set
973
974#
975# Compression
976#
927# CONFIG_CRYPTO_DEFLATE is not set 977# CONFIG_CRYPTO_DEFLATE is not set
928# CONFIG_CRYPTO_MICHAEL_MIC is not set
929# CONFIG_CRYPTO_CRC32C is not set
930# CONFIG_CRYPTO_CAMELLIA is not set
931# CONFIG_CRYPTO_AUTHENC is not set
932# CONFIG_CRYPTO_LZO is not set 978# CONFIG_CRYPTO_LZO is not set
933CONFIG_CRYPTO_HW=y 979CONFIG_CRYPTO_HW=y
934# CONFIG_CRYPTO_DEV_HIFN_795X is not set 980# CONFIG_CRYPTO_DEV_HIFN_795X is not set
935# CONFIG_PPC_CLOCK is not set 981# CONFIG_PPC_CLOCK is not set
982# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 67f67978c742..24f7f44b4821 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8548_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:39 2008 4# Mon Jun 9 08:52:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 94# CONFIG_KALLSYMS_EXTRA_PASS is not set
92CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
@@ -111,6 +114,7 @@ CONFIG_SLAB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y
151# CONFIG_MPC85xx_CDS is not set 155# CONFIG_MPC85xx_CDS is not set
152# CONFIG_MPC85xx_MDS is not set 156# CONFIG_MPC85xx_MDS is not set
153# CONFIG_MPC85xx_DS is not set 157# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set
154# CONFIG_STX_GP3 is not set 159# CONFIG_STX_GP3 is not set
155# CONFIG_TQM8540 is not set 160# CONFIG_TQM8540 is not set
156# CONFIG_TQM8541 is not set 161# CONFIG_TQM8541 is not set
@@ -206,11 +211,13 @@ CONFIG_FLATMEM=y
206CONFIG_FLAT_NODE_MEM_MAP=y 211CONFIG_FLAT_NODE_MEM_MAP=y
207# CONFIG_SPARSEMEM_STATIC is not set 212# CONFIG_SPARSEMEM_STATIC is not set
208# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
214CONFIG_PAGEFLAGS_EXTENDED=y
209CONFIG_SPLIT_PTLOCK_CPUS=4 215CONFIG_SPLIT_PTLOCK_CPUS=4
210# CONFIG_RESOURCES_64BIT is not set 216# CONFIG_RESOURCES_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=1 217CONFIG_ZONE_DMA_FLAG=1
212CONFIG_BOUNCE=y 218CONFIG_BOUNCE=y
213CONFIG_VIRT_TO_BUS=y 219CONFIG_VIRT_TO_BUS=y
220CONFIG_FORCE_MAX_ZONEORDER=11
214CONFIG_PROC_DEVICETREE=y 221CONFIG_PROC_DEVICETREE=y
215# CONFIG_CMDLINE_BOOL is not set 222# CONFIG_CMDLINE_BOOL is not set
216# CONFIG_PM is not set 223# CONFIG_PM is not set
@@ -233,6 +240,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
233CONFIG_PCI_LEGACY=y 240CONFIG_PCI_LEGACY=y
234# CONFIG_PCCARD is not set 241# CONFIG_PCCARD is not set
235# CONFIG_HOTPLUG_PCI is not set 242# CONFIG_HOTPLUG_PCI is not set
243# CONFIG_HAS_RAPIDIO is not set
236 244
237# 245#
238# Advanced setup 246# Advanced setup
@@ -242,11 +250,12 @@ CONFIG_PCI_LEGACY=y
242# 250#
243# Default settings for advanced configuration options are used 251# Default settings for advanced configuration options are used
244# 252#
245CONFIG_HIGHMEM_START=0xfe000000
246CONFIG_LOWMEM_SIZE=0x30000000 253CONFIG_LOWMEM_SIZE=0x30000000
254CONFIG_PAGE_OFFSET=0xc0000000
247CONFIG_KERNEL_START=0xc0000000 255CONFIG_KERNEL_START=0xc0000000
256CONFIG_PHYSICAL_START=0x00000000
257CONFIG_PHYSICAL_ALIGN=0x10000000
248CONFIG_TASK_SIZE=0xc0000000 258CONFIG_TASK_SIZE=0xc0000000
249CONFIG_BOOT_LOAD=0x00800000
250 259
251# 260#
252# Networking 261# Networking
@@ -294,8 +303,6 @@ CONFIG_TCP_CONG_CUBIC=y
294CONFIG_DEFAULT_TCP_CONG="cubic" 303CONFIG_DEFAULT_TCP_CONG="cubic"
295# CONFIG_TCP_MD5SIG is not set 304# CONFIG_TCP_MD5SIG is not set
296# CONFIG_IPV6 is not set 305# CONFIG_IPV6 is not set
297# CONFIG_INET6_XFRM_TUNNEL is not set
298# CONFIG_INET6_TUNNEL is not set
299# CONFIG_NETWORK_SECMARK is not set 306# CONFIG_NETWORK_SECMARK is not set
300# CONFIG_NETFILTER is not set 307# CONFIG_NETFILTER is not set
301# CONFIG_IP_DCCP is not set 308# CONFIG_IP_DCCP is not set
@@ -449,7 +456,6 @@ CONFIG_NETDEV_1000=y
449# CONFIG_SIS190 is not set 456# CONFIG_SIS190 is not set
450# CONFIG_SKGE is not set 457# CONFIG_SKGE is not set
451# CONFIG_SKY2 is not set 458# CONFIG_SKY2 is not set
452# CONFIG_SK98LIN is not set
453# CONFIG_VIA_VELOCITY is not set 459# CONFIG_VIA_VELOCITY is not set
454# CONFIG_TIGON3 is not set 460# CONFIG_TIGON3 is not set
455# CONFIG_BNX2 is not set 461# CONFIG_BNX2 is not set
@@ -469,6 +475,7 @@ CONFIG_NETDEV_10000=y
469# CONFIG_MLX4_CORE is not set 475# CONFIG_MLX4_CORE is not set
470# CONFIG_TEHUTI is not set 476# CONFIG_TEHUTI is not set
471# CONFIG_BNX2X is not set 477# CONFIG_BNX2X is not set
478# CONFIG_SFC is not set
472# CONFIG_TR is not set 479# CONFIG_TR is not set
473 480
474# 481#
@@ -476,6 +483,7 @@ CONFIG_NETDEV_10000=y
476# 483#
477# CONFIG_WLAN_PRE80211 is not set 484# CONFIG_WLAN_PRE80211 is not set
478# CONFIG_WLAN_80211 is not set 485# CONFIG_WLAN_80211 is not set
486# CONFIG_IWLWIFI_LEDS is not set
479# CONFIG_WAN is not set 487# CONFIG_WAN is not set
480# CONFIG_FDDI is not set 488# CONFIG_FDDI is not set
481# CONFIG_HIPPI is not set 489# CONFIG_HIPPI is not set
@@ -522,6 +530,7 @@ CONFIG_INPUT=y
522# Character devices 530# Character devices
523# 531#
524# CONFIG_VT is not set 532# CONFIG_VT is not set
533CONFIG_DEVKMEM=y
525# CONFIG_SERIAL_NONSTANDARD is not set 534# CONFIG_SERIAL_NONSTANDARD is not set
526# CONFIG_NOZOMI is not set 535# CONFIG_NOZOMI is not set
527 536
@@ -558,12 +567,7 @@ CONFIG_GEN_RTC=y
558# CONFIG_TCG_TPM is not set 567# CONFIG_TCG_TPM is not set
559CONFIG_DEVPORT=y 568CONFIG_DEVPORT=y
560# CONFIG_I2C is not set 569# CONFIG_I2C is not set
561
562#
563# SPI support
564#
565# CONFIG_SPI is not set 570# CONFIG_SPI is not set
566# CONFIG_SPI_MASTER is not set
567# CONFIG_W1 is not set 571# CONFIG_W1 is not set
568# CONFIG_POWER_SUPPLY is not set 572# CONFIG_POWER_SUPPLY is not set
569CONFIG_HWMON=y 573CONFIG_HWMON=y
@@ -596,12 +600,22 @@ CONFIG_SSB_POSSIBLE=y
596# Multifunction device drivers 600# Multifunction device drivers
597# 601#
598# CONFIG_MFD_SM501 is not set 602# CONFIG_MFD_SM501 is not set
603# CONFIG_HTC_PASIC3 is not set
599 604
600# 605#
601# Multimedia devices 606# Multimedia devices
602# 607#
608
609#
610# Multimedia core support
611#
603# CONFIG_VIDEO_DEV is not set 612# CONFIG_VIDEO_DEV is not set
604# CONFIG_DVB_CORE is not set 613# CONFIG_DVB_CORE is not set
614# CONFIG_VIDEO_MEDIA is not set
615
616#
617# Multimedia drivers
618#
605CONFIG_DAB=y 619CONFIG_DAB=y
606 620
607# 621#
@@ -628,14 +642,11 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
628# CONFIG_MMC is not set 642# CONFIG_MMC is not set
629# CONFIG_MEMSTICK is not set 643# CONFIG_MEMSTICK is not set
630# CONFIG_NEW_LEDS is not set 644# CONFIG_NEW_LEDS is not set
645# CONFIG_ACCESSIBILITY is not set
631# CONFIG_INFINIBAND is not set 646# CONFIG_INFINIBAND is not set
632# CONFIG_EDAC is not set 647# CONFIG_EDAC is not set
633# CONFIG_RTC_CLASS is not set 648# CONFIG_RTC_CLASS is not set
634# CONFIG_DMADEVICES is not set 649# CONFIG_DMADEVICES is not set
635
636#
637# Userspace I/O
638#
639# CONFIG_UIO is not set 650# CONFIG_UIO is not set
640 651
641# 652#
@@ -648,7 +659,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
648# CONFIG_JFS_FS is not set 659# CONFIG_JFS_FS is not set
649# CONFIG_FS_POSIX_ACL is not set 660# CONFIG_FS_POSIX_ACL is not set
650# CONFIG_XFS_FS is not set 661# CONFIG_XFS_FS is not set
651# CONFIG_GFS2_FS is not set
652# CONFIG_OCFS2_FS is not set 662# CONFIG_OCFS2_FS is not set
653CONFIG_DNOTIFY=y 663CONFIG_DNOTIFY=y
654CONFIG_INOTIFY=y 664CONFIG_INOTIFY=y
@@ -705,7 +715,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
705CONFIG_NFS_FS=y 715CONFIG_NFS_FS=y
706# CONFIG_NFS_V3 is not set 716# CONFIG_NFS_V3 is not set
707# CONFIG_NFS_V4 is not set 717# CONFIG_NFS_V4 is not set
708# CONFIG_NFS_DIRECTIO is not set
709# CONFIG_NFSD is not set 718# CONFIG_NFSD is not set
710CONFIG_ROOT_NFS=y 719CONFIG_ROOT_NFS=y
711CONFIG_LOCKD=y 720CONFIG_LOCKD=y
@@ -732,6 +741,7 @@ CONFIG_MSDOS_PARTITION=y
732# Library routines 741# Library routines
733# 742#
734CONFIG_BITREVERSE=y 743CONFIG_BITREVERSE=y
744# CONFIG_GENERIC_FIND_FIRST_BIT is not set
735# CONFIG_CRC_CCITT is not set 745# CONFIG_CRC_CCITT is not set
736# CONFIG_CRC16 is not set 746# CONFIG_CRC16 is not set
737# CONFIG_CRC_ITU_T is not set 747# CONFIG_CRC_ITU_T is not set
@@ -742,6 +752,7 @@ CONFIG_PLIST=y
742CONFIG_HAS_IOMEM=y 752CONFIG_HAS_IOMEM=y
743CONFIG_HAS_IOPORT=y 753CONFIG_HAS_IOPORT=y
744CONFIG_HAS_DMA=y 754CONFIG_HAS_DMA=y
755CONFIG_HAVE_LMB=y
745 756
746# 757#
747# Kernel hacking 758# Kernel hacking
@@ -749,6 +760,7 @@ CONFIG_HAS_DMA=y
749# CONFIG_PRINTK_TIME is not set 760# CONFIG_PRINTK_TIME is not set
750CONFIG_ENABLE_WARN_DEPRECATED=y 761CONFIG_ENABLE_WARN_DEPRECATED=y
751CONFIG_ENABLE_MUST_CHECK=y 762CONFIG_ENABLE_MUST_CHECK=y
763CONFIG_FRAME_WARN=1024
752# CONFIG_MAGIC_SYSRQ is not set 764# CONFIG_MAGIC_SYSRQ is not set
753# CONFIG_UNUSED_SYMBOLS is not set 765# CONFIG_UNUSED_SYMBOLS is not set
754# CONFIG_DEBUG_FS is not set 766# CONFIG_DEBUG_FS is not set
@@ -756,6 +768,7 @@ CONFIG_ENABLE_MUST_CHECK=y
756# CONFIG_DEBUG_KERNEL is not set 768# CONFIG_DEBUG_KERNEL is not set
757# CONFIG_DEBUG_BUGVERBOSE is not set 769# CONFIG_DEBUG_BUGVERBOSE is not set
758# CONFIG_SAMPLES is not set 770# CONFIG_SAMPLES is not set
771# CONFIG_IRQSTACKS is not set
759# CONFIG_PPC_EARLY_DEBUG is not set 772# CONFIG_PPC_EARLY_DEBUG is not set
760 773
761# 774#
@@ -765,48 +778,78 @@ CONFIG_ENABLE_MUST_CHECK=y
765# CONFIG_SECURITY is not set 778# CONFIG_SECURITY is not set
766# CONFIG_SECURITY_FILE_CAPABILITIES is not set 779# CONFIG_SECURITY_FILE_CAPABILITIES is not set
767CONFIG_CRYPTO=y 780CONFIG_CRYPTO=y
768# CONFIG_CRYPTO_SEQIV is not set 781
782#
783# Crypto core or helper
784#
769# CONFIG_CRYPTO_MANAGER is not set 785# CONFIG_CRYPTO_MANAGER is not set
786# CONFIG_CRYPTO_GF128MUL is not set
787# CONFIG_CRYPTO_NULL is not set
788# CONFIG_CRYPTO_CRYPTD is not set
789# CONFIG_CRYPTO_AUTHENC is not set
790
791#
792# Authenticated Encryption with Associated Data
793#
794# CONFIG_CRYPTO_CCM is not set
795# CONFIG_CRYPTO_GCM is not set
796# CONFIG_CRYPTO_SEQIV is not set
797
798#
799# Block modes
800#
801# CONFIG_CRYPTO_CBC is not set
802# CONFIG_CRYPTO_CTR is not set
803# CONFIG_CRYPTO_CTS is not set
804# CONFIG_CRYPTO_ECB is not set
805# CONFIG_CRYPTO_LRW is not set
806# CONFIG_CRYPTO_PCBC is not set
807# CONFIG_CRYPTO_XTS is not set
808
809#
810# Hash modes
811#
770# CONFIG_CRYPTO_HMAC is not set 812# CONFIG_CRYPTO_HMAC is not set
771# CONFIG_CRYPTO_XCBC is not set 813# CONFIG_CRYPTO_XCBC is not set
772# CONFIG_CRYPTO_NULL is not set 814
815#
816# Digest
817#
818# CONFIG_CRYPTO_CRC32C is not set
773# CONFIG_CRYPTO_MD4 is not set 819# CONFIG_CRYPTO_MD4 is not set
774# CONFIG_CRYPTO_MD5 is not set 820# CONFIG_CRYPTO_MD5 is not set
821# CONFIG_CRYPTO_MICHAEL_MIC is not set
775# CONFIG_CRYPTO_SHA1 is not set 822# CONFIG_CRYPTO_SHA1 is not set
776# CONFIG_CRYPTO_SHA256 is not set 823# CONFIG_CRYPTO_SHA256 is not set
777# CONFIG_CRYPTO_SHA512 is not set 824# CONFIG_CRYPTO_SHA512 is not set
778# CONFIG_CRYPTO_WP512 is not set
779# CONFIG_CRYPTO_TGR192 is not set 825# CONFIG_CRYPTO_TGR192 is not set
780# CONFIG_CRYPTO_GF128MUL is not set 826# CONFIG_CRYPTO_WP512 is not set
781# CONFIG_CRYPTO_ECB is not set 827
782# CONFIG_CRYPTO_CBC is not set 828#
783# CONFIG_CRYPTO_PCBC is not set 829# Ciphers
784# CONFIG_CRYPTO_LRW is not set 830#
785# CONFIG_CRYPTO_XTS is not set
786# CONFIG_CRYPTO_CTR is not set
787# CONFIG_CRYPTO_GCM is not set
788# CONFIG_CRYPTO_CCM is not set
789# CONFIG_CRYPTO_CRYPTD is not set
790# CONFIG_CRYPTO_DES is not set
791# CONFIG_CRYPTO_FCRYPT is not set
792# CONFIG_CRYPTO_BLOWFISH is not set
793# CONFIG_CRYPTO_TWOFISH is not set
794# CONFIG_CRYPTO_SERPENT is not set
795# CONFIG_CRYPTO_AES is not set 831# CONFIG_CRYPTO_AES is not set
832# CONFIG_CRYPTO_ANUBIS is not set
833# CONFIG_CRYPTO_ARC4 is not set
834# CONFIG_CRYPTO_BLOWFISH is not set
835# CONFIG_CRYPTO_CAMELLIA is not set
796# CONFIG_CRYPTO_CAST5 is not set 836# CONFIG_CRYPTO_CAST5 is not set
797# CONFIG_CRYPTO_CAST6 is not set 837# CONFIG_CRYPTO_CAST6 is not set
798# CONFIG_CRYPTO_TEA is not set 838# CONFIG_CRYPTO_DES is not set
799# CONFIG_CRYPTO_ARC4 is not set 839# CONFIG_CRYPTO_FCRYPT is not set
800# CONFIG_CRYPTO_KHAZAD is not set 840# CONFIG_CRYPTO_KHAZAD is not set
801# CONFIG_CRYPTO_ANUBIS is not set
802# CONFIG_CRYPTO_SEED is not set
803# CONFIG_CRYPTO_SALSA20 is not set 841# CONFIG_CRYPTO_SALSA20 is not set
842# CONFIG_CRYPTO_SEED is not set
843# CONFIG_CRYPTO_SERPENT is not set
844# CONFIG_CRYPTO_TEA is not set
845# CONFIG_CRYPTO_TWOFISH is not set
846
847#
848# Compression
849#
804# CONFIG_CRYPTO_DEFLATE is not set 850# CONFIG_CRYPTO_DEFLATE is not set
805# CONFIG_CRYPTO_MICHAEL_MIC is not set
806# CONFIG_CRYPTO_CRC32C is not set
807# CONFIG_CRYPTO_CAMELLIA is not set
808# CONFIG_CRYPTO_AUTHENC is not set
809# CONFIG_CRYPTO_LZO is not set 851# CONFIG_CRYPTO_LZO is not set
810CONFIG_CRYPTO_HW=y 852CONFIG_CRYPTO_HW=y
811# CONFIG_CRYPTO_DEV_HIFN_795X is not set 853# CONFIG_CRYPTO_DEV_HIFN_795X is not set
812# CONFIG_PPC_CLOCK is not set 854# CONFIG_PPC_CLOCK is not set
855# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index fef605579e29..655518dcd73f 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8560_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:39 2008 4# Mon Jun 9 08:52:38 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 94# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -112,6 +115,7 @@ CONFIG_SLAB=y
112CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
118# CONFIG_HAVE_DMA_ATTRS is not set
115CONFIG_PROC_PAGE_MONITOR=y 119CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
@@ -152,6 +156,7 @@ CONFIG_MPC85xx=y
152# CONFIG_MPC85xx_CDS is not set 156# CONFIG_MPC85xx_CDS is not set
153# CONFIG_MPC85xx_MDS is not set 157# CONFIG_MPC85xx_MDS is not set
154# CONFIG_MPC85xx_DS is not set 158# CONFIG_MPC85xx_DS is not set
159# CONFIG_KSI8560 is not set
155# CONFIG_STX_GP3 is not set 160# CONFIG_STX_GP3 is not set
156# CONFIG_TQM8540 is not set 161# CONFIG_TQM8540 is not set
157# CONFIG_TQM8541 is not set 162# CONFIG_TQM8541 is not set
@@ -207,11 +212,13 @@ CONFIG_FLATMEM=y
207CONFIG_FLAT_NODE_MEM_MAP=y 212CONFIG_FLAT_NODE_MEM_MAP=y
208# CONFIG_SPARSEMEM_STATIC is not set 213# CONFIG_SPARSEMEM_STATIC is not set
209# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y
210CONFIG_SPLIT_PTLOCK_CPUS=4 216CONFIG_SPLIT_PTLOCK_CPUS=4
211# CONFIG_RESOURCES_64BIT is not set 217# CONFIG_RESOURCES_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=1 218CONFIG_ZONE_DMA_FLAG=1
213CONFIG_BOUNCE=y 219CONFIG_BOUNCE=y
214CONFIG_VIRT_TO_BUS=y 220CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=11
215CONFIG_PROC_DEVICETREE=y 222CONFIG_PROC_DEVICETREE=y
216# CONFIG_CMDLINE_BOOL is not set 223# CONFIG_CMDLINE_BOOL is not set
217# CONFIG_PM is not set 224# CONFIG_PM is not set
@@ -228,6 +235,7 @@ CONFIG_FSL_SOC=y
228# CONFIG_PCI_SYSCALL is not set 235# CONFIG_PCI_SYSCALL is not set
229# CONFIG_ARCH_SUPPORTS_MSI is not set 236# CONFIG_ARCH_SUPPORTS_MSI is not set
230# CONFIG_PCCARD is not set 237# CONFIG_PCCARD is not set
238# CONFIG_HAS_RAPIDIO is not set
231 239
232# 240#
233# Advanced setup 241# Advanced setup
@@ -237,11 +245,12 @@ CONFIG_FSL_SOC=y
237# 245#
238# Default settings for advanced configuration options are used 246# Default settings for advanced configuration options are used
239# 247#
240CONFIG_HIGHMEM_START=0xfe000000
241CONFIG_LOWMEM_SIZE=0x30000000 248CONFIG_LOWMEM_SIZE=0x30000000
249CONFIG_PAGE_OFFSET=0xc0000000
242CONFIG_KERNEL_START=0xc0000000 250CONFIG_KERNEL_START=0xc0000000
251CONFIG_PHYSICAL_START=0x00000000
252CONFIG_PHYSICAL_ALIGN=0x10000000
243CONFIG_TASK_SIZE=0xc0000000 253CONFIG_TASK_SIZE=0xc0000000
244CONFIG_BOOT_LOAD=0x00800000
245 254
246# 255#
247# Networking 256# Networking
@@ -289,8 +298,6 @@ CONFIG_TCP_CONG_CUBIC=y
289CONFIG_DEFAULT_TCP_CONG="cubic" 298CONFIG_DEFAULT_TCP_CONG="cubic"
290# CONFIG_TCP_MD5SIG is not set 299# CONFIG_TCP_MD5SIG is not set
291# CONFIG_IPV6 is not set 300# CONFIG_IPV6 is not set
292# CONFIG_INET6_XFRM_TUNNEL is not set
293# CONFIG_INET6_TUNNEL is not set
294# CONFIG_NETWORK_SECMARK is not set 301# CONFIG_NETWORK_SECMARK is not set
295# CONFIG_NETFILTER is not set 302# CONFIG_NETFILTER is not set
296# CONFIG_IP_DCCP is not set 303# CONFIG_IP_DCCP is not set
@@ -418,6 +425,7 @@ CONFIG_NETDEV_10000=y
418# 425#
419# CONFIG_WLAN_PRE80211 is not set 426# CONFIG_WLAN_PRE80211 is not set
420# CONFIG_WLAN_80211 is not set 427# CONFIG_WLAN_80211 is not set
428# CONFIG_IWLWIFI_LEDS is not set
421# CONFIG_WAN is not set 429# CONFIG_WAN is not set
422# CONFIG_PPP is not set 430# CONFIG_PPP is not set
423# CONFIG_SLIP is not set 431# CONFIG_SLIP is not set
@@ -462,6 +470,7 @@ CONFIG_INPUT=y
462# Character devices 470# Character devices
463# 471#
464# CONFIG_VT is not set 472# CONFIG_VT is not set
473CONFIG_DEVKMEM=y
465# CONFIG_SERIAL_NONSTANDARD is not set 474# CONFIG_SERIAL_NONSTANDARD is not set
466 475
467# 476#
@@ -487,17 +496,11 @@ CONFIG_LEGACY_PTY_COUNT=256
487# CONFIG_IPMI_HANDLER is not set 496# CONFIG_IPMI_HANDLER is not set
488# CONFIG_HW_RANDOM is not set 497# CONFIG_HW_RANDOM is not set
489# CONFIG_NVRAM is not set 498# CONFIG_NVRAM is not set
490# CONFIG_GEN_RTC is not set
491# CONFIG_R3964 is not set 499# CONFIG_R3964 is not set
492# CONFIG_RAW_DRIVER is not set 500# CONFIG_RAW_DRIVER is not set
493# CONFIG_TCG_TPM is not set 501# CONFIG_TCG_TPM is not set
494# CONFIG_I2C is not set 502# CONFIG_I2C is not set
495
496#
497# SPI support
498#
499# CONFIG_SPI is not set 503# CONFIG_SPI is not set
500# CONFIG_SPI_MASTER is not set
501# CONFIG_W1 is not set 504# CONFIG_W1 is not set
502# CONFIG_POWER_SUPPLY is not set 505# CONFIG_POWER_SUPPLY is not set
503CONFIG_HWMON=y 506CONFIG_HWMON=y
@@ -526,12 +529,22 @@ CONFIG_SSB_POSSIBLE=y
526# Multifunction device drivers 529# Multifunction device drivers
527# 530#
528# CONFIG_MFD_SM501 is not set 531# CONFIG_MFD_SM501 is not set
532# CONFIG_HTC_PASIC3 is not set
529 533
530# 534#
531# Multimedia devices 535# Multimedia devices
532# 536#
537
538#
539# Multimedia core support
540#
533# CONFIG_VIDEO_DEV is not set 541# CONFIG_VIDEO_DEV is not set
534# CONFIG_DVB_CORE is not set 542# CONFIG_DVB_CORE is not set
543# CONFIG_VIDEO_MEDIA is not set
544
545#
546# Multimedia drivers
547#
535CONFIG_DAB=y 548CONFIG_DAB=y
536 549
537# 550#
@@ -559,6 +572,8 @@ CONFIG_USB_SUPPORT=y
559# CONFIG_USB_ARCH_HAS_HCD is not set 572# CONFIG_USB_ARCH_HAS_HCD is not set
560# CONFIG_USB_ARCH_HAS_OHCI is not set 573# CONFIG_USB_ARCH_HAS_OHCI is not set
561# CONFIG_USB_ARCH_HAS_EHCI is not set 574# CONFIG_USB_ARCH_HAS_EHCI is not set
575# CONFIG_USB_OTG_WHITELIST is not set
576# CONFIG_USB_OTG_BLACKLIST_HUB is not set
562 577
563# 578#
564# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 579# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -567,6 +582,7 @@ CONFIG_USB_SUPPORT=y
567# CONFIG_MMC is not set 582# CONFIG_MMC is not set
568# CONFIG_MEMSTICK is not set 583# CONFIG_MEMSTICK is not set
569# CONFIG_NEW_LEDS is not set 584# CONFIG_NEW_LEDS is not set
585# CONFIG_ACCESSIBILITY is not set
570# CONFIG_EDAC is not set 586# CONFIG_EDAC is not set
571CONFIG_RTC_LIB=y 587CONFIG_RTC_LIB=y
572CONFIG_RTC_CLASS=y 588CONFIG_RTC_CLASS=y
@@ -602,11 +618,8 @@ CONFIG_RTC_DRV_M48T59=y
602# 618#
603# on-CPU RTC drivers 619# on-CPU RTC drivers
604# 620#
621# CONFIG_RTC_DRV_PPC is not set
605# CONFIG_DMADEVICES is not set 622# CONFIG_DMADEVICES is not set
606
607#
608# Userspace I/O
609#
610# CONFIG_UIO is not set 623# CONFIG_UIO is not set
611 624
612# 625#
@@ -619,7 +632,6 @@ CONFIG_RTC_DRV_M48T59=y
619# CONFIG_JFS_FS is not set 632# CONFIG_JFS_FS is not set
620# CONFIG_FS_POSIX_ACL is not set 633# CONFIG_FS_POSIX_ACL is not set
621# CONFIG_XFS_FS is not set 634# CONFIG_XFS_FS is not set
622# CONFIG_GFS2_FS is not set
623# CONFIG_OCFS2_FS is not set 635# CONFIG_OCFS2_FS is not set
624CONFIG_DNOTIFY=y 636CONFIG_DNOTIFY=y
625CONFIG_INOTIFY=y 637CONFIG_INOTIFY=y
@@ -676,7 +688,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
676CONFIG_NFS_FS=y 688CONFIG_NFS_FS=y
677# CONFIG_NFS_V3 is not set 689# CONFIG_NFS_V3 is not set
678# CONFIG_NFS_V4 is not set 690# CONFIG_NFS_V4 is not set
679# CONFIG_NFS_DIRECTIO is not set
680# CONFIG_NFSD is not set 691# CONFIG_NFSD is not set
681CONFIG_ROOT_NFS=y 692CONFIG_ROOT_NFS=y
682CONFIG_LOCKD=y 693CONFIG_LOCKD=y
@@ -715,6 +726,7 @@ CONFIG_PARTITION_ADVANCED=y
715# Library routines 726# Library routines
716# 727#
717CONFIG_BITREVERSE=y 728CONFIG_BITREVERSE=y
729# CONFIG_GENERIC_FIND_FIRST_BIT is not set
718# CONFIG_CRC_CCITT is not set 730# CONFIG_CRC_CCITT is not set
719# CONFIG_CRC16 is not set 731# CONFIG_CRC16 is not set
720# CONFIG_CRC_ITU_T is not set 732# CONFIG_CRC_ITU_T is not set
@@ -725,6 +737,7 @@ CONFIG_PLIST=y
725CONFIG_HAS_IOMEM=y 737CONFIG_HAS_IOMEM=y
726CONFIG_HAS_IOPORT=y 738CONFIG_HAS_IOPORT=y
727CONFIG_HAS_DMA=y 739CONFIG_HAS_DMA=y
740CONFIG_HAVE_LMB=y
728 741
729# 742#
730# Kernel hacking 743# Kernel hacking
@@ -732,6 +745,7 @@ CONFIG_HAS_DMA=y
732# CONFIG_PRINTK_TIME is not set 745# CONFIG_PRINTK_TIME is not set
733CONFIG_ENABLE_WARN_DEPRECATED=y 746CONFIG_ENABLE_WARN_DEPRECATED=y
734CONFIG_ENABLE_MUST_CHECK=y 747CONFIG_ENABLE_MUST_CHECK=y
748CONFIG_FRAME_WARN=1024
735CONFIG_MAGIC_SYSRQ=y 749CONFIG_MAGIC_SYSRQ=y
736# CONFIG_UNUSED_SYMBOLS is not set 750# CONFIG_UNUSED_SYMBOLS is not set
737# CONFIG_DEBUG_FS is not set 751# CONFIG_DEBUG_FS is not set
@@ -742,6 +756,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
742CONFIG_SCHED_DEBUG=y 756CONFIG_SCHED_DEBUG=y
743# CONFIG_SCHEDSTATS is not set 757# CONFIG_SCHEDSTATS is not set
744# CONFIG_TIMER_STATS is not set 758# CONFIG_TIMER_STATS is not set
759# CONFIG_DEBUG_OBJECTS is not set
745# CONFIG_DEBUG_SLAB is not set 760# CONFIG_DEBUG_SLAB is not set
746# CONFIG_DEBUG_RT_MUTEXES is not set 761# CONFIG_DEBUG_RT_MUTEXES is not set
747# CONFIG_RT_MUTEX_TESTER is not set 762# CONFIG_RT_MUTEX_TESTER is not set
@@ -753,6 +768,7 @@ CONFIG_DEBUG_MUTEXES=y
753# CONFIG_DEBUG_BUGVERBOSE is not set 768# CONFIG_DEBUG_BUGVERBOSE is not set
754# CONFIG_DEBUG_INFO is not set 769# CONFIG_DEBUG_INFO is not set
755# CONFIG_DEBUG_VM is not set 770# CONFIG_DEBUG_VM is not set
771# CONFIG_DEBUG_WRITECOUNT is not set
756# CONFIG_DEBUG_LIST is not set 772# CONFIG_DEBUG_LIST is not set
757# CONFIG_DEBUG_SG is not set 773# CONFIG_DEBUG_SG is not set
758# CONFIG_BOOT_PRINTK_DELAY is not set 774# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -763,6 +779,7 @@ CONFIG_DEBUG_MUTEXES=y
763# CONFIG_DEBUG_STACK_USAGE is not set 779# CONFIG_DEBUG_STACK_USAGE is not set
764# CONFIG_DEBUG_PAGEALLOC is not set 780# CONFIG_DEBUG_PAGEALLOC is not set
765# CONFIG_DEBUGGER is not set 781# CONFIG_DEBUGGER is not set
782# CONFIG_IRQSTACKS is not set
766# CONFIG_BDI_SWITCH is not set 783# CONFIG_BDI_SWITCH is not set
767CONFIG_PPC_EARLY_DEBUG=y 784CONFIG_PPC_EARLY_DEBUG=y
768# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 785# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
@@ -784,47 +801,77 @@ CONFIG_PPC_EARLY_DEBUG=y
784# CONFIG_SECURITY is not set 801# CONFIG_SECURITY is not set
785# CONFIG_SECURITY_FILE_CAPABILITIES is not set 802# CONFIG_SECURITY_FILE_CAPABILITIES is not set
786CONFIG_CRYPTO=y 803CONFIG_CRYPTO=y
787# CONFIG_CRYPTO_SEQIV is not set 804
805#
806# Crypto core or helper
807#
788# CONFIG_CRYPTO_MANAGER is not set 808# CONFIG_CRYPTO_MANAGER is not set
809# CONFIG_CRYPTO_GF128MUL is not set
810# CONFIG_CRYPTO_NULL is not set
811# CONFIG_CRYPTO_CRYPTD is not set
812# CONFIG_CRYPTO_AUTHENC is not set
813
814#
815# Authenticated Encryption with Associated Data
816#
817# CONFIG_CRYPTO_CCM is not set
818# CONFIG_CRYPTO_GCM is not set
819# CONFIG_CRYPTO_SEQIV is not set
820
821#
822# Block modes
823#
824# CONFIG_CRYPTO_CBC is not set
825# CONFIG_CRYPTO_CTR is not set
826# CONFIG_CRYPTO_CTS is not set
827# CONFIG_CRYPTO_ECB is not set
828# CONFIG_CRYPTO_LRW is not set
829# CONFIG_CRYPTO_PCBC is not set
830# CONFIG_CRYPTO_XTS is not set
831
832#
833# Hash modes
834#
789# CONFIG_CRYPTO_HMAC is not set 835# CONFIG_CRYPTO_HMAC is not set
790# CONFIG_CRYPTO_XCBC is not set 836# CONFIG_CRYPTO_XCBC is not set
791# CONFIG_CRYPTO_NULL is not set 837
838#
839# Digest
840#
841# CONFIG_CRYPTO_CRC32C is not set
792# CONFIG_CRYPTO_MD4 is not set 842# CONFIG_CRYPTO_MD4 is not set
793# CONFIG_CRYPTO_MD5 is not set 843# CONFIG_CRYPTO_MD5 is not set
844# CONFIG_CRYPTO_MICHAEL_MIC is not set
794# CONFIG_CRYPTO_SHA1 is not set 845# CONFIG_CRYPTO_SHA1 is not set
795# CONFIG_CRYPTO_SHA256 is not set 846# CONFIG_CRYPTO_SHA256 is not set
796# CONFIG_CRYPTO_SHA512 is not set 847# CONFIG_CRYPTO_SHA512 is not set
797# CONFIG_CRYPTO_WP512 is not set
798# CONFIG_CRYPTO_TGR192 is not set 848# CONFIG_CRYPTO_TGR192 is not set
799# CONFIG_CRYPTO_GF128MUL is not set 849# CONFIG_CRYPTO_WP512 is not set
800# CONFIG_CRYPTO_ECB is not set 850
801# CONFIG_CRYPTO_CBC is not set 851#
802# CONFIG_CRYPTO_PCBC is not set 852# Ciphers
803# CONFIG_CRYPTO_LRW is not set 853#
804# CONFIG_CRYPTO_XTS is not set
805# CONFIG_CRYPTO_CTR is not set
806# CONFIG_CRYPTO_GCM is not set
807# CONFIG_CRYPTO_CCM is not set
808# CONFIG_CRYPTO_CRYPTD is not set
809# CONFIG_CRYPTO_DES is not set
810# CONFIG_CRYPTO_FCRYPT is not set
811# CONFIG_CRYPTO_BLOWFISH is not set
812# CONFIG_CRYPTO_TWOFISH is not set
813# CONFIG_CRYPTO_SERPENT is not set
814# CONFIG_CRYPTO_AES is not set 854# CONFIG_CRYPTO_AES is not set
855# CONFIG_CRYPTO_ANUBIS is not set
856# CONFIG_CRYPTO_ARC4 is not set
857# CONFIG_CRYPTO_BLOWFISH is not set
858# CONFIG_CRYPTO_CAMELLIA is not set
815# CONFIG_CRYPTO_CAST5 is not set 859# CONFIG_CRYPTO_CAST5 is not set
816# CONFIG_CRYPTO_CAST6 is not set 860# CONFIG_CRYPTO_CAST6 is not set
817# CONFIG_CRYPTO_TEA is not set 861# CONFIG_CRYPTO_DES is not set
818# CONFIG_CRYPTO_ARC4 is not set 862# CONFIG_CRYPTO_FCRYPT is not set
819# CONFIG_CRYPTO_KHAZAD is not set 863# CONFIG_CRYPTO_KHAZAD is not set
820# CONFIG_CRYPTO_ANUBIS is not set
821# CONFIG_CRYPTO_SEED is not set
822# CONFIG_CRYPTO_SALSA20 is not set 864# CONFIG_CRYPTO_SALSA20 is not set
865# CONFIG_CRYPTO_SEED is not set
866# CONFIG_CRYPTO_SERPENT is not set
867# CONFIG_CRYPTO_TEA is not set
868# CONFIG_CRYPTO_TWOFISH is not set
869
870#
871# Compression
872#
823# CONFIG_CRYPTO_DEFLATE is not set 873# CONFIG_CRYPTO_DEFLATE is not set
824# CONFIG_CRYPTO_MICHAEL_MIC is not set
825# CONFIG_CRYPTO_CRC32C is not set
826# CONFIG_CRYPTO_CAMELLIA is not set
827# CONFIG_CRYPTO_AUTHENC is not set
828# CONFIG_CRYPTO_LZO is not set 874# CONFIG_CRYPTO_LZO is not set
829CONFIG_CRYPTO_HW=y 875CONFIG_CRYPTO_HW=y
830# CONFIG_PPC_CLOCK is not set 876# CONFIG_PPC_CLOCK is not set
877# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 1d303c49bb0c..7804ca1ecc94 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:42 2008 4# Mon Jun 9 08:52:38 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
91# CONFIG_KALLSYMS_ALL is not set 94# CONFIG_KALLSYMS_ALL is not set
92# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,12 +117,14 @@ CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 117# CONFIG_KPROBES is not set
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120# CONFIG_HAVE_DMA_ATTRS is not set
117CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
118CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
121CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
122CONFIG_MODULES=y 126CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set
123# CONFIG_MODULE_UNLOAD is not set 128# CONFIG_MODULE_UNLOAD is not set
124CONFIG_MODVERSIONS=y 129CONFIG_MODVERSIONS=y
125# CONFIG_MODULE_SRCVERSION_ALL is not set 130# CONFIG_MODULE_SRCVERSION_ALL is not set
@@ -158,6 +163,7 @@ CONFIG_MPC85xx=y
158# CONFIG_MPC85xx_CDS is not set 163# CONFIG_MPC85xx_CDS is not set
159# CONFIG_MPC85xx_MDS is not set 164# CONFIG_MPC85xx_MDS is not set
160# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
166# CONFIG_KSI8560 is not set
161CONFIG_STX_GP3=y 167CONFIG_STX_GP3=y
162# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
@@ -215,11 +221,13 @@ CONFIG_FLATMEM=y
215CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_STATIC is not set 222# CONFIG_SPARSEMEM_STATIC is not set
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
219# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
222CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
225# CONFIG_PM is not set 233# CONFIG_PM is not set
@@ -243,6 +251,7 @@ CONFIG_PCI_LEGACY=y
243# CONFIG_PCI_DEBUG is not set 251# CONFIG_PCI_DEBUG is not set
244# CONFIG_PCCARD is not set 252# CONFIG_PCCARD is not set
245# CONFIG_HOTPLUG_PCI is not set 253# CONFIG_HOTPLUG_PCI is not set
254# CONFIG_HAS_RAPIDIO is not set
246 255
247# 256#
248# Advanced setup 257# Advanced setup
@@ -252,11 +261,12 @@ CONFIG_PCI_LEGACY=y
252# 261#
253# Default settings for advanced configuration options are used 262# Default settings for advanced configuration options are used
254# 263#
255CONFIG_HIGHMEM_START=0xfe000000
256CONFIG_LOWMEM_SIZE=0x30000000 264CONFIG_LOWMEM_SIZE=0x30000000
265CONFIG_PAGE_OFFSET=0xc0000000
257CONFIG_KERNEL_START=0xc0000000 266CONFIG_KERNEL_START=0xc0000000
267CONFIG_PHYSICAL_START=0x00000000
268CONFIG_PHYSICAL_ALIGN=0x10000000
258CONFIG_TASK_SIZE=0xc0000000 269CONFIG_TASK_SIZE=0xc0000000
259CONFIG_BOOT_LOAD=0x00800000
260 270
261# 271#
262# Networking 272# Networking
@@ -304,8 +314,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
304# CONFIG_TCP_MD5SIG is not set 314# CONFIG_TCP_MD5SIG is not set
305# CONFIG_IP_VS is not set 315# CONFIG_IP_VS is not set
306# CONFIG_IPV6 is not set 316# CONFIG_IPV6 is not set
307# CONFIG_INET6_XFRM_TUNNEL is not set
308# CONFIG_INET6_TUNNEL is not set
309# CONFIG_NETWORK_SECMARK is not set 317# CONFIG_NETWORK_SECMARK is not set
310CONFIG_NETFILTER=y 318CONFIG_NETFILTER=y
311# CONFIG_NETFILTER_DEBUG is not set 319# CONFIG_NETFILTER_DEBUG is not set
@@ -418,6 +426,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
418# CONFIG_CONNECTOR is not set 426# CONFIG_CONNECTOR is not set
419# CONFIG_MTD is not set 427# CONFIG_MTD is not set
420CONFIG_OF_DEVICE=y 428CONFIG_OF_DEVICE=y
429CONFIG_OF_I2C=m
421CONFIG_PARPORT=m 430CONFIG_PARPORT=m
422CONFIG_PARPORT_PC=m 431CONFIG_PARPORT_PC=m
423# CONFIG_PARPORT_PC_FIFO is not set 432# CONFIG_PARPORT_PC_FIFO is not set
@@ -505,7 +514,7 @@ CONFIG_IDE_GENERIC=y
505# CONFIG_BLK_DEV_VIA82CXXX is not set 514# CONFIG_BLK_DEV_VIA82CXXX is not set
506# CONFIG_BLK_DEV_TC86C001 is not set 515# CONFIG_BLK_DEV_TC86C001 is not set
507# CONFIG_BLK_DEV_IDEDMA is not set 516# CONFIG_BLK_DEV_IDEDMA is not set
508CONFIG_IDE_ARCH_OBSOLETE_INIT=y 517# CONFIG_BLK_DEV_HD_ONLY is not set
509# CONFIG_BLK_DEV_HD is not set 518# CONFIG_BLK_DEV_HD is not set
510 519
511# 520#
@@ -653,7 +662,6 @@ CONFIG_NETDEV_1000=y
653# CONFIG_SIS190 is not set 662# CONFIG_SIS190 is not set
654# CONFIG_SKGE is not set 663# CONFIG_SKGE is not set
655# CONFIG_SKY2 is not set 664# CONFIG_SKY2 is not set
656# CONFIG_SK98LIN is not set
657# CONFIG_VIA_VELOCITY is not set 665# CONFIG_VIA_VELOCITY is not set
658# CONFIG_TIGON3 is not set 666# CONFIG_TIGON3 is not set
659# CONFIG_BNX2 is not set 667# CONFIG_BNX2 is not set
@@ -673,6 +681,7 @@ CONFIG_NETDEV_10000=y
673# CONFIG_MLX4_CORE is not set 681# CONFIG_MLX4_CORE is not set
674# CONFIG_TEHUTI is not set 682# CONFIG_TEHUTI is not set
675# CONFIG_BNX2X is not set 683# CONFIG_BNX2X is not set
684# CONFIG_SFC is not set
676# CONFIG_TR is not set 685# CONFIG_TR is not set
677 686
678# 687#
@@ -680,6 +689,7 @@ CONFIG_NETDEV_10000=y
680# 689#
681# CONFIG_WLAN_PRE80211 is not set 690# CONFIG_WLAN_PRE80211 is not set
682# CONFIG_WLAN_80211 is not set 691# CONFIG_WLAN_80211 is not set
692# CONFIG_IWLWIFI_LEDS is not set
683# CONFIG_WAN is not set 693# CONFIG_WAN is not set
684# CONFIG_FDDI is not set 694# CONFIG_FDDI is not set
685# CONFIG_HIPPI is not set 695# CONFIG_HIPPI is not set
@@ -753,6 +763,7 @@ CONFIG_SERIO_LIBPS2=y
753# Character devices 763# Character devices
754# 764#
755# CONFIG_VT is not set 765# CONFIG_VT is not set
766CONFIG_DEVKMEM=y
756# CONFIG_SERIAL_NONSTANDARD is not set 767# CONFIG_SERIAL_NONSTANDARD is not set
757# CONFIG_NOZOMI is not set 768# CONFIG_NOZOMI is not set
758 769
@@ -796,13 +807,6 @@ CONFIG_I2C_BOARDINFO=y
796CONFIG_I2C_CHARDEV=m 807CONFIG_I2C_CHARDEV=m
797 808
798# 809#
799# I2C Algorithms
800#
801CONFIG_I2C_ALGOBIT=m
802# CONFIG_I2C_ALGOPCF is not set
803# CONFIG_I2C_ALGOPCA is not set
804
805#
806# I2C Hardware Bus support 810# I2C Hardware Bus support
807# 811#
808# CONFIG_I2C_ALI1535 is not set 812# CONFIG_I2C_ALI1535 is not set
@@ -829,6 +833,7 @@ CONFIG_I2C_ALGOBIT=m
829# CONFIG_I2C_VIA is not set 833# CONFIG_I2C_VIA is not set
830# CONFIG_I2C_VIAPRO is not set 834# CONFIG_I2C_VIAPRO is not set
831# CONFIG_I2C_VOODOO3 is not set 835# CONFIG_I2C_VOODOO3 is not set
836# CONFIG_I2C_PCA_PLATFORM is not set
832 837
833# 838#
834# Miscellaneous I2C Chip support 839# Miscellaneous I2C Chip support
@@ -838,19 +843,13 @@ CONFIG_I2C_ALGOBIT=m
838# CONFIG_SENSORS_PCF8574 is not set 843# CONFIG_SENSORS_PCF8574 is not set
839# CONFIG_PCF8575 is not set 844# CONFIG_PCF8575 is not set
840# CONFIG_SENSORS_PCF8591 is not set 845# CONFIG_SENSORS_PCF8591 is not set
841# CONFIG_TPS65010 is not set
842# CONFIG_SENSORS_MAX6875 is not set 846# CONFIG_SENSORS_MAX6875 is not set
843# CONFIG_SENSORS_TSL2550 is not set 847# CONFIG_SENSORS_TSL2550 is not set
844# CONFIG_I2C_DEBUG_CORE is not set 848# CONFIG_I2C_DEBUG_CORE is not set
845# CONFIG_I2C_DEBUG_ALGO is not set 849# CONFIG_I2C_DEBUG_ALGO is not set
846# CONFIG_I2C_DEBUG_BUS is not set 850# CONFIG_I2C_DEBUG_BUS is not set
847# CONFIG_I2C_DEBUG_CHIP is not set 851# CONFIG_I2C_DEBUG_CHIP is not set
848
849#
850# SPI support
851#
852# CONFIG_SPI is not set 852# CONFIG_SPI is not set
853# CONFIG_SPI_MASTER is not set
854# CONFIG_W1 is not set 853# CONFIG_W1 is not set
855# CONFIG_POWER_SUPPLY is not set 854# CONFIG_POWER_SUPPLY is not set
856CONFIG_HWMON=y 855CONFIG_HWMON=y
@@ -920,12 +919,22 @@ CONFIG_SSB_POSSIBLE=y
920# Multifunction device drivers 919# Multifunction device drivers
921# 920#
922# CONFIG_MFD_SM501 is not set 921# CONFIG_MFD_SM501 is not set
922# CONFIG_HTC_PASIC3 is not set
923 923
924# 924#
925# Multimedia devices 925# Multimedia devices
926# 926#
927
928#
929# Multimedia core support
930#
927# CONFIG_VIDEO_DEV is not set 931# CONFIG_VIDEO_DEV is not set
928# CONFIG_DVB_CORE is not set 932# CONFIG_DVB_CORE is not set
933# CONFIG_VIDEO_MEDIA is not set
934
935#
936# Multimedia drivers
937#
929CONFIG_DAB=y 938CONFIG_DAB=y
930 939
931# 940#
@@ -973,6 +982,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
973CONFIG_USB_ARCH_HAS_OHCI=y 982CONFIG_USB_ARCH_HAS_OHCI=y
974CONFIG_USB_ARCH_HAS_EHCI=y 983CONFIG_USB_ARCH_HAS_EHCI=y
975# CONFIG_USB is not set 984# CONFIG_USB is not set
985# CONFIG_USB_OTG_WHITELIST is not set
986# CONFIG_USB_OTG_BLACKLIST_HUB is not set
976 987
977# 988#
978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 989# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -981,15 +992,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y
981# CONFIG_MMC is not set 992# CONFIG_MMC is not set
982# CONFIG_MEMSTICK is not set 993# CONFIG_MEMSTICK is not set
983# CONFIG_NEW_LEDS is not set 994# CONFIG_NEW_LEDS is not set
995# CONFIG_ACCESSIBILITY is not set
984# CONFIG_INFINIBAND is not set 996# CONFIG_INFINIBAND is not set
985# CONFIG_EDAC is not set 997# CONFIG_EDAC is not set
986# CONFIG_RTC_CLASS is not set 998# CONFIG_RTC_CLASS is not set
987# CONFIG_DMADEVICES is not set 999# CONFIG_DMADEVICES is not set
988# CONFIG_AUXDISPLAY is not set 1000# CONFIG_AUXDISPLAY is not set
989
990#
991# Userspace I/O
992#
993# CONFIG_UIO is not set 1001# CONFIG_UIO is not set
994 1002
995# 1003#
@@ -1009,7 +1017,6 @@ CONFIG_FS_MBCACHE=y
1009# CONFIG_JFS_FS is not set 1017# CONFIG_JFS_FS is not set
1010# CONFIG_FS_POSIX_ACL is not set 1018# CONFIG_FS_POSIX_ACL is not set
1011# CONFIG_XFS_FS is not set 1019# CONFIG_XFS_FS is not set
1012# CONFIG_GFS2_FS is not set
1013# CONFIG_OCFS2_FS is not set 1020# CONFIG_OCFS2_FS is not set
1014CONFIG_DNOTIFY=y 1021CONFIG_DNOTIFY=y
1015CONFIG_INOTIFY=y 1022CONFIG_INOTIFY=y
@@ -1073,7 +1080,6 @@ CONFIG_NFS_FS=y
1073CONFIG_NFS_V3=y 1080CONFIG_NFS_V3=y
1074# CONFIG_NFS_V3_ACL is not set 1081# CONFIG_NFS_V3_ACL is not set
1075# CONFIG_NFS_V4 is not set 1082# CONFIG_NFS_V4 is not set
1076# CONFIG_NFS_DIRECTIO is not set
1077# CONFIG_NFSD is not set 1083# CONFIG_NFSD is not set
1078CONFIG_ROOT_NFS=y 1084CONFIG_ROOT_NFS=y
1079CONFIG_LOCKD=y 1085CONFIG_LOCKD=y
@@ -1141,9 +1147,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1141# Library routines 1147# Library routines
1142# 1148#
1143CONFIG_BITREVERSE=y 1149CONFIG_BITREVERSE=y
1150# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1144CONFIG_CRC_CCITT=y 1151CONFIG_CRC_CCITT=y
1145# CONFIG_CRC16 is not set 1152# CONFIG_CRC16 is not set
1146# CONFIG_CRC_ITU_T is not set 1153CONFIG_CRC_ITU_T=m
1147CONFIG_CRC32=y 1154CONFIG_CRC32=y
1148# CONFIG_CRC7 is not set 1155# CONFIG_CRC7 is not set
1149# CONFIG_LIBCRC32C is not set 1156# CONFIG_LIBCRC32C is not set
@@ -1152,6 +1159,7 @@ CONFIG_PLIST=y
1152CONFIG_HAS_IOMEM=y 1159CONFIG_HAS_IOMEM=y
1153CONFIG_HAS_IOPORT=y 1160CONFIG_HAS_IOPORT=y
1154CONFIG_HAS_DMA=y 1161CONFIG_HAS_DMA=y
1162CONFIG_HAVE_LMB=y
1155 1163
1156# 1164#
1157# Kernel hacking 1165# Kernel hacking
@@ -1159,6 +1167,7 @@ CONFIG_HAS_DMA=y
1159# CONFIG_PRINTK_TIME is not set 1167# CONFIG_PRINTK_TIME is not set
1160CONFIG_ENABLE_WARN_DEPRECATED=y 1168CONFIG_ENABLE_WARN_DEPRECATED=y
1161CONFIG_ENABLE_MUST_CHECK=y 1169CONFIG_ENABLE_MUST_CHECK=y
1170CONFIG_FRAME_WARN=1024
1162# CONFIG_MAGIC_SYSRQ is not set 1171# CONFIG_MAGIC_SYSRQ is not set
1163# CONFIG_UNUSED_SYMBOLS is not set 1172# CONFIG_UNUSED_SYMBOLS is not set
1164# CONFIG_DEBUG_FS is not set 1173# CONFIG_DEBUG_FS is not set
@@ -1169,6 +1178,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1169CONFIG_SCHED_DEBUG=y 1178CONFIG_SCHED_DEBUG=y
1170# CONFIG_SCHEDSTATS is not set 1179# CONFIG_SCHEDSTATS is not set
1171# CONFIG_TIMER_STATS is not set 1180# CONFIG_TIMER_STATS is not set
1181# CONFIG_DEBUG_OBJECTS is not set
1172# CONFIG_SLUB_DEBUG_ON is not set 1182# CONFIG_SLUB_DEBUG_ON is not set
1173# CONFIG_SLUB_STATS is not set 1183# CONFIG_SLUB_STATS is not set
1174# CONFIG_DEBUG_RT_MUTEXES is not set 1184# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1182,6 +1192,7 @@ CONFIG_SCHED_DEBUG=y
1182# CONFIG_DEBUG_BUGVERBOSE is not set 1192# CONFIG_DEBUG_BUGVERBOSE is not set
1183# CONFIG_DEBUG_INFO is not set 1193# CONFIG_DEBUG_INFO is not set
1184# CONFIG_DEBUG_VM is not set 1194# CONFIG_DEBUG_VM is not set
1195# CONFIG_DEBUG_WRITECOUNT is not set
1185# CONFIG_DEBUG_LIST is not set 1196# CONFIG_DEBUG_LIST is not set
1186# CONFIG_DEBUG_SG is not set 1197# CONFIG_DEBUG_SG is not set
1187# CONFIG_BOOT_PRINTK_DELAY is not set 1198# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1194,6 +1205,7 @@ CONFIG_SCHED_DEBUG=y
1194# CONFIG_DEBUG_PAGEALLOC is not set 1205# CONFIG_DEBUG_PAGEALLOC is not set
1195# CONFIG_DEBUGGER is not set 1206# CONFIG_DEBUGGER is not set
1196# CONFIG_KGDB_CONSOLE is not set 1207# CONFIG_KGDB_CONSOLE is not set
1208# CONFIG_IRQSTACKS is not set
1197CONFIG_BDI_SWITCH=y 1209CONFIG_BDI_SWITCH=y
1198# CONFIG_PPC_EARLY_DEBUG is not set 1210# CONFIG_PPC_EARLY_DEBUG is not set
1199 1211
@@ -1204,50 +1216,80 @@ CONFIG_BDI_SWITCH=y
1204# CONFIG_SECURITY is not set 1216# CONFIG_SECURITY is not set
1205# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1217# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1206CONFIG_CRYPTO=y 1218CONFIG_CRYPTO=y
1207# CONFIG_CRYPTO_SEQIV is not set 1219
1220#
1221# Crypto core or helper
1222#
1208# CONFIG_CRYPTO_MANAGER is not set 1223# CONFIG_CRYPTO_MANAGER is not set
1224# CONFIG_CRYPTO_GF128MUL is not set
1225# CONFIG_CRYPTO_NULL is not set
1226# CONFIG_CRYPTO_CRYPTD is not set
1227# CONFIG_CRYPTO_AUTHENC is not set
1228# CONFIG_CRYPTO_TEST is not set
1229
1230#
1231# Authenticated Encryption with Associated Data
1232#
1233# CONFIG_CRYPTO_CCM is not set
1234# CONFIG_CRYPTO_GCM is not set
1235# CONFIG_CRYPTO_SEQIV is not set
1236
1237#
1238# Block modes
1239#
1240# CONFIG_CRYPTO_CBC is not set
1241# CONFIG_CRYPTO_CTR is not set
1242# CONFIG_CRYPTO_CTS is not set
1243# CONFIG_CRYPTO_ECB is not set
1244# CONFIG_CRYPTO_LRW is not set
1245# CONFIG_CRYPTO_PCBC is not set
1246# CONFIG_CRYPTO_XTS is not set
1247
1248#
1249# Hash modes
1250#
1209# CONFIG_CRYPTO_HMAC is not set 1251# CONFIG_CRYPTO_HMAC is not set
1210# CONFIG_CRYPTO_XCBC is not set 1252# CONFIG_CRYPTO_XCBC is not set
1211# CONFIG_CRYPTO_NULL is not set 1253
1254#
1255# Digest
1256#
1257# CONFIG_CRYPTO_CRC32C is not set
1212# CONFIG_CRYPTO_MD4 is not set 1258# CONFIG_CRYPTO_MD4 is not set
1213# CONFIG_CRYPTO_MD5 is not set 1259# CONFIG_CRYPTO_MD5 is not set
1260# CONFIG_CRYPTO_MICHAEL_MIC is not set
1214# CONFIG_CRYPTO_SHA1 is not set 1261# CONFIG_CRYPTO_SHA1 is not set
1215# CONFIG_CRYPTO_SHA256 is not set 1262# CONFIG_CRYPTO_SHA256 is not set
1216# CONFIG_CRYPTO_SHA512 is not set 1263# CONFIG_CRYPTO_SHA512 is not set
1217# CONFIG_CRYPTO_WP512 is not set
1218# CONFIG_CRYPTO_TGR192 is not set 1264# CONFIG_CRYPTO_TGR192 is not set
1219# CONFIG_CRYPTO_GF128MUL is not set 1265# CONFIG_CRYPTO_WP512 is not set
1220# CONFIG_CRYPTO_ECB is not set 1266
1221# CONFIG_CRYPTO_CBC is not set 1267#
1222# CONFIG_CRYPTO_PCBC is not set 1268# Ciphers
1223# CONFIG_CRYPTO_LRW is not set 1269#
1224# CONFIG_CRYPTO_XTS is not set
1225# CONFIG_CRYPTO_CTR is not set
1226# CONFIG_CRYPTO_GCM is not set
1227# CONFIG_CRYPTO_CCM is not set
1228# CONFIG_CRYPTO_CRYPTD is not set
1229# CONFIG_CRYPTO_DES is not set
1230# CONFIG_CRYPTO_FCRYPT is not set
1231# CONFIG_CRYPTO_BLOWFISH is not set
1232# CONFIG_CRYPTO_TWOFISH is not set
1233# CONFIG_CRYPTO_SERPENT is not set
1234# CONFIG_CRYPTO_AES is not set 1270# CONFIG_CRYPTO_AES is not set
1271# CONFIG_CRYPTO_ANUBIS is not set
1272# CONFIG_CRYPTO_ARC4 is not set
1273# CONFIG_CRYPTO_BLOWFISH is not set
1274# CONFIG_CRYPTO_CAMELLIA is not set
1235# CONFIG_CRYPTO_CAST5 is not set 1275# CONFIG_CRYPTO_CAST5 is not set
1236# CONFIG_CRYPTO_CAST6 is not set 1276# CONFIG_CRYPTO_CAST6 is not set
1237# CONFIG_CRYPTO_TEA is not set 1277# CONFIG_CRYPTO_DES is not set
1238# CONFIG_CRYPTO_ARC4 is not set 1278# CONFIG_CRYPTO_FCRYPT is not set
1239# CONFIG_CRYPTO_KHAZAD is not set 1279# CONFIG_CRYPTO_KHAZAD is not set
1240# CONFIG_CRYPTO_ANUBIS is not set
1241# CONFIG_CRYPTO_SEED is not set
1242# CONFIG_CRYPTO_SALSA20 is not set 1280# CONFIG_CRYPTO_SALSA20 is not set
1281# CONFIG_CRYPTO_SEED is not set
1282# CONFIG_CRYPTO_SERPENT is not set
1283# CONFIG_CRYPTO_TEA is not set
1284# CONFIG_CRYPTO_TWOFISH is not set
1285
1286#
1287# Compression
1288#
1243# CONFIG_CRYPTO_DEFLATE is not set 1289# CONFIG_CRYPTO_DEFLATE is not set
1244# CONFIG_CRYPTO_MICHAEL_MIC is not set
1245# CONFIG_CRYPTO_CRC32C is not set
1246# CONFIG_CRYPTO_CAMELLIA is not set
1247# CONFIG_CRYPTO_TEST is not set
1248# CONFIG_CRYPTO_AUTHENC is not set
1249# CONFIG_CRYPTO_LZO is not set 1290# CONFIG_CRYPTO_LZO is not set
1250CONFIG_CRYPTO_HW=y 1291CONFIG_CRYPTO_HW=y
1251# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1292# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1252# CONFIG_PPC_CLOCK is not set 1293# CONFIG_PPC_CLOCK is not set
1253CONFIG_PPC_LIB_RHEAP=y 1294CONFIG_PPC_LIB_RHEAP=y
1295# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index d39ee3b35bfc..e0b5559e84aa 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:43 2008 4# Mon Jun 9 08:52:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90# CONFIG_KALLSYMS is not set 93# CONFIG_KALLSYMS is not set
91# CONFIG_HOTPLUG is not set 94# CONFIG_HOTPLUG is not set
92CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,6 +114,7 @@ CONFIG_SLUB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y
151# CONFIG_MPC85xx_CDS is not set 155# CONFIG_MPC85xx_CDS is not set
152# CONFIG_MPC85xx_MDS is not set 156# CONFIG_MPC85xx_MDS is not set
153# CONFIG_MPC85xx_DS is not set 157# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set
154# CONFIG_STX_GP3 is not set 159# CONFIG_STX_GP3 is not set
155CONFIG_TQM8540=y 160CONFIG_TQM8540=y
156# CONFIG_TQM8541 is not set 161# CONFIG_TQM8541 is not set
@@ -171,7 +176,6 @@ CONFIG_MPIC=y
171# CONFIG_GENERIC_IOMAP is not set 176# CONFIG_GENERIC_IOMAP is not set
172# CONFIG_CPU_FREQ is not set 177# CONFIG_CPU_FREQ is not set
173# CONFIG_CPM2 is not set 178# CONFIG_CPM2 is not set
174CONFIG_PPC_CPM_NEW_BINDING=y
175# CONFIG_FSL_ULI1575 is not set 179# CONFIG_FSL_ULI1575 is not set
176 180
177# 181#
@@ -208,11 +212,13 @@ CONFIG_FLATMEM=y
208CONFIG_FLAT_NODE_MEM_MAP=y 212CONFIG_FLAT_NODE_MEM_MAP=y
209# CONFIG_SPARSEMEM_STATIC is not set 213# CONFIG_SPARSEMEM_STATIC is not set
210# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y
211CONFIG_SPLIT_PTLOCK_CPUS=4 216CONFIG_SPLIT_PTLOCK_CPUS=4
212# CONFIG_RESOURCES_64BIT is not set 217# CONFIG_RESOURCES_64BIT is not set
213CONFIG_ZONE_DMA_FLAG=1 218CONFIG_ZONE_DMA_FLAG=1
214CONFIG_BOUNCE=y 219CONFIG_BOUNCE=y
215CONFIG_VIRT_TO_BUS=y 220CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=11
216# CONFIG_PROC_DEVICETREE is not set 222# CONFIG_PROC_DEVICETREE is not set
217# CONFIG_CMDLINE_BOOL is not set 223# CONFIG_CMDLINE_BOOL is not set
218# CONFIG_PM is not set 224# CONFIG_PM is not set
@@ -233,6 +239,7 @@ CONFIG_PCI_SYSCALL=y
233CONFIG_ARCH_SUPPORTS_MSI=y 239CONFIG_ARCH_SUPPORTS_MSI=y
234# CONFIG_PCI_MSI is not set 240# CONFIG_PCI_MSI is not set
235CONFIG_PCI_LEGACY=y 241CONFIG_PCI_LEGACY=y
242# CONFIG_HAS_RAPIDIO is not set
236 243
237# 244#
238# Advanced setup 245# Advanced setup
@@ -242,11 +249,12 @@ CONFIG_PCI_LEGACY=y
242# 249#
243# Default settings for advanced configuration options are used 250# Default settings for advanced configuration options are used
244# 251#
245CONFIG_HIGHMEM_START=0xfe000000
246CONFIG_LOWMEM_SIZE=0x30000000 252CONFIG_LOWMEM_SIZE=0x30000000
253CONFIG_PAGE_OFFSET=0xc0000000
247CONFIG_KERNEL_START=0xc0000000 254CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000
256CONFIG_PHYSICAL_ALIGN=0x10000000
248CONFIG_TASK_SIZE=0xc0000000 257CONFIG_TASK_SIZE=0xc0000000
249CONFIG_BOOT_LOAD=0x00800000
250 258
251# 259#
252# Networking 260# Networking
@@ -294,8 +302,6 @@ CONFIG_TCP_CONG_CUBIC=y
294CONFIG_DEFAULT_TCP_CONG="cubic" 302CONFIG_DEFAULT_TCP_CONG="cubic"
295# CONFIG_TCP_MD5SIG is not set 303# CONFIG_TCP_MD5SIG is not set
296# CONFIG_IPV6 is not set 304# CONFIG_IPV6 is not set
297# CONFIG_INET6_XFRM_TUNNEL is not set
298# CONFIG_INET6_TUNNEL is not set
299# CONFIG_NETWORK_SECMARK is not set 305# CONFIG_NETWORK_SECMARK is not set
300# CONFIG_NETFILTER is not set 306# CONFIG_NETFILTER is not set
301# CONFIG_IP_DCCP is not set 307# CONFIG_IP_DCCP is not set
@@ -352,6 +358,7 @@ CONFIG_MTD_PARTITIONS=y
352# CONFIG_MTD_REDBOOT_PARTS is not set 358# CONFIG_MTD_REDBOOT_PARTS is not set
353CONFIG_MTD_CMDLINE_PARTS=y 359CONFIG_MTD_CMDLINE_PARTS=y
354# CONFIG_MTD_OF_PARTS is not set 360# CONFIG_MTD_OF_PARTS is not set
361# CONFIG_MTD_AR7_PARTS is not set
355 362
356# 363#
357# User Modules And Translation Layers 364# User Modules And Translation Layers
@@ -423,6 +430,7 @@ CONFIG_MTD_CFI_UTIL=y
423# 430#
424# CONFIG_MTD_UBI is not set 431# CONFIG_MTD_UBI is not set
425CONFIG_OF_DEVICE=y 432CONFIG_OF_DEVICE=y
433CONFIG_OF_I2C=y
426# CONFIG_PARPORT is not set 434# CONFIG_PARPORT is not set
427CONFIG_BLK_DEV=y 435CONFIG_BLK_DEV=y
428# CONFIG_BLK_DEV_FD is not set 436# CONFIG_BLK_DEV_FD is not set
@@ -506,7 +514,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
506CONFIG_BLK_DEV_VIA82CXXX=y 514CONFIG_BLK_DEV_VIA82CXXX=y
507# CONFIG_BLK_DEV_TC86C001 is not set 515# CONFIG_BLK_DEV_TC86C001 is not set
508CONFIG_BLK_DEV_IDEDMA=y 516CONFIG_BLK_DEV_IDEDMA=y
509CONFIG_IDE_ARCH_OBSOLETE_INIT=y 517# CONFIG_BLK_DEV_HD_ONLY is not set
510# CONFIG_BLK_DEV_HD is not set 518# CONFIG_BLK_DEV_HD is not set
511 519
512# 520#
@@ -600,7 +608,6 @@ CONFIG_NETDEV_1000=y
600# CONFIG_SIS190 is not set 608# CONFIG_SIS190 is not set
601# CONFIG_SKGE is not set 609# CONFIG_SKGE is not set
602# CONFIG_SKY2 is not set 610# CONFIG_SKY2 is not set
603# CONFIG_SK98LIN is not set
604# CONFIG_VIA_VELOCITY is not set 611# CONFIG_VIA_VELOCITY is not set
605# CONFIG_TIGON3 is not set 612# CONFIG_TIGON3 is not set
606# CONFIG_BNX2 is not set 613# CONFIG_BNX2 is not set
@@ -620,6 +627,7 @@ CONFIG_NETDEV_10000=y
620# CONFIG_MLX4_CORE is not set 627# CONFIG_MLX4_CORE is not set
621# CONFIG_TEHUTI is not set 628# CONFIG_TEHUTI is not set
622# CONFIG_BNX2X is not set 629# CONFIG_BNX2X is not set
630# CONFIG_SFC is not set
623# CONFIG_TR is not set 631# CONFIG_TR is not set
624 632
625# 633#
@@ -627,6 +635,7 @@ CONFIG_NETDEV_10000=y
627# 635#
628# CONFIG_WLAN_PRE80211 is not set 636# CONFIG_WLAN_PRE80211 is not set
629# CONFIG_WLAN_80211 is not set 637# CONFIG_WLAN_80211 is not set
638# CONFIG_IWLWIFI_LEDS is not set
630# CONFIG_WAN is not set 639# CONFIG_WAN is not set
631# CONFIG_FDDI is not set 640# CONFIG_FDDI is not set
632# CONFIG_HIPPI is not set 641# CONFIG_HIPPI is not set
@@ -673,6 +682,7 @@ CONFIG_INPUT=y
673# Character devices 682# Character devices
674# 683#
675# CONFIG_VT is not set 684# CONFIG_VT is not set
685CONFIG_DEVKMEM=y
676# CONFIG_SERIAL_NONSTANDARD is not set 686# CONFIG_SERIAL_NONSTANDARD is not set
677# CONFIG_NOZOMI is not set 687# CONFIG_NOZOMI is not set
678 688
@@ -713,13 +723,6 @@ CONFIG_I2C_BOARDINFO=y
713CONFIG_I2C_CHARDEV=y 723CONFIG_I2C_CHARDEV=y
714 724
715# 725#
716# I2C Algorithms
717#
718# CONFIG_I2C_ALGOBIT is not set
719# CONFIG_I2C_ALGOPCF is not set
720# CONFIG_I2C_ALGOPCA is not set
721
722#
723# I2C Hardware Bus support 726# I2C Hardware Bus support
724# 727#
725# CONFIG_I2C_ALI1535 is not set 728# CONFIG_I2C_ALI1535 is not set
@@ -744,6 +747,7 @@ CONFIG_I2C_MPC=y
744# CONFIG_I2C_VIA is not set 747# CONFIG_I2C_VIA is not set
745# CONFIG_I2C_VIAPRO is not set 748# CONFIG_I2C_VIAPRO is not set
746# CONFIG_I2C_VOODOO3 is not set 749# CONFIG_I2C_VOODOO3 is not set
750# CONFIG_I2C_PCA_PLATFORM is not set
747 751
748# 752#
749# Miscellaneous I2C Chip support 753# Miscellaneous I2C Chip support
@@ -753,19 +757,13 @@ CONFIG_I2C_MPC=y
753# CONFIG_SENSORS_PCF8574 is not set 757# CONFIG_SENSORS_PCF8574 is not set
754# CONFIG_PCF8575 is not set 758# CONFIG_PCF8575 is not set
755# CONFIG_SENSORS_PCF8591 is not set 759# CONFIG_SENSORS_PCF8591 is not set
756# CONFIG_TPS65010 is not set
757# CONFIG_SENSORS_MAX6875 is not set 760# CONFIG_SENSORS_MAX6875 is not set
758# CONFIG_SENSORS_TSL2550 is not set 761# CONFIG_SENSORS_TSL2550 is not set
759# CONFIG_I2C_DEBUG_CORE is not set 762# CONFIG_I2C_DEBUG_CORE is not set
760# CONFIG_I2C_DEBUG_ALGO is not set 763# CONFIG_I2C_DEBUG_ALGO is not set
761# CONFIG_I2C_DEBUG_BUS is not set 764# CONFIG_I2C_DEBUG_BUS is not set
762# CONFIG_I2C_DEBUG_CHIP is not set 765# CONFIG_I2C_DEBUG_CHIP is not set
763
764#
765# SPI support
766#
767# CONFIG_SPI is not set 766# CONFIG_SPI is not set
768# CONFIG_SPI_MASTER is not set
769# CONFIG_W1 is not set 767# CONFIG_W1 is not set
770# CONFIG_POWER_SUPPLY is not set 768# CONFIG_POWER_SUPPLY is not set
771CONFIG_HWMON=y 769CONFIG_HWMON=y
@@ -835,12 +833,22 @@ CONFIG_SSB_POSSIBLE=y
835# Multifunction device drivers 833# Multifunction device drivers
836# 834#
837# CONFIG_MFD_SM501 is not set 835# CONFIG_MFD_SM501 is not set
836# CONFIG_HTC_PASIC3 is not set
838 837
839# 838#
840# Multimedia devices 839# Multimedia devices
841# 840#
841
842#
843# Multimedia core support
844#
842# CONFIG_VIDEO_DEV is not set 845# CONFIG_VIDEO_DEV is not set
843# CONFIG_DVB_CORE is not set 846# CONFIG_DVB_CORE is not set
847# CONFIG_VIDEO_MEDIA is not set
848
849#
850# Multimedia drivers
851#
844CONFIG_DAB=y 852CONFIG_DAB=y
845 853
846# 854#
@@ -871,6 +879,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
871CONFIG_USB_ARCH_HAS_OHCI=y 879CONFIG_USB_ARCH_HAS_OHCI=y
872CONFIG_USB_ARCH_HAS_EHCI=y 880CONFIG_USB_ARCH_HAS_EHCI=y
873# CONFIG_USB is not set 881# CONFIG_USB is not set
882# CONFIG_USB_OTG_WHITELIST is not set
883# CONFIG_USB_OTG_BLACKLIST_HUB is not set
874 884
875# 885#
876# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -879,14 +889,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
879# CONFIG_MMC is not set 889# CONFIG_MMC is not set
880# CONFIG_MEMSTICK is not set 890# CONFIG_MEMSTICK is not set
881# CONFIG_NEW_LEDS is not set 891# CONFIG_NEW_LEDS is not set
892# CONFIG_ACCESSIBILITY is not set
882# CONFIG_INFINIBAND is not set 893# CONFIG_INFINIBAND is not set
883# CONFIG_EDAC is not set 894# CONFIG_EDAC is not set
884# CONFIG_RTC_CLASS is not set 895# CONFIG_RTC_CLASS is not set
885# CONFIG_DMADEVICES is not set 896# CONFIG_DMADEVICES is not set
886
887#
888# Userspace I/O
889#
890# CONFIG_UIO is not set 897# CONFIG_UIO is not set
891 898
892# 899#
@@ -906,7 +913,6 @@ CONFIG_FS_MBCACHE=y
906# CONFIG_JFS_FS is not set 913# CONFIG_JFS_FS is not set
907# CONFIG_FS_POSIX_ACL is not set 914# CONFIG_FS_POSIX_ACL is not set
908# CONFIG_XFS_FS is not set 915# CONFIG_XFS_FS is not set
909# CONFIG_GFS2_FS is not set
910# CONFIG_OCFS2_FS is not set 916# CONFIG_OCFS2_FS is not set
911CONFIG_DNOTIFY=y 917CONFIG_DNOTIFY=y
912CONFIG_INOTIFY=y 918CONFIG_INOTIFY=y
@@ -974,7 +980,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
974CONFIG_NFS_FS=y 980CONFIG_NFS_FS=y
975# CONFIG_NFS_V3 is not set 981# CONFIG_NFS_V3 is not set
976# CONFIG_NFS_V4 is not set 982# CONFIG_NFS_V4 is not set
977# CONFIG_NFS_DIRECTIO is not set
978# CONFIG_NFSD is not set 983# CONFIG_NFSD is not set
979CONFIG_ROOT_NFS=y 984CONFIG_ROOT_NFS=y
980CONFIG_LOCKD=y 985CONFIG_LOCKD=y
@@ -1013,6 +1018,7 @@ CONFIG_PARTITION_ADVANCED=y
1013# Library routines 1018# Library routines
1014# 1019#
1015CONFIG_BITREVERSE=y 1020CONFIG_BITREVERSE=y
1021# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1016# CONFIG_CRC_CCITT is not set 1022# CONFIG_CRC_CCITT is not set
1017# CONFIG_CRC16 is not set 1023# CONFIG_CRC16 is not set
1018# CONFIG_CRC_ITU_T is not set 1024# CONFIG_CRC_ITU_T is not set
@@ -1025,6 +1031,7 @@ CONFIG_PLIST=y
1025CONFIG_HAS_IOMEM=y 1031CONFIG_HAS_IOMEM=y
1026CONFIG_HAS_IOPORT=y 1032CONFIG_HAS_IOPORT=y
1027CONFIG_HAS_DMA=y 1033CONFIG_HAS_DMA=y
1034CONFIG_HAVE_LMB=y
1028 1035
1029# 1036#
1030# Kernel hacking 1037# Kernel hacking
@@ -1032,6 +1039,7 @@ CONFIG_HAS_DMA=y
1032# CONFIG_PRINTK_TIME is not set 1039# CONFIG_PRINTK_TIME is not set
1033CONFIG_ENABLE_WARN_DEPRECATED=y 1040CONFIG_ENABLE_WARN_DEPRECATED=y
1034CONFIG_ENABLE_MUST_CHECK=y 1041CONFIG_ENABLE_MUST_CHECK=y
1042CONFIG_FRAME_WARN=1024
1035# CONFIG_MAGIC_SYSRQ is not set 1043# CONFIG_MAGIC_SYSRQ is not set
1036# CONFIG_UNUSED_SYMBOLS is not set 1044# CONFIG_UNUSED_SYMBOLS is not set
1037# CONFIG_DEBUG_FS is not set 1045# CONFIG_DEBUG_FS is not set
@@ -1041,6 +1049,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1041# CONFIG_SLUB_STATS is not set 1049# CONFIG_SLUB_STATS is not set
1042# CONFIG_DEBUG_BUGVERBOSE is not set 1050# CONFIG_DEBUG_BUGVERBOSE is not set
1043# CONFIG_SAMPLES is not set 1051# CONFIG_SAMPLES is not set
1052# CONFIG_IRQSTACKS is not set
1044# CONFIG_PPC_EARLY_DEBUG is not set 1053# CONFIG_PPC_EARLY_DEBUG is not set
1045 1054
1046# 1055#
@@ -1050,48 +1059,78 @@ CONFIG_ENABLE_MUST_CHECK=y
1050# CONFIG_SECURITY is not set 1059# CONFIG_SECURITY is not set
1051# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1060# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1052CONFIG_CRYPTO=y 1061CONFIG_CRYPTO=y
1053# CONFIG_CRYPTO_SEQIV is not set 1062
1063#
1064# Crypto core or helper
1065#
1054# CONFIG_CRYPTO_MANAGER is not set 1066# CONFIG_CRYPTO_MANAGER is not set
1067# CONFIG_CRYPTO_GF128MUL is not set
1068# CONFIG_CRYPTO_NULL is not set
1069# CONFIG_CRYPTO_CRYPTD is not set
1070# CONFIG_CRYPTO_AUTHENC is not set
1071
1072#
1073# Authenticated Encryption with Associated Data
1074#
1075# CONFIG_CRYPTO_CCM is not set
1076# CONFIG_CRYPTO_GCM is not set
1077# CONFIG_CRYPTO_SEQIV is not set
1078
1079#
1080# Block modes
1081#
1082# CONFIG_CRYPTO_CBC is not set
1083# CONFIG_CRYPTO_CTR is not set
1084# CONFIG_CRYPTO_CTS is not set
1085# CONFIG_CRYPTO_ECB is not set
1086# CONFIG_CRYPTO_LRW is not set
1087# CONFIG_CRYPTO_PCBC is not set
1088# CONFIG_CRYPTO_XTS is not set
1089
1090#
1091# Hash modes
1092#
1055# CONFIG_CRYPTO_HMAC is not set 1093# CONFIG_CRYPTO_HMAC is not set
1056# CONFIG_CRYPTO_XCBC is not set 1094# CONFIG_CRYPTO_XCBC is not set
1057# CONFIG_CRYPTO_NULL is not set 1095
1096#
1097# Digest
1098#
1099# CONFIG_CRYPTO_CRC32C is not set
1058# CONFIG_CRYPTO_MD4 is not set 1100# CONFIG_CRYPTO_MD4 is not set
1059# CONFIG_CRYPTO_MD5 is not set 1101# CONFIG_CRYPTO_MD5 is not set
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set
1060# CONFIG_CRYPTO_SHA1 is not set 1103# CONFIG_CRYPTO_SHA1 is not set
1061# CONFIG_CRYPTO_SHA256 is not set 1104# CONFIG_CRYPTO_SHA256 is not set
1062# CONFIG_CRYPTO_SHA512 is not set 1105# CONFIG_CRYPTO_SHA512 is not set
1063# CONFIG_CRYPTO_WP512 is not set
1064# CONFIG_CRYPTO_TGR192 is not set 1106# CONFIG_CRYPTO_TGR192 is not set
1065# CONFIG_CRYPTO_GF128MUL is not set 1107# CONFIG_CRYPTO_WP512 is not set
1066# CONFIG_CRYPTO_ECB is not set 1108
1067# CONFIG_CRYPTO_CBC is not set 1109#
1068# CONFIG_CRYPTO_PCBC is not set 1110# Ciphers
1069# CONFIG_CRYPTO_LRW is not set 1111#
1070# CONFIG_CRYPTO_XTS is not set
1071# CONFIG_CRYPTO_CTR is not set
1072# CONFIG_CRYPTO_GCM is not set
1073# CONFIG_CRYPTO_CCM is not set
1074# CONFIG_CRYPTO_CRYPTD is not set
1075# CONFIG_CRYPTO_DES is not set
1076# CONFIG_CRYPTO_FCRYPT is not set
1077# CONFIG_CRYPTO_BLOWFISH is not set
1078# CONFIG_CRYPTO_TWOFISH is not set
1079# CONFIG_CRYPTO_SERPENT is not set
1080# CONFIG_CRYPTO_AES is not set 1112# CONFIG_CRYPTO_AES is not set
1113# CONFIG_CRYPTO_ANUBIS is not set
1114# CONFIG_CRYPTO_ARC4 is not set
1115# CONFIG_CRYPTO_BLOWFISH is not set
1116# CONFIG_CRYPTO_CAMELLIA is not set
1081# CONFIG_CRYPTO_CAST5 is not set 1117# CONFIG_CRYPTO_CAST5 is not set
1082# CONFIG_CRYPTO_CAST6 is not set 1118# CONFIG_CRYPTO_CAST6 is not set
1083# CONFIG_CRYPTO_TEA is not set 1119# CONFIG_CRYPTO_DES is not set
1084# CONFIG_CRYPTO_ARC4 is not set 1120# CONFIG_CRYPTO_FCRYPT is not set
1085# CONFIG_CRYPTO_KHAZAD is not set 1121# CONFIG_CRYPTO_KHAZAD is not set
1086# CONFIG_CRYPTO_ANUBIS is not set
1087# CONFIG_CRYPTO_SEED is not set
1088# CONFIG_CRYPTO_SALSA20 is not set 1122# CONFIG_CRYPTO_SALSA20 is not set
1123# CONFIG_CRYPTO_SEED is not set
1124# CONFIG_CRYPTO_SERPENT is not set
1125# CONFIG_CRYPTO_TEA is not set
1126# CONFIG_CRYPTO_TWOFISH is not set
1127
1128#
1129# Compression
1130#
1089# CONFIG_CRYPTO_DEFLATE is not set 1131# CONFIG_CRYPTO_DEFLATE is not set
1090# CONFIG_CRYPTO_MICHAEL_MIC is not set
1091# CONFIG_CRYPTO_CRC32C is not set
1092# CONFIG_CRYPTO_CAMELLIA is not set
1093# CONFIG_CRYPTO_AUTHENC is not set
1094# CONFIG_CRYPTO_LZO is not set 1132# CONFIG_CRYPTO_LZO is not set
1095CONFIG_CRYPTO_HW=y 1133CONFIG_CRYPTO_HW=y
1096# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1134# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1097# CONFIG_PPC_CLOCK is not set 1135# CONFIG_PPC_CLOCK is not set
1136# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index cbf6ad2d71da..6f9067b49e07 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:44 2008 4# Mon Jun 9 08:52:40 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90# CONFIG_KALLSYMS is not set 93# CONFIG_KALLSYMS is not set
91# CONFIG_HOTPLUG is not set 94# CONFIG_HOTPLUG is not set
92CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,6 +114,7 @@ CONFIG_SLUB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y
151# CONFIG_MPC85xx_CDS is not set 155# CONFIG_MPC85xx_CDS is not set
152# CONFIG_MPC85xx_MDS is not set 156# CONFIG_MPC85xx_MDS is not set
153# CONFIG_MPC85xx_DS is not set 157# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set
154# CONFIG_STX_GP3 is not set 159# CONFIG_STX_GP3 is not set
155# CONFIG_TQM8540 is not set 160# CONFIG_TQM8540 is not set
156CONFIG_TQM8541=y 161CONFIG_TQM8541=y
@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y
209CONFIG_FLAT_NODE_MEM_MAP=y 214CONFIG_FLAT_NODE_MEM_MAP=y
210# CONFIG_SPARSEMEM_STATIC is not set 215# CONFIG_SPARSEMEM_STATIC is not set
211# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
213# CONFIG_RESOURCES_64BIT is not set 219# CONFIG_RESOURCES_64BIT is not set
214CONFIG_ZONE_DMA_FLAG=1 220CONFIG_ZONE_DMA_FLAG=1
215CONFIG_BOUNCE=y 221CONFIG_BOUNCE=y
216CONFIG_VIRT_TO_BUS=y 222CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11
217# CONFIG_PROC_DEVICETREE is not set 224# CONFIG_PROC_DEVICETREE is not set
218# CONFIG_CMDLINE_BOOL is not set 225# CONFIG_CMDLINE_BOOL is not set
219# CONFIG_PM is not set 226# CONFIG_PM is not set
@@ -234,6 +241,7 @@ CONFIG_PCI_SYSCALL=y
234CONFIG_ARCH_SUPPORTS_MSI=y 241CONFIG_ARCH_SUPPORTS_MSI=y
235# CONFIG_PCI_MSI is not set 242# CONFIG_PCI_MSI is not set
236CONFIG_PCI_LEGACY=y 243CONFIG_PCI_LEGACY=y
244# CONFIG_HAS_RAPIDIO is not set
237 245
238# 246#
239# Advanced setup 247# Advanced setup
@@ -243,11 +251,12 @@ CONFIG_PCI_LEGACY=y
243# 251#
244# Default settings for advanced configuration options are used 252# Default settings for advanced configuration options are used
245# 253#
246CONFIG_HIGHMEM_START=0xfe000000
247CONFIG_LOWMEM_SIZE=0x30000000 254CONFIG_LOWMEM_SIZE=0x30000000
255CONFIG_PAGE_OFFSET=0xc0000000
248CONFIG_KERNEL_START=0xc0000000 256CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000
249CONFIG_TASK_SIZE=0xc0000000 259CONFIG_TASK_SIZE=0xc0000000
250CONFIG_BOOT_LOAD=0x00800000
251 260
252# 261#
253# Networking 262# Networking
@@ -295,8 +304,6 @@ CONFIG_TCP_CONG_CUBIC=y
295CONFIG_DEFAULT_TCP_CONG="cubic" 304CONFIG_DEFAULT_TCP_CONG="cubic"
296# CONFIG_TCP_MD5SIG is not set 305# CONFIG_TCP_MD5SIG is not set
297# CONFIG_IPV6 is not set 306# CONFIG_IPV6 is not set
298# CONFIG_INET6_XFRM_TUNNEL is not set
299# CONFIG_INET6_TUNNEL is not set
300# CONFIG_NETWORK_SECMARK is not set 307# CONFIG_NETWORK_SECMARK is not set
301# CONFIG_NETFILTER is not set 308# CONFIG_NETFILTER is not set
302# CONFIG_IP_DCCP is not set 309# CONFIG_IP_DCCP is not set
@@ -353,6 +360,7 @@ CONFIG_MTD_PARTITIONS=y
353# CONFIG_MTD_REDBOOT_PARTS is not set 360# CONFIG_MTD_REDBOOT_PARTS is not set
354CONFIG_MTD_CMDLINE_PARTS=y 361CONFIG_MTD_CMDLINE_PARTS=y
355# CONFIG_MTD_OF_PARTS is not set 362# CONFIG_MTD_OF_PARTS is not set
363# CONFIG_MTD_AR7_PARTS is not set
356 364
357# 365#
358# User Modules And Translation Layers 366# User Modules And Translation Layers
@@ -424,6 +432,7 @@ CONFIG_MTD_CFI_UTIL=y
424# 432#
425# CONFIG_MTD_UBI is not set 433# CONFIG_MTD_UBI is not set
426CONFIG_OF_DEVICE=y 434CONFIG_OF_DEVICE=y
435CONFIG_OF_I2C=y
427# CONFIG_PARPORT is not set 436# CONFIG_PARPORT is not set
428CONFIG_BLK_DEV=y 437CONFIG_BLK_DEV=y
429# CONFIG_BLK_DEV_FD is not set 438# CONFIG_BLK_DEV_FD is not set
@@ -507,7 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
507CONFIG_BLK_DEV_VIA82CXXX=y 516CONFIG_BLK_DEV_VIA82CXXX=y
508# CONFIG_BLK_DEV_TC86C001 is not set 517# CONFIG_BLK_DEV_TC86C001 is not set
509CONFIG_BLK_DEV_IDEDMA=y 518CONFIG_BLK_DEV_IDEDMA=y
510CONFIG_IDE_ARCH_OBSOLETE_INIT=y 519# CONFIG_BLK_DEV_HD_ONLY is not set
511# CONFIG_BLK_DEV_HD is not set 520# CONFIG_BLK_DEV_HD is not set
512 521
513# 522#
@@ -602,7 +611,6 @@ CONFIG_NETDEV_1000=y
602# CONFIG_SIS190 is not set 611# CONFIG_SIS190 is not set
603# CONFIG_SKGE is not set 612# CONFIG_SKGE is not set
604# CONFIG_SKY2 is not set 613# CONFIG_SKY2 is not set
605# CONFIG_SK98LIN is not set
606# CONFIG_VIA_VELOCITY is not set 614# CONFIG_VIA_VELOCITY is not set
607# CONFIG_TIGON3 is not set 615# CONFIG_TIGON3 is not set
608# CONFIG_BNX2 is not set 616# CONFIG_BNX2 is not set
@@ -622,6 +630,7 @@ CONFIG_NETDEV_10000=y
622# CONFIG_MLX4_CORE is not set 630# CONFIG_MLX4_CORE is not set
623# CONFIG_TEHUTI is not set 631# CONFIG_TEHUTI is not set
624# CONFIG_BNX2X is not set 632# CONFIG_BNX2X is not set
633# CONFIG_SFC is not set
625# CONFIG_TR is not set 634# CONFIG_TR is not set
626 635
627# 636#
@@ -629,6 +638,7 @@ CONFIG_NETDEV_10000=y
629# 638#
630# CONFIG_WLAN_PRE80211 is not set 639# CONFIG_WLAN_PRE80211 is not set
631# CONFIG_WLAN_80211 is not set 640# CONFIG_WLAN_80211 is not set
641# CONFIG_IWLWIFI_LEDS is not set
632# CONFIG_WAN is not set 642# CONFIG_WAN is not set
633# CONFIG_FDDI is not set 643# CONFIG_FDDI is not set
634# CONFIG_HIPPI is not set 644# CONFIG_HIPPI is not set
@@ -675,6 +685,7 @@ CONFIG_INPUT=y
675# Character devices 685# Character devices
676# 686#
677# CONFIG_VT is not set 687# CONFIG_VT is not set
688CONFIG_DEVKMEM=y
678# CONFIG_SERIAL_NONSTANDARD is not set 689# CONFIG_SERIAL_NONSTANDARD is not set
679# CONFIG_NOZOMI is not set 690# CONFIG_NOZOMI is not set
680 691
@@ -723,13 +734,6 @@ CONFIG_I2C_BOARDINFO=y
723CONFIG_I2C_CHARDEV=y 734CONFIG_I2C_CHARDEV=y
724 735
725# 736#
726# I2C Algorithms
727#
728# CONFIG_I2C_ALGOBIT is not set
729# CONFIG_I2C_ALGOPCF is not set
730# CONFIG_I2C_ALGOPCA is not set
731
732#
733# I2C Hardware Bus support 737# I2C Hardware Bus support
734# 738#
735# CONFIG_I2C_ALI1535 is not set 739# CONFIG_I2C_ALI1535 is not set
@@ -754,6 +758,7 @@ CONFIG_I2C_MPC=y
754# CONFIG_I2C_VIA is not set 758# CONFIG_I2C_VIA is not set
755# CONFIG_I2C_VIAPRO is not set 759# CONFIG_I2C_VIAPRO is not set
756# CONFIG_I2C_VOODOO3 is not set 760# CONFIG_I2C_VOODOO3 is not set
761# CONFIG_I2C_PCA_PLATFORM is not set
757 762
758# 763#
759# Miscellaneous I2C Chip support 764# Miscellaneous I2C Chip support
@@ -763,19 +768,13 @@ CONFIG_I2C_MPC=y
763# CONFIG_SENSORS_PCF8574 is not set 768# CONFIG_SENSORS_PCF8574 is not set
764# CONFIG_PCF8575 is not set 769# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
766# CONFIG_TPS65010 is not set
767# CONFIG_SENSORS_MAX6875 is not set 771# CONFIG_SENSORS_MAX6875 is not set
768# CONFIG_SENSORS_TSL2550 is not set 772# CONFIG_SENSORS_TSL2550 is not set
769# CONFIG_I2C_DEBUG_CORE is not set 773# CONFIG_I2C_DEBUG_CORE is not set
770# CONFIG_I2C_DEBUG_ALGO is not set 774# CONFIG_I2C_DEBUG_ALGO is not set
771# CONFIG_I2C_DEBUG_BUS is not set 775# CONFIG_I2C_DEBUG_BUS is not set
772# CONFIG_I2C_DEBUG_CHIP is not set 776# CONFIG_I2C_DEBUG_CHIP is not set
773
774#
775# SPI support
776#
777# CONFIG_SPI is not set 777# CONFIG_SPI is not set
778# CONFIG_SPI_MASTER is not set
779# CONFIG_W1 is not set 778# CONFIG_W1 is not set
780# CONFIG_POWER_SUPPLY is not set 779# CONFIG_POWER_SUPPLY is not set
781CONFIG_HWMON=y 780CONFIG_HWMON=y
@@ -845,12 +844,22 @@ CONFIG_SSB_POSSIBLE=y
845# Multifunction device drivers 844# Multifunction device drivers
846# 845#
847# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set
848 848
849# 849#
850# Multimedia devices 850# Multimedia devices
851# 851#
852
853#
854# Multimedia core support
855#
852# CONFIG_VIDEO_DEV is not set 856# CONFIG_VIDEO_DEV is not set
853# CONFIG_DVB_CORE is not set 857# CONFIG_DVB_CORE is not set
858# CONFIG_VIDEO_MEDIA is not set
859
860#
861# Multimedia drivers
862#
854CONFIG_DAB=y 863CONFIG_DAB=y
855 864
856# 865#
@@ -881,6 +890,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
881CONFIG_USB_ARCH_HAS_OHCI=y 890CONFIG_USB_ARCH_HAS_OHCI=y
882CONFIG_USB_ARCH_HAS_EHCI=y 891CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB is not set 892# CONFIG_USB is not set
893# CONFIG_USB_OTG_WHITELIST is not set
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set
884 895
885# 896#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -889,14 +900,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
889# CONFIG_MMC is not set 900# CONFIG_MMC is not set
890# CONFIG_MEMSTICK is not set 901# CONFIG_MEMSTICK is not set
891# CONFIG_NEW_LEDS is not set 902# CONFIG_NEW_LEDS is not set
903# CONFIG_ACCESSIBILITY is not set
892# CONFIG_INFINIBAND is not set 904# CONFIG_INFINIBAND is not set
893# CONFIG_EDAC is not set 905# CONFIG_EDAC is not set
894# CONFIG_RTC_CLASS is not set 906# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set 907# CONFIG_DMADEVICES is not set
896
897#
898# Userspace I/O
899#
900# CONFIG_UIO is not set 908# CONFIG_UIO is not set
901 909
902# 910#
@@ -916,7 +924,6 @@ CONFIG_FS_MBCACHE=y
916# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
917# CONFIG_FS_POSIX_ACL is not set 925# CONFIG_FS_POSIX_ACL is not set
918# CONFIG_XFS_FS is not set 926# CONFIG_XFS_FS is not set
919# CONFIG_GFS2_FS is not set
920# CONFIG_OCFS2_FS is not set 927# CONFIG_OCFS2_FS is not set
921CONFIG_DNOTIFY=y 928CONFIG_DNOTIFY=y
922CONFIG_INOTIFY=y 929CONFIG_INOTIFY=y
@@ -984,7 +991,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
984CONFIG_NFS_FS=y 991CONFIG_NFS_FS=y
985# CONFIG_NFS_V3 is not set 992# CONFIG_NFS_V3 is not set
986# CONFIG_NFS_V4 is not set 993# CONFIG_NFS_V4 is not set
987# CONFIG_NFS_DIRECTIO is not set
988# CONFIG_NFSD is not set 994# CONFIG_NFSD is not set
989CONFIG_ROOT_NFS=y 995CONFIG_ROOT_NFS=y
990CONFIG_LOCKD=y 996CONFIG_LOCKD=y
@@ -1023,6 +1029,7 @@ CONFIG_PARTITION_ADVANCED=y
1023# Library routines 1029# Library routines
1024# 1030#
1025CONFIG_BITREVERSE=y 1031CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1026# CONFIG_CRC_CCITT is not set 1033# CONFIG_CRC_CCITT is not set
1027# CONFIG_CRC16 is not set 1034# CONFIG_CRC16 is not set
1028# CONFIG_CRC_ITU_T is not set 1035# CONFIG_CRC_ITU_T is not set
@@ -1035,6 +1042,7 @@ CONFIG_PLIST=y
1035CONFIG_HAS_IOMEM=y 1042CONFIG_HAS_IOMEM=y
1036CONFIG_HAS_IOPORT=y 1043CONFIG_HAS_IOPORT=y
1037CONFIG_HAS_DMA=y 1044CONFIG_HAS_DMA=y
1045CONFIG_HAVE_LMB=y
1038 1046
1039# 1047#
1040# Kernel hacking 1048# Kernel hacking
@@ -1042,6 +1050,7 @@ CONFIG_HAS_DMA=y
1042# CONFIG_PRINTK_TIME is not set 1050# CONFIG_PRINTK_TIME is not set
1043CONFIG_ENABLE_WARN_DEPRECATED=y 1051CONFIG_ENABLE_WARN_DEPRECATED=y
1044CONFIG_ENABLE_MUST_CHECK=y 1052CONFIG_ENABLE_MUST_CHECK=y
1053CONFIG_FRAME_WARN=1024
1045# CONFIG_MAGIC_SYSRQ is not set 1054# CONFIG_MAGIC_SYSRQ is not set
1046# CONFIG_UNUSED_SYMBOLS is not set 1055# CONFIG_UNUSED_SYMBOLS is not set
1047# CONFIG_DEBUG_FS is not set 1056# CONFIG_DEBUG_FS is not set
@@ -1052,6 +1061,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1052# CONFIG_DEBUG_BUGVERBOSE is not set 1061# CONFIG_DEBUG_BUGVERBOSE is not set
1053# CONFIG_SAMPLES is not set 1062# CONFIG_SAMPLES is not set
1054# CONFIG_KGDB_CONSOLE is not set 1063# CONFIG_KGDB_CONSOLE is not set
1064# CONFIG_IRQSTACKS is not set
1055# CONFIG_PPC_EARLY_DEBUG is not set 1065# CONFIG_PPC_EARLY_DEBUG is not set
1056 1066
1057# 1067#
@@ -1061,49 +1071,79 @@ CONFIG_ENABLE_MUST_CHECK=y
1061# CONFIG_SECURITY is not set 1071# CONFIG_SECURITY is not set
1062# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1072# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1063CONFIG_CRYPTO=y 1073CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_SEQIV is not set 1074
1075#
1076# Crypto core or helper
1077#
1065# CONFIG_CRYPTO_MANAGER is not set 1078# CONFIG_CRYPTO_MANAGER is not set
1079# CONFIG_CRYPTO_GF128MUL is not set
1080# CONFIG_CRYPTO_NULL is not set
1081# CONFIG_CRYPTO_CRYPTD is not set
1082# CONFIG_CRYPTO_AUTHENC is not set
1083
1084#
1085# Authenticated Encryption with Associated Data
1086#
1087# CONFIG_CRYPTO_CCM is not set
1088# CONFIG_CRYPTO_GCM is not set
1089# CONFIG_CRYPTO_SEQIV is not set
1090
1091#
1092# Block modes
1093#
1094# CONFIG_CRYPTO_CBC is not set
1095# CONFIG_CRYPTO_CTR is not set
1096# CONFIG_CRYPTO_CTS is not set
1097# CONFIG_CRYPTO_ECB is not set
1098# CONFIG_CRYPTO_LRW is not set
1099# CONFIG_CRYPTO_PCBC is not set
1100# CONFIG_CRYPTO_XTS is not set
1101
1102#
1103# Hash modes
1104#
1066# CONFIG_CRYPTO_HMAC is not set 1105# CONFIG_CRYPTO_HMAC is not set
1067# CONFIG_CRYPTO_XCBC is not set 1106# CONFIG_CRYPTO_XCBC is not set
1068# CONFIG_CRYPTO_NULL is not set 1107
1108#
1109# Digest
1110#
1111# CONFIG_CRYPTO_CRC32C is not set
1069# CONFIG_CRYPTO_MD4 is not set 1112# CONFIG_CRYPTO_MD4 is not set
1070# CONFIG_CRYPTO_MD5 is not set 1113# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set
1071# CONFIG_CRYPTO_SHA1 is not set 1115# CONFIG_CRYPTO_SHA1 is not set
1072# CONFIG_CRYPTO_SHA256 is not set 1116# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set 1117# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set 1118# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set 1119# CONFIG_CRYPTO_WP512 is not set
1077# CONFIG_CRYPTO_ECB is not set 1120
1078# CONFIG_CRYPTO_CBC is not set 1121#
1079# CONFIG_CRYPTO_PCBC is not set 1122# Ciphers
1080# CONFIG_CRYPTO_LRW is not set 1123#
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CTR is not set
1083# CONFIG_CRYPTO_GCM is not set
1084# CONFIG_CRYPTO_CCM is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086# CONFIG_CRYPTO_DES is not set
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set 1124# CONFIG_CRYPTO_AES is not set
1125# CONFIG_CRYPTO_ANUBIS is not set
1126# CONFIG_CRYPTO_ARC4 is not set
1127# CONFIG_CRYPTO_BLOWFISH is not set
1128# CONFIG_CRYPTO_CAMELLIA is not set
1092# CONFIG_CRYPTO_CAST5 is not set 1129# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set 1130# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set 1131# CONFIG_CRYPTO_DES is not set
1095# CONFIG_CRYPTO_ARC4 is not set 1132# CONFIG_CRYPTO_FCRYPT is not set
1096# CONFIG_CRYPTO_KHAZAD is not set 1133# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_SEED is not set
1099# CONFIG_CRYPTO_SALSA20 is not set 1134# CONFIG_CRYPTO_SALSA20 is not set
1135# CONFIG_CRYPTO_SEED is not set
1136# CONFIG_CRYPTO_SERPENT is not set
1137# CONFIG_CRYPTO_TEA is not set
1138# CONFIG_CRYPTO_TWOFISH is not set
1139
1140#
1141# Compression
1142#
1100# CONFIG_CRYPTO_DEFLATE is not set 1143# CONFIG_CRYPTO_DEFLATE is not set
1101# CONFIG_CRYPTO_MICHAEL_MIC is not set
1102# CONFIG_CRYPTO_CRC32C is not set
1103# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_AUTHENC is not set
1105# CONFIG_CRYPTO_LZO is not set 1144# CONFIG_CRYPTO_LZO is not set
1106CONFIG_CRYPTO_HW=y 1145CONFIG_CRYPTO_HW=y
1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1108# CONFIG_PPC_CLOCK is not set 1147# CONFIG_PPC_CLOCK is not set
1109CONFIG_PPC_LIB_RHEAP=y 1148CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index bbff962c8472..03120b5b52fa 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:44 2008 4# Mon Jun 9 08:52:41 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90# CONFIG_KALLSYMS is not set 93# CONFIG_KALLSYMS is not set
91# CONFIG_HOTPLUG is not set 94# CONFIG_HOTPLUG is not set
92CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,6 +114,7 @@ CONFIG_SLUB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y
151# CONFIG_MPC85xx_CDS is not set 155# CONFIG_MPC85xx_CDS is not set
152# CONFIG_MPC85xx_MDS is not set 156# CONFIG_MPC85xx_MDS is not set
153# CONFIG_MPC85xx_DS is not set 157# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set
154# CONFIG_STX_GP3 is not set 159# CONFIG_STX_GP3 is not set
155# CONFIG_TQM8540 is not set 160# CONFIG_TQM8540 is not set
156# CONFIG_TQM8541 is not set 161# CONFIG_TQM8541 is not set
@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y
209CONFIG_FLAT_NODE_MEM_MAP=y 214CONFIG_FLAT_NODE_MEM_MAP=y
210# CONFIG_SPARSEMEM_STATIC is not set 215# CONFIG_SPARSEMEM_STATIC is not set
211# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
213# CONFIG_RESOURCES_64BIT is not set 219# CONFIG_RESOURCES_64BIT is not set
214CONFIG_ZONE_DMA_FLAG=1 220CONFIG_ZONE_DMA_FLAG=1
215CONFIG_BOUNCE=y 221CONFIG_BOUNCE=y
216CONFIG_VIRT_TO_BUS=y 222CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11
217# CONFIG_PROC_DEVICETREE is not set 224# CONFIG_PROC_DEVICETREE is not set
218# CONFIG_CMDLINE_BOOL is not set 225# CONFIG_CMDLINE_BOOL is not set
219# CONFIG_PM is not set 226# CONFIG_PM is not set
@@ -234,6 +241,7 @@ CONFIG_PCI_SYSCALL=y
234CONFIG_ARCH_SUPPORTS_MSI=y 241CONFIG_ARCH_SUPPORTS_MSI=y
235# CONFIG_PCI_MSI is not set 242# CONFIG_PCI_MSI is not set
236CONFIG_PCI_LEGACY=y 243CONFIG_PCI_LEGACY=y
244# CONFIG_HAS_RAPIDIO is not set
237 245
238# 246#
239# Advanced setup 247# Advanced setup
@@ -243,11 +251,12 @@ CONFIG_PCI_LEGACY=y
243# 251#
244# Default settings for advanced configuration options are used 252# Default settings for advanced configuration options are used
245# 253#
246CONFIG_HIGHMEM_START=0xfe000000
247CONFIG_LOWMEM_SIZE=0x30000000 254CONFIG_LOWMEM_SIZE=0x30000000
255CONFIG_PAGE_OFFSET=0xc0000000
248CONFIG_KERNEL_START=0xc0000000 256CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000
249CONFIG_TASK_SIZE=0xc0000000 259CONFIG_TASK_SIZE=0xc0000000
250CONFIG_BOOT_LOAD=0x00800000
251 260
252# 261#
253# Networking 262# Networking
@@ -295,8 +304,6 @@ CONFIG_TCP_CONG_CUBIC=y
295CONFIG_DEFAULT_TCP_CONG="cubic" 304CONFIG_DEFAULT_TCP_CONG="cubic"
296# CONFIG_TCP_MD5SIG is not set 305# CONFIG_TCP_MD5SIG is not set
297# CONFIG_IPV6 is not set 306# CONFIG_IPV6 is not set
298# CONFIG_INET6_XFRM_TUNNEL is not set
299# CONFIG_INET6_TUNNEL is not set
300# CONFIG_NETWORK_SECMARK is not set 307# CONFIG_NETWORK_SECMARK is not set
301# CONFIG_NETFILTER is not set 308# CONFIG_NETFILTER is not set
302# CONFIG_IP_DCCP is not set 309# CONFIG_IP_DCCP is not set
@@ -353,6 +360,7 @@ CONFIG_MTD_PARTITIONS=y
353# CONFIG_MTD_REDBOOT_PARTS is not set 360# CONFIG_MTD_REDBOOT_PARTS is not set
354CONFIG_MTD_CMDLINE_PARTS=y 361CONFIG_MTD_CMDLINE_PARTS=y
355# CONFIG_MTD_OF_PARTS is not set 362# CONFIG_MTD_OF_PARTS is not set
363# CONFIG_MTD_AR7_PARTS is not set
356 364
357# 365#
358# User Modules And Translation Layers 366# User Modules And Translation Layers
@@ -424,6 +432,7 @@ CONFIG_MTD_CFI_UTIL=y
424# 432#
425# CONFIG_MTD_UBI is not set 433# CONFIG_MTD_UBI is not set
426CONFIG_OF_DEVICE=y 434CONFIG_OF_DEVICE=y
435CONFIG_OF_I2C=y
427# CONFIG_PARPORT is not set 436# CONFIG_PARPORT is not set
428CONFIG_BLK_DEV=y 437CONFIG_BLK_DEV=y
429# CONFIG_BLK_DEV_FD is not set 438# CONFIG_BLK_DEV_FD is not set
@@ -507,7 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
507CONFIG_BLK_DEV_VIA82CXXX=y 516CONFIG_BLK_DEV_VIA82CXXX=y
508# CONFIG_BLK_DEV_TC86C001 is not set 517# CONFIG_BLK_DEV_TC86C001 is not set
509CONFIG_BLK_DEV_IDEDMA=y 518CONFIG_BLK_DEV_IDEDMA=y
510CONFIG_IDE_ARCH_OBSOLETE_INIT=y 519# CONFIG_BLK_DEV_HD_ONLY is not set
511# CONFIG_BLK_DEV_HD is not set 520# CONFIG_BLK_DEV_HD is not set
512 521
513# 522#
@@ -602,7 +611,6 @@ CONFIG_NETDEV_1000=y
602# CONFIG_SIS190 is not set 611# CONFIG_SIS190 is not set
603# CONFIG_SKGE is not set 612# CONFIG_SKGE is not set
604# CONFIG_SKY2 is not set 613# CONFIG_SKY2 is not set
605# CONFIG_SK98LIN is not set
606# CONFIG_VIA_VELOCITY is not set 614# CONFIG_VIA_VELOCITY is not set
607# CONFIG_TIGON3 is not set 615# CONFIG_TIGON3 is not set
608# CONFIG_BNX2 is not set 616# CONFIG_BNX2 is not set
@@ -622,6 +630,7 @@ CONFIG_NETDEV_10000=y
622# CONFIG_MLX4_CORE is not set 630# CONFIG_MLX4_CORE is not set
623# CONFIG_TEHUTI is not set 631# CONFIG_TEHUTI is not set
624# CONFIG_BNX2X is not set 632# CONFIG_BNX2X is not set
633# CONFIG_SFC is not set
625# CONFIG_TR is not set 634# CONFIG_TR is not set
626 635
627# 636#
@@ -629,6 +638,7 @@ CONFIG_NETDEV_10000=y
629# 638#
630# CONFIG_WLAN_PRE80211 is not set 639# CONFIG_WLAN_PRE80211 is not set
631# CONFIG_WLAN_80211 is not set 640# CONFIG_WLAN_80211 is not set
641# CONFIG_IWLWIFI_LEDS is not set
632# CONFIG_WAN is not set 642# CONFIG_WAN is not set
633# CONFIG_FDDI is not set 643# CONFIG_FDDI is not set
634# CONFIG_HIPPI is not set 644# CONFIG_HIPPI is not set
@@ -675,6 +685,7 @@ CONFIG_INPUT=y
675# Character devices 685# Character devices
676# 686#
677# CONFIG_VT is not set 687# CONFIG_VT is not set
688CONFIG_DEVKMEM=y
678# CONFIG_SERIAL_NONSTANDARD is not set 689# CONFIG_SERIAL_NONSTANDARD is not set
679# CONFIG_NOZOMI is not set 690# CONFIG_NOZOMI is not set
680 691
@@ -723,13 +734,6 @@ CONFIG_I2C_BOARDINFO=y
723CONFIG_I2C_CHARDEV=y 734CONFIG_I2C_CHARDEV=y
724 735
725# 736#
726# I2C Algorithms
727#
728# CONFIG_I2C_ALGOBIT is not set
729# CONFIG_I2C_ALGOPCF is not set
730# CONFIG_I2C_ALGOPCA is not set
731
732#
733# I2C Hardware Bus support 737# I2C Hardware Bus support
734# 738#
735# CONFIG_I2C_ALI1535 is not set 739# CONFIG_I2C_ALI1535 is not set
@@ -754,6 +758,7 @@ CONFIG_I2C_MPC=y
754# CONFIG_I2C_VIA is not set 758# CONFIG_I2C_VIA is not set
755# CONFIG_I2C_VIAPRO is not set 759# CONFIG_I2C_VIAPRO is not set
756# CONFIG_I2C_VOODOO3 is not set 760# CONFIG_I2C_VOODOO3 is not set
761# CONFIG_I2C_PCA_PLATFORM is not set
757 762
758# 763#
759# Miscellaneous I2C Chip support 764# Miscellaneous I2C Chip support
@@ -763,19 +768,13 @@ CONFIG_I2C_MPC=y
763# CONFIG_SENSORS_PCF8574 is not set 768# CONFIG_SENSORS_PCF8574 is not set
764# CONFIG_PCF8575 is not set 769# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
766# CONFIG_TPS65010 is not set
767# CONFIG_SENSORS_MAX6875 is not set 771# CONFIG_SENSORS_MAX6875 is not set
768# CONFIG_SENSORS_TSL2550 is not set 772# CONFIG_SENSORS_TSL2550 is not set
769# CONFIG_I2C_DEBUG_CORE is not set 773# CONFIG_I2C_DEBUG_CORE is not set
770# CONFIG_I2C_DEBUG_ALGO is not set 774# CONFIG_I2C_DEBUG_ALGO is not set
771# CONFIG_I2C_DEBUG_BUS is not set 775# CONFIG_I2C_DEBUG_BUS is not set
772# CONFIG_I2C_DEBUG_CHIP is not set 776# CONFIG_I2C_DEBUG_CHIP is not set
773
774#
775# SPI support
776#
777# CONFIG_SPI is not set 777# CONFIG_SPI is not set
778# CONFIG_SPI_MASTER is not set
779# CONFIG_W1 is not set 778# CONFIG_W1 is not set
780# CONFIG_POWER_SUPPLY is not set 779# CONFIG_POWER_SUPPLY is not set
781CONFIG_HWMON=y 780CONFIG_HWMON=y
@@ -845,12 +844,22 @@ CONFIG_SSB_POSSIBLE=y
845# Multifunction device drivers 844# Multifunction device drivers
846# 845#
847# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set
848 848
849# 849#
850# Multimedia devices 850# Multimedia devices
851# 851#
852
853#
854# Multimedia core support
855#
852# CONFIG_VIDEO_DEV is not set 856# CONFIG_VIDEO_DEV is not set
853# CONFIG_DVB_CORE is not set 857# CONFIG_DVB_CORE is not set
858# CONFIG_VIDEO_MEDIA is not set
859
860#
861# Multimedia drivers
862#
854CONFIG_DAB=y 863CONFIG_DAB=y
855 864
856# 865#
@@ -881,6 +890,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
881CONFIG_USB_ARCH_HAS_OHCI=y 890CONFIG_USB_ARCH_HAS_OHCI=y
882CONFIG_USB_ARCH_HAS_EHCI=y 891CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB is not set 892# CONFIG_USB is not set
893# CONFIG_USB_OTG_WHITELIST is not set
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set
884 895
885# 896#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -889,14 +900,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
889# CONFIG_MMC is not set 900# CONFIG_MMC is not set
890# CONFIG_MEMSTICK is not set 901# CONFIG_MEMSTICK is not set
891# CONFIG_NEW_LEDS is not set 902# CONFIG_NEW_LEDS is not set
903# CONFIG_ACCESSIBILITY is not set
892# CONFIG_INFINIBAND is not set 904# CONFIG_INFINIBAND is not set
893# CONFIG_EDAC is not set 905# CONFIG_EDAC is not set
894# CONFIG_RTC_CLASS is not set 906# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set 907# CONFIG_DMADEVICES is not set
896
897#
898# Userspace I/O
899#
900# CONFIG_UIO is not set 908# CONFIG_UIO is not set
901 909
902# 910#
@@ -916,7 +924,6 @@ CONFIG_FS_MBCACHE=y
916# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
917# CONFIG_FS_POSIX_ACL is not set 925# CONFIG_FS_POSIX_ACL is not set
918# CONFIG_XFS_FS is not set 926# CONFIG_XFS_FS is not set
919# CONFIG_GFS2_FS is not set
920# CONFIG_OCFS2_FS is not set 927# CONFIG_OCFS2_FS is not set
921CONFIG_DNOTIFY=y 928CONFIG_DNOTIFY=y
922CONFIG_INOTIFY=y 929CONFIG_INOTIFY=y
@@ -984,7 +991,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
984CONFIG_NFS_FS=y 991CONFIG_NFS_FS=y
985# CONFIG_NFS_V3 is not set 992# CONFIG_NFS_V3 is not set
986# CONFIG_NFS_V4 is not set 993# CONFIG_NFS_V4 is not set
987# CONFIG_NFS_DIRECTIO is not set
988# CONFIG_NFSD is not set 994# CONFIG_NFSD is not set
989CONFIG_ROOT_NFS=y 995CONFIG_ROOT_NFS=y
990CONFIG_LOCKD=y 996CONFIG_LOCKD=y
@@ -1023,6 +1029,7 @@ CONFIG_PARTITION_ADVANCED=y
1023# Library routines 1029# Library routines
1024# 1030#
1025CONFIG_BITREVERSE=y 1031CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1026# CONFIG_CRC_CCITT is not set 1033# CONFIG_CRC_CCITT is not set
1027# CONFIG_CRC16 is not set 1034# CONFIG_CRC16 is not set
1028# CONFIG_CRC_ITU_T is not set 1035# CONFIG_CRC_ITU_T is not set
@@ -1035,6 +1042,7 @@ CONFIG_PLIST=y
1035CONFIG_HAS_IOMEM=y 1042CONFIG_HAS_IOMEM=y
1036CONFIG_HAS_IOPORT=y 1043CONFIG_HAS_IOPORT=y
1037CONFIG_HAS_DMA=y 1044CONFIG_HAS_DMA=y
1045CONFIG_HAVE_LMB=y
1038 1046
1039# 1047#
1040# Kernel hacking 1048# Kernel hacking
@@ -1042,6 +1050,7 @@ CONFIG_HAS_DMA=y
1042# CONFIG_PRINTK_TIME is not set 1050# CONFIG_PRINTK_TIME is not set
1043CONFIG_ENABLE_WARN_DEPRECATED=y 1051CONFIG_ENABLE_WARN_DEPRECATED=y
1044CONFIG_ENABLE_MUST_CHECK=y 1052CONFIG_ENABLE_MUST_CHECK=y
1053CONFIG_FRAME_WARN=1024
1045# CONFIG_MAGIC_SYSRQ is not set 1054# CONFIG_MAGIC_SYSRQ is not set
1046# CONFIG_UNUSED_SYMBOLS is not set 1055# CONFIG_UNUSED_SYMBOLS is not set
1047# CONFIG_DEBUG_FS is not set 1056# CONFIG_DEBUG_FS is not set
@@ -1052,6 +1061,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1052# CONFIG_DEBUG_BUGVERBOSE is not set 1061# CONFIG_DEBUG_BUGVERBOSE is not set
1053# CONFIG_SAMPLES is not set 1062# CONFIG_SAMPLES is not set
1054# CONFIG_KGDB_CONSOLE is not set 1063# CONFIG_KGDB_CONSOLE is not set
1064# CONFIG_IRQSTACKS is not set
1055# CONFIG_PPC_EARLY_DEBUG is not set 1065# CONFIG_PPC_EARLY_DEBUG is not set
1056 1066
1057# 1067#
@@ -1061,49 +1071,79 @@ CONFIG_ENABLE_MUST_CHECK=y
1061# CONFIG_SECURITY is not set 1071# CONFIG_SECURITY is not set
1062# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1072# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1063CONFIG_CRYPTO=y 1073CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_SEQIV is not set 1074
1075#
1076# Crypto core or helper
1077#
1065# CONFIG_CRYPTO_MANAGER is not set 1078# CONFIG_CRYPTO_MANAGER is not set
1079# CONFIG_CRYPTO_GF128MUL is not set
1080# CONFIG_CRYPTO_NULL is not set
1081# CONFIG_CRYPTO_CRYPTD is not set
1082# CONFIG_CRYPTO_AUTHENC is not set
1083
1084#
1085# Authenticated Encryption with Associated Data
1086#
1087# CONFIG_CRYPTO_CCM is not set
1088# CONFIG_CRYPTO_GCM is not set
1089# CONFIG_CRYPTO_SEQIV is not set
1090
1091#
1092# Block modes
1093#
1094# CONFIG_CRYPTO_CBC is not set
1095# CONFIG_CRYPTO_CTR is not set
1096# CONFIG_CRYPTO_CTS is not set
1097# CONFIG_CRYPTO_ECB is not set
1098# CONFIG_CRYPTO_LRW is not set
1099# CONFIG_CRYPTO_PCBC is not set
1100# CONFIG_CRYPTO_XTS is not set
1101
1102#
1103# Hash modes
1104#
1066# CONFIG_CRYPTO_HMAC is not set 1105# CONFIG_CRYPTO_HMAC is not set
1067# CONFIG_CRYPTO_XCBC is not set 1106# CONFIG_CRYPTO_XCBC is not set
1068# CONFIG_CRYPTO_NULL is not set 1107
1108#
1109# Digest
1110#
1111# CONFIG_CRYPTO_CRC32C is not set
1069# CONFIG_CRYPTO_MD4 is not set 1112# CONFIG_CRYPTO_MD4 is not set
1070# CONFIG_CRYPTO_MD5 is not set 1113# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set
1071# CONFIG_CRYPTO_SHA1 is not set 1115# CONFIG_CRYPTO_SHA1 is not set
1072# CONFIG_CRYPTO_SHA256 is not set 1116# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set 1117# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set 1118# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set 1119# CONFIG_CRYPTO_WP512 is not set
1077# CONFIG_CRYPTO_ECB is not set 1120
1078# CONFIG_CRYPTO_CBC is not set 1121#
1079# CONFIG_CRYPTO_PCBC is not set 1122# Ciphers
1080# CONFIG_CRYPTO_LRW is not set 1123#
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CTR is not set
1083# CONFIG_CRYPTO_GCM is not set
1084# CONFIG_CRYPTO_CCM is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086# CONFIG_CRYPTO_DES is not set
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set 1124# CONFIG_CRYPTO_AES is not set
1125# CONFIG_CRYPTO_ANUBIS is not set
1126# CONFIG_CRYPTO_ARC4 is not set
1127# CONFIG_CRYPTO_BLOWFISH is not set
1128# CONFIG_CRYPTO_CAMELLIA is not set
1092# CONFIG_CRYPTO_CAST5 is not set 1129# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set 1130# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set 1131# CONFIG_CRYPTO_DES is not set
1095# CONFIG_CRYPTO_ARC4 is not set 1132# CONFIG_CRYPTO_FCRYPT is not set
1096# CONFIG_CRYPTO_KHAZAD is not set 1133# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_SEED is not set
1099# CONFIG_CRYPTO_SALSA20 is not set 1134# CONFIG_CRYPTO_SALSA20 is not set
1135# CONFIG_CRYPTO_SEED is not set
1136# CONFIG_CRYPTO_SERPENT is not set
1137# CONFIG_CRYPTO_TEA is not set
1138# CONFIG_CRYPTO_TWOFISH is not set
1139
1140#
1141# Compression
1142#
1100# CONFIG_CRYPTO_DEFLATE is not set 1143# CONFIG_CRYPTO_DEFLATE is not set
1101# CONFIG_CRYPTO_MICHAEL_MIC is not set
1102# CONFIG_CRYPTO_CRC32C is not set
1103# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_AUTHENC is not set
1105# CONFIG_CRYPTO_LZO is not set 1144# CONFIG_CRYPTO_LZO is not set
1106CONFIG_CRYPTO_HW=y 1145CONFIG_CRYPTO_HW=y
1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1108# CONFIG_PPC_CLOCK is not set 1147# CONFIG_PPC_CLOCK is not set
1109CONFIG_PPC_LIB_RHEAP=y 1148CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 63c5ec8b6515..3113257edf5a 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:45 2008 4# Mon Jun 9 08:52:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -87,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
87CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
90# CONFIG_KALLSYMS is not set 93# CONFIG_KALLSYMS is not set
91# CONFIG_HOTPLUG is not set 94# CONFIG_HOTPLUG is not set
92CONFIG_PRINTK=y 95CONFIG_PRINTK=y
@@ -111,6 +114,7 @@ CONFIG_SLUB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -151,6 +155,7 @@ CONFIG_MPC85xx=y
151# CONFIG_MPC85xx_CDS is not set 155# CONFIG_MPC85xx_CDS is not set
152# CONFIG_MPC85xx_MDS is not set 156# CONFIG_MPC85xx_MDS is not set
153# CONFIG_MPC85xx_DS is not set 157# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set
154# CONFIG_STX_GP3 is not set 159# CONFIG_STX_GP3 is not set
155# CONFIG_TQM8540 is not set 160# CONFIG_TQM8540 is not set
156# CONFIG_TQM8541 is not set 161# CONFIG_TQM8541 is not set
@@ -209,11 +214,13 @@ CONFIG_FLATMEM=y
209CONFIG_FLAT_NODE_MEM_MAP=y 214CONFIG_FLAT_NODE_MEM_MAP=y
210# CONFIG_SPARSEMEM_STATIC is not set 215# CONFIG_SPARSEMEM_STATIC is not set
211# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 218CONFIG_SPLIT_PTLOCK_CPUS=4
213# CONFIG_RESOURCES_64BIT is not set 219# CONFIG_RESOURCES_64BIT is not set
214CONFIG_ZONE_DMA_FLAG=1 220CONFIG_ZONE_DMA_FLAG=1
215CONFIG_BOUNCE=y 221CONFIG_BOUNCE=y
216CONFIG_VIRT_TO_BUS=y 222CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11
217# CONFIG_PROC_DEVICETREE is not set 224# CONFIG_PROC_DEVICETREE is not set
218# CONFIG_CMDLINE_BOOL is not set 225# CONFIG_CMDLINE_BOOL is not set
219# CONFIG_PM is not set 226# CONFIG_PM is not set
@@ -234,6 +241,7 @@ CONFIG_PCI_SYSCALL=y
234CONFIG_ARCH_SUPPORTS_MSI=y 241CONFIG_ARCH_SUPPORTS_MSI=y
235# CONFIG_PCI_MSI is not set 242# CONFIG_PCI_MSI is not set
236CONFIG_PCI_LEGACY=y 243CONFIG_PCI_LEGACY=y
244# CONFIG_HAS_RAPIDIO is not set
237 245
238# 246#
239# Advanced setup 247# Advanced setup
@@ -243,11 +251,12 @@ CONFIG_PCI_LEGACY=y
243# 251#
244# Default settings for advanced configuration options are used 252# Default settings for advanced configuration options are used
245# 253#
246CONFIG_HIGHMEM_START=0xfe000000
247CONFIG_LOWMEM_SIZE=0x30000000 254CONFIG_LOWMEM_SIZE=0x30000000
255CONFIG_PAGE_OFFSET=0xc0000000
248CONFIG_KERNEL_START=0xc0000000 256CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000
249CONFIG_TASK_SIZE=0xc0000000 259CONFIG_TASK_SIZE=0xc0000000
250CONFIG_BOOT_LOAD=0x00800000
251 260
252# 261#
253# Networking 262# Networking
@@ -295,8 +304,6 @@ CONFIG_TCP_CONG_CUBIC=y
295CONFIG_DEFAULT_TCP_CONG="cubic" 304CONFIG_DEFAULT_TCP_CONG="cubic"
296# CONFIG_TCP_MD5SIG is not set 305# CONFIG_TCP_MD5SIG is not set
297# CONFIG_IPV6 is not set 306# CONFIG_IPV6 is not set
298# CONFIG_INET6_XFRM_TUNNEL is not set
299# CONFIG_INET6_TUNNEL is not set
300# CONFIG_NETWORK_SECMARK is not set 307# CONFIG_NETWORK_SECMARK is not set
301# CONFIG_NETFILTER is not set 308# CONFIG_NETFILTER is not set
302# CONFIG_IP_DCCP is not set 309# CONFIG_IP_DCCP is not set
@@ -353,6 +360,7 @@ CONFIG_MTD_PARTITIONS=y
353# CONFIG_MTD_REDBOOT_PARTS is not set 360# CONFIG_MTD_REDBOOT_PARTS is not set
354CONFIG_MTD_CMDLINE_PARTS=y 361CONFIG_MTD_CMDLINE_PARTS=y
355# CONFIG_MTD_OF_PARTS is not set 362# CONFIG_MTD_OF_PARTS is not set
363# CONFIG_MTD_AR7_PARTS is not set
356 364
357# 365#
358# User Modules And Translation Layers 366# User Modules And Translation Layers
@@ -424,6 +432,7 @@ CONFIG_MTD_CFI_UTIL=y
424# 432#
425# CONFIG_MTD_UBI is not set 433# CONFIG_MTD_UBI is not set
426CONFIG_OF_DEVICE=y 434CONFIG_OF_DEVICE=y
435CONFIG_OF_I2C=y
427# CONFIG_PARPORT is not set 436# CONFIG_PARPORT is not set
428CONFIG_BLK_DEV=y 437CONFIG_BLK_DEV=y
429# CONFIG_BLK_DEV_FD is not set 438# CONFIG_BLK_DEV_FD is not set
@@ -507,7 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
507CONFIG_BLK_DEV_VIA82CXXX=y 516CONFIG_BLK_DEV_VIA82CXXX=y
508# CONFIG_BLK_DEV_TC86C001 is not set 517# CONFIG_BLK_DEV_TC86C001 is not set
509CONFIG_BLK_DEV_IDEDMA=y 518CONFIG_BLK_DEV_IDEDMA=y
510CONFIG_IDE_ARCH_OBSOLETE_INIT=y 519# CONFIG_BLK_DEV_HD_ONLY is not set
511# CONFIG_BLK_DEV_HD is not set 520# CONFIG_BLK_DEV_HD is not set
512 521
513# 522#
@@ -602,7 +611,6 @@ CONFIG_NETDEV_1000=y
602# CONFIG_SIS190 is not set 611# CONFIG_SIS190 is not set
603# CONFIG_SKGE is not set 612# CONFIG_SKGE is not set
604# CONFIG_SKY2 is not set 613# CONFIG_SKY2 is not set
605# CONFIG_SK98LIN is not set
606# CONFIG_VIA_VELOCITY is not set 614# CONFIG_VIA_VELOCITY is not set
607# CONFIG_TIGON3 is not set 615# CONFIG_TIGON3 is not set
608# CONFIG_BNX2 is not set 616# CONFIG_BNX2 is not set
@@ -622,6 +630,7 @@ CONFIG_NETDEV_10000=y
622# CONFIG_MLX4_CORE is not set 630# CONFIG_MLX4_CORE is not set
623# CONFIG_TEHUTI is not set 631# CONFIG_TEHUTI is not set
624# CONFIG_BNX2X is not set 632# CONFIG_BNX2X is not set
633# CONFIG_SFC is not set
625# CONFIG_TR is not set 634# CONFIG_TR is not set
626 635
627# 636#
@@ -629,6 +638,7 @@ CONFIG_NETDEV_10000=y
629# 638#
630# CONFIG_WLAN_PRE80211 is not set 639# CONFIG_WLAN_PRE80211 is not set
631# CONFIG_WLAN_80211 is not set 640# CONFIG_WLAN_80211 is not set
641# CONFIG_IWLWIFI_LEDS is not set
632# CONFIG_WAN is not set 642# CONFIG_WAN is not set
633# CONFIG_FDDI is not set 643# CONFIG_FDDI is not set
634# CONFIG_HIPPI is not set 644# CONFIG_HIPPI is not set
@@ -675,6 +685,7 @@ CONFIG_INPUT=y
675# Character devices 685# Character devices
676# 686#
677# CONFIG_VT is not set 687# CONFIG_VT is not set
688CONFIG_DEVKMEM=y
678# CONFIG_SERIAL_NONSTANDARD is not set 689# CONFIG_SERIAL_NONSTANDARD is not set
679# CONFIG_NOZOMI is not set 690# CONFIG_NOZOMI is not set
680 691
@@ -723,13 +734,6 @@ CONFIG_I2C_BOARDINFO=y
723CONFIG_I2C_CHARDEV=y 734CONFIG_I2C_CHARDEV=y
724 735
725# 736#
726# I2C Algorithms
727#
728# CONFIG_I2C_ALGOBIT is not set
729# CONFIG_I2C_ALGOPCF is not set
730# CONFIG_I2C_ALGOPCA is not set
731
732#
733# I2C Hardware Bus support 737# I2C Hardware Bus support
734# 738#
735# CONFIG_I2C_ALI1535 is not set 739# CONFIG_I2C_ALI1535 is not set
@@ -754,6 +758,7 @@ CONFIG_I2C_MPC=y
754# CONFIG_I2C_VIA is not set 758# CONFIG_I2C_VIA is not set
755# CONFIG_I2C_VIAPRO is not set 759# CONFIG_I2C_VIAPRO is not set
756# CONFIG_I2C_VOODOO3 is not set 760# CONFIG_I2C_VOODOO3 is not set
761# CONFIG_I2C_PCA_PLATFORM is not set
757 762
758# 763#
759# Miscellaneous I2C Chip support 764# Miscellaneous I2C Chip support
@@ -763,19 +768,13 @@ CONFIG_I2C_MPC=y
763# CONFIG_SENSORS_PCF8574 is not set 768# CONFIG_SENSORS_PCF8574 is not set
764# CONFIG_PCF8575 is not set 769# CONFIG_PCF8575 is not set
765# CONFIG_SENSORS_PCF8591 is not set 770# CONFIG_SENSORS_PCF8591 is not set
766# CONFIG_TPS65010 is not set
767# CONFIG_SENSORS_MAX6875 is not set 771# CONFIG_SENSORS_MAX6875 is not set
768# CONFIG_SENSORS_TSL2550 is not set 772# CONFIG_SENSORS_TSL2550 is not set
769# CONFIG_I2C_DEBUG_CORE is not set 773# CONFIG_I2C_DEBUG_CORE is not set
770# CONFIG_I2C_DEBUG_ALGO is not set 774# CONFIG_I2C_DEBUG_ALGO is not set
771# CONFIG_I2C_DEBUG_BUS is not set 775# CONFIG_I2C_DEBUG_BUS is not set
772# CONFIG_I2C_DEBUG_CHIP is not set 776# CONFIG_I2C_DEBUG_CHIP is not set
773
774#
775# SPI support
776#
777# CONFIG_SPI is not set 777# CONFIG_SPI is not set
778# CONFIG_SPI_MASTER is not set
779# CONFIG_W1 is not set 778# CONFIG_W1 is not set
780# CONFIG_POWER_SUPPLY is not set 779# CONFIG_POWER_SUPPLY is not set
781CONFIG_HWMON=y 780CONFIG_HWMON=y
@@ -845,12 +844,22 @@ CONFIG_SSB_POSSIBLE=y
845# Multifunction device drivers 844# Multifunction device drivers
846# 845#
847# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set
848 848
849# 849#
850# Multimedia devices 850# Multimedia devices
851# 851#
852
853#
854# Multimedia core support
855#
852# CONFIG_VIDEO_DEV is not set 856# CONFIG_VIDEO_DEV is not set
853# CONFIG_DVB_CORE is not set 857# CONFIG_DVB_CORE is not set
858# CONFIG_VIDEO_MEDIA is not set
859
860#
861# Multimedia drivers
862#
854CONFIG_DAB=y 863CONFIG_DAB=y
855 864
856# 865#
@@ -881,6 +890,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
881CONFIG_USB_ARCH_HAS_OHCI=y 890CONFIG_USB_ARCH_HAS_OHCI=y
882CONFIG_USB_ARCH_HAS_EHCI=y 891CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB is not set 892# CONFIG_USB is not set
893# CONFIG_USB_OTG_WHITELIST is not set
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set
884 895
885# 896#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -889,14 +900,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
889# CONFIG_MMC is not set 900# CONFIG_MMC is not set
890# CONFIG_MEMSTICK is not set 901# CONFIG_MEMSTICK is not set
891# CONFIG_NEW_LEDS is not set 902# CONFIG_NEW_LEDS is not set
903# CONFIG_ACCESSIBILITY is not set
892# CONFIG_INFINIBAND is not set 904# CONFIG_INFINIBAND is not set
893# CONFIG_EDAC is not set 905# CONFIG_EDAC is not set
894# CONFIG_RTC_CLASS is not set 906# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set 907# CONFIG_DMADEVICES is not set
896
897#
898# Userspace I/O
899#
900# CONFIG_UIO is not set 908# CONFIG_UIO is not set
901 909
902# 910#
@@ -916,7 +924,6 @@ CONFIG_FS_MBCACHE=y
916# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
917# CONFIG_FS_POSIX_ACL is not set 925# CONFIG_FS_POSIX_ACL is not set
918# CONFIG_XFS_FS is not set 926# CONFIG_XFS_FS is not set
919# CONFIG_GFS2_FS is not set
920# CONFIG_OCFS2_FS is not set 927# CONFIG_OCFS2_FS is not set
921CONFIG_DNOTIFY=y 928CONFIG_DNOTIFY=y
922CONFIG_INOTIFY=y 929CONFIG_INOTIFY=y
@@ -984,7 +991,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
984CONFIG_NFS_FS=y 991CONFIG_NFS_FS=y
985# CONFIG_NFS_V3 is not set 992# CONFIG_NFS_V3 is not set
986# CONFIG_NFS_V4 is not set 993# CONFIG_NFS_V4 is not set
987# CONFIG_NFS_DIRECTIO is not set
988# CONFIG_NFSD is not set 994# CONFIG_NFSD is not set
989CONFIG_ROOT_NFS=y 995CONFIG_ROOT_NFS=y
990CONFIG_LOCKD=y 996CONFIG_LOCKD=y
@@ -1023,6 +1029,7 @@ CONFIG_PARTITION_ADVANCED=y
1023# Library routines 1029# Library routines
1024# 1030#
1025CONFIG_BITREVERSE=y 1031CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1026# CONFIG_CRC_CCITT is not set 1033# CONFIG_CRC_CCITT is not set
1027# CONFIG_CRC16 is not set 1034# CONFIG_CRC16 is not set
1028# CONFIG_CRC_ITU_T is not set 1035# CONFIG_CRC_ITU_T is not set
@@ -1035,6 +1042,7 @@ CONFIG_PLIST=y
1035CONFIG_HAS_IOMEM=y 1042CONFIG_HAS_IOMEM=y
1036CONFIG_HAS_IOPORT=y 1043CONFIG_HAS_IOPORT=y
1037CONFIG_HAS_DMA=y 1044CONFIG_HAS_DMA=y
1045CONFIG_HAVE_LMB=y
1038 1046
1039# 1047#
1040# Kernel hacking 1048# Kernel hacking
@@ -1042,6 +1050,7 @@ CONFIG_HAS_DMA=y
1042# CONFIG_PRINTK_TIME is not set 1050# CONFIG_PRINTK_TIME is not set
1043CONFIG_ENABLE_WARN_DEPRECATED=y 1051CONFIG_ENABLE_WARN_DEPRECATED=y
1044CONFIG_ENABLE_MUST_CHECK=y 1052CONFIG_ENABLE_MUST_CHECK=y
1053CONFIG_FRAME_WARN=1024
1045# CONFIG_MAGIC_SYSRQ is not set 1054# CONFIG_MAGIC_SYSRQ is not set
1046# CONFIG_UNUSED_SYMBOLS is not set 1055# CONFIG_UNUSED_SYMBOLS is not set
1047# CONFIG_DEBUG_FS is not set 1056# CONFIG_DEBUG_FS is not set
@@ -1052,6 +1061,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1052# CONFIG_DEBUG_BUGVERBOSE is not set 1061# CONFIG_DEBUG_BUGVERBOSE is not set
1053# CONFIG_SAMPLES is not set 1062# CONFIG_SAMPLES is not set
1054# CONFIG_KGDB_CONSOLE is not set 1063# CONFIG_KGDB_CONSOLE is not set
1064# CONFIG_IRQSTACKS is not set
1055# CONFIG_PPC_EARLY_DEBUG is not set 1065# CONFIG_PPC_EARLY_DEBUG is not set
1056 1066
1057# 1067#
@@ -1061,49 +1071,79 @@ CONFIG_ENABLE_MUST_CHECK=y
1061# CONFIG_SECURITY is not set 1071# CONFIG_SECURITY is not set
1062# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1072# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1063CONFIG_CRYPTO=y 1073CONFIG_CRYPTO=y
1064# CONFIG_CRYPTO_SEQIV is not set 1074
1075#
1076# Crypto core or helper
1077#
1065# CONFIG_CRYPTO_MANAGER is not set 1078# CONFIG_CRYPTO_MANAGER is not set
1079# CONFIG_CRYPTO_GF128MUL is not set
1080# CONFIG_CRYPTO_NULL is not set
1081# CONFIG_CRYPTO_CRYPTD is not set
1082# CONFIG_CRYPTO_AUTHENC is not set
1083
1084#
1085# Authenticated Encryption with Associated Data
1086#
1087# CONFIG_CRYPTO_CCM is not set
1088# CONFIG_CRYPTO_GCM is not set
1089# CONFIG_CRYPTO_SEQIV is not set
1090
1091#
1092# Block modes
1093#
1094# CONFIG_CRYPTO_CBC is not set
1095# CONFIG_CRYPTO_CTR is not set
1096# CONFIG_CRYPTO_CTS is not set
1097# CONFIG_CRYPTO_ECB is not set
1098# CONFIG_CRYPTO_LRW is not set
1099# CONFIG_CRYPTO_PCBC is not set
1100# CONFIG_CRYPTO_XTS is not set
1101
1102#
1103# Hash modes
1104#
1066# CONFIG_CRYPTO_HMAC is not set 1105# CONFIG_CRYPTO_HMAC is not set
1067# CONFIG_CRYPTO_XCBC is not set 1106# CONFIG_CRYPTO_XCBC is not set
1068# CONFIG_CRYPTO_NULL is not set 1107
1108#
1109# Digest
1110#
1111# CONFIG_CRYPTO_CRC32C is not set
1069# CONFIG_CRYPTO_MD4 is not set 1112# CONFIG_CRYPTO_MD4 is not set
1070# CONFIG_CRYPTO_MD5 is not set 1113# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set
1071# CONFIG_CRYPTO_SHA1 is not set 1115# CONFIG_CRYPTO_SHA1 is not set
1072# CONFIG_CRYPTO_SHA256 is not set 1116# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set 1117# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set 1118# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set 1119# CONFIG_CRYPTO_WP512 is not set
1077# CONFIG_CRYPTO_ECB is not set 1120
1078# CONFIG_CRYPTO_CBC is not set 1121#
1079# CONFIG_CRYPTO_PCBC is not set 1122# Ciphers
1080# CONFIG_CRYPTO_LRW is not set 1123#
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CTR is not set
1083# CONFIG_CRYPTO_GCM is not set
1084# CONFIG_CRYPTO_CCM is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086# CONFIG_CRYPTO_DES is not set
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set 1124# CONFIG_CRYPTO_AES is not set
1125# CONFIG_CRYPTO_ANUBIS is not set
1126# CONFIG_CRYPTO_ARC4 is not set
1127# CONFIG_CRYPTO_BLOWFISH is not set
1128# CONFIG_CRYPTO_CAMELLIA is not set
1092# CONFIG_CRYPTO_CAST5 is not set 1129# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set 1130# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set 1131# CONFIG_CRYPTO_DES is not set
1095# CONFIG_CRYPTO_ARC4 is not set 1132# CONFIG_CRYPTO_FCRYPT is not set
1096# CONFIG_CRYPTO_KHAZAD is not set 1133# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_SEED is not set
1099# CONFIG_CRYPTO_SALSA20 is not set 1134# CONFIG_CRYPTO_SALSA20 is not set
1135# CONFIG_CRYPTO_SEED is not set
1136# CONFIG_CRYPTO_SERPENT is not set
1137# CONFIG_CRYPTO_TEA is not set
1138# CONFIG_CRYPTO_TWOFISH is not set
1139
1140#
1141# Compression
1142#
1100# CONFIG_CRYPTO_DEFLATE is not set 1143# CONFIG_CRYPTO_DEFLATE is not set
1101# CONFIG_CRYPTO_MICHAEL_MIC is not set
1102# CONFIG_CRYPTO_CRC32C is not set
1103# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_AUTHENC is not set
1105# CONFIG_CRYPTO_LZO is not set 1144# CONFIG_CRYPTO_LZO is not set
1106CONFIG_CRYPTO_HW=y 1145CONFIG_CRYPTO_HW=y
1107# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1108# CONFIG_PPC_CLOCK is not set 1147# CONFIG_PPC_CLOCK is not set
1109CONFIG_PPC_LIB_RHEAP=y 1148CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index a3cc94a2ff06..6740f2a3aa3d 100644
--- a/arch/powerpc/configs/adder875_defconfig
+++ b/arch/powerpc/configs/adder875_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.25-rc2 3# Linux kernel version: 2.6.26-rc5
4# Wed Feb 20 12:26:07 2008 4# Mon Jun 9 08:52:08 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
33CONFIG_GENERIC_HWEIGHT=y 35CONFIG_GENERIC_HWEIGHT=y
@@ -75,6 +77,7 @@ CONFIG_FAIR_GROUP_SCHED=y
75CONFIG_USER_SCHED=y 77CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set 78# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
78# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
79# CONFIG_NAMESPACES is not set 82# CONFIG_NAMESPACES is not set
80# CONFIG_BLK_DEV_INITRD is not set 83# CONFIG_BLK_DEV_INITRD is not set
@@ -107,6 +110,8 @@ CONFIG_SLUB=y
107# CONFIG_MARKERS is not set 110# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y 112CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y
114# CONFIG_HAVE_DMA_ATTRS is not set
110CONFIG_PROC_PAGE_MONITOR=y 115CONFIG_PROC_PAGE_MONITOR=y
111CONFIG_SLABINFO=y 116CONFIG_SLABINFO=y
112# CONFIG_TINY_SHMEM is not set 117# CONFIG_TINY_SHMEM is not set
@@ -131,7 +136,6 @@ CONFIG_DEFAULT_DEADLINE=y
131# CONFIG_DEFAULT_NOOP is not set 136# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="deadline" 137CONFIG_DEFAULT_IOSCHED="deadline"
133CONFIG_CLASSIC_RCU=y 138CONFIG_CLASSIC_RCU=y
134# CONFIG_PREEMPT_RCU is not set
135 139
136# 140#
137# Platform support 141# Platform support
@@ -194,7 +198,6 @@ CONFIG_HZ=1000
194CONFIG_PREEMPT_NONE=y 198CONFIG_PREEMPT_NONE=y
195# CONFIG_PREEMPT_VOLUNTARY is not set 199# CONFIG_PREEMPT_VOLUNTARY is not set
196# CONFIG_PREEMPT is not set 200# CONFIG_PREEMPT is not set
197CONFIG_RCU_TRACE=y
198CONFIG_BINFMT_ELF=y 201CONFIG_BINFMT_ELF=y
199# CONFIG_BINFMT_MISC is not set 202# CONFIG_BINFMT_MISC is not set
200# CONFIG_MATH_EMULATION is not set 203# CONFIG_MATH_EMULATION is not set
@@ -213,11 +216,13 @@ CONFIG_FLATMEM=y
213CONFIG_FLAT_NODE_MEM_MAP=y 216CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_STATIC is not set 217# CONFIG_SPARSEMEM_STATIC is not set
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y
216CONFIG_SPLIT_PTLOCK_CPUS=4 220CONFIG_SPLIT_PTLOCK_CPUS=4
217# CONFIG_RESOURCES_64BIT is not set 221# CONFIG_RESOURCES_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 222CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 223CONFIG_BOUNCE=y
220CONFIG_VIRT_TO_BUS=y 224CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11
221# CONFIG_PROC_DEVICETREE is not set 226# CONFIG_PROC_DEVICETREE is not set
222# CONFIG_CMDLINE_BOOL is not set 227# CONFIG_CMDLINE_BOOL is not set
223# CONFIG_PM is not set 228# CONFIG_PM is not set
@@ -235,6 +240,7 @@ CONFIG_FSL_SOC=y
235# CONFIG_PCI_QSPAN is not set 240# CONFIG_PCI_QSPAN is not set
236# CONFIG_ARCH_SUPPORTS_MSI is not set 241# CONFIG_ARCH_SUPPORTS_MSI is not set
237# CONFIG_PCCARD is not set 242# CONFIG_PCCARD is not set
243# CONFIG_HAS_RAPIDIO is not set
238 244
239# 245#
240# Advanced setup 246# Advanced setup
@@ -244,13 +250,13 @@ CONFIG_FSL_SOC=y
244# 250#
245# Default settings for advanced configuration options are used 251# Default settings for advanced configuration options are used
246# 252#
247CONFIG_HIGHMEM_START=0xfe000000
248CONFIG_LOWMEM_SIZE=0x30000000 253CONFIG_LOWMEM_SIZE=0x30000000
254CONFIG_PAGE_OFFSET=0xc0000000
249CONFIG_KERNEL_START=0xc0000000 255CONFIG_KERNEL_START=0xc0000000
256CONFIG_PHYSICAL_START=0x00000000
250CONFIG_TASK_SIZE=0x80000000 257CONFIG_TASK_SIZE=0x80000000
251CONFIG_CONSISTENT_START=0xfd000000 258CONFIG_CONSISTENT_START=0xfd000000
252CONFIG_CONSISTENT_SIZE=0x00200000 259CONFIG_CONSISTENT_SIZE=0x00200000
253CONFIG_BOOT_LOAD=0x00400000
254 260
255# 261#
256# Networking 262# Networking
@@ -293,8 +299,6 @@ CONFIG_TCP_CONG_CUBIC=y
293CONFIG_DEFAULT_TCP_CONG="cubic" 299CONFIG_DEFAULT_TCP_CONG="cubic"
294# CONFIG_TCP_MD5SIG is not set 300# CONFIG_TCP_MD5SIG is not set
295# CONFIG_IPV6 is not set 301# CONFIG_IPV6 is not set
296# CONFIG_INET6_XFRM_TUNNEL is not set
297# CONFIG_INET6_TUNNEL is not set
298# CONFIG_NETWORK_SECMARK is not set 302# CONFIG_NETWORK_SECMARK is not set
299# CONFIG_NETFILTER is not set 303# CONFIG_NETFILTER is not set
300# CONFIG_IP_DCCP is not set 304# CONFIG_IP_DCCP is not set
@@ -482,6 +486,7 @@ CONFIG_FS_ENET_MDIO_FEC=y
482# 486#
483# CONFIG_WLAN_PRE80211 is not set 487# CONFIG_WLAN_PRE80211 is not set
484# CONFIG_WLAN_80211 is not set 488# CONFIG_WLAN_80211 is not set
489# CONFIG_IWLWIFI_LEDS is not set
485# CONFIG_WAN is not set 490# CONFIG_WAN is not set
486# CONFIG_PPP is not set 491# CONFIG_PPP is not set
487# CONFIG_SLIP is not set 492# CONFIG_SLIP is not set
@@ -548,6 +553,7 @@ CONFIG_SERIO_LIBPS2=y
548# Character devices 553# Character devices
549# 554#
550# CONFIG_VT is not set 555# CONFIG_VT is not set
556CONFIG_DEVKMEM=y
551# CONFIG_SERIAL_NONSTANDARD is not set 557# CONFIG_SERIAL_NONSTANDARD is not set
552 558
553# 559#
@@ -580,12 +586,7 @@ CONFIG_GEN_RTC=y
580# CONFIG_RAW_DRIVER is not set 586# CONFIG_RAW_DRIVER is not set
581# CONFIG_TCG_TPM is not set 587# CONFIG_TCG_TPM is not set
582# CONFIG_I2C is not set 588# CONFIG_I2C is not set
583
584#
585# SPI support
586#
587# CONFIG_SPI is not set 589# CONFIG_SPI is not set
588# CONFIG_SPI_MASTER is not set
589# CONFIG_W1 is not set 590# CONFIG_W1 is not set
590# CONFIG_POWER_SUPPLY is not set 591# CONFIG_POWER_SUPPLY is not set
591# CONFIG_HWMON is not set 592# CONFIG_HWMON is not set
@@ -602,12 +603,22 @@ CONFIG_SSB_POSSIBLE=y
602# Multifunction device drivers 603# Multifunction device drivers
603# 604#
604# CONFIG_MFD_SM501 is not set 605# CONFIG_MFD_SM501 is not set
606# CONFIG_HTC_PASIC3 is not set
605 607
606# 608#
607# Multimedia devices 609# Multimedia devices
608# 610#
611
612#
613# Multimedia core support
614#
609# CONFIG_VIDEO_DEV is not set 615# CONFIG_VIDEO_DEV is not set
610# CONFIG_DVB_CORE is not set 616# CONFIG_DVB_CORE is not set
617# CONFIG_VIDEO_MEDIA is not set
618
619#
620# Multimedia drivers
621#
611CONFIG_DAB=y 622CONFIG_DAB=y
612 623
613# 624#
@@ -632,12 +643,10 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
632# CONFIG_MMC is not set 643# CONFIG_MMC is not set
633# CONFIG_MEMSTICK is not set 644# CONFIG_MEMSTICK is not set
634# CONFIG_NEW_LEDS is not set 645# CONFIG_NEW_LEDS is not set
646# CONFIG_ACCESSIBILITY is not set
635# CONFIG_EDAC is not set 647# CONFIG_EDAC is not set
636# CONFIG_RTC_CLASS is not set 648# CONFIG_RTC_CLASS is not set
637 649# CONFIG_DMADEVICES is not set
638#
639# Userspace I/O
640#
641# CONFIG_UIO is not set 650# CONFIG_UIO is not set
642 651
643# 652#
@@ -650,7 +659,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
650# CONFIG_JFS_FS is not set 659# CONFIG_JFS_FS is not set
651# CONFIG_FS_POSIX_ACL is not set 660# CONFIG_FS_POSIX_ACL is not set
652# CONFIG_XFS_FS is not set 661# CONFIG_XFS_FS is not set
653# CONFIG_GFS2_FS is not set
654# CONFIG_OCFS2_FS is not set 662# CONFIG_OCFS2_FS is not set
655# CONFIG_DNOTIFY is not set 663# CONFIG_DNOTIFY is not set
656# CONFIG_INOTIFY is not set 664# CONFIG_INOTIFY is not set
@@ -708,7 +716,6 @@ CONFIG_NFS_FS=y
708CONFIG_NFS_V3=y 716CONFIG_NFS_V3=y
709# CONFIG_NFS_V3_ACL is not set 717# CONFIG_NFS_V3_ACL is not set
710# CONFIG_NFS_V4 is not set 718# CONFIG_NFS_V4 is not set
711# CONFIG_NFS_DIRECTIO is not set
712# CONFIG_NFSD is not set 719# CONFIG_NFSD is not set
713CONFIG_ROOT_NFS=y 720CONFIG_ROOT_NFS=y
714CONFIG_LOCKD=y 721CONFIG_LOCKD=y
@@ -751,6 +758,7 @@ CONFIG_MSDOS_PARTITION=y
751# 758#
752# Library routines 759# Library routines
753# 760#
761# CONFIG_GENERIC_FIND_FIRST_BIT is not set
754# CONFIG_CRC_CCITT is not set 762# CONFIG_CRC_CCITT is not set
755# CONFIG_CRC16 is not set 763# CONFIG_CRC16 is not set
756# CONFIG_CRC_ITU_T is not set 764# CONFIG_CRC_ITU_T is not set
@@ -761,6 +769,7 @@ CONFIG_ZLIB_INFLATE=y
761CONFIG_HAS_IOMEM=y 769CONFIG_HAS_IOMEM=y
762CONFIG_HAS_IOPORT=y 770CONFIG_HAS_IOPORT=y
763CONFIG_HAS_DMA=y 771CONFIG_HAS_DMA=y
772CONFIG_HAVE_LMB=y
764 773
765# 774#
766# Kernel hacking 775# Kernel hacking
@@ -768,6 +777,7 @@ CONFIG_HAS_DMA=y
768# CONFIG_PRINTK_TIME is not set 777# CONFIG_PRINTK_TIME is not set
769CONFIG_ENABLE_WARN_DEPRECATED=y 778CONFIG_ENABLE_WARN_DEPRECATED=y
770CONFIG_ENABLE_MUST_CHECK=y 779CONFIG_ENABLE_MUST_CHECK=y
780CONFIG_FRAME_WARN=1024
771CONFIG_MAGIC_SYSRQ=y 781CONFIG_MAGIC_SYSRQ=y
772# CONFIG_UNUSED_SYMBOLS is not set 782# CONFIG_UNUSED_SYMBOLS is not set
773CONFIG_DEBUG_FS=y 783CONFIG_DEBUG_FS=y
@@ -778,6 +788,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
778CONFIG_SCHED_DEBUG=y 788CONFIG_SCHED_DEBUG=y
779# CONFIG_SCHEDSTATS is not set 789# CONFIG_SCHEDSTATS is not set
780# CONFIG_TIMER_STATS is not set 790# CONFIG_TIMER_STATS is not set
791# CONFIG_DEBUG_OBJECTS is not set
781# CONFIG_SLUB_DEBUG_ON is not set 792# CONFIG_SLUB_DEBUG_ON is not set
782# CONFIG_SLUB_STATS is not set 793# CONFIG_SLUB_STATS is not set
783# CONFIG_DEBUG_SPINLOCK is not set 794# CONFIG_DEBUG_SPINLOCK is not set
@@ -788,6 +799,7 @@ CONFIG_SCHED_DEBUG=y
788CONFIG_DEBUG_BUGVERBOSE=y 799CONFIG_DEBUG_BUGVERBOSE=y
789CONFIG_DEBUG_INFO=y 800CONFIG_DEBUG_INFO=y
790# CONFIG_DEBUG_VM is not set 801# CONFIG_DEBUG_VM is not set
802# CONFIG_DEBUG_WRITECOUNT is not set
791# CONFIG_DEBUG_LIST is not set 803# CONFIG_DEBUG_LIST is not set
792# CONFIG_DEBUG_SG is not set 804# CONFIG_DEBUG_SG is not set
793# CONFIG_BOOT_PRINTK_DELAY is not set 805# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -798,6 +810,7 @@ CONFIG_DEBUG_INFO=y
798# CONFIG_DEBUG_STACK_USAGE is not set 810# CONFIG_DEBUG_STACK_USAGE is not set
799# CONFIG_DEBUG_PAGEALLOC is not set 811# CONFIG_DEBUG_PAGEALLOC is not set
800# CONFIG_DEBUGGER is not set 812# CONFIG_DEBUGGER is not set
813# CONFIG_IRQSTACKS is not set
801# CONFIG_VIRQ_DEBUG is not set 814# CONFIG_VIRQ_DEBUG is not set
802# CONFIG_BDI_SWITCH is not set 815# CONFIG_BDI_SWITCH is not set
803# CONFIG_PPC_EARLY_DEBUG is not set 816# CONFIG_PPC_EARLY_DEBUG is not set
@@ -811,3 +824,4 @@ CONFIG_DEBUG_INFO=y
811# CONFIG_CRYPTO is not set 824# CONFIG_CRYPTO is not set
812# CONFIG_PPC_CLOCK is not set 825# CONFIG_PPC_CLOCK is not set
813CONFIG_PPC_LIB_RHEAP=y 826CONFIG_PPC_LIB_RHEAP=y
827# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index 2b1504e0a111..ba2a463b9305 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:09 2008 4# Mon Jun 9 08:52:09 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
35CONFIG_GENERIC_HWEIGHT=y 37CONFIG_GENERIC_HWEIGHT=y
@@ -70,18 +72,16 @@ CONFIG_IKCONFIG=y
70CONFIG_IKCONFIG_PROC=y 72CONFIG_IKCONFIG_PROC=y
71CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y
74CONFIG_FAIR_GROUP_SCHED=y
75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 75CONFIG_SYSFS_DEPRECATED=y
78CONFIG_SYSFS_DEPRECATED_V2=y 76CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 77# CONFIG_RELAY is not set
80# CONFIG_NAMESPACES is not set 78# CONFIG_NAMESPACES is not set
81# CONFIG_BLK_DEV_INITRD is not set 79# CONFIG_BLK_DEV_INITRD is not set
80CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 81CONFIG_SYSCTL=y
83CONFIG_EMBEDDED=y 82CONFIG_EMBEDDED=y
84CONFIG_SYSCTL_SYSCALL=y 83CONFIG_SYSCTL_SYSCALL=y
84CONFIG_SYSCTL_SYSCALL_CHECK=y
85CONFIG_KALLSYMS=y 85CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y 86CONFIG_KALLSYMS_ALL=y
87# CONFIG_KALLSYMS_EXTRA_PASS is not set 87# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -107,6 +107,7 @@ CONFIG_SLAB=y
107CONFIG_HAVE_OPROFILE=y 107CONFIG_HAVE_OPROFILE=y
108CONFIG_HAVE_KPROBES=y 108CONFIG_HAVE_KPROBES=y
109CONFIG_HAVE_KRETPROBES=y 109CONFIG_HAVE_KRETPROBES=y
110# CONFIG_HAVE_DMA_ATTRS is not set
110CONFIG_PROC_PAGE_MONITOR=y 111CONFIG_PROC_PAGE_MONITOR=y
111CONFIG_SLABINFO=y 112CONFIG_SLABINFO=y
112CONFIG_RT_MUTEXES=y 113CONFIG_RT_MUTEXES=y
@@ -194,11 +195,13 @@ CONFIG_FLATMEM=y
194CONFIG_FLAT_NODE_MEM_MAP=y 195CONFIG_FLAT_NODE_MEM_MAP=y
195# CONFIG_SPARSEMEM_STATIC is not set 196# CONFIG_SPARSEMEM_STATIC is not set
196# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 197# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
198CONFIG_PAGEFLAGS_EXTENDED=y
197CONFIG_SPLIT_PTLOCK_CPUS=4 199CONFIG_SPLIT_PTLOCK_CPUS=4
198# CONFIG_RESOURCES_64BIT is not set 200# CONFIG_RESOURCES_64BIT is not set
199CONFIG_ZONE_DMA_FLAG=1 201CONFIG_ZONE_DMA_FLAG=1
200CONFIG_BOUNCE=y 202CONFIG_BOUNCE=y
201CONFIG_VIRT_TO_BUS=y 203CONFIG_VIRT_TO_BUS=y
204CONFIG_FORCE_MAX_ZONEORDER=11
202CONFIG_PROC_DEVICETREE=y 205CONFIG_PROC_DEVICETREE=y
203# CONFIG_CMDLINE_BOOL is not set 206# CONFIG_CMDLINE_BOOL is not set
204# CONFIG_PM is not set 207# CONFIG_PM is not set
@@ -215,6 +218,7 @@ CONFIG_FSL_SOC=y
215# CONFIG_PCI_SYSCALL is not set 218# CONFIG_PCI_SYSCALL is not set
216# CONFIG_ARCH_SUPPORTS_MSI is not set 219# CONFIG_ARCH_SUPPORTS_MSI is not set
217# CONFIG_PCCARD is not set 220# CONFIG_PCCARD is not set
221# CONFIG_HAS_RAPIDIO is not set
218 222
219# 223#
220# Advanced setup 224# Advanced setup
@@ -224,11 +228,11 @@ CONFIG_FSL_SOC=y
224# 228#
225# Default settings for advanced configuration options are used 229# Default settings for advanced configuration options are used
226# 230#
227CONFIG_HIGHMEM_START=0xfe000000
228CONFIG_LOWMEM_SIZE=0x30000000 231CONFIG_LOWMEM_SIZE=0x30000000
232CONFIG_PAGE_OFFSET=0xc0000000
229CONFIG_KERNEL_START=0xc0000000 233CONFIG_KERNEL_START=0xc0000000
234CONFIG_PHYSICAL_START=0x00000000
230CONFIG_TASK_SIZE=0xc0000000 235CONFIG_TASK_SIZE=0xc0000000
231CONFIG_BOOT_LOAD=0x00400000
232 236
233# 237#
234# Networking 238# Networking
@@ -283,6 +287,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y
283CONFIG_INET6_XFRM_MODE_TUNNEL=y 287CONFIG_INET6_XFRM_MODE_TUNNEL=y
284CONFIG_INET6_XFRM_MODE_BEET=y 288CONFIG_INET6_XFRM_MODE_BEET=y
285CONFIG_IPV6_SIT=y 289CONFIG_IPV6_SIT=y
290CONFIG_IPV6_NDISC_NODETYPE=y
286# CONFIG_IPV6_TUNNEL is not set 291# CONFIG_IPV6_TUNNEL is not set
287# CONFIG_NETWORK_SECMARK is not set 292# CONFIG_NETWORK_SECMARK is not set
288CONFIG_NETFILTER=y 293CONFIG_NETFILTER=y
@@ -498,6 +503,7 @@ CONFIG_NETDEV_10000=y
498# 503#
499# CONFIG_WLAN_PRE80211 is not set 504# CONFIG_WLAN_PRE80211 is not set
500# CONFIG_WLAN_80211 is not set 505# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set
501# CONFIG_WAN is not set 507# CONFIG_WAN is not set
502# CONFIG_PPP is not set 508# CONFIG_PPP is not set
503# CONFIG_SLIP is not set 509# CONFIG_SLIP is not set
@@ -521,6 +527,7 @@ CONFIG_NETDEV_10000=y
521# Character devices 527# Character devices
522# 528#
523# CONFIG_VT is not set 529# CONFIG_VT is not set
530CONFIG_DEVKMEM=y
524# CONFIG_SERIAL_NONSTANDARD is not set 531# CONFIG_SERIAL_NONSTANDARD is not set
525 532
526# 533#
@@ -552,12 +559,7 @@ CONFIG_HW_RANDOM=y
552# CONFIG_R3964 is not set 559# CONFIG_R3964 is not set
553# CONFIG_RAW_DRIVER is not set 560# CONFIG_RAW_DRIVER is not set
554# CONFIG_I2C is not set 561# CONFIG_I2C is not set
555
556#
557# SPI support
558#
559# CONFIG_SPI is not set 562# CONFIG_SPI is not set
560# CONFIG_SPI_MASTER is not set
561# CONFIG_W1 is not set 563# CONFIG_W1 is not set
562# CONFIG_POWER_SUPPLY is not set 564# CONFIG_POWER_SUPPLY is not set
563# CONFIG_HWMON is not set 565# CONFIG_HWMON is not set
@@ -574,12 +576,22 @@ CONFIG_SSB_POSSIBLE=y
574# Multifunction device drivers 576# Multifunction device drivers
575# 577#
576# CONFIG_MFD_SM501 is not set 578# CONFIG_MFD_SM501 is not set
579# CONFIG_HTC_PASIC3 is not set
577 580
578# 581#
579# Multimedia devices 582# Multimedia devices
580# 583#
584
585#
586# Multimedia core support
587#
581# CONFIG_VIDEO_DEV is not set 588# CONFIG_VIDEO_DEV is not set
582# CONFIG_DVB_CORE is not set 589# CONFIG_DVB_CORE is not set
590# CONFIG_VIDEO_MEDIA is not set
591
592#
593# Multimedia drivers
594#
583CONFIG_DAB=y 595CONFIG_DAB=y
584 596
585# 597#
@@ -603,12 +615,9 @@ CONFIG_DAB=y
603# CONFIG_MMC is not set 615# CONFIG_MMC is not set
604# CONFIG_MEMSTICK is not set 616# CONFIG_MEMSTICK is not set
605# CONFIG_NEW_LEDS is not set 617# CONFIG_NEW_LEDS is not set
618# CONFIG_ACCESSIBILITY is not set
606# CONFIG_RTC_CLASS is not set 619# CONFIG_RTC_CLASS is not set
607# CONFIG_DMADEVICES is not set 620# CONFIG_DMADEVICES is not set
608
609#
610# Userspace I/O
611#
612# CONFIG_UIO is not set 621# CONFIG_UIO is not set
613 622
614# 623#
@@ -675,7 +684,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
675CONFIG_NFS_FS=y 684CONFIG_NFS_FS=y
676CONFIG_NFS_V3=y 685CONFIG_NFS_V3=y
677# CONFIG_NFS_V3_ACL is not set 686# CONFIG_NFS_V3_ACL is not set
678# CONFIG_NFS_DIRECTIO is not set
679# CONFIG_NFSD is not set 687# CONFIG_NFSD is not set
680CONFIG_ROOT_NFS=y 688CONFIG_ROOT_NFS=y
681CONFIG_LOCKD=y 689CONFIG_LOCKD=y
@@ -752,6 +760,7 @@ CONFIG_NLS_UTF8=y
752# 760#
753# Library routines 761# Library routines
754# 762#
763# CONFIG_GENERIC_FIND_FIRST_BIT is not set
755# CONFIG_CRC_CCITT is not set 764# CONFIG_CRC_CCITT is not set
756# CONFIG_CRC16 is not set 765# CONFIG_CRC16 is not set
757# CONFIG_CRC_ITU_T is not set 766# CONFIG_CRC_ITU_T is not set
@@ -763,6 +772,7 @@ CONFIG_PLIST=y
763CONFIG_HAS_IOMEM=y 772CONFIG_HAS_IOMEM=y
764CONFIG_HAS_IOPORT=y 773CONFIG_HAS_IOPORT=y
765CONFIG_HAS_DMA=y 774CONFIG_HAS_DMA=y
775CONFIG_HAVE_LMB=y
766 776
767# 777#
768# Kernel hacking 778# Kernel hacking
@@ -770,6 +780,7 @@ CONFIG_HAS_DMA=y
770# CONFIG_PRINTK_TIME is not set 780# CONFIG_PRINTK_TIME is not set
771CONFIG_ENABLE_WARN_DEPRECATED=y 781CONFIG_ENABLE_WARN_DEPRECATED=y
772CONFIG_ENABLE_MUST_CHECK=y 782CONFIG_ENABLE_MUST_CHECK=y
783CONFIG_FRAME_WARN=1024
773CONFIG_MAGIC_SYSRQ=y 784CONFIG_MAGIC_SYSRQ=y
774# CONFIG_UNUSED_SYMBOLS is not set 785# CONFIG_UNUSED_SYMBOLS is not set
775# CONFIG_DEBUG_FS is not set 786# CONFIG_DEBUG_FS is not set
@@ -780,6 +791,7 @@ CONFIG_DEBUG_KERNEL=y
780# CONFIG_SCHED_DEBUG is not set 791# CONFIG_SCHED_DEBUG is not set
781# CONFIG_SCHEDSTATS is not set 792# CONFIG_SCHEDSTATS is not set
782# CONFIG_TIMER_STATS is not set 793# CONFIG_TIMER_STATS is not set
794# CONFIG_DEBUG_OBJECTS is not set
783# CONFIG_DEBUG_SLAB is not set 795# CONFIG_DEBUG_SLAB is not set
784# CONFIG_DEBUG_RT_MUTEXES is not set 796# CONFIG_DEBUG_RT_MUTEXES is not set
785# CONFIG_RT_MUTEX_TESTER is not set 797# CONFIG_RT_MUTEX_TESTER is not set
@@ -791,6 +803,7 @@ CONFIG_DEBUG_KERNEL=y
791CONFIG_DEBUG_BUGVERBOSE=y 803CONFIG_DEBUG_BUGVERBOSE=y
792CONFIG_DEBUG_INFO=y 804CONFIG_DEBUG_INFO=y
793# CONFIG_DEBUG_VM is not set 805# CONFIG_DEBUG_VM is not set
806# CONFIG_DEBUG_WRITECOUNT is not set
794# CONFIG_DEBUG_LIST is not set 807# CONFIG_DEBUG_LIST is not set
795# CONFIG_DEBUG_SG is not set 808# CONFIG_DEBUG_SG is not set
796# CONFIG_BOOT_PRINTK_DELAY is not set 809# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -802,6 +815,7 @@ CONFIG_DEBUG_INFO=y
802# CONFIG_DEBUG_PAGEALLOC is not set 815# CONFIG_DEBUG_PAGEALLOC is not set
803# CONFIG_DEBUGGER is not set 816# CONFIG_DEBUGGER is not set
804# CONFIG_KGDB_CONSOLE is not set 817# CONFIG_KGDB_CONSOLE is not set
818# CONFIG_IRQSTACKS is not set
805CONFIG_BDI_SWITCH=y 819CONFIG_BDI_SWITCH=y
806# CONFIG_PPC_EARLY_DEBUG is not set 820# CONFIG_PPC_EARLY_DEBUG is not set
807 821
@@ -811,45 +825,75 @@ CONFIG_BDI_SWITCH=y
811# CONFIG_KEYS is not set 825# CONFIG_KEYS is not set
812# CONFIG_SECURITY is not set 826# CONFIG_SECURITY is not set
813CONFIG_CRYPTO=y 827CONFIG_CRYPTO=y
828
829#
830# Crypto core or helper
831#
814CONFIG_CRYPTO_ALGAPI=y 832CONFIG_CRYPTO_ALGAPI=y
815CONFIG_CRYPTO_BLKCIPHER=y 833CONFIG_CRYPTO_BLKCIPHER=y
816# CONFIG_CRYPTO_SEQIV is not set
817CONFIG_CRYPTO_MANAGER=y 834CONFIG_CRYPTO_MANAGER=y
818# CONFIG_CRYPTO_HMAC is not set
819# CONFIG_CRYPTO_NULL is not set 835# CONFIG_CRYPTO_NULL is not set
836# CONFIG_CRYPTO_CRYPTD is not set
837# CONFIG_CRYPTO_AUTHENC is not set
838
839#
840# Authenticated Encryption with Associated Data
841#
842# CONFIG_CRYPTO_CCM is not set
843# CONFIG_CRYPTO_GCM is not set
844# CONFIG_CRYPTO_SEQIV is not set
845
846#
847# Block modes
848#
849CONFIG_CRYPTO_CBC=y
850# CONFIG_CRYPTO_CTR is not set
851# CONFIG_CRYPTO_CTS is not set
852CONFIG_CRYPTO_ECB=y
853CONFIG_CRYPTO_PCBC=y
854
855#
856# Hash modes
857#
858# CONFIG_CRYPTO_HMAC is not set
859
860#
861# Digest
862#
863# CONFIG_CRYPTO_CRC32C is not set
820# CONFIG_CRYPTO_MD4 is not set 864# CONFIG_CRYPTO_MD4 is not set
821CONFIG_CRYPTO_MD5=y 865CONFIG_CRYPTO_MD5=y
866# CONFIG_CRYPTO_MICHAEL_MIC is not set
822# CONFIG_CRYPTO_SHA1 is not set 867# CONFIG_CRYPTO_SHA1 is not set
823# CONFIG_CRYPTO_SHA256 is not set 868# CONFIG_CRYPTO_SHA256 is not set
824# CONFIG_CRYPTO_SHA512 is not set 869# CONFIG_CRYPTO_SHA512 is not set
825# CONFIG_CRYPTO_WP512 is not set
826# CONFIG_CRYPTO_TGR192 is not set 870# CONFIG_CRYPTO_TGR192 is not set
827CONFIG_CRYPTO_ECB=y 871# CONFIG_CRYPTO_WP512 is not set
828CONFIG_CRYPTO_CBC=y 872
829CONFIG_CRYPTO_PCBC=y 873#
830# CONFIG_CRYPTO_CTR is not set 874# Ciphers
831# CONFIG_CRYPTO_GCM is not set 875#
832# CONFIG_CRYPTO_CCM is not set
833# CONFIG_CRYPTO_CRYPTD is not set
834CONFIG_CRYPTO_DES=y
835# CONFIG_CRYPTO_FCRYPT is not set
836# CONFIG_CRYPTO_BLOWFISH is not set
837# CONFIG_CRYPTO_TWOFISH is not set
838# CONFIG_CRYPTO_SERPENT is not set
839# CONFIG_CRYPTO_AES is not set 876# CONFIG_CRYPTO_AES is not set
877# CONFIG_CRYPTO_ANUBIS is not set
878# CONFIG_CRYPTO_ARC4 is not set
879# CONFIG_CRYPTO_BLOWFISH is not set
880# CONFIG_CRYPTO_CAMELLIA is not set
840# CONFIG_CRYPTO_CAST5 is not set 881# CONFIG_CRYPTO_CAST5 is not set
841# CONFIG_CRYPTO_CAST6 is not set 882# CONFIG_CRYPTO_CAST6 is not set
842# CONFIG_CRYPTO_TEA is not set 883CONFIG_CRYPTO_DES=y
843# CONFIG_CRYPTO_ARC4 is not set 884# CONFIG_CRYPTO_FCRYPT is not set
844# CONFIG_CRYPTO_KHAZAD is not set 885# CONFIG_CRYPTO_KHAZAD is not set
845# CONFIG_CRYPTO_ANUBIS is not set
846# CONFIG_CRYPTO_SEED is not set 886# CONFIG_CRYPTO_SEED is not set
887# CONFIG_CRYPTO_SERPENT is not set
888# CONFIG_CRYPTO_TEA is not set
889# CONFIG_CRYPTO_TWOFISH is not set
890
891#
892# Compression
893#
847# CONFIG_CRYPTO_DEFLATE is not set 894# CONFIG_CRYPTO_DEFLATE is not set
848# CONFIG_CRYPTO_MICHAEL_MIC is not set
849# CONFIG_CRYPTO_CRC32C is not set
850# CONFIG_CRYPTO_CAMELLIA is not set
851# CONFIG_CRYPTO_AUTHENC is not set
852# CONFIG_CRYPTO_LZO is not set 895# CONFIG_CRYPTO_LZO is not set
853# CONFIG_CRYPTO_HW is not set 896# CONFIG_CRYPTO_HW is not set
854# CONFIG_PPC_CLOCK is not set 897# CONFIG_PPC_CLOCK is not set
855CONFIG_PPC_LIB_RHEAP=y 898CONFIG_PPC_LIB_RHEAP=y
899# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index 125b4764aadd..ac72b48542dc 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:10 2008 4# Mon Jun 9 08:52:09 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
33CONFIG_GENERIC_HWEIGHT=y 35CONFIG_GENERIC_HWEIGHT=y
@@ -108,6 +110,7 @@ CONFIG_SLUB=y
108CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y 111CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 112CONFIG_HAVE_KRETPROBES=y
113# CONFIG_HAVE_DMA_ATTRS is not set
111CONFIG_PROC_PAGE_MONITOR=y 114CONFIG_PROC_PAGE_MONITOR=y
112CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
113# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
@@ -212,11 +215,13 @@ CONFIG_FLATMEM=y
212CONFIG_FLAT_NODE_MEM_MAP=y 215CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_STATIC is not set 216# CONFIG_SPARSEMEM_STATIC is not set
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 219CONFIG_SPLIT_PTLOCK_CPUS=4
216# CONFIG_RESOURCES_64BIT is not set 220# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 221CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 222CONFIG_BOUNCE=y
219CONFIG_VIRT_TO_BUS=y 223CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11
220CONFIG_PROC_DEVICETREE=y 225CONFIG_PROC_DEVICETREE=y
221# CONFIG_CMDLINE_BOOL is not set 226# CONFIG_CMDLINE_BOOL is not set
222# CONFIG_PM is not set 227# CONFIG_PM is not set
@@ -234,6 +239,7 @@ CONFIG_FSL_SOC=y
234# CONFIG_PCI_QSPAN is not set 239# CONFIG_PCI_QSPAN is not set
235# CONFIG_ARCH_SUPPORTS_MSI is not set 240# CONFIG_ARCH_SUPPORTS_MSI is not set
236# CONFIG_PCCARD is not set 241# CONFIG_PCCARD is not set
242# CONFIG_HAS_RAPIDIO is not set
237 243
238# 244#
239# Advanced setup 245# Advanced setup
@@ -243,13 +249,13 @@ CONFIG_FSL_SOC=y
243# 249#
244# Default settings for advanced configuration options are used 250# Default settings for advanced configuration options are used
245# 251#
246CONFIG_HIGHMEM_START=0xfe000000
247CONFIG_LOWMEM_SIZE=0x30000000 252CONFIG_LOWMEM_SIZE=0x30000000
253CONFIG_PAGE_OFFSET=0xc0000000
248CONFIG_KERNEL_START=0xc0000000 254CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000
249CONFIG_TASK_SIZE=0x80000000 256CONFIG_TASK_SIZE=0x80000000
250CONFIG_CONSISTENT_START=0xfd000000 257CONFIG_CONSISTENT_START=0xfd000000
251CONFIG_CONSISTENT_SIZE=0x00200000 258CONFIG_CONSISTENT_SIZE=0x00200000
252CONFIG_BOOT_LOAD=0x00400000
253 259
254# 260#
255# Networking 261# Networking
@@ -292,8 +298,6 @@ CONFIG_TCP_CONG_CUBIC=y
292CONFIG_DEFAULT_TCP_CONG="cubic" 298CONFIG_DEFAULT_TCP_CONG="cubic"
293# CONFIG_TCP_MD5SIG is not set 299# CONFIG_TCP_MD5SIG is not set
294# CONFIG_IPV6 is not set 300# CONFIG_IPV6 is not set
295# CONFIG_INET6_XFRM_TUNNEL is not set
296# CONFIG_INET6_TUNNEL is not set
297# CONFIG_NETWORK_SECMARK is not set 301# CONFIG_NETWORK_SECMARK is not set
298# CONFIG_NETFILTER is not set 302# CONFIG_NETFILTER is not set
299# CONFIG_IP_DCCP is not set 303# CONFIG_IP_DCCP is not set
@@ -481,6 +485,7 @@ CONFIG_FS_ENET_MDIO_FEC=y
481# 485#
482# CONFIG_WLAN_PRE80211 is not set 486# CONFIG_WLAN_PRE80211 is not set
483# CONFIG_WLAN_80211 is not set 487# CONFIG_WLAN_80211 is not set
488# CONFIG_IWLWIFI_LEDS is not set
484# CONFIG_WAN is not set 489# CONFIG_WAN is not set
485# CONFIG_PPP is not set 490# CONFIG_PPP is not set
486# CONFIG_SLIP is not set 491# CONFIG_SLIP is not set
@@ -505,6 +510,7 @@ CONFIG_FS_ENET_MDIO_FEC=y
505# Character devices 510# Character devices
506# 511#
507# CONFIG_VT is not set 512# CONFIG_VT is not set
513CONFIG_DEVKMEM=y
508# CONFIG_SERIAL_NONSTANDARD is not set 514# CONFIG_SERIAL_NONSTANDARD is not set
509 515
510# 516#
@@ -537,12 +543,7 @@ CONFIG_GEN_RTC=y
537# CONFIG_RAW_DRIVER is not set 543# CONFIG_RAW_DRIVER is not set
538# CONFIG_TCG_TPM is not set 544# CONFIG_TCG_TPM is not set
539# CONFIG_I2C is not set 545# CONFIG_I2C is not set
540
541#
542# SPI support
543#
544# CONFIG_SPI is not set 546# CONFIG_SPI is not set
545# CONFIG_SPI_MASTER is not set
546# CONFIG_W1 is not set 547# CONFIG_W1 is not set
547# CONFIG_POWER_SUPPLY is not set 548# CONFIG_POWER_SUPPLY is not set
548# CONFIG_HWMON is not set 549# CONFIG_HWMON is not set
@@ -559,12 +560,22 @@ CONFIG_SSB_POSSIBLE=y
559# Multifunction device drivers 560# Multifunction device drivers
560# 561#
561# CONFIG_MFD_SM501 is not set 562# CONFIG_MFD_SM501 is not set
563# CONFIG_HTC_PASIC3 is not set
562 564
563# 565#
564# Multimedia devices 566# Multimedia devices
565# 567#
568
569#
570# Multimedia core support
571#
566# CONFIG_VIDEO_DEV is not set 572# CONFIG_VIDEO_DEV is not set
567# CONFIG_DVB_CORE is not set 573# CONFIG_DVB_CORE is not set
574# CONFIG_VIDEO_MEDIA is not set
575
576#
577# Multimedia drivers
578#
568CONFIG_DAB=y 579CONFIG_DAB=y
569 580
570# 581#
@@ -588,13 +599,10 @@ CONFIG_DAB=y
588# CONFIG_MMC is not set 599# CONFIG_MMC is not set
589# CONFIG_MEMSTICK is not set 600# CONFIG_MEMSTICK is not set
590# CONFIG_NEW_LEDS is not set 601# CONFIG_NEW_LEDS is not set
602# CONFIG_ACCESSIBILITY is not set
591# CONFIG_EDAC is not set 603# CONFIG_EDAC is not set
592# CONFIG_RTC_CLASS is not set 604# CONFIG_RTC_CLASS is not set
593# CONFIG_DMADEVICES is not set 605# CONFIG_DMADEVICES is not set
594
595#
596# Userspace I/O
597#
598# CONFIG_UIO is not set 606# CONFIG_UIO is not set
599 607
600# 608#
@@ -607,7 +615,6 @@ CONFIG_DAB=y
607# CONFIG_JFS_FS is not set 615# CONFIG_JFS_FS is not set
608# CONFIG_FS_POSIX_ACL is not set 616# CONFIG_FS_POSIX_ACL is not set
609# CONFIG_XFS_FS is not set 617# CONFIG_XFS_FS is not set
610# CONFIG_GFS2_FS is not set
611# CONFIG_OCFS2_FS is not set 618# CONFIG_OCFS2_FS is not set
612# CONFIG_DNOTIFY is not set 619# CONFIG_DNOTIFY is not set
613# CONFIG_INOTIFY is not set 620# CONFIG_INOTIFY is not set
@@ -665,7 +672,6 @@ CONFIG_NFS_FS=y
665CONFIG_NFS_V3=y 672CONFIG_NFS_V3=y
666# CONFIG_NFS_V3_ACL is not set 673# CONFIG_NFS_V3_ACL is not set
667# CONFIG_NFS_V4 is not set 674# CONFIG_NFS_V4 is not set
668# CONFIG_NFS_DIRECTIO is not set
669# CONFIG_NFSD is not set 675# CONFIG_NFSD is not set
670CONFIG_ROOT_NFS=y 676CONFIG_ROOT_NFS=y
671CONFIG_LOCKD=y 677CONFIG_LOCKD=y
@@ -708,6 +714,7 @@ CONFIG_MSDOS_PARTITION=y
708# 714#
709# Library routines 715# Library routines
710# 716#
717# CONFIG_GENERIC_FIND_FIRST_BIT is not set
711# CONFIG_CRC_CCITT is not set 718# CONFIG_CRC_CCITT is not set
712# CONFIG_CRC16 is not set 719# CONFIG_CRC16 is not set
713# CONFIG_CRC_ITU_T is not set 720# CONFIG_CRC_ITU_T is not set
@@ -718,6 +725,7 @@ CONFIG_ZLIB_INFLATE=y
718CONFIG_HAS_IOMEM=y 725CONFIG_HAS_IOMEM=y
719CONFIG_HAS_IOPORT=y 726CONFIG_HAS_IOPORT=y
720CONFIG_HAS_DMA=y 727CONFIG_HAS_DMA=y
728CONFIG_HAVE_LMB=y
721 729
722# 730#
723# Kernel hacking 731# Kernel hacking
@@ -725,6 +733,7 @@ CONFIG_HAS_DMA=y
725# CONFIG_PRINTK_TIME is not set 733# CONFIG_PRINTK_TIME is not set
726CONFIG_ENABLE_WARN_DEPRECATED=y 734CONFIG_ENABLE_WARN_DEPRECATED=y
727CONFIG_ENABLE_MUST_CHECK=y 735CONFIG_ENABLE_MUST_CHECK=y
736CONFIG_FRAME_WARN=1024
728CONFIG_MAGIC_SYSRQ=y 737CONFIG_MAGIC_SYSRQ=y
729# CONFIG_UNUSED_SYMBOLS is not set 738# CONFIG_UNUSED_SYMBOLS is not set
730# CONFIG_DEBUG_FS is not set 739# CONFIG_DEBUG_FS is not set
@@ -735,6 +744,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
735CONFIG_SCHED_DEBUG=y 744CONFIG_SCHED_DEBUG=y
736# CONFIG_SCHEDSTATS is not set 745# CONFIG_SCHEDSTATS is not set
737# CONFIG_TIMER_STATS is not set 746# CONFIG_TIMER_STATS is not set
747# CONFIG_DEBUG_OBJECTS is not set
738# CONFIG_SLUB_DEBUG_ON is not set 748# CONFIG_SLUB_DEBUG_ON is not set
739# CONFIG_SLUB_STATS is not set 749# CONFIG_SLUB_STATS is not set
740# CONFIG_DEBUG_SPINLOCK is not set 750# CONFIG_DEBUG_SPINLOCK is not set
@@ -745,6 +755,7 @@ CONFIG_SCHED_DEBUG=y
745CONFIG_DEBUG_BUGVERBOSE=y 755CONFIG_DEBUG_BUGVERBOSE=y
746CONFIG_DEBUG_INFO=y 756CONFIG_DEBUG_INFO=y
747# CONFIG_DEBUG_VM is not set 757# CONFIG_DEBUG_VM is not set
758# CONFIG_DEBUG_WRITECOUNT is not set
748# CONFIG_DEBUG_LIST is not set 759# CONFIG_DEBUG_LIST is not set
749# CONFIG_DEBUG_SG is not set 760# CONFIG_DEBUG_SG is not set
750# CONFIG_BOOT_PRINTK_DELAY is not set 761# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -755,6 +766,7 @@ CONFIG_DEBUG_INFO=y
755# CONFIG_DEBUG_STACK_USAGE is not set 766# CONFIG_DEBUG_STACK_USAGE is not set
756# CONFIG_DEBUG_PAGEALLOC is not set 767# CONFIG_DEBUG_PAGEALLOC is not set
757# CONFIG_DEBUGGER is not set 768# CONFIG_DEBUGGER is not set
769# CONFIG_IRQSTACKS is not set
758# CONFIG_BDI_SWITCH is not set 770# CONFIG_BDI_SWITCH is not set
759# CONFIG_PPC_EARLY_DEBUG is not set 771# CONFIG_PPC_EARLY_DEBUG is not set
760 772
@@ -767,3 +779,4 @@ CONFIG_DEBUG_INFO=y
767# CONFIG_CRYPTO is not set 779# CONFIG_CRYPTO is not set
768# CONFIG_PPC_CLOCK is not set 780# CONFIG_PPC_CLOCK is not set
769CONFIG_PPC_LIB_RHEAP=y 781CONFIG_PPC_LIB_RHEAP=y
782# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index db34909831a2..0ccc6e493dcb 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc3 3# Linux kernel version: 2.6.26-rc6
4# Tue May 20 20:01:18 2008 4# Mon Jun 16 21:08:31 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -597,7 +597,61 @@ CONFIG_ATA=y
597CONFIG_SATA_PMP=y 597CONFIG_SATA_PMP=y
598# CONFIG_SATA_AHCI is not set 598# CONFIG_SATA_AHCI is not set
599# CONFIG_SATA_SIL24 is not set 599# CONFIG_SATA_SIL24 is not set
600# CONFIG_ATA_SFF is not set 600CONFIG_ATA_SFF=y
601CONFIG_SATA_SVW=y
602# CONFIG_ATA_PIIX is not set
603# CONFIG_SATA_MV is not set
604# CONFIG_SATA_NV is not set
605# CONFIG_PDC_ADMA is not set
606# CONFIG_SATA_QSTOR is not set
607# CONFIG_SATA_PROMISE is not set
608# CONFIG_SATA_SX4 is not set
609# CONFIG_SATA_SIL is not set
610# CONFIG_SATA_SIS is not set
611# CONFIG_SATA_ULI is not set
612# CONFIG_SATA_VIA is not set
613# CONFIG_SATA_VITESSE is not set
614# CONFIG_SATA_INIC162X is not set
615# CONFIG_PATA_ALI is not set
616# CONFIG_PATA_AMD is not set
617# CONFIG_PATA_ARTOP is not set
618# CONFIG_PATA_ATIIXP is not set
619# CONFIG_PATA_CMD640_PCI is not set
620# CONFIG_PATA_CMD64X is not set
621# CONFIG_PATA_CS5520 is not set
622# CONFIG_PATA_CS5530 is not set
623# CONFIG_PATA_CYPRESS is not set
624# CONFIG_PATA_EFAR is not set
625# CONFIG_ATA_GENERIC is not set
626# CONFIG_PATA_HPT366 is not set
627# CONFIG_PATA_HPT37X is not set
628# CONFIG_PATA_HPT3X2N is not set
629# CONFIG_PATA_HPT3X3 is not set
630# CONFIG_PATA_IT821X is not set
631# CONFIG_PATA_IT8213 is not set
632# CONFIG_PATA_JMICRON is not set
633# CONFIG_PATA_TRIFLEX is not set
634# CONFIG_PATA_MARVELL is not set
635# CONFIG_PATA_MPIIX is not set
636# CONFIG_PATA_OLDPIIX is not set
637# CONFIG_PATA_NETCELL is not set
638# CONFIG_PATA_NINJA32 is not set
639# CONFIG_PATA_NS87410 is not set
640# CONFIG_PATA_NS87415 is not set
641# CONFIG_PATA_OPTI is not set
642# CONFIG_PATA_OPTIDMA is not set
643# CONFIG_PATA_PDC_OLD is not set
644# CONFIG_PATA_RADISYS is not set
645# CONFIG_PATA_RZ1000 is not set
646# CONFIG_PATA_SC1200 is not set
647# CONFIG_PATA_SERVERWORKS is not set
648# CONFIG_PATA_PDC2027X is not set
649# CONFIG_PATA_SIL680 is not set
650# CONFIG_PATA_SIS is not set
651# CONFIG_PATA_VIA is not set
652# CONFIG_PATA_WINBOND is not set
653# CONFIG_PATA_PLATFORM is not set
654# CONFIG_PATA_SCH is not set
601CONFIG_MD=y 655CONFIG_MD=y
602CONFIG_BLK_DEV_MD=y 656CONFIG_BLK_DEV_MD=y
603CONFIG_MD_LINEAR=y 657CONFIG_MD_LINEAR=y
@@ -1230,6 +1284,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1230# 1284#
1231CONFIG_USB_ACM=m 1285CONFIG_USB_ACM=m
1232CONFIG_USB_PRINTER=y 1286CONFIG_USB_PRINTER=y
1287# CONFIG_USB_WDM is not set
1233 1288
1234# 1289#
1235# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1290# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1345,6 +1400,7 @@ CONFIG_USB_APPLEDISPLAY=m
1345# CONFIG_USB_TRANCEVIBRATOR is not set 1400# CONFIG_USB_TRANCEVIBRATOR is not set
1346# CONFIG_USB_IOWARRIOR is not set 1401# CONFIG_USB_IOWARRIOR is not set
1347# CONFIG_USB_TEST is not set 1402# CONFIG_USB_TEST is not set
1403# CONFIG_USB_ISIGHTFW is not set
1348# CONFIG_USB_GADGET is not set 1404# CONFIG_USB_GADGET is not set
1349# CONFIG_MMC is not set 1405# CONFIG_MMC is not set
1350# CONFIG_MEMSTICK is not set 1406# CONFIG_MEMSTICK is not set
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 22a943afc3c0..48434c2c7628 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:10 2008 4# Mon Jun 9 08:52:10 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -91,6 +93,7 @@ CONFIG_INITRAMFS_SOURCE=""
91CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
92# CONFIG_EMBEDDED is not set 94# CONFIG_EMBEDDED is not set
93CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
94CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 98# CONFIG_KALLSYMS_ALL is not set
96# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -118,12 +121,14 @@ CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
119CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124# CONFIG_HAVE_DMA_ATTRS is not set
121CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
122CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
125CONFIG_BASE_SMALL=0 129CONFIG_BASE_SMALL=0
126CONFIG_MODULES=y 130CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set
127CONFIG_MODULE_UNLOAD=y 132CONFIG_MODULE_UNLOAD=y
128# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
129# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
@@ -223,11 +228,13 @@ CONFIG_FLATMEM=y
223CONFIG_FLAT_NODE_MEM_MAP=y 228CONFIG_FLAT_NODE_MEM_MAP=y
224# CONFIG_SPARSEMEM_STATIC is not set 229# CONFIG_SPARSEMEM_STATIC is not set
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
231CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
227# CONFIG_RESOURCES_64BIT is not set 233# CONFIG_RESOURCES_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y 236CONFIG_VIRT_TO_BUS=y
237CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 238CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 239# CONFIG_CMDLINE_BOOL is not set
233# CONFIG_PM is not set 240# CONFIG_PM is not set
@@ -251,6 +258,7 @@ CONFIG_PCI_LEGACY=y
251# CONFIG_PCI_DEBUG is not set 258# CONFIG_PCI_DEBUG is not set
252# CONFIG_PCCARD is not set 259# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set 260# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set
254 262
255# 263#
256# Advanced setup 264# Advanced setup
@@ -260,11 +268,11 @@ CONFIG_PCI_LEGACY=y
260# 268#
261# Default settings for advanced configuration options are used 269# Default settings for advanced configuration options are used
262# 270#
263CONFIG_HIGHMEM_START=0xfe000000
264CONFIG_LOWMEM_SIZE=0x30000000 271CONFIG_LOWMEM_SIZE=0x30000000
272CONFIG_PAGE_OFFSET=0xc0000000
265CONFIG_KERNEL_START=0xc0000000 273CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000
266CONFIG_TASK_SIZE=0xc0000000 275CONFIG_TASK_SIZE=0xc0000000
267CONFIG_BOOT_LOAD=0x00800000
268 276
269# 277#
270# Networking 278# Networking
@@ -313,8 +321,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
313# CONFIG_TCP_MD5SIG is not set 321# CONFIG_TCP_MD5SIG is not set
314# CONFIG_IP_VS is not set 322# CONFIG_IP_VS is not set
315# CONFIG_IPV6 is not set 323# CONFIG_IPV6 is not set
316# CONFIG_INET6_XFRM_TUNNEL is not set
317# CONFIG_INET6_TUNNEL is not set
318# CONFIG_NETWORK_SECMARK is not set 324# CONFIG_NETWORK_SECMARK is not set
319CONFIG_NETFILTER=y 325CONFIG_NETFILTER=y
320# CONFIG_NETFILTER_DEBUG is not set 326# CONFIG_NETFILTER_DEBUG is not set
@@ -329,6 +335,7 @@ CONFIG_NF_CONNTRACK=m
329# CONFIG_NF_CT_ACCT is not set 335# CONFIG_NF_CT_ACCT is not set
330# CONFIG_NF_CONNTRACK_MARK is not set 336# CONFIG_NF_CONNTRACK_MARK is not set
331# CONFIG_NF_CONNTRACK_EVENTS is not set 337# CONFIG_NF_CONNTRACK_EVENTS is not set
338# CONFIG_NF_CT_PROTO_DCCP is not set
332CONFIG_NF_CT_PROTO_GRE=m 339CONFIG_NF_CT_PROTO_GRE=m
333CONFIG_NF_CT_PROTO_SCTP=m 340CONFIG_NF_CT_PROTO_SCTP=m
334# CONFIG_NF_CT_PROTO_UDPLITE is not set 341# CONFIG_NF_CT_PROTO_UDPLITE is not set
@@ -407,6 +414,7 @@ CONFIG_IP_NF_TARGET_REDIRECT=m
407# CONFIG_IP_NF_TARGET_NETMAP is not set 414# CONFIG_IP_NF_TARGET_NETMAP is not set
408# CONFIG_NF_NAT_SNMP_BASIC is not set 415# CONFIG_NF_NAT_SNMP_BASIC is not set
409CONFIG_NF_NAT_PROTO_GRE=m 416CONFIG_NF_NAT_PROTO_GRE=m
417CONFIG_NF_NAT_PROTO_SCTP=m
410CONFIG_NF_NAT_FTP=m 418CONFIG_NF_NAT_FTP=m
411CONFIG_NF_NAT_IRC=m 419CONFIG_NF_NAT_IRC=m
412CONFIG_NF_NAT_TFTP=m 420CONFIG_NF_NAT_TFTP=m
@@ -459,8 +467,6 @@ CONFIG_IEEE80211_DEBUG=y
459CONFIG_IEEE80211_CRYPT_WEP=m 467CONFIG_IEEE80211_CRYPT_WEP=m
460CONFIG_IEEE80211_CRYPT_CCMP=m 468CONFIG_IEEE80211_CRYPT_CCMP=m
461CONFIG_IEEE80211_CRYPT_TKIP=m 469CONFIG_IEEE80211_CRYPT_TKIP=m
462CONFIG_IEEE80211_SOFTMAC=m
463CONFIG_IEEE80211_SOFTMAC_DEBUG=y
464# CONFIG_RFKILL is not set 470# CONFIG_RFKILL is not set
465# CONFIG_NET_9P is not set 471# CONFIG_NET_9P is not set
466 472
@@ -486,6 +492,7 @@ CONFIG_MTD_PARTITIONS=y
486# CONFIG_MTD_REDBOOT_PARTS is not set 492# CONFIG_MTD_REDBOOT_PARTS is not set
487# CONFIG_MTD_CMDLINE_PARTS is not set 493# CONFIG_MTD_CMDLINE_PARTS is not set
488# CONFIG_MTD_OF_PARTS is not set 494# CONFIG_MTD_OF_PARTS is not set
495# CONFIG_MTD_AR7_PARTS is not set
489 496
490# 497#
491# User Modules And Translation Layers 498# User Modules And Translation Layers
@@ -565,6 +572,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
565# 572#
566# CONFIG_MTD_UBI is not set 573# CONFIG_MTD_UBI is not set
567CONFIG_OF_DEVICE=y 574CONFIG_OF_DEVICE=y
575CONFIG_OF_I2C=y
568# CONFIG_PARPORT is not set 576# CONFIG_PARPORT is not set
569CONFIG_BLK_DEV=y 577CONFIG_BLK_DEV=y
570# CONFIG_BLK_DEV_FD is not set 578# CONFIG_BLK_DEV_FD is not set
@@ -670,7 +678,11 @@ CONFIG_SCSI_LOWLEVEL=y
670# CONFIG_SCSI_SRP is not set 678# CONFIG_SCSI_SRP is not set
671CONFIG_ATA=y 679CONFIG_ATA=y
672# CONFIG_ATA_NONSTANDARD is not set 680# CONFIG_ATA_NONSTANDARD is not set
681CONFIG_SATA_PMP=y
673# CONFIG_SATA_AHCI is not set 682# CONFIG_SATA_AHCI is not set
683# CONFIG_SATA_SIL24 is not set
684# CONFIG_SATA_FSL is not set
685CONFIG_ATA_SFF=y
674# CONFIG_SATA_SVW is not set 686# CONFIG_SATA_SVW is not set
675# CONFIG_ATA_PIIX is not set 687# CONFIG_ATA_PIIX is not set
676# CONFIG_SATA_MV is not set 688# CONFIG_SATA_MV is not set
@@ -680,13 +692,11 @@ CONFIG_ATA=y
680# CONFIG_SATA_PROMISE is not set 692# CONFIG_SATA_PROMISE is not set
681# CONFIG_SATA_SX4 is not set 693# CONFIG_SATA_SX4 is not set
682# CONFIG_SATA_SIL is not set 694# CONFIG_SATA_SIL is not set
683# CONFIG_SATA_SIL24 is not set
684# CONFIG_SATA_SIS is not set 695# CONFIG_SATA_SIS is not set
685# CONFIG_SATA_ULI is not set 696# CONFIG_SATA_ULI is not set
686# CONFIG_SATA_VIA is not set 697# CONFIG_SATA_VIA is not set
687# CONFIG_SATA_VITESSE is not set 698# CONFIG_SATA_VITESSE is not set
688# CONFIG_SATA_INIC162X is not set 699# CONFIG_SATA_INIC162X is not set
689# CONFIG_SATA_FSL is not set
690# CONFIG_PATA_ALI is not set 700# CONFIG_PATA_ALI is not set
691# CONFIG_PATA_AMD is not set 701# CONFIG_PATA_AMD is not set
692# CONFIG_PATA_ARTOP is not set 702# CONFIG_PATA_ARTOP is not set
@@ -726,6 +736,7 @@ CONFIG_PATA_SIL680=y
726# CONFIG_PATA_VIA is not set 736# CONFIG_PATA_VIA is not set
727# CONFIG_PATA_WINBOND is not set 737# CONFIG_PATA_WINBOND is not set
728# CONFIG_PATA_PLATFORM is not set 738# CONFIG_PATA_PLATFORM is not set
739# CONFIG_PATA_SCH is not set
729# CONFIG_MD is not set 740# CONFIG_MD is not set
730# CONFIG_FUSION is not set 741# CONFIG_FUSION is not set
731 742
@@ -785,7 +796,6 @@ CONFIG_R8169=y
785# CONFIG_SIS190 is not set 796# CONFIG_SIS190 is not set
786# CONFIG_SKGE is not set 797# CONFIG_SKGE is not set
787# CONFIG_SKY2 is not set 798# CONFIG_SKY2 is not set
788# CONFIG_SK98LIN is not set
789# CONFIG_VIA_VELOCITY is not set 799# CONFIG_VIA_VELOCITY is not set
790# CONFIG_TIGON3 is not set 800# CONFIG_TIGON3 is not set
791# CONFIG_BNX2 is not set 801# CONFIG_BNX2 is not set
@@ -805,6 +815,7 @@ CONFIG_NETDEV_10000=y
805# CONFIG_MLX4_CORE is not set 815# CONFIG_MLX4_CORE is not set
806# CONFIG_TEHUTI is not set 816# CONFIG_TEHUTI is not set
807# CONFIG_BNX2X is not set 817# CONFIG_BNX2X is not set
818# CONFIG_SFC is not set
808# CONFIG_TR is not set 819# CONFIG_TR is not set
809 820
810# 821#
@@ -812,6 +823,7 @@ CONFIG_NETDEV_10000=y
812# 823#
813# CONFIG_WLAN_PRE80211 is not set 824# CONFIG_WLAN_PRE80211 is not set
814# CONFIG_WLAN_80211 is not set 825# CONFIG_WLAN_80211 is not set
826# CONFIG_IWLWIFI_LEDS is not set
815 827
816# 828#
817# USB Network Adapters 829# USB Network Adapters
@@ -886,6 +898,7 @@ CONFIG_VT=y
886CONFIG_VT_CONSOLE=y 898CONFIG_VT_CONSOLE=y
887CONFIG_HW_CONSOLE=y 899CONFIG_HW_CONSOLE=y
888# CONFIG_VT_HW_CONSOLE_BINDING is not set 900# CONFIG_VT_HW_CONSOLE_BINDING is not set
901CONFIG_DEVKMEM=y
889# CONFIG_SERIAL_NONSTANDARD is not set 902# CONFIG_SERIAL_NONSTANDARD is not set
890# CONFIG_NOZOMI is not set 903# CONFIG_NOZOMI is not set
891 904
@@ -913,7 +926,6 @@ CONFIG_LEGACY_PTY_COUNT=256
913# CONFIG_IPMI_HANDLER is not set 926# CONFIG_IPMI_HANDLER is not set
914CONFIG_HW_RANDOM=y 927CONFIG_HW_RANDOM=y
915# CONFIG_NVRAM is not set 928# CONFIG_NVRAM is not set
916# CONFIG_GEN_RTC is not set
917# CONFIG_R3964 is not set 929# CONFIG_R3964 is not set
918# CONFIG_APPLICOM is not set 930# CONFIG_APPLICOM is not set
919# CONFIG_RAW_DRIVER is not set 931# CONFIG_RAW_DRIVER is not set
@@ -924,13 +936,6 @@ CONFIG_I2C_BOARDINFO=y
924CONFIG_I2C_CHARDEV=y 936CONFIG_I2C_CHARDEV=y
925 937
926# 938#
927# I2C Algorithms
928#
929# CONFIG_I2C_ALGOBIT is not set
930# CONFIG_I2C_ALGOPCF is not set
931# CONFIG_I2C_ALGOPCA is not set
932
933#
934# I2C Hardware Bus support 939# I2C Hardware Bus support
935# 940#
936# CONFIG_I2C_ALI1535 is not set 941# CONFIG_I2C_ALI1535 is not set
@@ -957,6 +962,7 @@ CONFIG_I2C_MPC=y
957# CONFIG_I2C_VIA is not set 962# CONFIG_I2C_VIA is not set
958# CONFIG_I2C_VIAPRO is not set 963# CONFIG_I2C_VIAPRO is not set
959# CONFIG_I2C_VOODOO3 is not set 964# CONFIG_I2C_VOODOO3 is not set
965# CONFIG_I2C_PCA_PLATFORM is not set
960 966
961# 967#
962# Miscellaneous I2C Chip support 968# Miscellaneous I2C Chip support
@@ -966,19 +972,13 @@ CONFIG_SENSORS_EEPROM=m
966# CONFIG_SENSORS_PCF8574 is not set 972# CONFIG_SENSORS_PCF8574 is not set
967# CONFIG_PCF8575 is not set 973# CONFIG_PCF8575 is not set
968# CONFIG_SENSORS_PCF8591 is not set 974# CONFIG_SENSORS_PCF8591 is not set
969# CONFIG_TPS65010 is not set
970# CONFIG_SENSORS_MAX6875 is not set 975# CONFIG_SENSORS_MAX6875 is not set
971# CONFIG_SENSORS_TSL2550 is not set 976# CONFIG_SENSORS_TSL2550 is not set
972# CONFIG_I2C_DEBUG_CORE is not set 977# CONFIG_I2C_DEBUG_CORE is not set
973# CONFIG_I2C_DEBUG_ALGO is not set 978# CONFIG_I2C_DEBUG_ALGO is not set
974# CONFIG_I2C_DEBUG_BUS is not set 979# CONFIG_I2C_DEBUG_BUS is not set
975# CONFIG_I2C_DEBUG_CHIP is not set 980# CONFIG_I2C_DEBUG_CHIP is not set
976
977#
978# SPI support
979#
980# CONFIG_SPI is not set 981# CONFIG_SPI is not set
981# CONFIG_SPI_MASTER is not set
982# CONFIG_W1 is not set 982# CONFIG_W1 is not set
983# CONFIG_POWER_SUPPLY is not set 983# CONFIG_POWER_SUPPLY is not set
984CONFIG_HWMON=y 984CONFIG_HWMON=y
@@ -1048,12 +1048,22 @@ CONFIG_SSB_POSSIBLE=y
1048# Multifunction device drivers 1048# Multifunction device drivers
1049# 1049#
1050# CONFIG_MFD_SM501 is not set 1050# CONFIG_MFD_SM501 is not set
1051# CONFIG_HTC_PASIC3 is not set
1051 1052
1052# 1053#
1053# Multimedia devices 1054# Multimedia devices
1054# 1055#
1056
1057#
1058# Multimedia core support
1059#
1055# CONFIG_VIDEO_DEV is not set 1060# CONFIG_VIDEO_DEV is not set
1056# CONFIG_DVB_CORE is not set 1061# CONFIG_DVB_CORE is not set
1062# CONFIG_VIDEO_MEDIA is not set
1063
1064#
1065# Multimedia drivers
1066#
1057# CONFIG_DAB is not set 1067# CONFIG_DAB is not set
1058 1068
1059# 1069#
@@ -1115,12 +1125,14 @@ CONFIG_USB_DEVICE_CLASS=y
1115# 1125#
1116# USB Host Controller Drivers 1126# USB Host Controller Drivers
1117# 1127#
1128# CONFIG_USB_C67X00_HCD is not set
1118CONFIG_USB_EHCI_HCD=y 1129CONFIG_USB_EHCI_HCD=y
1119# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1130# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1120# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1131# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1121# CONFIG_USB_EHCI_FSL is not set 1132# CONFIG_USB_EHCI_FSL is not set
1122CONFIG_USB_EHCI_HCD_PPC_OF=y 1133CONFIG_USB_EHCI_HCD_PPC_OF=y
1123# CONFIG_USB_ISP116X_HCD is not set 1134# CONFIG_USB_ISP116X_HCD is not set
1135# CONFIG_USB_ISP1760_HCD is not set
1124CONFIG_USB_OHCI_HCD=y 1136CONFIG_USB_OHCI_HCD=y
1125CONFIG_USB_OHCI_HCD_PPC_OF=y 1137CONFIG_USB_OHCI_HCD_PPC_OF=y
1126CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1138CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1138,6 +1150,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1138# 1150#
1139# CONFIG_USB_ACM is not set 1151# CONFIG_USB_ACM is not set
1140CONFIG_USB_PRINTER=m 1152CONFIG_USB_PRINTER=m
1153# CONFIG_USB_WDM is not set
1141 1154
1142# 1155#
1143# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1156# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1159,6 +1172,7 @@ CONFIG_USB_STORAGE=m
1159# CONFIG_USB_STORAGE_ALAUDA is not set 1172# CONFIG_USB_STORAGE_ALAUDA is not set
1160# CONFIG_USB_STORAGE_ONETOUCH is not set 1173# CONFIG_USB_STORAGE_ONETOUCH is not set
1161# CONFIG_USB_STORAGE_KARMA is not set 1174# CONFIG_USB_STORAGE_KARMA is not set
1175# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1162# CONFIG_USB_LIBUSUAL is not set 1176# CONFIG_USB_LIBUSUAL is not set
1163 1177
1164# 1178#
@@ -1202,9 +1216,11 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1202# CONFIG_USB_SERIAL_MCT_U232 is not set 1216# CONFIG_USB_SERIAL_MCT_U232 is not set
1203# CONFIG_USB_SERIAL_MOS7720 is not set 1217# CONFIG_USB_SERIAL_MOS7720 is not set
1204# CONFIG_USB_SERIAL_MOS7840 is not set 1218# CONFIG_USB_SERIAL_MOS7840 is not set
1219# CONFIG_USB_SERIAL_MOTOROLA is not set
1205# CONFIG_USB_SERIAL_NAVMAN is not set 1220# CONFIG_USB_SERIAL_NAVMAN is not set
1206# CONFIG_USB_SERIAL_PL2303 is not set 1221# CONFIG_USB_SERIAL_PL2303 is not set
1207# CONFIG_USB_SERIAL_OTI6858 is not set 1222# CONFIG_USB_SERIAL_OTI6858 is not set
1223# CONFIG_USB_SERIAL_SPCP8X5 is not set
1208# CONFIG_USB_SERIAL_HP4X is not set 1224# CONFIG_USB_SERIAL_HP4X is not set
1209# CONFIG_USB_SERIAL_SAFE is not set 1225# CONFIG_USB_SERIAL_SAFE is not set
1210# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1226# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
@@ -1238,10 +1254,12 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1238# CONFIG_USB_TRANCEVIBRATOR is not set 1254# CONFIG_USB_TRANCEVIBRATOR is not set
1239# CONFIG_USB_IOWARRIOR is not set 1255# CONFIG_USB_IOWARRIOR is not set
1240# CONFIG_USB_TEST is not set 1256# CONFIG_USB_TEST is not set
1257# CONFIG_USB_ISIGHTFW is not set
1241# CONFIG_USB_GADGET is not set 1258# CONFIG_USB_GADGET is not set
1242# CONFIG_MMC is not set 1259# CONFIG_MMC is not set
1243# CONFIG_MEMSTICK is not set 1260# CONFIG_MEMSTICK is not set
1244# CONFIG_NEW_LEDS is not set 1261# CONFIG_NEW_LEDS is not set
1262# CONFIG_ACCESSIBILITY is not set
1245# CONFIG_INFINIBAND is not set 1263# CONFIG_INFINIBAND is not set
1246# CONFIG_EDAC is not set 1264# CONFIG_EDAC is not set
1247CONFIG_RTC_LIB=y 1265CONFIG_RTC_LIB=y
@@ -1293,11 +1311,8 @@ CONFIG_RTC_DRV_RS5C372=y
1293# 1311#
1294# on-CPU RTC drivers 1312# on-CPU RTC drivers
1295# 1313#
1314# CONFIG_RTC_DRV_PPC is not set
1296# CONFIG_DMADEVICES is not set 1315# CONFIG_DMADEVICES is not set
1297
1298#
1299# Userspace I/O
1300#
1301# CONFIG_UIO is not set 1316# CONFIG_UIO is not set
1302 1317
1303# 1318#
@@ -1318,10 +1333,9 @@ CONFIG_FS_MBCACHE=y
1318CONFIG_FS_POSIX_ACL=y 1333CONFIG_FS_POSIX_ACL=y
1319CONFIG_XFS_FS=m 1334CONFIG_XFS_FS=m
1320# CONFIG_XFS_QUOTA is not set 1335# CONFIG_XFS_QUOTA is not set
1321# CONFIG_XFS_SECURITY is not set
1322# CONFIG_XFS_POSIX_ACL is not set 1336# CONFIG_XFS_POSIX_ACL is not set
1323# CONFIG_XFS_RT is not set 1337# CONFIG_XFS_RT is not set
1324# CONFIG_GFS2_FS is not set 1338# CONFIG_XFS_DEBUG is not set
1325# CONFIG_OCFS2_FS is not set 1339# CONFIG_OCFS2_FS is not set
1326CONFIG_DNOTIFY=y 1340CONFIG_DNOTIFY=y
1327CONFIG_INOTIFY=y 1341CONFIG_INOTIFY=y
@@ -1388,12 +1402,10 @@ CONFIG_NFS_FS=y
1388CONFIG_NFS_V3=y 1402CONFIG_NFS_V3=y
1389CONFIG_NFS_V3_ACL=y 1403CONFIG_NFS_V3_ACL=y
1390CONFIG_NFS_V4=y 1404CONFIG_NFS_V4=y
1391# CONFIG_NFS_DIRECTIO is not set
1392CONFIG_NFSD=m 1405CONFIG_NFSD=m
1393CONFIG_NFSD_V3=y 1406CONFIG_NFSD_V3=y
1394# CONFIG_NFSD_V3_ACL is not set 1407# CONFIG_NFSD_V3_ACL is not set
1395# CONFIG_NFSD_V4 is not set 1408# CONFIG_NFSD_V4 is not set
1396CONFIG_NFSD_TCP=y
1397CONFIG_ROOT_NFS=y 1409CONFIG_ROOT_NFS=y
1398CONFIG_LOCKD=y 1410CONFIG_LOCKD=y
1399CONFIG_LOCKD_V4=y 1411CONFIG_LOCKD_V4=y
@@ -1467,9 +1479,10 @@ CONFIG_NLS_UTF8=m
1467# Library routines 1479# Library routines
1468# 1480#
1469CONFIG_BITREVERSE=y 1481CONFIG_BITREVERSE=y
1482# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1470CONFIG_CRC_CCITT=m 1483CONFIG_CRC_CCITT=m
1471# CONFIG_CRC16 is not set 1484# CONFIG_CRC16 is not set
1472# CONFIG_CRC_ITU_T is not set 1485CONFIG_CRC_ITU_T=m
1473CONFIG_CRC32=y 1486CONFIG_CRC32=y
1474# CONFIG_CRC7 is not set 1487# CONFIG_CRC7 is not set
1475CONFIG_LIBCRC32C=m 1488CONFIG_LIBCRC32C=m
@@ -1481,6 +1494,7 @@ CONFIG_PLIST=y
1481CONFIG_HAS_IOMEM=y 1494CONFIG_HAS_IOMEM=y
1482CONFIG_HAS_IOPORT=y 1495CONFIG_HAS_IOPORT=y
1483CONFIG_HAS_DMA=y 1496CONFIG_HAS_DMA=y
1497CONFIG_HAVE_LMB=y
1484 1498
1485# 1499#
1486# Kernel hacking 1500# Kernel hacking
@@ -1488,6 +1502,7 @@ CONFIG_HAS_DMA=y
1488# CONFIG_PRINTK_TIME is not set 1502# CONFIG_PRINTK_TIME is not set
1489CONFIG_ENABLE_WARN_DEPRECATED=y 1503CONFIG_ENABLE_WARN_DEPRECATED=y
1490CONFIG_ENABLE_MUST_CHECK=y 1504CONFIG_ENABLE_MUST_CHECK=y
1505CONFIG_FRAME_WARN=1024
1491CONFIG_MAGIC_SYSRQ=y 1506CONFIG_MAGIC_SYSRQ=y
1492# CONFIG_UNUSED_SYMBOLS is not set 1507# CONFIG_UNUSED_SYMBOLS is not set
1493# CONFIG_DEBUG_FS is not set 1508# CONFIG_DEBUG_FS is not set
@@ -1498,6 +1513,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1498CONFIG_SCHED_DEBUG=y 1513CONFIG_SCHED_DEBUG=y
1499# CONFIG_SCHEDSTATS is not set 1514# CONFIG_SCHEDSTATS is not set
1500# CONFIG_TIMER_STATS is not set 1515# CONFIG_TIMER_STATS is not set
1516# CONFIG_DEBUG_OBJECTS is not set
1501# CONFIG_SLUB_DEBUG_ON is not set 1517# CONFIG_SLUB_DEBUG_ON is not set
1502# CONFIG_SLUB_STATS is not set 1518# CONFIG_SLUB_STATS is not set
1503# CONFIG_DEBUG_RT_MUTEXES is not set 1519# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1510,6 +1526,7 @@ CONFIG_SCHED_DEBUG=y
1510CONFIG_DEBUG_BUGVERBOSE=y 1526CONFIG_DEBUG_BUGVERBOSE=y
1511# CONFIG_DEBUG_INFO is not set 1527# CONFIG_DEBUG_INFO is not set
1512# CONFIG_DEBUG_VM is not set 1528# CONFIG_DEBUG_VM is not set
1529# CONFIG_DEBUG_WRITECOUNT is not set
1513# CONFIG_DEBUG_LIST is not set 1530# CONFIG_DEBUG_LIST is not set
1514# CONFIG_DEBUG_SG is not set 1531# CONFIG_DEBUG_SG is not set
1515# CONFIG_BOOT_PRINTK_DELAY is not set 1532# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1521,6 +1538,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1521# CONFIG_DEBUG_STACK_USAGE is not set 1538# CONFIG_DEBUG_STACK_USAGE is not set
1522# CONFIG_DEBUG_PAGEALLOC is not set 1539# CONFIG_DEBUG_PAGEALLOC is not set
1523# CONFIG_DEBUGGER is not set 1540# CONFIG_DEBUGGER is not set
1541# CONFIG_IRQSTACKS is not set
1524# CONFIG_BDI_SWITCH is not set 1542# CONFIG_BDI_SWITCH is not set
1525# CONFIG_BOOTX_TEXT is not set 1543# CONFIG_BOOTX_TEXT is not set
1526# CONFIG_PPC_EARLY_DEBUG is not set 1544# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1532,52 +1550,82 @@ CONFIG_DEBUG_BUGVERBOSE=y
1532# CONFIG_SECURITY is not set 1550# CONFIG_SECURITY is not set
1533# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1551# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1534CONFIG_CRYPTO=y 1552CONFIG_CRYPTO=y
1553
1554#
1555# Crypto core or helper
1556#
1535CONFIG_CRYPTO_ALGAPI=y 1557CONFIG_CRYPTO_ALGAPI=y
1536CONFIG_CRYPTO_BLKCIPHER=y 1558CONFIG_CRYPTO_BLKCIPHER=y
1537# CONFIG_CRYPTO_SEQIV is not set
1538CONFIG_CRYPTO_MANAGER=y 1559CONFIG_CRYPTO_MANAGER=y
1560# CONFIG_CRYPTO_GF128MUL is not set
1561# CONFIG_CRYPTO_NULL is not set
1562# CONFIG_CRYPTO_CRYPTD is not set
1563# CONFIG_CRYPTO_AUTHENC is not set
1564# CONFIG_CRYPTO_TEST is not set
1565
1566#
1567# Authenticated Encryption with Associated Data
1568#
1569# CONFIG_CRYPTO_CCM is not set
1570# CONFIG_CRYPTO_GCM is not set
1571# CONFIG_CRYPTO_SEQIV is not set
1572
1573#
1574# Block modes
1575#
1576CONFIG_CRYPTO_CBC=y
1577# CONFIG_CRYPTO_CTR is not set
1578# CONFIG_CRYPTO_CTS is not set
1579CONFIG_CRYPTO_ECB=m
1580# CONFIG_CRYPTO_LRW is not set
1581CONFIG_CRYPTO_PCBC=m
1582# CONFIG_CRYPTO_XTS is not set
1583
1584#
1585# Hash modes
1586#
1539# CONFIG_CRYPTO_HMAC is not set 1587# CONFIG_CRYPTO_HMAC is not set
1540# CONFIG_CRYPTO_XCBC is not set 1588# CONFIG_CRYPTO_XCBC is not set
1541# CONFIG_CRYPTO_NULL is not set 1589
1590#
1591# Digest
1592#
1593CONFIG_CRYPTO_CRC32C=m
1542CONFIG_CRYPTO_MD4=m 1594CONFIG_CRYPTO_MD4=m
1543CONFIG_CRYPTO_MD5=y 1595CONFIG_CRYPTO_MD5=y
1596CONFIG_CRYPTO_MICHAEL_MIC=m
1544CONFIG_CRYPTO_SHA1=m 1597CONFIG_CRYPTO_SHA1=m
1545# CONFIG_CRYPTO_SHA256 is not set 1598# CONFIG_CRYPTO_SHA256 is not set
1546# CONFIG_CRYPTO_SHA512 is not set 1599# CONFIG_CRYPTO_SHA512 is not set
1547# CONFIG_CRYPTO_WP512 is not set
1548# CONFIG_CRYPTO_TGR192 is not set 1600# CONFIG_CRYPTO_TGR192 is not set
1549# CONFIG_CRYPTO_GF128MUL is not set 1601# CONFIG_CRYPTO_WP512 is not set
1550CONFIG_CRYPTO_ECB=m 1602
1551CONFIG_CRYPTO_CBC=y 1603#
1552CONFIG_CRYPTO_PCBC=m 1604# Ciphers
1553# CONFIG_CRYPTO_LRW is not set 1605#
1554# CONFIG_CRYPTO_XTS is not set
1555# CONFIG_CRYPTO_CTR is not set
1556# CONFIG_CRYPTO_GCM is not set
1557# CONFIG_CRYPTO_CCM is not set
1558# CONFIG_CRYPTO_CRYPTD is not set
1559CONFIG_CRYPTO_DES=y
1560# CONFIG_CRYPTO_FCRYPT is not set
1561CONFIG_CRYPTO_BLOWFISH=m
1562CONFIG_CRYPTO_TWOFISH=m
1563CONFIG_CRYPTO_TWOFISH_COMMON=m
1564CONFIG_CRYPTO_SERPENT=m
1565CONFIG_CRYPTO_AES=m 1606CONFIG_CRYPTO_AES=m
1607# CONFIG_CRYPTO_ANUBIS is not set
1608CONFIG_CRYPTO_ARC4=m
1609CONFIG_CRYPTO_BLOWFISH=m
1610# CONFIG_CRYPTO_CAMELLIA is not set
1566# CONFIG_CRYPTO_CAST5 is not set 1611# CONFIG_CRYPTO_CAST5 is not set
1567# CONFIG_CRYPTO_CAST6 is not set 1612# CONFIG_CRYPTO_CAST6 is not set
1568# CONFIG_CRYPTO_TEA is not set 1613CONFIG_CRYPTO_DES=y
1569CONFIG_CRYPTO_ARC4=m 1614# CONFIG_CRYPTO_FCRYPT is not set
1570# CONFIG_CRYPTO_KHAZAD is not set 1615# CONFIG_CRYPTO_KHAZAD is not set
1571# CONFIG_CRYPTO_ANUBIS is not set
1572# CONFIG_CRYPTO_SEED is not set
1573# CONFIG_CRYPTO_SALSA20 is not set 1616# CONFIG_CRYPTO_SALSA20 is not set
1617# CONFIG_CRYPTO_SEED is not set
1618CONFIG_CRYPTO_SERPENT=m
1619# CONFIG_CRYPTO_TEA is not set
1620CONFIG_CRYPTO_TWOFISH=m
1621CONFIG_CRYPTO_TWOFISH_COMMON=m
1622
1623#
1624# Compression
1625#
1574CONFIG_CRYPTO_DEFLATE=m 1626CONFIG_CRYPTO_DEFLATE=m
1575CONFIG_CRYPTO_MICHAEL_MIC=m
1576CONFIG_CRYPTO_CRC32C=m
1577# CONFIG_CRYPTO_CAMELLIA is not set
1578# CONFIG_CRYPTO_TEST is not set
1579# CONFIG_CRYPTO_AUTHENC is not set
1580# CONFIG_CRYPTO_LZO is not set 1627# CONFIG_CRYPTO_LZO is not set
1581CONFIG_CRYPTO_HW=y 1628CONFIG_CRYPTO_HW=y
1582# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1629# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1583# CONFIG_PPC_CLOCK is not set 1630# CONFIG_PPC_CLOCK is not set
1631# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index a3d52e3f2ded..066c583c1f8a 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:11 2008 4# Mon Jun 9 08:52:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
91CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
@@ -111,6 +114,7 @@ CONFIG_SLUB=y
111CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
@@ -209,11 +213,13 @@ CONFIG_FLATMEM=y
209CONFIG_FLAT_NODE_MEM_MAP=y 213CONFIG_FLAT_NODE_MEM_MAP=y
210# CONFIG_SPARSEMEM_STATIC is not set 214# CONFIG_SPARSEMEM_STATIC is not set
211# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y
212CONFIG_SPLIT_PTLOCK_CPUS=4 217CONFIG_SPLIT_PTLOCK_CPUS=4
213# CONFIG_RESOURCES_64BIT is not set 218# CONFIG_RESOURCES_64BIT is not set
214CONFIG_ZONE_DMA_FLAG=1 219CONFIG_ZONE_DMA_FLAG=1
215CONFIG_BOUNCE=y 220CONFIG_BOUNCE=y
216CONFIG_VIRT_TO_BUS=y 221CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11
217CONFIG_PROC_DEVICETREE=y 223CONFIG_PROC_DEVICETREE=y
218# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
219# CONFIG_PM is not set 225# CONFIG_PM is not set
@@ -235,6 +241,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
235CONFIG_PCI_LEGACY=y 241CONFIG_PCI_LEGACY=y
236# CONFIG_PCCARD is not set 242# CONFIG_PCCARD is not set
237# CONFIG_HOTPLUG_PCI is not set 243# CONFIG_HOTPLUG_PCI is not set
244# CONFIG_HAS_RAPIDIO is not set
238 245
239# 246#
240# Advanced setup 247# Advanced setup
@@ -244,11 +251,11 @@ CONFIG_PCI_LEGACY=y
244# 251#
245# Default settings for advanced configuration options are used 252# Default settings for advanced configuration options are used
246# 253#
247CONFIG_HIGHMEM_START=0xfe000000
248CONFIG_LOWMEM_SIZE=0x30000000 254CONFIG_LOWMEM_SIZE=0x30000000
255CONFIG_PAGE_OFFSET=0xc0000000
249CONFIG_KERNEL_START=0xc0000000 256CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000
250CONFIG_TASK_SIZE=0xc0000000 258CONFIG_TASK_SIZE=0xc0000000
251CONFIG_BOOT_LOAD=0x00800000
252 259
253# 260#
254# Networking 261# Networking
@@ -296,8 +303,6 @@ CONFIG_TCP_CONG_CUBIC=y
296CONFIG_DEFAULT_TCP_CONG="cubic" 303CONFIG_DEFAULT_TCP_CONG="cubic"
297# CONFIG_TCP_MD5SIG is not set 304# CONFIG_TCP_MD5SIG is not set
298# CONFIG_IPV6 is not set 305# CONFIG_IPV6 is not set
299# CONFIG_INET6_XFRM_TUNNEL is not set
300# CONFIG_INET6_TUNNEL is not set
301# CONFIG_NETWORK_SECMARK is not set 306# CONFIG_NETWORK_SECMARK is not set
302# CONFIG_NETFILTER is not set 307# CONFIG_NETFILTER is not set
303# CONFIG_IP_DCCP is not set 308# CONFIG_IP_DCCP is not set
@@ -454,7 +459,10 @@ CONFIG_SCSI_LOWLEVEL=y
454# CONFIG_SCSI_SRP is not set 459# CONFIG_SCSI_SRP is not set
455CONFIG_ATA=y 460CONFIG_ATA=y
456# CONFIG_ATA_NONSTANDARD is not set 461# CONFIG_ATA_NONSTANDARD is not set
462CONFIG_SATA_PMP=y
457# CONFIG_SATA_AHCI is not set 463# CONFIG_SATA_AHCI is not set
464# CONFIG_SATA_SIL24 is not set
465CONFIG_ATA_SFF=y
458# CONFIG_SATA_SVW is not set 466# CONFIG_SATA_SVW is not set
459# CONFIG_ATA_PIIX is not set 467# CONFIG_ATA_PIIX is not set
460CONFIG_SATA_MV=y 468CONFIG_SATA_MV=y
@@ -464,7 +472,6 @@ CONFIG_SATA_MV=y
464# CONFIG_SATA_PROMISE is not set 472# CONFIG_SATA_PROMISE is not set
465# CONFIG_SATA_SX4 is not set 473# CONFIG_SATA_SX4 is not set
466# CONFIG_SATA_SIL is not set 474# CONFIG_SATA_SIL is not set
467# CONFIG_SATA_SIL24 is not set
468# CONFIG_SATA_SIS is not set 475# CONFIG_SATA_SIS is not set
469# CONFIG_SATA_ULI is not set 476# CONFIG_SATA_ULI is not set
470# CONFIG_SATA_VIA is not set 477# CONFIG_SATA_VIA is not set
@@ -509,6 +516,7 @@ CONFIG_SATA_MV=y
509# CONFIG_PATA_VIA is not set 516# CONFIG_PATA_VIA is not set
510# CONFIG_PATA_WINBOND is not set 517# CONFIG_PATA_WINBOND is not set
511# CONFIG_PATA_PLATFORM is not set 518# CONFIG_PATA_PLATFORM is not set
519# CONFIG_PATA_SCH is not set
512# CONFIG_MD is not set 520# CONFIG_MD is not set
513# CONFIG_FUSION is not set 521# CONFIG_FUSION is not set
514 522
@@ -596,7 +604,6 @@ CONFIG_NETDEV_1000=y
596# CONFIG_SIS190 is not set 604# CONFIG_SIS190 is not set
597# CONFIG_SKGE is not set 605# CONFIG_SKGE is not set
598# CONFIG_SKY2 is not set 606# CONFIG_SKY2 is not set
599# CONFIG_SK98LIN is not set
600# CONFIG_VIA_VELOCITY is not set 607# CONFIG_VIA_VELOCITY is not set
601# CONFIG_TIGON3 is not set 608# CONFIG_TIGON3 is not set
602# CONFIG_BNX2 is not set 609# CONFIG_BNX2 is not set
@@ -616,6 +623,7 @@ CONFIG_NETDEV_10000=y
616# CONFIG_MLX4_CORE is not set 623# CONFIG_MLX4_CORE is not set
617# CONFIG_TEHUTI is not set 624# CONFIG_TEHUTI is not set
618# CONFIG_BNX2X is not set 625# CONFIG_BNX2X is not set
626# CONFIG_SFC is not set
619# CONFIG_TR is not set 627# CONFIG_TR is not set
620 628
621# 629#
@@ -623,6 +631,7 @@ CONFIG_NETDEV_10000=y
623# 631#
624# CONFIG_WLAN_PRE80211 is not set 632# CONFIG_WLAN_PRE80211 is not set
625# CONFIG_WLAN_80211 is not set 633# CONFIG_WLAN_80211 is not set
634# CONFIG_IWLWIFI_LEDS is not set
626# CONFIG_WAN is not set 635# CONFIG_WAN is not set
627# CONFIG_FDDI is not set 636# CONFIG_FDDI is not set
628# CONFIG_HIPPI is not set 637# CONFIG_HIPPI is not set
@@ -670,6 +679,7 @@ CONFIG_INPUT=y
670# Character devices 679# Character devices
671# 680#
672# CONFIG_VT is not set 681# CONFIG_VT is not set
682CONFIG_DEVKMEM=y
673# CONFIG_SERIAL_NONSTANDARD is not set 683# CONFIG_SERIAL_NONSTANDARD is not set
674# CONFIG_NOZOMI is not set 684# CONFIG_NOZOMI is not set
675 685
@@ -705,12 +715,7 @@ CONFIG_GEN_RTC=y
705# CONFIG_TCG_TPM is not set 715# CONFIG_TCG_TPM is not set
706CONFIG_DEVPORT=y 716CONFIG_DEVPORT=y
707# CONFIG_I2C is not set 717# CONFIG_I2C is not set
708
709#
710# SPI support
711#
712# CONFIG_SPI is not set 718# CONFIG_SPI is not set
713# CONFIG_SPI_MASTER is not set
714# CONFIG_W1 is not set 719# CONFIG_W1 is not set
715# CONFIG_POWER_SUPPLY is not set 720# CONFIG_POWER_SUPPLY is not set
716CONFIG_HWMON=y 721CONFIG_HWMON=y
@@ -743,12 +748,22 @@ CONFIG_SSB_POSSIBLE=y
743# Multifunction device drivers 748# Multifunction device drivers
744# 749#
745# CONFIG_MFD_SM501 is not set 750# CONFIG_MFD_SM501 is not set
751# CONFIG_HTC_PASIC3 is not set
746 752
747# 753#
748# Multimedia devices 754# Multimedia devices
749# 755#
756
757#
758# Multimedia core support
759#
750# CONFIG_VIDEO_DEV is not set 760# CONFIG_VIDEO_DEV is not set
751# CONFIG_DVB_CORE is not set 761# CONFIG_DVB_CORE is not set
762# CONFIG_VIDEO_MEDIA is not set
763
764#
765# Multimedia drivers
766#
752CONFIG_DAB=y 767CONFIG_DAB=y
753 768
754# 769#
@@ -779,6 +794,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
779CONFIG_USB_ARCH_HAS_OHCI=y 794CONFIG_USB_ARCH_HAS_OHCI=y
780CONFIG_USB_ARCH_HAS_EHCI=y 795CONFIG_USB_ARCH_HAS_EHCI=y
781# CONFIG_USB is not set 796# CONFIG_USB is not set
797# CONFIG_USB_OTG_WHITELIST is not set
798# CONFIG_USB_OTG_BLACKLIST_HUB is not set
782 799
783# 800#
784# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 801# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -787,14 +804,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
787# CONFIG_MMC is not set 804# CONFIG_MMC is not set
788# CONFIG_MEMSTICK is not set 805# CONFIG_MEMSTICK is not set
789# CONFIG_NEW_LEDS is not set 806# CONFIG_NEW_LEDS is not set
807# CONFIG_ACCESSIBILITY is not set
790# CONFIG_INFINIBAND is not set 808# CONFIG_INFINIBAND is not set
791# CONFIG_EDAC is not set 809# CONFIG_EDAC is not set
792# CONFIG_RTC_CLASS is not set 810# CONFIG_RTC_CLASS is not set
793# CONFIG_DMADEVICES is not set 811# CONFIG_DMADEVICES is not set
794
795#
796# Userspace I/O
797#
798# CONFIG_UIO is not set 812# CONFIG_UIO is not set
799 813
800# 814#
@@ -814,7 +828,6 @@ CONFIG_FS_MBCACHE=y
814# CONFIG_JFS_FS is not set 828# CONFIG_JFS_FS is not set
815# CONFIG_FS_POSIX_ACL is not set 829# CONFIG_FS_POSIX_ACL is not set
816# CONFIG_XFS_FS is not set 830# CONFIG_XFS_FS is not set
817# CONFIG_GFS2_FS is not set
818# CONFIG_OCFS2_FS is not set 831# CONFIG_OCFS2_FS is not set
819CONFIG_DNOTIFY=y 832CONFIG_DNOTIFY=y
820CONFIG_INOTIFY=y 833CONFIG_INOTIFY=y
@@ -871,7 +884,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
871CONFIG_NFS_FS=y 884CONFIG_NFS_FS=y
872# CONFIG_NFS_V3 is not set 885# CONFIG_NFS_V3 is not set
873# CONFIG_NFS_V4 is not set 886# CONFIG_NFS_V4 is not set
874# CONFIG_NFS_DIRECTIO is not set
875# CONFIG_NFSD is not set 887# CONFIG_NFSD is not set
876CONFIG_ROOT_NFS=y 888CONFIG_ROOT_NFS=y
877CONFIG_LOCKD=y 889CONFIG_LOCKD=y
@@ -914,6 +926,7 @@ CONFIG_MSDOS_PARTITION=y
914# Library routines 926# Library routines
915# 927#
916CONFIG_BITREVERSE=y 928CONFIG_BITREVERSE=y
929# CONFIG_GENERIC_FIND_FIRST_BIT is not set
917# CONFIG_CRC_CCITT is not set 930# CONFIG_CRC_CCITT is not set
918# CONFIG_CRC16 is not set 931# CONFIG_CRC16 is not set
919# CONFIG_CRC_ITU_T is not set 932# CONFIG_CRC_ITU_T is not set
@@ -924,6 +937,7 @@ CONFIG_PLIST=y
924CONFIG_HAS_IOMEM=y 937CONFIG_HAS_IOMEM=y
925CONFIG_HAS_IOPORT=y 938CONFIG_HAS_IOPORT=y
926CONFIG_HAS_DMA=y 939CONFIG_HAS_DMA=y
940CONFIG_HAVE_LMB=y
927 941
928# 942#
929# Kernel hacking 943# Kernel hacking
@@ -931,6 +945,7 @@ CONFIG_HAS_DMA=y
931# CONFIG_PRINTK_TIME is not set 945# CONFIG_PRINTK_TIME is not set
932CONFIG_ENABLE_WARN_DEPRECATED=y 946CONFIG_ENABLE_WARN_DEPRECATED=y
933CONFIG_ENABLE_MUST_CHECK=y 947CONFIG_ENABLE_MUST_CHECK=y
948CONFIG_FRAME_WARN=1024
934# CONFIG_MAGIC_SYSRQ is not set 949# CONFIG_MAGIC_SYSRQ is not set
935# CONFIG_UNUSED_SYMBOLS is not set 950# CONFIG_UNUSED_SYMBOLS is not set
936# CONFIG_DEBUG_FS is not set 951# CONFIG_DEBUG_FS is not set
@@ -940,6 +955,7 @@ CONFIG_ENABLE_MUST_CHECK=y
940# CONFIG_SLUB_STATS is not set 955# CONFIG_SLUB_STATS is not set
941# CONFIG_DEBUG_BUGVERBOSE is not set 956# CONFIG_DEBUG_BUGVERBOSE is not set
942# CONFIG_SAMPLES is not set 957# CONFIG_SAMPLES is not set
958# CONFIG_IRQSTACKS is not set
943# CONFIG_BOOTX_TEXT is not set 959# CONFIG_BOOTX_TEXT is not set
944# CONFIG_PPC_EARLY_DEBUG is not set 960# CONFIG_PPC_EARLY_DEBUG is not set
945 961
@@ -950,48 +966,78 @@ CONFIG_ENABLE_MUST_CHECK=y
950# CONFIG_SECURITY is not set 966# CONFIG_SECURITY is not set
951# CONFIG_SECURITY_FILE_CAPABILITIES is not set 967# CONFIG_SECURITY_FILE_CAPABILITIES is not set
952CONFIG_CRYPTO=y 968CONFIG_CRYPTO=y
953# CONFIG_CRYPTO_SEQIV is not set 969
970#
971# Crypto core or helper
972#
954# CONFIG_CRYPTO_MANAGER is not set 973# CONFIG_CRYPTO_MANAGER is not set
974# CONFIG_CRYPTO_GF128MUL is not set
975# CONFIG_CRYPTO_NULL is not set
976# CONFIG_CRYPTO_CRYPTD is not set
977# CONFIG_CRYPTO_AUTHENC is not set
978
979#
980# Authenticated Encryption with Associated Data
981#
982# CONFIG_CRYPTO_CCM is not set
983# CONFIG_CRYPTO_GCM is not set
984# CONFIG_CRYPTO_SEQIV is not set
985
986#
987# Block modes
988#
989# CONFIG_CRYPTO_CBC is not set
990# CONFIG_CRYPTO_CTR is not set
991# CONFIG_CRYPTO_CTS is not set
992# CONFIG_CRYPTO_ECB is not set
993# CONFIG_CRYPTO_LRW is not set
994# CONFIG_CRYPTO_PCBC is not set
995# CONFIG_CRYPTO_XTS is not set
996
997#
998# Hash modes
999#
955# CONFIG_CRYPTO_HMAC is not set 1000# CONFIG_CRYPTO_HMAC is not set
956# CONFIG_CRYPTO_XCBC is not set 1001# CONFIG_CRYPTO_XCBC is not set
957# CONFIG_CRYPTO_NULL is not set 1002
1003#
1004# Digest
1005#
1006# CONFIG_CRYPTO_CRC32C is not set
958# CONFIG_CRYPTO_MD4 is not set 1007# CONFIG_CRYPTO_MD4 is not set
959# CONFIG_CRYPTO_MD5 is not set 1008# CONFIG_CRYPTO_MD5 is not set
1009# CONFIG_CRYPTO_MICHAEL_MIC is not set
960# CONFIG_CRYPTO_SHA1 is not set 1010# CONFIG_CRYPTO_SHA1 is not set
961# CONFIG_CRYPTO_SHA256 is not set 1011# CONFIG_CRYPTO_SHA256 is not set
962# CONFIG_CRYPTO_SHA512 is not set 1012# CONFIG_CRYPTO_SHA512 is not set
963# CONFIG_CRYPTO_WP512 is not set
964# CONFIG_CRYPTO_TGR192 is not set 1013# CONFIG_CRYPTO_TGR192 is not set
965# CONFIG_CRYPTO_GF128MUL is not set 1014# CONFIG_CRYPTO_WP512 is not set
966# CONFIG_CRYPTO_ECB is not set 1015
967# CONFIG_CRYPTO_CBC is not set 1016#
968# CONFIG_CRYPTO_PCBC is not set 1017# Ciphers
969# CONFIG_CRYPTO_LRW is not set 1018#
970# CONFIG_CRYPTO_XTS is not set
971# CONFIG_CRYPTO_CTR is not set
972# CONFIG_CRYPTO_GCM is not set
973# CONFIG_CRYPTO_CCM is not set
974# CONFIG_CRYPTO_CRYPTD is not set
975# CONFIG_CRYPTO_DES is not set
976# CONFIG_CRYPTO_FCRYPT is not set
977# CONFIG_CRYPTO_BLOWFISH is not set
978# CONFIG_CRYPTO_TWOFISH is not set
979# CONFIG_CRYPTO_SERPENT is not set
980# CONFIG_CRYPTO_AES is not set 1019# CONFIG_CRYPTO_AES is not set
1020# CONFIG_CRYPTO_ANUBIS is not set
1021# CONFIG_CRYPTO_ARC4 is not set
1022# CONFIG_CRYPTO_BLOWFISH is not set
1023# CONFIG_CRYPTO_CAMELLIA is not set
981# CONFIG_CRYPTO_CAST5 is not set 1024# CONFIG_CRYPTO_CAST5 is not set
982# CONFIG_CRYPTO_CAST6 is not set 1025# CONFIG_CRYPTO_CAST6 is not set
983# CONFIG_CRYPTO_TEA is not set 1026# CONFIG_CRYPTO_DES is not set
984# CONFIG_CRYPTO_ARC4 is not set 1027# CONFIG_CRYPTO_FCRYPT is not set
985# CONFIG_CRYPTO_KHAZAD is not set 1028# CONFIG_CRYPTO_KHAZAD is not set
986# CONFIG_CRYPTO_ANUBIS is not set
987# CONFIG_CRYPTO_SEED is not set
988# CONFIG_CRYPTO_SALSA20 is not set 1029# CONFIG_CRYPTO_SALSA20 is not set
1030# CONFIG_CRYPTO_SEED is not set
1031# CONFIG_CRYPTO_SERPENT is not set
1032# CONFIG_CRYPTO_TEA is not set
1033# CONFIG_CRYPTO_TWOFISH is not set
1034
1035#
1036# Compression
1037#
989# CONFIG_CRYPTO_DEFLATE is not set 1038# CONFIG_CRYPTO_DEFLATE is not set
990# CONFIG_CRYPTO_MICHAEL_MIC is not set
991# CONFIG_CRYPTO_CRC32C is not set
992# CONFIG_CRYPTO_CAMELLIA is not set
993# CONFIG_CRYPTO_AUTHENC is not set
994# CONFIG_CRYPTO_LZO is not set 1039# CONFIG_CRYPTO_LZO is not set
995CONFIG_CRYPTO_HW=y 1040CONFIG_CRYPTO_HW=y
996# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1041# CONFIG_CRYPTO_DEV_HIFN_795X is not set
997# CONFIG_PPC_CLOCK is not set 1042# CONFIG_PPC_CLOCK is not set
1043# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 0264c5757f78..30d7834b7db1 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:13 2008 4# Mon Jun 9 08:52:12 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
35CONFIG_GENERIC_HWEIGHT=y 37CONFIG_GENERIC_HWEIGHT=y
@@ -70,18 +72,16 @@ CONFIG_IKCONFIG=y
70CONFIG_IKCONFIG_PROC=y 72CONFIG_IKCONFIG_PROC=y
71CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y
74# CONFIG_FAIR_GROUP_SCHED is not set
75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 75CONFIG_SYSFS_DEPRECATED=y
78CONFIG_SYSFS_DEPRECATED_V2=y 76CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 77# CONFIG_RELAY is not set
80# CONFIG_NAMESPACES is not set 78# CONFIG_NAMESPACES is not set
81# CONFIG_BLK_DEV_INITRD is not set 79# CONFIG_BLK_DEV_INITRD is not set
80CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 81CONFIG_SYSCTL=y
83CONFIG_EMBEDDED=y 82CONFIG_EMBEDDED=y
84CONFIG_SYSCTL_SYSCALL=y 83CONFIG_SYSCTL_SYSCALL=y
84CONFIG_SYSCTL_SYSCALL_CHECK=y
85CONFIG_KALLSYMS=y 85CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y 86CONFIG_KALLSYMS_ALL=y
87# CONFIG_KALLSYMS_EXTRA_PASS is not set 87# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -108,6 +108,7 @@ CONFIG_SLUB=y
108CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y 109CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 110CONFIG_HAVE_KRETPROBES=y
111# CONFIG_HAVE_DMA_ATTRS is not set
111CONFIG_PROC_PAGE_MONITOR=y 112CONFIG_PROC_PAGE_MONITOR=y
112CONFIG_SLABINFO=y 113CONFIG_SLABINFO=y
113CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
@@ -196,11 +197,13 @@ CONFIG_FLATMEM=y
196CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
197# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
198# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 201CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_RESOURCES_64BIT is not set 202# CONFIG_RESOURCES_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=1 203CONFIG_ZONE_DMA_FLAG=1
202CONFIG_BOUNCE=y 204CONFIG_BOUNCE=y
203CONFIG_VIRT_TO_BUS=y 205CONFIG_VIRT_TO_BUS=y
206CONFIG_FORCE_MAX_ZONEORDER=11
204CONFIG_PROC_DEVICETREE=y 207CONFIG_PROC_DEVICETREE=y
205# CONFIG_CMDLINE_BOOL is not set 208# CONFIG_CMDLINE_BOOL is not set
206# CONFIG_PM is not set 209# CONFIG_PM is not set
@@ -224,6 +227,7 @@ CONFIG_PCI_LEGACY=y
224# CONFIG_PCI_DEBUG is not set 227# CONFIG_PCI_DEBUG is not set
225# CONFIG_PCCARD is not set 228# CONFIG_PCCARD is not set
226# CONFIG_HOTPLUG_PCI is not set 229# CONFIG_HOTPLUG_PCI is not set
230# CONFIG_HAS_RAPIDIO is not set
227 231
228# 232#
229# Advanced setup 233# Advanced setup
@@ -233,11 +237,11 @@ CONFIG_PCI_LEGACY=y
233# 237#
234# Default settings for advanced configuration options are used 238# Default settings for advanced configuration options are used
235# 239#
236CONFIG_HIGHMEM_START=0xfe000000
237CONFIG_LOWMEM_SIZE=0x30000000 240CONFIG_LOWMEM_SIZE=0x30000000
241CONFIG_PAGE_OFFSET=0xc0000000
238CONFIG_KERNEL_START=0xc0000000 242CONFIG_KERNEL_START=0xc0000000
243CONFIG_PHYSICAL_START=0x00000000
239CONFIG_TASK_SIZE=0xc0000000 244CONFIG_TASK_SIZE=0xc0000000
240CONFIG_BOOT_LOAD=0x00400000
241 245
242# 246#
243# Networking 247# Networking
@@ -292,6 +296,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y
292CONFIG_INET6_XFRM_MODE_TUNNEL=y 296CONFIG_INET6_XFRM_MODE_TUNNEL=y
293CONFIG_INET6_XFRM_MODE_BEET=y 297CONFIG_INET6_XFRM_MODE_BEET=y
294CONFIG_IPV6_SIT=y 298CONFIG_IPV6_SIT=y
299CONFIG_IPV6_NDISC_NODETYPE=y
295# CONFIG_IPV6_TUNNEL is not set 300# CONFIG_IPV6_TUNNEL is not set
296# CONFIG_NETWORK_SECMARK is not set 301# CONFIG_NETWORK_SECMARK is not set
297CONFIG_NETFILTER=y 302CONFIG_NETFILTER=y
@@ -536,7 +541,6 @@ CONFIG_NETDEV_1000=y
536# CONFIG_SIS190 is not set 541# CONFIG_SIS190 is not set
537# CONFIG_SKGE is not set 542# CONFIG_SKGE is not set
538# CONFIG_SKY2 is not set 543# CONFIG_SKY2 is not set
539# CONFIG_SK98LIN is not set
540# CONFIG_VIA_VELOCITY is not set 544# CONFIG_VIA_VELOCITY is not set
541# CONFIG_TIGON3 is not set 545# CONFIG_TIGON3 is not set
542# CONFIG_BNX2 is not set 546# CONFIG_BNX2 is not set
@@ -554,6 +558,7 @@ CONFIG_NETDEV_10000=y
554# CONFIG_MLX4_CORE is not set 558# CONFIG_MLX4_CORE is not set
555# CONFIG_TEHUTI is not set 559# CONFIG_TEHUTI is not set
556# CONFIG_BNX2X is not set 560# CONFIG_BNX2X is not set
561# CONFIG_SFC is not set
557# CONFIG_TR is not set 562# CONFIG_TR is not set
558 563
559# 564#
@@ -561,6 +566,7 @@ CONFIG_NETDEV_10000=y
561# 566#
562# CONFIG_WLAN_PRE80211 is not set 567# CONFIG_WLAN_PRE80211 is not set
563# CONFIG_WLAN_80211 is not set 568# CONFIG_WLAN_80211 is not set
569# CONFIG_IWLWIFI_LEDS is not set
564# CONFIG_WAN is not set 570# CONFIG_WAN is not set
565# CONFIG_FDDI is not set 571# CONFIG_FDDI is not set
566CONFIG_PPP=y 572CONFIG_PPP=y
@@ -634,6 +640,7 @@ CONFIG_SERIO_LIBPS2=y
634# Character devices 640# Character devices
635# 641#
636# CONFIG_VT is not set 642# CONFIG_VT is not set
643CONFIG_DEVKMEM=y
637# CONFIG_SERIAL_NONSTANDARD is not set 644# CONFIG_SERIAL_NONSTANDARD is not set
638 645
639# 646#
@@ -668,12 +675,7 @@ CONFIG_HW_RANDOM=y
668# CONFIG_RAW_DRIVER is not set 675# CONFIG_RAW_DRIVER is not set
669CONFIG_DEVPORT=y 676CONFIG_DEVPORT=y
670# CONFIG_I2C is not set 677# CONFIG_I2C is not set
671
672#
673# SPI support
674#
675# CONFIG_SPI is not set 678# CONFIG_SPI is not set
676# CONFIG_SPI_MASTER is not set
677# CONFIG_W1 is not set 679# CONFIG_W1 is not set
678# CONFIG_POWER_SUPPLY is not set 680# CONFIG_POWER_SUPPLY is not set
679# CONFIG_HWMON is not set 681# CONFIG_HWMON is not set
@@ -690,12 +692,22 @@ CONFIG_SSB_POSSIBLE=y
690# Multifunction device drivers 692# Multifunction device drivers
691# 693#
692# CONFIG_MFD_SM501 is not set 694# CONFIG_MFD_SM501 is not set
695# CONFIG_HTC_PASIC3 is not set
693 696
694# 697#
695# Multimedia devices 698# Multimedia devices
696# 699#
700
701#
702# Multimedia core support
703#
697# CONFIG_VIDEO_DEV is not set 704# CONFIG_VIDEO_DEV is not set
698# CONFIG_DVB_CORE is not set 705# CONFIG_DVB_CORE is not set
706# CONFIG_VIDEO_MEDIA is not set
707
708#
709# Multimedia drivers
710#
699CONFIG_DAB=y 711CONFIG_DAB=y
700 712
701# 713#
@@ -722,13 +734,10 @@ CONFIG_DAB=y
722# CONFIG_MMC is not set 734# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set 735# CONFIG_MEMSTICK is not set
724# CONFIG_NEW_LEDS is not set 736# CONFIG_NEW_LEDS is not set
737# CONFIG_ACCESSIBILITY is not set
725# CONFIG_INFINIBAND is not set 738# CONFIG_INFINIBAND is not set
726# CONFIG_RTC_CLASS is not set 739# CONFIG_RTC_CLASS is not set
727# CONFIG_DMADEVICES is not set 740# CONFIG_DMADEVICES is not set
728
729#
730# Userspace I/O
731#
732# CONFIG_UIO is not set 741# CONFIG_UIO is not set
733 742
734# 743#
@@ -798,7 +807,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
798CONFIG_NFS_FS=y 807CONFIG_NFS_FS=y
799CONFIG_NFS_V3=y 808CONFIG_NFS_V3=y
800CONFIG_NFS_V3_ACL=y 809CONFIG_NFS_V3_ACL=y
801# CONFIG_NFS_DIRECTIO is not set
802# CONFIG_NFSD is not set 810# CONFIG_NFSD is not set
803CONFIG_ROOT_NFS=y 811CONFIG_ROOT_NFS=y
804CONFIG_LOCKD=y 812CONFIG_LOCKD=y
@@ -877,6 +885,7 @@ CONFIG_NLS_UTF8=y
877# Library routines 885# Library routines
878# 886#
879CONFIG_BITREVERSE=y 887CONFIG_BITREVERSE=y
888# CONFIG_GENERIC_FIND_FIRST_BIT is not set
880CONFIG_CRC_CCITT=y 889CONFIG_CRC_CCITT=y
881# CONFIG_CRC16 is not set 890# CONFIG_CRC16 is not set
882# CONFIG_CRC_ITU_T is not set 891# CONFIG_CRC_ITU_T is not set
@@ -889,6 +898,7 @@ CONFIG_PLIST=y
889CONFIG_HAS_IOMEM=y 898CONFIG_HAS_IOMEM=y
890CONFIG_HAS_IOPORT=y 899CONFIG_HAS_IOPORT=y
891CONFIG_HAS_DMA=y 900CONFIG_HAS_DMA=y
901CONFIG_HAVE_LMB=y
892 902
893# 903#
894# Kernel hacking 904# Kernel hacking
@@ -896,6 +906,7 @@ CONFIG_HAS_DMA=y
896# CONFIG_PRINTK_TIME is not set 906# CONFIG_PRINTK_TIME is not set
897CONFIG_ENABLE_WARN_DEPRECATED=y 907CONFIG_ENABLE_WARN_DEPRECATED=y
898CONFIG_ENABLE_MUST_CHECK=y 908CONFIG_ENABLE_MUST_CHECK=y
909CONFIG_FRAME_WARN=1024
899CONFIG_MAGIC_SYSRQ=y 910CONFIG_MAGIC_SYSRQ=y
900# CONFIG_UNUSED_SYMBOLS is not set 911# CONFIG_UNUSED_SYMBOLS is not set
901# CONFIG_DEBUG_FS is not set 912# CONFIG_DEBUG_FS is not set
@@ -906,6 +917,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
906CONFIG_SCHED_DEBUG=y 917CONFIG_SCHED_DEBUG=y
907# CONFIG_SCHEDSTATS is not set 918# CONFIG_SCHEDSTATS is not set
908# CONFIG_TIMER_STATS is not set 919# CONFIG_TIMER_STATS is not set
920# CONFIG_DEBUG_OBJECTS is not set
909# CONFIG_SLUB_DEBUG_ON is not set 921# CONFIG_SLUB_DEBUG_ON is not set
910# CONFIG_SLUB_STATS is not set 922# CONFIG_SLUB_STATS is not set
911# CONFIG_DEBUG_RT_MUTEXES is not set 923# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -918,6 +930,7 @@ CONFIG_SCHED_DEBUG=y
918CONFIG_DEBUG_BUGVERBOSE=y 930CONFIG_DEBUG_BUGVERBOSE=y
919CONFIG_DEBUG_INFO=y 931CONFIG_DEBUG_INFO=y
920# CONFIG_DEBUG_VM is not set 932# CONFIG_DEBUG_VM is not set
933# CONFIG_DEBUG_WRITECOUNT is not set
921# CONFIG_DEBUG_LIST is not set 934# CONFIG_DEBUG_LIST is not set
922# CONFIG_DEBUG_SG is not set 935# CONFIG_DEBUG_SG is not set
923# CONFIG_BOOT_PRINTK_DELAY is not set 936# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -929,6 +942,7 @@ CONFIG_DEBUG_INFO=y
929# CONFIG_DEBUG_PAGEALLOC is not set 942# CONFIG_DEBUG_PAGEALLOC is not set
930# CONFIG_DEBUGGER is not set 943# CONFIG_DEBUGGER is not set
931# CONFIG_KGDB_CONSOLE is not set 944# CONFIG_KGDB_CONSOLE is not set
945# CONFIG_IRQSTACKS is not set
932CONFIG_BDI_SWITCH=y 946CONFIG_BDI_SWITCH=y
933# CONFIG_PPC_EARLY_DEBUG is not set 947# CONFIG_PPC_EARLY_DEBUG is not set
934 948
@@ -938,45 +952,75 @@ CONFIG_BDI_SWITCH=y
938# CONFIG_KEYS is not set 952# CONFIG_KEYS is not set
939# CONFIG_SECURITY is not set 953# CONFIG_SECURITY is not set
940CONFIG_CRYPTO=y 954CONFIG_CRYPTO=y
955
956#
957# Crypto core or helper
958#
941CONFIG_CRYPTO_ALGAPI=y 959CONFIG_CRYPTO_ALGAPI=y
942CONFIG_CRYPTO_BLKCIPHER=y 960CONFIG_CRYPTO_BLKCIPHER=y
943# CONFIG_CRYPTO_SEQIV is not set
944CONFIG_CRYPTO_MANAGER=y 961CONFIG_CRYPTO_MANAGER=y
945# CONFIG_CRYPTO_HMAC is not set
946# CONFIG_CRYPTO_NULL is not set 962# CONFIG_CRYPTO_NULL is not set
963# CONFIG_CRYPTO_CRYPTD is not set
964# CONFIG_CRYPTO_AUTHENC is not set
965
966#
967# Authenticated Encryption with Associated Data
968#
969# CONFIG_CRYPTO_CCM is not set
970# CONFIG_CRYPTO_GCM is not set
971# CONFIG_CRYPTO_SEQIV is not set
972
973#
974# Block modes
975#
976CONFIG_CRYPTO_CBC=y
977# CONFIG_CRYPTO_CTR is not set
978# CONFIG_CRYPTO_CTS is not set
979CONFIG_CRYPTO_ECB=y
980CONFIG_CRYPTO_PCBC=y
981
982#
983# Hash modes
984#
985# CONFIG_CRYPTO_HMAC is not set
986
987#
988# Digest
989#
990# CONFIG_CRYPTO_CRC32C is not set
947# CONFIG_CRYPTO_MD4 is not set 991# CONFIG_CRYPTO_MD4 is not set
948CONFIG_CRYPTO_MD5=y 992CONFIG_CRYPTO_MD5=y
993# CONFIG_CRYPTO_MICHAEL_MIC is not set
949# CONFIG_CRYPTO_SHA1 is not set 994# CONFIG_CRYPTO_SHA1 is not set
950# CONFIG_CRYPTO_SHA256 is not set 995# CONFIG_CRYPTO_SHA256 is not set
951# CONFIG_CRYPTO_SHA512 is not set 996# CONFIG_CRYPTO_SHA512 is not set
952# CONFIG_CRYPTO_WP512 is not set
953# CONFIG_CRYPTO_TGR192 is not set 997# CONFIG_CRYPTO_TGR192 is not set
954CONFIG_CRYPTO_ECB=y 998# CONFIG_CRYPTO_WP512 is not set
955CONFIG_CRYPTO_CBC=y 999
956CONFIG_CRYPTO_PCBC=y 1000#
957# CONFIG_CRYPTO_CTR is not set 1001# Ciphers
958# CONFIG_CRYPTO_GCM is not set 1002#
959# CONFIG_CRYPTO_CCM is not set
960# CONFIG_CRYPTO_CRYPTD is not set
961CONFIG_CRYPTO_DES=y
962# CONFIG_CRYPTO_FCRYPT is not set
963# CONFIG_CRYPTO_BLOWFISH is not set
964# CONFIG_CRYPTO_TWOFISH is not set
965# CONFIG_CRYPTO_SERPENT is not set
966# CONFIG_CRYPTO_AES is not set 1003# CONFIG_CRYPTO_AES is not set
1004# CONFIG_CRYPTO_ANUBIS is not set
1005# CONFIG_CRYPTO_ARC4 is not set
1006# CONFIG_CRYPTO_BLOWFISH is not set
1007# CONFIG_CRYPTO_CAMELLIA is not set
967# CONFIG_CRYPTO_CAST5 is not set 1008# CONFIG_CRYPTO_CAST5 is not set
968# CONFIG_CRYPTO_CAST6 is not set 1009# CONFIG_CRYPTO_CAST6 is not set
969# CONFIG_CRYPTO_TEA is not set 1010CONFIG_CRYPTO_DES=y
970# CONFIG_CRYPTO_ARC4 is not set 1011# CONFIG_CRYPTO_FCRYPT is not set
971# CONFIG_CRYPTO_KHAZAD is not set 1012# CONFIG_CRYPTO_KHAZAD is not set
972# CONFIG_CRYPTO_ANUBIS is not set
973# CONFIG_CRYPTO_SEED is not set 1013# CONFIG_CRYPTO_SEED is not set
1014# CONFIG_CRYPTO_SERPENT is not set
1015# CONFIG_CRYPTO_TEA is not set
1016# CONFIG_CRYPTO_TWOFISH is not set
1017
1018#
1019# Compression
1020#
974# CONFIG_CRYPTO_DEFLATE is not set 1021# CONFIG_CRYPTO_DEFLATE is not set
975# CONFIG_CRYPTO_MICHAEL_MIC is not set
976# CONFIG_CRYPTO_CRC32C is not set
977# CONFIG_CRYPTO_CAMELLIA is not set
978# CONFIG_CRYPTO_AUTHENC is not set
979# CONFIG_CRYPTO_LZO is not set 1022# CONFIG_CRYPTO_LZO is not set
980# CONFIG_CRYPTO_HW is not set 1023# CONFIG_CRYPTO_HW is not set
981# CONFIG_PPC_CLOCK is not set 1024# CONFIG_PPC_CLOCK is not set
982CONFIG_PPC_LIB_RHEAP=y 1025CONFIG_PPC_LIB_RHEAP=y
1026# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 9e0dd8201691..4293c8be06e1 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_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.25-rc9 3# Linux kernel version: 2.6.26-rc5
4# Tue Apr 15 18:07:36 2008 4# Mon Jun 9 08:52:14 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -86,6 +88,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
91CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
@@ -111,12 +114,14 @@ CONFIG_HAVE_OPROFILE=y
111# CONFIG_KPROBES is not set 114# CONFIG_KPROBES is not set
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117# CONFIG_HAVE_DMA_ATTRS is not set
114CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
115CONFIG_SLABINFO=y 119CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 120CONFIG_RT_MUTEXES=y
117# CONFIG_TINY_SHMEM is not set 121# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=0 122CONFIG_BASE_SMALL=0
119CONFIG_MODULES=y 123CONFIG_MODULES=y
124# CONFIG_MODULE_FORCE_LOAD is not set
120CONFIG_MODULE_UNLOAD=y 125CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 126# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
@@ -201,7 +206,6 @@ CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
202CONFIG_BINFMT_ELF=y 207CONFIG_BINFMT_ELF=y
203# CONFIG_BINFMT_MISC is not set 208# CONFIG_BINFMT_MISC is not set
204CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_MATH_EMULATION=y 209CONFIG_MATH_EMULATION=y
206# CONFIG_IOMMU_HELPER is not set 210# CONFIG_IOMMU_HELPER is not set
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -217,11 +221,13 @@ CONFIG_FLATMEM=y
217CONFIG_FLAT_NODE_MEM_MAP=y 221CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_STATIC is not set 222# CONFIG_SPARSEMEM_STATIC is not set
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
221# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
224CONFIG_VIRT_TO_BUS=y 229CONFIG_VIRT_TO_BUS=y
230CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
227# CONFIG_PM is not set 233# CONFIG_PM is not set
@@ -240,6 +246,7 @@ CONFIG_FSL_SOC=y
240# CONFIG_PCI_SYSCALL is not set 246# CONFIG_PCI_SYSCALL is not set
241# CONFIG_ARCH_SUPPORTS_MSI is not set 247# CONFIG_ARCH_SUPPORTS_MSI is not set
242# CONFIG_PCCARD is not set 248# CONFIG_PCCARD is not set
249# CONFIG_HAS_RAPIDIO is not set
243 250
244# 251#
245# Advanced setup 252# Advanced setup
@@ -249,11 +256,11 @@ CONFIG_FSL_SOC=y
249# 256#
250# Default settings for advanced configuration options are used 257# Default settings for advanced configuration options are used
251# 258#
252CONFIG_HIGHMEM_START=0xfe000000
253CONFIG_LOWMEM_SIZE=0x30000000 259CONFIG_LOWMEM_SIZE=0x30000000
260CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 261CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000
255CONFIG_TASK_SIZE=0xc0000000 263CONFIG_TASK_SIZE=0xc0000000
256CONFIG_BOOT_LOAD=0x00800000
257 264
258# 265#
259# Networking 266# Networking
@@ -301,8 +308,6 @@ CONFIG_TCP_CONG_CUBIC=y
301CONFIG_DEFAULT_TCP_CONG="cubic" 308CONFIG_DEFAULT_TCP_CONG="cubic"
302# CONFIG_TCP_MD5SIG is not set 309# CONFIG_TCP_MD5SIG is not set
303# CONFIG_IPV6 is not set 310# CONFIG_IPV6 is not set
304# CONFIG_INET6_XFRM_TUNNEL is not set
305# CONFIG_INET6_TUNNEL is not set
306# CONFIG_NETWORK_SECMARK is not set 311# CONFIG_NETWORK_SECMARK is not set
307# CONFIG_NETFILTER is not set 312# CONFIG_NETFILTER is not set
308# CONFIG_IP_DCCP is not set 313# CONFIG_IP_DCCP is not set
@@ -361,6 +366,7 @@ CONFIG_MTD_PARTITIONS=y
361# CONFIG_MTD_REDBOOT_PARTS is not set 366# CONFIG_MTD_REDBOOT_PARTS is not set
362# CONFIG_MTD_CMDLINE_PARTS is not set 367# CONFIG_MTD_CMDLINE_PARTS is not set
363CONFIG_MTD_OF_PARTS=y 368CONFIG_MTD_OF_PARTS=y
369# CONFIG_MTD_AR7_PARTS is not set
364 370
365# 371#
366# User Modules And Translation Layers 372# User Modules And Translation Layers
@@ -439,6 +445,7 @@ CONFIG_MTD_NAND_FSL_ELBC=y
439# 445#
440# CONFIG_MTD_UBI is not set 446# CONFIG_MTD_UBI is not set
441CONFIG_OF_DEVICE=y 447CONFIG_OF_DEVICE=y
448CONFIG_OF_I2C=y
442# CONFIG_PARPORT is not set 449# CONFIG_PARPORT is not set
443CONFIG_BLK_DEV=y 450CONFIG_BLK_DEV=y
444# CONFIG_BLK_DEV_FD is not set 451# CONFIG_BLK_DEV_FD is not set
@@ -501,8 +508,10 @@ CONFIG_SCSI_LOWLEVEL=y
501# CONFIG_SCSI_DEBUG is not set 508# CONFIG_SCSI_DEBUG is not set
502CONFIG_ATA=y 509CONFIG_ATA=y
503# CONFIG_ATA_NONSTANDARD is not set 510# CONFIG_ATA_NONSTANDARD is not set
504# CONFIG_SATA_MV is not set 511CONFIG_SATA_PMP=y
505CONFIG_SATA_FSL=y 512CONFIG_SATA_FSL=y
513CONFIG_ATA_SFF=y
514# CONFIG_SATA_MV is not set
506# CONFIG_PATA_PLATFORM is not set 515# CONFIG_PATA_PLATFORM is not set
507# CONFIG_MD is not set 516# CONFIG_MD is not set
508# CONFIG_MACINTOSH_DRIVERS is not set 517# CONFIG_MACINTOSH_DRIVERS is not set
@@ -554,6 +563,7 @@ CONFIG_NETDEV_10000=y
554# 563#
555# CONFIG_WLAN_PRE80211 is not set 564# CONFIG_WLAN_PRE80211 is not set
556# CONFIG_WLAN_80211 is not set 565# CONFIG_WLAN_80211 is not set
566# CONFIG_IWLWIFI_LEDS is not set
557 567
558# 568#
559# USB Network Adapters 569# USB Network Adapters
@@ -607,6 +617,7 @@ CONFIG_INPUT=y
607# Character devices 617# Character devices
608# 618#
609# CONFIG_VT is not set 619# CONFIG_VT is not set
620CONFIG_DEVKMEM=y
610# CONFIG_SERIAL_NONSTANDARD is not set 621# CONFIG_SERIAL_NONSTANDARD is not set
611 622
612# 623#
@@ -642,13 +653,6 @@ CONFIG_I2C_BOARDINFO=y
642CONFIG_I2C_CHARDEV=y 653CONFIG_I2C_CHARDEV=y
643 654
644# 655#
645# I2C Algorithms
646#
647# CONFIG_I2C_ALGOBIT is not set
648# CONFIG_I2C_ALGOPCF is not set
649# CONFIG_I2C_ALGOPCA is not set
650
651#
652# I2C Hardware Bus support 656# I2C Hardware Bus support
653# 657#
654CONFIG_I2C_MPC=y 658CONFIG_I2C_MPC=y
@@ -658,6 +662,7 @@ CONFIG_I2C_MPC=y
658# CONFIG_I2C_TAOS_EVM is not set 662# CONFIG_I2C_TAOS_EVM is not set
659# CONFIG_I2C_STUB is not set 663# CONFIG_I2C_STUB is not set
660# CONFIG_I2C_TINY_USB is not set 664# CONFIG_I2C_TINY_USB is not set
665# CONFIG_I2C_PCA_PLATFORM is not set
661 666
662# 667#
663# Miscellaneous I2C Chip support 668# Miscellaneous I2C Chip support
@@ -667,19 +672,13 @@ CONFIG_I2C_MPC=y
667# CONFIG_SENSORS_PCF8574 is not set 672# CONFIG_SENSORS_PCF8574 is not set
668# CONFIG_PCF8575 is not set 673# CONFIG_PCF8575 is not set
669# CONFIG_SENSORS_PCF8591 is not set 674# CONFIG_SENSORS_PCF8591 is not set
670# CONFIG_TPS65010 is not set
671# CONFIG_SENSORS_MAX6875 is not set 675# CONFIG_SENSORS_MAX6875 is not set
672# CONFIG_SENSORS_TSL2550 is not set 676# CONFIG_SENSORS_TSL2550 is not set
673# CONFIG_I2C_DEBUG_CORE is not set 677# CONFIG_I2C_DEBUG_CORE is not set
674# CONFIG_I2C_DEBUG_ALGO is not set 678# CONFIG_I2C_DEBUG_ALGO is not set
675# CONFIG_I2C_DEBUG_BUS is not set 679# CONFIG_I2C_DEBUG_BUS is not set
676# CONFIG_I2C_DEBUG_CHIP is not set 680# CONFIG_I2C_DEBUG_CHIP is not set
677
678#
679# SPI support
680#
681# CONFIG_SPI is not set 681# CONFIG_SPI is not set
682# CONFIG_SPI_MASTER is not set
683# CONFIG_W1 is not set 682# CONFIG_W1 is not set
684# CONFIG_POWER_SUPPLY is not set 683# CONFIG_POWER_SUPPLY is not set
685CONFIG_HWMON=y 684CONFIG_HWMON=y
@@ -757,12 +756,22 @@ CONFIG_SSB_POSSIBLE=y
757# Multifunction device drivers 756# Multifunction device drivers
758# 757#
759# CONFIG_MFD_SM501 is not set 758# CONFIG_MFD_SM501 is not set
759# CONFIG_HTC_PASIC3 is not set
760 760
761# 761#
762# Multimedia devices 762# Multimedia devices
763# 763#
764
765#
766# Multimedia core support
767#
764# CONFIG_VIDEO_DEV is not set 768# CONFIG_VIDEO_DEV is not set
765# CONFIG_DVB_CORE is not set 769# CONFIG_DVB_CORE is not set
770# CONFIG_VIDEO_MEDIA is not set
771
772#
773# Multimedia drivers
774#
766CONFIG_DAB=y 775CONFIG_DAB=y
767# CONFIG_USB_DABUSB is not set 776# CONFIG_USB_DABUSB is not set
768 777
@@ -810,16 +819,20 @@ CONFIG_USB=y
810CONFIG_USB_DEVICE_CLASS=y 819CONFIG_USB_DEVICE_CLASS=y
811# CONFIG_USB_DYNAMIC_MINORS is not set 820# CONFIG_USB_DYNAMIC_MINORS is not set
812# CONFIG_USB_OTG is not set 821# CONFIG_USB_OTG is not set
822# CONFIG_USB_OTG_WHITELIST is not set
823# CONFIG_USB_OTG_BLACKLIST_HUB is not set
813 824
814# 825#
815# USB Host Controller Drivers 826# USB Host Controller Drivers
816# 827#
828# CONFIG_USB_C67X00_HCD is not set
817CONFIG_USB_EHCI_HCD=y 829CONFIG_USB_EHCI_HCD=y
818CONFIG_USB_EHCI_ROOT_HUB_TT=y 830CONFIG_USB_EHCI_ROOT_HUB_TT=y
819# CONFIG_USB_EHCI_TT_NEWSCHED is not set 831# CONFIG_USB_EHCI_TT_NEWSCHED is not set
820CONFIG_USB_EHCI_FSL=y 832CONFIG_USB_EHCI_FSL=y
821CONFIG_USB_EHCI_HCD_PPC_OF=y 833CONFIG_USB_EHCI_HCD_PPC_OF=y
822# CONFIG_USB_ISP116X_HCD is not set 834# CONFIG_USB_ISP116X_HCD is not set
835# CONFIG_USB_ISP1760_HCD is not set
823# CONFIG_USB_SL811_HCD is not set 836# CONFIG_USB_SL811_HCD is not set
824# CONFIG_USB_R8A66597_HCD is not set 837# CONFIG_USB_R8A66597_HCD is not set
825 838
@@ -828,6 +841,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
828# 841#
829# CONFIG_USB_ACM is not set 842# CONFIG_USB_ACM is not set
830# CONFIG_USB_PRINTER is not set 843# CONFIG_USB_PRINTER is not set
844# CONFIG_USB_WDM is not set
831 845
832# 846#
833# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 847# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -873,17 +887,15 @@ CONFIG_USB_MON=y
873# CONFIG_USB_LD is not set 887# CONFIG_USB_LD is not set
874# CONFIG_USB_TRANCEVIBRATOR is not set 888# CONFIG_USB_TRANCEVIBRATOR is not set
875# CONFIG_USB_IOWARRIOR is not set 889# CONFIG_USB_IOWARRIOR is not set
890# CONFIG_USB_ISIGHTFW is not set
876# CONFIG_USB_GADGET is not set 891# CONFIG_USB_GADGET is not set
877# CONFIG_MMC is not set 892# CONFIG_MMC is not set
878# CONFIG_MEMSTICK is not set 893# CONFIG_MEMSTICK is not set
879# CONFIG_NEW_LEDS is not set 894# CONFIG_NEW_LEDS is not set
895# CONFIG_ACCESSIBILITY is not set
880# CONFIG_EDAC is not set 896# CONFIG_EDAC is not set
881# CONFIG_RTC_CLASS is not set 897# CONFIG_RTC_CLASS is not set
882# CONFIG_DMADEVICES is not set 898# CONFIG_DMADEVICES is not set
883
884#
885# Userspace I/O
886#
887# CONFIG_UIO is not set 899# CONFIG_UIO is not set
888 900
889# 901#
@@ -903,7 +915,6 @@ CONFIG_FS_MBCACHE=y
903# CONFIG_JFS_FS is not set 915# CONFIG_JFS_FS is not set
904# CONFIG_FS_POSIX_ACL is not set 916# CONFIG_FS_POSIX_ACL is not set
905# CONFIG_XFS_FS is not set 917# CONFIG_XFS_FS is not set
906# CONFIG_GFS2_FS is not set
907# CONFIG_OCFS2_FS is not set 918# CONFIG_OCFS2_FS is not set
908CONFIG_DNOTIFY=y 919CONFIG_DNOTIFY=y
909CONFIG_INOTIFY=y 920CONFIG_INOTIFY=y
@@ -962,7 +973,6 @@ CONFIG_NFS_FS=y
962CONFIG_NFS_V3=y 973CONFIG_NFS_V3=y
963# CONFIG_NFS_V3_ACL is not set 974# CONFIG_NFS_V3_ACL is not set
964CONFIG_NFS_V4=y 975CONFIG_NFS_V4=y
965# CONFIG_NFS_DIRECTIO is not set
966# CONFIG_NFSD is not set 976# CONFIG_NFSD is not set
967CONFIG_ROOT_NFS=y 977CONFIG_ROOT_NFS=y
968CONFIG_LOCKD=y 978CONFIG_LOCKD=y
@@ -1009,6 +1019,7 @@ CONFIG_UCC=y
1009# Library routines 1019# Library routines
1010# 1020#
1011CONFIG_BITREVERSE=y 1021CONFIG_BITREVERSE=y
1022# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1012# CONFIG_CRC_CCITT is not set 1023# CONFIG_CRC_CCITT is not set
1013# CONFIG_CRC16 is not set 1024# CONFIG_CRC16 is not set
1014# CONFIG_CRC_ITU_T is not set 1025# CONFIG_CRC_ITU_T is not set
@@ -1027,6 +1038,7 @@ CONFIG_HAVE_LMB=y
1027# CONFIG_PRINTK_TIME is not set 1038# CONFIG_PRINTK_TIME is not set
1028CONFIG_ENABLE_WARN_DEPRECATED=y 1039CONFIG_ENABLE_WARN_DEPRECATED=y
1029CONFIG_ENABLE_MUST_CHECK=y 1040CONFIG_ENABLE_MUST_CHECK=y
1041CONFIG_FRAME_WARN=1024
1030# CONFIG_MAGIC_SYSRQ is not set 1042# CONFIG_MAGIC_SYSRQ is not set
1031# CONFIG_UNUSED_SYMBOLS is not set 1043# CONFIG_UNUSED_SYMBOLS is not set
1032# CONFIG_DEBUG_FS is not set 1044# CONFIG_DEBUG_FS is not set
@@ -1034,6 +1046,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1034# CONFIG_DEBUG_KERNEL is not set 1046# CONFIG_DEBUG_KERNEL is not set
1035# CONFIG_DEBUG_BUGVERBOSE is not set 1047# CONFIG_DEBUG_BUGVERBOSE is not set
1036# CONFIG_SAMPLES is not set 1048# CONFIG_SAMPLES is not set
1049# CONFIG_IRQSTACKS is not set
1037# CONFIG_PPC_EARLY_DEBUG is not set 1050# CONFIG_PPC_EARLY_DEBUG is not set
1038 1051
1039# 1052#
@@ -1043,51 +1056,81 @@ CONFIG_ENABLE_MUST_CHECK=y
1043# CONFIG_SECURITY is not set 1056# CONFIG_SECURITY is not set
1044# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1057# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1045CONFIG_CRYPTO=y 1058CONFIG_CRYPTO=y
1059
1060#
1061# Crypto core or helper
1062#
1046CONFIG_CRYPTO_ALGAPI=y 1063CONFIG_CRYPTO_ALGAPI=y
1047CONFIG_CRYPTO_BLKCIPHER=y 1064CONFIG_CRYPTO_BLKCIPHER=y
1048# CONFIG_CRYPTO_SEQIV is not set
1049CONFIG_CRYPTO_MANAGER=y 1065CONFIG_CRYPTO_MANAGER=y
1066# CONFIG_CRYPTO_GF128MUL is not set
1067# CONFIG_CRYPTO_NULL is not set
1068# CONFIG_CRYPTO_CRYPTD is not set
1069# CONFIG_CRYPTO_AUTHENC is not set
1070# CONFIG_CRYPTO_TEST is not set
1071
1072#
1073# Authenticated Encryption with Associated Data
1074#
1075# CONFIG_CRYPTO_CCM is not set
1076# CONFIG_CRYPTO_GCM is not set
1077# CONFIG_CRYPTO_SEQIV is not set
1078
1079#
1080# Block modes
1081#
1082CONFIG_CRYPTO_CBC=y
1083# CONFIG_CRYPTO_CTR is not set
1084# CONFIG_CRYPTO_CTS is not set
1085CONFIG_CRYPTO_ECB=m
1086# CONFIG_CRYPTO_LRW is not set
1087CONFIG_CRYPTO_PCBC=m
1088# CONFIG_CRYPTO_XTS is not set
1089
1090#
1091# Hash modes
1092#
1050# CONFIG_CRYPTO_HMAC is not set 1093# CONFIG_CRYPTO_HMAC is not set
1051# CONFIG_CRYPTO_XCBC is not set 1094# CONFIG_CRYPTO_XCBC is not set
1052# CONFIG_CRYPTO_NULL is not set 1095
1096#
1097# Digest
1098#
1099# CONFIG_CRYPTO_CRC32C is not set
1053# CONFIG_CRYPTO_MD4 is not set 1100# CONFIG_CRYPTO_MD4 is not set
1054CONFIG_CRYPTO_MD5=y 1101CONFIG_CRYPTO_MD5=y
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set
1055# CONFIG_CRYPTO_SHA1 is not set 1103# CONFIG_CRYPTO_SHA1 is not set
1056# CONFIG_CRYPTO_SHA256 is not set 1104# CONFIG_CRYPTO_SHA256 is not set
1057# CONFIG_CRYPTO_SHA512 is not set 1105# CONFIG_CRYPTO_SHA512 is not set
1058# CONFIG_CRYPTO_WP512 is not set
1059# CONFIG_CRYPTO_TGR192 is not set 1106# CONFIG_CRYPTO_TGR192 is not set
1060# CONFIG_CRYPTO_GF128MUL is not set 1107# CONFIG_CRYPTO_WP512 is not set
1061CONFIG_CRYPTO_ECB=m 1108
1062CONFIG_CRYPTO_CBC=y 1109#
1063CONFIG_CRYPTO_PCBC=m 1110# Ciphers
1064# CONFIG_CRYPTO_LRW is not set 1111#
1065# CONFIG_CRYPTO_XTS is not set
1066# CONFIG_CRYPTO_CTR is not set
1067# CONFIG_CRYPTO_GCM is not set
1068# CONFIG_CRYPTO_CCM is not set
1069# CONFIG_CRYPTO_CRYPTD is not set
1070CONFIG_CRYPTO_DES=y
1071# CONFIG_CRYPTO_FCRYPT is not set
1072# CONFIG_CRYPTO_BLOWFISH is not set
1073# CONFIG_CRYPTO_TWOFISH is not set
1074# CONFIG_CRYPTO_SERPENT is not set
1075# CONFIG_CRYPTO_AES is not set 1112# CONFIG_CRYPTO_AES is not set
1113# CONFIG_CRYPTO_ANUBIS is not set
1114# CONFIG_CRYPTO_ARC4 is not set
1115# CONFIG_CRYPTO_BLOWFISH is not set
1116# CONFIG_CRYPTO_CAMELLIA is not set
1076# CONFIG_CRYPTO_CAST5 is not set 1117# CONFIG_CRYPTO_CAST5 is not set
1077# CONFIG_CRYPTO_CAST6 is not set 1118# CONFIG_CRYPTO_CAST6 is not set
1078# CONFIG_CRYPTO_TEA is not set 1119CONFIG_CRYPTO_DES=y
1079# CONFIG_CRYPTO_ARC4 is not set 1120# CONFIG_CRYPTO_FCRYPT is not set
1080# CONFIG_CRYPTO_KHAZAD is not set 1121# CONFIG_CRYPTO_KHAZAD is not set
1081# CONFIG_CRYPTO_ANUBIS is not set
1082# CONFIG_CRYPTO_SEED is not set
1083# CONFIG_CRYPTO_SALSA20 is not set 1122# CONFIG_CRYPTO_SALSA20 is not set
1123# CONFIG_CRYPTO_SEED is not set
1124# CONFIG_CRYPTO_SERPENT is not set
1125# CONFIG_CRYPTO_TEA is not set
1126# CONFIG_CRYPTO_TWOFISH is not set
1127
1128#
1129# Compression
1130#
1084# CONFIG_CRYPTO_DEFLATE is not set 1131# CONFIG_CRYPTO_DEFLATE is not set
1085# CONFIG_CRYPTO_MICHAEL_MIC is not set
1086# CONFIG_CRYPTO_CRC32C is not set
1087# CONFIG_CRYPTO_CAMELLIA is not set
1088# CONFIG_CRYPTO_TEST is not set
1089# CONFIG_CRYPTO_AUTHENC is not set
1090# CONFIG_CRYPTO_LZO is not set 1132# CONFIG_CRYPTO_LZO is not set
1091CONFIG_CRYPTO_HW=y 1133CONFIG_CRYPTO_HW=y
1092# CONFIG_PPC_CLOCK is not set 1134# CONFIG_PPC_CLOCK is not set
1093CONFIG_PPC_LIB_RHEAP=y 1135CONFIG_PPC_LIB_RHEAP=y
1136# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index 2075722911bb..3efab71a603b 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:08 2008 4# Mon Jun 9 09:03:46 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
94CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
95CONFIG_KALLSYMS_EXTRA_PASS=y 98CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123# CONFIG_HAVE_DMA_ATTRS is not set
120CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
125CONFIG_MODULES=y 129CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set
126CONFIG_MODULE_UNLOAD=y 131CONFIG_MODULE_UNLOAD=y
127CONFIG_MODULE_FORCE_UNLOAD=y 132CONFIG_MODULE_FORCE_UNLOAD=y
128CONFIG_MODVERSIONS=y 133CONFIG_MODVERSIONS=y
@@ -162,6 +167,7 @@ CONFIG_MPC8560_ADS=y
162CONFIG_MPC85xx_CDS=y 167CONFIG_MPC85xx_CDS=y
163CONFIG_MPC85xx_MDS=y 168CONFIG_MPC85xx_MDS=y
164CONFIG_MPC85xx_DS=y 169CONFIG_MPC85xx_DS=y
170CONFIG_KSI8560=y
165# CONFIG_STX_GP3 is not set 171# CONFIG_STX_GP3 is not set
166CONFIG_TQM8540=y 172CONFIG_TQM8540=y
167CONFIG_TQM8541=y 173CONFIG_TQM8541=y
@@ -221,11 +227,13 @@ CONFIG_FLATMEM=y
221CONFIG_FLAT_NODE_MEM_MAP=y 227CONFIG_FLAT_NODE_MEM_MAP=y
222# CONFIG_SPARSEMEM_STATIC is not set 228# CONFIG_SPARSEMEM_STATIC is not set
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 229# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
230CONFIG_PAGEFLAGS_EXTENDED=y
224CONFIG_SPLIT_PTLOCK_CPUS=4 231CONFIG_SPLIT_PTLOCK_CPUS=4
225# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
227CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
228CONFIG_VIRT_TO_BUS=y 235CONFIG_VIRT_TO_BUS=y
236CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
231# CONFIG_PM is not set 239# CONFIG_PM is not set
@@ -250,6 +258,7 @@ CONFIG_PCI_LEGACY=y
250# CONFIG_PCI_DEBUG is not set 258# CONFIG_PCI_DEBUG is not set
251# CONFIG_PCCARD is not set 259# CONFIG_PCCARD is not set
252# CONFIG_HOTPLUG_PCI is not set 260# CONFIG_HOTPLUG_PCI is not set
261# CONFIG_HAS_RAPIDIO is not set
253 262
254# 263#
255# Advanced setup 264# Advanced setup
@@ -259,11 +268,12 @@ CONFIG_PCI_LEGACY=y
259# 268#
260# Default settings for advanced configuration options are used 269# Default settings for advanced configuration options are used
261# 270#
262CONFIG_HIGHMEM_START=0xfe000000
263CONFIG_LOWMEM_SIZE=0x30000000 271CONFIG_LOWMEM_SIZE=0x30000000
272CONFIG_PAGE_OFFSET=0xc0000000
264CONFIG_KERNEL_START=0xc0000000 273CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000
275CONFIG_PHYSICAL_ALIGN=0x10000000
265CONFIG_TASK_SIZE=0xc0000000 276CONFIG_TASK_SIZE=0xc0000000
266CONFIG_BOOT_LOAD=0x00800000
267 277
268# 278#
269# Networking 279# Networking
@@ -334,8 +344,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
334CONFIG_INET6_XFRM_MODE_BEET=y 344CONFIG_INET6_XFRM_MODE_BEET=y
335# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 345# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
336CONFIG_IPV6_SIT=y 346CONFIG_IPV6_SIT=y
347CONFIG_IPV6_NDISC_NODETYPE=y
337# CONFIG_IPV6_TUNNEL is not set 348# CONFIG_IPV6_TUNNEL is not set
338# CONFIG_IPV6_MULTIPLE_TABLES is not set 349# CONFIG_IPV6_MULTIPLE_TABLES is not set
350# CONFIG_IPV6_MROUTE is not set
339# CONFIG_NETWORK_SECMARK is not set 351# CONFIG_NETWORK_SECMARK is not set
340# CONFIG_NETFILTER is not set 352# CONFIG_NETFILTER is not set
341# CONFIG_IP_DCCP is not set 353# CONFIG_IP_DCCP is not set
@@ -397,6 +409,7 @@ CONFIG_FW_LOADER=y
397# CONFIG_CONNECTOR is not set 409# CONFIG_CONNECTOR is not set
398# CONFIG_MTD is not set 410# CONFIG_MTD is not set
399CONFIG_OF_DEVICE=y 411CONFIG_OF_DEVICE=y
412CONFIG_OF_I2C=y
400# CONFIG_PARPORT is not set 413# CONFIG_PARPORT is not set
401CONFIG_BLK_DEV=y 414CONFIG_BLK_DEV=y
402# CONFIG_BLK_DEV_FD is not set 415# CONFIG_BLK_DEV_FD is not set
@@ -503,7 +516,11 @@ CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_SCSI_SRP is not set 516# CONFIG_SCSI_SRP is not set
504CONFIG_ATA=y 517CONFIG_ATA=y
505# CONFIG_ATA_NONSTANDARD is not set 518# CONFIG_ATA_NONSTANDARD is not set
519CONFIG_SATA_PMP=y
506CONFIG_SATA_AHCI=y 520CONFIG_SATA_AHCI=y
521# CONFIG_SATA_SIL24 is not set
522CONFIG_SATA_FSL=y
523CONFIG_ATA_SFF=y
507# CONFIG_SATA_SVW is not set 524# CONFIG_SATA_SVW is not set
508# CONFIG_ATA_PIIX is not set 525# CONFIG_ATA_PIIX is not set
509# CONFIG_SATA_MV is not set 526# CONFIG_SATA_MV is not set
@@ -513,13 +530,11 @@ CONFIG_SATA_AHCI=y
513# CONFIG_SATA_PROMISE is not set 530# CONFIG_SATA_PROMISE is not set
514# CONFIG_SATA_SX4 is not set 531# CONFIG_SATA_SX4 is not set
515# CONFIG_SATA_SIL is not set 532# CONFIG_SATA_SIL is not set
516# CONFIG_SATA_SIL24 is not set
517# CONFIG_SATA_SIS is not set 533# CONFIG_SATA_SIS is not set
518# CONFIG_SATA_ULI is not set 534# CONFIG_SATA_ULI is not set
519# CONFIG_SATA_VIA is not set 535# CONFIG_SATA_VIA is not set
520# CONFIG_SATA_VITESSE is not set 536# CONFIG_SATA_VITESSE is not set
521# CONFIG_SATA_INIC162X is not set 537# CONFIG_SATA_INIC162X is not set
522# CONFIG_SATA_FSL is not set
523CONFIG_PATA_ALI=y 538CONFIG_PATA_ALI=y
524# CONFIG_PATA_AMD is not set 539# CONFIG_PATA_AMD is not set
525# CONFIG_PATA_ARTOP is not set 540# CONFIG_PATA_ARTOP is not set
@@ -559,6 +574,7 @@ CONFIG_PATA_ALI=y
559# CONFIG_PATA_VIA is not set 574# CONFIG_PATA_VIA is not set
560# CONFIG_PATA_WINBOND is not set 575# CONFIG_PATA_WINBOND is not set
561# CONFIG_PATA_PLATFORM is not set 576# CONFIG_PATA_PLATFORM is not set
577# CONFIG_PATA_SCH is not set
562# CONFIG_MD is not set 578# CONFIG_MD is not set
563# CONFIG_FUSION is not set 579# CONFIG_FUSION is not set
564 580
@@ -625,7 +641,6 @@ CONFIG_NETDEV_1000=y
625# CONFIG_SIS190 is not set 641# CONFIG_SIS190 is not set
626# CONFIG_SKGE is not set 642# CONFIG_SKGE is not set
627# CONFIG_SKY2 is not set 643# CONFIG_SKY2 is not set
628# CONFIG_SK98LIN is not set
629# CONFIG_VIA_VELOCITY is not set 644# CONFIG_VIA_VELOCITY is not set
630# CONFIG_TIGON3 is not set 645# CONFIG_TIGON3 is not set
631# CONFIG_BNX2 is not set 646# CONFIG_BNX2 is not set
@@ -646,6 +661,7 @@ CONFIG_NETDEV_10000=y
646# CONFIG_MLX4_CORE is not set 661# CONFIG_MLX4_CORE is not set
647# CONFIG_TEHUTI is not set 662# CONFIG_TEHUTI is not set
648# CONFIG_BNX2X is not set 663# CONFIG_BNX2X is not set
664# CONFIG_SFC is not set
649# CONFIG_TR is not set 665# CONFIG_TR is not set
650 666
651# 667#
@@ -653,6 +669,7 @@ CONFIG_NETDEV_10000=y
653# 669#
654# CONFIG_WLAN_PRE80211 is not set 670# CONFIG_WLAN_PRE80211 is not set
655# CONFIG_WLAN_80211 is not set 671# CONFIG_WLAN_80211 is not set
672# CONFIG_IWLWIFI_LEDS is not set
656 673
657# 674#
658# USB Network Adapters 675# USB Network Adapters
@@ -717,6 +734,7 @@ CONFIG_VT=y
717CONFIG_VT_CONSOLE=y 734CONFIG_VT_CONSOLE=y
718CONFIG_HW_CONSOLE=y 735CONFIG_HW_CONSOLE=y
719# CONFIG_VT_HW_CONSOLE_BINDING is not set 736# CONFIG_VT_HW_CONSOLE_BINDING is not set
737CONFIG_DEVKMEM=y
720# CONFIG_SERIAL_NONSTANDARD is not set 738# CONFIG_SERIAL_NONSTANDARD is not set
721# CONFIG_NOZOMI is not set 739# CONFIG_NOZOMI is not set
722 740
@@ -750,7 +768,6 @@ CONFIG_LEGACY_PTY_COUNT=256
750# CONFIG_IPMI_HANDLER is not set 768# CONFIG_IPMI_HANDLER is not set
751# CONFIG_HW_RANDOM is not set 769# CONFIG_HW_RANDOM is not set
752CONFIG_NVRAM=y 770CONFIG_NVRAM=y
753# CONFIG_GEN_RTC is not set
754# CONFIG_R3964 is not set 771# CONFIG_R3964 is not set
755# CONFIG_APPLICOM is not set 772# CONFIG_APPLICOM is not set
756# CONFIG_RAW_DRIVER is not set 773# CONFIG_RAW_DRIVER is not set
@@ -761,13 +778,6 @@ CONFIG_I2C_BOARDINFO=y
761# CONFIG_I2C_CHARDEV is not set 778# CONFIG_I2C_CHARDEV is not set
762 779
763# 780#
764# I2C Algorithms
765#
766# CONFIG_I2C_ALGOBIT is not set
767# CONFIG_I2C_ALGOPCF is not set
768# CONFIG_I2C_ALGOPCA is not set
769
770#
771# I2C Hardware Bus support 781# I2C Hardware Bus support
772# 782#
773# CONFIG_I2C_ALI1535 is not set 783# CONFIG_I2C_ALI1535 is not set
@@ -794,6 +804,7 @@ CONFIG_I2C_MPC=y
794# CONFIG_I2C_VIA is not set 804# CONFIG_I2C_VIA is not set
795# CONFIG_I2C_VIAPRO is not set 805# CONFIG_I2C_VIAPRO is not set
796# CONFIG_I2C_VOODOO3 is not set 806# CONFIG_I2C_VOODOO3 is not set
807# CONFIG_I2C_PCA_PLATFORM is not set
797 808
798# 809#
799# Miscellaneous I2C Chip support 810# Miscellaneous I2C Chip support
@@ -803,19 +814,13 @@ CONFIG_SENSORS_EEPROM=y
803# CONFIG_SENSORS_PCF8574 is not set 814# CONFIG_SENSORS_PCF8574 is not set
804# CONFIG_PCF8575 is not set 815# CONFIG_PCF8575 is not set
805# CONFIG_SENSORS_PCF8591 is not set 816# CONFIG_SENSORS_PCF8591 is not set
806# CONFIG_TPS65010 is not set
807# CONFIG_SENSORS_MAX6875 is not set 817# CONFIG_SENSORS_MAX6875 is not set
808# CONFIG_SENSORS_TSL2550 is not set 818# CONFIG_SENSORS_TSL2550 is not set
809# CONFIG_I2C_DEBUG_CORE is not set 819# CONFIG_I2C_DEBUG_CORE is not set
810# CONFIG_I2C_DEBUG_ALGO is not set 820# CONFIG_I2C_DEBUG_ALGO is not set
811# CONFIG_I2C_DEBUG_BUS is not set 821# CONFIG_I2C_DEBUG_BUS is not set
812# CONFIG_I2C_DEBUG_CHIP is not set 822# CONFIG_I2C_DEBUG_CHIP is not set
813
814#
815# SPI support
816#
817# CONFIG_SPI is not set 823# CONFIG_SPI is not set
818# CONFIG_SPI_MASTER is not set
819# CONFIG_W1 is not set 824# CONFIG_W1 is not set
820# CONFIG_POWER_SUPPLY is not set 825# CONFIG_POWER_SUPPLY is not set
821# CONFIG_HWMON is not set 826# CONFIG_HWMON is not set
@@ -832,13 +837,33 @@ CONFIG_SSB_POSSIBLE=y
832# Multifunction device drivers 837# Multifunction device drivers
833# 838#
834# CONFIG_MFD_SM501 is not set 839# CONFIG_MFD_SM501 is not set
840# CONFIG_HTC_PASIC3 is not set
835 841
836# 842#
837# Multimedia devices 843# Multimedia devices
838# 844#
845
846#
847# Multimedia core support
848#
839# CONFIG_VIDEO_DEV is not set 849# CONFIG_VIDEO_DEV is not set
840CONFIG_DVB_CORE=m 850CONFIG_DVB_CORE=m
841# CONFIG_DVB_CORE_ATTACH is not set 851CONFIG_VIDEO_MEDIA=m
852
853#
854# Multimedia drivers
855#
856# CONFIG_MEDIA_ATTACH is not set
857CONFIG_MEDIA_TUNER=m
858# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
859CONFIG_MEDIA_TUNER_SIMPLE=m
860CONFIG_MEDIA_TUNER_TDA8290=m
861CONFIG_MEDIA_TUNER_TDA9887=m
862CONFIG_MEDIA_TUNER_TEA5761=m
863CONFIG_MEDIA_TUNER_TEA5767=m
864CONFIG_MEDIA_TUNER_MT20XX=m
865CONFIG_MEDIA_TUNER_XC2028=m
866CONFIG_MEDIA_TUNER_XC5000=m
842CONFIG_DVB_CAPTURE_DRIVERS=y 867CONFIG_DVB_CAPTURE_DRIVERS=y
843 868
844# 869#
@@ -881,14 +906,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
881# 906#
882# DVB-S (satellite) frontends 907# DVB-S (satellite) frontends
883# 908#
884# CONFIG_DVB_STV0299 is not set
885# CONFIG_DVB_CX24110 is not set 909# CONFIG_DVB_CX24110 is not set
886# CONFIG_DVB_CX24123 is not set 910# CONFIG_DVB_CX24123 is not set
887# CONFIG_DVB_TDA8083 is not set
888# CONFIG_DVB_MT312 is not set 911# CONFIG_DVB_MT312 is not set
889# CONFIG_DVB_VES1X93 is not set
890# CONFIG_DVB_S5H1420 is not set 912# CONFIG_DVB_S5H1420 is not set
913# CONFIG_DVB_STV0299 is not set
914# CONFIG_DVB_TDA8083 is not set
891# CONFIG_DVB_TDA10086 is not set 915# CONFIG_DVB_TDA10086 is not set
916# CONFIG_DVB_VES1X93 is not set
917# CONFIG_DVB_TUNER_ITD1000 is not set
918# CONFIG_DVB_TDA826X is not set
919# CONFIG_DVB_TUA6100 is not set
892 920
893# 921#
894# DVB-T (terrestrial) frontends 922# DVB-T (terrestrial) frontends
@@ -906,6 +934,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
906# CONFIG_DVB_DIB3000MC is not set 934# CONFIG_DVB_DIB3000MC is not set
907# CONFIG_DVB_DIB7000M is not set 935# CONFIG_DVB_DIB7000M is not set
908# CONFIG_DVB_DIB7000P is not set 936# CONFIG_DVB_DIB7000P is not set
937# CONFIG_DVB_TDA10048 is not set
909 938
910# 939#
911# DVB-C (cable) frontends 940# DVB-C (cable) frontends
@@ -924,27 +953,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
924# CONFIG_DVB_BCM3510 is not set 953# CONFIG_DVB_BCM3510 is not set
925# CONFIG_DVB_LGDT330X is not set 954# CONFIG_DVB_LGDT330X is not set
926# CONFIG_DVB_S5H1409 is not set 955# CONFIG_DVB_S5H1409 is not set
956# CONFIG_DVB_AU8522 is not set
957# CONFIG_DVB_S5H1411 is not set
927 958
928# 959#
929# Tuners/PLL support 960# Digital terrestrial only tuners/PLL
930# 961#
931# CONFIG_DVB_PLL is not set 962# CONFIG_DVB_PLL is not set
932# CONFIG_DVB_TDA826X is not set
933# CONFIG_DVB_TDA827X is not set
934# CONFIG_DVB_TDA18271 is not set
935# CONFIG_DVB_TUNER_QT1010 is not set
936# CONFIG_DVB_TUNER_MT2060 is not set
937# CONFIG_DVB_TUNER_MT2266 is not set
938# CONFIG_DVB_TUNER_MT2131 is not set
939# CONFIG_DVB_TUNER_DIB0070 is not set 963# CONFIG_DVB_TUNER_DIB0070 is not set
940# CONFIG_DVB_TUNER_XC5000 is not set
941 964
942# 965#
943# Miscellaneous devices 966# SEC control devices for DVB-S
944# 967#
945# CONFIG_DVB_LNBP21 is not set 968# CONFIG_DVB_LNBP21 is not set
969# CONFIG_DVB_ISL6405 is not set
946# CONFIG_DVB_ISL6421 is not set 970# CONFIG_DVB_ISL6421 is not set
947# CONFIG_DVB_TUA6100 is not set
948CONFIG_DAB=y 971CONFIG_DAB=y
949# CONFIG_USB_DABUSB is not set 972# CONFIG_USB_DABUSB is not set
950 973
@@ -1011,6 +1034,7 @@ CONFIG_SND_AC97_CODEC=y
1011# CONFIG_SND_AU8810 is not set 1034# CONFIG_SND_AU8810 is not set
1012# CONFIG_SND_AU8820 is not set 1035# CONFIG_SND_AU8820 is not set
1013# CONFIG_SND_AU8830 is not set 1036# CONFIG_SND_AU8830 is not set
1037# CONFIG_SND_AW2 is not set
1014# CONFIG_SND_AZT3328 is not set 1038# CONFIG_SND_AZT3328 is not set
1015# CONFIG_SND_BT87X is not set 1039# CONFIG_SND_BT87X is not set
1016# CONFIG_SND_CA0106 is not set 1040# CONFIG_SND_CA0106 is not set
@@ -1085,11 +1109,11 @@ CONFIG_SND_INTEL8X0=y
1085# CONFIG_SND_SOC is not set 1109# CONFIG_SND_SOC is not set
1086 1110
1087# 1111#
1088# SoC Audio support for SuperH 1112# ALSA SoC audio for Freescale SOCs
1089# 1113#
1090 1114
1091# 1115#
1092# ALSA SoC audio for Freescale SOCs 1116# SoC Audio for the Texas Instruments OMAP
1093# 1117#
1094 1118
1095# 1119#
@@ -1124,16 +1148,20 @@ CONFIG_USB_DEVICEFS=y
1124CONFIG_USB_DEVICE_CLASS=y 1148CONFIG_USB_DEVICE_CLASS=y
1125# CONFIG_USB_DYNAMIC_MINORS is not set 1149# CONFIG_USB_DYNAMIC_MINORS is not set
1126# CONFIG_USB_OTG is not set 1150# CONFIG_USB_OTG is not set
1151# CONFIG_USB_OTG_WHITELIST is not set
1152# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1127 1153
1128# 1154#
1129# USB Host Controller Drivers 1155# USB Host Controller Drivers
1130# 1156#
1157# CONFIG_USB_C67X00_HCD is not set
1131CONFIG_USB_EHCI_HCD=y 1158CONFIG_USB_EHCI_HCD=y
1132# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1159CONFIG_USB_EHCI_ROOT_HUB_TT=y
1133# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1160# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1134# CONFIG_USB_EHCI_FSL is not set 1161CONFIG_USB_EHCI_FSL=y
1135CONFIG_USB_EHCI_HCD_PPC_OF=y 1162CONFIG_USB_EHCI_HCD_PPC_OF=y
1136# CONFIG_USB_ISP116X_HCD is not set 1163# CONFIG_USB_ISP116X_HCD is not set
1164# CONFIG_USB_ISP1760_HCD is not set
1137CONFIG_USB_OHCI_HCD=y 1165CONFIG_USB_OHCI_HCD=y
1138CONFIG_USB_OHCI_HCD_PPC_OF=y 1166CONFIG_USB_OHCI_HCD_PPC_OF=y
1139CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1167CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1151,6 +1179,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1151# 1179#
1152# CONFIG_USB_ACM is not set 1180# CONFIG_USB_ACM is not set
1153# CONFIG_USB_PRINTER is not set 1181# CONFIG_USB_PRINTER is not set
1182# CONFIG_USB_WDM is not set
1154 1183
1155# 1184#
1156# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1185# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1170,7 +1199,9 @@ CONFIG_USB_STORAGE=y
1170# CONFIG_USB_STORAGE_SDDR55 is not set 1199# CONFIG_USB_STORAGE_SDDR55 is not set
1171# CONFIG_USB_STORAGE_JUMPSHOT is not set 1200# CONFIG_USB_STORAGE_JUMPSHOT is not set
1172# CONFIG_USB_STORAGE_ALAUDA is not set 1201# CONFIG_USB_STORAGE_ALAUDA is not set
1202# CONFIG_USB_STORAGE_ONETOUCH is not set
1173# CONFIG_USB_STORAGE_KARMA is not set 1203# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1174# CONFIG_USB_LIBUSUAL is not set 1205# CONFIG_USB_LIBUSUAL is not set
1175 1206
1176# 1207#
@@ -1208,12 +1239,21 @@ CONFIG_USB_MON=y
1208# CONFIG_USB_TRANCEVIBRATOR is not set 1239# CONFIG_USB_TRANCEVIBRATOR is not set
1209# CONFIG_USB_IOWARRIOR is not set 1240# CONFIG_USB_IOWARRIOR is not set
1210# CONFIG_USB_TEST is not set 1241# CONFIG_USB_TEST is not set
1242# CONFIG_USB_ISIGHTFW is not set
1211# CONFIG_USB_GADGET is not set 1243# CONFIG_USB_GADGET is not set
1212# CONFIG_MMC is not set 1244# CONFIG_MMC is not set
1213# CONFIG_MEMSTICK is not set 1245# CONFIG_MEMSTICK is not set
1214# CONFIG_NEW_LEDS is not set 1246# CONFIG_NEW_LEDS is not set
1247# CONFIG_ACCESSIBILITY is not set
1215# CONFIG_INFINIBAND is not set 1248# CONFIG_INFINIBAND is not set
1216# CONFIG_EDAC is not set 1249CONFIG_EDAC=y
1250
1251#
1252# Reporting subsystems
1253#
1254# CONFIG_EDAC_DEBUG is not set
1255CONFIG_EDAC_MM_EDAC=y
1256CONFIG_EDAC_MPC85XX=y
1217CONFIG_RTC_LIB=y 1257CONFIG_RTC_LIB=y
1218CONFIG_RTC_CLASS=y 1258CONFIG_RTC_CLASS=y
1219CONFIG_RTC_HCTOSYS=y 1259CONFIG_RTC_HCTOSYS=y
@@ -1263,11 +1303,19 @@ CONFIG_RTC_DRV_CMOS=y
1263# 1303#
1264# on-CPU RTC drivers 1304# on-CPU RTC drivers
1265# 1305#
1266# CONFIG_DMADEVICES is not set 1306# CONFIG_RTC_DRV_PPC is not set
1307CONFIG_DMADEVICES=y
1267 1308
1268# 1309#
1269# Userspace I/O 1310# DMA Devices
1270# 1311#
1312CONFIG_FSL_DMA=y
1313CONFIG_DMA_ENGINE=y
1314
1315#
1316# DMA Clients
1317#
1318# CONFIG_NET_DMA is not set
1271# CONFIG_UIO is not set 1319# CONFIG_UIO is not set
1272 1320
1273# 1321#
@@ -1287,7 +1335,6 @@ CONFIG_FS_MBCACHE=y
1287# CONFIG_JFS_FS is not set 1335# CONFIG_JFS_FS is not set
1288# CONFIG_FS_POSIX_ACL is not set 1336# CONFIG_FS_POSIX_ACL is not set
1289# CONFIG_XFS_FS is not set 1337# CONFIG_XFS_FS is not set
1290# CONFIG_GFS2_FS is not set
1291# CONFIG_OCFS2_FS is not set 1338# CONFIG_OCFS2_FS is not set
1292CONFIG_DNOTIFY=y 1339CONFIG_DNOTIFY=y
1293CONFIG_INOTIFY=y 1340CONFIG_INOTIFY=y
@@ -1357,10 +1404,9 @@ CONFIG_NFS_FS=y
1357CONFIG_NFS_V3=y 1404CONFIG_NFS_V3=y
1358# CONFIG_NFS_V3_ACL is not set 1405# CONFIG_NFS_V3_ACL is not set
1359CONFIG_NFS_V4=y 1406CONFIG_NFS_V4=y
1360# CONFIG_NFS_DIRECTIO is not set
1361CONFIG_NFSD=y 1407CONFIG_NFSD=y
1362# CONFIG_NFSD_V3 is not set 1408# CONFIG_NFSD_V3 is not set
1363CONFIG_NFSD_TCP=y 1409# CONFIG_NFSD_V4 is not set
1364CONFIG_ROOT_NFS=y 1410CONFIG_ROOT_NFS=y
1365CONFIG_LOCKD=y 1411CONFIG_LOCKD=y
1366CONFIG_LOCKD_V4=y 1412CONFIG_LOCKD_V4=y
@@ -1444,9 +1490,10 @@ CONFIG_NLS_UTF8=m
1444# Library routines 1490# Library routines
1445# 1491#
1446CONFIG_BITREVERSE=y 1492CONFIG_BITREVERSE=y
1493# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1447# CONFIG_CRC_CCITT is not set 1494# CONFIG_CRC_CCITT is not set
1448# CONFIG_CRC16 is not set 1495# CONFIG_CRC16 is not set
1449# CONFIG_CRC_ITU_T is not set 1496CONFIG_CRC_ITU_T=m
1450CONFIG_CRC32=y 1497CONFIG_CRC32=y
1451# CONFIG_CRC7 is not set 1498# CONFIG_CRC7 is not set
1452CONFIG_LIBCRC32C=m 1499CONFIG_LIBCRC32C=m
@@ -1455,6 +1502,7 @@ CONFIG_PLIST=y
1455CONFIG_HAS_IOMEM=y 1502CONFIG_HAS_IOMEM=y
1456CONFIG_HAS_IOPORT=y 1503CONFIG_HAS_IOPORT=y
1457CONFIG_HAS_DMA=y 1504CONFIG_HAS_DMA=y
1505CONFIG_HAVE_LMB=y
1458 1506
1459# 1507#
1460# Kernel hacking 1508# Kernel hacking
@@ -1462,6 +1510,7 @@ CONFIG_HAS_DMA=y
1462# CONFIG_PRINTK_TIME is not set 1510# CONFIG_PRINTK_TIME is not set
1463CONFIG_ENABLE_WARN_DEPRECATED=y 1511CONFIG_ENABLE_WARN_DEPRECATED=y
1464CONFIG_ENABLE_MUST_CHECK=y 1512CONFIG_ENABLE_MUST_CHECK=y
1513CONFIG_FRAME_WARN=1024
1465# CONFIG_MAGIC_SYSRQ is not set 1514# CONFIG_MAGIC_SYSRQ is not set
1466# CONFIG_UNUSED_SYMBOLS is not set 1515# CONFIG_UNUSED_SYMBOLS is not set
1467# CONFIG_DEBUG_FS is not set 1516# CONFIG_DEBUG_FS is not set
@@ -1472,6 +1521,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1472CONFIG_SCHED_DEBUG=y 1521CONFIG_SCHED_DEBUG=y
1473# CONFIG_SCHEDSTATS is not set 1522# CONFIG_SCHEDSTATS is not set
1474# CONFIG_TIMER_STATS is not set 1523# CONFIG_TIMER_STATS is not set
1524# CONFIG_DEBUG_OBJECTS is not set
1475# CONFIG_SLUB_DEBUG_ON is not set 1525# CONFIG_SLUB_DEBUG_ON is not set
1476# CONFIG_SLUB_STATS is not set 1526# CONFIG_SLUB_STATS is not set
1477# CONFIG_DEBUG_RT_MUTEXES is not set 1527# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1485,6 +1535,7 @@ CONFIG_SCHED_DEBUG=y
1485# CONFIG_DEBUG_BUGVERBOSE is not set 1535# CONFIG_DEBUG_BUGVERBOSE is not set
1486CONFIG_DEBUG_INFO=y 1536CONFIG_DEBUG_INFO=y
1487# CONFIG_DEBUG_VM is not set 1537# CONFIG_DEBUG_VM is not set
1538# CONFIG_DEBUG_WRITECOUNT is not set
1488# CONFIG_DEBUG_LIST is not set 1539# CONFIG_DEBUG_LIST is not set
1489# CONFIG_DEBUG_SG is not set 1540# CONFIG_DEBUG_SG is not set
1490# CONFIG_BOOT_PRINTK_DELAY is not set 1541# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1497,6 +1548,7 @@ CONFIG_DEBUG_INFO=y
1497# CONFIG_DEBUG_PAGEALLOC is not set 1548# CONFIG_DEBUG_PAGEALLOC is not set
1498# CONFIG_DEBUGGER is not set 1549# CONFIG_DEBUGGER is not set
1499# CONFIG_KGDB_CONSOLE is not set 1550# CONFIG_KGDB_CONSOLE is not set
1551# CONFIG_IRQSTACKS is not set
1500# CONFIG_BDI_SWITCH is not set 1552# CONFIG_BDI_SWITCH is not set
1501# CONFIG_PPC_EARLY_DEBUG is not set 1553# CONFIG_PPC_EARLY_DEBUG is not set
1502 1554
@@ -1507,53 +1559,83 @@ CONFIG_DEBUG_INFO=y
1507# CONFIG_SECURITY is not set 1559# CONFIG_SECURITY is not set
1508# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1560# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1509CONFIG_CRYPTO=y 1561CONFIG_CRYPTO=y
1562
1563#
1564# Crypto core or helper
1565#
1510CONFIG_CRYPTO_ALGAPI=y 1566CONFIG_CRYPTO_ALGAPI=y
1511CONFIG_CRYPTO_BLKCIPHER=y 1567CONFIG_CRYPTO_BLKCIPHER=y
1512# CONFIG_CRYPTO_SEQIV is not set
1513CONFIG_CRYPTO_HASH=y 1568CONFIG_CRYPTO_HASH=y
1514CONFIG_CRYPTO_MANAGER=y 1569CONFIG_CRYPTO_MANAGER=y
1570# CONFIG_CRYPTO_GF128MUL is not set
1571# CONFIG_CRYPTO_NULL is not set
1572# CONFIG_CRYPTO_CRYPTD is not set
1573# CONFIG_CRYPTO_AUTHENC is not set
1574# CONFIG_CRYPTO_TEST is not set
1575
1576#
1577# Authenticated Encryption with Associated Data
1578#
1579# CONFIG_CRYPTO_CCM is not set
1580# CONFIG_CRYPTO_GCM is not set
1581# CONFIG_CRYPTO_SEQIV is not set
1582
1583#
1584# Block modes
1585#
1586CONFIG_CRYPTO_CBC=y
1587# CONFIG_CRYPTO_CTR is not set
1588# CONFIG_CRYPTO_CTS is not set
1589# CONFIG_CRYPTO_ECB is not set
1590# CONFIG_CRYPTO_LRW is not set
1591CONFIG_CRYPTO_PCBC=m
1592# CONFIG_CRYPTO_XTS is not set
1593
1594#
1595# Hash modes
1596#
1515CONFIG_CRYPTO_HMAC=y 1597CONFIG_CRYPTO_HMAC=y
1516# CONFIG_CRYPTO_XCBC is not set 1598# CONFIG_CRYPTO_XCBC is not set
1517# CONFIG_CRYPTO_NULL is not set 1599
1600#
1601# Digest
1602#
1603# CONFIG_CRYPTO_CRC32C is not set
1518# CONFIG_CRYPTO_MD4 is not set 1604# CONFIG_CRYPTO_MD4 is not set
1519CONFIG_CRYPTO_MD5=y 1605CONFIG_CRYPTO_MD5=y
1606# CONFIG_CRYPTO_MICHAEL_MIC is not set
1520CONFIG_CRYPTO_SHA1=m 1607CONFIG_CRYPTO_SHA1=m
1521# CONFIG_CRYPTO_SHA256 is not set 1608# CONFIG_CRYPTO_SHA256 is not set
1522# CONFIG_CRYPTO_SHA512 is not set 1609# CONFIG_CRYPTO_SHA512 is not set
1523# CONFIG_CRYPTO_WP512 is not set
1524# CONFIG_CRYPTO_TGR192 is not set 1610# CONFIG_CRYPTO_TGR192 is not set
1525# CONFIG_CRYPTO_GF128MUL is not set 1611# CONFIG_CRYPTO_WP512 is not set
1526# CONFIG_CRYPTO_ECB is not set 1612
1527CONFIG_CRYPTO_CBC=y 1613#
1528CONFIG_CRYPTO_PCBC=m 1614# Ciphers
1529# CONFIG_CRYPTO_LRW is not set 1615#
1530# CONFIG_CRYPTO_XTS is not set
1531# CONFIG_CRYPTO_CTR is not set
1532# CONFIG_CRYPTO_GCM is not set
1533# CONFIG_CRYPTO_CCM is not set
1534# CONFIG_CRYPTO_CRYPTD is not set
1535CONFIG_CRYPTO_DES=y
1536# CONFIG_CRYPTO_FCRYPT is not set
1537# CONFIG_CRYPTO_BLOWFISH is not set
1538# CONFIG_CRYPTO_TWOFISH is not set
1539# CONFIG_CRYPTO_SERPENT is not set
1540# CONFIG_CRYPTO_AES is not set 1616# CONFIG_CRYPTO_AES is not set
1617# CONFIG_CRYPTO_ANUBIS is not set
1618# CONFIG_CRYPTO_ARC4 is not set
1619# CONFIG_CRYPTO_BLOWFISH is not set
1620# CONFIG_CRYPTO_CAMELLIA is not set
1541# CONFIG_CRYPTO_CAST5 is not set 1621# CONFIG_CRYPTO_CAST5 is not set
1542# CONFIG_CRYPTO_CAST6 is not set 1622# CONFIG_CRYPTO_CAST6 is not set
1543# CONFIG_CRYPTO_TEA is not set 1623CONFIG_CRYPTO_DES=y
1544# CONFIG_CRYPTO_ARC4 is not set 1624# CONFIG_CRYPTO_FCRYPT is not set
1545# CONFIG_CRYPTO_KHAZAD is not set 1625# CONFIG_CRYPTO_KHAZAD is not set
1546# CONFIG_CRYPTO_ANUBIS is not set
1547# CONFIG_CRYPTO_SEED is not set
1548# CONFIG_CRYPTO_SALSA20 is not set 1626# CONFIG_CRYPTO_SALSA20 is not set
1627# CONFIG_CRYPTO_SEED is not set
1628# CONFIG_CRYPTO_SERPENT is not set
1629# CONFIG_CRYPTO_TEA is not set
1630# CONFIG_CRYPTO_TWOFISH is not set
1631
1632#
1633# Compression
1634#
1549# CONFIG_CRYPTO_DEFLATE is not set 1635# CONFIG_CRYPTO_DEFLATE is not set
1550# CONFIG_CRYPTO_MICHAEL_MIC is not set
1551# CONFIG_CRYPTO_CRC32C is not set
1552# CONFIG_CRYPTO_CAMELLIA is not set
1553# CONFIG_CRYPTO_TEST is not set
1554# CONFIG_CRYPTO_AUTHENC is not set
1555# CONFIG_CRYPTO_LZO is not set 1636# CONFIG_CRYPTO_LZO is not set
1556CONFIG_CRYPTO_HW=y 1637CONFIG_CRYPTO_HW=y
1557# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1638# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1558# CONFIG_PPC_CLOCK is not set 1639# CONFIG_PPC_CLOCK is not set
1559CONFIG_PPC_LIB_RHEAP=y 1640CONFIG_PPC_LIB_RHEAP=y
1641# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig
index 7e5b9ce58d89..5612d40d0463 100644
--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/mpc8610_hpcd_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:33 2008 4# Mon Jun 9 08:50:24 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -60,9 +62,10 @@ CONFIG_EXPERIMENTAL=y
60CONFIG_BROKEN_ON_SMP=y 62CONFIG_BROKEN_ON_SMP=y
61CONFIG_INIT_ENV_ARG_LIMIT=32 63CONFIG_INIT_ENV_ARG_LIMIT=32
62CONFIG_LOCALVERSION="" 64CONFIG_LOCALVERSION=""
63# CONFIG_LOCALVERSION_AUTO is not set 65CONFIG_LOCALVERSION_AUTO=y
64# CONFIG_SWAP is not set 66# CONFIG_SWAP is not set
65# CONFIG_SYSVIPC is not set 67CONFIG_SYSVIPC=y
68CONFIG_SYSVIPC_SYSCTL=y
66# CONFIG_POSIX_MQUEUE is not set 69# CONFIG_POSIX_MQUEUE is not set
67# CONFIG_BSD_PROCESS_ACCT is not set 70# CONFIG_BSD_PROCESS_ACCT is not set
68# CONFIG_TASKSTATS is not set 71# CONFIG_TASKSTATS is not set
@@ -86,6 +89,7 @@ CONFIG_INITRAMFS_SOURCE=""
86CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
87CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
88CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 93CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 94# CONFIG_KALLSYMS_ALL is not set
91CONFIG_KALLSYMS_EXTRA_PASS=y 95CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -110,14 +114,22 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
113CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120# CONFIG_HAVE_DMA_ATTRS is not set
115CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
116CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 123CONFIG_RT_MUTEXES=y
118# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
119CONFIG_BASE_SMALL=0 125CONFIG_BASE_SMALL=0
120# CONFIG_MODULES is not set 126CONFIG_MODULES=y
127# CONFIG_MODULE_FORCE_LOAD is not set
128CONFIG_MODULE_UNLOAD=y
129# CONFIG_MODULE_FORCE_UNLOAD is not set
130# CONFIG_MODVERSIONS is not set
131# CONFIG_MODULE_SRCVERSION_ALL is not set
132CONFIG_KMOD=y
121CONFIG_BLOCK=y 133CONFIG_BLOCK=y
122# CONFIG_LBD is not set 134# CONFIG_LBD is not set
123# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -151,6 +163,7 @@ CONFIG_PPC_86xx=y
151# CONFIG_PPC_CELL_NATIVE is not set 163# CONFIG_PPC_CELL_NATIVE is not set
152# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
153# CONFIG_MPC8641_HPCN is not set 165# CONFIG_MPC8641_HPCN is not set
166# CONFIG_SBC8641D is not set
154CONFIG_MPC8610_HPCD=y 167CONFIG_MPC8610_HPCD=y
155CONFIG_MPC8610=y 168CONFIG_MPC8610=y
156# CONFIG_IPIC is not set 169# CONFIG_IPIC is not set
@@ -199,11 +212,13 @@ CONFIG_FLATMEM=y
199CONFIG_FLAT_NODE_MEM_MAP=y 212CONFIG_FLAT_NODE_MEM_MAP=y
200# CONFIG_SPARSEMEM_STATIC is not set 213# CONFIG_SPARSEMEM_STATIC is not set
201# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y
202CONFIG_SPLIT_PTLOCK_CPUS=4 216CONFIG_SPLIT_PTLOCK_CPUS=4
203# CONFIG_RESOURCES_64BIT is not set 217# CONFIG_RESOURCES_64BIT is not set
204CONFIG_ZONE_DMA_FLAG=1 218CONFIG_ZONE_DMA_FLAG=1
205CONFIG_BOUNCE=y 219CONFIG_BOUNCE=y
206CONFIG_VIRT_TO_BUS=y 220CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=12
207CONFIG_PROC_DEVICETREE=y 222CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 223# CONFIG_CMDLINE_BOOL is not set
209# CONFIG_PM is not set 224# CONFIG_PM is not set
@@ -223,12 +238,14 @@ CONFIG_PCI_DOMAINS=y
223CONFIG_PCI_SYSCALL=y 238CONFIG_PCI_SYSCALL=y
224CONFIG_PCIEPORTBUS=y 239CONFIG_PCIEPORTBUS=y
225CONFIG_PCIEAER=y 240CONFIG_PCIEAER=y
241# CONFIG_PCIEASPM is not set
226CONFIG_ARCH_SUPPORTS_MSI=y 242CONFIG_ARCH_SUPPORTS_MSI=y
227# CONFIG_PCI_MSI is not set 243# CONFIG_PCI_MSI is not set
228CONFIG_PCI_LEGACY=y 244CONFIG_PCI_LEGACY=y
229CONFIG_PCI_DEBUG=y 245CONFIG_PCI_DEBUG=y
230# CONFIG_PCCARD is not set 246# CONFIG_PCCARD is not set
231# CONFIG_HOTPLUG_PCI is not set 247# CONFIG_HOTPLUG_PCI is not set
248# CONFIG_HAS_RAPIDIO is not set
232 249
233# 250#
234# Advanced setup 251# Advanced setup
@@ -238,11 +255,11 @@ CONFIG_PCI_DEBUG=y
238# 255#
239# Default settings for advanced configuration options are used 256# Default settings for advanced configuration options are used
240# 257#
241CONFIG_HIGHMEM_START=0xfe000000
242CONFIG_LOWMEM_SIZE=0x30000000 258CONFIG_LOWMEM_SIZE=0x30000000
259CONFIG_PAGE_OFFSET=0xc0000000
243CONFIG_KERNEL_START=0xc0000000 260CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000
244CONFIG_TASK_SIZE=0xc0000000 262CONFIG_TASK_SIZE=0xc0000000
245CONFIG_BOOT_LOAD=0x00800000
246 263
247# 264#
248# Networking 265# Networking
@@ -303,8 +320,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
303CONFIG_INET6_XFRM_MODE_BEET=y 320CONFIG_INET6_XFRM_MODE_BEET=y
304# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 321# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
305CONFIG_IPV6_SIT=y 322CONFIG_IPV6_SIT=y
323CONFIG_IPV6_NDISC_NODETYPE=y
306# CONFIG_IPV6_TUNNEL is not set 324# CONFIG_IPV6_TUNNEL is not set
307# CONFIG_IPV6_MULTIPLE_TABLES is not set 325# CONFIG_IPV6_MULTIPLE_TABLES is not set
326# CONFIG_IPV6_MROUTE is not set
308# CONFIG_NETWORK_SECMARK is not set 327# CONFIG_NETWORK_SECMARK is not set
309# CONFIG_NETFILTER is not set 328# CONFIG_NETFILTER is not set
310# CONFIG_IP_DCCP is not set 329# CONFIG_IP_DCCP is not set
@@ -446,6 +465,7 @@ CONFIG_MTD_NAND_FSL_ELBC=y
446# 465#
447# CONFIG_MTD_UBI is not set 466# CONFIG_MTD_UBI is not set
448CONFIG_OF_DEVICE=y 467CONFIG_OF_DEVICE=y
468CONFIG_OF_I2C=y
449# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
451# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
@@ -504,6 +524,7 @@ CONFIG_CHR_DEV_SG=y
504# CONFIG_SCSI_CONSTANTS is not set 524# CONFIG_SCSI_CONSTANTS is not set
505# CONFIG_SCSI_LOGGING is not set 525# CONFIG_SCSI_LOGGING is not set
506# CONFIG_SCSI_SCAN_ASYNC is not set 526# CONFIG_SCSI_SCAN_ASYNC is not set
527CONFIG_SCSI_WAIT_SCAN=m
507 528
508# 529#
509# SCSI Transports 530# SCSI Transports
@@ -553,7 +574,11 @@ CONFIG_SCSI_LOWLEVEL=y
553# CONFIG_SCSI_SRP is not set 574# CONFIG_SCSI_SRP is not set
554CONFIG_ATA=y 575CONFIG_ATA=y
555# CONFIG_ATA_NONSTANDARD is not set 576# CONFIG_ATA_NONSTANDARD is not set
577CONFIG_SATA_PMP=y
556CONFIG_SATA_AHCI=y 578CONFIG_SATA_AHCI=y
579# CONFIG_SATA_SIL24 is not set
580# CONFIG_SATA_FSL is not set
581CONFIG_ATA_SFF=y
557# CONFIG_SATA_SVW is not set 582# CONFIG_SATA_SVW is not set
558# CONFIG_ATA_PIIX is not set 583# CONFIG_ATA_PIIX is not set
559# CONFIG_SATA_MV is not set 584# CONFIG_SATA_MV is not set
@@ -563,13 +588,11 @@ CONFIG_SATA_AHCI=y
563# CONFIG_SATA_PROMISE is not set 588# CONFIG_SATA_PROMISE is not set
564# CONFIG_SATA_SX4 is not set 589# CONFIG_SATA_SX4 is not set
565# CONFIG_SATA_SIL is not set 590# CONFIG_SATA_SIL is not set
566# CONFIG_SATA_SIL24 is not set
567# CONFIG_SATA_SIS is not set 591# CONFIG_SATA_SIS is not set
568# CONFIG_SATA_ULI is not set 592# CONFIG_SATA_ULI is not set
569# CONFIG_SATA_VIA is not set 593# CONFIG_SATA_VIA is not set
570# CONFIG_SATA_VITESSE is not set 594# CONFIG_SATA_VITESSE is not set
571# CONFIG_SATA_INIC162X is not set 595# CONFIG_SATA_INIC162X is not set
572# CONFIG_SATA_FSL is not set
573CONFIG_PATA_ALI=y 596CONFIG_PATA_ALI=y
574# CONFIG_PATA_AMD is not set 597# CONFIG_PATA_AMD is not set
575# CONFIG_PATA_ARTOP is not set 598# CONFIG_PATA_ARTOP is not set
@@ -609,6 +632,7 @@ CONFIG_PATA_ALI=y
609# CONFIG_PATA_VIA is not set 632# CONFIG_PATA_VIA is not set
610# CONFIG_PATA_WINBOND is not set 633# CONFIG_PATA_WINBOND is not set
611# CONFIG_PATA_PLATFORM is not set 634# CONFIG_PATA_PLATFORM is not set
635# CONFIG_PATA_SCH is not set
612# CONFIG_MD is not set 636# CONFIG_MD is not set
613# CONFIG_FUSION is not set 637# CONFIG_FUSION is not set
614 638
@@ -628,25 +652,9 @@ CONFIG_DUMMY=y
628# CONFIG_TUN is not set 652# CONFIG_TUN is not set
629# CONFIG_VETH is not set 653# CONFIG_VETH is not set
630# CONFIG_ARCNET is not set 654# CONFIG_ARCNET is not set
631CONFIG_PHYLIB=y 655# CONFIG_PHYLIB is not set
632
633#
634# MII PHY device drivers
635#
636# CONFIG_MARVELL_PHY is not set
637# CONFIG_DAVICOM_PHY is not set
638# CONFIG_QSEMI_PHY is not set
639# CONFIG_LXT_PHY is not set
640# CONFIG_CICADA_PHY is not set
641# CONFIG_VITESSE_PHY is not set
642# CONFIG_SMSC_PHY is not set
643# CONFIG_BROADCOM_PHY is not set
644# CONFIG_ICPLUS_PHY is not set
645# CONFIG_REALTEK_PHY is not set
646# CONFIG_FIXED_PHY is not set
647# CONFIG_MDIO_BITBANG is not set
648CONFIG_NET_ETHERNET=y 656CONFIG_NET_ETHERNET=y
649CONFIG_MII=y 657# CONFIG_MII is not set
650# CONFIG_HAPPYMEAL is not set 658# CONFIG_HAPPYMEAL is not set
651# CONFIG_SUNGEM is not set 659# CONFIG_SUNGEM is not set
652# CONFIG_CASSINI is not set 660# CONFIG_CASSINI is not set
@@ -663,64 +671,10 @@ CONFIG_ULI526X=y
663# CONFIG_IBM_NEW_EMAC_RGMII is not set 671# CONFIG_IBM_NEW_EMAC_RGMII is not set
664# CONFIG_IBM_NEW_EMAC_TAH is not set 672# CONFIG_IBM_NEW_EMAC_TAH is not set
665# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 673# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
666CONFIG_NET_PCI=y 674# CONFIG_NET_PCI is not set
667# CONFIG_PCNET32 is not set
668# CONFIG_AMD8111_ETH is not set
669# CONFIG_ADAPTEC_STARFIRE is not set
670# CONFIG_B44 is not set 675# CONFIG_B44 is not set
671# CONFIG_FORCEDETH is not set 676# CONFIG_NETDEV_1000 is not set
672# CONFIG_EEPRO100 is not set 677# CONFIG_NETDEV_10000 is not set
673# CONFIG_E100 is not set
674# CONFIG_FEALNX is not set
675# CONFIG_NATSEMI is not set
676# CONFIG_NE2K_PCI is not set
677# CONFIG_8139CP is not set
678CONFIG_8139TOO=y
679CONFIG_8139TOO_PIO=y
680# CONFIG_8139TOO_TUNE_TWISTER is not set
681# CONFIG_8139TOO_8129 is not set
682# CONFIG_8139_OLD_RX_RESET is not set
683# CONFIG_R6040 is not set
684# CONFIG_SIS900 is not set
685# CONFIG_EPIC100 is not set
686# CONFIG_SUNDANCE is not set
687# CONFIG_TLAN is not set
688# CONFIG_VIA_RHINE is not set
689# CONFIG_SC92031 is not set
690CONFIG_NETDEV_1000=y
691# CONFIG_ACENIC is not set
692# CONFIG_DL2K is not set
693# CONFIG_E1000 is not set
694# CONFIG_E1000E is not set
695# CONFIG_E1000E_ENABLED is not set
696# CONFIG_IP1000 is not set
697# CONFIG_IGB is not set
698# CONFIG_NS83820 is not set
699# CONFIG_HAMACHI is not set
700# CONFIG_YELLOWFIN is not set
701# CONFIG_R8169 is not set
702# CONFIG_SIS190 is not set
703# CONFIG_SKGE is not set
704# CONFIG_SKY2 is not set
705# CONFIG_SK98LIN is not set
706# CONFIG_VIA_VELOCITY is not set
707# CONFIG_TIGON3 is not set
708# CONFIG_BNX2 is not set
709# CONFIG_GIANFAR is not set
710# CONFIG_QLA3XXX is not set
711# CONFIG_ATL1 is not set
712CONFIG_NETDEV_10000=y
713# CONFIG_CHELSIO_T1 is not set
714# CONFIG_CHELSIO_T3 is not set
715# CONFIG_IXGBE is not set
716# CONFIG_IXGB is not set
717# CONFIG_S2IO is not set
718# CONFIG_MYRI10GE is not set
719# CONFIG_NETXEN_NIC is not set
720# CONFIG_NIU is not set
721# CONFIG_MLX4_CORE is not set
722# CONFIG_TEHUTI is not set
723# CONFIG_BNX2X is not set
724# CONFIG_TR is not set 678# CONFIG_TR is not set
725 679
726# 680#
@@ -728,6 +682,7 @@ CONFIG_NETDEV_10000=y
728# 682#
729# CONFIG_WLAN_PRE80211 is not set 683# CONFIG_WLAN_PRE80211 is not set
730# CONFIG_WLAN_80211 is not set 684# CONFIG_WLAN_80211 is not set
685# CONFIG_IWLWIFI_LEDS is not set
731# CONFIG_WAN is not set 686# CONFIG_WAN is not set
732# CONFIG_FDDI is not set 687# CONFIG_FDDI is not set
733# CONFIG_HIPPI is not set 688# CONFIG_HIPPI is not set
@@ -783,6 +738,7 @@ CONFIG_VT=y
783CONFIG_VT_CONSOLE=y 738CONFIG_VT_CONSOLE=y
784CONFIG_HW_CONSOLE=y 739CONFIG_HW_CONSOLE=y
785# CONFIG_VT_HW_CONSOLE_BINDING is not set 740# CONFIG_VT_HW_CONSOLE_BINDING is not set
741CONFIG_DEVKMEM=y
786# CONFIG_SERIAL_NONSTANDARD is not set 742# CONFIG_SERIAL_NONSTANDARD is not set
787# CONFIG_NOZOMI is not set 743# CONFIG_NOZOMI is not set
788 744
@@ -824,13 +780,6 @@ CONFIG_I2C_BOARDINFO=y
824# CONFIG_I2C_CHARDEV is not set 780# CONFIG_I2C_CHARDEV is not set
825 781
826# 782#
827# I2C Algorithms
828#
829# CONFIG_I2C_ALGOBIT is not set
830# CONFIG_I2C_ALGOPCF is not set
831# CONFIG_I2C_ALGOPCA is not set
832
833#
834# I2C Hardware Bus support 783# I2C Hardware Bus support
835# 784#
836# CONFIG_I2C_ALI1535 is not set 785# CONFIG_I2C_ALI1535 is not set
@@ -852,9 +801,11 @@ CONFIG_I2C_MPC=y
852# CONFIG_I2C_SIS630 is not set 801# CONFIG_I2C_SIS630 is not set
853# CONFIG_I2C_SIS96X is not set 802# CONFIG_I2C_SIS96X is not set
854# CONFIG_I2C_TAOS_EVM is not set 803# CONFIG_I2C_TAOS_EVM is not set
804# CONFIG_I2C_STUB is not set
855# CONFIG_I2C_VIA is not set 805# CONFIG_I2C_VIA is not set
856# CONFIG_I2C_VIAPRO is not set 806# CONFIG_I2C_VIAPRO is not set
857# CONFIG_I2C_VOODOO3 is not set 807# CONFIG_I2C_VOODOO3 is not set
808# CONFIG_I2C_PCA_PLATFORM is not set
858 809
859# 810#
860# Miscellaneous I2C Chip support 811# Miscellaneous I2C Chip support
@@ -864,19 +815,13 @@ CONFIG_I2C_MPC=y
864# CONFIG_SENSORS_PCF8574 is not set 815# CONFIG_SENSORS_PCF8574 is not set
865# CONFIG_PCF8575 is not set 816# CONFIG_PCF8575 is not set
866# CONFIG_SENSORS_PCF8591 is not set 817# CONFIG_SENSORS_PCF8591 is not set
867# CONFIG_TPS65010 is not set
868# CONFIG_SENSORS_MAX6875 is not set 818# CONFIG_SENSORS_MAX6875 is not set
869# CONFIG_SENSORS_TSL2550 is not set 819# CONFIG_SENSORS_TSL2550 is not set
870# CONFIG_I2C_DEBUG_CORE is not set 820# CONFIG_I2C_DEBUG_CORE is not set
871# CONFIG_I2C_DEBUG_ALGO is not set 821# CONFIG_I2C_DEBUG_ALGO is not set
872# CONFIG_I2C_DEBUG_BUS is not set 822# CONFIG_I2C_DEBUG_BUS is not set
873# CONFIG_I2C_DEBUG_CHIP is not set 823# CONFIG_I2C_DEBUG_CHIP is not set
874
875#
876# SPI support
877#
878# CONFIG_SPI is not set 824# CONFIG_SPI is not set
879# CONFIG_SPI_MASTER is not set
880# CONFIG_W1 is not set 825# CONFIG_W1 is not set
881# CONFIG_POWER_SUPPLY is not set 826# CONFIG_POWER_SUPPLY is not set
882# CONFIG_HWMON is not set 827# CONFIG_HWMON is not set
@@ -893,12 +838,22 @@ CONFIG_SSB_POSSIBLE=y
893# Multifunction device drivers 838# Multifunction device drivers
894# 839#
895# CONFIG_MFD_SM501 is not set 840# CONFIG_MFD_SM501 is not set
841# CONFIG_HTC_PASIC3 is not set
896 842
897# 843#
898# Multimedia devices 844# Multimedia devices
899# 845#
846
847#
848# Multimedia core support
849#
900# CONFIG_VIDEO_DEV is not set 850# CONFIG_VIDEO_DEV is not set
901# CONFIG_DVB_CORE is not set 851# CONFIG_DVB_CORE is not set
852# CONFIG_VIDEO_MEDIA is not set
853
854#
855# Multimedia drivers
856#
902CONFIG_DAB=y 857CONFIG_DAB=y
903 858
904# 859#
@@ -908,7 +863,56 @@ CONFIG_DAB=y
908# CONFIG_DRM is not set 863# CONFIG_DRM is not set
909# CONFIG_VGASTATE is not set 864# CONFIG_VGASTATE is not set
910CONFIG_VIDEO_OUTPUT_CONTROL=y 865CONFIG_VIDEO_OUTPUT_CONTROL=y
911# CONFIG_FB is not set 866CONFIG_FB=y
867# CONFIG_FIRMWARE_EDID is not set
868# CONFIG_FB_DDC is not set
869CONFIG_FB_CFB_FILLRECT=y
870CONFIG_FB_CFB_COPYAREA=y
871CONFIG_FB_CFB_IMAGEBLIT=y
872# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
873# CONFIG_FB_SYS_FILLRECT is not set
874# CONFIG_FB_SYS_COPYAREA is not set
875# CONFIG_FB_SYS_IMAGEBLIT is not set
876# CONFIG_FB_FOREIGN_ENDIAN is not set
877# CONFIG_FB_SYS_FOPS is not set
878# CONFIG_FB_SVGALIB is not set
879# CONFIG_FB_MACMODES is not set
880# CONFIG_FB_BACKLIGHT is not set
881# CONFIG_FB_MODE_HELPERS is not set
882# CONFIG_FB_TILEBLITTING is not set
883
884#
885# Frame buffer hardware drivers
886#
887# CONFIG_FB_CIRRUS is not set
888# CONFIG_FB_PM2 is not set
889# CONFIG_FB_CYBER2000 is not set
890# CONFIG_FB_OF is not set
891# CONFIG_FB_CT65550 is not set
892# CONFIG_FB_ASILIANT is not set
893# CONFIG_FB_IMSTT is not set
894# CONFIG_FB_VGA16 is not set
895# CONFIG_FB_S1D13XXX is not set
896# CONFIG_FB_NVIDIA is not set
897# CONFIG_FB_RIVA is not set
898# CONFIG_FB_MATROX is not set
899# CONFIG_FB_RADEON is not set
900# CONFIG_FB_ATY128 is not set
901# CONFIG_FB_ATY is not set
902# CONFIG_FB_S3 is not set
903# CONFIG_FB_SAVAGE is not set
904# CONFIG_FB_SIS is not set
905# CONFIG_FB_NEOMAGIC is not set
906# CONFIG_FB_KYRO is not set
907# CONFIG_FB_3DFX is not set
908# CONFIG_FB_VOODOO1 is not set
909# CONFIG_FB_VT8623 is not set
910# CONFIG_FB_TRIDENT is not set
911# CONFIG_FB_ARK is not set
912# CONFIG_FB_PM3 is not set
913CONFIG_FB_FSL_DIU=y
914# CONFIG_FB_IBM_GXT4500 is not set
915# CONFIG_FB_VIRTUAL is not set
912# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 916# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
913 917
914# 918#
@@ -922,6 +926,8 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
922CONFIG_VGA_CONSOLE=y 926CONFIG_VGA_CONSOLE=y
923# CONFIG_VGACON_SOFT_SCROLLBACK is not set 927# CONFIG_VGACON_SOFT_SCROLLBACK is not set
924CONFIG_DUMMY_CONSOLE=y 928CONFIG_DUMMY_CONSOLE=y
929# CONFIG_FRAMEBUFFER_CONSOLE is not set
930# CONFIG_LOGO is not set
925 931
926# 932#
927# Sound 933# Sound
@@ -938,7 +944,7 @@ CONFIG_SND_PCM=y
938CONFIG_SND_OSSEMUL=y 944CONFIG_SND_OSSEMUL=y
939CONFIG_SND_MIXER_OSS=y 945CONFIG_SND_MIXER_OSS=y
940CONFIG_SND_PCM_OSS=y 946CONFIG_SND_PCM_OSS=y
941# CONFIG_SND_PCM_OSS_PLUGINS is not set 947CONFIG_SND_PCM_OSS_PLUGINS=y
942# CONFIG_SND_DYNAMIC_MINORS is not set 948# CONFIG_SND_DYNAMIC_MINORS is not set
943# CONFIG_SND_SUPPORT_OLD_API is not set 949# CONFIG_SND_SUPPORT_OLD_API is not set
944CONFIG_SND_VERBOSE_PROCFS=y 950CONFIG_SND_VERBOSE_PROCFS=y
@@ -965,6 +971,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
965# CONFIG_SND_AU8810 is not set 971# CONFIG_SND_AU8810 is not set
966# CONFIG_SND_AU8820 is not set 972# CONFIG_SND_AU8820 is not set
967# CONFIG_SND_AU8830 is not set 973# CONFIG_SND_AU8830 is not set
974# CONFIG_SND_AW2 is not set
968# CONFIG_SND_AZT3328 is not set 975# CONFIG_SND_AZT3328 is not set
969# CONFIG_SND_BT87X is not set 976# CONFIG_SND_BT87X is not set
970# CONFIG_SND_CA0106 is not set 977# CONFIG_SND_CA0106 is not set
@@ -1031,14 +1038,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1031CONFIG_SND_SOC=y 1038CONFIG_SND_SOC=y
1032 1039
1033# 1040#
1034# SoC Audio support for SuperH
1035#
1036
1037#
1038# ALSA SoC audio for Freescale SOCs 1041# ALSA SoC audio for Freescale SOCs
1039# 1042#
1040CONFIG_SND_SOC_MPC8610=y 1043CONFIG_SND_SOC_MPC8610=y
1041CONFIG_SND_SOC_MPC8610_HPCD=y 1044CONFIG_SND_SOC_MPC8610_HPCD=y
1045
1046#
1047# SoC Audio for the Texas Instruments OMAP
1048#
1042CONFIG_SND_SOC_CS4270=y 1049CONFIG_SND_SOC_CS4270=y
1043CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 1050CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
1044 1051
@@ -1055,6 +1062,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
1055CONFIG_USB_ARCH_HAS_OHCI=y 1062CONFIG_USB_ARCH_HAS_OHCI=y
1056CONFIG_USB_ARCH_HAS_EHCI=y 1063CONFIG_USB_ARCH_HAS_EHCI=y
1057# CONFIG_USB is not set 1064# CONFIG_USB is not set
1065# CONFIG_USB_OTG_WHITELIST is not set
1066# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1058 1067
1059# 1068#
1060# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1069# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1063,14 +1072,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1063# CONFIG_MMC is not set 1072# CONFIG_MMC is not set
1064# CONFIG_MEMSTICK is not set 1073# CONFIG_MEMSTICK is not set
1065# CONFIG_NEW_LEDS is not set 1074# CONFIG_NEW_LEDS is not set
1075# CONFIG_ACCESSIBILITY is not set
1066# CONFIG_INFINIBAND is not set 1076# CONFIG_INFINIBAND is not set
1067# CONFIG_EDAC is not set 1077# CONFIG_EDAC is not set
1068# CONFIG_RTC_CLASS is not set 1078# CONFIG_RTC_CLASS is not set
1069# CONFIG_DMADEVICES is not set 1079# CONFIG_DMADEVICES is not set
1070
1071#
1072# Userspace I/O
1073#
1074# CONFIG_UIO is not set 1080# CONFIG_UIO is not set
1075 1081
1076# 1082#
@@ -1090,7 +1096,6 @@ CONFIG_FS_MBCACHE=y
1090# CONFIG_JFS_FS is not set 1096# CONFIG_JFS_FS is not set
1091# CONFIG_FS_POSIX_ACL is not set 1097# CONFIG_FS_POSIX_ACL is not set
1092# CONFIG_XFS_FS is not set 1098# CONFIG_XFS_FS is not set
1093# CONFIG_GFS2_FS is not set
1094# CONFIG_OCFS2_FS is not set 1099# CONFIG_OCFS2_FS is not set
1095# CONFIG_DNOTIFY is not set 1100# CONFIG_DNOTIFY is not set
1096# CONFIG_INOTIFY is not set 1101# CONFIG_INOTIFY is not set
@@ -1134,6 +1139,7 @@ CONFIG_TMPFS=y
1134# CONFIG_BEFS_FS is not set 1139# CONFIG_BEFS_FS is not set
1135# CONFIG_BFS_FS is not set 1140# CONFIG_BFS_FS is not set
1136# CONFIG_EFS_FS is not set 1141# CONFIG_EFS_FS is not set
1142# CONFIG_JFFS2_FS is not set
1137# CONFIG_CRAMFS is not set 1143# CONFIG_CRAMFS is not set
1138# CONFIG_VXFS_FS is not set 1144# CONFIG_VXFS_FS is not set
1139# CONFIG_MINIX_FS is not set 1145# CONFIG_MINIX_FS is not set
@@ -1147,10 +1153,9 @@ CONFIG_NFS_FS=y
1147CONFIG_NFS_V3=y 1153CONFIG_NFS_V3=y
1148# CONFIG_NFS_V3_ACL is not set 1154# CONFIG_NFS_V3_ACL is not set
1149# CONFIG_NFS_V4 is not set 1155# CONFIG_NFS_V4 is not set
1150# CONFIG_NFS_DIRECTIO is not set
1151CONFIG_NFSD=y 1156CONFIG_NFSD=y
1152# CONFIG_NFSD_V3 is not set 1157# CONFIG_NFSD_V3 is not set
1153CONFIG_NFSD_TCP=y 1158# CONFIG_NFSD_V4 is not set
1154CONFIG_ROOT_NFS=y 1159CONFIG_ROOT_NFS=y
1155CONFIG_LOCKD=y 1160CONFIG_LOCKD=y
1156CONFIG_LOCKD_V4=y 1161CONFIG_LOCKD_V4=y
@@ -1234,6 +1239,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1234# Library routines 1239# Library routines
1235# 1240#
1236CONFIG_BITREVERSE=y 1241CONFIG_BITREVERSE=y
1242# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1237# CONFIG_CRC_CCITT is not set 1243# CONFIG_CRC_CCITT is not set
1238# CONFIG_CRC16 is not set 1244# CONFIG_CRC16 is not set
1239# CONFIG_CRC_ITU_T is not set 1245# CONFIG_CRC_ITU_T is not set
@@ -1244,6 +1250,7 @@ CONFIG_PLIST=y
1244CONFIG_HAS_IOMEM=y 1250CONFIG_HAS_IOMEM=y
1245CONFIG_HAS_IOPORT=y 1251CONFIG_HAS_IOPORT=y
1246CONFIG_HAS_DMA=y 1252CONFIG_HAS_DMA=y
1253CONFIG_HAVE_LMB=y
1247 1254
1248# 1255#
1249# Kernel hacking 1256# Kernel hacking
@@ -1251,6 +1258,7 @@ CONFIG_HAS_DMA=y
1251# CONFIG_PRINTK_TIME is not set 1258# CONFIG_PRINTK_TIME is not set
1252CONFIG_ENABLE_WARN_DEPRECATED=y 1259CONFIG_ENABLE_WARN_DEPRECATED=y
1253CONFIG_ENABLE_MUST_CHECK=y 1260CONFIG_ENABLE_MUST_CHECK=y
1261CONFIG_FRAME_WARN=1024
1254# CONFIG_MAGIC_SYSRQ is not set 1262# CONFIG_MAGIC_SYSRQ is not set
1255# CONFIG_UNUSED_SYMBOLS is not set 1263# CONFIG_UNUSED_SYMBOLS is not set
1256# CONFIG_DEBUG_FS is not set 1264# CONFIG_DEBUG_FS is not set
@@ -1261,6 +1269,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1261CONFIG_SCHED_DEBUG=y 1269CONFIG_SCHED_DEBUG=y
1262# CONFIG_SCHEDSTATS is not set 1270# CONFIG_SCHEDSTATS is not set
1263# CONFIG_TIMER_STATS is not set 1271# CONFIG_TIMER_STATS is not set
1272# CONFIG_DEBUG_OBJECTS is not set
1264# CONFIG_SLUB_DEBUG_ON is not set 1273# CONFIG_SLUB_DEBUG_ON is not set
1265# CONFIG_SLUB_STATS is not set 1274# CONFIG_SLUB_STATS is not set
1266# CONFIG_DEBUG_RT_MUTEXES is not set 1275# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1274,9 +1283,11 @@ CONFIG_SCHED_DEBUG=y
1274CONFIG_DEBUG_BUGVERBOSE=y 1283CONFIG_DEBUG_BUGVERBOSE=y
1275CONFIG_DEBUG_INFO=y 1284CONFIG_DEBUG_INFO=y
1276# CONFIG_DEBUG_VM is not set 1285# CONFIG_DEBUG_VM is not set
1286# CONFIG_DEBUG_WRITECOUNT is not set
1277# CONFIG_DEBUG_LIST is not set 1287# CONFIG_DEBUG_LIST is not set
1278# CONFIG_DEBUG_SG is not set 1288# CONFIG_DEBUG_SG is not set
1279# CONFIG_BOOT_PRINTK_DELAY is not set 1289# CONFIG_BOOT_PRINTK_DELAY is not set
1290# CONFIG_RCU_TORTURE_TEST is not set
1280# CONFIG_BACKTRACE_SELF_TEST is not set 1291# CONFIG_BACKTRACE_SELF_TEST is not set
1281# CONFIG_FAULT_INJECTION is not set 1292# CONFIG_FAULT_INJECTION is not set
1282# CONFIG_SAMPLES is not set 1293# CONFIG_SAMPLES is not set
@@ -1284,6 +1295,7 @@ CONFIG_DEBUG_INFO=y
1284# CONFIG_DEBUG_STACK_USAGE is not set 1295# CONFIG_DEBUG_STACK_USAGE is not set
1285# CONFIG_DEBUG_PAGEALLOC is not set 1296# CONFIG_DEBUG_PAGEALLOC is not set
1286# CONFIG_DEBUGGER is not set 1297# CONFIG_DEBUGGER is not set
1298# CONFIG_IRQSTACKS is not set
1287# CONFIG_BDI_SWITCH is not set 1299# CONFIG_BDI_SWITCH is not set
1288# CONFIG_PPC_EARLY_DEBUG is not set 1300# CONFIG_PPC_EARLY_DEBUG is not set
1289 1301
@@ -1294,48 +1306,80 @@ CONFIG_DEBUG_INFO=y
1294# CONFIG_SECURITY is not set 1306# CONFIG_SECURITY is not set
1295# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1307# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1296CONFIG_CRYPTO=y 1308CONFIG_CRYPTO=y
1297# CONFIG_CRYPTO_SEQIV is not set 1309
1310#
1311# Crypto core or helper
1312#
1298# CONFIG_CRYPTO_MANAGER is not set 1313# CONFIG_CRYPTO_MANAGER is not set
1314# CONFIG_CRYPTO_GF128MUL is not set
1315# CONFIG_CRYPTO_NULL is not set
1316# CONFIG_CRYPTO_CRYPTD is not set
1317# CONFIG_CRYPTO_AUTHENC is not set
1318# CONFIG_CRYPTO_TEST is not set
1319
1320#
1321# Authenticated Encryption with Associated Data
1322#
1323# CONFIG_CRYPTO_CCM is not set
1324# CONFIG_CRYPTO_GCM is not set
1325# CONFIG_CRYPTO_SEQIV is not set
1326
1327#
1328# Block modes
1329#
1330# CONFIG_CRYPTO_CBC is not set
1331# CONFIG_CRYPTO_CTR is not set
1332# CONFIG_CRYPTO_CTS is not set
1333# CONFIG_CRYPTO_ECB is not set
1334# CONFIG_CRYPTO_LRW is not set
1335# CONFIG_CRYPTO_PCBC is not set
1336# CONFIG_CRYPTO_XTS is not set
1337
1338#
1339# Hash modes
1340#
1299# CONFIG_CRYPTO_HMAC is not set 1341# CONFIG_CRYPTO_HMAC is not set
1300# CONFIG_CRYPTO_XCBC is not set 1342# CONFIG_CRYPTO_XCBC is not set
1301# CONFIG_CRYPTO_NULL is not set 1343
1344#
1345# Digest
1346#
1347# CONFIG_CRYPTO_CRC32C is not set
1302# CONFIG_CRYPTO_MD4 is not set 1348# CONFIG_CRYPTO_MD4 is not set
1303# CONFIG_CRYPTO_MD5 is not set 1349# CONFIG_CRYPTO_MD5 is not set
1350# CONFIG_CRYPTO_MICHAEL_MIC is not set
1304# CONFIG_CRYPTO_SHA1 is not set 1351# CONFIG_CRYPTO_SHA1 is not set
1305# CONFIG_CRYPTO_SHA256 is not set 1352# CONFIG_CRYPTO_SHA256 is not set
1306# CONFIG_CRYPTO_SHA512 is not set 1353# CONFIG_CRYPTO_SHA512 is not set
1307# CONFIG_CRYPTO_WP512 is not set
1308# CONFIG_CRYPTO_TGR192 is not set 1354# CONFIG_CRYPTO_TGR192 is not set
1309# CONFIG_CRYPTO_GF128MUL is not set 1355# CONFIG_CRYPTO_WP512 is not set
1310# CONFIG_CRYPTO_ECB is not set 1356
1311# CONFIG_CRYPTO_CBC is not set 1357#
1312# CONFIG_CRYPTO_PCBC is not set 1358# Ciphers
1313# CONFIG_CRYPTO_LRW is not set 1359#
1314# CONFIG_CRYPTO_XTS is not set
1315# CONFIG_CRYPTO_CTR is not set
1316# CONFIG_CRYPTO_GCM is not set
1317# CONFIG_CRYPTO_CCM is not set
1318# CONFIG_CRYPTO_CRYPTD is not set
1319# CONFIG_CRYPTO_DES is not set
1320# CONFIG_CRYPTO_FCRYPT is not set
1321# CONFIG_CRYPTO_BLOWFISH is not set
1322# CONFIG_CRYPTO_TWOFISH is not set
1323# CONFIG_CRYPTO_SERPENT is not set
1324# CONFIG_CRYPTO_AES is not set 1360# CONFIG_CRYPTO_AES is not set
1361# CONFIG_CRYPTO_ANUBIS is not set
1362# CONFIG_CRYPTO_ARC4 is not set
1363# CONFIG_CRYPTO_BLOWFISH is not set
1364# CONFIG_CRYPTO_CAMELLIA is not set
1325# CONFIG_CRYPTO_CAST5 is not set 1365# CONFIG_CRYPTO_CAST5 is not set
1326# CONFIG_CRYPTO_CAST6 is not set 1366# CONFIG_CRYPTO_CAST6 is not set
1327# CONFIG_CRYPTO_TEA is not set 1367# CONFIG_CRYPTO_DES is not set
1328# CONFIG_CRYPTO_ARC4 is not set 1368# CONFIG_CRYPTO_FCRYPT is not set
1329# CONFIG_CRYPTO_KHAZAD is not set 1369# CONFIG_CRYPTO_KHAZAD is not set
1330# CONFIG_CRYPTO_ANUBIS is not set
1331# CONFIG_CRYPTO_SEED is not set
1332# CONFIG_CRYPTO_SALSA20 is not set 1370# CONFIG_CRYPTO_SALSA20 is not set
1371# CONFIG_CRYPTO_SEED is not set
1372# CONFIG_CRYPTO_SERPENT is not set
1373# CONFIG_CRYPTO_TEA is not set
1374# CONFIG_CRYPTO_TWOFISH is not set
1375
1376#
1377# Compression
1378#
1333# CONFIG_CRYPTO_DEFLATE is not set 1379# CONFIG_CRYPTO_DEFLATE is not set
1334# CONFIG_CRYPTO_MICHAEL_MIC is not set
1335# CONFIG_CRYPTO_CRC32C is not set
1336# CONFIG_CRYPTO_CAMELLIA is not set
1337# CONFIG_CRYPTO_AUTHENC is not set
1338# CONFIG_CRYPTO_LZO is not set 1380# CONFIG_CRYPTO_LZO is not set
1339CONFIG_CRYPTO_HW=y 1381CONFIG_CRYPTO_HW=y
1340# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1382# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1341# CONFIG_PPC_CLOCK is not set 1383# CONFIG_PPC_CLOCK is not set
1384CONFIG_PPC_LIB_RHEAP=y
1385# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8641_hpcn_defconfig b/arch/powerpc/configs/mpc8641_hpcn_defconfig
index d01dcdb70bd7..4a8171507391 100644
--- a/arch/powerpc/configs/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/mpc8641_hpcn_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:11 2008 4# Mon Jun 9 08:52:15 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
94CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
95CONFIG_KALLSYMS_EXTRA_PASS=y 98CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -117,12 +120,14 @@ CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123# CONFIG_HAVE_DMA_ATTRS is not set
120CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
124CONFIG_BASE_SMALL=0 128CONFIG_BASE_SMALL=0
125CONFIG_MODULES=y 129CONFIG_MODULES=y
130# CONFIG_MODULE_FORCE_LOAD is not set
126CONFIG_MODULE_UNLOAD=y 131CONFIG_MODULE_UNLOAD=y
127CONFIG_MODULE_FORCE_UNLOAD=y 132CONFIG_MODULE_FORCE_UNLOAD=y
128CONFIG_MODVERSIONS=y 133CONFIG_MODVERSIONS=y
@@ -162,6 +167,7 @@ CONFIG_PPC_86xx=y
162# CONFIG_PPC_CELL_NATIVE is not set 167# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 168# CONFIG_PQ2ADS is not set
164CONFIG_MPC8641_HPCN=y 169CONFIG_MPC8641_HPCN=y
170# CONFIG_SBC8641D is not set
165# CONFIG_MPC8610_HPCD is not set 171# CONFIG_MPC8610_HPCD is not set
166CONFIG_MPC8641=y 172CONFIG_MPC8641=y
167# CONFIG_IPIC is not set 173# CONFIG_IPIC is not set
@@ -211,11 +217,13 @@ CONFIG_FLATMEM=y
211CONFIG_FLAT_NODE_MEM_MAP=y 217CONFIG_FLAT_NODE_MEM_MAP=y
212# CONFIG_SPARSEMEM_STATIC is not set 218# CONFIG_SPARSEMEM_STATIC is not set
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y
214CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
215# CONFIG_RESOURCES_64BIT is not set 222# CONFIG_RESOURCES_64BIT is not set
216CONFIG_ZONE_DMA_FLAG=1 223CONFIG_ZONE_DMA_FLAG=1
217CONFIG_BOUNCE=y 224CONFIG_BOUNCE=y
218CONFIG_VIRT_TO_BUS=y 225CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11
219CONFIG_PROC_DEVICETREE=y 227CONFIG_PROC_DEVICETREE=y
220# CONFIG_CMDLINE_BOOL is not set 228# CONFIG_CMDLINE_BOOL is not set
221# CONFIG_PM is not set 229# CONFIG_PM is not set
@@ -240,6 +248,8 @@ CONFIG_PCI_LEGACY=y
240# CONFIG_PCI_DEBUG is not set 248# CONFIG_PCI_DEBUG is not set
241# CONFIG_PCCARD is not set 249# CONFIG_PCCARD is not set
242# CONFIG_HOTPLUG_PCI is not set 250# CONFIG_HOTPLUG_PCI is not set
251CONFIG_HAS_RAPIDIO=y
252# CONFIG_RAPIDIO is not set
243 253
244# 254#
245# Advanced setup 255# Advanced setup
@@ -249,11 +259,11 @@ CONFIG_PCI_LEGACY=y
249# 259#
250# Default settings for advanced configuration options are used 260# Default settings for advanced configuration options are used
251# 261#
252CONFIG_HIGHMEM_START=0xfe000000
253CONFIG_LOWMEM_SIZE=0x30000000 262CONFIG_LOWMEM_SIZE=0x30000000
263CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 264CONFIG_KERNEL_START=0xc0000000
265CONFIG_PHYSICAL_START=0x00000000
255CONFIG_TASK_SIZE=0xc0000000 266CONFIG_TASK_SIZE=0xc0000000
256CONFIG_BOOT_LOAD=0x00800000
257 267
258# 268#
259# Networking 269# Networking
@@ -324,8 +334,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
324CONFIG_INET6_XFRM_MODE_BEET=y 334CONFIG_INET6_XFRM_MODE_BEET=y
325# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 335# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
326CONFIG_IPV6_SIT=y 336CONFIG_IPV6_SIT=y
337CONFIG_IPV6_NDISC_NODETYPE=y
327# CONFIG_IPV6_TUNNEL is not set 338# CONFIG_IPV6_TUNNEL is not set
328# CONFIG_IPV6_MULTIPLE_TABLES is not set 339# CONFIG_IPV6_MULTIPLE_TABLES is not set
340# CONFIG_IPV6_MROUTE is not set
329# CONFIG_NETWORK_SECMARK is not set 341# CONFIG_NETWORK_SECMARK is not set
330# CONFIG_NETFILTER is not set 342# CONFIG_NETFILTER is not set
331# CONFIG_IP_DCCP is not set 343# CONFIG_IP_DCCP is not set
@@ -387,6 +399,7 @@ CONFIG_FW_LOADER=y
387# CONFIG_CONNECTOR is not set 399# CONFIG_CONNECTOR is not set
388# CONFIG_MTD is not set 400# CONFIG_MTD is not set
389CONFIG_OF_DEVICE=y 401CONFIG_OF_DEVICE=y
402CONFIG_OF_I2C=y
390# CONFIG_PARPORT is not set 403# CONFIG_PARPORT is not set
391CONFIG_BLK_DEV=y 404CONFIG_BLK_DEV=y
392# CONFIG_BLK_DEV_FD is not set 405# CONFIG_BLK_DEV_FD is not set
@@ -493,7 +506,11 @@ CONFIG_SCSI_LOWLEVEL=y
493# CONFIG_SCSI_SRP is not set 506# CONFIG_SCSI_SRP is not set
494CONFIG_ATA=y 507CONFIG_ATA=y
495# CONFIG_ATA_NONSTANDARD is not set 508# CONFIG_ATA_NONSTANDARD is not set
509CONFIG_SATA_PMP=y
496CONFIG_SATA_AHCI=y 510CONFIG_SATA_AHCI=y
511# CONFIG_SATA_SIL24 is not set
512# CONFIG_SATA_FSL is not set
513CONFIG_ATA_SFF=y
497# CONFIG_SATA_SVW is not set 514# CONFIG_SATA_SVW is not set
498# CONFIG_ATA_PIIX is not set 515# CONFIG_ATA_PIIX is not set
499# CONFIG_SATA_MV is not set 516# CONFIG_SATA_MV is not set
@@ -503,13 +520,11 @@ CONFIG_SATA_AHCI=y
503# CONFIG_SATA_PROMISE is not set 520# CONFIG_SATA_PROMISE is not set
504# CONFIG_SATA_SX4 is not set 521# CONFIG_SATA_SX4 is not set
505# CONFIG_SATA_SIL is not set 522# CONFIG_SATA_SIL is not set
506# CONFIG_SATA_SIL24 is not set
507# CONFIG_SATA_SIS is not set 523# CONFIG_SATA_SIS is not set
508# CONFIG_SATA_ULI is not set 524# CONFIG_SATA_ULI is not set
509# CONFIG_SATA_VIA is not set 525# CONFIG_SATA_VIA is not set
510# CONFIG_SATA_VITESSE is not set 526# CONFIG_SATA_VITESSE is not set
511# CONFIG_SATA_INIC162X is not set 527# CONFIG_SATA_INIC162X is not set
512# CONFIG_SATA_FSL is not set
513CONFIG_PATA_ALI=y 528CONFIG_PATA_ALI=y
514# CONFIG_PATA_AMD is not set 529# CONFIG_PATA_AMD is not set
515# CONFIG_PATA_ARTOP is not set 530# CONFIG_PATA_ARTOP is not set
@@ -549,6 +564,7 @@ CONFIG_PATA_ALI=y
549# CONFIG_PATA_VIA is not set 564# CONFIG_PATA_VIA is not set
550# CONFIG_PATA_WINBOND is not set 565# CONFIG_PATA_WINBOND is not set
551# CONFIG_PATA_PLATFORM is not set 566# CONFIG_PATA_PLATFORM is not set
567# CONFIG_PATA_SCH is not set
552# CONFIG_MD is not set 568# CONFIG_MD is not set
553# CONFIG_FUSION is not set 569# CONFIG_FUSION is not set
554 570
@@ -614,7 +630,6 @@ CONFIG_NETDEV_1000=y
614# CONFIG_SIS190 is not set 630# CONFIG_SIS190 is not set
615# CONFIG_SKGE is not set 631# CONFIG_SKGE is not set
616# CONFIG_SKY2 is not set 632# CONFIG_SKY2 is not set
617# CONFIG_SK98LIN is not set
618# CONFIG_VIA_VELOCITY is not set 633# CONFIG_VIA_VELOCITY is not set
619# CONFIG_TIGON3 is not set 634# CONFIG_TIGON3 is not set
620# CONFIG_BNX2 is not set 635# CONFIG_BNX2 is not set
@@ -634,6 +649,7 @@ CONFIG_NETDEV_10000=y
634# CONFIG_MLX4_CORE is not set 649# CONFIG_MLX4_CORE is not set
635# CONFIG_TEHUTI is not set 650# CONFIG_TEHUTI is not set
636# CONFIG_BNX2X is not set 651# CONFIG_BNX2X is not set
652# CONFIG_SFC is not set
637# CONFIG_TR is not set 653# CONFIG_TR is not set
638 654
639# 655#
@@ -641,6 +657,7 @@ CONFIG_NETDEV_10000=y
641# 657#
642# CONFIG_WLAN_PRE80211 is not set 658# CONFIG_WLAN_PRE80211 is not set
643# CONFIG_WLAN_80211 is not set 659# CONFIG_WLAN_80211 is not set
660# CONFIG_IWLWIFI_LEDS is not set
644 661
645# 662#
646# USB Network Adapters 663# USB Network Adapters
@@ -705,6 +722,7 @@ CONFIG_VT=y
705CONFIG_VT_CONSOLE=y 722CONFIG_VT_CONSOLE=y
706CONFIG_HW_CONSOLE=y 723CONFIG_HW_CONSOLE=y
707# CONFIG_VT_HW_CONSOLE_BINDING is not set 724# CONFIG_VT_HW_CONSOLE_BINDING is not set
725CONFIG_DEVKMEM=y
708# CONFIG_SERIAL_NONSTANDARD is not set 726# CONFIG_SERIAL_NONSTANDARD is not set
709# CONFIG_NOZOMI is not set 727# CONFIG_NOZOMI is not set
710 728
@@ -736,7 +754,6 @@ CONFIG_LEGACY_PTY_COUNT=256
736# CONFIG_IPMI_HANDLER is not set 754# CONFIG_IPMI_HANDLER is not set
737# CONFIG_HW_RANDOM is not set 755# CONFIG_HW_RANDOM is not set
738CONFIG_NVRAM=y 756CONFIG_NVRAM=y
739# CONFIG_GEN_RTC is not set
740# CONFIG_R3964 is not set 757# CONFIG_R3964 is not set
741# CONFIG_APPLICOM is not set 758# CONFIG_APPLICOM is not set
742# CONFIG_RAW_DRIVER is not set 759# CONFIG_RAW_DRIVER is not set
@@ -747,13 +764,6 @@ CONFIG_I2C_BOARDINFO=y
747# CONFIG_I2C_CHARDEV is not set 764# CONFIG_I2C_CHARDEV is not set
748 765
749# 766#
750# I2C Algorithms
751#
752# CONFIG_I2C_ALGOBIT is not set
753# CONFIG_I2C_ALGOPCF is not set
754# CONFIG_I2C_ALGOPCA is not set
755
756#
757# I2C Hardware Bus support 767# I2C Hardware Bus support
758# 768#
759# CONFIG_I2C_ALI1535 is not set 769# CONFIG_I2C_ALI1535 is not set
@@ -780,6 +790,7 @@ CONFIG_I2C_MPC=y
780# CONFIG_I2C_VIA is not set 790# CONFIG_I2C_VIA is not set
781# CONFIG_I2C_VIAPRO is not set 791# CONFIG_I2C_VIAPRO is not set
782# CONFIG_I2C_VOODOO3 is not set 792# CONFIG_I2C_VOODOO3 is not set
793# CONFIG_I2C_PCA_PLATFORM is not set
783 794
784# 795#
785# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
@@ -789,19 +800,13 @@ CONFIG_SENSORS_EEPROM=y
789# CONFIG_SENSORS_PCF8574 is not set 800# CONFIG_SENSORS_PCF8574 is not set
790# CONFIG_PCF8575 is not set 801# CONFIG_PCF8575 is not set
791# CONFIG_SENSORS_PCF8591 is not set 802# CONFIG_SENSORS_PCF8591 is not set
792# CONFIG_TPS65010 is not set
793# CONFIG_SENSORS_MAX6875 is not set 803# CONFIG_SENSORS_MAX6875 is not set
794# CONFIG_SENSORS_TSL2550 is not set 804# CONFIG_SENSORS_TSL2550 is not set
795# CONFIG_I2C_DEBUG_CORE is not set 805# CONFIG_I2C_DEBUG_CORE is not set
796# CONFIG_I2C_DEBUG_ALGO is not set 806# CONFIG_I2C_DEBUG_ALGO is not set
797# CONFIG_I2C_DEBUG_BUS is not set 807# CONFIG_I2C_DEBUG_BUS is not set
798# CONFIG_I2C_DEBUG_CHIP is not set 808# CONFIG_I2C_DEBUG_CHIP is not set
799
800#
801# SPI support
802#
803# CONFIG_SPI is not set 809# CONFIG_SPI is not set
804# CONFIG_SPI_MASTER is not set
805# CONFIG_W1 is not set 810# CONFIG_W1 is not set
806# CONFIG_POWER_SUPPLY is not set 811# CONFIG_POWER_SUPPLY is not set
807# CONFIG_HWMON is not set 812# CONFIG_HWMON is not set
@@ -818,13 +823,33 @@ CONFIG_SSB_POSSIBLE=y
818# Multifunction device drivers 823# Multifunction device drivers
819# 824#
820# CONFIG_MFD_SM501 is not set 825# CONFIG_MFD_SM501 is not set
826# CONFIG_HTC_PASIC3 is not set
821 827
822# 828#
823# Multimedia devices 829# Multimedia devices
824# 830#
831
832#
833# Multimedia core support
834#
825# CONFIG_VIDEO_DEV is not set 835# CONFIG_VIDEO_DEV is not set
826CONFIG_DVB_CORE=m 836CONFIG_DVB_CORE=m
827# CONFIG_DVB_CORE_ATTACH is not set 837CONFIG_VIDEO_MEDIA=m
838
839#
840# Multimedia drivers
841#
842# CONFIG_MEDIA_ATTACH is not set
843CONFIG_MEDIA_TUNER=m
844# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
845CONFIG_MEDIA_TUNER_SIMPLE=m
846CONFIG_MEDIA_TUNER_TDA8290=m
847CONFIG_MEDIA_TUNER_TDA9887=m
848CONFIG_MEDIA_TUNER_TEA5761=m
849CONFIG_MEDIA_TUNER_TEA5767=m
850CONFIG_MEDIA_TUNER_MT20XX=m
851CONFIG_MEDIA_TUNER_XC2028=m
852CONFIG_MEDIA_TUNER_XC5000=m
828CONFIG_DVB_CAPTURE_DRIVERS=y 853CONFIG_DVB_CAPTURE_DRIVERS=y
829 854
830# 855#
@@ -867,14 +892,17 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
867# 892#
868# DVB-S (satellite) frontends 893# DVB-S (satellite) frontends
869# 894#
870# CONFIG_DVB_STV0299 is not set
871# CONFIG_DVB_CX24110 is not set 895# CONFIG_DVB_CX24110 is not set
872# CONFIG_DVB_CX24123 is not set 896# CONFIG_DVB_CX24123 is not set
873# CONFIG_DVB_TDA8083 is not set
874# CONFIG_DVB_MT312 is not set 897# CONFIG_DVB_MT312 is not set
875# CONFIG_DVB_VES1X93 is not set
876# CONFIG_DVB_S5H1420 is not set 898# CONFIG_DVB_S5H1420 is not set
899# CONFIG_DVB_STV0299 is not set
900# CONFIG_DVB_TDA8083 is not set
877# CONFIG_DVB_TDA10086 is not set 901# CONFIG_DVB_TDA10086 is not set
902# CONFIG_DVB_VES1X93 is not set
903# CONFIG_DVB_TUNER_ITD1000 is not set
904# CONFIG_DVB_TDA826X is not set
905# CONFIG_DVB_TUA6100 is not set
878 906
879# 907#
880# DVB-T (terrestrial) frontends 908# DVB-T (terrestrial) frontends
@@ -892,6 +920,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
892# CONFIG_DVB_DIB3000MC is not set 920# CONFIG_DVB_DIB3000MC is not set
893# CONFIG_DVB_DIB7000M is not set 921# CONFIG_DVB_DIB7000M is not set
894# CONFIG_DVB_DIB7000P is not set 922# CONFIG_DVB_DIB7000P is not set
923# CONFIG_DVB_TDA10048 is not set
895 924
896# 925#
897# DVB-C (cable) frontends 926# DVB-C (cable) frontends
@@ -910,27 +939,21 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
910# CONFIG_DVB_BCM3510 is not set 939# CONFIG_DVB_BCM3510 is not set
911# CONFIG_DVB_LGDT330X is not set 940# CONFIG_DVB_LGDT330X is not set
912# CONFIG_DVB_S5H1409 is not set 941# CONFIG_DVB_S5H1409 is not set
942# CONFIG_DVB_AU8522 is not set
943# CONFIG_DVB_S5H1411 is not set
913 944
914# 945#
915# Tuners/PLL support 946# Digital terrestrial only tuners/PLL
916# 947#
917# CONFIG_DVB_PLL is not set 948# CONFIG_DVB_PLL is not set
918# CONFIG_DVB_TDA826X is not set
919# CONFIG_DVB_TDA827X is not set
920# CONFIG_DVB_TDA18271 is not set
921# CONFIG_DVB_TUNER_QT1010 is not set
922# CONFIG_DVB_TUNER_MT2060 is not set
923# CONFIG_DVB_TUNER_MT2266 is not set
924# CONFIG_DVB_TUNER_MT2131 is not set
925# CONFIG_DVB_TUNER_DIB0070 is not set 949# CONFIG_DVB_TUNER_DIB0070 is not set
926# CONFIG_DVB_TUNER_XC5000 is not set
927 950
928# 951#
929# Miscellaneous devices 952# SEC control devices for DVB-S
930# 953#
931# CONFIG_DVB_LNBP21 is not set 954# CONFIG_DVB_LNBP21 is not set
955# CONFIG_DVB_ISL6405 is not set
932# CONFIG_DVB_ISL6421 is not set 956# CONFIG_DVB_ISL6421 is not set
933# CONFIG_DVB_TUA6100 is not set
934CONFIG_DAB=y 957CONFIG_DAB=y
935# CONFIG_USB_DABUSB is not set 958# CONFIG_USB_DABUSB is not set
936 959
@@ -997,6 +1020,7 @@ CONFIG_SND_AC97_CODEC=y
997# CONFIG_SND_AU8810 is not set 1020# CONFIG_SND_AU8810 is not set
998# CONFIG_SND_AU8820 is not set 1021# CONFIG_SND_AU8820 is not set
999# CONFIG_SND_AU8830 is not set 1022# CONFIG_SND_AU8830 is not set
1023# CONFIG_SND_AW2 is not set
1000# CONFIG_SND_AZT3328 is not set 1024# CONFIG_SND_AZT3328 is not set
1001# CONFIG_SND_BT87X is not set 1025# CONFIG_SND_BT87X is not set
1002# CONFIG_SND_CA0106 is not set 1026# CONFIG_SND_CA0106 is not set
@@ -1071,11 +1095,11 @@ CONFIG_SND_INTEL8X0=y
1071# CONFIG_SND_SOC is not set 1095# CONFIG_SND_SOC is not set
1072 1096
1073# 1097#
1074# SoC Audio support for SuperH 1098# ALSA SoC audio for Freescale SOCs
1075# 1099#
1076 1100
1077# 1101#
1078# ALSA SoC audio for Freescale SOCs 1102# SoC Audio for the Texas Instruments OMAP
1079# 1103#
1080 1104
1081# 1105#
@@ -1110,16 +1134,20 @@ CONFIG_USB_DEVICEFS=y
1110CONFIG_USB_DEVICE_CLASS=y 1134CONFIG_USB_DEVICE_CLASS=y
1111# CONFIG_USB_DYNAMIC_MINORS is not set 1135# CONFIG_USB_DYNAMIC_MINORS is not set
1112# CONFIG_USB_OTG is not set 1136# CONFIG_USB_OTG is not set
1137# CONFIG_USB_OTG_WHITELIST is not set
1138# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1113 1139
1114# 1140#
1115# USB Host Controller Drivers 1141# USB Host Controller Drivers
1116# 1142#
1143# CONFIG_USB_C67X00_HCD is not set
1117CONFIG_USB_EHCI_HCD=y 1144CONFIG_USB_EHCI_HCD=y
1118# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1145# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1119# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1146# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1120# CONFIG_USB_EHCI_FSL is not set 1147# CONFIG_USB_EHCI_FSL is not set
1121CONFIG_USB_EHCI_HCD_PPC_OF=y 1148CONFIG_USB_EHCI_HCD_PPC_OF=y
1122# CONFIG_USB_ISP116X_HCD is not set 1149# CONFIG_USB_ISP116X_HCD is not set
1150# CONFIG_USB_ISP1760_HCD is not set
1123CONFIG_USB_OHCI_HCD=y 1151CONFIG_USB_OHCI_HCD=y
1124CONFIG_USB_OHCI_HCD_PPC_OF=y 1152CONFIG_USB_OHCI_HCD_PPC_OF=y
1125CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1153CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
@@ -1137,6 +1165,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1137# 1165#
1138# CONFIG_USB_ACM is not set 1166# CONFIG_USB_ACM is not set
1139# CONFIG_USB_PRINTER is not set 1167# CONFIG_USB_PRINTER is not set
1168# CONFIG_USB_WDM is not set
1140 1169
1141# 1170#
1142# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1171# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1156,7 +1185,9 @@ CONFIG_USB_STORAGE=y
1156# CONFIG_USB_STORAGE_SDDR55 is not set 1185# CONFIG_USB_STORAGE_SDDR55 is not set
1157# CONFIG_USB_STORAGE_JUMPSHOT is not set 1186# CONFIG_USB_STORAGE_JUMPSHOT is not set
1158# CONFIG_USB_STORAGE_ALAUDA is not set 1187# CONFIG_USB_STORAGE_ALAUDA is not set
1188# CONFIG_USB_STORAGE_ONETOUCH is not set
1159# CONFIG_USB_STORAGE_KARMA is not set 1189# CONFIG_USB_STORAGE_KARMA is not set
1190# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1160# CONFIG_USB_LIBUSUAL is not set 1191# CONFIG_USB_LIBUSUAL is not set
1161 1192
1162# 1193#
@@ -1194,10 +1225,12 @@ CONFIG_USB_MON=y
1194# CONFIG_USB_TRANCEVIBRATOR is not set 1225# CONFIG_USB_TRANCEVIBRATOR is not set
1195# CONFIG_USB_IOWARRIOR is not set 1226# CONFIG_USB_IOWARRIOR is not set
1196# CONFIG_USB_TEST is not set 1227# CONFIG_USB_TEST is not set
1228# CONFIG_USB_ISIGHTFW is not set
1197# CONFIG_USB_GADGET is not set 1229# CONFIG_USB_GADGET is not set
1198# CONFIG_MMC is not set 1230# CONFIG_MMC is not set
1199# CONFIG_MEMSTICK is not set 1231# CONFIG_MEMSTICK is not set
1200# CONFIG_NEW_LEDS is not set 1232# CONFIG_NEW_LEDS is not set
1233# CONFIG_ACCESSIBILITY is not set
1201# CONFIG_INFINIBAND is not set 1234# CONFIG_INFINIBAND is not set
1202# CONFIG_EDAC is not set 1235# CONFIG_EDAC is not set
1203CONFIG_RTC_LIB=y 1236CONFIG_RTC_LIB=y
@@ -1249,11 +1282,8 @@ CONFIG_RTC_DRV_CMOS=y
1249# 1282#
1250# on-CPU RTC drivers 1283# on-CPU RTC drivers
1251# 1284#
1285# CONFIG_RTC_DRV_PPC is not set
1252# CONFIG_DMADEVICES is not set 1286# CONFIG_DMADEVICES is not set
1253
1254#
1255# Userspace I/O
1256#
1257# CONFIG_UIO is not set 1287# CONFIG_UIO is not set
1258 1288
1259# 1289#
@@ -1273,7 +1303,6 @@ CONFIG_FS_MBCACHE=y
1273# CONFIG_JFS_FS is not set 1303# CONFIG_JFS_FS is not set
1274# CONFIG_FS_POSIX_ACL is not set 1304# CONFIG_FS_POSIX_ACL is not set
1275# CONFIG_XFS_FS is not set 1305# CONFIG_XFS_FS is not set
1276# CONFIG_GFS2_FS is not set
1277# CONFIG_OCFS2_FS is not set 1306# CONFIG_OCFS2_FS is not set
1278CONFIG_DNOTIFY=y 1307CONFIG_DNOTIFY=y
1279CONFIG_INOTIFY=y 1308CONFIG_INOTIFY=y
@@ -1343,10 +1372,9 @@ CONFIG_NFS_FS=y
1343CONFIG_NFS_V3=y 1372CONFIG_NFS_V3=y
1344# CONFIG_NFS_V3_ACL is not set 1373# CONFIG_NFS_V3_ACL is not set
1345CONFIG_NFS_V4=y 1374CONFIG_NFS_V4=y
1346# CONFIG_NFS_DIRECTIO is not set
1347CONFIG_NFSD=y 1375CONFIG_NFSD=y
1348# CONFIG_NFSD_V3 is not set 1376# CONFIG_NFSD_V3 is not set
1349CONFIG_NFSD_TCP=y 1377# CONFIG_NFSD_V4 is not set
1350CONFIG_ROOT_NFS=y 1378CONFIG_ROOT_NFS=y
1351CONFIG_LOCKD=y 1379CONFIG_LOCKD=y
1352CONFIG_LOCKD_V4=y 1380CONFIG_LOCKD_V4=y
@@ -1430,9 +1458,10 @@ CONFIG_NLS_UTF8=m
1430# Library routines 1458# Library routines
1431# 1459#
1432CONFIG_BITREVERSE=y 1460CONFIG_BITREVERSE=y
1461# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1433# CONFIG_CRC_CCITT is not set 1462# CONFIG_CRC_CCITT is not set
1434# CONFIG_CRC16 is not set 1463# CONFIG_CRC16 is not set
1435# CONFIG_CRC_ITU_T is not set 1464CONFIG_CRC_ITU_T=m
1436CONFIG_CRC32=y 1465CONFIG_CRC32=y
1437# CONFIG_CRC7 is not set 1466# CONFIG_CRC7 is not set
1438CONFIG_LIBCRC32C=m 1467CONFIG_LIBCRC32C=m
@@ -1441,6 +1470,7 @@ CONFIG_PLIST=y
1441CONFIG_HAS_IOMEM=y 1470CONFIG_HAS_IOMEM=y
1442CONFIG_HAS_IOPORT=y 1471CONFIG_HAS_IOPORT=y
1443CONFIG_HAS_DMA=y 1472CONFIG_HAS_DMA=y
1473CONFIG_HAVE_LMB=y
1444 1474
1445# 1475#
1446# Kernel hacking 1476# Kernel hacking
@@ -1448,6 +1478,7 @@ CONFIG_HAS_DMA=y
1448# CONFIG_PRINTK_TIME is not set 1478# CONFIG_PRINTK_TIME is not set
1449CONFIG_ENABLE_WARN_DEPRECATED=y 1479CONFIG_ENABLE_WARN_DEPRECATED=y
1450CONFIG_ENABLE_MUST_CHECK=y 1480CONFIG_ENABLE_MUST_CHECK=y
1481CONFIG_FRAME_WARN=1024
1451# CONFIG_MAGIC_SYSRQ is not set 1482# CONFIG_MAGIC_SYSRQ is not set
1452# CONFIG_UNUSED_SYMBOLS is not set 1483# CONFIG_UNUSED_SYMBOLS is not set
1453# CONFIG_DEBUG_FS is not set 1484# CONFIG_DEBUG_FS is not set
@@ -1458,6 +1489,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1458CONFIG_SCHED_DEBUG=y 1489CONFIG_SCHED_DEBUG=y
1459# CONFIG_SCHEDSTATS is not set 1490# CONFIG_SCHEDSTATS is not set
1460# CONFIG_TIMER_STATS is not set 1491# CONFIG_TIMER_STATS is not set
1492# CONFIG_DEBUG_OBJECTS is not set
1461# CONFIG_SLUB_DEBUG_ON is not set 1493# CONFIG_SLUB_DEBUG_ON is not set
1462# CONFIG_SLUB_STATS is not set 1494# CONFIG_SLUB_STATS is not set
1463# CONFIG_DEBUG_RT_MUTEXES is not set 1495# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1471,6 +1503,7 @@ CONFIG_SCHED_DEBUG=y
1471# CONFIG_DEBUG_BUGVERBOSE is not set 1503# CONFIG_DEBUG_BUGVERBOSE is not set
1472CONFIG_DEBUG_INFO=y 1504CONFIG_DEBUG_INFO=y
1473# CONFIG_DEBUG_VM is not set 1505# CONFIG_DEBUG_VM is not set
1506# CONFIG_DEBUG_WRITECOUNT is not set
1474# CONFIG_DEBUG_LIST is not set 1507# CONFIG_DEBUG_LIST is not set
1475# CONFIG_DEBUG_SG is not set 1508# CONFIG_DEBUG_SG is not set
1476# CONFIG_BOOT_PRINTK_DELAY is not set 1509# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1482,6 +1515,7 @@ CONFIG_DEBUG_INFO=y
1482# CONFIG_DEBUG_STACK_USAGE is not set 1515# CONFIG_DEBUG_STACK_USAGE is not set
1483# CONFIG_DEBUG_PAGEALLOC is not set 1516# CONFIG_DEBUG_PAGEALLOC is not set
1484# CONFIG_DEBUGGER is not set 1517# CONFIG_DEBUGGER is not set
1518# CONFIG_IRQSTACKS is not set
1485# CONFIG_BDI_SWITCH is not set 1519# CONFIG_BDI_SWITCH is not set
1486# CONFIG_PPC_EARLY_DEBUG is not set 1520# CONFIG_PPC_EARLY_DEBUG is not set
1487 1521
@@ -1492,52 +1526,82 @@ CONFIG_DEBUG_INFO=y
1492# CONFIG_SECURITY is not set 1526# CONFIG_SECURITY is not set
1493# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1527# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1494CONFIG_CRYPTO=y 1528CONFIG_CRYPTO=y
1529
1530#
1531# Crypto core or helper
1532#
1495CONFIG_CRYPTO_ALGAPI=y 1533CONFIG_CRYPTO_ALGAPI=y
1496CONFIG_CRYPTO_BLKCIPHER=y 1534CONFIG_CRYPTO_BLKCIPHER=y
1497# CONFIG_CRYPTO_SEQIV is not set
1498CONFIG_CRYPTO_HASH=y 1535CONFIG_CRYPTO_HASH=y
1499CONFIG_CRYPTO_MANAGER=y 1536CONFIG_CRYPTO_MANAGER=y
1537# CONFIG_CRYPTO_GF128MUL is not set
1538# CONFIG_CRYPTO_NULL is not set
1539# CONFIG_CRYPTO_CRYPTD is not set
1540# CONFIG_CRYPTO_AUTHENC is not set
1541# CONFIG_CRYPTO_TEST is not set
1542
1543#
1544# Authenticated Encryption with Associated Data
1545#
1546# CONFIG_CRYPTO_CCM is not set
1547# CONFIG_CRYPTO_GCM is not set
1548# CONFIG_CRYPTO_SEQIV is not set
1549
1550#
1551# Block modes
1552#
1553CONFIG_CRYPTO_CBC=y
1554# CONFIG_CRYPTO_CTR is not set
1555# CONFIG_CRYPTO_CTS is not set
1556# CONFIG_CRYPTO_ECB is not set
1557# CONFIG_CRYPTO_LRW is not set
1558CONFIG_CRYPTO_PCBC=m
1559# CONFIG_CRYPTO_XTS is not set
1560
1561#
1562# Hash modes
1563#
1500CONFIG_CRYPTO_HMAC=y 1564CONFIG_CRYPTO_HMAC=y
1501# CONFIG_CRYPTO_XCBC is not set 1565# CONFIG_CRYPTO_XCBC is not set
1502# CONFIG_CRYPTO_NULL is not set 1566
1567#
1568# Digest
1569#
1570# CONFIG_CRYPTO_CRC32C is not set
1503# CONFIG_CRYPTO_MD4 is not set 1571# CONFIG_CRYPTO_MD4 is not set
1504CONFIG_CRYPTO_MD5=y 1572CONFIG_CRYPTO_MD5=y
1573# CONFIG_CRYPTO_MICHAEL_MIC is not set
1505CONFIG_CRYPTO_SHA1=m 1574CONFIG_CRYPTO_SHA1=m
1506# CONFIG_CRYPTO_SHA256 is not set 1575# CONFIG_CRYPTO_SHA256 is not set
1507# CONFIG_CRYPTO_SHA512 is not set 1576# CONFIG_CRYPTO_SHA512 is not set
1508# CONFIG_CRYPTO_WP512 is not set
1509# CONFIG_CRYPTO_TGR192 is not set 1577# CONFIG_CRYPTO_TGR192 is not set
1510# CONFIG_CRYPTO_GF128MUL is not set 1578# CONFIG_CRYPTO_WP512 is not set
1511# CONFIG_CRYPTO_ECB is not set 1579
1512CONFIG_CRYPTO_CBC=y 1580#
1513CONFIG_CRYPTO_PCBC=m 1581# Ciphers
1514# CONFIG_CRYPTO_LRW is not set 1582#
1515# CONFIG_CRYPTO_XTS is not set
1516# CONFIG_CRYPTO_CTR is not set
1517# CONFIG_CRYPTO_GCM is not set
1518# CONFIG_CRYPTO_CCM is not set
1519# CONFIG_CRYPTO_CRYPTD is not set
1520CONFIG_CRYPTO_DES=y
1521# CONFIG_CRYPTO_FCRYPT is not set
1522# CONFIG_CRYPTO_BLOWFISH is not set
1523# CONFIG_CRYPTO_TWOFISH is not set
1524# CONFIG_CRYPTO_SERPENT is not set
1525# CONFIG_CRYPTO_AES is not set 1583# CONFIG_CRYPTO_AES is not set
1584# CONFIG_CRYPTO_ANUBIS is not set
1585# CONFIG_CRYPTO_ARC4 is not set
1586# CONFIG_CRYPTO_BLOWFISH is not set
1587# CONFIG_CRYPTO_CAMELLIA is not set
1526# CONFIG_CRYPTO_CAST5 is not set 1588# CONFIG_CRYPTO_CAST5 is not set
1527# CONFIG_CRYPTO_CAST6 is not set 1589# CONFIG_CRYPTO_CAST6 is not set
1528# CONFIG_CRYPTO_TEA is not set 1590CONFIG_CRYPTO_DES=y
1529# CONFIG_CRYPTO_ARC4 is not set 1591# CONFIG_CRYPTO_FCRYPT is not set
1530# CONFIG_CRYPTO_KHAZAD is not set 1592# CONFIG_CRYPTO_KHAZAD is not set
1531# CONFIG_CRYPTO_ANUBIS is not set
1532# CONFIG_CRYPTO_SEED is not set
1533# CONFIG_CRYPTO_SALSA20 is not set 1593# CONFIG_CRYPTO_SALSA20 is not set
1594# CONFIG_CRYPTO_SEED is not set
1595# CONFIG_CRYPTO_SERPENT is not set
1596# CONFIG_CRYPTO_TEA is not set
1597# CONFIG_CRYPTO_TWOFISH is not set
1598
1599#
1600# Compression
1601#
1534# CONFIG_CRYPTO_DEFLATE is not set 1602# CONFIG_CRYPTO_DEFLATE is not set
1535# CONFIG_CRYPTO_MICHAEL_MIC is not set
1536# CONFIG_CRYPTO_CRC32C is not set
1537# CONFIG_CRYPTO_CAMELLIA is not set
1538# CONFIG_CRYPTO_TEST is not set
1539# CONFIG_CRYPTO_AUTHENC is not set
1540# CONFIG_CRYPTO_LZO is not set 1603# CONFIG_CRYPTO_LZO is not set
1541CONFIG_CRYPTO_HW=y 1604CONFIG_CRYPTO_HW=y
1542# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1605# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1543# CONFIG_PPC_CLOCK is not set 1606# CONFIG_PPC_CLOCK is not set
1607# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 2d831db9ae5b..46fffbcd3f99 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:35 2008 4# Mon Jun 9 08:52:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
33CONFIG_GENERIC_HWEIGHT=y 35CONFIG_GENERIC_HWEIGHT=y
@@ -106,6 +108,7 @@ CONFIG_SLUB=y
106CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
107CONFIG_HAVE_KPROBES=y 109CONFIG_HAVE_KPROBES=y
108CONFIG_HAVE_KRETPROBES=y 110CONFIG_HAVE_KRETPROBES=y
111# CONFIG_HAVE_DMA_ATTRS is not set
109CONFIG_PROC_PAGE_MONITOR=y 112CONFIG_PROC_PAGE_MONITOR=y
110CONFIG_SLABINFO=y 113CONFIG_SLABINFO=y
111CONFIG_RT_MUTEXES=y 114CONFIG_RT_MUTEXES=y
@@ -210,11 +213,13 @@ CONFIG_FLATMEM=y
210CONFIG_FLAT_NODE_MEM_MAP=y 213CONFIG_FLAT_NODE_MEM_MAP=y
211# CONFIG_SPARSEMEM_STATIC is not set 214# CONFIG_SPARSEMEM_STATIC is not set
212# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y
213CONFIG_SPLIT_PTLOCK_CPUS=4 217CONFIG_SPLIT_PTLOCK_CPUS=4
214# CONFIG_RESOURCES_64BIT is not set 218# CONFIG_RESOURCES_64BIT is not set
215CONFIG_ZONE_DMA_FLAG=1 219CONFIG_ZONE_DMA_FLAG=1
216CONFIG_BOUNCE=y 220CONFIG_BOUNCE=y
217CONFIG_VIRT_TO_BUS=y 221CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11
218# CONFIG_PROC_DEVICETREE is not set 223# CONFIG_PROC_DEVICETREE is not set
219# CONFIG_CMDLINE_BOOL is not set 224# CONFIG_CMDLINE_BOOL is not set
220# CONFIG_PM is not set 225# CONFIG_PM is not set
@@ -231,6 +236,7 @@ CONFIG_FSL_SOC=y
231# CONFIG_PCI_SYSCALL is not set 236# CONFIG_PCI_SYSCALL is not set
232# CONFIG_PCI_QSPAN is not set 237# CONFIG_PCI_QSPAN is not set
233# CONFIG_ARCH_SUPPORTS_MSI is not set 238# CONFIG_ARCH_SUPPORTS_MSI is not set
239# CONFIG_HAS_RAPIDIO is not set
234 240
235# 241#
236# Advanced setup 242# Advanced setup
@@ -240,13 +246,13 @@ CONFIG_FSL_SOC=y
240# 246#
241# Default settings for advanced configuration options are used 247# Default settings for advanced configuration options are used
242# 248#
243CONFIG_HIGHMEM_START=0xfe000000
244CONFIG_LOWMEM_SIZE=0x30000000 249CONFIG_LOWMEM_SIZE=0x30000000
250CONFIG_PAGE_OFFSET=0xc0000000
245CONFIG_KERNEL_START=0xc0000000 251CONFIG_KERNEL_START=0xc0000000
252CONFIG_PHYSICAL_START=0x00000000
246CONFIG_TASK_SIZE=0x80000000 253CONFIG_TASK_SIZE=0x80000000
247CONFIG_CONSISTENT_START=0xfd000000 254CONFIG_CONSISTENT_START=0xfd000000
248CONFIG_CONSISTENT_SIZE=0x00200000 255CONFIG_CONSISTENT_SIZE=0x00200000
249CONFIG_BOOT_LOAD=0x00400000
250 256
251# 257#
252# Networking 258# Networking
@@ -294,8 +300,6 @@ CONFIG_TCP_CONG_CUBIC=y
294CONFIG_DEFAULT_TCP_CONG="cubic" 300CONFIG_DEFAULT_TCP_CONG="cubic"
295# CONFIG_TCP_MD5SIG is not set 301# CONFIG_TCP_MD5SIG is not set
296# CONFIG_IPV6 is not set 302# CONFIG_IPV6 is not set
297# CONFIG_INET6_XFRM_TUNNEL is not set
298# CONFIG_INET6_TUNNEL is not set
299# CONFIG_NETWORK_SECMARK is not set 303# CONFIG_NETWORK_SECMARK is not set
300# CONFIG_NETFILTER is not set 304# CONFIG_NETFILTER is not set
301# CONFIG_IP_DCCP is not set 305# CONFIG_IP_DCCP is not set
@@ -419,6 +423,7 @@ CONFIG_NETDEV_10000=y
419# 423#
420# CONFIG_WLAN_PRE80211 is not set 424# CONFIG_WLAN_PRE80211 is not set
421# CONFIG_WLAN_80211 is not set 425# CONFIG_WLAN_80211 is not set
426# CONFIG_IWLWIFI_LEDS is not set
422# CONFIG_WAN is not set 427# CONFIG_WAN is not set
423# CONFIG_PPP is not set 428# CONFIG_PPP is not set
424# CONFIG_SLIP is not set 429# CONFIG_SLIP is not set
@@ -485,6 +490,7 @@ CONFIG_SERIO_LIBPS2=y
485# Character devices 490# Character devices
486# 491#
487# CONFIG_VT is not set 492# CONFIG_VT is not set
493CONFIG_DEVKMEM=y
488# CONFIG_SERIAL_NONSTANDARD is not set 494# CONFIG_SERIAL_NONSTANDARD is not set
489 495
490# 496#
@@ -517,12 +523,7 @@ CONFIG_GEN_RTC=y
517# CONFIG_RAW_DRIVER is not set 523# CONFIG_RAW_DRIVER is not set
518# CONFIG_TCG_TPM is not set 524# CONFIG_TCG_TPM is not set
519# CONFIG_I2C is not set 525# CONFIG_I2C is not set
520
521#
522# SPI support
523#
524# CONFIG_SPI is not set 526# CONFIG_SPI is not set
525# CONFIG_SPI_MASTER is not set
526# CONFIG_W1 is not set 527# CONFIG_W1 is not set
527# CONFIG_POWER_SUPPLY is not set 528# CONFIG_POWER_SUPPLY is not set
528CONFIG_HWMON=y 529CONFIG_HWMON=y
@@ -551,12 +552,22 @@ CONFIG_SSB_POSSIBLE=y
551# Multifunction device drivers 552# Multifunction device drivers
552# 553#
553# CONFIG_MFD_SM501 is not set 554# CONFIG_MFD_SM501 is not set
555# CONFIG_HTC_PASIC3 is not set
554 556
555# 557#
556# Multimedia devices 558# Multimedia devices
557# 559#
560
561#
562# Multimedia core support
563#
558# CONFIG_VIDEO_DEV is not set 564# CONFIG_VIDEO_DEV is not set
559# CONFIG_DVB_CORE is not set 565# CONFIG_DVB_CORE is not set
566# CONFIG_VIDEO_MEDIA is not set
567
568#
569# Multimedia drivers
570#
560CONFIG_DAB=y 571CONFIG_DAB=y
561 572
562# 573#
@@ -584,6 +595,8 @@ CONFIG_USB_SUPPORT=y
584# CONFIG_USB_ARCH_HAS_HCD is not set 595# CONFIG_USB_ARCH_HAS_HCD is not set
585# CONFIG_USB_ARCH_HAS_OHCI is not set 596# CONFIG_USB_ARCH_HAS_OHCI is not set
586# CONFIG_USB_ARCH_HAS_EHCI is not set 597# CONFIG_USB_ARCH_HAS_EHCI is not set
598# CONFIG_USB_OTG_WHITELIST is not set
599# CONFIG_USB_OTG_BLACKLIST_HUB is not set
587 600
588# 601#
589# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 602# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -592,13 +605,10 @@ CONFIG_USB_SUPPORT=y
592# CONFIG_MMC is not set 605# CONFIG_MMC is not set
593# CONFIG_MEMSTICK is not set 606# CONFIG_MEMSTICK is not set
594# CONFIG_NEW_LEDS is not set 607# CONFIG_NEW_LEDS is not set
608# CONFIG_ACCESSIBILITY is not set
595# CONFIG_EDAC is not set 609# CONFIG_EDAC is not set
596# CONFIG_RTC_CLASS is not set 610# CONFIG_RTC_CLASS is not set
597# CONFIG_DMADEVICES is not set 611# CONFIG_DMADEVICES is not set
598
599#
600# Userspace I/O
601#
602# CONFIG_UIO is not set 612# CONFIG_UIO is not set
603 613
604# 614#
@@ -620,7 +630,6 @@ CONFIG_FS_MBCACHE=y
620# CONFIG_JFS_FS is not set 630# CONFIG_JFS_FS is not set
621# CONFIG_FS_POSIX_ACL is not set 631# CONFIG_FS_POSIX_ACL is not set
622# CONFIG_XFS_FS is not set 632# CONFIG_XFS_FS is not set
623# CONFIG_GFS2_FS is not set
624# CONFIG_OCFS2_FS is not set 633# CONFIG_OCFS2_FS is not set
625CONFIG_DNOTIFY=y 634CONFIG_DNOTIFY=y
626CONFIG_INOTIFY=y 635CONFIG_INOTIFY=y
@@ -678,7 +687,6 @@ CONFIG_NFS_FS=y
678CONFIG_NFS_V3=y 687CONFIG_NFS_V3=y
679# CONFIG_NFS_V3_ACL is not set 688# CONFIG_NFS_V3_ACL is not set
680# CONFIG_NFS_V4 is not set 689# CONFIG_NFS_V4 is not set
681# CONFIG_NFS_DIRECTIO is not set
682# CONFIG_NFSD is not set 690# CONFIG_NFSD is not set
683CONFIG_ROOT_NFS=y 691CONFIG_ROOT_NFS=y
684CONFIG_LOCKD=y 692CONFIG_LOCKD=y
@@ -722,6 +730,7 @@ CONFIG_MSDOS_PARTITION=y
722# Library routines 730# Library routines
723# 731#
724CONFIG_BITREVERSE=y 732CONFIG_BITREVERSE=y
733# CONFIG_GENERIC_FIND_FIRST_BIT is not set
725CONFIG_CRC_CCITT=y 734CONFIG_CRC_CCITT=y
726# CONFIG_CRC16 is not set 735# CONFIG_CRC16 is not set
727# CONFIG_CRC_ITU_T is not set 736# CONFIG_CRC_ITU_T is not set
@@ -733,6 +742,7 @@ CONFIG_PLIST=y
733CONFIG_HAS_IOMEM=y 742CONFIG_HAS_IOMEM=y
734CONFIG_HAS_IOPORT=y 743CONFIG_HAS_IOPORT=y
735CONFIG_HAS_DMA=y 744CONFIG_HAS_DMA=y
745CONFIG_HAVE_LMB=y
736 746
737# 747#
738# Kernel hacking 748# Kernel hacking
@@ -740,6 +750,7 @@ CONFIG_HAS_DMA=y
740# CONFIG_PRINTK_TIME is not set 750# CONFIG_PRINTK_TIME is not set
741CONFIG_ENABLE_WARN_DEPRECATED=y 751CONFIG_ENABLE_WARN_DEPRECATED=y
742CONFIG_ENABLE_MUST_CHECK=y 752CONFIG_ENABLE_MUST_CHECK=y
753CONFIG_FRAME_WARN=1024
743# CONFIG_MAGIC_SYSRQ is not set 754# CONFIG_MAGIC_SYSRQ is not set
744# CONFIG_UNUSED_SYMBOLS is not set 755# CONFIG_UNUSED_SYMBOLS is not set
745# CONFIG_DEBUG_FS is not set 756# CONFIG_DEBUG_FS is not set
@@ -748,6 +759,7 @@ CONFIG_ENABLE_MUST_CHECK=y
748# CONFIG_SLUB_DEBUG_ON is not set 759# CONFIG_SLUB_DEBUG_ON is not set
749# CONFIG_SLUB_STATS is not set 760# CONFIG_SLUB_STATS is not set
750# CONFIG_SAMPLES is not set 761# CONFIG_SAMPLES is not set
762# CONFIG_IRQSTACKS is not set
751# CONFIG_PPC_EARLY_DEBUG is not set 763# CONFIG_PPC_EARLY_DEBUG is not set
752 764
753# 765#
@@ -757,48 +769,78 @@ CONFIG_ENABLE_MUST_CHECK=y
757# CONFIG_SECURITY is not set 769# CONFIG_SECURITY is not set
758# CONFIG_SECURITY_FILE_CAPABILITIES is not set 770# CONFIG_SECURITY_FILE_CAPABILITIES is not set
759CONFIG_CRYPTO=y 771CONFIG_CRYPTO=y
760# CONFIG_CRYPTO_SEQIV is not set 772
773#
774# Crypto core or helper
775#
761# CONFIG_CRYPTO_MANAGER is not set 776# CONFIG_CRYPTO_MANAGER is not set
777# CONFIG_CRYPTO_GF128MUL is not set
778# CONFIG_CRYPTO_NULL is not set
779# CONFIG_CRYPTO_CRYPTD is not set
780# CONFIG_CRYPTO_AUTHENC is not set
781
782#
783# Authenticated Encryption with Associated Data
784#
785# CONFIG_CRYPTO_CCM is not set
786# CONFIG_CRYPTO_GCM is not set
787# CONFIG_CRYPTO_SEQIV is not set
788
789#
790# Block modes
791#
792# CONFIG_CRYPTO_CBC is not set
793# CONFIG_CRYPTO_CTR is not set
794# CONFIG_CRYPTO_CTS is not set
795# CONFIG_CRYPTO_ECB is not set
796# CONFIG_CRYPTO_LRW is not set
797# CONFIG_CRYPTO_PCBC is not set
798# CONFIG_CRYPTO_XTS is not set
799
800#
801# Hash modes
802#
762# CONFIG_CRYPTO_HMAC is not set 803# CONFIG_CRYPTO_HMAC is not set
763# CONFIG_CRYPTO_XCBC is not set 804# CONFIG_CRYPTO_XCBC is not set
764# CONFIG_CRYPTO_NULL is not set 805
806#
807# Digest
808#
809# CONFIG_CRYPTO_CRC32C is not set
765# CONFIG_CRYPTO_MD4 is not set 810# CONFIG_CRYPTO_MD4 is not set
766# CONFIG_CRYPTO_MD5 is not set 811# CONFIG_CRYPTO_MD5 is not set
812# CONFIG_CRYPTO_MICHAEL_MIC is not set
767# CONFIG_CRYPTO_SHA1 is not set 813# CONFIG_CRYPTO_SHA1 is not set
768# CONFIG_CRYPTO_SHA256 is not set 814# CONFIG_CRYPTO_SHA256 is not set
769# CONFIG_CRYPTO_SHA512 is not set 815# CONFIG_CRYPTO_SHA512 is not set
770# CONFIG_CRYPTO_WP512 is not set
771# CONFIG_CRYPTO_TGR192 is not set 816# CONFIG_CRYPTO_TGR192 is not set
772# CONFIG_CRYPTO_GF128MUL is not set 817# CONFIG_CRYPTO_WP512 is not set
773# CONFIG_CRYPTO_ECB is not set 818
774# CONFIG_CRYPTO_CBC is not set 819#
775# CONFIG_CRYPTO_PCBC is not set 820# Ciphers
776# CONFIG_CRYPTO_LRW is not set 821#
777# CONFIG_CRYPTO_XTS is not set
778# CONFIG_CRYPTO_CTR is not set
779# CONFIG_CRYPTO_GCM is not set
780# CONFIG_CRYPTO_CCM is not set
781# CONFIG_CRYPTO_CRYPTD is not set
782# CONFIG_CRYPTO_DES is not set
783# CONFIG_CRYPTO_FCRYPT is not set
784# CONFIG_CRYPTO_BLOWFISH is not set
785# CONFIG_CRYPTO_TWOFISH is not set
786# CONFIG_CRYPTO_SERPENT is not set
787# CONFIG_CRYPTO_AES is not set 822# CONFIG_CRYPTO_AES is not set
823# CONFIG_CRYPTO_ANUBIS is not set
824# CONFIG_CRYPTO_ARC4 is not set
825# CONFIG_CRYPTO_BLOWFISH is not set
826# CONFIG_CRYPTO_CAMELLIA is not set
788# CONFIG_CRYPTO_CAST5 is not set 827# CONFIG_CRYPTO_CAST5 is not set
789# CONFIG_CRYPTO_CAST6 is not set 828# CONFIG_CRYPTO_CAST6 is not set
790# CONFIG_CRYPTO_TEA is not set 829# CONFIG_CRYPTO_DES is not set
791# CONFIG_CRYPTO_ARC4 is not set 830# CONFIG_CRYPTO_FCRYPT is not set
792# CONFIG_CRYPTO_KHAZAD is not set 831# CONFIG_CRYPTO_KHAZAD is not set
793# CONFIG_CRYPTO_ANUBIS is not set
794# CONFIG_CRYPTO_SEED is not set
795# CONFIG_CRYPTO_SALSA20 is not set 832# CONFIG_CRYPTO_SALSA20 is not set
833# CONFIG_CRYPTO_SEED is not set
834# CONFIG_CRYPTO_SERPENT is not set
835# CONFIG_CRYPTO_TEA is not set
836# CONFIG_CRYPTO_TWOFISH is not set
837
838#
839# Compression
840#
796# CONFIG_CRYPTO_DEFLATE is not set 841# CONFIG_CRYPTO_DEFLATE is not set
797# CONFIG_CRYPTO_MICHAEL_MIC is not set
798# CONFIG_CRYPTO_CRC32C is not set
799# CONFIG_CRYPTO_CAMELLIA is not set
800# CONFIG_CRYPTO_AUTHENC is not set
801# CONFIG_CRYPTO_LZO is not set 842# CONFIG_CRYPTO_LZO is not set
802CONFIG_CRYPTO_HW=y 843CONFIG_CRYPTO_HW=y
803# CONFIG_PPC_CLOCK is not set 844# CONFIG_PPC_CLOCK is not set
804CONFIG_PPC_LIB_RHEAP=y 845CONFIG_PPC_LIB_RHEAP=y
846# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 82151b9bba26..9df78973005e 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:35 2008 4# Mon Jun 9 08:52:17 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -28,6 +28,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
28CONFIG_GENERIC_HARDIRQS=y 28CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
33CONFIG_GENERIC_HWEIGHT=y 35CONFIG_GENERIC_HWEIGHT=y
@@ -108,6 +110,7 @@ CONFIG_SLUB=y
108CONFIG_HAVE_OPROFILE=y 110CONFIG_HAVE_OPROFILE=y
109CONFIG_HAVE_KPROBES=y 111CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 112CONFIG_HAVE_KRETPROBES=y
113# CONFIG_HAVE_DMA_ATTRS is not set
111CONFIG_PROC_PAGE_MONITOR=y 114CONFIG_PROC_PAGE_MONITOR=y
112CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
113# CONFIG_TINY_SHMEM is not set 116# CONFIG_TINY_SHMEM is not set
@@ -219,11 +222,13 @@ CONFIG_FLATMEM=y
219CONFIG_FLAT_NODE_MEM_MAP=y 222CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_STATIC is not set 223# CONFIG_SPARSEMEM_STATIC is not set
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
223# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
226CONFIG_VIRT_TO_BUS=y 230CONFIG_VIRT_TO_BUS=y
231CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
229# CONFIG_PM is not set 234# CONFIG_PM is not set
@@ -241,6 +246,7 @@ CONFIG_FSL_SOC=y
241# CONFIG_PCI_QSPAN is not set 246# CONFIG_PCI_QSPAN is not set
242# CONFIG_ARCH_SUPPORTS_MSI is not set 247# CONFIG_ARCH_SUPPORTS_MSI is not set
243# CONFIG_PCCARD is not set 248# CONFIG_PCCARD is not set
249# CONFIG_HAS_RAPIDIO is not set
244 250
245# 251#
246# Advanced setup 252# Advanced setup
@@ -250,13 +256,13 @@ CONFIG_FSL_SOC=y
250# 256#
251# Default settings for advanced configuration options are used 257# Default settings for advanced configuration options are used
252# 258#
253CONFIG_HIGHMEM_START=0xfe000000
254CONFIG_LOWMEM_SIZE=0x30000000 259CONFIG_LOWMEM_SIZE=0x30000000
260CONFIG_PAGE_OFFSET=0xc0000000
255CONFIG_KERNEL_START=0xc0000000 261CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0x80000000 263CONFIG_TASK_SIZE=0x80000000
257CONFIG_CONSISTENT_START=0xfd000000 264CONFIG_CONSISTENT_START=0xfd000000
258CONFIG_CONSISTENT_SIZE=0x00200000 265CONFIG_CONSISTENT_SIZE=0x00200000
259CONFIG_BOOT_LOAD=0x00400000
260 266
261# 267#
262# Networking 268# Networking
@@ -299,8 +305,6 @@ CONFIG_TCP_CONG_CUBIC=y
299CONFIG_DEFAULT_TCP_CONG="cubic" 305CONFIG_DEFAULT_TCP_CONG="cubic"
300# CONFIG_TCP_MD5SIG is not set 306# CONFIG_TCP_MD5SIG is not set
301# CONFIG_IPV6 is not set 307# CONFIG_IPV6 is not set
302# CONFIG_INET6_XFRM_TUNNEL is not set
303# CONFIG_INET6_TUNNEL is not set
304# CONFIG_NETWORK_SECMARK is not set 308# CONFIG_NETWORK_SECMARK is not set
305# CONFIG_NETFILTER is not set 309# CONFIG_NETFILTER is not set
306# CONFIG_IP_DCCP is not set 310# CONFIG_IP_DCCP is not set
@@ -492,6 +496,7 @@ CONFIG_FS_ENET_MDIO_FEC=y
492# 496#
493# CONFIG_WLAN_PRE80211 is not set 497# CONFIG_WLAN_PRE80211 is not set
494# CONFIG_WLAN_80211 is not set 498# CONFIG_WLAN_80211 is not set
499# CONFIG_IWLWIFI_LEDS is not set
495# CONFIG_WAN is not set 500# CONFIG_WAN is not set
496# CONFIG_PPP is not set 501# CONFIG_PPP is not set
497# CONFIG_SLIP is not set 502# CONFIG_SLIP is not set
@@ -516,6 +521,7 @@ CONFIG_FS_ENET_MDIO_FEC=y
516# Character devices 521# Character devices
517# 522#
518# CONFIG_VT is not set 523# CONFIG_VT is not set
524CONFIG_DEVKMEM=y
519# CONFIG_SERIAL_NONSTANDARD is not set 525# CONFIG_SERIAL_NONSTANDARD is not set
520 526
521# 527#
@@ -548,12 +554,7 @@ CONFIG_GEN_RTC=y
548# CONFIG_RAW_DRIVER is not set 554# CONFIG_RAW_DRIVER is not set
549# CONFIG_TCG_TPM is not set 555# CONFIG_TCG_TPM is not set
550# CONFIG_I2C is not set 556# CONFIG_I2C is not set
551
552#
553# SPI support
554#
555# CONFIG_SPI is not set 557# CONFIG_SPI is not set
556# CONFIG_SPI_MASTER is not set
557# CONFIG_W1 is not set 558# CONFIG_W1 is not set
558# CONFIG_POWER_SUPPLY is not set 559# CONFIG_POWER_SUPPLY is not set
559# CONFIG_HWMON is not set 560# CONFIG_HWMON is not set
@@ -570,12 +571,22 @@ CONFIG_SSB_POSSIBLE=y
570# Multifunction device drivers 571# Multifunction device drivers
571# 572#
572# CONFIG_MFD_SM501 is not set 573# CONFIG_MFD_SM501 is not set
574# CONFIG_HTC_PASIC3 is not set
573 575
574# 576#
575# Multimedia devices 577# Multimedia devices
576# 578#
579
580#
581# Multimedia core support
582#
577# CONFIG_VIDEO_DEV is not set 583# CONFIG_VIDEO_DEV is not set
578# CONFIG_DVB_CORE is not set 584# CONFIG_DVB_CORE is not set
585# CONFIG_VIDEO_MEDIA is not set
586
587#
588# Multimedia drivers
589#
579CONFIG_DAB=y 590CONFIG_DAB=y
580 591
581# 592#
@@ -599,13 +610,10 @@ CONFIG_DAB=y
599# CONFIG_MMC is not set 610# CONFIG_MMC is not set
600# CONFIG_MEMSTICK is not set 611# CONFIG_MEMSTICK is not set
601# CONFIG_NEW_LEDS is not set 612# CONFIG_NEW_LEDS is not set
613# CONFIG_ACCESSIBILITY is not set
602# CONFIG_EDAC is not set 614# CONFIG_EDAC is not set
603# CONFIG_RTC_CLASS is not set 615# CONFIG_RTC_CLASS is not set
604# CONFIG_DMADEVICES is not set 616# CONFIG_DMADEVICES is not set
605
606#
607# Userspace I/O
608#
609# CONFIG_UIO is not set 617# CONFIG_UIO is not set
610 618
611# 619#
@@ -618,7 +626,6 @@ CONFIG_DAB=y
618# CONFIG_JFS_FS is not set 626# CONFIG_JFS_FS is not set
619# CONFIG_FS_POSIX_ACL is not set 627# CONFIG_FS_POSIX_ACL is not set
620# CONFIG_XFS_FS is not set 628# CONFIG_XFS_FS is not set
621# CONFIG_GFS2_FS is not set
622# CONFIG_OCFS2_FS is not set 629# CONFIG_OCFS2_FS is not set
623# CONFIG_DNOTIFY is not set 630# CONFIG_DNOTIFY is not set
624# CONFIG_INOTIFY is not set 631# CONFIG_INOTIFY is not set
@@ -676,7 +683,6 @@ CONFIG_NFS_FS=y
676CONFIG_NFS_V3=y 683CONFIG_NFS_V3=y
677# CONFIG_NFS_V3_ACL is not set 684# CONFIG_NFS_V3_ACL is not set
678# CONFIG_NFS_V4 is not set 685# CONFIG_NFS_V4 is not set
679# CONFIG_NFS_DIRECTIO is not set
680# CONFIG_NFSD is not set 686# CONFIG_NFSD is not set
681CONFIG_ROOT_NFS=y 687CONFIG_ROOT_NFS=y
682CONFIG_LOCKD=y 688CONFIG_LOCKD=y
@@ -719,6 +725,7 @@ CONFIG_MSDOS_PARTITION=y
719# 725#
720# Library routines 726# Library routines
721# 727#
728# CONFIG_GENERIC_FIND_FIRST_BIT is not set
722# CONFIG_CRC_CCITT is not set 729# CONFIG_CRC_CCITT is not set
723# CONFIG_CRC16 is not set 730# CONFIG_CRC16 is not set
724# CONFIG_CRC_ITU_T is not set 731# CONFIG_CRC_ITU_T is not set
@@ -729,6 +736,7 @@ CONFIG_ZLIB_INFLATE=y
729CONFIG_HAS_IOMEM=y 736CONFIG_HAS_IOMEM=y
730CONFIG_HAS_IOPORT=y 737CONFIG_HAS_IOPORT=y
731CONFIG_HAS_DMA=y 738CONFIG_HAS_DMA=y
739CONFIG_HAVE_LMB=y
732 740
733# 741#
734# Kernel hacking 742# Kernel hacking
@@ -736,6 +744,7 @@ CONFIG_HAS_DMA=y
736# CONFIG_PRINTK_TIME is not set 744# CONFIG_PRINTK_TIME is not set
737CONFIG_ENABLE_WARN_DEPRECATED=y 745CONFIG_ENABLE_WARN_DEPRECATED=y
738CONFIG_ENABLE_MUST_CHECK=y 746CONFIG_ENABLE_MUST_CHECK=y
747CONFIG_FRAME_WARN=1024
739CONFIG_MAGIC_SYSRQ=y 748CONFIG_MAGIC_SYSRQ=y
740# CONFIG_UNUSED_SYMBOLS is not set 749# CONFIG_UNUSED_SYMBOLS is not set
741# CONFIG_DEBUG_FS is not set 750# CONFIG_DEBUG_FS is not set
@@ -746,6 +755,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
746CONFIG_SCHED_DEBUG=y 755CONFIG_SCHED_DEBUG=y
747# CONFIG_SCHEDSTATS is not set 756# CONFIG_SCHEDSTATS is not set
748# CONFIG_TIMER_STATS is not set 757# CONFIG_TIMER_STATS is not set
758# CONFIG_DEBUG_OBJECTS is not set
749# CONFIG_SLUB_DEBUG_ON is not set 759# CONFIG_SLUB_DEBUG_ON is not set
750# CONFIG_SLUB_STATS is not set 760# CONFIG_SLUB_STATS is not set
751# CONFIG_DEBUG_SPINLOCK is not set 761# CONFIG_DEBUG_SPINLOCK is not set
@@ -756,6 +766,7 @@ CONFIG_SCHED_DEBUG=y
756CONFIG_DEBUG_BUGVERBOSE=y 766CONFIG_DEBUG_BUGVERBOSE=y
757CONFIG_DEBUG_INFO=y 767CONFIG_DEBUG_INFO=y
758# CONFIG_DEBUG_VM is not set 768# CONFIG_DEBUG_VM is not set
769# CONFIG_DEBUG_WRITECOUNT is not set
759# CONFIG_DEBUG_LIST is not set 770# CONFIG_DEBUG_LIST is not set
760# CONFIG_DEBUG_SG is not set 771# CONFIG_DEBUG_SG is not set
761# CONFIG_BOOT_PRINTK_DELAY is not set 772# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -766,6 +777,7 @@ CONFIG_DEBUG_INFO=y
766# CONFIG_DEBUG_STACK_USAGE is not set 777# CONFIG_DEBUG_STACK_USAGE is not set
767# CONFIG_DEBUG_PAGEALLOC is not set 778# CONFIG_DEBUG_PAGEALLOC is not set
768# CONFIG_DEBUGGER is not set 779# CONFIG_DEBUGGER is not set
780# CONFIG_IRQSTACKS is not set
769# CONFIG_BDI_SWITCH is not set 781# CONFIG_BDI_SWITCH is not set
770# CONFIG_PPC_EARLY_DEBUG is not set 782# CONFIG_PPC_EARLY_DEBUG is not set
771 783
@@ -778,3 +790,4 @@ CONFIG_DEBUG_INFO=y
778# CONFIG_CRYPTO is not set 790# CONFIG_CRYPTO is not set
779# CONFIG_PPC_CLOCK is not set 791# CONFIG_PPC_CLOCK is not set
780CONFIG_PPC_LIB_RHEAP=y 792CONFIG_PPC_LIB_RHEAP=y
793# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index 40f84fa2bd29..ce250bc98584 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc3 3# Linux kernel version: 2.6.26-rc6
4# Tue May 20 20:03:02 2008 4# Mon Jun 16 21:11:19 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -763,7 +763,63 @@ CONFIG_ATA_NONSTANDARD=y
763CONFIG_SATA_PMP=y 763CONFIG_SATA_PMP=y
764# CONFIG_SATA_AHCI is not set 764# CONFIG_SATA_AHCI is not set
765CONFIG_SATA_SIL24=y 765CONFIG_SATA_SIL24=y
766# CONFIG_ATA_SFF is not set 766CONFIG_ATA_SFF=y
767CONFIG_SATA_SVW=y
768# CONFIG_ATA_PIIX is not set
769# CONFIG_SATA_MV is not set
770# CONFIG_SATA_NV is not set
771# CONFIG_PDC_ADMA is not set
772# CONFIG_SATA_QSTOR is not set
773# CONFIG_SATA_PROMISE is not set
774# CONFIG_SATA_SX4 is not set
775# CONFIG_SATA_SIL is not set
776# CONFIG_SATA_SIS is not set
777# CONFIG_SATA_ULI is not set
778# CONFIG_SATA_VIA is not set
779# CONFIG_SATA_VITESSE is not set
780# CONFIG_SATA_INIC162X is not set
781# CONFIG_PATA_ALI is not set
782# CONFIG_PATA_AMD is not set
783# CONFIG_PATA_ARTOP is not set
784# CONFIG_PATA_ATIIXP is not set
785# CONFIG_PATA_CMD640_PCI is not set
786# CONFIG_PATA_CMD64X is not set
787# CONFIG_PATA_CS5520 is not set
788# CONFIG_PATA_CS5530 is not set
789# CONFIG_PATA_CYPRESS is not set
790# CONFIG_PATA_EFAR is not set
791# CONFIG_ATA_GENERIC is not set
792# CONFIG_PATA_HPT366 is not set
793# CONFIG_PATA_HPT37X is not set
794# CONFIG_PATA_HPT3X2N is not set
795# CONFIG_PATA_HPT3X3 is not set
796# CONFIG_PATA_IT821X is not set
797# CONFIG_PATA_IT8213 is not set
798# CONFIG_PATA_JMICRON is not set
799# CONFIG_PATA_TRIFLEX is not set
800# CONFIG_PATA_MARVELL is not set
801# CONFIG_PATA_MPIIX is not set
802# CONFIG_PATA_OLDPIIX is not set
803# CONFIG_PATA_NETCELL is not set
804# CONFIG_PATA_NINJA32 is not set
805# CONFIG_PATA_NS87410 is not set
806# CONFIG_PATA_NS87415 is not set
807# CONFIG_PATA_OPTI is not set
808# CONFIG_PATA_OPTIDMA is not set
809# CONFIG_PATA_PCMCIA is not set
810# CONFIG_PATA_PDC_OLD is not set
811# CONFIG_PATA_RADISYS is not set
812# CONFIG_PATA_RZ1000 is not set
813# CONFIG_PATA_SC1200 is not set
814# CONFIG_PATA_SERVERWORKS is not set
815# CONFIG_PATA_PDC2027X is not set
816# CONFIG_PATA_SIL680 is not set
817# CONFIG_PATA_SIS is not set
818# CONFIG_PATA_VIA is not set
819# CONFIG_PATA_WINBOND is not set
820# CONFIG_PATA_PLATFORM is not set
821# CONFIG_PATA_SCC is not set
822# CONFIG_PATA_SCH is not set
767CONFIG_MD=y 823CONFIG_MD=y
768CONFIG_BLK_DEV_MD=y 824CONFIG_BLK_DEV_MD=y
769CONFIG_MD_LINEAR=y 825CONFIG_MD_LINEAR=y
@@ -1478,6 +1534,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1478# 1534#
1479# CONFIG_USB_ACM is not set 1535# CONFIG_USB_ACM is not set
1480# CONFIG_USB_PRINTER is not set 1536# CONFIG_USB_PRINTER is not set
1537# CONFIG_USB_WDM is not set
1481 1538
1482# 1539#
1483# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1540# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1537,6 +1594,7 @@ CONFIG_USB_APPLEDISPLAY=m
1537# CONFIG_USB_TRANCEVIBRATOR is not set 1594# CONFIG_USB_TRANCEVIBRATOR is not set
1538# CONFIG_USB_IOWARRIOR is not set 1595# CONFIG_USB_IOWARRIOR is not set
1539# CONFIG_USB_TEST is not set 1596# CONFIG_USB_TEST is not set
1597# CONFIG_USB_ISIGHTFW is not set
1540# CONFIG_USB_GADGET is not set 1598# CONFIG_USB_GADGET is not set
1541# CONFIG_MMC is not set 1599# CONFIG_MMC is not set
1542# CONFIG_MEMSTICK is not set 1600# CONFIG_MEMSTICK is not set
@@ -1597,6 +1655,7 @@ CONFIG_RTC_DRV_DS1307=y
1597# CONFIG_RTC_DRV_PCF8583 is not set 1655# CONFIG_RTC_DRV_PCF8583 is not set
1598# CONFIG_RTC_DRV_M41T80 is not set 1656# CONFIG_RTC_DRV_M41T80 is not set
1599# CONFIG_RTC_DRV_S35390A is not set 1657# CONFIG_RTC_DRV_S35390A is not set
1658# CONFIG_RTC_DRV_FM3130 is not set
1600 1659
1601# 1660#
1602# SPI RTC drivers 1661# SPI RTC drivers
@@ -1617,6 +1676,7 @@ CONFIG_RTC_DRV_DS1307=y
1617# 1676#
1618# on-CPU RTC drivers 1677# on-CPU RTC drivers
1619# 1678#
1679CONFIG_RTC_DRV_PPC=y
1620# CONFIG_DMADEVICES is not set 1680# CONFIG_DMADEVICES is not set
1621# CONFIG_UIO is not set 1681# CONFIG_UIO is not set
1622 1682
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index 1383eb696a20..bc3bf62ddc2f 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 24 08:48:36 2008 4# Mon Jun 9 08:52:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -30,6 +30,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
35CONFIG_GENERIC_HWEIGHT=y 37CONFIG_GENERIC_HWEIGHT=y
@@ -70,19 +72,17 @@ CONFIG_IKCONFIG=y
70CONFIG_IKCONFIG_PROC=y 72CONFIG_IKCONFIG_PROC=y
71CONFIG_LOG_BUF_SHIFT=14 73CONFIG_LOG_BUF_SHIFT=14
72# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
73CONFIG_GROUP_SCHED=y
74# CONFIG_FAIR_GROUP_SCHED is not set
75CONFIG_USER_SCHED=y
76# CONFIG_CGROUP_SCHED is not set
77CONFIG_SYSFS_DEPRECATED=y 75CONFIG_SYSFS_DEPRECATED=y
78CONFIG_SYSFS_DEPRECATED_V2=y 76CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 77# CONFIG_RELAY is not set
80# CONFIG_NAMESPACES is not set 78# CONFIG_NAMESPACES is not set
81CONFIG_BLK_DEV_INITRD=y 79CONFIG_BLK_DEV_INITRD=y
82CONFIG_INITRAMFS_SOURCE="" 80CONFIG_INITRAMFS_SOURCE=""
81CONFIG_CC_OPTIMIZE_FOR_SIZE=y
83CONFIG_SYSCTL=y 82CONFIG_SYSCTL=y
84CONFIG_EMBEDDED=y 83CONFIG_EMBEDDED=y
85CONFIG_SYSCTL_SYSCALL=y 84CONFIG_SYSCTL_SYSCALL=y
85CONFIG_SYSCTL_SYSCALL_CHECK=y
86CONFIG_KALLSYMS=y 86CONFIG_KALLSYMS=y
87CONFIG_KALLSYMS_ALL=y 87CONFIG_KALLSYMS_ALL=y
88# CONFIG_KALLSYMS_EXTRA_PASS is not set 88# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -109,6 +109,7 @@ CONFIG_SLUB=y
109CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_KPROBES=y 110CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 111CONFIG_HAVE_KRETPROBES=y
112# CONFIG_HAVE_DMA_ATTRS is not set
112CONFIG_PROC_PAGE_MONITOR=y 113CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y 114CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 115CONFIG_RT_MUTEXES=y
@@ -196,11 +197,13 @@ CONFIG_FLATMEM=y
196CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
197# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
198# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 201CONFIG_SPLIT_PTLOCK_CPUS=4
200# CONFIG_RESOURCES_64BIT is not set 202# CONFIG_RESOURCES_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=1 203CONFIG_ZONE_DMA_FLAG=1
202CONFIG_BOUNCE=y 204CONFIG_BOUNCE=y
203CONFIG_VIRT_TO_BUS=y 205CONFIG_VIRT_TO_BUS=y
206CONFIG_FORCE_MAX_ZONEORDER=11
204CONFIG_PROC_DEVICETREE=y 207CONFIG_PROC_DEVICETREE=y
205# CONFIG_CMDLINE_BOOL is not set 208# CONFIG_CMDLINE_BOOL is not set
206# CONFIG_PM is not set 209# CONFIG_PM is not set
@@ -225,6 +228,7 @@ CONFIG_PCI_LEGACY=y
225# CONFIG_PCI_DEBUG is not set 228# CONFIG_PCI_DEBUG is not set
226# CONFIG_PCCARD is not set 229# CONFIG_PCCARD is not set
227# CONFIG_HOTPLUG_PCI is not set 230# CONFIG_HOTPLUG_PCI is not set
231# CONFIG_HAS_RAPIDIO is not set
228 232
229# 233#
230# Advanced setup 234# Advanced setup
@@ -234,11 +238,11 @@ CONFIG_PCI_LEGACY=y
234# 238#
235# Default settings for advanced configuration options are used 239# Default settings for advanced configuration options are used
236# 240#
237CONFIG_HIGHMEM_START=0xfe000000
238CONFIG_LOWMEM_SIZE=0x30000000 241CONFIG_LOWMEM_SIZE=0x30000000
242CONFIG_PAGE_OFFSET=0xc0000000
239CONFIG_KERNEL_START=0xc0000000 243CONFIG_KERNEL_START=0xc0000000
244CONFIG_PHYSICAL_START=0x00000000
240CONFIG_TASK_SIZE=0xc0000000 245CONFIG_TASK_SIZE=0xc0000000
241CONFIG_BOOT_LOAD=0x00400000
242 246
243# 247#
244# Networking 248# Networking
@@ -293,6 +297,7 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y
293CONFIG_INET6_XFRM_MODE_TUNNEL=y 297CONFIG_INET6_XFRM_MODE_TUNNEL=y
294CONFIG_INET6_XFRM_MODE_BEET=y 298CONFIG_INET6_XFRM_MODE_BEET=y
295CONFIG_IPV6_SIT=y 299CONFIG_IPV6_SIT=y
300CONFIG_IPV6_NDISC_NODETYPE=y
296# CONFIG_IPV6_TUNNEL is not set 301# CONFIG_IPV6_TUNNEL is not set
297# CONFIG_NETWORK_SECMARK is not set 302# CONFIG_NETWORK_SECMARK is not set
298CONFIG_NETFILTER=y 303CONFIG_NETFILTER=y
@@ -513,7 +518,7 @@ CONFIG_IDE_PROC_FS=y
513# CONFIG_BLK_DEV_VIA82CXXX is not set 518# CONFIG_BLK_DEV_VIA82CXXX is not set
514# CONFIG_BLK_DEV_TC86C001 is not set 519# CONFIG_BLK_DEV_TC86C001 is not set
515# CONFIG_BLK_DEV_IDEDMA is not set 520# CONFIG_BLK_DEV_IDEDMA is not set
516CONFIG_IDE_ARCH_OBSOLETE_INIT=y 521# CONFIG_BLK_DEV_HD_ONLY is not set
517# CONFIG_BLK_DEV_HD is not set 522# CONFIG_BLK_DEV_HD is not set
518 523
519# 524#
@@ -593,7 +598,6 @@ CONFIG_NETDEV_1000=y
593# CONFIG_SIS190 is not set 598# CONFIG_SIS190 is not set
594# CONFIG_SKGE is not set 599# CONFIG_SKGE is not set
595# CONFIG_SKY2 is not set 600# CONFIG_SKY2 is not set
596# CONFIG_SK98LIN is not set
597# CONFIG_VIA_VELOCITY is not set 601# CONFIG_VIA_VELOCITY is not set
598# CONFIG_TIGON3 is not set 602# CONFIG_TIGON3 is not set
599# CONFIG_BNX2 is not set 603# CONFIG_BNX2 is not set
@@ -611,6 +615,7 @@ CONFIG_NETDEV_10000=y
611# CONFIG_MLX4_CORE is not set 615# CONFIG_MLX4_CORE is not set
612# CONFIG_TEHUTI is not set 616# CONFIG_TEHUTI is not set
613# CONFIG_BNX2X is not set 617# CONFIG_BNX2X is not set
618# CONFIG_SFC is not set
614# CONFIG_TR is not set 619# CONFIG_TR is not set
615 620
616# 621#
@@ -618,6 +623,7 @@ CONFIG_NETDEV_10000=y
618# 623#
619# CONFIG_WLAN_PRE80211 is not set 624# CONFIG_WLAN_PRE80211 is not set
620# CONFIG_WLAN_80211 is not set 625# CONFIG_WLAN_80211 is not set
626# CONFIG_IWLWIFI_LEDS is not set
621# CONFIG_WAN is not set 627# CONFIG_WAN is not set
622# CONFIG_FDDI is not set 628# CONFIG_FDDI is not set
623CONFIG_PPP=y 629CONFIG_PPP=y
@@ -692,6 +698,7 @@ CONFIG_SERIO_LIBPS2=y
692# Character devices 698# Character devices
693# 699#
694# CONFIG_VT is not set 700# CONFIG_VT is not set
701CONFIG_DEVKMEM=y
695# CONFIG_SERIAL_NONSTANDARD is not set 702# CONFIG_SERIAL_NONSTANDARD is not set
696 703
697# 704#
@@ -726,12 +733,7 @@ CONFIG_HW_RANDOM=y
726# CONFIG_RAW_DRIVER is not set 733# CONFIG_RAW_DRIVER is not set
727CONFIG_DEVPORT=y 734CONFIG_DEVPORT=y
728# CONFIG_I2C is not set 735# CONFIG_I2C is not set
729
730#
731# SPI support
732#
733# CONFIG_SPI is not set 736# CONFIG_SPI is not set
734# CONFIG_SPI_MASTER is not set
735# CONFIG_W1 is not set 737# CONFIG_W1 is not set
736# CONFIG_POWER_SUPPLY is not set 738# CONFIG_POWER_SUPPLY is not set
737# CONFIG_HWMON is not set 739# CONFIG_HWMON is not set
@@ -748,12 +750,22 @@ CONFIG_SSB_POSSIBLE=y
748# Multifunction device drivers 750# Multifunction device drivers
749# 751#
750# CONFIG_MFD_SM501 is not set 752# CONFIG_MFD_SM501 is not set
753# CONFIG_HTC_PASIC3 is not set
751 754
752# 755#
753# Multimedia devices 756# Multimedia devices
754# 757#
758
759#
760# Multimedia core support
761#
755# CONFIG_VIDEO_DEV is not set 762# CONFIG_VIDEO_DEV is not set
756# CONFIG_DVB_CORE is not set 763# CONFIG_DVB_CORE is not set
764# CONFIG_VIDEO_MEDIA is not set
765
766#
767# Multimedia drivers
768#
757CONFIG_DAB=y 769CONFIG_DAB=y
758 770
759# 771#
@@ -781,11 +793,14 @@ CONFIG_USB_ARCH_HAS_HCD=y
781CONFIG_USB_ARCH_HAS_OHCI=y 793CONFIG_USB_ARCH_HAS_OHCI=y
782CONFIG_USB_ARCH_HAS_EHCI=y 794CONFIG_USB_ARCH_HAS_EHCI=y
783# CONFIG_USB is not set 795# CONFIG_USB is not set
796# CONFIG_USB_OTG_WHITELIST is not set
797# CONFIG_USB_OTG_BLACKLIST_HUB is not set
784 798
785# 799#
786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 800# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
787# 801#
788CONFIG_USB_GADGET=y 802CONFIG_USB_GADGET=y
803# CONFIG_USB_GADGET_DEBUG is not set
789# CONFIG_USB_GADGET_DEBUG_FILES is not set 804# CONFIG_USB_GADGET_DEBUG_FILES is not set
790CONFIG_USB_GADGET_SELECTED=y 805CONFIG_USB_GADGET_SELECTED=y
791# CONFIG_USB_GADGET_AMD5536UDC is not set 806# CONFIG_USB_GADGET_AMD5536UDC is not set
@@ -795,6 +810,7 @@ CONFIG_USB_GADGET_SELECTED=y
795# CONFIG_USB_GADGET_PXA2XX is not set 810# CONFIG_USB_GADGET_PXA2XX is not set
796CONFIG_USB_GADGET_M66592=y 811CONFIG_USB_GADGET_M66592=y
797CONFIG_USB_M66592=y 812CONFIG_USB_M66592=y
813# CONFIG_USB_GADGET_PXA27X is not set
798# CONFIG_USB_GADGET_GOKU is not set 814# CONFIG_USB_GADGET_GOKU is not set
799# CONFIG_USB_GADGET_LH7A40X is not set 815# CONFIG_USB_GADGET_LH7A40X is not set
800# CONFIG_USB_GADGET_OMAP is not set 816# CONFIG_USB_GADGET_OMAP is not set
@@ -804,6 +820,7 @@ CONFIG_USB_M66592=y
804CONFIG_USB_GADGET_DUALSPEED=y 820CONFIG_USB_GADGET_DUALSPEED=y
805# CONFIG_USB_ZERO is not set 821# CONFIG_USB_ZERO is not set
806CONFIG_USB_ETH=y 822CONFIG_USB_ETH=y
823CONFIG_USB_ETH_RNDIS=y
807# CONFIG_USB_GADGETFS is not set 824# CONFIG_USB_GADGETFS is not set
808# CONFIG_USB_FILE_STORAGE is not set 825# CONFIG_USB_FILE_STORAGE is not set
809# CONFIG_USB_G_SERIAL is not set 826# CONFIG_USB_G_SERIAL is not set
@@ -812,13 +829,10 @@ CONFIG_USB_ETH=y
812# CONFIG_MMC is not set 829# CONFIG_MMC is not set
813# CONFIG_MEMSTICK is not set 830# CONFIG_MEMSTICK is not set
814# CONFIG_NEW_LEDS is not set 831# CONFIG_NEW_LEDS is not set
832# CONFIG_ACCESSIBILITY is not set
815# CONFIG_INFINIBAND is not set 833# CONFIG_INFINIBAND is not set
816# CONFIG_RTC_CLASS is not set 834# CONFIG_RTC_CLASS is not set
817# CONFIG_DMADEVICES is not set 835# CONFIG_DMADEVICES is not set
818
819#
820# Userspace I/O
821#
822# CONFIG_UIO is not set 836# CONFIG_UIO is not set
823 837
824# 838#
@@ -888,7 +902,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
888CONFIG_NFS_FS=y 902CONFIG_NFS_FS=y
889CONFIG_NFS_V3=y 903CONFIG_NFS_V3=y
890CONFIG_NFS_V3_ACL=y 904CONFIG_NFS_V3_ACL=y
891# CONFIG_NFS_DIRECTIO is not set
892# CONFIG_NFSD is not set 905# CONFIG_NFSD is not set
893CONFIG_ROOT_NFS=y 906CONFIG_ROOT_NFS=y
894CONFIG_LOCKD=y 907CONFIG_LOCKD=y
@@ -967,6 +980,7 @@ CONFIG_NLS_UTF8=y
967# Library routines 980# Library routines
968# 981#
969CONFIG_BITREVERSE=y 982CONFIG_BITREVERSE=y
983# CONFIG_GENERIC_FIND_FIRST_BIT is not set
970CONFIG_CRC_CCITT=y 984CONFIG_CRC_CCITT=y
971# CONFIG_CRC16 is not set 985# CONFIG_CRC16 is not set
972# CONFIG_CRC_ITU_T is not set 986# CONFIG_CRC_ITU_T is not set
@@ -979,6 +993,7 @@ CONFIG_PLIST=y
979CONFIG_HAS_IOMEM=y 993CONFIG_HAS_IOMEM=y
980CONFIG_HAS_IOPORT=y 994CONFIG_HAS_IOPORT=y
981CONFIG_HAS_DMA=y 995CONFIG_HAS_DMA=y
996CONFIG_HAVE_LMB=y
982 997
983# 998#
984# Kernel hacking 999# Kernel hacking
@@ -986,6 +1001,7 @@ CONFIG_HAS_DMA=y
986# CONFIG_PRINTK_TIME is not set 1001# CONFIG_PRINTK_TIME is not set
987CONFIG_ENABLE_WARN_DEPRECATED=y 1002CONFIG_ENABLE_WARN_DEPRECATED=y
988CONFIG_ENABLE_MUST_CHECK=y 1003CONFIG_ENABLE_MUST_CHECK=y
1004CONFIG_FRAME_WARN=1024
989CONFIG_MAGIC_SYSRQ=y 1005CONFIG_MAGIC_SYSRQ=y
990# CONFIG_UNUSED_SYMBOLS is not set 1006# CONFIG_UNUSED_SYMBOLS is not set
991# CONFIG_DEBUG_FS is not set 1007# CONFIG_DEBUG_FS is not set
@@ -996,6 +1012,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
996# CONFIG_SCHED_DEBUG is not set 1012# CONFIG_SCHED_DEBUG is not set
997# CONFIG_SCHEDSTATS is not set 1013# CONFIG_SCHEDSTATS is not set
998# CONFIG_TIMER_STATS is not set 1014# CONFIG_TIMER_STATS is not set
1015# CONFIG_DEBUG_OBJECTS is not set
999# CONFIG_SLUB_DEBUG_ON is not set 1016# CONFIG_SLUB_DEBUG_ON is not set
1000# CONFIG_SLUB_STATS is not set 1017# CONFIG_SLUB_STATS is not set
1001# CONFIG_DEBUG_RT_MUTEXES is not set 1018# CONFIG_DEBUG_RT_MUTEXES is not set
@@ -1008,6 +1025,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1008CONFIG_DEBUG_BUGVERBOSE=y 1025CONFIG_DEBUG_BUGVERBOSE=y
1009CONFIG_DEBUG_INFO=y 1026CONFIG_DEBUG_INFO=y
1010# CONFIG_DEBUG_VM is not set 1027# CONFIG_DEBUG_VM is not set
1028# CONFIG_DEBUG_WRITECOUNT is not set
1011# CONFIG_DEBUG_LIST is not set 1029# CONFIG_DEBUG_LIST is not set
1012# CONFIG_DEBUG_SG is not set 1030# CONFIG_DEBUG_SG is not set
1013# CONFIG_BOOT_PRINTK_DELAY is not set 1031# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1019,6 +1037,7 @@ CONFIG_DEBUG_INFO=y
1019# CONFIG_DEBUG_PAGEALLOC is not set 1037# CONFIG_DEBUG_PAGEALLOC is not set
1020# CONFIG_DEBUGGER is not set 1038# CONFIG_DEBUGGER is not set
1021# CONFIG_KGDB_CONSOLE is not set 1039# CONFIG_KGDB_CONSOLE is not set
1040# CONFIG_IRQSTACKS is not set
1022CONFIG_BDI_SWITCH=y 1041CONFIG_BDI_SWITCH=y
1023# CONFIG_PPC_EARLY_DEBUG is not set 1042# CONFIG_PPC_EARLY_DEBUG is not set
1024 1043
@@ -1028,46 +1047,76 @@ CONFIG_BDI_SWITCH=y
1028# CONFIG_KEYS is not set 1047# CONFIG_KEYS is not set
1029# CONFIG_SECURITY is not set 1048# CONFIG_SECURITY is not set
1030CONFIG_CRYPTO=y 1049CONFIG_CRYPTO=y
1050
1051#
1052# Crypto core or helper
1053#
1031CONFIG_CRYPTO_ALGAPI=y 1054CONFIG_CRYPTO_ALGAPI=y
1032CONFIG_CRYPTO_BLKCIPHER=y 1055CONFIG_CRYPTO_BLKCIPHER=y
1033# CONFIG_CRYPTO_SEQIV is not set
1034CONFIG_CRYPTO_MANAGER=y 1056CONFIG_CRYPTO_MANAGER=y
1035# CONFIG_CRYPTO_HMAC is not set
1036# CONFIG_CRYPTO_NULL is not set 1057# CONFIG_CRYPTO_NULL is not set
1058# CONFIG_CRYPTO_CRYPTD is not set
1059# CONFIG_CRYPTO_AUTHENC is not set
1060
1061#
1062# Authenticated Encryption with Associated Data
1063#
1064# CONFIG_CRYPTO_CCM is not set
1065# CONFIG_CRYPTO_GCM is not set
1066# CONFIG_CRYPTO_SEQIV is not set
1067
1068#
1069# Block modes
1070#
1071CONFIG_CRYPTO_CBC=y
1072# CONFIG_CRYPTO_CTR is not set
1073# CONFIG_CRYPTO_CTS is not set
1074CONFIG_CRYPTO_ECB=y
1075CONFIG_CRYPTO_PCBC=y
1076
1077#
1078# Hash modes
1079#
1080# CONFIG_CRYPTO_HMAC is not set
1081
1082#
1083# Digest
1084#
1085# CONFIG_CRYPTO_CRC32C is not set
1037# CONFIG_CRYPTO_MD4 is not set 1086# CONFIG_CRYPTO_MD4 is not set
1038CONFIG_CRYPTO_MD5=y 1087CONFIG_CRYPTO_MD5=y
1088# CONFIG_CRYPTO_MICHAEL_MIC is not set
1039# CONFIG_CRYPTO_SHA1 is not set 1089# CONFIG_CRYPTO_SHA1 is not set
1040# CONFIG_CRYPTO_SHA256 is not set 1090# CONFIG_CRYPTO_SHA256 is not set
1041# CONFIG_CRYPTO_SHA512 is not set 1091# CONFIG_CRYPTO_SHA512 is not set
1042# CONFIG_CRYPTO_WP512 is not set
1043# CONFIG_CRYPTO_TGR192 is not set 1092# CONFIG_CRYPTO_TGR192 is not set
1044CONFIG_CRYPTO_ECB=y 1093# CONFIG_CRYPTO_WP512 is not set
1045CONFIG_CRYPTO_CBC=y 1094
1046CONFIG_CRYPTO_PCBC=y 1095#
1047# CONFIG_CRYPTO_CTR is not set 1096# Ciphers
1048# CONFIG_CRYPTO_GCM is not set 1097#
1049# CONFIG_CRYPTO_CCM is not set
1050# CONFIG_CRYPTO_CRYPTD is not set
1051CONFIG_CRYPTO_DES=y
1052# CONFIG_CRYPTO_FCRYPT is not set
1053# CONFIG_CRYPTO_BLOWFISH is not set
1054# CONFIG_CRYPTO_TWOFISH is not set
1055# CONFIG_CRYPTO_SERPENT is not set
1056# CONFIG_CRYPTO_AES is not set 1098# CONFIG_CRYPTO_AES is not set
1099# CONFIG_CRYPTO_ANUBIS is not set
1100# CONFIG_CRYPTO_ARC4 is not set
1101# CONFIG_CRYPTO_BLOWFISH is not set
1102# CONFIG_CRYPTO_CAMELLIA is not set
1057# CONFIG_CRYPTO_CAST5 is not set 1103# CONFIG_CRYPTO_CAST5 is not set
1058# CONFIG_CRYPTO_CAST6 is not set 1104# CONFIG_CRYPTO_CAST6 is not set
1059# CONFIG_CRYPTO_TEA is not set 1105CONFIG_CRYPTO_DES=y
1060# CONFIG_CRYPTO_ARC4 is not set 1106# CONFIG_CRYPTO_FCRYPT is not set
1061# CONFIG_CRYPTO_KHAZAD is not set 1107# CONFIG_CRYPTO_KHAZAD is not set
1062# CONFIG_CRYPTO_ANUBIS is not set
1063# CONFIG_CRYPTO_SEED is not set 1108# CONFIG_CRYPTO_SEED is not set
1109# CONFIG_CRYPTO_SERPENT is not set
1110# CONFIG_CRYPTO_TEA is not set
1111# CONFIG_CRYPTO_TWOFISH is not set
1112
1113#
1114# Compression
1115#
1064# CONFIG_CRYPTO_DEFLATE is not set 1116# CONFIG_CRYPTO_DEFLATE is not set
1065# CONFIG_CRYPTO_MICHAEL_MIC is not set
1066# CONFIG_CRYPTO_CRC32C is not set
1067# CONFIG_CRYPTO_CAMELLIA is not set
1068# CONFIG_CRYPTO_AUTHENC is not set
1069# CONFIG_CRYPTO_LZO is not set 1117# CONFIG_CRYPTO_LZO is not set
1070CONFIG_CRYPTO_HW=y 1118CONFIG_CRYPTO_HW=y
1071# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1119# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1072# CONFIG_PPC_CLOCK is not set 1120# CONFIG_PPC_CLOCK is not set
1073CONFIG_PPC_LIB_RHEAP=y 1121CONFIG_PPC_LIB_RHEAP=y
1122# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index f9121685f11a..c6b83577c055 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:15 2008 4# Mon Jun 9 08:52:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
33CONFIG_GENERIC_HARDIRQS=y 33CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
38CONFIG_GENERIC_HWEIGHT=y 40CONFIG_GENERIC_HWEIGHT=y
@@ -92,6 +94,7 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
93# CONFIG_EMBEDDED is not set 95# CONFIG_EMBEDDED is not set
94CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
95CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
96# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
97CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
@@ -117,6 +120,7 @@ CONFIG_SLUB=y
117CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123# CONFIG_HAVE_DMA_ATTRS is not set
120CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
@@ -215,11 +219,13 @@ CONFIG_FLATMEM=y
215CONFIG_FLAT_NODE_MEM_MAP=y 219CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_STATIC is not set 220# CONFIG_SPARSEMEM_STATIC is not set
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
219# CONFIG_RESOURCES_64BIT is not set 224# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 225CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 226CONFIG_BOUNCE=y
222CONFIG_VIRT_TO_BUS=y 227CONFIG_VIRT_TO_BUS=y
228CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 229CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 230# CONFIG_CMDLINE_BOOL is not set
225# CONFIG_PM is not set 231# CONFIG_PM is not set
@@ -241,6 +247,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
241CONFIG_PCI_LEGACY=y 247CONFIG_PCI_LEGACY=y
242# CONFIG_PCCARD is not set 248# CONFIG_PCCARD is not set
243# CONFIG_HOTPLUG_PCI is not set 249# CONFIG_HOTPLUG_PCI is not set
250# CONFIG_HAS_RAPIDIO is not set
244 251
245# 252#
246# Advanced setup 253# Advanced setup
@@ -250,13 +257,13 @@ CONFIG_PCI_LEGACY=y
250# 257#
251# Default settings for advanced configuration options are used 258# Default settings for advanced configuration options are used
252# 259#
253CONFIG_HIGHMEM_START=0xfe000000
254CONFIG_LOWMEM_SIZE=0x30000000 260CONFIG_LOWMEM_SIZE=0x30000000
261CONFIG_PAGE_OFFSET=0xc0000000
255CONFIG_KERNEL_START=0xc0000000 262CONFIG_KERNEL_START=0xc0000000
263CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0xc0000000 264CONFIG_TASK_SIZE=0xc0000000
257CONFIG_CONSISTENT_START=0xff100000 265CONFIG_CONSISTENT_START=0xff100000
258CONFIG_CONSISTENT_SIZE=0x00200000 266CONFIG_CONSISTENT_SIZE=0x00200000
259CONFIG_BOOT_LOAD=0x00800000
260 267
261# 268#
262# Networking 269# Networking
@@ -304,8 +311,6 @@ CONFIG_TCP_CONG_CUBIC=y
304CONFIG_DEFAULT_TCP_CONG="cubic" 311CONFIG_DEFAULT_TCP_CONG="cubic"
305# CONFIG_TCP_MD5SIG is not set 312# CONFIG_TCP_MD5SIG is not set
306# CONFIG_IPV6 is not set 313# CONFIG_IPV6 is not set
307# CONFIG_INET6_XFRM_TUNNEL is not set
308# CONFIG_INET6_TUNNEL is not set
309# CONFIG_NETWORK_SECMARK is not set 314# CONFIG_NETWORK_SECMARK is not set
310# CONFIG_NETFILTER is not set 315# CONFIG_NETFILTER is not set
311# CONFIG_IP_DCCP is not set 316# CONFIG_IP_DCCP is not set
@@ -364,6 +369,7 @@ CONFIG_MTD_PARTITIONS=y
364# CONFIG_MTD_REDBOOT_PARTS is not set 369# CONFIG_MTD_REDBOOT_PARTS is not set
365# CONFIG_MTD_CMDLINE_PARTS is not set 370# CONFIG_MTD_CMDLINE_PARTS is not set
366# CONFIG_MTD_OF_PARTS is not set 371# CONFIG_MTD_OF_PARTS is not set
372# CONFIG_MTD_AR7_PARTS is not set
367 373
368# 374#
369# User Modules And Translation Layers 375# User Modules And Translation Layers
@@ -435,6 +441,7 @@ CONFIG_MTD_PHYSMAP_OF=y
435# 441#
436# CONFIG_MTD_UBI is not set 442# CONFIG_MTD_UBI is not set
437CONFIG_OF_DEVICE=y 443CONFIG_OF_DEVICE=y
444CONFIG_OF_I2C=y
438# CONFIG_PARPORT is not set 445# CONFIG_PARPORT is not set
439CONFIG_BLK_DEV=y 446CONFIG_BLK_DEV=y
440# CONFIG_BLK_DEV_FD is not set 447# CONFIG_BLK_DEV_FD is not set
@@ -519,7 +526,7 @@ CONFIG_BLK_DEV_PDC202XX_NEW=y
519# CONFIG_BLK_DEV_VIA82CXXX is not set 526# CONFIG_BLK_DEV_VIA82CXXX is not set
520# CONFIG_BLK_DEV_TC86C001 is not set 527# CONFIG_BLK_DEV_TC86C001 is not set
521CONFIG_BLK_DEV_IDEDMA=y 528CONFIG_BLK_DEV_IDEDMA=y
522CONFIG_IDE_ARCH_OBSOLETE_INIT=y 529# CONFIG_BLK_DEV_HD_ONLY is not set
523# CONFIG_BLK_DEV_HD is not set 530# CONFIG_BLK_DEV_HD is not set
524 531
525# 532#
@@ -598,7 +605,10 @@ CONFIG_SCSI_LOWLEVEL=y
598# CONFIG_SCSI_SRP is not set 605# CONFIG_SCSI_SRP is not set
599CONFIG_ATA=y 606CONFIG_ATA=y
600# CONFIG_ATA_NONSTANDARD is not set 607# CONFIG_ATA_NONSTANDARD is not set
608CONFIG_SATA_PMP=y
601# CONFIG_SATA_AHCI is not set 609# CONFIG_SATA_AHCI is not set
610# CONFIG_SATA_SIL24 is not set
611CONFIG_ATA_SFF=y
602# CONFIG_SATA_SVW is not set 612# CONFIG_SATA_SVW is not set
603# CONFIG_ATA_PIIX is not set 613# CONFIG_ATA_PIIX is not set
604CONFIG_SATA_MV=y 614CONFIG_SATA_MV=y
@@ -608,7 +618,6 @@ CONFIG_SATA_MV=y
608# CONFIG_SATA_PROMISE is not set 618# CONFIG_SATA_PROMISE is not set
609# CONFIG_SATA_SX4 is not set 619# CONFIG_SATA_SX4 is not set
610# CONFIG_SATA_SIL is not set 620# CONFIG_SATA_SIL is not set
611# CONFIG_SATA_SIL24 is not set
612# CONFIG_SATA_SIS is not set 621# CONFIG_SATA_SIS is not set
613# CONFIG_SATA_ULI is not set 622# CONFIG_SATA_ULI is not set
614# CONFIG_SATA_VIA is not set 623# CONFIG_SATA_VIA is not set
@@ -653,6 +662,7 @@ CONFIG_SATA_MV=y
653# CONFIG_PATA_VIA is not set 662# CONFIG_PATA_VIA is not set
654# CONFIG_PATA_WINBOND is not set 663# CONFIG_PATA_WINBOND is not set
655# CONFIG_PATA_PLATFORM is not set 664# CONFIG_PATA_PLATFORM is not set
665# CONFIG_PATA_SCH is not set
656# CONFIG_MD is not set 666# CONFIG_MD is not set
657# CONFIG_FUSION is not set 667# CONFIG_FUSION is not set
658 668
@@ -744,7 +754,6 @@ CONFIG_E1000=y
744# CONFIG_SIS190 is not set 754# CONFIG_SIS190 is not set
745# CONFIG_SKGE is not set 755# CONFIG_SKGE is not set
746# CONFIG_SKY2 is not set 756# CONFIG_SKY2 is not set
747# CONFIG_SK98LIN is not set
748# CONFIG_VIA_VELOCITY is not set 757# CONFIG_VIA_VELOCITY is not set
749# CONFIG_TIGON3 is not set 758# CONFIG_TIGON3 is not set
750# CONFIG_BNX2 is not set 759# CONFIG_BNX2 is not set
@@ -763,6 +772,7 @@ CONFIG_NETDEV_10000=y
763# CONFIG_MLX4_CORE is not set 772# CONFIG_MLX4_CORE is not set
764# CONFIG_TEHUTI is not set 773# CONFIG_TEHUTI is not set
765# CONFIG_BNX2X is not set 774# CONFIG_BNX2X is not set
775# CONFIG_SFC is not set
766# CONFIG_TR is not set 776# CONFIG_TR is not set
767 777
768# 778#
@@ -770,6 +780,7 @@ CONFIG_NETDEV_10000=y
770# 780#
771# CONFIG_WLAN_PRE80211 is not set 781# CONFIG_WLAN_PRE80211 is not set
772# CONFIG_WLAN_80211 is not set 782# CONFIG_WLAN_80211 is not set
783# CONFIG_IWLWIFI_LEDS is not set
773 784
774# 785#
775# USB Network Adapters 786# USB Network Adapters
@@ -832,6 +843,7 @@ CONFIG_VT=y
832CONFIG_VT_CONSOLE=y 843CONFIG_VT_CONSOLE=y
833CONFIG_HW_CONSOLE=y 844CONFIG_HW_CONSOLE=y
834# CONFIG_VT_HW_CONSOLE_BINDING is not set 845# CONFIG_VT_HW_CONSOLE_BINDING is not set
846CONFIG_DEVKMEM=y
835# CONFIG_SERIAL_NONSTANDARD is not set 847# CONFIG_SERIAL_NONSTANDARD is not set
836# CONFIG_NOZOMI is not set 848# CONFIG_NOZOMI is not set
837 849
@@ -855,7 +867,6 @@ CONFIG_LEGACY_PTY_COUNT=256
855# CONFIG_IPMI_HANDLER is not set 867# CONFIG_IPMI_HANDLER is not set
856# CONFIG_HW_RANDOM is not set 868# CONFIG_HW_RANDOM is not set
857# CONFIG_NVRAM is not set 869# CONFIG_NVRAM is not set
858# CONFIG_GEN_RTC is not set
859# CONFIG_R3964 is not set 870# CONFIG_R3964 is not set
860# CONFIG_APPLICOM is not set 871# CONFIG_APPLICOM is not set
861# CONFIG_RAW_DRIVER is not set 872# CONFIG_RAW_DRIVER is not set
@@ -866,13 +877,6 @@ CONFIG_I2C_BOARDINFO=y
866CONFIG_I2C_CHARDEV=y 877CONFIG_I2C_CHARDEV=y
867 878
868# 879#
869# I2C Algorithms
870#
871# CONFIG_I2C_ALGOBIT is not set
872# CONFIG_I2C_ALGOPCF is not set
873# CONFIG_I2C_ALGOPCA is not set
874
875#
876# I2C Hardware Bus support 880# I2C Hardware Bus support
877# 881#
878# CONFIG_I2C_ALI1535 is not set 882# CONFIG_I2C_ALI1535 is not set
@@ -898,6 +902,7 @@ CONFIG_I2C_CHARDEV=y
898# CONFIG_I2C_VIA is not set 902# CONFIG_I2C_VIA is not set
899# CONFIG_I2C_VIAPRO is not set 903# CONFIG_I2C_VIAPRO is not set
900# CONFIG_I2C_VOODOO3 is not set 904# CONFIG_I2C_VOODOO3 is not set
905# CONFIG_I2C_PCA_PLATFORM is not set
901CONFIG_I2C_MV64XXX=y 906CONFIG_I2C_MV64XXX=y
902 907
903# 908#
@@ -908,19 +913,13 @@ CONFIG_I2C_MV64XXX=y
908# CONFIG_SENSORS_PCF8574 is not set 913# CONFIG_SENSORS_PCF8574 is not set
909# CONFIG_PCF8575 is not set 914# CONFIG_PCF8575 is not set
910# CONFIG_SENSORS_PCF8591 is not set 915# CONFIG_SENSORS_PCF8591 is not set
911# CONFIG_TPS65010 is not set
912# CONFIG_SENSORS_MAX6875 is not set 916# CONFIG_SENSORS_MAX6875 is not set
913# CONFIG_SENSORS_TSL2550 is not set 917# CONFIG_SENSORS_TSL2550 is not set
914# CONFIG_I2C_DEBUG_CORE is not set 918# CONFIG_I2C_DEBUG_CORE is not set
915# CONFIG_I2C_DEBUG_ALGO is not set 919# CONFIG_I2C_DEBUG_ALGO is not set
916# CONFIG_I2C_DEBUG_BUS is not set 920# CONFIG_I2C_DEBUG_BUS is not set
917# CONFIG_I2C_DEBUG_CHIP is not set 921# CONFIG_I2C_DEBUG_CHIP is not set
918
919#
920# SPI support
921#
922# CONFIG_SPI is not set 922# CONFIG_SPI is not set
923# CONFIG_SPI_MASTER is not set
924# CONFIG_W1 is not set 923# CONFIG_W1 is not set
925# CONFIG_POWER_SUPPLY is not set 924# CONFIG_POWER_SUPPLY is not set
926CONFIG_HWMON=y 925CONFIG_HWMON=y
@@ -990,12 +989,22 @@ CONFIG_SSB_POSSIBLE=y
990# Multifunction device drivers 989# Multifunction device drivers
991# 990#
992# CONFIG_MFD_SM501 is not set 991# CONFIG_MFD_SM501 is not set
992# CONFIG_HTC_PASIC3 is not set
993 993
994# 994#
995# Multimedia devices 995# Multimedia devices
996# 996#
997
998#
999# Multimedia core support
1000#
997# CONFIG_VIDEO_DEV is not set 1001# CONFIG_VIDEO_DEV is not set
998# CONFIG_DVB_CORE is not set 1002# CONFIG_DVB_CORE is not set
1003# CONFIG_VIDEO_MEDIA is not set
1004
1005#
1006# Multimedia drivers
1007#
999# CONFIG_DAB is not set 1008# CONFIG_DAB is not set
1000 1009
1001# 1010#
@@ -1055,11 +1064,13 @@ CONFIG_USB_DEVICEFS=y
1055# 1064#
1056# USB Host Controller Drivers 1065# USB Host Controller Drivers
1057# 1066#
1067# CONFIG_USB_C67X00_HCD is not set
1058CONFIG_USB_EHCI_HCD=y 1068CONFIG_USB_EHCI_HCD=y
1059# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1069# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1060# CONFIG_USB_EHCI_TT_NEWSCHED is not set 1070# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1061CONFIG_USB_EHCI_HCD_PPC_OF=y 1071CONFIG_USB_EHCI_HCD_PPC_OF=y
1062# CONFIG_USB_ISP116X_HCD is not set 1072# CONFIG_USB_ISP116X_HCD is not set
1073# CONFIG_USB_ISP1760_HCD is not set
1063CONFIG_USB_OHCI_HCD=y 1074CONFIG_USB_OHCI_HCD=y
1064# CONFIG_USB_OHCI_HCD_PPC_OF is not set 1075# CONFIG_USB_OHCI_HCD_PPC_OF is not set
1065# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1076# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -1074,6 +1085,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1074# 1085#
1075# CONFIG_USB_ACM is not set 1086# CONFIG_USB_ACM is not set
1076# CONFIG_USB_PRINTER is not set 1087# CONFIG_USB_PRINTER is not set
1088# CONFIG_USB_WDM is not set
1077 1089
1078# 1090#
1079# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1091# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1120,10 +1132,12 @@ CONFIG_USB_MON=y
1120# CONFIG_USB_TRANCEVIBRATOR is not set 1132# CONFIG_USB_TRANCEVIBRATOR is not set
1121# CONFIG_USB_IOWARRIOR is not set 1133# CONFIG_USB_IOWARRIOR is not set
1122# CONFIG_USB_TEST is not set 1134# CONFIG_USB_TEST is not set
1135# CONFIG_USB_ISIGHTFW is not set
1123# CONFIG_USB_GADGET is not set 1136# CONFIG_USB_GADGET is not set
1124# CONFIG_MMC is not set 1137# CONFIG_MMC is not set
1125# CONFIG_MEMSTICK is not set 1138# CONFIG_MEMSTICK is not set
1126# CONFIG_NEW_LEDS is not set 1139# CONFIG_NEW_LEDS is not set
1140# CONFIG_ACCESSIBILITY is not set
1127# CONFIG_INFINIBAND is not set 1141# CONFIG_INFINIBAND is not set
1128# CONFIG_EDAC is not set 1142# CONFIG_EDAC is not set
1129CONFIG_RTC_LIB=y 1143CONFIG_RTC_LIB=y
@@ -1175,11 +1189,8 @@ CONFIG_RTC_DRV_MAX6900=y
1175# 1189#
1176# on-CPU RTC drivers 1190# on-CPU RTC drivers
1177# 1191#
1192# CONFIG_RTC_DRV_PPC is not set
1178# CONFIG_DMADEVICES is not set 1193# CONFIG_DMADEVICES is not set
1179
1180#
1181# Userspace I/O
1182#
1183# CONFIG_UIO is not set 1194# CONFIG_UIO is not set
1184 1195
1185# 1196#
@@ -1199,7 +1210,6 @@ CONFIG_FS_MBCACHE=y
1199# CONFIG_JFS_FS is not set 1210# CONFIG_JFS_FS is not set
1200# CONFIG_FS_POSIX_ACL is not set 1211# CONFIG_FS_POSIX_ACL is not set
1201# CONFIG_XFS_FS is not set 1212# CONFIG_XFS_FS is not set
1202# CONFIG_GFS2_FS is not set
1203# CONFIG_OCFS2_FS is not set 1213# CONFIG_OCFS2_FS is not set
1204CONFIG_DNOTIFY=y 1214CONFIG_DNOTIFY=y
1205CONFIG_INOTIFY=y 1215CONFIG_INOTIFY=y
@@ -1257,7 +1267,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
1257CONFIG_NFS_FS=y 1267CONFIG_NFS_FS=y
1258# CONFIG_NFS_V3 is not set 1268# CONFIG_NFS_V3 is not set
1259# CONFIG_NFS_V4 is not set 1269# CONFIG_NFS_V4 is not set
1260# CONFIG_NFS_DIRECTIO is not set
1261# CONFIG_NFSD is not set 1270# CONFIG_NFSD is not set
1262CONFIG_ROOT_NFS=y 1271CONFIG_ROOT_NFS=y
1263CONFIG_LOCKD=y 1272CONFIG_LOCKD=y
@@ -1300,6 +1309,7 @@ CONFIG_MSDOS_PARTITION=y
1300# Library routines 1309# Library routines
1301# 1310#
1302CONFIG_BITREVERSE=y 1311CONFIG_BITREVERSE=y
1312# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1303# CONFIG_CRC_CCITT is not set 1313# CONFIG_CRC_CCITT is not set
1304# CONFIG_CRC16 is not set 1314# CONFIG_CRC16 is not set
1305# CONFIG_CRC_ITU_T is not set 1315# CONFIG_CRC_ITU_T is not set
@@ -1310,6 +1320,7 @@ CONFIG_PLIST=y
1310CONFIG_HAS_IOMEM=y 1320CONFIG_HAS_IOMEM=y
1311CONFIG_HAS_IOPORT=y 1321CONFIG_HAS_IOPORT=y
1312CONFIG_HAS_DMA=y 1322CONFIG_HAS_DMA=y
1323CONFIG_HAVE_LMB=y
1313 1324
1314# 1325#
1315# Kernel hacking 1326# Kernel hacking
@@ -1317,6 +1328,7 @@ CONFIG_HAS_DMA=y
1317# CONFIG_PRINTK_TIME is not set 1328# CONFIG_PRINTK_TIME is not set
1318CONFIG_ENABLE_WARN_DEPRECATED=y 1329CONFIG_ENABLE_WARN_DEPRECATED=y
1319CONFIG_ENABLE_MUST_CHECK=y 1330CONFIG_ENABLE_MUST_CHECK=y
1331CONFIG_FRAME_WARN=1024
1320# CONFIG_MAGIC_SYSRQ is not set 1332# CONFIG_MAGIC_SYSRQ is not set
1321# CONFIG_UNUSED_SYMBOLS is not set 1333# CONFIG_UNUSED_SYMBOLS is not set
1322# CONFIG_DEBUG_FS is not set 1334# CONFIG_DEBUG_FS is not set
@@ -1326,6 +1338,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1326# CONFIG_SLUB_STATS is not set 1338# CONFIG_SLUB_STATS is not set
1327CONFIG_DEBUG_BUGVERBOSE=y 1339CONFIG_DEBUG_BUGVERBOSE=y
1328# CONFIG_SAMPLES is not set 1340# CONFIG_SAMPLES is not set
1341# CONFIG_IRQSTACKS is not set
1329# CONFIG_BOOTX_TEXT is not set 1342# CONFIG_BOOTX_TEXT is not set
1330# CONFIG_PPC_EARLY_DEBUG is not set 1343# CONFIG_PPC_EARLY_DEBUG is not set
1331 1344
@@ -1336,48 +1349,78 @@ CONFIG_DEBUG_BUGVERBOSE=y
1336# CONFIG_SECURITY is not set 1349# CONFIG_SECURITY is not set
1337# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1350# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1338CONFIG_CRYPTO=y 1351CONFIG_CRYPTO=y
1339# CONFIG_CRYPTO_SEQIV is not set 1352
1353#
1354# Crypto core or helper
1355#
1340# CONFIG_CRYPTO_MANAGER is not set 1356# CONFIG_CRYPTO_MANAGER is not set
1357# CONFIG_CRYPTO_GF128MUL is not set
1358# CONFIG_CRYPTO_NULL is not set
1359# CONFIG_CRYPTO_CRYPTD is not set
1360# CONFIG_CRYPTO_AUTHENC is not set
1361
1362#
1363# Authenticated Encryption with Associated Data
1364#
1365# CONFIG_CRYPTO_CCM is not set
1366# CONFIG_CRYPTO_GCM is not set
1367# CONFIG_CRYPTO_SEQIV is not set
1368
1369#
1370# Block modes
1371#
1372# CONFIG_CRYPTO_CBC is not set
1373# CONFIG_CRYPTO_CTR is not set
1374# CONFIG_CRYPTO_CTS is not set
1375# CONFIG_CRYPTO_ECB is not set
1376# CONFIG_CRYPTO_LRW is not set
1377# CONFIG_CRYPTO_PCBC is not set
1378# CONFIG_CRYPTO_XTS is not set
1379
1380#
1381# Hash modes
1382#
1341# CONFIG_CRYPTO_HMAC is not set 1383# CONFIG_CRYPTO_HMAC is not set
1342# CONFIG_CRYPTO_XCBC is not set 1384# CONFIG_CRYPTO_XCBC is not set
1343# CONFIG_CRYPTO_NULL is not set 1385
1386#
1387# Digest
1388#
1389# CONFIG_CRYPTO_CRC32C is not set
1344# CONFIG_CRYPTO_MD4 is not set 1390# CONFIG_CRYPTO_MD4 is not set
1345# CONFIG_CRYPTO_MD5 is not set 1391# CONFIG_CRYPTO_MD5 is not set
1392# CONFIG_CRYPTO_MICHAEL_MIC is not set
1346# CONFIG_CRYPTO_SHA1 is not set 1393# CONFIG_CRYPTO_SHA1 is not set
1347# CONFIG_CRYPTO_SHA256 is not set 1394# CONFIG_CRYPTO_SHA256 is not set
1348# CONFIG_CRYPTO_SHA512 is not set 1395# CONFIG_CRYPTO_SHA512 is not set
1349# CONFIG_CRYPTO_WP512 is not set
1350# CONFIG_CRYPTO_TGR192 is not set 1396# CONFIG_CRYPTO_TGR192 is not set
1351# CONFIG_CRYPTO_GF128MUL is not set 1397# CONFIG_CRYPTO_WP512 is not set
1352# CONFIG_CRYPTO_ECB is not set 1398
1353# CONFIG_CRYPTO_CBC is not set 1399#
1354# CONFIG_CRYPTO_PCBC is not set 1400# Ciphers
1355# CONFIG_CRYPTO_LRW is not set 1401#
1356# CONFIG_CRYPTO_XTS is not set
1357# CONFIG_CRYPTO_CTR is not set
1358# CONFIG_CRYPTO_GCM is not set
1359# CONFIG_CRYPTO_CCM is not set
1360# CONFIG_CRYPTO_CRYPTD is not set
1361# CONFIG_CRYPTO_DES is not set
1362# CONFIG_CRYPTO_FCRYPT is not set
1363# CONFIG_CRYPTO_BLOWFISH is not set
1364# CONFIG_CRYPTO_TWOFISH is not set
1365# CONFIG_CRYPTO_SERPENT is not set
1366# CONFIG_CRYPTO_AES is not set 1402# CONFIG_CRYPTO_AES is not set
1403# CONFIG_CRYPTO_ANUBIS is not set
1404# CONFIG_CRYPTO_ARC4 is not set
1405# CONFIG_CRYPTO_BLOWFISH is not set
1406# CONFIG_CRYPTO_CAMELLIA is not set
1367# CONFIG_CRYPTO_CAST5 is not set 1407# CONFIG_CRYPTO_CAST5 is not set
1368# CONFIG_CRYPTO_CAST6 is not set 1408# CONFIG_CRYPTO_CAST6 is not set
1369# CONFIG_CRYPTO_TEA is not set 1409# CONFIG_CRYPTO_DES is not set
1370# CONFIG_CRYPTO_ARC4 is not set 1410# CONFIG_CRYPTO_FCRYPT is not set
1371# CONFIG_CRYPTO_KHAZAD is not set 1411# CONFIG_CRYPTO_KHAZAD is not set
1372# CONFIG_CRYPTO_ANUBIS is not set
1373# CONFIG_CRYPTO_SEED is not set
1374# CONFIG_CRYPTO_SALSA20 is not set 1412# CONFIG_CRYPTO_SALSA20 is not set
1413# CONFIG_CRYPTO_SEED is not set
1414# CONFIG_CRYPTO_SERPENT is not set
1415# CONFIG_CRYPTO_TEA is not set
1416# CONFIG_CRYPTO_TWOFISH is not set
1417
1418#
1419# Compression
1420#
1375# CONFIG_CRYPTO_DEFLATE is not set 1421# CONFIG_CRYPTO_DEFLATE is not set
1376# CONFIG_CRYPTO_MICHAEL_MIC is not set
1377# CONFIG_CRYPTO_CRC32C is not set
1378# CONFIG_CRYPTO_CAMELLIA is not set
1379# CONFIG_CRYPTO_AUTHENC is not set
1380# CONFIG_CRYPTO_LZO is not set 1422# CONFIG_CRYPTO_LZO is not set
1381CONFIG_CRYPTO_HW=y 1423CONFIG_CRYPTO_HW=y
1382# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1424# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1383# CONFIG_PPC_CLOCK is not set 1425# CONFIG_PPC_CLOCK is not set
1426# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/sbc8641d_defconfig b/arch/powerpc/configs/sbc8641d_defconfig
index 3180125aa6c4..8227510b41a9 100644
--- a/arch/powerpc/configs/sbc8641d_defconfig
+++ b/arch/powerpc/configs/sbc8641d_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.25-rc6 3# Linux kernel version: 2.6.26-rc5
4# Thu Apr 10 18:03:25 2008 4# Mon Jun 9 08:52:19 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_GENERIC_LOCKBREAK=y 38CONFIG_GENERIC_LOCKBREAK=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -90,6 +92,7 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 97# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 98# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -116,12 +119,14 @@ CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
117CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122# CONFIG_HAVE_DMA_ATTRS is not set
119CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
120CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set 126# CONFIG_TINY_SHMEM is not set
123CONFIG_BASE_SMALL=0 127CONFIG_BASE_SMALL=0
124CONFIG_MODULES=y 128CONFIG_MODULES=y
129# CONFIG_MODULE_FORCE_LOAD is not set
125CONFIG_MODULE_UNLOAD=y 130CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 131# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 132# CONFIG_MODVERSIONS is not set
@@ -197,7 +202,6 @@ CONFIG_PREEMPT=y
197# CONFIG_PREEMPT_RCU is not set 202# CONFIG_PREEMPT_RCU is not set
198CONFIG_BINFMT_ELF=y 203CONFIG_BINFMT_ELF=y
199CONFIG_BINFMT_MISC=m 204CONFIG_BINFMT_MISC=m
200CONFIG_FORCE_MAX_ZONEORDER=11
201# CONFIG_IOMMU_HELPER is not set 205# CONFIG_IOMMU_HELPER is not set
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y 207CONFIG_ARCH_HAS_WALK_MEMORY=y
@@ -213,11 +217,13 @@ CONFIG_FLATMEM=y
213CONFIG_FLAT_NODE_MEM_MAP=y 217CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_STATIC is not set 218# CONFIG_SPARSEMEM_STATIC is not set
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y
216CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
217# CONFIG_RESOURCES_64BIT is not set 222# CONFIG_RESOURCES_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 223CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 224CONFIG_BOUNCE=y
220CONFIG_VIRT_TO_BUS=y 225CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11
221# CONFIG_PROC_DEVICETREE is not set 227# CONFIG_PROC_DEVICETREE is not set
222# CONFIG_CMDLINE_BOOL is not set 228# CONFIG_CMDLINE_BOOL is not set
223# CONFIG_PM is not set 229# CONFIG_PM is not set
@@ -237,12 +243,14 @@ CONFIG_PCI_DOMAINS=y
237CONFIG_PCI_SYSCALL=y 243CONFIG_PCI_SYSCALL=y
238CONFIG_PCIEPORTBUS=y 244CONFIG_PCIEPORTBUS=y
239CONFIG_PCIEAER=y 245CONFIG_PCIEAER=y
246# CONFIG_PCIEASPM is not set
240CONFIG_ARCH_SUPPORTS_MSI=y 247CONFIG_ARCH_SUPPORTS_MSI=y
241# CONFIG_PCI_MSI is not set 248# CONFIG_PCI_MSI is not set
242CONFIG_PCI_LEGACY=y 249CONFIG_PCI_LEGACY=y
243# CONFIG_PCI_DEBUG is not set 250# CONFIG_PCI_DEBUG is not set
244# CONFIG_PCCARD is not set 251# CONFIG_PCCARD is not set
245# CONFIG_HOTPLUG_PCI is not set 252# CONFIG_HOTPLUG_PCI is not set
253# CONFIG_HAS_RAPIDIO is not set
246 254
247# 255#
248# Advanced setup 256# Advanced setup
@@ -252,11 +260,11 @@ CONFIG_PCI_LEGACY=y
252# 260#
253# Default settings for advanced configuration options are used 261# Default settings for advanced configuration options are used
254# 262#
255CONFIG_HIGHMEM_START=0xfe000000
256CONFIG_LOWMEM_SIZE=0x30000000 263CONFIG_LOWMEM_SIZE=0x30000000
264CONFIG_PAGE_OFFSET=0xc0000000
257CONFIG_KERNEL_START=0xc0000000 265CONFIG_KERNEL_START=0xc0000000
266CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 267CONFIG_TASK_SIZE=0xc0000000
259CONFIG_BOOT_LOAD=0x00800000
260 268
261# 269#
262# Networking 270# Networking
@@ -328,8 +336,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
328CONFIG_INET6_XFRM_MODE_BEET=m 336CONFIG_INET6_XFRM_MODE_BEET=m
329# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 337# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
330CONFIG_IPV6_SIT=m 338CONFIG_IPV6_SIT=m
339CONFIG_IPV6_NDISC_NODETYPE=y
331CONFIG_IPV6_TUNNEL=m 340CONFIG_IPV6_TUNNEL=m
332# CONFIG_IPV6_MULTIPLE_TABLES is not set 341# CONFIG_IPV6_MULTIPLE_TABLES is not set
342# CONFIG_IPV6_MROUTE is not set
333# CONFIG_NETLABEL is not set 343# CONFIG_NETLABEL is not set
334# CONFIG_NETWORK_SECMARK is not set 344# CONFIG_NETWORK_SECMARK is not set
335CONFIG_NETFILTER=y 345CONFIG_NETFILTER=y
@@ -534,6 +544,7 @@ CONFIG_MTD_PARTITIONS=y
534# CONFIG_MTD_REDBOOT_PARTS is not set 544# CONFIG_MTD_REDBOOT_PARTS is not set
535# CONFIG_MTD_CMDLINE_PARTS is not set 545# CONFIG_MTD_CMDLINE_PARTS is not set
536# CONFIG_MTD_OF_PARTS is not set 546# CONFIG_MTD_OF_PARTS is not set
547# CONFIG_MTD_AR7_PARTS is not set
537 548
538# 549#
539# User Modules And Translation Layers 550# User Modules And Translation Layers
@@ -610,6 +621,7 @@ CONFIG_MTD_PHYSMAP_OF=y
610# 621#
611# CONFIG_MTD_UBI is not set 622# CONFIG_MTD_UBI is not set
612CONFIG_OF_DEVICE=y 623CONFIG_OF_DEVICE=y
624CONFIG_OF_I2C=y
613# CONFIG_PARPORT is not set 625# CONFIG_PARPORT is not set
614CONFIG_BLK_DEV=y 626CONFIG_BLK_DEV=y
615# CONFIG_BLK_DEV_FD is not set 627# CONFIG_BLK_DEV_FD is not set
@@ -727,7 +739,6 @@ CONFIG_NETDEV_1000=y
727# CONFIG_SIS190 is not set 739# CONFIG_SIS190 is not set
728# CONFIG_SKGE is not set 740# CONFIG_SKGE is not set
729# CONFIG_SKY2 is not set 741# CONFIG_SKY2 is not set
730# CONFIG_SK98LIN is not set
731# CONFIG_VIA_VELOCITY is not set 742# CONFIG_VIA_VELOCITY is not set
732# CONFIG_TIGON3 is not set 743# CONFIG_TIGON3 is not set
733# CONFIG_BNX2 is not set 744# CONFIG_BNX2 is not set
@@ -743,6 +754,7 @@ CONFIG_GIANFAR=y
743# 754#
744# CONFIG_WLAN_PRE80211 is not set 755# CONFIG_WLAN_PRE80211 is not set
745# CONFIG_WLAN_80211 is not set 756# CONFIG_WLAN_80211 is not set
757# CONFIG_IWLWIFI_LEDS is not set
746# CONFIG_WAN is not set 758# CONFIG_WAN is not set
747CONFIG_ATM_DRIVERS=y 759CONFIG_ATM_DRIVERS=y
748# CONFIG_ATM_DUMMY is not set 760# CONFIG_ATM_DUMMY is not set
@@ -825,6 +837,7 @@ CONFIG_VT=y
825CONFIG_VT_CONSOLE=y 837CONFIG_VT_CONSOLE=y
826CONFIG_HW_CONSOLE=y 838CONFIG_HW_CONSOLE=y
827# CONFIG_VT_HW_CONSOLE_BINDING is not set 839# CONFIG_VT_HW_CONSOLE_BINDING is not set
840CONFIG_DEVKMEM=y
828# CONFIG_SERIAL_NONSTANDARD is not set 841# CONFIG_SERIAL_NONSTANDARD is not set
829# CONFIG_NOZOMI is not set 842# CONFIG_NOZOMI is not set
830 843
@@ -863,13 +876,6 @@ CONFIG_I2C_BOARDINFO=y
863CONFIG_I2C_CHARDEV=y 876CONFIG_I2C_CHARDEV=y
864 877
865# 878#
866# I2C Algorithms
867#
868# CONFIG_I2C_ALGOBIT is not set
869# CONFIG_I2C_ALGOPCF is not set
870# CONFIG_I2C_ALGOPCA is not set
871
872#
873# I2C Hardware Bus support 879# I2C Hardware Bus support
874# 880#
875# CONFIG_I2C_ALI1535 is not set 881# CONFIG_I2C_ALI1535 is not set
@@ -895,6 +901,7 @@ CONFIG_I2C_MPC=y
895# CONFIG_I2C_VIA is not set 901# CONFIG_I2C_VIA is not set
896# CONFIG_I2C_VIAPRO is not set 902# CONFIG_I2C_VIAPRO is not set
897# CONFIG_I2C_VOODOO3 is not set 903# CONFIG_I2C_VOODOO3 is not set
904# CONFIG_I2C_PCA_PLATFORM is not set
898 905
899# 906#
900# Miscellaneous I2C Chip support 907# Miscellaneous I2C Chip support
@@ -904,19 +911,13 @@ CONFIG_I2C_MPC=y
904# CONFIG_SENSORS_PCF8574 is not set 911# CONFIG_SENSORS_PCF8574 is not set
905# CONFIG_PCF8575 is not set 912# CONFIG_PCF8575 is not set
906# CONFIG_SENSORS_PCF8591 is not set 913# CONFIG_SENSORS_PCF8591 is not set
907# CONFIG_TPS65010 is not set
908# CONFIG_SENSORS_MAX6875 is not set 914# CONFIG_SENSORS_MAX6875 is not set
909# CONFIG_SENSORS_TSL2550 is not set 915# CONFIG_SENSORS_TSL2550 is not set
910# CONFIG_I2C_DEBUG_CORE is not set 916# CONFIG_I2C_DEBUG_CORE is not set
911# CONFIG_I2C_DEBUG_ALGO is not set 917# CONFIG_I2C_DEBUG_ALGO is not set
912# CONFIG_I2C_DEBUG_BUS is not set 918# CONFIG_I2C_DEBUG_BUS is not set
913# CONFIG_I2C_DEBUG_CHIP is not set 919# CONFIG_I2C_DEBUG_CHIP is not set
914
915#
916# SPI support
917#
918# CONFIG_SPI is not set 920# CONFIG_SPI is not set
919# CONFIG_SPI_MASTER is not set
920# CONFIG_W1 is not set 921# CONFIG_W1 is not set
921# CONFIG_POWER_SUPPLY is not set 922# CONFIG_POWER_SUPPLY is not set
922CONFIG_HWMON=y 923CONFIG_HWMON=y
@@ -998,12 +999,22 @@ CONFIG_SSB_POSSIBLE=y
998# Multifunction device drivers 999# Multifunction device drivers
999# 1000#
1000# CONFIG_MFD_SM501 is not set 1001# CONFIG_MFD_SM501 is not set
1002# CONFIG_HTC_PASIC3 is not set
1001 1003
1002# 1004#
1003# Multimedia devices 1005# Multimedia devices
1004# 1006#
1007
1008#
1009# Multimedia core support
1010#
1005# CONFIG_VIDEO_DEV is not set 1011# CONFIG_VIDEO_DEV is not set
1006# CONFIG_DVB_CORE is not set 1012# CONFIG_DVB_CORE is not set
1013# CONFIG_VIDEO_MEDIA is not set
1014
1015#
1016# Multimedia drivers
1017#
1007CONFIG_DAB=y 1018CONFIG_DAB=y
1008 1019
1009# 1020#
@@ -1041,6 +1052,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
1041CONFIG_USB_ARCH_HAS_OHCI=y 1052CONFIG_USB_ARCH_HAS_OHCI=y
1042CONFIG_USB_ARCH_HAS_EHCI=y 1053CONFIG_USB_ARCH_HAS_EHCI=y
1043# CONFIG_USB is not set 1054# CONFIG_USB is not set
1055# CONFIG_USB_OTG_WHITELIST is not set
1056# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1044 1057
1045# 1058#
1046# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1059# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1049,14 +1062,11 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1049# CONFIG_MMC is not set 1062# CONFIG_MMC is not set
1050# CONFIG_MEMSTICK is not set 1063# CONFIG_MEMSTICK is not set
1051# CONFIG_NEW_LEDS is not set 1064# CONFIG_NEW_LEDS is not set
1065# CONFIG_ACCESSIBILITY is not set
1052# CONFIG_INFINIBAND is not set 1066# CONFIG_INFINIBAND is not set
1053# CONFIG_EDAC is not set 1067# CONFIG_EDAC is not set
1054# CONFIG_RTC_CLASS is not set 1068# CONFIG_RTC_CLASS is not set
1055# CONFIG_DMADEVICES is not set 1069# CONFIG_DMADEVICES is not set
1056
1057#
1058# Userspace I/O
1059#
1060# CONFIG_UIO is not set 1070# CONFIG_UIO is not set
1061 1071
1062# 1072#
@@ -1084,8 +1094,8 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
1084# CONFIG_JFS_FS is not set 1094# CONFIG_JFS_FS is not set
1085CONFIG_FS_POSIX_ACL=y 1095CONFIG_FS_POSIX_ACL=y
1086# CONFIG_XFS_FS is not set 1096# CONFIG_XFS_FS is not set
1087# CONFIG_GFS2_FS is not set
1088CONFIG_OCFS2_FS=m 1097CONFIG_OCFS2_FS=m
1098CONFIG_OCFS2_FS_O2CB=m
1089CONFIG_OCFS2_DEBUG_MASKLOG=y 1099CONFIG_OCFS2_DEBUG_MASKLOG=y
1090# CONFIG_OCFS2_DEBUG_FS is not set 1100# CONFIG_OCFS2_DEBUG_FS is not set
1091CONFIG_DNOTIFY=y 1101CONFIG_DNOTIFY=y
@@ -1145,7 +1155,6 @@ CONFIG_NFS_FS=y
1145CONFIG_NFS_V3=y 1155CONFIG_NFS_V3=y
1146# CONFIG_NFS_V3_ACL is not set 1156# CONFIG_NFS_V3_ACL is not set
1147CONFIG_NFS_V4=y 1157CONFIG_NFS_V4=y
1148CONFIG_NFS_DIRECTIO=y
1149# CONFIG_NFSD is not set 1158# CONFIG_NFSD is not set
1150CONFIG_ROOT_NFS=y 1159CONFIG_ROOT_NFS=y
1151CONFIG_LOCKD=y 1160CONFIG_LOCKD=y
@@ -1221,6 +1230,7 @@ CONFIG_NLS_UTF8=m
1221# Library routines 1230# Library routines
1222# 1231#
1223CONFIG_BITREVERSE=y 1232CONFIG_BITREVERSE=y
1233# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1224CONFIG_CRC_CCITT=m 1234CONFIG_CRC_CCITT=m
1225# CONFIG_CRC16 is not set 1235# CONFIG_CRC16 is not set
1226# CONFIG_CRC_ITU_T is not set 1236# CONFIG_CRC_ITU_T is not set
@@ -1241,6 +1251,7 @@ CONFIG_HAVE_LMB=y
1241# CONFIG_PRINTK_TIME is not set 1251# CONFIG_PRINTK_TIME is not set
1242CONFIG_ENABLE_WARN_DEPRECATED=y 1252CONFIG_ENABLE_WARN_DEPRECATED=y
1243CONFIG_ENABLE_MUST_CHECK=y 1253CONFIG_ENABLE_MUST_CHECK=y
1254CONFIG_FRAME_WARN=1024
1244CONFIG_MAGIC_SYSRQ=y 1255CONFIG_MAGIC_SYSRQ=y
1245# CONFIG_UNUSED_SYMBOLS is not set 1256# CONFIG_UNUSED_SYMBOLS is not set
1246CONFIG_DEBUG_FS=y 1257CONFIG_DEBUG_FS=y
@@ -1251,6 +1262,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
1251CONFIG_SCHED_DEBUG=y 1262CONFIG_SCHED_DEBUG=y
1252# CONFIG_SCHEDSTATS is not set 1263# CONFIG_SCHEDSTATS is not set
1253# CONFIG_TIMER_STATS is not set 1264# CONFIG_TIMER_STATS is not set
1265# CONFIG_DEBUG_OBJECTS is not set
1254# CONFIG_DEBUG_SLAB is not set 1266# CONFIG_DEBUG_SLAB is not set
1255# CONFIG_DEBUG_RT_MUTEXES is not set 1267# CONFIG_DEBUG_RT_MUTEXES is not set
1256# CONFIG_RT_MUTEX_TESTER is not set 1268# CONFIG_RT_MUTEX_TESTER is not set
@@ -1262,6 +1274,7 @@ CONFIG_SCHED_DEBUG=y
1262# CONFIG_DEBUG_BUGVERBOSE is not set 1274# CONFIG_DEBUG_BUGVERBOSE is not set
1263CONFIG_DEBUG_INFO=y 1275CONFIG_DEBUG_INFO=y
1264# CONFIG_DEBUG_VM is not set 1276# CONFIG_DEBUG_VM is not set
1277# CONFIG_DEBUG_WRITECOUNT is not set
1265# CONFIG_DEBUG_LIST is not set 1278# CONFIG_DEBUG_LIST is not set
1266# CONFIG_DEBUG_SG is not set 1279# CONFIG_DEBUG_SG is not set
1267# CONFIG_BOOT_PRINTK_DELAY is not set 1280# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1274,6 +1287,7 @@ CONFIG_DEBUG_INFO=y
1274# CONFIG_DEBUG_PAGEALLOC is not set 1287# CONFIG_DEBUG_PAGEALLOC is not set
1275CONFIG_DEBUGGER=y 1288CONFIG_DEBUGGER=y
1276# CONFIG_XMON is not set 1289# CONFIG_XMON is not set
1290# CONFIG_IRQSTACKS is not set
1277# CONFIG_VIRQ_DEBUG is not set 1291# CONFIG_VIRQ_DEBUG is not set
1278# CONFIG_BDI_SWITCH is not set 1292# CONFIG_BDI_SWITCH is not set
1279# CONFIG_PPC_EARLY_DEBUG is not set 1293# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1289,54 +1303,84 @@ CONFIG_SECURITY_CAPABILITIES=y
1289# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1303# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1290CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1304CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1291CONFIG_CRYPTO=y 1305CONFIG_CRYPTO=y
1306
1307#
1308# Crypto core or helper
1309#
1292CONFIG_CRYPTO_ALGAPI=y 1310CONFIG_CRYPTO_ALGAPI=y
1293CONFIG_CRYPTO_AEAD=m 1311CONFIG_CRYPTO_AEAD=m
1294CONFIG_CRYPTO_BLKCIPHER=y 1312CONFIG_CRYPTO_BLKCIPHER=y
1295# CONFIG_CRYPTO_SEQIV is not set
1296CONFIG_CRYPTO_HASH=y 1313CONFIG_CRYPTO_HASH=y
1297CONFIG_CRYPTO_MANAGER=y 1314CONFIG_CRYPTO_MANAGER=y
1315# CONFIG_CRYPTO_GF128MUL is not set
1316CONFIG_CRYPTO_NULL=m
1317# CONFIG_CRYPTO_CRYPTD is not set
1318CONFIG_CRYPTO_AUTHENC=m
1319CONFIG_CRYPTO_TEST=m
1320
1321#
1322# Authenticated Encryption with Associated Data
1323#
1324# CONFIG_CRYPTO_CCM is not set
1325# CONFIG_CRYPTO_GCM is not set
1326# CONFIG_CRYPTO_SEQIV is not set
1327
1328#
1329# Block modes
1330#
1331CONFIG_CRYPTO_CBC=y
1332# CONFIG_CRYPTO_CTR is not set
1333# CONFIG_CRYPTO_CTS is not set
1334CONFIG_CRYPTO_ECB=m
1335# CONFIG_CRYPTO_LRW is not set
1336CONFIG_CRYPTO_PCBC=m
1337# CONFIG_CRYPTO_XTS is not set
1338
1339#
1340# Hash modes
1341#
1298CONFIG_CRYPTO_HMAC=y 1342CONFIG_CRYPTO_HMAC=y
1299# CONFIG_CRYPTO_XCBC is not set 1343# CONFIG_CRYPTO_XCBC is not set
1300CONFIG_CRYPTO_NULL=m 1344
1345#
1346# Digest
1347#
1348CONFIG_CRYPTO_CRC32C=m
1301CONFIG_CRYPTO_MD4=m 1349CONFIG_CRYPTO_MD4=m
1302CONFIG_CRYPTO_MD5=y 1350CONFIG_CRYPTO_MD5=y
1351CONFIG_CRYPTO_MICHAEL_MIC=m
1303CONFIG_CRYPTO_SHA1=m 1352CONFIG_CRYPTO_SHA1=m
1304CONFIG_CRYPTO_SHA256=m 1353CONFIG_CRYPTO_SHA256=m
1305CONFIG_CRYPTO_SHA512=m 1354CONFIG_CRYPTO_SHA512=m
1306CONFIG_CRYPTO_WP512=m
1307# CONFIG_CRYPTO_TGR192 is not set 1355# CONFIG_CRYPTO_TGR192 is not set
1308# CONFIG_CRYPTO_GF128MUL is not set 1356CONFIG_CRYPTO_WP512=m
1309CONFIG_CRYPTO_ECB=m 1357
1310CONFIG_CRYPTO_CBC=y 1358#
1311CONFIG_CRYPTO_PCBC=m 1359# Ciphers
1312# CONFIG_CRYPTO_LRW is not set 1360#
1313# CONFIG_CRYPTO_XTS is not set
1314# CONFIG_CRYPTO_CTR is not set
1315# CONFIG_CRYPTO_GCM is not set
1316# CONFIG_CRYPTO_CCM is not set
1317# CONFIG_CRYPTO_CRYPTD is not set
1318CONFIG_CRYPTO_DES=y
1319# CONFIG_CRYPTO_FCRYPT is not set
1320CONFIG_CRYPTO_BLOWFISH=m
1321CONFIG_CRYPTO_TWOFISH=m
1322CONFIG_CRYPTO_TWOFISH_COMMON=m
1323CONFIG_CRYPTO_SERPENT=m
1324CONFIG_CRYPTO_AES=m 1361CONFIG_CRYPTO_AES=m
1362CONFIG_CRYPTO_ANUBIS=m
1363CONFIG_CRYPTO_ARC4=m
1364CONFIG_CRYPTO_BLOWFISH=m
1365# CONFIG_CRYPTO_CAMELLIA is not set
1325CONFIG_CRYPTO_CAST5=m 1366CONFIG_CRYPTO_CAST5=m
1326CONFIG_CRYPTO_CAST6=m 1367CONFIG_CRYPTO_CAST6=m
1327CONFIG_CRYPTO_TEA=m 1368CONFIG_CRYPTO_DES=y
1328CONFIG_CRYPTO_ARC4=m 1369# CONFIG_CRYPTO_FCRYPT is not set
1329CONFIG_CRYPTO_KHAZAD=m 1370CONFIG_CRYPTO_KHAZAD=m
1330CONFIG_CRYPTO_ANUBIS=m
1331# CONFIG_CRYPTO_SEED is not set
1332# CONFIG_CRYPTO_SALSA20 is not set 1371# CONFIG_CRYPTO_SALSA20 is not set
1372# CONFIG_CRYPTO_SEED is not set
1373CONFIG_CRYPTO_SERPENT=m
1374CONFIG_CRYPTO_TEA=m
1375CONFIG_CRYPTO_TWOFISH=m
1376CONFIG_CRYPTO_TWOFISH_COMMON=m
1377
1378#
1379# Compression
1380#
1333CONFIG_CRYPTO_DEFLATE=m 1381CONFIG_CRYPTO_DEFLATE=m
1334CONFIG_CRYPTO_MICHAEL_MIC=m
1335CONFIG_CRYPTO_CRC32C=m
1336# CONFIG_CRYPTO_CAMELLIA is not set
1337CONFIG_CRYPTO_TEST=m
1338CONFIG_CRYPTO_AUTHENC=m
1339# CONFIG_CRYPTO_LZO is not set 1382# CONFIG_CRYPTO_LZO is not set
1340CONFIG_CRYPTO_HW=y 1383CONFIG_CRYPTO_HW=y
1341# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1384# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1342# CONFIG_PPC_CLOCK is not set 1385# CONFIG_PPC_CLOCK is not set
1386# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index fdbfd39a3aca..88f6aa8273be 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_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.25-rc7 3# Linux kernel version: 2.6.26-rc5
4# Mon Mar 31 11:37:19 2008 4# Mon Jun 9 08:52:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -31,6 +31,8 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 38CONFIG_GENERIC_HWEIGHT=y
@@ -85,6 +87,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
85CONFIG_SYSCTL=y 87CONFIG_SYSCTL=y
86CONFIG_EMBEDDED=y 88CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
90CONFIG_SYSCTL_SYSCALL_CHECK=y
88# CONFIG_KALLSYMS is not set 91# CONFIG_KALLSYMS is not set
89CONFIG_HOTPLUG=y 92CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 93CONFIG_PRINTK=y
@@ -109,12 +112,14 @@ CONFIG_SLUB=y
109CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_KPROBES=y 113CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 114CONFIG_HAVE_KRETPROBES=y
115# CONFIG_HAVE_DMA_ATTRS is not set
112CONFIG_PROC_PAGE_MONITOR=y 116CONFIG_PROC_PAGE_MONITOR=y
113CONFIG_SLABINFO=y 117CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 118CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 119# CONFIG_TINY_SHMEM is not set
116CONFIG_BASE_SMALL=0 120CONFIG_BASE_SMALL=0
117CONFIG_MODULES=y 121CONFIG_MODULES=y
122# CONFIG_MODULE_FORCE_LOAD is not set
118CONFIG_MODULE_UNLOAD=y 123CONFIG_MODULE_UNLOAD=y
119# CONFIG_MODULE_FORCE_UNLOAD is not set 124# CONFIG_MODULE_FORCE_UNLOAD is not set
120# CONFIG_MODVERSIONS is not set 125# CONFIG_MODVERSIONS is not set
@@ -214,11 +219,13 @@ CONFIG_FLATMEM=y
214CONFIG_FLAT_NODE_MEM_MAP=y 219CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_STATIC is not set 220# CONFIG_SPARSEMEM_STATIC is not set
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
218# CONFIG_RESOURCES_64BIT is not set 224# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 225CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 226CONFIG_BOUNCE=y
221CONFIG_VIRT_TO_BUS=y 227CONFIG_VIRT_TO_BUS=y
228CONFIG_FORCE_MAX_ZONEORDER=11
222CONFIG_PROC_DEVICETREE=y 229CONFIG_PROC_DEVICETREE=y
223CONFIG_CMDLINE_BOOL=y 230CONFIG_CMDLINE_BOOL=y
224CONFIG_CMDLINE="console=ttyS0,115200" 231CONFIG_CMDLINE="console=ttyS0,115200"
@@ -242,6 +249,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
242CONFIG_PCI_LEGACY=y 249CONFIG_PCI_LEGACY=y
243# CONFIG_PCCARD is not set 250# CONFIG_PCCARD is not set
244# CONFIG_HOTPLUG_PCI is not set 251# CONFIG_HOTPLUG_PCI is not set
252# CONFIG_HAS_RAPIDIO is not set
245 253
246# 254#
247# Advanced setup 255# Advanced setup
@@ -251,11 +259,11 @@ CONFIG_PCI_LEGACY=y
251# 259#
252# Default settings for advanced configuration options are used 260# Default settings for advanced configuration options are used
253# 261#
254CONFIG_HIGHMEM_START=0xfe000000
255CONFIG_LOWMEM_SIZE=0x30000000 262CONFIG_LOWMEM_SIZE=0x30000000
263CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 264CONFIG_KERNEL_START=0xc0000000
265CONFIG_PHYSICAL_START=0x00000000
257CONFIG_TASK_SIZE=0xc0000000 266CONFIG_TASK_SIZE=0xc0000000
258CONFIG_BOOT_LOAD=0x00800000
259 267
260# 268#
261# Networking 269# Networking
@@ -298,8 +306,6 @@ CONFIG_TCP_CONG_CUBIC=y
298CONFIG_DEFAULT_TCP_CONG="cubic" 306CONFIG_DEFAULT_TCP_CONG="cubic"
299# CONFIG_TCP_MD5SIG is not set 307# CONFIG_TCP_MD5SIG is not set
300# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set
303# CONFIG_NETWORK_SECMARK is not set 309# CONFIG_NETWORK_SECMARK is not set
304# CONFIG_NETFILTER is not set 310# CONFIG_NETFILTER is not set
305# CONFIG_IP_DCCP is not set 311# CONFIG_IP_DCCP is not set
@@ -358,6 +364,7 @@ CONFIG_MTD_PARTITIONS=y
358# CONFIG_MTD_REDBOOT_PARTS is not set 364# CONFIG_MTD_REDBOOT_PARTS is not set
359# CONFIG_MTD_CMDLINE_PARTS is not set 365# CONFIG_MTD_CMDLINE_PARTS is not set
360# CONFIG_MTD_OF_PARTS is not set 366# CONFIG_MTD_OF_PARTS is not set
367# CONFIG_MTD_AR7_PARTS is not set
361 368
362# 369#
363# User Modules And Translation Layers 370# User Modules And Translation Layers
@@ -433,6 +440,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
433# 440#
434# CONFIG_MTD_UBI is not set 441# CONFIG_MTD_UBI is not set
435CONFIG_OF_DEVICE=y 442CONFIG_OF_DEVICE=y
443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
438# CONFIG_BLK_DEV_FD is not set 446# CONFIG_BLK_DEV_FD is not set
@@ -513,7 +521,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
513CONFIG_BLK_DEV_VIA82CXXX=y 521CONFIG_BLK_DEV_VIA82CXXX=y
514# CONFIG_BLK_DEV_TC86C001 is not set 522# CONFIG_BLK_DEV_TC86C001 is not set
515CONFIG_BLK_DEV_IDEDMA=y 523CONFIG_BLK_DEV_IDEDMA=y
516CONFIG_IDE_ARCH_OBSOLETE_INIT=y 524# CONFIG_BLK_DEV_HD_ONLY is not set
517# CONFIG_BLK_DEV_HD is not set 525# CONFIG_BLK_DEV_HD is not set
518 526
519# 527#
@@ -638,7 +646,6 @@ CONFIG_R8169=y
638# CONFIG_SIS190 is not set 646# CONFIG_SIS190 is not set
639# CONFIG_SKGE is not set 647# CONFIG_SKGE is not set
640# CONFIG_SKY2 is not set 648# CONFIG_SKY2 is not set
641# CONFIG_SK98LIN is not set
642# CONFIG_VIA_VELOCITY is not set 649# CONFIG_VIA_VELOCITY is not set
643# CONFIG_TIGON3 is not set 650# CONFIG_TIGON3 is not set
644# CONFIG_BNX2 is not set 651# CONFIG_BNX2 is not set
@@ -654,6 +661,7 @@ CONFIG_R8169=y
654# 661#
655# CONFIG_WLAN_PRE80211 is not set 662# CONFIG_WLAN_PRE80211 is not set
656# CONFIG_WLAN_80211 is not set 663# CONFIG_WLAN_80211 is not set
664# CONFIG_IWLWIFI_LEDS is not set
657 665
658# 666#
659# USB Network Adapters 667# USB Network Adapters
@@ -690,6 +698,7 @@ CONFIG_R8169=y
690# Character devices 698# Character devices
691# 699#
692# CONFIG_VT is not set 700# CONFIG_VT is not set
701CONFIG_DEVKMEM=y
693# CONFIG_SERIAL_NONSTANDARD is not set 702# CONFIG_SERIAL_NONSTANDARD is not set
694# CONFIG_NOZOMI is not set 703# CONFIG_NOZOMI is not set
695 704
@@ -717,7 +726,6 @@ CONFIG_LEGACY_PTY_COUNT=256
717# CONFIG_IPMI_HANDLER is not set 726# CONFIG_IPMI_HANDLER is not set
718CONFIG_HW_RANDOM=m 727CONFIG_HW_RANDOM=m
719CONFIG_NVRAM=y 728CONFIG_NVRAM=y
720# CONFIG_GEN_RTC is not set
721# CONFIG_R3964 is not set 729# CONFIG_R3964 is not set
722# CONFIG_APPLICOM is not set 730# CONFIG_APPLICOM is not set
723# CONFIG_RAW_DRIVER is not set 731# CONFIG_RAW_DRIVER is not set
@@ -728,13 +736,6 @@ CONFIG_I2C_BOARDINFO=y
728CONFIG_I2C_CHARDEV=y 736CONFIG_I2C_CHARDEV=y
729 737
730# 738#
731# I2C Algorithms
732#
733# CONFIG_I2C_ALGOBIT is not set
734# CONFIG_I2C_ALGOPCF is not set
735# CONFIG_I2C_ALGOPCA is not set
736
737#
738# I2C Hardware Bus support 739# I2C Hardware Bus support
739# 740#
740# CONFIG_I2C_ALI1535 is not set 741# CONFIG_I2C_ALI1535 is not set
@@ -761,6 +762,7 @@ CONFIG_I2C_MPC=y
761# CONFIG_I2C_VIA is not set 762# CONFIG_I2C_VIA is not set
762# CONFIG_I2C_VIAPRO is not set 763# CONFIG_I2C_VIAPRO is not set
763# CONFIG_I2C_VOODOO3 is not set 764# CONFIG_I2C_VOODOO3 is not set
765# CONFIG_I2C_PCA_PLATFORM is not set
764 766
765# 767#
766# Miscellaneous I2C Chip support 768# Miscellaneous I2C Chip support
@@ -770,19 +772,13 @@ CONFIG_I2C_MPC=y
770# CONFIG_SENSORS_PCF8574 is not set 772# CONFIG_SENSORS_PCF8574 is not set
771# CONFIG_PCF8575 is not set 773# CONFIG_PCF8575 is not set
772# CONFIG_SENSORS_PCF8591 is not set 774# CONFIG_SENSORS_PCF8591 is not set
773# CONFIG_TPS65010 is not set
774# CONFIG_SENSORS_MAX6875 is not set 775# CONFIG_SENSORS_MAX6875 is not set
775# CONFIG_SENSORS_TSL2550 is not set 776# CONFIG_SENSORS_TSL2550 is not set
776# CONFIG_I2C_DEBUG_CORE is not set 777# CONFIG_I2C_DEBUG_CORE is not set
777# CONFIG_I2C_DEBUG_ALGO is not set 778# CONFIG_I2C_DEBUG_ALGO is not set
778# CONFIG_I2C_DEBUG_BUS is not set 779# CONFIG_I2C_DEBUG_BUS is not set
779# CONFIG_I2C_DEBUG_CHIP is not set 780# CONFIG_I2C_DEBUG_CHIP is not set
780
781#
782# SPI support
783#
784# CONFIG_SPI is not set 781# CONFIG_SPI is not set
785# CONFIG_SPI_MASTER is not set
786# CONFIG_W1 is not set 782# CONFIG_W1 is not set
787# CONFIG_POWER_SUPPLY is not set 783# CONFIG_POWER_SUPPLY is not set
788# CONFIG_HWMON is not set 784# CONFIG_HWMON is not set
@@ -799,12 +795,22 @@ CONFIG_SSB_POSSIBLE=y
799# Multifunction device drivers 795# Multifunction device drivers
800# 796#
801# CONFIG_MFD_SM501 is not set 797# CONFIG_MFD_SM501 is not set
798# CONFIG_HTC_PASIC3 is not set
802 799
803# 800#
804# Multimedia devices 801# Multimedia devices
805# 802#
803
804#
805# Multimedia core support
806#
806# CONFIG_VIDEO_DEV is not set 807# CONFIG_VIDEO_DEV is not set
807# CONFIG_DVB_CORE is not set 808# CONFIG_DVB_CORE is not set
809# CONFIG_VIDEO_MEDIA is not set
810
811#
812# Multimedia drivers
813#
808# CONFIG_DAB is not set 814# CONFIG_DAB is not set
809 815
810# 816#
@@ -841,16 +847,20 @@ CONFIG_USB_DEVICEFS=y
841CONFIG_USB_DEVICE_CLASS=y 847CONFIG_USB_DEVICE_CLASS=y
842# CONFIG_USB_DYNAMIC_MINORS is not set 848# CONFIG_USB_DYNAMIC_MINORS is not set
843# CONFIG_USB_OTG is not set 849# CONFIG_USB_OTG is not set
850# CONFIG_USB_OTG_WHITELIST is not set
851# CONFIG_USB_OTG_BLACKLIST_HUB is not set
844 852
845# 853#
846# USB Host Controller Drivers 854# USB Host Controller Drivers
847# 855#
856# CONFIG_USB_C67X00_HCD is not set
848CONFIG_USB_EHCI_HCD=y 857CONFIG_USB_EHCI_HCD=y
849# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 858# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
850# CONFIG_USB_EHCI_TT_NEWSCHED is not set 859# CONFIG_USB_EHCI_TT_NEWSCHED is not set
851# CONFIG_USB_EHCI_FSL is not set 860# CONFIG_USB_EHCI_FSL is not set
852CONFIG_USB_EHCI_HCD_PPC_OF=y 861CONFIG_USB_EHCI_HCD_PPC_OF=y
853# CONFIG_USB_ISP116X_HCD is not set 862# CONFIG_USB_ISP116X_HCD is not set
863# CONFIG_USB_ISP1760_HCD is not set
854CONFIG_USB_OHCI_HCD=y 864CONFIG_USB_OHCI_HCD=y
855# CONFIG_USB_OHCI_HCD_PPC_OF is not set 865# CONFIG_USB_OHCI_HCD_PPC_OF is not set
856# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 866# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -865,6 +875,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
865# 875#
866# CONFIG_USB_ACM is not set 876# CONFIG_USB_ACM is not set
867# CONFIG_USB_PRINTER is not set 877# CONFIG_USB_PRINTER is not set
878# CONFIG_USB_WDM is not set
868 879
869# 880#
870# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 881# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -885,6 +896,7 @@ CONFIG_USB_STORAGE=y
885# CONFIG_USB_STORAGE_JUMPSHOT is not set 896# CONFIG_USB_STORAGE_JUMPSHOT is not set
886# CONFIG_USB_STORAGE_ALAUDA is not set 897# CONFIG_USB_STORAGE_ALAUDA is not set
887# CONFIG_USB_STORAGE_KARMA is not set 898# CONFIG_USB_STORAGE_KARMA is not set
899# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
888# CONFIG_USB_LIBUSUAL is not set 900# CONFIG_USB_LIBUSUAL is not set
889 901
890# 902#
@@ -922,10 +934,12 @@ CONFIG_USB_STORAGE=y
922# CONFIG_USB_TRANCEVIBRATOR is not set 934# CONFIG_USB_TRANCEVIBRATOR is not set
923# CONFIG_USB_IOWARRIOR is not set 935# CONFIG_USB_IOWARRIOR is not set
924# CONFIG_USB_TEST is not set 936# CONFIG_USB_TEST is not set
937# CONFIG_USB_ISIGHTFW is not set
925# CONFIG_USB_GADGET is not set 938# CONFIG_USB_GADGET is not set
926# CONFIG_MMC is not set 939# CONFIG_MMC is not set
927# CONFIG_MEMSTICK is not set 940# CONFIG_MEMSTICK is not set
928# CONFIG_NEW_LEDS is not set 941# CONFIG_NEW_LEDS is not set
942# CONFIG_ACCESSIBILITY is not set
929# CONFIG_INFINIBAND is not set 943# CONFIG_INFINIBAND is not set
930# CONFIG_EDAC is not set 944# CONFIG_EDAC is not set
931CONFIG_RTC_LIB=y 945CONFIG_RTC_LIB=y
@@ -977,11 +991,8 @@ CONFIG_RTC_DRV_DS1307=y
977# 991#
978# on-CPU RTC drivers 992# on-CPU RTC drivers
979# 993#
994# CONFIG_RTC_DRV_PPC is not set
980# CONFIG_DMADEVICES is not set 995# CONFIG_DMADEVICES is not set
981
982#
983# Userspace I/O
984#
985# CONFIG_UIO is not set 996# CONFIG_UIO is not set
986 997
987# 998#
@@ -1002,10 +1013,9 @@ CONFIG_FS_MBCACHE=y
1002# CONFIG_FS_POSIX_ACL is not set 1013# CONFIG_FS_POSIX_ACL is not set
1003CONFIG_XFS_FS=m 1014CONFIG_XFS_FS=m
1004# CONFIG_XFS_QUOTA is not set 1015# CONFIG_XFS_QUOTA is not set
1005# CONFIG_XFS_SECURITY is not set
1006# CONFIG_XFS_POSIX_ACL is not set 1016# CONFIG_XFS_POSIX_ACL is not set
1007# CONFIG_XFS_RT is not set 1017# CONFIG_XFS_RT is not set
1008# CONFIG_GFS2_FS is not set 1018# CONFIG_XFS_DEBUG is not set
1009# CONFIG_OCFS2_FS is not set 1019# CONFIG_OCFS2_FS is not set
1010CONFIG_DNOTIFY=y 1020CONFIG_DNOTIFY=y
1011CONFIG_INOTIFY=y 1021CONFIG_INOTIFY=y
@@ -1138,6 +1148,7 @@ CONFIG_NLS_UTF8=y
1138# Library routines 1148# Library routines
1139# 1149#
1140CONFIG_BITREVERSE=y 1150CONFIG_BITREVERSE=y
1151# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1141# CONFIG_CRC_CCITT is not set 1152# CONFIG_CRC_CCITT is not set
1142# CONFIG_CRC16 is not set 1153# CONFIG_CRC16 is not set
1143# CONFIG_CRC_ITU_T is not set 1154# CONFIG_CRC_ITU_T is not set
@@ -1150,6 +1161,7 @@ CONFIG_PLIST=y
1150CONFIG_HAS_IOMEM=y 1161CONFIG_HAS_IOMEM=y
1151CONFIG_HAS_IOPORT=y 1162CONFIG_HAS_IOPORT=y
1152CONFIG_HAS_DMA=y 1163CONFIG_HAS_DMA=y
1164CONFIG_HAVE_LMB=y
1153 1165
1154# 1166#
1155# Kernel hacking 1167# Kernel hacking
@@ -1157,6 +1169,7 @@ CONFIG_HAS_DMA=y
1157# CONFIG_PRINTK_TIME is not set 1169# CONFIG_PRINTK_TIME is not set
1158# CONFIG_ENABLE_WARN_DEPRECATED is not set 1170# CONFIG_ENABLE_WARN_DEPRECATED is not set
1159# CONFIG_ENABLE_MUST_CHECK is not set 1171# CONFIG_ENABLE_MUST_CHECK is not set
1172CONFIG_FRAME_WARN=1024
1160# CONFIG_MAGIC_SYSRQ is not set 1173# CONFIG_MAGIC_SYSRQ is not set
1161# CONFIG_UNUSED_SYMBOLS is not set 1174# CONFIG_UNUSED_SYMBOLS is not set
1162# CONFIG_DEBUG_FS is not set 1175# CONFIG_DEBUG_FS is not set
@@ -1166,6 +1179,7 @@ CONFIG_HAS_DMA=y
1166# CONFIG_SLUB_STATS is not set 1179# CONFIG_SLUB_STATS is not set
1167# CONFIG_DEBUG_BUGVERBOSE is not set 1180# CONFIG_DEBUG_BUGVERBOSE is not set
1168# CONFIG_SAMPLES is not set 1181# CONFIG_SAMPLES is not set
1182# CONFIG_IRQSTACKS is not set
1169# CONFIG_BOOTX_TEXT is not set 1183# CONFIG_BOOTX_TEXT is not set
1170# CONFIG_PPC_EARLY_DEBUG is not set 1184# CONFIG_PPC_EARLY_DEBUG is not set
1171 1185
@@ -1181,3 +1195,4 @@ CONFIG_ASYNC_MEMCPY=y
1181CONFIG_ASYNC_XOR=y 1195CONFIG_ASYNC_XOR=y
1182# CONFIG_CRYPTO is not set 1196# CONFIG_CRYPTO is not set
1183# CONFIG_PPC_CLOCK is not set 1197# CONFIG_PPC_CLOCK is not set
1198# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index 47ea8affad23..2944529e8bf9 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -368,7 +368,12 @@ interrupt_base:
368 368
369 rlwimi r11,r13,0,26,31 /* Insert static perms */ 369 rlwimi r11,r13,0,26,31 /* Insert static perms */
370 370
371 rlwinm r11,r11,0,20,15 /* Clear U0-U3 */ 371 /*
372 * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added
373 * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see
374 * include/asm-powerpc/pgtable-ppc32.h for details).
375 */
376 rlwinm r11,r11,0,20,10
372 377
373 /* find the TLB index that caused the fault. It has to be here. */ 378 /* find the TLB index that caused the fault. It has to be here. */
374 tlbsx r10, 0, r10 379 tlbsx r10, 0, r10
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index e9238556ae50..d6df018bb584 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -1106,7 +1106,7 @@ static const struct file_operations virq_debug_fops = {
1106static int __init irq_debugfs_init(void) 1106static int __init irq_debugfs_init(void)
1107{ 1107{
1108 if (debugfs_create_file("virq_mapping", S_IRUGO, powerpc_debugfs_root, 1108 if (debugfs_create_file("virq_mapping", S_IRUGO, powerpc_debugfs_root,
1109 NULL, &virq_debug_fops)) 1109 NULL, &virq_debug_fops) == NULL)
1110 return -ENOMEM; 1110 return -ENOMEM;
1111 1111
1112 return 0; 1112 return 0;
diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index cf6b5a7d8b3f..d3ac631cbd26 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -8,7 +8,6 @@
8#include <linux/screen_info.h> 8#include <linux/screen_info.h>
9#include <linux/vt_kern.h> 9#include <linux/vt_kern.h>
10#include <linux/nvram.h> 10#include <linux/nvram.h>
11#include <linux/console.h>
12#include <linux/irq.h> 11#include <linux/irq.h>
13#include <linux/pci.h> 12#include <linux/pci.h>
14#include <linux/delay.h> 13#include <linux/delay.h>
@@ -160,7 +159,6 @@ EXPORT_SYMBOL(screen_info);
160EXPORT_SYMBOL(timer_interrupt); 159EXPORT_SYMBOL(timer_interrupt);
161EXPORT_SYMBOL(irq_desc); 160EXPORT_SYMBOL(irq_desc);
162EXPORT_SYMBOL(tb_ticks_per_jiffy); 161EXPORT_SYMBOL(tb_ticks_per_jiffy);
163EXPORT_SYMBOL(console_drivers);
164EXPORT_SYMBOL(cacheable_memcpy); 162EXPORT_SYMBOL(cacheable_memcpy);
165#endif 163#endif
166 164
diff --git a/arch/powerpc/kernel/prom_init_check.sh b/arch/powerpc/kernel/prom_init_check.sh
index 31729a9387df..2c7e8e87f770 100644
--- a/arch/powerpc/kernel/prom_init_check.sh
+++ b/arch/powerpc/kernel/prom_init_check.sh
@@ -48,6 +48,20 @@ do
48 fi 48 fi
49 done 49 done
50 50
51 # ignore register save/restore funcitons
52 if [ "${UNDEF:0:9}" = "_restgpr_" ]; then
53 OK=1
54 fi
55 if [ "${UNDEF:0:11}" = "_rest32gpr_" ]; then
56 OK=1
57 fi
58 if [ "${UNDEF:0:9}" = "_savegpr_" ]; then
59 OK=1
60 fi
61 if [ "${UNDEF:0:11}" = "_save32gpr_" ]; then
62 OK=1
63 fi
64
51 if [ $OK -eq 0 ]; then 65 if [ $OK -eq 0 ]; then
52 ERROR=1 66 ERROR=1
53 echo "Error: External symbol '$UNDEF' referenced" \ 67 echo "Error: External symbol '$UNDEF' referenced" \
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
index c21a626af676..ce245a850db2 100644
--- a/arch/powerpc/kernel/vdso.c
+++ b/arch/powerpc/kernel/vdso.c
@@ -142,7 +142,7 @@ static void dump_one_vdso_page(struct page *pg, struct page *upg)
142 printk("kpg: %p (c:%d,f:%08lx)", __va(page_to_pfn(pg) << PAGE_SHIFT), 142 printk("kpg: %p (c:%d,f:%08lx)", __va(page_to_pfn(pg) << PAGE_SHIFT),
143 page_count(pg), 143 page_count(pg),
144 pg->flags); 144 pg->flags);
145 if (upg/* && pg != upg*/) { 145 if (upg && !IS_ERR(upg) /* && pg != upg*/) {
146 printk(" upg: %p (c:%d,f:%08lx)", __va(page_to_pfn(upg) 146 printk(" upg: %p (c:%d,f:%08lx)", __va(page_to_pfn(upg)
147 << PAGE_SHIFT), 147 << PAGE_SHIFT),
148 page_count(upg), 148 page_count(upg),
diff --git a/arch/powerpc/kvm/44x_tlb.c b/arch/powerpc/kvm/44x_tlb.c
index f5d7a5eab96e..75dff7cfa814 100644
--- a/arch/powerpc/kvm/44x_tlb.c
+++ b/arch/powerpc/kvm/44x_tlb.c
@@ -116,8 +116,6 @@ static void kvmppc_44x_shadow_release(struct kvm_vcpu *vcpu,
116 struct tlbe *stlbe = &vcpu->arch.shadow_tlb[index]; 116 struct tlbe *stlbe = &vcpu->arch.shadow_tlb[index];
117 struct page *page = vcpu->arch.shadow_pages[index]; 117 struct page *page = vcpu->arch.shadow_pages[index];
118 118
119 kunmap(vcpu->arch.shadow_pages[index]);
120
121 if (get_tlb_v(stlbe)) { 119 if (get_tlb_v(stlbe)) {
122 if (kvmppc_44x_tlbe_is_writable(stlbe)) 120 if (kvmppc_44x_tlbe_is_writable(stlbe))
123 kvm_release_page_dirty(page); 121 kvm_release_page_dirty(page);
@@ -144,18 +142,19 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn, u64 asid,
144 stlbe = &vcpu->arch.shadow_tlb[victim]; 142 stlbe = &vcpu->arch.shadow_tlb[victim];
145 143
146 /* Get reference to new page. */ 144 /* Get reference to new page. */
147 down_write(&current->mm->mmap_sem); 145 down_read(&current->mm->mmap_sem);
148 new_page = gfn_to_page(vcpu->kvm, gfn); 146 new_page = gfn_to_page(vcpu->kvm, gfn);
149 if (is_error_page(new_page)) { 147 if (is_error_page(new_page)) {
150 printk(KERN_ERR "Couldn't get guest page!\n"); 148 printk(KERN_ERR "Couldn't get guest page for gfn %lx!\n", gfn);
151 kvm_release_page_clean(new_page); 149 kvm_release_page_clean(new_page);
150 up_read(&current->mm->mmap_sem);
152 return; 151 return;
153 } 152 }
154 hpaddr = page_to_phys(new_page); 153 hpaddr = page_to_phys(new_page);
155 154
156 /* Drop reference to old page. */ 155 /* Drop reference to old page. */
157 kvmppc_44x_shadow_release(vcpu, victim); 156 kvmppc_44x_shadow_release(vcpu, victim);
158 up_write(&current->mm->mmap_sem); 157 up_read(&current->mm->mmap_sem);
159 158
160 vcpu->arch.shadow_pages[victim] = new_page; 159 vcpu->arch.shadow_pages[victim] = new_page;
161 160
diff --git a/arch/powerpc/kvm/booke_guest.c b/arch/powerpc/kvm/booke_guest.c
index 712d89a28c46..9c8ad850c6e3 100644
--- a/arch/powerpc/kvm/booke_guest.c
+++ b/arch/powerpc/kvm/booke_guest.c
@@ -227,39 +227,6 @@ void kvmppc_check_and_deliver_interrupts(struct kvm_vcpu *vcpu)
227 } 227 }
228} 228}
229 229
230static int kvmppc_emulate_mmio(struct kvm_run *run, struct kvm_vcpu *vcpu)
231{
232 enum emulation_result er;
233 int r;
234
235 er = kvmppc_emulate_instruction(run, vcpu);
236 switch (er) {
237 case EMULATE_DONE:
238 /* Future optimization: only reload non-volatiles if they were
239 * actually modified. */
240 r = RESUME_GUEST_NV;
241 break;
242 case EMULATE_DO_MMIO:
243 run->exit_reason = KVM_EXIT_MMIO;
244 /* We must reload nonvolatiles because "update" load/store
245 * instructions modify register state. */
246 /* Future optimization: only reload non-volatiles if they were
247 * actually modified. */
248 r = RESUME_HOST_NV;
249 break;
250 case EMULATE_FAIL:
251 /* XXX Deliver Program interrupt to guest. */
252 printk(KERN_EMERG "%s: emulation failed (%08x)\n", __func__,
253 vcpu->arch.last_inst);
254 r = RESUME_HOST;
255 break;
256 default:
257 BUG();
258 }
259
260 return r;
261}
262
263/** 230/**
264 * kvmppc_handle_exit 231 * kvmppc_handle_exit
265 * 232 *
diff --git a/arch/powerpc/kvm/emulate.c b/arch/powerpc/kvm/emulate.c
index a03fe0c80698..000097461283 100644
--- a/arch/powerpc/kvm/emulate.c
+++ b/arch/powerpc/kvm/emulate.c
@@ -246,6 +246,11 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
246 case 31: 246 case 31:
247 switch (get_xop(inst)) { 247 switch (get_xop(inst)) {
248 248
249 case 23: /* lwzx */
250 rt = get_rt(inst);
251 emulated = kvmppc_handle_load(run, vcpu, rt, 4, 1);
252 break;
253
249 case 83: /* mfmsr */ 254 case 83: /* mfmsr */
250 rt = get_rt(inst); 255 rt = get_rt(inst);
251 vcpu->arch.gpr[rt] = vcpu->arch.msr; 256 vcpu->arch.gpr[rt] = vcpu->arch.msr;
@@ -267,6 +272,13 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
267 kvmppc_set_msr(vcpu, vcpu->arch.gpr[rs]); 272 kvmppc_set_msr(vcpu, vcpu->arch.gpr[rs]);
268 break; 273 break;
269 274
275 case 151: /* stwx */
276 rs = get_rs(inst);
277 emulated = kvmppc_handle_store(run, vcpu,
278 vcpu->arch.gpr[rs],
279 4, 1);
280 break;
281
270 case 163: /* wrteei */ 282 case 163: /* wrteei */
271 vcpu->arch.msr = (vcpu->arch.msr & ~MSR_EE) 283 vcpu->arch.msr = (vcpu->arch.msr & ~MSR_EE)
272 | (inst & MSR_EE); 284 | (inst & MSR_EE);
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index c71d37dc6a88..e522b06cc42f 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -9,7 +9,7 @@ endif
9ifeq ($(CONFIG_PPC_MERGE),y) 9ifeq ($(CONFIG_PPC_MERGE),y)
10obj-y := string.o alloc.o \ 10obj-y := string.o alloc.o \
11 checksum_$(CONFIG_WORD_SIZE).o 11 checksum_$(CONFIG_WORD_SIZE).o
12obj-$(CONFIG_PPC32) += div64.o copy_32.o 12obj-$(CONFIG_PPC32) += div64.o copy_32.o crtsavres.o
13obj-$(CONFIG_HAS_IOMEM) += devres.o 13obj-$(CONFIG_HAS_IOMEM) += devres.o
14endif 14endif
15 15
diff --git a/arch/powerpc/lib/crtsavres.S b/arch/powerpc/lib/crtsavres.S
new file mode 100644
index 000000000000..70a9cd8a3008
--- /dev/null
+++ b/arch/powerpc/lib/crtsavres.S
@@ -0,0 +1,229 @@
1/*
2 * Special support for eabi and SVR4
3 *
4 * Copyright (C) 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc.
5 * Copyright 2008 Freescale Semiconductor, Inc.
6 * Written By Michael Meissner
7 *
8 * Based on gcc/config/rs6000/crtsavres.asm from gcc
9 *
10 * This file 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, or (at your option) any
13 * later version.
14 *
15 * In addition to the permissions in the GNU General Public License, the
16 * Free Software Foundation gives you unlimited permission to link the
17 * compiled version of this file with other programs, and to distribute
18 * those programs without any restriction coming from the use of this
19 * file. (The General Public License restrictions do apply in other
20 * respects; for example, they cover modification of the file, and
21 * distribution when not linked into another program.)
22 *
23 * This file is distributed in the hope that it will be useful, but
24 * WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26 * General Public License for more details.
27 *
28 * You should have received a copy of the GNU General Public License
29 * along with this program; see the file COPYING. If not, write to
30 * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
31 * Boston, MA 02110-1301, USA.
32 *
33 * As a special exception, if you link this library with files
34 * compiled with GCC to produce an executable, this does not cause
35 * the resulting executable to be covered by the GNU General Public License.
36 * This exception does not however invalidate any other reasons why
37 * the executable file might be covered by the GNU General Public License.
38 */
39
40#include <asm/ppc_asm.h>
41
42 .file "crtsavres.S"
43 .section ".text"
44
45#ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
46
47/* Routines for saving integer registers, called by the compiler. */
48/* Called with r11 pointing to the stack header word of the caller of the */
49/* function, just beyond the end of the integer save area. */
50
51_GLOBAL(_savegpr_14)
52_GLOBAL(_save32gpr_14)
53 stw 14,-72(11) /* save gp registers */
54_GLOBAL(_savegpr_15)
55_GLOBAL(_save32gpr_15)
56 stw 15,-68(11)
57_GLOBAL(_savegpr_16)
58_GLOBAL(_save32gpr_16)
59 stw 16,-64(11)
60_GLOBAL(_savegpr_17)
61_GLOBAL(_save32gpr_17)
62 stw 17,-60(11)
63_GLOBAL(_savegpr_18)
64_GLOBAL(_save32gpr_18)
65 stw 18,-56(11)
66_GLOBAL(_savegpr_19)
67_GLOBAL(_save32gpr_19)
68 stw 19,-52(11)
69_GLOBAL(_savegpr_20)
70_GLOBAL(_save32gpr_20)
71 stw 20,-48(11)
72_GLOBAL(_savegpr_21)
73_GLOBAL(_save32gpr_21)
74 stw 21,-44(11)
75_GLOBAL(_savegpr_22)
76_GLOBAL(_save32gpr_22)
77 stw 22,-40(11)
78_GLOBAL(_savegpr_23)
79_GLOBAL(_save32gpr_23)
80 stw 23,-36(11)
81_GLOBAL(_savegpr_24)
82_GLOBAL(_save32gpr_24)
83 stw 24,-32(11)
84_GLOBAL(_savegpr_25)
85_GLOBAL(_save32gpr_25)
86 stw 25,-28(11)
87_GLOBAL(_savegpr_26)
88_GLOBAL(_save32gpr_26)
89 stw 26,-24(11)
90_GLOBAL(_savegpr_27)
91_GLOBAL(_save32gpr_27)
92 stw 27,-20(11)
93_GLOBAL(_savegpr_28)
94_GLOBAL(_save32gpr_28)
95 stw 28,-16(11)
96_GLOBAL(_savegpr_29)
97_GLOBAL(_save32gpr_29)
98 stw 29,-12(11)
99_GLOBAL(_savegpr_30)
100_GLOBAL(_save32gpr_30)
101 stw 30,-8(11)
102_GLOBAL(_savegpr_31)
103_GLOBAL(_save32gpr_31)
104 stw 31,-4(11)
105 blr
106
107/* Routines for restoring integer registers, called by the compiler. */
108/* Called with r11 pointing to the stack header word of the caller of the */
109/* function, just beyond the end of the integer restore area. */
110
111_GLOBAL(_restgpr_14)
112_GLOBAL(_rest32gpr_14)
113 lwz 14,-72(11) /* restore gp registers */
114_GLOBAL(_restgpr_15)
115_GLOBAL(_rest32gpr_15)
116 lwz 15,-68(11)
117_GLOBAL(_restgpr_16)
118_GLOBAL(_rest32gpr_16)
119 lwz 16,-64(11)
120_GLOBAL(_restgpr_17)
121_GLOBAL(_rest32gpr_17)
122 lwz 17,-60(11)
123_GLOBAL(_restgpr_18)
124_GLOBAL(_rest32gpr_18)
125 lwz 18,-56(11)
126_GLOBAL(_restgpr_19)
127_GLOBAL(_rest32gpr_19)
128 lwz 19,-52(11)
129_GLOBAL(_restgpr_20)
130_GLOBAL(_rest32gpr_20)
131 lwz 20,-48(11)
132_GLOBAL(_restgpr_21)
133_GLOBAL(_rest32gpr_21)
134 lwz 21,-44(11)
135_GLOBAL(_restgpr_22)
136_GLOBAL(_rest32gpr_22)
137 lwz 22,-40(11)
138_GLOBAL(_restgpr_23)
139_GLOBAL(_rest32gpr_23)
140 lwz 23,-36(11)
141_GLOBAL(_restgpr_24)
142_GLOBAL(_rest32gpr_24)
143 lwz 24,-32(11)
144_GLOBAL(_restgpr_25)
145_GLOBAL(_rest32gpr_25)
146 lwz 25,-28(11)
147_GLOBAL(_restgpr_26)
148_GLOBAL(_rest32gpr_26)
149 lwz 26,-24(11)
150_GLOBAL(_restgpr_27)
151_GLOBAL(_rest32gpr_27)
152 lwz 27,-20(11)
153_GLOBAL(_restgpr_28)
154_GLOBAL(_rest32gpr_28)
155 lwz 28,-16(11)
156_GLOBAL(_restgpr_29)
157_GLOBAL(_rest32gpr_29)
158 lwz 29,-12(11)
159_GLOBAL(_restgpr_30)
160_GLOBAL(_rest32gpr_30)
161 lwz 30,-8(11)
162_GLOBAL(_restgpr_31)
163_GLOBAL(_rest32gpr_31)
164 lwz 31,-4(11)
165 blr
166
167/* Routines for restoring integer registers, called by the compiler. */
168/* Called with r11 pointing to the stack header word of the caller of the */
169/* function, just beyond the end of the integer restore area. */
170
171_GLOBAL(_restgpr_14_x)
172_GLOBAL(_rest32gpr_14_x)
173 lwz 14,-72(11) /* restore gp registers */
174_GLOBAL(_restgpr_15_x)
175_GLOBAL(_rest32gpr_15_x)
176 lwz 15,-68(11)
177_GLOBAL(_restgpr_16_x)
178_GLOBAL(_rest32gpr_16_x)
179 lwz 16,-64(11)
180_GLOBAL(_restgpr_17_x)
181_GLOBAL(_rest32gpr_17_x)
182 lwz 17,-60(11)
183_GLOBAL(_restgpr_18_x)
184_GLOBAL(_rest32gpr_18_x)
185 lwz 18,-56(11)
186_GLOBAL(_restgpr_19_x)
187_GLOBAL(_rest32gpr_19_x)
188 lwz 19,-52(11)
189_GLOBAL(_restgpr_20_x)
190_GLOBAL(_rest32gpr_20_x)
191 lwz 20,-48(11)
192_GLOBAL(_restgpr_21_x)
193_GLOBAL(_rest32gpr_21_x)
194 lwz 21,-44(11)
195_GLOBAL(_restgpr_22_x)
196_GLOBAL(_rest32gpr_22_x)
197 lwz 22,-40(11)
198_GLOBAL(_restgpr_23_x)
199_GLOBAL(_rest32gpr_23_x)
200 lwz 23,-36(11)
201_GLOBAL(_restgpr_24_x)
202_GLOBAL(_rest32gpr_24_x)
203 lwz 24,-32(11)
204_GLOBAL(_restgpr_25_x)
205_GLOBAL(_rest32gpr_25_x)
206 lwz 25,-28(11)
207_GLOBAL(_restgpr_26_x)
208_GLOBAL(_rest32gpr_26_x)
209 lwz 26,-24(11)
210_GLOBAL(_restgpr_27_x)
211_GLOBAL(_rest32gpr_27_x)
212 lwz 27,-20(11)
213_GLOBAL(_restgpr_28_x)
214_GLOBAL(_rest32gpr_28_x)
215 lwz 28,-16(11)
216_GLOBAL(_restgpr_29_x)
217_GLOBAL(_rest32gpr_29_x)
218 lwz 29,-12(11)
219_GLOBAL(_restgpr_30_x)
220_GLOBAL(_rest32gpr_30_x)
221 lwz 30,-8(11)
222_GLOBAL(_restgpr_31_x)
223_GLOBAL(_rest32gpr_31_x)
224 lwz 0,4(11)
225 lwz 31,-4(11)
226 mtlr 0
227 mr 1,11
228 blr
229#endif
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S
index 21d248486479..70f4c833fa32 100644
--- a/arch/powerpc/mm/hash_low_64.S
+++ b/arch/powerpc/mm/hash_low_64.S
@@ -568,6 +568,10 @@ htab_inval_old_hpte:
568 ld r7,STK_PARM(r9)(r1) /* ssize */ 568 ld r7,STK_PARM(r9)(r1) /* ssize */
569 ld r8,STK_PARM(r8)(r1) /* local */ 569 ld r8,STK_PARM(r8)(r1) /* local */
570 bl .flush_hash_page 570 bl .flush_hash_page
571 /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */
572 lis r0,_PAGE_HPTE_SUB@h
573 ori r0,r0,_PAGE_HPTE_SUB@l
574 andc r30,r30,r0
571 b htab_insert_pte 575 b htab_insert_pte
572 576
573htab_bail_ok: 577htab_bail_ok:
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 91d67ee8e6db..9cb8e29987a3 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -34,6 +34,7 @@ config MPC85xx_MDS
34 bool "Freescale MPC85xx MDS" 34 bool "Freescale MPC85xx MDS"
35 select DEFAULT_UIMAGE 35 select DEFAULT_UIMAGE
36 select QUICC_ENGINE 36 select QUICC_ENGINE
37 select PHYLIB
37 help 38 help
38 This option enables support for the MPC85xx MDS board 39 This option enables support for the MPC85xx MDS board
39 40
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index 70c660121ec4..78f905bc6a42 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -219,15 +219,25 @@ static int __spu_trap_data_seg(struct spu *spu, unsigned long ea)
219extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap); //XXX 219extern int hash_page(unsigned long ea, unsigned long access, unsigned long trap); //XXX
220static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr) 220static int __spu_trap_data_map(struct spu *spu, unsigned long ea, u64 dsisr)
221{ 221{
222 int ret;
223
222 pr_debug("%s, %lx, %lx\n", __func__, dsisr, ea); 224 pr_debug("%s, %lx, %lx\n", __func__, dsisr, ea);
223 225
224 /* Handle kernel space hash faults immediately. 226 /*
225 User hash faults need to be deferred to process context. */ 227 * Handle kernel space hash faults immediately. User hash
226 if ((dsisr & MFC_DSISR_PTE_NOT_FOUND) 228 * faults need to be deferred to process context.
227 && REGION_ID(ea) != USER_REGION_ID 229 */
228 && hash_page(ea, _PAGE_PRESENT, 0x300) == 0) { 230 if ((dsisr & MFC_DSISR_PTE_NOT_FOUND) &&
229 spu_restart_dma(spu); 231 (REGION_ID(ea) != USER_REGION_ID)) {
230 return 0; 232
233 spin_unlock(&spu->register_lock);
234 ret = hash_page(ea, _PAGE_PRESENT, 0x300);
235 spin_lock(&spu->register_lock);
236
237 if (!ret) {
238 spu_restart_dma(spu);
239 return 0;
240 }
231 } 241 }
232 242
233 spu->class_1_dar = ea; 243 spu->class_1_dar = ea;
@@ -324,17 +334,13 @@ spu_irq_class_0(int irq, void *data)
324 stat = spu_int_stat_get(spu, 0) & mask; 334 stat = spu_int_stat_get(spu, 0) & mask;
325 335
326 spu->class_0_pending |= stat; 336 spu->class_0_pending |= stat;
327 spu->class_0_dsisr = spu_mfc_dsisr_get(spu);
328 spu->class_0_dar = spu_mfc_dar_get(spu); 337 spu->class_0_dar = spu_mfc_dar_get(spu);
329 spin_unlock(&spu->register_lock);
330
331 spu->stop_callback(spu, 0); 338 spu->stop_callback(spu, 0);
332
333 spu->class_0_pending = 0; 339 spu->class_0_pending = 0;
334 spu->class_0_dsisr = 0;
335 spu->class_0_dar = 0; 340 spu->class_0_dar = 0;
336 341
337 spu_int_stat_clear(spu, 0, stat); 342 spu_int_stat_clear(spu, 0, stat);
343 spin_unlock(&spu->register_lock);
338 344
339 return IRQ_HANDLED; 345 return IRQ_HANDLED;
340} 346}
@@ -357,13 +363,12 @@ spu_irq_class_1(int irq, void *data)
357 spu_mfc_dsisr_set(spu, 0ul); 363 spu_mfc_dsisr_set(spu, 0ul);
358 spu_int_stat_clear(spu, 1, stat); 364 spu_int_stat_clear(spu, 1, stat);
359 365
360 if (stat & CLASS1_SEGMENT_FAULT_INTR)
361 __spu_trap_data_seg(spu, dar);
362
363 spin_unlock(&spu->register_lock);
364 pr_debug("%s: %lx %lx %lx %lx\n", __func__, mask, stat, 366 pr_debug("%s: %lx %lx %lx %lx\n", __func__, mask, stat,
365 dar, dsisr); 367 dar, dsisr);
366 368
369 if (stat & CLASS1_SEGMENT_FAULT_INTR)
370 __spu_trap_data_seg(spu, dar);
371
367 if (stat & CLASS1_STORAGE_FAULT_INTR) 372 if (stat & CLASS1_STORAGE_FAULT_INTR)
368 __spu_trap_data_map(spu, dar, dsisr); 373 __spu_trap_data_map(spu, dar, dsisr);
369 374
@@ -376,6 +381,8 @@ spu_irq_class_1(int irq, void *data)
376 spu->class_1_dsisr = 0; 381 spu->class_1_dsisr = 0;
377 spu->class_1_dar = 0; 382 spu->class_1_dar = 0;
378 383
384 spin_unlock(&spu->register_lock);
385
379 return stat ? IRQ_HANDLED : IRQ_NONE; 386 return stat ? IRQ_HANDLED : IRQ_NONE;
380} 387}
381 388
@@ -394,14 +401,12 @@ spu_irq_class_2(int irq, void *data)
394 mask = spu_int_mask_get(spu, 2); 401 mask = spu_int_mask_get(spu, 2);
395 /* ignore interrupts we're not waiting for */ 402 /* ignore interrupts we're not waiting for */
396 stat &= mask; 403 stat &= mask;
397
398 /* mailbox interrupts are level triggered. mask them now before 404 /* mailbox interrupts are level triggered. mask them now before
399 * acknowledging */ 405 * acknowledging */
400 if (stat & mailbox_intrs) 406 if (stat & mailbox_intrs)
401 spu_int_mask_and(spu, 2, ~(stat & mailbox_intrs)); 407 spu_int_mask_and(spu, 2, ~(stat & mailbox_intrs));
402 /* acknowledge all interrupts before the callbacks */ 408 /* acknowledge all interrupts before the callbacks */
403 spu_int_stat_clear(spu, 2, stat); 409 spu_int_stat_clear(spu, 2, stat);
404 spin_unlock(&spu->register_lock);
405 410
406 pr_debug("class 2 interrupt %d, %lx, %lx\n", irq, stat, mask); 411 pr_debug("class 2 interrupt %d, %lx, %lx\n", irq, stat, mask);
407 412
@@ -421,6 +426,9 @@ spu_irq_class_2(int irq, void *data)
421 spu->wbox_callback(spu); 426 spu->wbox_callback(spu);
422 427
423 spu->stats.class2_intr++; 428 spu->stats.class2_intr++;
429
430 spin_unlock(&spu->register_lock);
431
424 return stat ? IRQ_HANDLED : IRQ_NONE; 432 return stat ? IRQ_HANDLED : IRQ_NONE;
425} 433}
426 434
diff --git a/arch/powerpc/platforms/cell/spufs/run.c b/arch/powerpc/platforms/cell/spufs/run.c
index b7493b865812..f7edba6cb795 100644
--- a/arch/powerpc/platforms/cell/spufs/run.c
+++ b/arch/powerpc/platforms/cell/spufs/run.c
@@ -27,7 +27,6 @@ void spufs_stop_callback(struct spu *spu, int irq)
27 switch(irq) { 27 switch(irq) {
28 case 0 : 28 case 0 :
29 ctx->csa.class_0_pending = spu->class_0_pending; 29 ctx->csa.class_0_pending = spu->class_0_pending;
30 ctx->csa.class_0_dsisr = spu->class_0_dsisr;
31 ctx->csa.class_0_dar = spu->class_0_dar; 30 ctx->csa.class_0_dar = spu->class_0_dar;
32 break; 31 break;
33 case 1 : 32 case 1 :
@@ -51,18 +50,22 @@ int spu_stopped(struct spu_context *ctx, u32 *stat)
51 u64 dsisr; 50 u64 dsisr;
52 u32 stopped; 51 u32 stopped;
53 52
54 *stat = ctx->ops->status_read(ctx);
55
56 if (test_bit(SPU_SCHED_NOTIFY_ACTIVE, &ctx->sched_flags))
57 return 1;
58
59 stopped = SPU_STATUS_INVALID_INSTR | SPU_STATUS_SINGLE_STEP | 53 stopped = SPU_STATUS_INVALID_INSTR | SPU_STATUS_SINGLE_STEP |
60 SPU_STATUS_STOPPED_BY_HALT | SPU_STATUS_STOPPED_BY_STOP; 54 SPU_STATUS_STOPPED_BY_HALT | SPU_STATUS_STOPPED_BY_STOP;
61 if (!(*stat & SPU_STATUS_RUNNING) && (*stat & stopped)) 55
56top:
57 *stat = ctx->ops->status_read(ctx);
58 if (*stat & stopped) {
59 /*
60 * If the spu hasn't finished stopping, we need to
61 * re-read the register to get the stopped value.
62 */
63 if (*stat & SPU_STATUS_RUNNING)
64 goto top;
62 return 1; 65 return 1;
66 }
63 67
64 dsisr = ctx->csa.class_0_dsisr; 68 if (test_bit(SPU_SCHED_NOTIFY_ACTIVE, &ctx->sched_flags))
65 if (dsisr & (MFC_DSISR_PTE_NOT_FOUND | MFC_DSISR_ACCESS_DENIED))
66 return 1; 69 return 1;
67 70
68 dsisr = ctx->csa.class_1_dsisr; 71 dsisr = ctx->csa.class_1_dsisr;
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 745dd51ec37f..e929e70a84e3 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -230,19 +230,23 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx)
230 ctx->stats.slb_flt_base = spu->stats.slb_flt; 230 ctx->stats.slb_flt_base = spu->stats.slb_flt;
231 ctx->stats.class2_intr_base = spu->stats.class2_intr; 231 ctx->stats.class2_intr_base = spu->stats.class2_intr;
232 232
233 spu_associate_mm(spu, ctx->owner);
234
235 spin_lock_irq(&spu->register_lock);
233 spu->ctx = ctx; 236 spu->ctx = ctx;
234 spu->flags = 0; 237 spu->flags = 0;
235 ctx->spu = spu; 238 ctx->spu = spu;
236 ctx->ops = &spu_hw_ops; 239 ctx->ops = &spu_hw_ops;
237 spu->pid = current->pid; 240 spu->pid = current->pid;
238 spu->tgid = current->tgid; 241 spu->tgid = current->tgid;
239 spu_associate_mm(spu, ctx->owner);
240 spu->ibox_callback = spufs_ibox_callback; 242 spu->ibox_callback = spufs_ibox_callback;
241 spu->wbox_callback = spufs_wbox_callback; 243 spu->wbox_callback = spufs_wbox_callback;
242 spu->stop_callback = spufs_stop_callback; 244 spu->stop_callback = spufs_stop_callback;
243 spu->mfc_callback = spufs_mfc_callback; 245 spu->mfc_callback = spufs_mfc_callback;
244 mb(); 246 spin_unlock_irq(&spu->register_lock);
247
245 spu_unmap_mappings(ctx); 248 spu_unmap_mappings(ctx);
249
246 spu_switch_log_notify(spu, ctx, SWITCH_LOG_START, 0); 250 spu_switch_log_notify(spu, ctx, SWITCH_LOG_START, 0);
247 spu_restore(&ctx->csa, spu); 251 spu_restore(&ctx->csa, spu);
248 spu->timestamp = jiffies; 252 spu->timestamp = jiffies;
@@ -403,6 +407,8 @@ static int has_affinity(struct spu_context *ctx)
403 */ 407 */
404static void spu_unbind_context(struct spu *spu, struct spu_context *ctx) 408static void spu_unbind_context(struct spu *spu, struct spu_context *ctx)
405{ 409{
410 u32 status;
411
406 spu_context_trace(spu_unbind_context__enter, ctx, spu); 412 spu_context_trace(spu_unbind_context__enter, ctx, spu);
407 413
408 spuctx_switch_state(ctx, SPU_UTIL_SYSTEM); 414 spuctx_switch_state(ctx, SPU_UTIL_SYSTEM);
@@ -423,18 +429,22 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx)
423 spu_unmap_mappings(ctx); 429 spu_unmap_mappings(ctx);
424 spu_save(&ctx->csa, spu); 430 spu_save(&ctx->csa, spu);
425 spu_switch_log_notify(spu, ctx, SWITCH_LOG_STOP, 0); 431 spu_switch_log_notify(spu, ctx, SWITCH_LOG_STOP, 0);
432
433 spin_lock_irq(&spu->register_lock);
426 spu->timestamp = jiffies; 434 spu->timestamp = jiffies;
427 ctx->state = SPU_STATE_SAVED; 435 ctx->state = SPU_STATE_SAVED;
428 spu->ibox_callback = NULL; 436 spu->ibox_callback = NULL;
429 spu->wbox_callback = NULL; 437 spu->wbox_callback = NULL;
430 spu->stop_callback = NULL; 438 spu->stop_callback = NULL;
431 spu->mfc_callback = NULL; 439 spu->mfc_callback = NULL;
432 spu_associate_mm(spu, NULL);
433 spu->pid = 0; 440 spu->pid = 0;
434 spu->tgid = 0; 441 spu->tgid = 0;
435 ctx->ops = &spu_backing_ops; 442 ctx->ops = &spu_backing_ops;
436 spu->flags = 0; 443 spu->flags = 0;
437 spu->ctx = NULL; 444 spu->ctx = NULL;
445 spin_unlock_irq(&spu->register_lock);
446
447 spu_associate_mm(spu, NULL);
438 448
439 ctx->stats.slb_flt += 449 ctx->stats.slb_flt +=
440 (spu->stats.slb_flt - ctx->stats.slb_flt_base); 450 (spu->stats.slb_flt - ctx->stats.slb_flt_base);
@@ -444,6 +454,9 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx)
444 /* This maps the underlying spu state to idle */ 454 /* This maps the underlying spu state to idle */
445 spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED); 455 spuctx_switch_state(ctx, SPU_UTIL_IDLE_LOADED);
446 ctx->spu = NULL; 456 ctx->spu = NULL;
457
458 if (spu_stopped(ctx, &status))
459 wake_up_all(&ctx->stop_wq);
447} 460}
448 461
449/** 462/**
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c
index 68ea5eee39a8..8c1ca477c52c 100644
--- a/arch/powerpc/platforms/pseries/eeh_driver.c
+++ b/arch/powerpc/platforms/pseries/eeh_driver.c
@@ -42,17 +42,20 @@ static inline const char * pcid_name (struct pci_dev *pdev)
42} 42}
43 43
44#ifdef DEBUG 44#ifdef DEBUG
45static void print_device_node_tree (struct pci_dn *pdn, int dent) 45static void print_device_node_tree(struct pci_dn *pdn, int dent)
46{ 46{
47 int i; 47 int i;
48 if (!pdn) return; 48 struct device_node *pc;
49 for (i=0;i<dent; i++) 49
50 if (!pdn)
51 return;
52 for (i = 0; i < dent; i++)
50 printk(" "); 53 printk(" ");
51 printk("dn=%s mode=%x \tcfg_addr=%x pe_addr=%x \tfull=%s\n", 54 printk("dn=%s mode=%x \tcfg_addr=%x pe_addr=%x \tfull=%s\n",
52 pdn->node->name, pdn->eeh_mode, pdn->eeh_config_addr, 55 pdn->node->name, pdn->eeh_mode, pdn->eeh_config_addr,
53 pdn->eeh_pe_config_addr, pdn->node->full_name); 56 pdn->eeh_pe_config_addr, pdn->node->full_name);
54 dent += 3; 57 dent += 3;
55 struct device_node *pc = pdn->node->child; 58 pc = pdn->node->child;
56 while (pc) { 59 while (pc) {
57 print_device_node_tree(PCI_DN(pc), dent); 60 print_device_node_tree(PCI_DN(pc), dent);
58 pc = pc->sibling; 61 pc = pc->sibling;
diff --git a/arch/powerpc/platforms/pseries/nvram.c b/arch/powerpc/platforms/pseries/nvram.c
index f68903e15bd5..42f7e384e6c4 100644
--- a/arch/powerpc/platforms/pseries/nvram.c
+++ b/arch/powerpc/platforms/pseries/nvram.c
@@ -131,8 +131,10 @@ int __init pSeries_nvram_init(void)
131 return -ENODEV; 131 return -ENODEV;
132 132
133 nbytes_p = of_get_property(nvram, "#bytes", &proplen); 133 nbytes_p = of_get_property(nvram, "#bytes", &proplen);
134 if (nbytes_p == NULL || proplen != sizeof(unsigned int)) 134 if (nbytes_p == NULL || proplen != sizeof(unsigned int)) {
135 of_node_put(nvram);
135 return -EIO; 136 return -EIO;
137 }
136 138
137 nvram_size = *nbytes_p; 139 nvram_size = *nbytes_p;
138 140
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 6726da07c065..34c3d0688fe0 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2850,7 +2850,6 @@ static void dump_spu_fields(struct spu *spu)
2850 DUMP_FIELD(spu, "0x%lx", flags); 2850 DUMP_FIELD(spu, "0x%lx", flags);
2851 DUMP_FIELD(spu, "%d", class_0_pending); 2851 DUMP_FIELD(spu, "%d", class_0_pending);
2852 DUMP_FIELD(spu, "0x%lx", class_0_dar); 2852 DUMP_FIELD(spu, "0x%lx", class_0_dar);
2853 DUMP_FIELD(spu, "0x%lx", class_0_dsisr);
2854 DUMP_FIELD(spu, "0x%lx", class_1_dar); 2853 DUMP_FIELD(spu, "0x%lx", class_1_dar);
2855 DUMP_FIELD(spu, "0x%lx", class_1_dsisr); 2854 DUMP_FIELD(spu, "0x%lx", class_1_dsisr);
2856 DUMP_FIELD(spu, "0x%lx", irqs[0]); 2855 DUMP_FIELD(spu, "0x%lx", irqs[0]);
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 93acb3c1859d..107e492cb47e 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -304,6 +304,7 @@ config ARCH_SPARSEMEM_ENABLE
304 def_bool y 304 def_bool y
305 select SPARSEMEM_VMEMMAP_ENABLE 305 select SPARSEMEM_VMEMMAP_ENABLE
306 select SPARSEMEM_VMEMMAP 306 select SPARSEMEM_VMEMMAP
307 select SPARSEMEM_STATIC if !64BIT
307 308
308config ARCH_SPARSEMEM_DEFAULT 309config ARCH_SPARSEMEM_DEFAULT
309 def_bool y 310 def_bool y
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 42b1d12ebb10..5d4fa4b1c74c 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -711,7 +711,7 @@ int __cpuinit __cpu_up(unsigned int cpu)
711 memset(sf, 0, sizeof(struct stack_frame)); 711 memset(sf, 0, sizeof(struct stack_frame));
712 sf->gprs[9] = (unsigned long) sf; 712 sf->gprs[9] = (unsigned long) sf;
713 cpu_lowcore->save_area[15] = (unsigned long) sf; 713 cpu_lowcore->save_area[15] = (unsigned long) sf;
714 __ctl_store(cpu_lowcore->cregs_save_area[0], 0, 15); 714 __ctl_store(cpu_lowcore->cregs_save_area, 0, 15);
715 asm volatile( 715 asm volatile(
716 " stam 0,15,0(%0)" 716 " stam 0,15,0(%0)"
717 : : "a" (&cpu_lowcore->access_regs_save_area) : "memory"); 717 : : "a" (&cpu_lowcore->access_regs_save_area) : "memory");
diff --git a/arch/s390/kvm/diag.c b/arch/s390/kvm/diag.c
index f639a152869f..a0775e1f08df 100644
--- a/arch/s390/kvm/diag.c
+++ b/arch/s390/kvm/diag.c
@@ -20,7 +20,7 @@ static int __diag_time_slice_end(struct kvm_vcpu *vcpu)
20 VCPU_EVENT(vcpu, 5, "%s", "diag time slice end"); 20 VCPU_EVENT(vcpu, 5, "%s", "diag time slice end");
21 vcpu->stat.diagnose_44++; 21 vcpu->stat.diagnose_44++;
22 vcpu_put(vcpu); 22 vcpu_put(vcpu);
23 schedule(); 23 yield();
24 vcpu_load(vcpu); 24 vcpu_load(vcpu);
25 return 0; 25 return 0;
26} 26}
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index fcd1ed8015c1..84a7fed4cd4e 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -339,6 +339,11 @@ int kvm_s390_handle_wait(struct kvm_vcpu *vcpu)
339 if (kvm_cpu_has_interrupt(vcpu)) 339 if (kvm_cpu_has_interrupt(vcpu))
340 return 0; 340 return 0;
341 341
342 __set_cpu_idle(vcpu);
343 spin_lock_bh(&vcpu->arch.local_int.lock);
344 vcpu->arch.local_int.timer_due = 0;
345 spin_unlock_bh(&vcpu->arch.local_int.lock);
346
342 if (psw_interrupts_disabled(vcpu)) { 347 if (psw_interrupts_disabled(vcpu)) {
343 VCPU_EVENT(vcpu, 3, "%s", "disabled wait"); 348 VCPU_EVENT(vcpu, 3, "%s", "disabled wait");
344 __unset_cpu_idle(vcpu); 349 __unset_cpu_idle(vcpu);
@@ -366,8 +371,6 @@ int kvm_s390_handle_wait(struct kvm_vcpu *vcpu)
366no_timer: 371no_timer:
367 spin_lock_bh(&vcpu->arch.local_int.float_int->lock); 372 spin_lock_bh(&vcpu->arch.local_int.float_int->lock);
368 spin_lock_bh(&vcpu->arch.local_int.lock); 373 spin_lock_bh(&vcpu->arch.local_int.lock);
369 __set_cpu_idle(vcpu);
370 vcpu->arch.local_int.timer_due = 0;
371 add_wait_queue(&vcpu->arch.local_int.wq, &wait); 374 add_wait_queue(&vcpu->arch.local_int.wq, &wait);
372 while (list_empty(&vcpu->arch.local_int.list) && 375 while (list_empty(&vcpu->arch.local_int.list) &&
373 list_empty(&vcpu->arch.local_int.float_int->list) && 376 list_empty(&vcpu->arch.local_int.float_int->list) &&
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 0ac36a649eba..6558b09ff579 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -423,6 +423,8 @@ int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
423 return -EINVAL; /* not implemented yet */ 423 return -EINVAL; /* not implemented yet */
424} 424}
425 425
426extern void s390_handle_mcck(void);
427
426static void __vcpu_run(struct kvm_vcpu *vcpu) 428static void __vcpu_run(struct kvm_vcpu *vcpu)
427{ 429{
428 memcpy(&vcpu->arch.sie_block->gg14, &vcpu->arch.guest_gprs[14], 16); 430 memcpy(&vcpu->arch.sie_block->gg14, &vcpu->arch.guest_gprs[14], 16);
@@ -430,13 +432,21 @@ static void __vcpu_run(struct kvm_vcpu *vcpu)
430 if (need_resched()) 432 if (need_resched())
431 schedule(); 433 schedule();
432 434
435 if (test_thread_flag(TIF_MCCK_PENDING))
436 s390_handle_mcck();
437
438 kvm_s390_deliver_pending_interrupts(vcpu);
439
433 vcpu->arch.sie_block->icptcode = 0; 440 vcpu->arch.sie_block->icptcode = 0;
434 local_irq_disable(); 441 local_irq_disable();
435 kvm_guest_enter(); 442 kvm_guest_enter();
436 local_irq_enable(); 443 local_irq_enable();
437 VCPU_EVENT(vcpu, 6, "entering sie flags %x", 444 VCPU_EVENT(vcpu, 6, "entering sie flags %x",
438 atomic_read(&vcpu->arch.sie_block->cpuflags)); 445 atomic_read(&vcpu->arch.sie_block->cpuflags));
439 sie64a(vcpu->arch.sie_block, vcpu->arch.guest_gprs); 446 if (sie64a(vcpu->arch.sie_block, vcpu->arch.guest_gprs)) {
447 VCPU_EVENT(vcpu, 3, "%s", "fault in sie instruction");
448 kvm_s390_inject_program_int(vcpu, PGM_ADDRESSING);
449 }
440 VCPU_EVENT(vcpu, 6, "exit sie icptcode %d", 450 VCPU_EVENT(vcpu, 6, "exit sie icptcode %d",
441 vcpu->arch.sie_block->icptcode); 451 vcpu->arch.sie_block->icptcode);
442 local_irq_disable(); 452 local_irq_disable();
@@ -475,7 +485,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
475 might_sleep(); 485 might_sleep();
476 486
477 do { 487 do {
478 kvm_s390_deliver_pending_interrupts(vcpu);
479 __vcpu_run(vcpu); 488 __vcpu_run(vcpu);
480 rc = kvm_handle_sie_intercept(vcpu); 489 rc = kvm_handle_sie_intercept(vcpu);
481 } while (!signal_pending(current) && !rc); 490 } while (!signal_pending(current) && !rc);
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 5c1aea97cd12..3d98ba82ea67 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -254,36 +254,46 @@ void disable_noexec(struct mm_struct *mm, struct task_struct *tsk)
254int s390_enable_sie(void) 254int s390_enable_sie(void)
255{ 255{
256 struct task_struct *tsk = current; 256 struct task_struct *tsk = current;
257 struct mm_struct *mm; 257 struct mm_struct *mm, *old_mm;
258 int rc;
259 258
260 task_lock(tsk); 259 /* Do we have pgstes? if yes, we are done */
261
262 rc = 0;
263 if (tsk->mm->context.pgstes) 260 if (tsk->mm->context.pgstes)
264 goto unlock; 261 return 0;
265 262
266 rc = -EINVAL; 263 /* lets check if we are allowed to replace the mm */
264 task_lock(tsk);
267 if (!tsk->mm || atomic_read(&tsk->mm->mm_users) > 1 || 265 if (!tsk->mm || atomic_read(&tsk->mm->mm_users) > 1 ||
268 tsk->mm != tsk->active_mm || tsk->mm->ioctx_list) 266 tsk->mm != tsk->active_mm || tsk->mm->ioctx_list) {
269 goto unlock; 267 task_unlock(tsk);
268 return -EINVAL;
269 }
270 task_unlock(tsk);
270 271
271 tsk->mm->context.pgstes = 1; /* dirty little tricks .. */ 272 /* we copy the mm with pgstes enabled */
273 tsk->mm->context.pgstes = 1;
272 mm = dup_mm(tsk); 274 mm = dup_mm(tsk);
273 tsk->mm->context.pgstes = 0; 275 tsk->mm->context.pgstes = 0;
274
275 rc = -ENOMEM;
276 if (!mm) 276 if (!mm)
277 goto unlock; 277 return -ENOMEM;
278 mmput(tsk->mm); 278
279 /* Now lets check again if somebody attached ptrace etc */
280 task_lock(tsk);
281 if (!tsk->mm || atomic_read(&tsk->mm->mm_users) > 1 ||
282 tsk->mm != tsk->active_mm || tsk->mm->ioctx_list) {
283 mmput(mm);
284 task_unlock(tsk);
285 return -EINVAL;
286 }
287
288 /* ok, we are alone. No ptrace, no threads, etc. */
289 old_mm = tsk->mm;
279 tsk->mm = tsk->active_mm = mm; 290 tsk->mm = tsk->active_mm = mm;
280 preempt_disable(); 291 preempt_disable();
281 update_mm(mm, tsk); 292 update_mm(mm, tsk);
282 cpu_set(smp_processor_id(), mm->cpu_vm_mask); 293 cpu_set(smp_processor_id(), mm->cpu_vm_mask);
283 preempt_enable(); 294 preempt_enable();
284 rc = 0;
285unlock:
286 task_unlock(tsk); 295 task_unlock(tsk);
287 return rc; 296 mmput(old_mm);
297 return 0;
288} 298}
289EXPORT_SYMBOL_GPL(s390_enable_sie); 299EXPORT_SYMBOL_GPL(s390_enable_sie);
diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c
index f591188fa2c0..e4868bfc672f 100644
--- a/arch/s390/mm/vmem.c
+++ b/arch/s390/mm/vmem.c
@@ -236,7 +236,7 @@ static int insert_memory_segment(struct memory_segment *seg)
236{ 236{
237 struct memory_segment *tmp; 237 struct memory_segment *tmp;
238 238
239 if (seg->start + seg->size >= VMEM_MAX_PHYS || 239 if (seg->start + seg->size > VMEM_MAX_PHYS ||
240 seg->start + seg->size < seg->start) 240 seg->start + seg->size < seg->start)
241 return -ERANGE; 241 return -ERANGE;
242 242
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index 8050b03d51fc..fb7b1b15e392 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -41,6 +41,8 @@ cflags-$(CONFIG_CPU_SH5) := $(call cc-option,-m5-32media-nofpu,)
41cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb 41cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb
42cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml 42cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml
43 43
44cflags-y += $(call cc-option,-mno-fdpic)
45
44# 46#
45# -Wa,-isa= tuning implies -Wa,-dsp for the versions of binutils that 47# -Wa,-isa= tuning implies -Wa,-dsp for the versions of binutils that
46# support it, while -Wa,-dsp by itself limits the range of usable opcodes 48# support it, while -Wa,-dsp by itself limits the range of usable opcodes
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index 566ce79b9abf..a0470f2f5479 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -16,6 +16,21 @@
16 16
17static struct plat_sci_port sci_platform_data[] = { 17static struct plat_sci_port sci_platform_data[] = {
18 { 18 {
19 .mapbase = 0xffe00000,
20 .flags = UPF_BOOT_AUTOCONF,
21 .type = PORT_SCIF,
22 .irqs = { 80, 80, 80, 80 },
23 },{
24 .mapbase = 0xffe10000,
25 .flags = UPF_BOOT_AUTOCONF,
26 .type = PORT_SCIF,
27 .irqs = { 81, 81, 81, 81 },
28 },{
29 .mapbase = 0xffe20000,
30 .flags = UPF_BOOT_AUTOCONF,
31 .type = PORT_SCIF,
32 .irqs = { 82, 82, 82, 82 },
33 },{
19 .mapbase = 0xa4e30000, 34 .mapbase = 0xa4e30000,
20 .flags = UPF_BOOT_AUTOCONF, 35 .flags = UPF_BOOT_AUTOCONF,
21 .type = PORT_SCI, 36 .type = PORT_SCI,
@@ -73,9 +88,35 @@ static struct platform_device rtc_device = {
73 .resource = rtc_resources, 88 .resource = rtc_resources,
74}; 89};
75 90
91static struct resource sh7723_usb_host_resources[] = {
92 [0] = {
93 .name = "r8a66597_hcd",
94 .start = 0xa4d80000,
95 .end = 0xa4d800ff,
96 .flags = IORESOURCE_MEM,
97 },
98 [1] = {
99 .start = 65,
100 .end = 65,
101 .flags = IORESOURCE_IRQ,
102 },
103};
104
105static struct platform_device sh7723_usb_host_device = {
106 .name = "r8a66597_hcd",
107 .id = 0,
108 .dev = {
109 .dma_mask = NULL, /* not use dma */
110 .coherent_dma_mask = 0xffffffff,
111 },
112 .num_resources = ARRAY_SIZE(sh7723_usb_host_resources),
113 .resource = sh7723_usb_host_resources,
114};
115
76static struct platform_device *sh7723_devices[] __initdata = { 116static struct platform_device *sh7723_devices[] __initdata = {
77 &sci_device, 117 &sci_device,
78 &rtc_device, 118 &rtc_device,
119 &sh7723_usb_host_device,
79}; 120};
80 121
81static int __init sh7723_devices_setup(void) 122static int __init sh7723_devices_setup(void)
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
index ae2b22219f02..f189a559462b 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7763.c
@@ -291,8 +291,9 @@ static struct intc_sense_reg irq_sense_registers[] __initdata = {
291}; 291};
292 292
293static DECLARE_INTC_DESC(intc_irq_desc, "sh7763-irq", irq_vectors, 293static DECLARE_INTC_DESC(intc_irq_desc, "sh7763-irq", irq_vectors,
294 NULL, NULL, irq_mask_registers, irq_prio_registers, 294 NULL, irq_mask_registers, irq_prio_registers,
295 irq_sense_registers); 295 irq_sense_registers);
296
296 297
297/* External interrupt pins in IRL mode */ 298/* External interrupt pins in IRL mode */
298static struct intc_vect irl_vectors[] __initdata = { 299static struct intc_vect irl_vectors[] __initdata = {
@@ -324,10 +325,10 @@ static struct intc_mask_reg irl7654_mask_registers[] __initdata = {
324}; 325};
325 326
326static DECLARE_INTC_DESC(intc_irl7654_desc, "sh7763-irl7654", irl_vectors, 327static DECLARE_INTC_DESC(intc_irl7654_desc, "sh7763-irl7654", irl_vectors,
327 NULL, NULL, irl7654_mask_registers, NULL, NULL); 328 NULL, irl7654_mask_registers, NULL, NULL);
328 329
329static DECLARE_INTC_DESC(intc_irl3210_desc, "sh7763-irl3210", irl_vectors, 330static DECLARE_INTC_DESC(intc_irl3210_desc, "sh7763-irl3210", irl_vectors,
330 NULL, NULL, irl3210_mask_registers, NULL, NULL); 331 NULL, irl3210_mask_registers, NULL, NULL);
331 332
332#define INTC_ICR0 0xffd00000 333#define INTC_ICR0 0xffd00000
333#define INTC_INTMSK0 0xffd00044 334#define INTC_INTMSK0 0xffd00044
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index b4b36e0f2e89..183db26d01bf 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -121,8 +121,10 @@ static int stop_ptraced_child(int pid, int exitcode, int mustexit)
121{ 121{
122 int status, n, ret = 0; 122 int status, n, ret = 0;
123 123
124 if (ptrace(PTRACE_CONT, pid, 0, 0) < 0) 124 if (ptrace(PTRACE_CONT, pid, 0, 0) < 0) {
125 fatal_perror("stop_ptraced_child : ptrace failed"); 125 perror("stop_ptraced_child : ptrace failed");
126 return -1;
127 }
126 CATCH_EINTR(n = waitpid(pid, &status, 0)); 128 CATCH_EINTR(n = waitpid(pid, &status, 0));
127 if (!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { 129 if (!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) {
128 int exit_with = WEXITSTATUS(status); 130 int exit_with = WEXITSTATUS(status);
@@ -212,7 +214,7 @@ static void __init check_sysemu(void)
212 if (n < 0) 214 if (n < 0)
213 fatal_perror("check_sysemu : wait failed"); 215 fatal_perror("check_sysemu : wait failed");
214 if (!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP)) 216 if (!WIFSTOPPED(status) || (WSTOPSIG(status) != SIGTRAP))
215 fatal("check_sysemu : expected SIGTRAP, got status = %d", 217 fatal("check_sysemu : expected SIGTRAP, got status = %d\n",
216 status); 218 status);
217 219
218 if (ptrace(PTRACE_GETREGS, pid, 0, regs) < 0) 220 if (ptrace(PTRACE_GETREGS, pid, 0, regs) < 0)
@@ -254,9 +256,11 @@ static void __init check_sysemu(void)
254 256
255 if (WIFSTOPPED(status) && 257 if (WIFSTOPPED(status) &&
256 (WSTOPSIG(status) == (SIGTRAP|0x80))) { 258 (WSTOPSIG(status) == (SIGTRAP|0x80))) {
257 if (!count) 259 if (!count) {
258 fatal("check_ptrace : SYSEMU_SINGLESTEP " 260 non_fatal("check_ptrace : SYSEMU_SINGLESTEP "
259 "doesn't singlestep"); 261 "doesn't singlestep");
262 goto fail;
263 }
260 n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET, 264 n = ptrace(PTRACE_POKEUSR, pid, PT_SYSCALL_RET_OFFSET,
261 os_getpid()); 265 os_getpid());
262 if (n < 0) 266 if (n < 0)
@@ -266,9 +270,12 @@ static void __init check_sysemu(void)
266 } 270 }
267 else if (WIFSTOPPED(status) && (WSTOPSIG(status) == SIGTRAP)) 271 else if (WIFSTOPPED(status) && (WSTOPSIG(status) == SIGTRAP))
268 count++; 272 count++;
269 else 273 else {
270 fatal("check_ptrace : expected SIGTRAP or " 274 non_fatal("check_ptrace : expected SIGTRAP or "
271 "(SIGTRAP | 0x80), got status = %d", status); 275 "(SIGTRAP | 0x80), got status = %d\n",
276 status);
277 goto fail;
278 }
272 } 279 }
273 if (stop_ptraced_child(pid, 0, 0) < 0) 280 if (stop_ptraced_child(pid, 0, 0) < 0)
274 goto fail_stopped; 281 goto fail_stopped;
diff --git a/arch/um/os-Linux/sys-i386/registers.c b/arch/um/os-Linux/sys-i386/registers.c
index b487cbead1bd..229f7a53d8da 100644
--- a/arch/um/os-Linux/sys-i386/registers.c
+++ b/arch/um/os-Linux/sys-i386/registers.c
@@ -6,7 +6,7 @@
6 6
7#include <errno.h> 7#include <errno.h>
8#include <sys/ptrace.h> 8#include <sys/ptrace.h>
9#include <asm/user.h> 9#include <sys/user.h>
10#include "kern_constants.h" 10#include "kern_constants.h"
11#include "longjmp.h" 11#include "longjmp.h"
12#include "user.h" 12#include "user.h"
@@ -76,7 +76,7 @@ int put_fp_registers(int pid, unsigned long *regs)
76 76
77void arch_init_registers(int pid) 77void arch_init_registers(int pid)
78{ 78{
79 struct user_fxsr_struct fpx_regs; 79 struct user_fpxregs_struct fpx_regs;
80 int err; 80 int err;
81 81
82 err = ptrace(PTRACE_GETFPXREGS, pid, 0, &fpx_regs); 82 err = ptrace(PTRACE_GETFPXREGS, pid, 0, &fpx_regs);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 52e18e6d2ba0..e0edaaa6920a 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -383,6 +383,7 @@ config VMI
383config KVM_CLOCK 383config KVM_CLOCK
384 bool "KVM paravirtualized clock" 384 bool "KVM paravirtualized clock"
385 select PARAVIRT 385 select PARAVIRT
386 select PARAVIRT_CLOCK
386 depends on !(X86_VISWS || X86_VOYAGER) 387 depends on !(X86_VISWS || X86_VOYAGER)
387 help 388 help
388 Turning on this option will allow you to run a paravirtualized clock 389 Turning on this option will allow you to run a paravirtualized clock
@@ -410,6 +411,10 @@ config PARAVIRT
410 over full virtualization. However, when run without a hypervisor 411 over full virtualization. However, when run without a hypervisor
411 the kernel is theoretically slower and slightly larger. 412 the kernel is theoretically slower and slightly larger.
412 413
414config PARAVIRT_CLOCK
415 bool
416 default n
417
413endif 418endif
414 419
415config MEMTEST_BOOTPARAM 420config MEMTEST_BOOTPARAM
diff --git a/arch/x86/boot/a20.c b/arch/x86/boot/a20.c
index 90943f83e84d..e01aafd03bde 100644
--- a/arch/x86/boot/a20.c
+++ b/arch/x86/boot/a20.c
@@ -115,8 +115,6 @@ static void enable_a20_fast(void)
115 115
116int enable_a20(void) 116int enable_a20(void)
117{ 117{
118 int loops = A20_ENABLE_LOOPS;
119
120#if defined(CONFIG_X86_ELAN) 118#if defined(CONFIG_X86_ELAN)
121 /* Elan croaks if we try to touch the KBC */ 119 /* Elan croaks if we try to touch the KBC */
122 enable_a20_fast(); 120 enable_a20_fast();
@@ -128,6 +126,7 @@ int enable_a20(void)
128 enable_a20_kbc(); 126 enable_a20_kbc();
129 return 0; 127 return 0;
130#else 128#else
129 int loops = A20_ENABLE_LOOPS;
131 while (loops--) { 130 while (loops--) {
132 /* First, check to see if A20 is already enabled 131 /* First, check to see if A20 is already enabled
133 (legacy free, etc.) */ 132 (legacy free, etc.) */
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 5e618c3b4720..77807d4769c9 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -82,6 +82,7 @@ obj-$(CONFIG_VMI) += vmi_32.o vmiclock_32.o
82obj-$(CONFIG_KVM_GUEST) += kvm.o 82obj-$(CONFIG_KVM_GUEST) += kvm.o
83obj-$(CONFIG_KVM_CLOCK) += kvmclock.o 83obj-$(CONFIG_KVM_CLOCK) += kvmclock.o
84obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o 84obj-$(CONFIG_PARAVIRT) += paravirt.o paravirt_patch_$(BITS).o
85obj-$(CONFIG_PARAVIRT_CLOCK) += pvclock.o
85 86
86obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o 87obj-$(CONFIG_PCSPKR_PLATFORM) += pcspeaker.o
87 88
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 2a609dc3271c..c778e4fa55a2 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -248,6 +248,7 @@ ENTRY(resume_userspace)
248 DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt 248 DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt
249 # setting need_resched or sigpending 249 # setting need_resched or sigpending
250 # between sampling and the iret 250 # between sampling and the iret
251 TRACE_IRQS_OFF
251 movl TI_flags(%ebp), %ecx 252 movl TI_flags(%ebp), %ecx
252 andl $_TIF_WORK_MASK, %ecx # is there any work to be done on 253 andl $_TIF_WORK_MASK, %ecx # is there any work to be done on
253 # int/exception return? 254 # int/exception return?
diff --git a/arch/x86/kernel/geode_32.c b/arch/x86/kernel/geode_32.c
index e8edd63ab000..9b08e852fd1a 100644
--- a/arch/x86/kernel/geode_32.c
+++ b/arch/x86/kernel/geode_32.c
@@ -166,6 +166,8 @@ int geode_has_vsa2(void)
166 static int has_vsa2 = -1; 166 static int has_vsa2 = -1;
167 167
168 if (has_vsa2 == -1) { 168 if (has_vsa2 == -1) {
169 u16 val;
170
169 /* 171 /*
170 * The VSA has virtual registers that we can query for a 172 * The VSA has virtual registers that we can query for a
171 * signature. 173 * signature.
@@ -173,7 +175,8 @@ int geode_has_vsa2(void)
173 outw(VSA_VR_UNLOCK, VSA_VRC_INDEX); 175 outw(VSA_VR_UNLOCK, VSA_VRC_INDEX);
174 outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX); 176 outw(VSA_VR_SIGNATURE, VSA_VRC_INDEX);
175 177
176 has_vsa2 = (inw(VSA_VRC_DATA) == VSA_SIG); 178 val = inw(VSA_VRC_DATA);
179 has_vsa2 = (val == AMD_VSA_SIG || val == GSW_VSA_SIG);
177 } 180 }
178 181
179 return has_vsa2; 182 return has_vsa2;
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index b2cc73768a9d..f7357cc0162c 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -189,7 +189,7 @@ default_entry:
189 * this stage. 189 * this stage.
190 */ 190 */
191 191
192#define KPMDS ((0x100000000-__PAGE_OFFSET) >> 30) /* Number of kernel PMDs */ 192#define KPMDS (((-__PAGE_OFFSET) >> 30) & 3) /* Number of kernel PMDs */
193 193
194 xorl %ebx,%ebx /* %ebx is kept at zero */ 194 xorl %ebx,%ebx /* %ebx is kept at zero */
195 195
diff --git a/arch/x86/kernel/io_apic_32.c b/arch/x86/kernel/io_apic_32.c
index a40d54fc1fdd..4dc8600d9d20 100644
--- a/arch/x86/kernel/io_apic_32.c
+++ b/arch/x86/kernel/io_apic_32.c
@@ -2130,14 +2130,10 @@ static inline void __init check_timer(void)
2130{ 2130{
2131 int apic1, pin1, apic2, pin2; 2131 int apic1, pin1, apic2, pin2;
2132 int vector; 2132 int vector;
2133 unsigned int ver;
2134 unsigned long flags; 2133 unsigned long flags;
2135 2134
2136 local_irq_save(flags); 2135 local_irq_save(flags);
2137 2136
2138 ver = apic_read(APIC_LVR);
2139 ver = GET_APIC_VERSION(ver);
2140
2141 /* 2137 /*
2142 * get/set the timer IRQ vector: 2138 * get/set the timer IRQ vector:
2143 */ 2139 */
@@ -2150,15 +2146,11 @@ static inline void __init check_timer(void)
2150 * mode for the 8259A whenever interrupts are routed 2146 * mode for the 8259A whenever interrupts are routed
2151 * through I/O APICs. Also IRQ0 has to be enabled in 2147 * through I/O APICs. Also IRQ0 has to be enabled in
2152 * the 8259A which implies the virtual wire has to be 2148 * the 8259A which implies the virtual wire has to be
2153 * disabled in the local APIC. Finally timer interrupts 2149 * disabled in the local APIC.
2154 * need to be acknowledged manually in the 8259A for
2155 * timer_interrupt() and for the i82489DX when using
2156 * the NMI watchdog.
2157 */ 2150 */
2158 apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); 2151 apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
2159 init_8259A(1); 2152 init_8259A(1);
2160 timer_ack = !cpu_has_tsc; 2153 timer_ack = 1;
2161 timer_ack |= (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver));
2162 if (timer_over_8254 > 0) 2154 if (timer_over_8254 > 0)
2163 enable_8259A_irq(0); 2155 enable_8259A_irq(0);
2164 2156
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
index 08a30986d472..87edf1ceb1df 100644
--- a/arch/x86/kernel/kvmclock.c
+++ b/arch/x86/kernel/kvmclock.c
@@ -18,6 +18,7 @@
18 18
19#include <linux/clocksource.h> 19#include <linux/clocksource.h>
20#include <linux/kvm_para.h> 20#include <linux/kvm_para.h>
21#include <asm/pvclock.h>
21#include <asm/arch_hooks.h> 22#include <asm/arch_hooks.h>
22#include <asm/msr.h> 23#include <asm/msr.h>
23#include <asm/apic.h> 24#include <asm/apic.h>
@@ -36,18 +37,9 @@ static int parse_no_kvmclock(char *arg)
36early_param("no-kvmclock", parse_no_kvmclock); 37early_param("no-kvmclock", parse_no_kvmclock);
37 38
38/* The hypervisor will put information about time periodically here */ 39/* The hypervisor will put information about time periodically here */
39static DEFINE_PER_CPU_SHARED_ALIGNED(struct kvm_vcpu_time_info, hv_clock); 40static DEFINE_PER_CPU_SHARED_ALIGNED(struct pvclock_vcpu_time_info, hv_clock);
40#define get_clock(cpu, field) per_cpu(hv_clock, cpu).field 41static struct pvclock_wall_clock wall_clock;
41 42
42static inline u64 kvm_get_delta(u64 last_tsc)
43{
44 int cpu = smp_processor_id();
45 u64 delta = native_read_tsc() - last_tsc;
46 return (delta * get_clock(cpu, tsc_to_system_mul)) >> KVM_SCALE;
47}
48
49static struct kvm_wall_clock wall_clock;
50static cycle_t kvm_clock_read(void);
51/* 43/*
52 * The wallclock is the time of day when we booted. Since then, some time may 44 * The wallclock is the time of day when we booted. Since then, some time may
53 * have elapsed since the hypervisor wrote the data. So we try to account for 45 * have elapsed since the hypervisor wrote the data. So we try to account for
@@ -55,64 +47,37 @@ static cycle_t kvm_clock_read(void);
55 */ 47 */
56static unsigned long kvm_get_wallclock(void) 48static unsigned long kvm_get_wallclock(void)
57{ 49{
58 u32 wc_sec, wc_nsec; 50 struct pvclock_vcpu_time_info *vcpu_time;
59 u64 delta;
60 struct timespec ts; 51 struct timespec ts;
61 int version, nsec;
62 int low, high; 52 int low, high;
63 53
64 low = (int)__pa(&wall_clock); 54 low = (int)__pa(&wall_clock);
65 high = ((u64)__pa(&wall_clock) >> 32); 55 high = ((u64)__pa(&wall_clock) >> 32);
56 native_write_msr(MSR_KVM_WALL_CLOCK, low, high);
66 57
67 delta = kvm_clock_read(); 58 vcpu_time = &get_cpu_var(hv_clock);
59 pvclock_read_wallclock(&wall_clock, vcpu_time, &ts);
60 put_cpu_var(hv_clock);
68 61
69 native_write_msr(MSR_KVM_WALL_CLOCK, low, high); 62 return ts.tv_sec;
70 do {
71 version = wall_clock.wc_version;
72 rmb();
73 wc_sec = wall_clock.wc_sec;
74 wc_nsec = wall_clock.wc_nsec;
75 rmb();
76 } while ((wall_clock.wc_version != version) || (version & 1));
77
78 delta = kvm_clock_read() - delta;
79 delta += wc_nsec;
80 nsec = do_div(delta, NSEC_PER_SEC);
81 set_normalized_timespec(&ts, wc_sec + delta, nsec);
82 /*
83 * Of all mechanisms of time adjustment I've tested, this one
84 * was the champion!
85 */
86 return ts.tv_sec + 1;
87} 63}
88 64
89static int kvm_set_wallclock(unsigned long now) 65static int kvm_set_wallclock(unsigned long now)
90{ 66{
91 return 0; 67 return -1;
92} 68}
93 69
94/*
95 * This is our read_clock function. The host puts an tsc timestamp each time
96 * it updates a new time. Without the tsc adjustment, we can have a situation
97 * in which a vcpu starts to run earlier (smaller system_time), but probes
98 * time later (compared to another vcpu), leading to backwards time
99 */
100static cycle_t kvm_clock_read(void) 70static cycle_t kvm_clock_read(void)
101{ 71{
102 u64 last_tsc, now; 72 struct pvclock_vcpu_time_info *src;
103 int cpu; 73 cycle_t ret;
104 74
105 preempt_disable(); 75 src = &get_cpu_var(hv_clock);
106 cpu = smp_processor_id(); 76 ret = pvclock_clocksource_read(src);
107 77 put_cpu_var(hv_clock);
108 last_tsc = get_clock(cpu, tsc_timestamp); 78 return ret;
109 now = get_clock(cpu, system_time);
110
111 now += kvm_get_delta(last_tsc);
112 preempt_enable();
113
114 return now;
115} 79}
80
116static struct clocksource kvm_clock = { 81static struct clocksource kvm_clock = {
117 .name = "kvm-clock", 82 .name = "kvm-clock",
118 .read = kvm_clock_read, 83 .read = kvm_clock_read,
@@ -123,13 +88,14 @@ static struct clocksource kvm_clock = {
123 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 88 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
124}; 89};
125 90
126static int kvm_register_clock(void) 91static int kvm_register_clock(char *txt)
127{ 92{
128 int cpu = smp_processor_id(); 93 int cpu = smp_processor_id();
129 int low, high; 94 int low, high;
130 low = (int)__pa(&per_cpu(hv_clock, cpu)) | 1; 95 low = (int)__pa(&per_cpu(hv_clock, cpu)) | 1;
131 high = ((u64)__pa(&per_cpu(hv_clock, cpu)) >> 32); 96 high = ((u64)__pa(&per_cpu(hv_clock, cpu)) >> 32);
132 97 printk(KERN_INFO "kvm-clock: cpu %d, msr %x:%x, %s\n",
98 cpu, high, low, txt);
133 return native_write_msr_safe(MSR_KVM_SYSTEM_TIME, low, high); 99 return native_write_msr_safe(MSR_KVM_SYSTEM_TIME, low, high);
134} 100}
135 101
@@ -140,12 +106,20 @@ static void kvm_setup_secondary_clock(void)
140 * Now that the first cpu already had this clocksource initialized, 106 * Now that the first cpu already had this clocksource initialized,
141 * we shouldn't fail. 107 * we shouldn't fail.
142 */ 108 */
143 WARN_ON(kvm_register_clock()); 109 WARN_ON(kvm_register_clock("secondary cpu clock"));
144 /* ok, done with our trickery, call native */ 110 /* ok, done with our trickery, call native */
145 setup_secondary_APIC_clock(); 111 setup_secondary_APIC_clock();
146} 112}
147#endif 113#endif
148 114
115#ifdef CONFIG_SMP
116void __init kvm_smp_prepare_boot_cpu(void)
117{
118 WARN_ON(kvm_register_clock("primary cpu clock"));
119 native_smp_prepare_boot_cpu();
120}
121#endif
122
149/* 123/*
150 * After the clock is registered, the host will keep writing to the 124 * After the clock is registered, the host will keep writing to the
151 * registered memory location. If the guest happens to shutdown, this memory 125 * registered memory location. If the guest happens to shutdown, this memory
@@ -174,7 +148,7 @@ void __init kvmclock_init(void)
174 return; 148 return;
175 149
176 if (kvmclock && kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE)) { 150 if (kvmclock && kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE)) {
177 if (kvm_register_clock()) 151 if (kvm_register_clock("boot clock"))
178 return; 152 return;
179 pv_time_ops.get_wallclock = kvm_get_wallclock; 153 pv_time_ops.get_wallclock = kvm_get_wallclock;
180 pv_time_ops.set_wallclock = kvm_set_wallclock; 154 pv_time_ops.set_wallclock = kvm_set_wallclock;
@@ -182,6 +156,9 @@ void __init kvmclock_init(void)
182#ifdef CONFIG_X86_LOCAL_APIC 156#ifdef CONFIG_X86_LOCAL_APIC
183 pv_apic_ops.setup_secondary_clock = kvm_setup_secondary_clock; 157 pv_apic_ops.setup_secondary_clock = kvm_setup_secondary_clock;
184#endif 158#endif
159#ifdef CONFIG_SMP
160 smp_ops.smp_prepare_boot_cpu = kvm_smp_prepare_boot_cpu;
161#endif
185 machine_ops.shutdown = kvm_shutdown; 162 machine_ops.shutdown = kvm_shutdown;
186#ifdef CONFIG_KEXEC 163#ifdef CONFIG_KEXEC
187 machine_ops.crash_shutdown = kvm_crash_shutdown; 164 machine_ops.crash_shutdown = kvm_crash_shutdown;
diff --git a/arch/x86/kernel/mfgpt_32.c b/arch/x86/kernel/mfgpt_32.c
index 3cad17fe026b..07c0f828f488 100644
--- a/arch/x86/kernel/mfgpt_32.c
+++ b/arch/x86/kernel/mfgpt_32.c
@@ -155,6 +155,7 @@ int geode_mfgpt_toggle_event(int timer, int cmp, int event, int enable)
155 wrmsr(msr, value, dummy); 155 wrmsr(msr, value, dummy);
156 return 0; 156 return 0;
157} 157}
158EXPORT_SYMBOL_GPL(geode_mfgpt_toggle_event);
158 159
159int geode_mfgpt_set_irq(int timer, int cmp, int irq, int enable) 160int geode_mfgpt_set_irq(int timer, int cmp, int irq, int enable)
160{ 161{
@@ -222,6 +223,7 @@ int geode_mfgpt_alloc_timer(int timer, int domain)
222 /* No timers available - too bad */ 223 /* No timers available - too bad */
223 return -1; 224 return -1;
224} 225}
226EXPORT_SYMBOL_GPL(geode_mfgpt_alloc_timer);
225 227
226 228
227#ifdef CONFIG_GEODE_MFGPT_TIMER 229#ifdef CONFIG_GEODE_MFGPT_TIMER
diff --git a/arch/x86/kernel/nmi_32.c b/arch/x86/kernel/nmi_32.c
index 11b14bbaa61e..84160f74eeb0 100644
--- a/arch/x86/kernel/nmi_32.c
+++ b/arch/x86/kernel/nmi_32.c
@@ -26,7 +26,6 @@
26 26
27#include <asm/smp.h> 27#include <asm/smp.h>
28#include <asm/nmi.h> 28#include <asm/nmi.h>
29#include <asm/timer.h>
30 29
31#include "mach_traps.h" 30#include "mach_traps.h"
32 31
@@ -82,7 +81,7 @@ int __init check_nmi_watchdog(void)
82 81
83 prev_nmi_count = kmalloc(NR_CPUS * sizeof(int), GFP_KERNEL); 82 prev_nmi_count = kmalloc(NR_CPUS * sizeof(int), GFP_KERNEL);
84 if (!prev_nmi_count) 83 if (!prev_nmi_count)
85 goto error; 84 return -1;
86 85
87 printk(KERN_INFO "Testing NMI watchdog ... "); 86 printk(KERN_INFO "Testing NMI watchdog ... ");
88 87
@@ -119,7 +118,7 @@ int __init check_nmi_watchdog(void)
119 if (!atomic_read(&nmi_active)) { 118 if (!atomic_read(&nmi_active)) {
120 kfree(prev_nmi_count); 119 kfree(prev_nmi_count);
121 atomic_set(&nmi_active, -1); 120 atomic_set(&nmi_active, -1);
122 goto error; 121 return -1;
123 } 122 }
124 printk("OK.\n"); 123 printk("OK.\n");
125 124
@@ -130,10 +129,6 @@ int __init check_nmi_watchdog(void)
130 129
131 kfree(prev_nmi_count); 130 kfree(prev_nmi_count);
132 return 0; 131 return 0;
133error:
134 timer_ack = !cpu_has_tsc;
135
136 return -1;
137} 132}
138 133
139static int __init setup_nmi_watchdog(char *str) 134static int __init setup_nmi_watchdog(char *str)
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index c5ef1af8e79d..dc00a1331ace 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -378,6 +378,7 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
378 struct page *page; 378 struct page *page;
379 unsigned long dma_mask = 0; 379 unsigned long dma_mask = 0;
380 dma_addr_t bus; 380 dma_addr_t bus;
381 int noretry = 0;
381 382
382 /* ignore region specifiers */ 383 /* ignore region specifiers */
383 gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32); 384 gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);
@@ -397,20 +398,25 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
397 if (dev->dma_mask == NULL) 398 if (dev->dma_mask == NULL)
398 return NULL; 399 return NULL;
399 400
400 /* Don't invoke OOM killer */ 401 /* Don't invoke OOM killer or retry in lower 16MB DMA zone */
401 gfp |= __GFP_NORETRY; 402 if (gfp & __GFP_DMA)
403 noretry = 1;
402 404
403#ifdef CONFIG_X86_64 405#ifdef CONFIG_X86_64
404 /* Why <=? Even when the mask is smaller than 4GB it is often 406 /* Why <=? Even when the mask is smaller than 4GB it is often
405 larger than 16MB and in this case we have a chance of 407 larger than 16MB and in this case we have a chance of
406 finding fitting memory in the next higher zone first. If 408 finding fitting memory in the next higher zone first. If
407 not retry with true GFP_DMA. -AK */ 409 not retry with true GFP_DMA. -AK */
408 if (dma_mask <= DMA_32BIT_MASK && !(gfp & GFP_DMA)) 410 if (dma_mask <= DMA_32BIT_MASK && !(gfp & GFP_DMA)) {
409 gfp |= GFP_DMA32; 411 gfp |= GFP_DMA32;
412 if (dma_mask < DMA_32BIT_MASK)
413 noretry = 1;
414 }
410#endif 415#endif
411 416
412 again: 417 again:
413 page = dma_alloc_pages(dev, gfp, get_order(size)); 418 page = dma_alloc_pages(dev,
419 noretry ? gfp | __GFP_NORETRY : gfp, get_order(size));
414 if (page == NULL) 420 if (page == NULL)
415 return NULL; 421 return NULL;
416 422
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 6d5483356e74..e2db9ac5c61c 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -333,6 +333,7 @@ void flush_thread(void)
333 /* 333 /*
334 * Forget coprocessor state.. 334 * Forget coprocessor state..
335 */ 335 */
336 tsk->fpu_counter = 0;
336 clear_fpu(tsk); 337 clear_fpu(tsk);
337 clear_used_math(); 338 clear_used_math();
338} 339}
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index ac54ff56df80..c6eb5c91e5f6 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -294,6 +294,7 @@ void flush_thread(void)
294 /* 294 /*
295 * Forget coprocessor state.. 295 * Forget coprocessor state..
296 */ 296 */
297 tsk->fpu_counter = 0;
297 clear_fpu(tsk); 298 clear_fpu(tsk);
298 clear_used_math(); 299 clear_used_math();
299} 300}
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
new file mode 100644
index 000000000000..05fbe9a0325a
--- /dev/null
+++ b/arch/x86/kernel/pvclock.c
@@ -0,0 +1,141 @@
1/* paravirtual clock -- common code used by kvm/xen
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2 of the License, or
6 (at your option) any later version.
7
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
12
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software
15 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16*/
17
18#include <linux/kernel.h>
19#include <linux/percpu.h>
20#include <asm/pvclock.h>
21
22/*
23 * These are perodically updated
24 * xen: magic shared_info page
25 * kvm: gpa registered via msr
26 * and then copied here.
27 */
28struct pvclock_shadow_time {
29 u64 tsc_timestamp; /* TSC at last update of time vals. */
30 u64 system_timestamp; /* Time, in nanosecs, since boot. */
31 u32 tsc_to_nsec_mul;
32 int tsc_shift;
33 u32 version;
34};
35
36/*
37 * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction,
38 * yielding a 64-bit result.
39 */
40static inline u64 scale_delta(u64 delta, u32 mul_frac, int shift)
41{
42 u64 product;
43#ifdef __i386__
44 u32 tmp1, tmp2;
45#endif
46
47 if (shift < 0)
48 delta >>= -shift;
49 else
50 delta <<= shift;
51
52#ifdef __i386__
53 __asm__ (
54 "mul %5 ; "
55 "mov %4,%%eax ; "
56 "mov %%edx,%4 ; "
57 "mul %5 ; "
58 "xor %5,%5 ; "
59 "add %4,%%eax ; "
60 "adc %5,%%edx ; "
61 : "=A" (product), "=r" (tmp1), "=r" (tmp2)
62 : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) );
63#elif __x86_64__
64 __asm__ (
65 "mul %%rdx ; shrd $32,%%rdx,%%rax"
66 : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) );
67#else
68#error implement me!
69#endif
70
71 return product;
72}
73
74static u64 pvclock_get_nsec_offset(struct pvclock_shadow_time *shadow)
75{
76 u64 delta = native_read_tsc() - shadow->tsc_timestamp;
77 return scale_delta(delta, shadow->tsc_to_nsec_mul, shadow->tsc_shift);
78}
79
80/*
81 * Reads a consistent set of time-base values from hypervisor,
82 * into a shadow data area.
83 */
84static unsigned pvclock_get_time_values(struct pvclock_shadow_time *dst,
85 struct pvclock_vcpu_time_info *src)
86{
87 do {
88 dst->version = src->version;
89 rmb(); /* fetch version before data */
90 dst->tsc_timestamp = src->tsc_timestamp;
91 dst->system_timestamp = src->system_time;
92 dst->tsc_to_nsec_mul = src->tsc_to_system_mul;
93 dst->tsc_shift = src->tsc_shift;
94 rmb(); /* test version after fetching data */
95 } while ((src->version & 1) || (dst->version != src->version));
96
97 return dst->version;
98}
99
100cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
101{
102 struct pvclock_shadow_time shadow;
103 unsigned version;
104 cycle_t ret, offset;
105
106 do {
107 version = pvclock_get_time_values(&shadow, src);
108 barrier();
109 offset = pvclock_get_nsec_offset(&shadow);
110 ret = shadow.system_timestamp + offset;
111 barrier();
112 } while (version != src->version);
113
114 return ret;
115}
116
117void pvclock_read_wallclock(struct pvclock_wall_clock *wall_clock,
118 struct pvclock_vcpu_time_info *vcpu_time,
119 struct timespec *ts)
120{
121 u32 version;
122 u64 delta;
123 struct timespec now;
124
125 /* get wallclock at system boot */
126 do {
127 version = wall_clock->version;
128 rmb(); /* fetch version before time */
129 now.tv_sec = wall_clock->sec;
130 now.tv_nsec = wall_clock->nsec;
131 rmb(); /* fetch time before checking version */
132 } while ((wall_clock->version & 1) || (version != wall_clock->version));
133
134 delta = pvclock_clocksource_read(vcpu_time); /* time since system boot */
135 delta += now.tv_sec * (u64)NSEC_PER_SEC + now.tv_nsec;
136
137 now.tv_nsec = do_div(delta, NSEC_PER_SEC);
138 now.tv_sec = delta;
139
140 set_normalized_timespec(ts, now.tv_sec, now.tv_nsec);
141}
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index 9615eee9b775..05191bbc68b8 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -4,6 +4,8 @@
4#include <linux/acpi.h> 4#include <linux/acpi.h>
5#include <linux/bcd.h> 5#include <linux/bcd.h>
6#include <linux/mc146818rtc.h> 6#include <linux/mc146818rtc.h>
7#include <linux/platform_device.h>
8#include <linux/pnp.h>
7 9
8#include <asm/time.h> 10#include <asm/time.h>
9#include <asm/vsyscall.h> 11#include <asm/vsyscall.h>
@@ -197,3 +199,35 @@ unsigned long long native_read_tsc(void)
197} 199}
198EXPORT_SYMBOL(native_read_tsc); 200EXPORT_SYMBOL(native_read_tsc);
199 201
202
203static struct resource rtc_resources[] = {
204 [0] = {
205 .start = RTC_PORT(0),
206 .end = RTC_PORT(1),
207 .flags = IORESOURCE_IO,
208 },
209 [1] = {
210 .start = RTC_IRQ,
211 .end = RTC_IRQ,
212 .flags = IORESOURCE_IRQ,
213 }
214};
215
216static struct platform_device rtc_device = {
217 .name = "rtc_cmos",
218 .id = -1,
219 .resource = rtc_resources,
220 .num_resources = ARRAY_SIZE(rtc_resources),
221};
222
223static __init int add_rtc_cmos(void)
224{
225#ifdef CONFIG_PNP
226 if (!pnp_platform_devices)
227 platform_device_register(&rtc_device);
228#else
229 platform_device_register(&rtc_device);
230#endif /* CONFIG_PNP */
231 return 0;
232}
233device_initcall(add_rtc_cmos);
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index 2c5f8b213e86..5a2f8e063887 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -532,10 +532,16 @@ static void __init reserve_crashkernel(void)
532 (unsigned long)(crash_size >> 20), 532 (unsigned long)(crash_size >> 20),
533 (unsigned long)(crash_base >> 20), 533 (unsigned long)(crash_base >> 20),
534 (unsigned long)(total_mem >> 20)); 534 (unsigned long)(total_mem >> 20));
535
536 if (reserve_bootmem(crash_base, crash_size,
537 BOOTMEM_EXCLUSIVE) < 0) {
538 printk(KERN_INFO "crashkernel reservation "
539 "failed - memory is in use\n");
540 return;
541 }
542
535 crashk_res.start = crash_base; 543 crashk_res.start = crash_base;
536 crashk_res.end = crash_base + crash_size - 1; 544 crashk_res.end = crash_base + crash_size - 1;
537 reserve_bootmem(crash_base, crash_size,
538 BOOTMEM_DEFAULT);
539 } else 545 } else
540 printk(KERN_INFO "crashkernel reservation failed - " 546 printk(KERN_INFO "crashkernel reservation failed - "
541 "you have to specify a base address\n"); 547 "you have to specify a base address\n");
diff --git a/arch/x86/kernel/traps_32.c b/arch/x86/kernel/traps_32.c
index bde6f63e15d5..08d752de4eee 100644
--- a/arch/x86/kernel/traps_32.c
+++ b/arch/x86/kernel/traps_32.c
@@ -544,6 +544,7 @@ vm86_trap:
544#define DO_ERROR(trapnr, signr, str, name) \ 544#define DO_ERROR(trapnr, signr, str, name) \
545void do_##name(struct pt_regs *regs, long error_code) \ 545void do_##name(struct pt_regs *regs, long error_code) \
546{ \ 546{ \
547 trace_hardirqs_fixup(); \
547 if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \ 548 if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \
548 == NOTIFY_STOP) \ 549 == NOTIFY_STOP) \
549 return; \ 550 return; \
diff --git a/arch/x86/kernel/tsc_32.c b/arch/x86/kernel/tsc_32.c
index 068759db63dd..65b70637ad97 100644
--- a/arch/x86/kernel/tsc_32.c
+++ b/arch/x86/kernel/tsc_32.c
@@ -14,7 +14,10 @@
14 14
15#include "mach_timer.h" 15#include "mach_timer.h"
16 16
17static int tsc_disabled; 17/* native_sched_clock() is called before tsc_init(), so
18 we must start with the TSC soft disabled to prevent
19 erroneous rdtsc usage on !cpu_has_tsc processors */
20static int tsc_disabled = -1;
18 21
19/* 22/*
20 * On some systems the TSC frequency does not 23 * On some systems the TSC frequency does not
@@ -402,25 +405,20 @@ void __init tsc_init(void)
402{ 405{
403 int cpu; 406 int cpu;
404 407
405 if (!cpu_has_tsc || tsc_disabled) { 408 if (!cpu_has_tsc || tsc_disabled > 0)
406 /* Disable the TSC in case of !cpu_has_tsc */
407 tsc_disabled = 1;
408 return; 409 return;
409 }
410 410
411 cpu_khz = calculate_cpu_khz(); 411 cpu_khz = calculate_cpu_khz();
412 tsc_khz = cpu_khz; 412 tsc_khz = cpu_khz;
413 413
414 if (!cpu_khz) { 414 if (!cpu_khz) {
415 mark_tsc_unstable("could not calculate TSC khz"); 415 mark_tsc_unstable("could not calculate TSC khz");
416 /*
417 * We need to disable the TSC completely in this case
418 * to prevent sched_clock() from using it.
419 */
420 tsc_disabled = 1;
421 return; 416 return;
422 } 417 }
423 418
419 /* now allow native_sched_clock() to use rdtsc */
420 tsc_disabled = 0;
421
424 printk("Detected %lu.%03lu MHz processor.\n", 422 printk("Detected %lu.%03lu MHz processor.\n",
425 (unsigned long)cpu_khz / 1000, 423 (unsigned long)cpu_khz / 1000,
426 (unsigned long)cpu_khz % 1000); 424 (unsigned long)cpu_khz % 1000);
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c
index 7c077a9d9777..3829aa7b663f 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -200,10 +200,12 @@ int __pit_timer_fn(struct kvm_kpit_state *ps)
200 200
201 atomic_inc(&pt->pending); 201 atomic_inc(&pt->pending);
202 smp_mb__after_atomic_inc(); 202 smp_mb__after_atomic_inc();
203 /* FIXME: handle case where the guest is in guest mode */ 203 if (vcpu0) {
204 if (vcpu0 && waitqueue_active(&vcpu0->wq)) { 204 set_bit(KVM_REQ_PENDING_TIMER, &vcpu0->requests);
205 vcpu0->arch.mp_state = KVM_MP_STATE_RUNNABLE; 205 if (waitqueue_active(&vcpu0->wq)) {
206 wake_up_interruptible(&vcpu0->wq); 206 vcpu0->arch.mp_state = KVM_MP_STATE_RUNNABLE;
207 wake_up_interruptible(&vcpu0->wq);
208 }
207 } 209 }
208 210
209 pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period); 211 pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period);
@@ -237,6 +239,19 @@ static enum hrtimer_restart pit_timer_fn(struct hrtimer *data)
237 return HRTIMER_NORESTART; 239 return HRTIMER_NORESTART;
238} 240}
239 241
242void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu)
243{
244 struct kvm_pit *pit = vcpu->kvm->arch.vpit;
245 struct hrtimer *timer;
246
247 if (vcpu->vcpu_id != 0 || !pit)
248 return;
249
250 timer = &pit->pit_state.pit_timer.timer;
251 if (hrtimer_cancel(timer))
252 hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS);
253}
254
240static void destroy_pit_timer(struct kvm_kpit_timer *pt) 255static void destroy_pit_timer(struct kvm_kpit_timer *pt)
241{ 256{
242 pr_debug("pit: execute del timer!\n"); 257 pr_debug("pit: execute del timer!\n");
diff --git a/arch/x86/kvm/irq.c b/arch/x86/kvm/irq.c
index ce1f583459b1..76d736b5f664 100644
--- a/arch/x86/kvm/irq.c
+++ b/arch/x86/kvm/irq.c
@@ -94,3 +94,9 @@ void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec)
94 /* TODO: PIT, RTC etc. */ 94 /* TODO: PIT, RTC etc. */
95} 95}
96EXPORT_SYMBOL_GPL(kvm_timer_intr_post); 96EXPORT_SYMBOL_GPL(kvm_timer_intr_post);
97
98void __kvm_migrate_timers(struct kvm_vcpu *vcpu)
99{
100 __kvm_migrate_apic_timer(vcpu);
101 __kvm_migrate_pit_timer(vcpu);
102}
diff --git a/arch/x86/kvm/irq.h b/arch/x86/kvm/irq.h
index 1802134b836f..2a15be2275c0 100644
--- a/arch/x86/kvm/irq.h
+++ b/arch/x86/kvm/irq.h
@@ -84,6 +84,8 @@ void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec);
84void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu); 84void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu);
85void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu); 85void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu);
86void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu); 86void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu);
87void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu);
88void __kvm_migrate_timers(struct kvm_vcpu *vcpu);
87 89
88int pit_has_pending_timer(struct kvm_vcpu *vcpu); 90int pit_has_pending_timer(struct kvm_vcpu *vcpu);
89int apic_has_pending_timer(struct kvm_vcpu *vcpu); 91int apic_has_pending_timer(struct kvm_vcpu *vcpu);
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index c297c50eba63..ebc03f5ae162 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -940,6 +940,7 @@ static int __apic_timer_fn(struct kvm_lapic *apic)
940 wait_queue_head_t *q = &apic->vcpu->wq; 940 wait_queue_head_t *q = &apic->vcpu->wq;
941 941
942 atomic_inc(&apic->timer.pending); 942 atomic_inc(&apic->timer.pending);
943 set_bit(KVM_REQ_PENDING_TIMER, &apic->vcpu->requests);
943 if (waitqueue_active(q)) { 944 if (waitqueue_active(q)) {
944 apic->vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; 945 apic->vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE;
945 wake_up_interruptible(q); 946 wake_up_interruptible(q);
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 7246b60afb96..7e7c3969f7a2 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -640,6 +640,7 @@ static void rmap_write_protect(struct kvm *kvm, u64 gfn)
640 rmap_remove(kvm, spte); 640 rmap_remove(kvm, spte);
641 --kvm->stat.lpages; 641 --kvm->stat.lpages;
642 set_shadow_pte(spte, shadow_trap_nonpresent_pte); 642 set_shadow_pte(spte, shadow_trap_nonpresent_pte);
643 spte = NULL;
643 write_protected = 1; 644 write_protected = 1;
644 } 645 }
645 spte = rmap_next(kvm, rmapp, spte); 646 spte = rmap_next(kvm, rmapp, spte);
@@ -658,7 +659,7 @@ static int is_empty_shadow_page(u64 *spt)
658 u64 *end; 659 u64 *end;
659 660
660 for (pos = spt, end = pos + PAGE_SIZE / sizeof(u64); pos != end; pos++) 661 for (pos = spt, end = pos + PAGE_SIZE / sizeof(u64); pos != end; pos++)
661 if (*pos != shadow_trap_nonpresent_pte) { 662 if (is_shadow_present_pte(*pos)) {
662 printk(KERN_ERR "%s: %p %llx\n", __func__, 663 printk(KERN_ERR "%s: %p %llx\n", __func__,
663 pos, *pos); 664 pos, *pos);
664 return 0; 665 return 0;
@@ -1082,10 +1083,6 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
1082 struct kvm_mmu_page *shadow; 1083 struct kvm_mmu_page *shadow;
1083 1084
1084 spte |= PT_WRITABLE_MASK; 1085 spte |= PT_WRITABLE_MASK;
1085 if (user_fault) {
1086 mmu_unshadow(vcpu->kvm, gfn);
1087 goto unshadowed;
1088 }
1089 1086
1090 shadow = kvm_mmu_lookup_page(vcpu->kvm, gfn); 1087 shadow = kvm_mmu_lookup_page(vcpu->kvm, gfn);
1091 if (shadow || 1088 if (shadow ||
@@ -1102,8 +1099,6 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte,
1102 } 1099 }
1103 } 1100 }
1104 1101
1105unshadowed:
1106
1107 if (pte_access & ACC_WRITE_MASK) 1102 if (pte_access & ACC_WRITE_MASK)
1108 mark_page_dirty(vcpu->kvm, gfn); 1103 mark_page_dirty(vcpu->kvm, gfn);
1109 1104
@@ -1580,11 +1575,13 @@ static void mmu_pte_write_new_pte(struct kvm_vcpu *vcpu,
1580 u64 *spte, 1575 u64 *spte,
1581 const void *new) 1576 const void *new)
1582{ 1577{
1583 if ((sp->role.level != PT_PAGE_TABLE_LEVEL) 1578 if (sp->role.level != PT_PAGE_TABLE_LEVEL) {
1584 && !vcpu->arch.update_pte.largepage) { 1579 if (!vcpu->arch.update_pte.largepage ||
1585 ++vcpu->kvm->stat.mmu_pde_zapped; 1580 sp->role.glevels == PT32_ROOT_LEVEL) {
1586 return; 1581 ++vcpu->kvm->stat.mmu_pde_zapped;
1587 } 1582 return;
1583 }
1584 }
1588 1585
1589 ++vcpu->kvm->stat.mmu_pte_updated; 1586 ++vcpu->kvm->stat.mmu_pte_updated;
1590 if (sp->role.glevels == PT32_ROOT_LEVEL) 1587 if (sp->role.glevels == PT32_ROOT_LEVEL)
@@ -1858,6 +1855,7 @@ static void free_mmu_pages(struct kvm_vcpu *vcpu)
1858 sp = container_of(vcpu->kvm->arch.active_mmu_pages.next, 1855 sp = container_of(vcpu->kvm->arch.active_mmu_pages.next,
1859 struct kvm_mmu_page, link); 1856 struct kvm_mmu_page, link);
1860 kvm_mmu_zap_page(vcpu->kvm, sp); 1857 kvm_mmu_zap_page(vcpu->kvm, sp);
1858 cond_resched();
1861 } 1859 }
1862 free_page((unsigned long)vcpu->arch.mmu.pae_root); 1860 free_page((unsigned long)vcpu->arch.mmu.pae_root);
1863} 1861}
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index 156fe10288ae..934c7b619396 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -418,7 +418,7 @@ static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr,
418 418
419 /* mmio */ 419 /* mmio */
420 if (is_error_pfn(pfn)) { 420 if (is_error_pfn(pfn)) {
421 pgprintk("gfn %x is mmio\n", walker.gfn); 421 pgprintk("gfn %lx is mmio\n", walker.gfn);
422 kvm_release_pfn_clean(pfn); 422 kvm_release_pfn_clean(pfn);
423 return 1; 423 return 1;
424 } 424 }
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index ab22615eee89..6b0d5fa5bab3 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -688,7 +688,7 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
688 delta = vcpu->arch.host_tsc - tsc_this; 688 delta = vcpu->arch.host_tsc - tsc_this;
689 svm->vmcb->control.tsc_offset += delta; 689 svm->vmcb->control.tsc_offset += delta;
690 vcpu->cpu = cpu; 690 vcpu->cpu = cpu;
691 kvm_migrate_apic_timer(vcpu); 691 kvm_migrate_timers(vcpu);
692 } 692 }
693 693
694 for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++) 694 for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++)
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index bfe4db11989c..540e95179074 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -566,7 +566,7 @@ static void vmx_save_host_state(struct kvm_vcpu *vcpu)
566 load_transition_efer(vmx); 566 load_transition_efer(vmx);
567} 567}
568 568
569static void vmx_load_host_state(struct vcpu_vmx *vmx) 569static void __vmx_load_host_state(struct vcpu_vmx *vmx)
570{ 570{
571 unsigned long flags; 571 unsigned long flags;
572 572
@@ -596,6 +596,13 @@ static void vmx_load_host_state(struct vcpu_vmx *vmx)
596 reload_host_efer(vmx); 596 reload_host_efer(vmx);
597} 597}
598 598
599static void vmx_load_host_state(struct vcpu_vmx *vmx)
600{
601 preempt_disable();
602 __vmx_load_host_state(vmx);
603 preempt_enable();
604}
605
599/* 606/*
600 * Switches to specified vcpu, until a matching vcpu_put(), but assumes 607 * Switches to specified vcpu, until a matching vcpu_put(), but assumes
601 * vcpu mutex is already taken. 608 * vcpu mutex is already taken.
@@ -608,7 +615,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
608 615
609 if (vcpu->cpu != cpu) { 616 if (vcpu->cpu != cpu) {
610 vcpu_clear(vmx); 617 vcpu_clear(vmx);
611 kvm_migrate_apic_timer(vcpu); 618 kvm_migrate_timers(vcpu);
612 vpid_sync_vcpu_all(vmx); 619 vpid_sync_vcpu_all(vmx);
613 } 620 }
614 621
@@ -654,7 +661,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
654 661
655static void vmx_vcpu_put(struct kvm_vcpu *vcpu) 662static void vmx_vcpu_put(struct kvm_vcpu *vcpu)
656{ 663{
657 vmx_load_host_state(to_vmx(vcpu)); 664 __vmx_load_host_state(to_vmx(vcpu));
658} 665}
659 666
660static void vmx_fpu_activate(struct kvm_vcpu *vcpu) 667static void vmx_fpu_activate(struct kvm_vcpu *vcpu)
@@ -884,11 +891,8 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data)
884 switch (msr_index) { 891 switch (msr_index) {
885#ifdef CONFIG_X86_64 892#ifdef CONFIG_X86_64
886 case MSR_EFER: 893 case MSR_EFER:
894 vmx_load_host_state(vmx);
887 ret = kvm_set_msr_common(vcpu, msr_index, data); 895 ret = kvm_set_msr_common(vcpu, msr_index, data);
888 if (vmx->host_state.loaded) {
889 reload_host_efer(vmx);
890 load_transition_efer(vmx);
891 }
892 break; 896 break;
893 case MSR_FS_BASE: 897 case MSR_FS_BASE:
894 vmcs_writel(GUEST_FS_BASE, data); 898 vmcs_writel(GUEST_FS_BASE, data);
@@ -910,11 +914,10 @@ static int vmx_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data)
910 guest_write_tsc(data); 914 guest_write_tsc(data);
911 break; 915 break;
912 default: 916 default:
917 vmx_load_host_state(vmx);
913 msr = find_msr_entry(vmx, msr_index); 918 msr = find_msr_entry(vmx, msr_index);
914 if (msr) { 919 if (msr) {
915 msr->data = data; 920 msr->data = data;
916 if (vmx->host_state.loaded)
917 load_msrs(vmx->guest_msrs, vmx->save_nmsrs);
918 break; 921 break;
919 } 922 }
920 ret = kvm_set_msr_common(vcpu, msr_index, data); 923 ret = kvm_set_msr_common(vcpu, msr_index, data);
@@ -1036,6 +1039,7 @@ static void hardware_enable(void *garbage)
1036static void hardware_disable(void *garbage) 1039static void hardware_disable(void *garbage)
1037{ 1040{
1038 asm volatile (ASM_VMX_VMXOFF : : : "cc"); 1041 asm volatile (ASM_VMX_VMXOFF : : : "cc");
1042 write_cr4(read_cr4() & ~X86_CR4_VMXE);
1039} 1043}
1040 1044
1041static __init int adjust_vmx_controls(u32 ctl_min, u32 ctl_opt, 1045static __init int adjust_vmx_controls(u32 ctl_min, u32 ctl_opt,
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 21338bdb28ff..63a77caa59f1 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -492,8 +492,8 @@ static int do_set_msr(struct kvm_vcpu *vcpu, unsigned index, u64 *data)
492static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock) 492static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock)
493{ 493{
494 static int version; 494 static int version;
495 struct kvm_wall_clock wc; 495 struct pvclock_wall_clock wc;
496 struct timespec wc_ts; 496 struct timespec now, sys, boot;
497 497
498 if (!wall_clock) 498 if (!wall_clock)
499 return; 499 return;
@@ -502,10 +502,19 @@ static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock)
502 502
503 kvm_write_guest(kvm, wall_clock, &version, sizeof(version)); 503 kvm_write_guest(kvm, wall_clock, &version, sizeof(version));
504 504
505 wc_ts = current_kernel_time(); 505 /*
506 wc.wc_sec = wc_ts.tv_sec; 506 * The guest calculates current wall clock time by adding
507 wc.wc_nsec = wc_ts.tv_nsec; 507 * system time (updated by kvm_write_guest_time below) to the
508 wc.wc_version = version; 508 * wall clock specified here. guest system time equals host
509 * system time for us, thus we must fill in host boot time here.
510 */
511 now = current_kernel_time();
512 ktime_get_ts(&sys);
513 boot = ns_to_timespec(timespec_to_ns(&now) - timespec_to_ns(&sys));
514
515 wc.sec = boot.tv_sec;
516 wc.nsec = boot.tv_nsec;
517 wc.version = version;
509 518
510 kvm_write_guest(kvm, wall_clock, &wc, sizeof(wc)); 519 kvm_write_guest(kvm, wall_clock, &wc, sizeof(wc));
511 520
@@ -513,6 +522,45 @@ static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock)
513 kvm_write_guest(kvm, wall_clock, &version, sizeof(version)); 522 kvm_write_guest(kvm, wall_clock, &version, sizeof(version));
514} 523}
515 524
525static uint32_t div_frac(uint32_t dividend, uint32_t divisor)
526{
527 uint32_t quotient, remainder;
528
529 /* Don't try to replace with do_div(), this one calculates
530 * "(dividend << 32) / divisor" */
531 __asm__ ( "divl %4"
532 : "=a" (quotient), "=d" (remainder)
533 : "0" (0), "1" (dividend), "r" (divisor) );
534 return quotient;
535}
536
537static void kvm_set_time_scale(uint32_t tsc_khz, struct pvclock_vcpu_time_info *hv_clock)
538{
539 uint64_t nsecs = 1000000000LL;
540 int32_t shift = 0;
541 uint64_t tps64;
542 uint32_t tps32;
543
544 tps64 = tsc_khz * 1000LL;
545 while (tps64 > nsecs*2) {
546 tps64 >>= 1;
547 shift--;
548 }
549
550 tps32 = (uint32_t)tps64;
551 while (tps32 <= (uint32_t)nsecs) {
552 tps32 <<= 1;
553 shift++;
554 }
555
556 hv_clock->tsc_shift = shift;
557 hv_clock->tsc_to_system_mul = div_frac(nsecs, tps32);
558
559 pr_debug("%s: tsc_khz %u, tsc_shift %d, tsc_mul %u\n",
560 __FUNCTION__, tsc_khz, hv_clock->tsc_shift,
561 hv_clock->tsc_to_system_mul);
562}
563
516static void kvm_write_guest_time(struct kvm_vcpu *v) 564static void kvm_write_guest_time(struct kvm_vcpu *v)
517{ 565{
518 struct timespec ts; 566 struct timespec ts;
@@ -523,6 +571,11 @@ static void kvm_write_guest_time(struct kvm_vcpu *v)
523 if ((!vcpu->time_page)) 571 if ((!vcpu->time_page))
524 return; 572 return;
525 573
574 if (unlikely(vcpu->hv_clock_tsc_khz != tsc_khz)) {
575 kvm_set_time_scale(tsc_khz, &vcpu->hv_clock);
576 vcpu->hv_clock_tsc_khz = tsc_khz;
577 }
578
526 /* Keep irq disabled to prevent changes to the clock */ 579 /* Keep irq disabled to prevent changes to the clock */
527 local_irq_save(flags); 580 local_irq_save(flags);
528 kvm_get_msr(v, MSR_IA32_TIME_STAMP_COUNTER, 581 kvm_get_msr(v, MSR_IA32_TIME_STAMP_COUNTER,
@@ -537,14 +590,14 @@ static void kvm_write_guest_time(struct kvm_vcpu *v)
537 /* 590 /*
538 * The interface expects us to write an even number signaling that the 591 * The interface expects us to write an even number signaling that the
539 * update is finished. Since the guest won't see the intermediate 592 * update is finished. Since the guest won't see the intermediate
540 * state, we just write "2" at the end 593 * state, we just increase by 2 at the end.
541 */ 594 */
542 vcpu->hv_clock.version = 2; 595 vcpu->hv_clock.version += 2;
543 596
544 shared_kaddr = kmap_atomic(vcpu->time_page, KM_USER0); 597 shared_kaddr = kmap_atomic(vcpu->time_page, KM_USER0);
545 598
546 memcpy(shared_kaddr + vcpu->time_offset, &vcpu->hv_clock, 599 memcpy(shared_kaddr + vcpu->time_offset, &vcpu->hv_clock,
547 sizeof(vcpu->hv_clock)); 600 sizeof(vcpu->hv_clock));
548 601
549 kunmap_atomic(shared_kaddr, KM_USER0); 602 kunmap_atomic(shared_kaddr, KM_USER0);
550 603
@@ -599,10 +652,6 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
599 /* ...but clean it before doing the actual write */ 652 /* ...but clean it before doing the actual write */
600 vcpu->arch.time_offset = data & ~(PAGE_MASK | 1); 653 vcpu->arch.time_offset = data & ~(PAGE_MASK | 1);
601 654
602 vcpu->arch.hv_clock.tsc_to_system_mul =
603 clocksource_khz2mult(tsc_khz, 22);
604 vcpu->arch.hv_clock.tsc_shift = 22;
605
606 down_read(&current->mm->mmap_sem); 655 down_read(&current->mm->mmap_sem);
607 vcpu->arch.time_page = 656 vcpu->arch.time_page =
608 gfn_to_page(vcpu->kvm, data >> PAGE_SHIFT); 657 gfn_to_page(vcpu->kvm, data >> PAGE_SHIFT);
@@ -2758,7 +2807,9 @@ again:
2758 2807
2759 if (vcpu->requests) { 2808 if (vcpu->requests) {
2760 if (test_and_clear_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests)) 2809 if (test_and_clear_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests))
2761 __kvm_migrate_apic_timer(vcpu); 2810 __kvm_migrate_timers(vcpu);
2811 if (test_and_clear_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests))
2812 kvm_x86_ops->tlb_flush(vcpu);
2762 if (test_and_clear_bit(KVM_REQ_REPORT_TPR_ACCESS, 2813 if (test_and_clear_bit(KVM_REQ_REPORT_TPR_ACCESS,
2763 &vcpu->requests)) { 2814 &vcpu->requests)) {
2764 kvm_run->exit_reason = KVM_EXIT_TPR_ACCESS; 2815 kvm_run->exit_reason = KVM_EXIT_TPR_ACCESS;
@@ -2772,6 +2823,7 @@ again:
2772 } 2823 }
2773 } 2824 }
2774 2825
2826 clear_bit(KVM_REQ_PENDING_TIMER, &vcpu->requests);
2775 kvm_inject_pending_timer_irqs(vcpu); 2827 kvm_inject_pending_timer_irqs(vcpu);
2776 2828
2777 preempt_disable(); 2829 preempt_disable();
@@ -2781,21 +2833,13 @@ again:
2781 2833
2782 local_irq_disable(); 2834 local_irq_disable();
2783 2835
2784 if (need_resched()) { 2836 if (vcpu->requests || need_resched()) {
2785 local_irq_enable(); 2837 local_irq_enable();
2786 preempt_enable(); 2838 preempt_enable();
2787 r = 1; 2839 r = 1;
2788 goto out; 2840 goto out;
2789 } 2841 }
2790 2842
2791 if (vcpu->requests)
2792 if (test_bit(KVM_REQ_MMU_RELOAD, &vcpu->requests)) {
2793 local_irq_enable();
2794 preempt_enable();
2795 r = 1;
2796 goto out;
2797 }
2798
2799 if (signal_pending(current)) { 2843 if (signal_pending(current)) {
2800 local_irq_enable(); 2844 local_irq_enable();
2801 preempt_enable(); 2845 preempt_enable();
@@ -2825,9 +2869,6 @@ again:
2825 2869
2826 kvm_guest_enter(); 2870 kvm_guest_enter();
2827 2871
2828 if (vcpu->requests)
2829 if (test_and_clear_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests))
2830 kvm_x86_ops->tlb_flush(vcpu);
2831 2872
2832 KVMTRACE_0D(VMENTRY, vcpu, entryexit); 2873 KVMTRACE_0D(VMENTRY, vcpu, entryexit);
2833 kvm_x86_ops->run(vcpu, kvm_run); 2874 kvm_x86_ops->run(vcpu, kvm_run);
diff --git a/arch/x86/kvm/x86_emulate.c b/arch/x86/kvm/x86_emulate.c
index 8a96320ab071..932f216d890c 100644
--- a/arch/x86/kvm/x86_emulate.c
+++ b/arch/x86/kvm/x86_emulate.c
@@ -1727,7 +1727,8 @@ twobyte_insn:
1727 if (rc) 1727 if (rc)
1728 goto done; 1728 goto done;
1729 1729
1730 kvm_emulate_hypercall(ctxt->vcpu); 1730 /* Let the processor re-execute the fixed hypercall */
1731 c->eip = ctxt->vcpu->arch.rip;
1731 /* Disable writeback. */ 1732 /* Disable writeback. */
1732 c->dst.type = OP_NONE; 1733 c->dst.type = OP_NONE;
1733 break; 1734 break;
diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
index 70bebd310408..ee1c3f635157 100644
--- a/arch/x86/lib/copy_user_64.S
+++ b/arch/x86/lib/copy_user_64.S
@@ -217,19 +217,19 @@ ENTRY(copy_user_generic_unrolled)
217 /* table sorted by exception address */ 217 /* table sorted by exception address */
218 .section __ex_table,"a" 218 .section __ex_table,"a"
219 .align 8 219 .align 8
220 .quad .Ls1,.Ls1e 220 .quad .Ls1,.Ls1e /* Ls1-Ls4 have copied zero bytes */
221 .quad .Ls2,.Ls2e 221 .quad .Ls2,.Ls1e
222 .quad .Ls3,.Ls3e 222 .quad .Ls3,.Ls1e
223 .quad .Ls4,.Ls4e 223 .quad .Ls4,.Ls1e
224 .quad .Ld1,.Ls1e 224 .quad .Ld1,.Ls1e /* Ld1-Ld4 have copied 0-24 bytes */
225 .quad .Ld2,.Ls2e 225 .quad .Ld2,.Ls2e
226 .quad .Ld3,.Ls3e 226 .quad .Ld3,.Ls3e
227 .quad .Ld4,.Ls4e 227 .quad .Ld4,.Ls4e
228 .quad .Ls5,.Ls5e 228 .quad .Ls5,.Ls5e /* Ls5-Ls8 have copied 32 bytes */
229 .quad .Ls6,.Ls6e 229 .quad .Ls6,.Ls5e
230 .quad .Ls7,.Ls7e 230 .quad .Ls7,.Ls5e
231 .quad .Ls8,.Ls8e 231 .quad .Ls8,.Ls5e
232 .quad .Ld5,.Ls5e 232 .quad .Ld5,.Ls5e /* Ld5-Ld8 have copied 32-56 bytes */
233 .quad .Ld6,.Ls6e 233 .quad .Ld6,.Ls6e
234 .quad .Ld7,.Ls7e 234 .quad .Ld7,.Ls7e
235 .quad .Ld8,.Ls8e 235 .quad .Ld8,.Ls8e
@@ -244,11 +244,8 @@ ENTRY(copy_user_generic_unrolled)
244 .quad .Le5,.Le_zero 244 .quad .Le5,.Le_zero
245 .previous 245 .previous
246 246
247 /* compute 64-offset for main loop. 8 bytes accuracy with error on the
248 pessimistic side. this is gross. it would be better to fix the
249 interface. */
250 /* eax: zero, ebx: 64 */ 247 /* eax: zero, ebx: 64 */
251.Ls1e: addl $8,%eax 248.Ls1e: addl $8,%eax /* eax is bytes left uncopied within the loop (Ls1e: 64 .. Ls8e: 8) */
252.Ls2e: addl $8,%eax 249.Ls2e: addl $8,%eax
253.Ls3e: addl $8,%eax 250.Ls3e: addl $8,%eax
254.Ls4e: addl $8,%eax 251.Ls4e: addl $8,%eax
diff --git a/arch/x86/lib/copy_user_nocache_64.S b/arch/x86/lib/copy_user_nocache_64.S
index 5196762b3b0e..9d3d1ab83763 100644
--- a/arch/x86/lib/copy_user_nocache_64.S
+++ b/arch/x86/lib/copy_user_nocache_64.S
@@ -145,19 +145,19 @@ ENTRY(__copy_user_nocache)
145 /* table sorted by exception address */ 145 /* table sorted by exception address */
146 .section __ex_table,"a" 146 .section __ex_table,"a"
147 .align 8 147 .align 8
148 .quad .Ls1,.Ls1e 148 .quad .Ls1,.Ls1e /* .Ls[1-4] - 0 bytes copied */
149 .quad .Ls2,.Ls2e 149 .quad .Ls2,.Ls1e
150 .quad .Ls3,.Ls3e 150 .quad .Ls3,.Ls1e
151 .quad .Ls4,.Ls4e 151 .quad .Ls4,.Ls1e
152 .quad .Ld1,.Ls1e 152 .quad .Ld1,.Ls1e /* .Ld[1-4] - 0..24 bytes coped */
153 .quad .Ld2,.Ls2e 153 .quad .Ld2,.Ls2e
154 .quad .Ld3,.Ls3e 154 .quad .Ld3,.Ls3e
155 .quad .Ld4,.Ls4e 155 .quad .Ld4,.Ls4e
156 .quad .Ls5,.Ls5e 156 .quad .Ls5,.Ls5e /* .Ls[5-8] - 32 bytes copied */
157 .quad .Ls6,.Ls6e 157 .quad .Ls6,.Ls5e
158 .quad .Ls7,.Ls7e 158 .quad .Ls7,.Ls5e
159 .quad .Ls8,.Ls8e 159 .quad .Ls8,.Ls5e
160 .quad .Ld5,.Ls5e 160 .quad .Ld5,.Ls5e /* .Ld[5-8] - 32..56 bytes copied */
161 .quad .Ld6,.Ls6e 161 .quad .Ld6,.Ls6e
162 .quad .Ld7,.Ls7e 162 .quad .Ld7,.Ls7e
163 .quad .Ld8,.Ls8e 163 .quad .Ld8,.Ls8e
@@ -172,11 +172,8 @@ ENTRY(__copy_user_nocache)
172 .quad .Le5,.Le_zero 172 .quad .Le5,.Le_zero
173 .previous 173 .previous
174 174
175 /* compute 64-offset for main loop. 8 bytes accuracy with error on the
176 pessimistic side. this is gross. it would be better to fix the
177 interface. */
178 /* eax: zero, ebx: 64 */ 175 /* eax: zero, ebx: 64 */
179.Ls1e: addl $8,%eax 176.Ls1e: addl $8,%eax /* eax: bytes left uncopied: Ls1e: 64 .. Ls8e: 8 */
180.Ls2e: addl $8,%eax 177.Ls2e: addl $8,%eax
181.Ls3e: addl $8,%eax 178.Ls3e: addl $8,%eax
182.Ls4e: addl $8,%eax 179.Ls4e: addl $8,%eax
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index fd7e1798c75a..8bcb6f40ccb6 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -497,6 +497,11 @@ static int vmalloc_fault(unsigned long address)
497 unsigned long pgd_paddr; 497 unsigned long pgd_paddr;
498 pmd_t *pmd_k; 498 pmd_t *pmd_k;
499 pte_t *pte_k; 499 pte_t *pte_k;
500
501 /* Make sure we are in vmalloc area */
502 if (!(address >= VMALLOC_START && address < VMALLOC_END))
503 return -1;
504
500 /* 505 /*
501 * Synchronize this task's top level page-table 506 * Synchronize this task's top level page-table
502 * with the 'reference' page table. 507 * with the 'reference' page table.
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c
index 3890234e5b26..99649dccad28 100644
--- a/arch/x86/mm/srat_64.c
+++ b/arch/x86/mm/srat_64.c
@@ -97,36 +97,9 @@ static __init inline int srat_disabled(void)
97 return numa_off || acpi_numa < 0; 97 return numa_off || acpi_numa < 0;
98} 98}
99 99
100/*
101 * A lot of BIOS fill in 10 (= no distance) everywhere. This messes
102 * up the NUMA heuristics which wants the local node to have a smaller
103 * distance than the others.
104 * Do some quick checks here and only use the SLIT if it passes.
105 */
106static __init int slit_valid(struct acpi_table_slit *slit)
107{
108 int i, j;
109 int d = slit->locality_count;
110 for (i = 0; i < d; i++) {
111 for (j = 0; j < d; j++) {
112 u8 val = slit->entry[d*i + j];
113 if (i == j) {
114 if (val != LOCAL_DISTANCE)
115 return 0;
116 } else if (val <= LOCAL_DISTANCE)
117 return 0;
118 }
119 }
120 return 1;
121}
122
123/* Callback for SLIT parsing */ 100/* Callback for SLIT parsing */
124void __init acpi_numa_slit_init(struct acpi_table_slit *slit) 101void __init acpi_numa_slit_init(struct acpi_table_slit *slit)
125{ 102{
126 if (!slit_valid(slit)) {
127 printk(KERN_INFO "ACPI: SLIT table looks invalid. Not used.\n");
128 return;
129 }
130 acpi_slit = slit; 103 acpi_slit = slit;
131} 104}
132 105
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 6e64aaf00d1d..940185ecaeda 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -328,18 +328,18 @@ static struct dmi_system_id __devinitdata pciprobe_dmi_table[] = {
328#endif 328#endif
329 { 329 {
330 .callback = set_bf_sort, 330 .callback = set_bf_sort,
331 .ident = "HP ProLiant DL385 G2", 331 .ident = "HP ProLiant DL360",
332 .matches = { 332 .matches = {
333 DMI_MATCH(DMI_SYS_VENDOR, "HP"), 333 DMI_MATCH(DMI_SYS_VENDOR, "HP"),
334 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL385 G2"), 334 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL360"),
335 }, 335 },
336 }, 336 },
337 { 337 {
338 .callback = set_bf_sort, 338 .callback = set_bf_sort,
339 .ident = "HP ProLiant DL585 G2", 339 .ident = "HP ProLiant DL380",
340 .matches = { 340 .matches = {
341 DMI_MATCH(DMI_SYS_VENDOR, "HP"), 341 DMI_MATCH(DMI_SYS_VENDOR, "HP"),
342 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"), 342 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL380"),
343 }, 343 },
344 }, 344 },
345 {} 345 {}
diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
index 2e641be2737e..6c388e593bc8 100644
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -5,8 +5,9 @@
5config XEN 5config XEN
6 bool "Xen guest support" 6 bool "Xen guest support"
7 select PARAVIRT 7 select PARAVIRT
8 select PARAVIRT_CLOCK
8 depends on X86_32 9 depends on X86_32
9 depends on X86_CMPXCHG && X86_TSC && !(X86_VISWS || X86_VOYAGER) 10 depends on X86_CMPXCHG && X86_TSC && X86_PAE && !(X86_VISWS || X86_VOYAGER)
10 help 11 help
11 This is the Linux Xen port. Enabling this will allow the 12 This is the Linux Xen port. Enabling this will allow the
12 kernel to boot in a paravirtualized environment under the 13 kernel to boot in a paravirtualized environment under the
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index c8a56e457d61..f09c1c69c37a 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -785,38 +785,35 @@ static __init void xen_set_pte_init(pte_t *ptep, pte_t pte)
785static __init void xen_pagetable_setup_start(pgd_t *base) 785static __init void xen_pagetable_setup_start(pgd_t *base)
786{ 786{
787 pgd_t *xen_pgd = (pgd_t *)xen_start_info->pt_base; 787 pgd_t *xen_pgd = (pgd_t *)xen_start_info->pt_base;
788 int i;
788 789
789 /* special set_pte for pagetable initialization */ 790 /* special set_pte for pagetable initialization */
790 pv_mmu_ops.set_pte = xen_set_pte_init; 791 pv_mmu_ops.set_pte = xen_set_pte_init;
791 792
792 init_mm.pgd = base; 793 init_mm.pgd = base;
793 /* 794 /*
794 * copy top-level of Xen-supplied pagetable into place. For 795 * copy top-level of Xen-supplied pagetable into place. This
795 * !PAE we can use this as-is, but for PAE it is a stand-in 796 * is a stand-in while we copy the pmd pages.
796 * while we copy the pmd pages.
797 */ 797 */
798 memcpy(base, xen_pgd, PTRS_PER_PGD * sizeof(pgd_t)); 798 memcpy(base, xen_pgd, PTRS_PER_PGD * sizeof(pgd_t));
799 799
800 if (PTRS_PER_PMD > 1) { 800 /*
801 int i; 801 * For PAE, need to allocate new pmds, rather than
802 /* 802 * share Xen's, since Xen doesn't like pmd's being
803 * For PAE, need to allocate new pmds, rather than 803 * shared between address spaces.
804 * share Xen's, since Xen doesn't like pmd's being 804 */
805 * shared between address spaces. 805 for (i = 0; i < PTRS_PER_PGD; i++) {
806 */ 806 if (pgd_val_ma(xen_pgd[i]) & _PAGE_PRESENT) {
807 for (i = 0; i < PTRS_PER_PGD; i++) { 807 pmd_t *pmd = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE);
808 if (pgd_val_ma(xen_pgd[i]) & _PAGE_PRESENT) {
809 pmd_t *pmd = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE);
810 808
811 memcpy(pmd, (void *)pgd_page_vaddr(xen_pgd[i]), 809 memcpy(pmd, (void *)pgd_page_vaddr(xen_pgd[i]),
812 PAGE_SIZE); 810 PAGE_SIZE);
813 811
814 make_lowmem_page_readonly(pmd); 812 make_lowmem_page_readonly(pmd);
815 813
816 set_pgd(&base[i], __pgd(1 + __pa(pmd))); 814 set_pgd(&base[i], __pgd(1 + __pa(pmd)));
817 } else 815 } else
818 pgd_clear(&base[i]); 816 pgd_clear(&base[i]);
819 }
820 } 817 }
821 818
822 /* make sure zero_page is mapped RO so we can use it in pagetables */ 819 /* make sure zero_page is mapped RO so we can use it in pagetables */
@@ -873,17 +870,7 @@ static __init void xen_pagetable_setup_done(pgd_t *base)
873 870
874 /* Actually pin the pagetable down, but we can't set PG_pinned 871 /* Actually pin the pagetable down, but we can't set PG_pinned
875 yet because the page structures don't exist yet. */ 872 yet because the page structures don't exist yet. */
876 { 873 pin_pagetable_pfn(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(base)));
877 unsigned level;
878
879#ifdef CONFIG_X86_PAE
880 level = MMUEXT_PIN_L3_TABLE;
881#else
882 level = MMUEXT_PIN_L2_TABLE;
883#endif
884
885 pin_pagetable_pfn(level, PFN_DOWN(__pa(base)));
886 }
887} 874}
888 875
889/* This is called once we have the cpu_possible_map */ 876/* This is called once we have the cpu_possible_map */
@@ -1093,7 +1080,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initdata = {
1093 .make_pte = xen_make_pte, 1080 .make_pte = xen_make_pte,
1094 .make_pgd = xen_make_pgd, 1081 .make_pgd = xen_make_pgd,
1095 1082
1096#ifdef CONFIG_X86_PAE
1097 .set_pte_atomic = xen_set_pte_atomic, 1083 .set_pte_atomic = xen_set_pte_atomic,
1098 .set_pte_present = xen_set_pte_at, 1084 .set_pte_present = xen_set_pte_at,
1099 .set_pud = xen_set_pud, 1085 .set_pud = xen_set_pud,
@@ -1102,7 +1088,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initdata = {
1102 1088
1103 .make_pmd = xen_make_pmd, 1089 .make_pmd = xen_make_pmd,
1104 .pmd_val = xen_pmd_val, 1090 .pmd_val = xen_pmd_val,
1105#endif /* PAE */
1106 1091
1107 .activate_mm = xen_activate_mm, 1092 .activate_mm = xen_activate_mm,
1108 .dup_mmap = xen_dup_mmap, 1093 .dup_mmap = xen_dup_mmap,
@@ -1228,6 +1213,11 @@ asmlinkage void __init xen_start_kernel(void)
1228 if (xen_feature(XENFEAT_supervisor_mode_kernel)) 1213 if (xen_feature(XENFEAT_supervisor_mode_kernel))
1229 pv_info.kernel_rpl = 0; 1214 pv_info.kernel_rpl = 0;
1230 1215
1216 /* Prevent unwanted bits from being set in PTEs. */
1217 __supported_pte_mask &= ~_PAGE_GLOBAL;
1218 if (!is_initial_xendomain())
1219 __supported_pte_mask &= ~(_PAGE_PWT | _PAGE_PCD);
1220
1231 /* set the limit of our address space */ 1221 /* set the limit of our address space */
1232 xen_reserve_top(); 1222 xen_reserve_top();
1233 1223
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 3525ef523a74..df40bf74ea75 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -179,50 +179,56 @@ out:
179 preempt_enable(); 179 preempt_enable();
180} 180}
181 181
182pteval_t xen_pte_val(pte_t pte) 182/* Assume pteval_t is equivalent to all the other *val_t types. */
183static pteval_t pte_mfn_to_pfn(pteval_t val)
184{
185 if (val & _PAGE_PRESENT) {
186 unsigned long mfn = (val & PTE_MASK) >> PAGE_SHIFT;
187 pteval_t flags = val & ~PTE_MASK;
188 val = (mfn_to_pfn(mfn) << PAGE_SHIFT) | flags;
189 }
190
191 return val;
192}
193
194static pteval_t pte_pfn_to_mfn(pteval_t val)
183{ 195{
184 pteval_t ret = pte.pte; 196 if (val & _PAGE_PRESENT) {
197 unsigned long pfn = (val & PTE_MASK) >> PAGE_SHIFT;
198 pteval_t flags = val & ~PTE_MASK;
199 val = (pfn_to_mfn(pfn) << PAGE_SHIFT) | flags;
200 }
185 201
186 if (ret & _PAGE_PRESENT) 202 return val;
187 ret = machine_to_phys(XMADDR(ret)).paddr | _PAGE_PRESENT; 203}
188 204
189 return ret; 205pteval_t xen_pte_val(pte_t pte)
206{
207 return pte_mfn_to_pfn(pte.pte);
190} 208}
191 209
192pgdval_t xen_pgd_val(pgd_t pgd) 210pgdval_t xen_pgd_val(pgd_t pgd)
193{ 211{
194 pgdval_t ret = pgd.pgd; 212 return pte_mfn_to_pfn(pgd.pgd);
195 if (ret & _PAGE_PRESENT)
196 ret = machine_to_phys(XMADDR(ret)).paddr | _PAGE_PRESENT;
197 return ret;
198} 213}
199 214
200pte_t xen_make_pte(pteval_t pte) 215pte_t xen_make_pte(pteval_t pte)
201{ 216{
202 if (pte & _PAGE_PRESENT) { 217 pte = pte_pfn_to_mfn(pte);
203 pte = phys_to_machine(XPADDR(pte)).maddr; 218 return native_make_pte(pte);
204 pte &= ~(_PAGE_PCD | _PAGE_PWT);
205 }
206
207 return (pte_t){ .pte = pte };
208} 219}
209 220
210pgd_t xen_make_pgd(pgdval_t pgd) 221pgd_t xen_make_pgd(pgdval_t pgd)
211{ 222{
212 if (pgd & _PAGE_PRESENT) 223 pgd = pte_pfn_to_mfn(pgd);
213 pgd = phys_to_machine(XPADDR(pgd)).maddr; 224 return native_make_pgd(pgd);
214
215 return (pgd_t){ pgd };
216} 225}
217 226
218pmdval_t xen_pmd_val(pmd_t pmd) 227pmdval_t xen_pmd_val(pmd_t pmd)
219{ 228{
220 pmdval_t ret = native_pmd_val(pmd); 229 return pte_mfn_to_pfn(pmd.pmd);
221 if (ret & _PAGE_PRESENT)
222 ret = machine_to_phys(XMADDR(ret)).paddr | _PAGE_PRESENT;
223 return ret;
224} 230}
225#ifdef CONFIG_X86_PAE 231
226void xen_set_pud(pud_t *ptr, pud_t val) 232void xen_set_pud(pud_t *ptr, pud_t val)
227{ 233{
228 struct multicall_space mcs; 234 struct multicall_space mcs;
@@ -267,17 +273,9 @@ void xen_pmd_clear(pmd_t *pmdp)
267 273
268pmd_t xen_make_pmd(pmdval_t pmd) 274pmd_t xen_make_pmd(pmdval_t pmd)
269{ 275{
270 if (pmd & _PAGE_PRESENT) 276 pmd = pte_pfn_to_mfn(pmd);
271 pmd = phys_to_machine(XPADDR(pmd)).maddr;
272
273 return native_make_pmd(pmd); 277 return native_make_pmd(pmd);
274} 278}
275#else /* !PAE */
276void xen_set_pte(pte_t *ptep, pte_t pte)
277{
278 *ptep = pte;
279}
280#endif /* CONFIG_X86_PAE */
281 279
282/* 280/*
283 (Yet another) pagetable walker. This one is intended for pinning a 281 (Yet another) pagetable walker. This one is intended for pinning a
@@ -430,8 +428,6 @@ static int pin_page(struct page *page, enum pt_level level)
430 read-only, and can be pinned. */ 428 read-only, and can be pinned. */
431void xen_pgd_pin(pgd_t *pgd) 429void xen_pgd_pin(pgd_t *pgd)
432{ 430{
433 unsigned level;
434
435 xen_mc_batch(); 431 xen_mc_batch();
436 432
437 if (pgd_walk(pgd, pin_page, TASK_SIZE)) { 433 if (pgd_walk(pgd, pin_page, TASK_SIZE)) {
@@ -441,14 +437,7 @@ void xen_pgd_pin(pgd_t *pgd)
441 xen_mc_batch(); 437 xen_mc_batch();
442 } 438 }
443 439
444#ifdef CONFIG_X86_PAE 440 xen_do_pin(MMUEXT_PIN_L3_TABLE, PFN_DOWN(__pa(pgd)));
445 level = MMUEXT_PIN_L3_TABLE;
446#else
447 level = MMUEXT_PIN_L2_TABLE;
448#endif
449
450 xen_do_pin(level, PFN_DOWN(__pa(pgd)));
451
452 xen_mc_issue(0); 441 xen_mc_issue(0);
453} 442}
454 443
diff --git a/arch/x86/xen/mmu.h b/arch/x86/xen/mmu.h
index b5e189b1519d..5fe961caffd4 100644
--- a/arch/x86/xen/mmu.h
+++ b/arch/x86/xen/mmu.h
@@ -37,14 +37,13 @@ void xen_exit_mmap(struct mm_struct *mm);
37void xen_pgd_pin(pgd_t *pgd); 37void xen_pgd_pin(pgd_t *pgd);
38//void xen_pgd_unpin(pgd_t *pgd); 38//void xen_pgd_unpin(pgd_t *pgd);
39 39
40#ifdef CONFIG_X86_PAE 40pteval_t xen_pte_val(pte_t);
41unsigned long long xen_pte_val(pte_t); 41pmdval_t xen_pmd_val(pmd_t);
42unsigned long long xen_pmd_val(pmd_t); 42pgdval_t xen_pgd_val(pgd_t);
43unsigned long long xen_pgd_val(pgd_t);
44 43
45pte_t xen_make_pte(unsigned long long); 44pte_t xen_make_pte(pteval_t);
46pmd_t xen_make_pmd(unsigned long long); 45pmd_t xen_make_pmd(pmdval_t);
47pgd_t xen_make_pgd(unsigned long long); 46pgd_t xen_make_pgd(pgdval_t);
48 47
49void xen_set_pte_at(struct mm_struct *mm, unsigned long addr, 48void xen_set_pte_at(struct mm_struct *mm, unsigned long addr,
50 pte_t *ptep, pte_t pteval); 49 pte_t *ptep, pte_t pteval);
@@ -53,15 +52,4 @@ void xen_set_pud(pud_t *ptr, pud_t val);
53void xen_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep); 52void xen_pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
54void xen_pmd_clear(pmd_t *pmdp); 53void xen_pmd_clear(pmd_t *pmdp);
55 54
56
57#else
58unsigned long xen_pte_val(pte_t);
59unsigned long xen_pmd_val(pmd_t);
60unsigned long xen_pgd_val(pgd_t);
61
62pte_t xen_make_pte(unsigned long);
63pmd_t xen_make_pmd(unsigned long);
64pgd_t xen_make_pgd(unsigned long);
65#endif
66
67#endif /* _XEN_MMU_H */ 55#endif /* _XEN_MMU_H */
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index c39e1a5aa241..41e217503c96 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -12,7 +12,9 @@
12#include <linux/clocksource.h> 12#include <linux/clocksource.h>
13#include <linux/clockchips.h> 13#include <linux/clockchips.h>
14#include <linux/kernel_stat.h> 14#include <linux/kernel_stat.h>
15#include <linux/math64.h>
15 16
17#include <asm/pvclock.h>
16#include <asm/xen/hypervisor.h> 18#include <asm/xen/hypervisor.h>
17#include <asm/xen/hypercall.h> 19#include <asm/xen/hypercall.h>
18 20
@@ -30,17 +32,6 @@
30 32
31static cycle_t xen_clocksource_read(void); 33static cycle_t xen_clocksource_read(void);
32 34
33/* These are perodically updated in shared_info, and then copied here. */
34struct shadow_time_info {
35 u64 tsc_timestamp; /* TSC at last update of time vals. */
36 u64 system_timestamp; /* Time, in nanosecs, since boot. */
37 u32 tsc_to_nsec_mul;
38 int tsc_shift;
39 u32 version;
40};
41
42static DEFINE_PER_CPU(struct shadow_time_info, shadow_time);
43
44/* runstate info updated by Xen */ 35/* runstate info updated by Xen */
45static DEFINE_PER_CPU(struct vcpu_runstate_info, runstate); 36static DEFINE_PER_CPU(struct vcpu_runstate_info, runstate);
46 37
@@ -150,11 +141,7 @@ static void do_stolen_accounting(void)
150 if (stolen < 0) 141 if (stolen < 0)
151 stolen = 0; 142 stolen = 0;
152 143
153 ticks = 0; 144 ticks = iter_div_u64_rem(stolen, NS_PER_TICK, &stolen);
154 while (stolen >= NS_PER_TICK) {
155 ticks++;
156 stolen -= NS_PER_TICK;
157 }
158 __get_cpu_var(residual_stolen) = stolen; 145 __get_cpu_var(residual_stolen) = stolen;
159 account_steal_time(NULL, ticks); 146 account_steal_time(NULL, ticks);
160 147
@@ -166,11 +153,7 @@ static void do_stolen_accounting(void)
166 if (blocked < 0) 153 if (blocked < 0)
167 blocked = 0; 154 blocked = 0;
168 155
169 ticks = 0; 156 ticks = iter_div_u64_rem(blocked, NS_PER_TICK, &blocked);
170 while (blocked >= NS_PER_TICK) {
171 ticks++;
172 blocked -= NS_PER_TICK;
173 }
174 __get_cpu_var(residual_blocked) = blocked; 157 __get_cpu_var(residual_blocked) = blocked;
175 account_steal_time(idle_task(smp_processor_id()), ticks); 158 account_steal_time(idle_task(smp_processor_id()), ticks);
176} 159}
@@ -218,7 +201,7 @@ unsigned long long xen_sched_clock(void)
218unsigned long xen_cpu_khz(void) 201unsigned long xen_cpu_khz(void)
219{ 202{
220 u64 xen_khz = 1000000ULL << 32; 203 u64 xen_khz = 1000000ULL << 32;
221 const struct vcpu_time_info *info = 204 const struct pvclock_vcpu_time_info *info =
222 &HYPERVISOR_shared_info->vcpu_info[0].time; 205 &HYPERVISOR_shared_info->vcpu_info[0].time;
223 206
224 do_div(xen_khz, info->tsc_to_system_mul); 207 do_div(xen_khz, info->tsc_to_system_mul);
@@ -230,121 +213,26 @@ unsigned long xen_cpu_khz(void)
230 return xen_khz; 213 return xen_khz;
231} 214}
232 215
233/*
234 * Reads a consistent set of time-base values from Xen, into a shadow data
235 * area.
236 */
237static unsigned get_time_values_from_xen(void)
238{
239 struct vcpu_time_info *src;
240 struct shadow_time_info *dst;
241
242 /* src is shared memory with the hypervisor, so we need to
243 make sure we get a consistent snapshot, even in the face of
244 being preempted. */
245 src = &__get_cpu_var(xen_vcpu)->time;
246 dst = &__get_cpu_var(shadow_time);
247
248 do {
249 dst->version = src->version;
250 rmb(); /* fetch version before data */
251 dst->tsc_timestamp = src->tsc_timestamp;
252 dst->system_timestamp = src->system_time;
253 dst->tsc_to_nsec_mul = src->tsc_to_system_mul;
254 dst->tsc_shift = src->tsc_shift;
255 rmb(); /* test version after fetching data */
256 } while ((src->version & 1) | (dst->version ^ src->version));
257
258 return dst->version;
259}
260
261/*
262 * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction,
263 * yielding a 64-bit result.
264 */
265static inline u64 scale_delta(u64 delta, u32 mul_frac, int shift)
266{
267 u64 product;
268#ifdef __i386__
269 u32 tmp1, tmp2;
270#endif
271
272 if (shift < 0)
273 delta >>= -shift;
274 else
275 delta <<= shift;
276
277#ifdef __i386__
278 __asm__ (
279 "mul %5 ; "
280 "mov %4,%%eax ; "
281 "mov %%edx,%4 ; "
282 "mul %5 ; "
283 "xor %5,%5 ; "
284 "add %4,%%eax ; "
285 "adc %5,%%edx ; "
286 : "=A" (product), "=r" (tmp1), "=r" (tmp2)
287 : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) );
288#elif __x86_64__
289 __asm__ (
290 "mul %%rdx ; shrd $32,%%rdx,%%rax"
291 : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) );
292#else
293#error implement me!
294#endif
295
296 return product;
297}
298
299static u64 get_nsec_offset(struct shadow_time_info *shadow)
300{
301 u64 now, delta;
302 now = native_read_tsc();
303 delta = now - shadow->tsc_timestamp;
304 return scale_delta(delta, shadow->tsc_to_nsec_mul, shadow->tsc_shift);
305}
306
307static cycle_t xen_clocksource_read(void) 216static cycle_t xen_clocksource_read(void)
308{ 217{
309 struct shadow_time_info *shadow = &get_cpu_var(shadow_time); 218 struct pvclock_vcpu_time_info *src;
310 cycle_t ret; 219 cycle_t ret;
311 unsigned version;
312
313 do {
314 version = get_time_values_from_xen();
315 barrier();
316 ret = shadow->system_timestamp + get_nsec_offset(shadow);
317 barrier();
318 } while (version != __get_cpu_var(xen_vcpu)->time.version);
319
320 put_cpu_var(shadow_time);
321 220
221 src = &get_cpu_var(xen_vcpu)->time;
222 ret = pvclock_clocksource_read(src);
223 put_cpu_var(xen_vcpu);
322 return ret; 224 return ret;
323} 225}
324 226
325static void xen_read_wallclock(struct timespec *ts) 227static void xen_read_wallclock(struct timespec *ts)
326{ 228{
327 const struct shared_info *s = HYPERVISOR_shared_info; 229 struct shared_info *s = HYPERVISOR_shared_info;
328 u32 version; 230 struct pvclock_wall_clock *wall_clock = &(s->wc);
329 u64 delta; 231 struct pvclock_vcpu_time_info *vcpu_time;
330 struct timespec now;
331
332 /* get wallclock at system boot */
333 do {
334 version = s->wc_version;
335 rmb(); /* fetch version before time */
336 now.tv_sec = s->wc_sec;
337 now.tv_nsec = s->wc_nsec;
338 rmb(); /* fetch time before checking version */
339 } while ((s->wc_version & 1) | (version ^ s->wc_version));
340 232
341 delta = xen_clocksource_read(); /* time since system boot */ 233 vcpu_time = &get_cpu_var(xen_vcpu)->time;
342 delta += now.tv_sec * (u64)NSEC_PER_SEC + now.tv_nsec; 234 pvclock_read_wallclock(wall_clock, vcpu_time, ts);
343 235 put_cpu_var(xen_vcpu);
344 now.tv_nsec = do_div(delta, NSEC_PER_SEC);
345 now.tv_sec = delta;
346
347 set_normalized_timespec(ts, now.tv_sec, now.tv_nsec);
348} 236}
349 237
350unsigned long xen_get_wallclock(void) 238unsigned long xen_get_wallclock(void)
@@ -352,7 +240,6 @@ unsigned long xen_get_wallclock(void)
352 struct timespec ts; 240 struct timespec ts;
353 241
354 xen_read_wallclock(&ts); 242 xen_read_wallclock(&ts);
355
356 return ts.tv_sec; 243 return ts.tv_sec;
357} 244}
358 245
@@ -576,8 +463,6 @@ __init void xen_time_init(void)
576{ 463{
577 int cpu = smp_processor_id(); 464 int cpu = smp_processor_id();
578 465
579 get_time_values_from_xen();
580
581 clocksource_register(&xen_clocksource); 466 clocksource_register(&xen_clocksource);
582 467
583 if (HYPERVISOR_vcpu_op(VCPUOP_stop_periodic_timer, cpu, NULL) == 0) { 468 if (HYPERVISOR_vcpu_op(VCPUOP_stop_periodic_timer, cpu, NULL) == 0) {
diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
index 288d587ce73c..6ec3b4f7719b 100644
--- a/arch/x86/xen/xen-head.S
+++ b/arch/x86/xen/xen-head.S
@@ -17,7 +17,7 @@ ENTRY(startup_xen)
17 17
18 __FINIT 18 __FINIT
19 19
20.pushsection .bss.page_aligned 20.pushsection .text
21 .align PAGE_SIZE_asm 21 .align PAGE_SIZE_asm
22ENTRY(hypercall_page) 22ENTRY(hypercall_page)
23 .skip 0x1000 23 .skip 0x1000
@@ -30,11 +30,7 @@ ENTRY(hypercall_page)
30 ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, .long startup_xen) 30 ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, .long startup_xen)
31 ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .long hypercall_page) 31 ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .long hypercall_page)
32 ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz "!writable_page_tables|pae_pgdir_above_4gb") 32 ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz "!writable_page_tables|pae_pgdir_above_4gb")
33#ifdef CONFIG_X86_PAE
34 ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes") 33 ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes")
35#else
36 ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "no")
37#endif
38 ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic") 34 ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic")
39 35
40#endif /*CONFIG_XEN */ 36#endif /*CONFIG_XEN */
diff --git a/block/blktrace.c b/block/blktrace.c
index 7ae87cc4a163..8d3a27780260 100644
--- a/block/blktrace.c
+++ b/block/blktrace.c
@@ -79,16 +79,17 @@ void __trace_note_message(struct blk_trace *bt, const char *fmt, ...)
79{ 79{
80 int n; 80 int n;
81 va_list args; 81 va_list args;
82 unsigned long flags;
82 char *buf; 83 char *buf;
83 84
84 preempt_disable(); 85 local_irq_save(flags);
85 buf = per_cpu_ptr(bt->msg_data, smp_processor_id()); 86 buf = per_cpu_ptr(bt->msg_data, smp_processor_id());
86 va_start(args, fmt); 87 va_start(args, fmt);
87 n = vscnprintf(buf, BLK_TN_MAX_MSG, fmt, args); 88 n = vscnprintf(buf, BLK_TN_MAX_MSG, fmt, args);
88 va_end(args); 89 va_end(args);
89 90
90 trace_note(bt, 0, BLK_TN_MESSAGE, buf, n); 91 trace_note(bt, 0, BLK_TN_MESSAGE, buf, n);
91 preempt_enable(); 92 local_irq_restore(flags);
92} 93}
93EXPORT_SYMBOL_GPL(__trace_note_message); 94EXPORT_SYMBOL_GPL(__trace_note_message);
94 95
@@ -158,10 +159,7 @@ void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
158 /* 159 /*
159 * A word about the locking here - we disable interrupts to reserve 160 * A word about the locking here - we disable interrupts to reserve
160 * some space in the relay per-cpu buffer, to prevent an irq 161 * some space in the relay per-cpu buffer, to prevent an irq
161 * from coming in and stepping on our toes. Once reserved, it's 162 * from coming in and stepping on our toes.
162 * enough to get preemption disabled to prevent read of this data
163 * before we are through filling it. get_cpu()/put_cpu() does this
164 * for us
165 */ 163 */
166 local_irq_save(flags); 164 local_irq_save(flags);
167 165
diff --git a/block/genhd.c b/block/genhd.c
index 129ad939f9dd..b922d4801c87 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -660,6 +660,8 @@ dev_t blk_lookup_devt(const char *name, int part)
660 660
661 mutex_lock(&block_class_lock); 661 mutex_lock(&block_class_lock);
662 list_for_each_entry(dev, &block_class.devices, node) { 662 list_for_each_entry(dev, &block_class.devices, node) {
663 if (dev->type != &disk_type)
664 continue;
663 if (strcmp(dev->bus_id, name) == 0) { 665 if (strcmp(dev->bus_id, name) == 0) {
664 struct gendisk *disk = dev_to_disk(dev); 666 struct gendisk *disk = dev_to_disk(dev);
665 667
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 5b73f6a2cd86..831883b7d6c9 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -233,6 +233,9 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
233 233
234 device = ac->device; 234 device = ac->device;
235 switch (event) { 235 switch (event) {
236 default:
237 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
238 "Unsupported event [0x%x]\n", event));
236 case ACPI_AC_NOTIFY_STATUS: 239 case ACPI_AC_NOTIFY_STATUS:
237 case ACPI_NOTIFY_BUS_CHECK: 240 case ACPI_NOTIFY_BUS_CHECK:
238 case ACPI_NOTIFY_DEVICE_CHECK: 241 case ACPI_NOTIFY_DEVICE_CHECK:
@@ -244,11 +247,6 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
244#ifdef CONFIG_ACPI_SYSFS_POWER 247#ifdef CONFIG_ACPI_SYSFS_POWER
245 kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE); 248 kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE);
246#endif 249#endif
247 break;
248 default:
249 ACPI_DEBUG_PRINT((ACPI_DB_INFO,
250 "Unsupported event [0x%x]\n", event));
251 break;
252 } 250 }
253 251
254 return; 252 return;
diff --git a/drivers/acpi/bay.c b/drivers/acpi/bay.c
index d2fc94161848..61b6c5beb2d3 100644
--- a/drivers/acpi/bay.c
+++ b/drivers/acpi/bay.c
@@ -301,16 +301,20 @@ static int bay_add(acpi_handle handle, int id)
301 */ 301 */
302 pdev->dev.uevent_suppress = 0; 302 pdev->dev.uevent_suppress = 0;
303 303
304 if (acpi_bay_add_fs(new_bay)) {
305 platform_device_unregister(new_bay->pdev);
306 goto bay_add_err;
307 }
308
309 /* register for events on this device */ 304 /* register for events on this device */
310 status = acpi_install_notify_handler(handle, ACPI_SYSTEM_NOTIFY, 305 status = acpi_install_notify_handler(handle, ACPI_SYSTEM_NOTIFY,
311 bay_notify, new_bay); 306 bay_notify, new_bay);
312 if (ACPI_FAILURE(status)) { 307 if (ACPI_FAILURE(status)) {
313 printk(KERN_ERR PREFIX "Error installing bay notify handler\n"); 308 printk(KERN_INFO PREFIX "Error installing bay notify handler\n");
309 platform_device_unregister(new_bay->pdev);
310 goto bay_add_err;
311 }
312
313 if (acpi_bay_add_fs(new_bay)) {
314 acpi_remove_notify_handler(handle, ACPI_SYSTEM_NOTIFY,
315 bay_notify);
316 platform_device_unregister(new_bay->pdev);
317 goto bay_add_err;
314 } 318 }
315 319
316 /* if we are on a dock station, we should register for dock 320 /* if we are on a dock station, we should register for dock
@@ -373,6 +377,9 @@ static int __init bay_init(void)
373 377
374 INIT_LIST_HEAD(&drive_bays); 378 INIT_LIST_HEAD(&drive_bays);
375 379
380 if (acpi_disabled)
381 return -ENODEV;
382
376 /* look for dockable drive bays */ 383 /* look for dockable drive bays */
377 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, 384 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
378 ACPI_UINT32_MAX, find_bay, &bays, NULL); 385 ACPI_UINT32_MAX, find_bay, &bays, NULL);
diff --git a/drivers/acpi/dispatcher/dsfield.c b/drivers/acpi/dispatcher/dsfield.c
index c78078315be9..f988a5e7d2b4 100644
--- a/drivers/acpi/dispatcher/dsfield.c
+++ b/drivers/acpi/dispatcher/dsfield.c
@@ -450,10 +450,6 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
450 return_ACPI_STATUS(AE_BAD_PARAMETER); 450 return_ACPI_STATUS(AE_BAD_PARAMETER);
451 } 451 }
452 452
453 if (!arg) {
454 return_ACPI_STATUS(AE_AML_NO_OPERAND);
455 }
456
457 /* Creating new namespace node(s), should not already exist */ 453 /* Creating new namespace node(s), should not already exist */
458 454
459 flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE | 455 flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
@@ -467,6 +463,7 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
467 463
468 /* 464 /*
469 * Walk the list of entries in the field_list 465 * Walk the list of entries in the field_list
466 * Note: field_list can be of zero length. In this case, Arg will be NULL.
470 */ 467 */
471 while (arg) { 468 while (arg) {
472 /* 469 /*
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index fa44fb96fc34..bb7c51f712bd 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -834,7 +834,7 @@ static int dock_add(acpi_handle handle)
834 goto dock_add_err; 834 goto dock_add_err;
835 } 835 }
836 836
837 printk(KERN_INFO PREFIX "%s \n", ACPI_DOCK_DRIVER_DESCRIPTION); 837 printk(KERN_INFO PREFIX "%s\n", ACPI_DOCK_DRIVER_DESCRIPTION);
838 838
839 return 0; 839 return 0;
840 840
@@ -917,6 +917,9 @@ static int __init dock_init(void)
917 917
918 dock_station = NULL; 918 dock_station = NULL;
919 919
920 if (acpi_disabled)
921 return 0;
922
920 /* look for a dock station */ 923 /* look for a dock station */
921 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, 924 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
922 ACPI_UINT32_MAX, find_dock, &num, NULL); 925 ACPI_UINT32_MAX, find_dock, &num, NULL);
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 0924992187e8..5622aee996b2 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -194,7 +194,7 @@ static int acpi_ec_wait(struct acpi_ec *ec, enum ec_event event, int force_poll)
194 while (time_before(jiffies, delay)) { 194 while (time_before(jiffies, delay)) {
195 if (acpi_ec_check_status(ec, event)) 195 if (acpi_ec_check_status(ec, event))
196 return 0; 196 return 0;
197 udelay(ACPI_EC_UDELAY); 197 msleep(1);
198 } 198 }
199 } 199 }
200 pr_err(PREFIX "acpi_ec_wait timeout, status = 0x%2.2x, event = %s\n", 200 pr_err(PREFIX "acpi_ec_wait timeout, status = 0x%2.2x, event = %s\n",
diff --git a/drivers/acpi/executer/exconfig.c b/drivers/acpi/executer/exconfig.c
index 24da921d13e3..39d742190584 100644
--- a/drivers/acpi/executer/exconfig.c
+++ b/drivers/acpi/executer/exconfig.c
@@ -375,9 +375,15 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
375 goto cleanup; 375 goto cleanup;
376 } 376 }
377 377
378 /*
379 * Add the table to the namespace.
380 *
381 * Note: We load the table objects relative to the root of the namespace.
382 * This appears to go against the ACPI specification, but we do it for
383 * compatibility with other ACPI implementations.
384 */
378 status = 385 status =
379 acpi_ex_add_table(table_index, walk_state->scope_info->scope.node, 386 acpi_ex_add_table(table_index, acpi_gbl_root_node, &ddb_handle);
380 &ddb_handle);
381 if (ACPI_FAILURE(status)) { 387 if (ACPI_FAILURE(status)) {
382 388
383 /* On error, table_ptr was deallocated above */ 389 /* On error, table_ptr was deallocated above */
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index 06f8634fe58b..9b227d4dc9c9 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -272,6 +272,12 @@ static u32 rtc_handler(void *context)
272static inline void rtc_wake_setup(void) 272static inline void rtc_wake_setup(void)
273{ 273{
274 acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); 274 acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL);
275 /*
276 * After the RTC handler is installed, the Fixed_RTC event should
277 * be disabled. Only when the RTC alarm is set will it be enabled.
278 */
279 acpi_clear_event(ACPI_EVENT_RTC);
280 acpi_disable_event(ACPI_EVENT_RTC, 0);
275} 281}
276 282
277static void rtc_wake_on(struct device *dev) 283static void rtc_wake_on(struct device *dev)
@@ -327,6 +333,9 @@ static int __init acpi_rtc_init(void)
327{ 333{
328 struct device *dev = get_rtc_dev(); 334 struct device *dev = get_rtc_dev();
329 335
336 if (acpi_disabled)
337 return 0;
338
330 if (dev) { 339 if (dev) {
331 rtc_wake_setup(); 340 rtc_wake_setup();
332 rtc_info.wake_on = rtc_wake_on; 341 rtc_info.wake_on = rtc_wake_on;
diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c
index d9937e05ec6a..dba3cfbe8cba 100644
--- a/drivers/acpi/hardware/hwsleep.c
+++ b/drivers/acpi/hardware/hwsleep.c
@@ -223,15 +223,17 @@ acpi_status acpi_enter_sleep_state_prep(u8 sleep_state)
223 break; 223 break;
224 } 224 }
225 225
226 /* Set the system indicators to show the desired sleep state. */ 226 /*
227 227 * Set the system indicators to show the desired sleep state.
228 * _SST is an optional method (return no error if not found)
229 */
228 status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL); 230 status = acpi_evaluate_object(NULL, METHOD_NAME__SST, &arg_list, NULL);
229 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { 231 if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
230 ACPI_EXCEPTION((AE_INFO, status, 232 ACPI_EXCEPTION((AE_INFO, status,
231 "While executing method _SST")); 233 "While executing method _SST"));
232 } 234 }
233 235
234 return_ACPI_STATUS(status); 236 return_ACPI_STATUS(AE_OK);
235} 237}
236 238
237ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep) 239ACPI_EXPORT_SYMBOL(acpi_enter_sleep_state_prep)
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index 5d59cb33b1a5..658e5f3abae0 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -140,19 +140,42 @@ acpi_table_print_srat_entry(struct acpi_subtable_header *header)
140 } 140 }
141} 141}
142 142
143/*
144 * A lot of BIOS fill in 10 (= no distance) everywhere. This messes
145 * up the NUMA heuristics which wants the local node to have a smaller
146 * distance than the others.
147 * Do some quick checks here and only use the SLIT if it passes.
148 */
149static __init int slit_valid(struct acpi_table_slit *slit)
150{
151 int i, j;
152 int d = slit->locality_count;
153 for (i = 0; i < d; i++) {
154 for (j = 0; j < d; j++) {
155 u8 val = slit->entry[d*i + j];
156 if (i == j) {
157 if (val != LOCAL_DISTANCE)
158 return 0;
159 } else if (val <= LOCAL_DISTANCE)
160 return 0;
161 }
162 }
163 return 1;
164}
165
143static int __init acpi_parse_slit(struct acpi_table_header *table) 166static int __init acpi_parse_slit(struct acpi_table_header *table)
144{ 167{
145 struct acpi_table_slit *slit; 168 struct acpi_table_slit *slit;
146 u32 localities;
147 169
148 if (!table) 170 if (!table)
149 return -EINVAL; 171 return -EINVAL;
150 172
151 slit = (struct acpi_table_slit *)table; 173 slit = (struct acpi_table_slit *)table;
152 174
153 /* downcast just for %llu vs %lu for i386/ia64 */ 175 if (!slit_valid(slit)) {
154 localities = (u32) slit->locality_count; 176 printk(KERN_INFO "ACPI: SLIT table looks invalid. Not used.\n");
155 177 return -EINVAL;
178 }
156 acpi_numa_slit_init(slit); 179 acpi_numa_slit_init(slit);
157 180
158 return 0; 181 return 0;
diff --git a/drivers/acpi/parser/psargs.c b/drivers/acpi/parser/psargs.c
index f1e8bf65e24e..e94463778845 100644
--- a/drivers/acpi/parser/psargs.c
+++ b/drivers/acpi/parser/psargs.c
@@ -268,7 +268,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
268 */ 268 */
269 if (ACPI_SUCCESS(status) && 269 if (ACPI_SUCCESS(status) &&
270 possible_method_call && (node->type == ACPI_TYPE_METHOD)) { 270 possible_method_call && (node->type == ACPI_TYPE_METHOD)) {
271 if (walk_state->op->common.aml_opcode == AML_UNLOAD_OP) { 271 if (walk_state->opcode == AML_UNLOAD_OP) {
272 /* 272 /*
273 * acpi_ps_get_next_namestring has increased the AML pointer, 273 * acpi_ps_get_next_namestring has increased the AML pointer,
274 * so we need to restore the saved AML pointer for method call. 274 * so we need to restore the saved AML pointer for method call.
@@ -691,7 +691,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
691 691
692 /* To support super_name arg of Unload */ 692 /* To support super_name arg of Unload */
693 693
694 if (walk_state->op->common.aml_opcode == AML_UNLOAD_OP) { 694 if (walk_state->opcode == AML_UNLOAD_OP) {
695 status = 695 status =
696 acpi_ps_get_next_namepath(walk_state, 696 acpi_ps_get_next_namepath(walk_state,
697 parser_state, arg, 697 parser_state, arg,
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index 386e5aa48834..9dd0fa93b9e1 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -86,7 +86,6 @@ static int acpi_processor_info_open_fs(struct inode *inode, struct file *file);
86static void acpi_processor_notify(acpi_handle handle, u32 event, void *data); 86static void acpi_processor_notify(acpi_handle handle, u32 event, void *data);
87static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu); 87static acpi_status acpi_processor_hotadd_init(acpi_handle handle, int *p_cpu);
88static int acpi_processor_handle_eject(struct acpi_processor *pr); 88static int acpi_processor_handle_eject(struct acpi_processor *pr);
89extern int acpi_processor_tstate_has_changed(struct acpi_processor *pr);
90 89
91 90
92static const struct acpi_device_id processor_device_ids[] = { 91static const struct acpi_device_id processor_device_ids[] = {
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 2dd2c1f3a01c..556ee1585192 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -1669,6 +1669,7 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
1669 return -EINVAL; 1669 return -EINVAL;
1670 } 1670 }
1671 1671
1672 dev->cpu = pr->id;
1672 for (i = 0; i < CPUIDLE_STATE_MAX; i++) { 1673 for (i = 0; i < CPUIDLE_STATE_MAX; i++) {
1673 dev->states[i].name[0] = '\0'; 1674 dev->states[i].name[0] = '\0';
1674 dev->states[i].desc[0] = '\0'; 1675 dev->states[i].desc[0] = '\0';
@@ -1738,7 +1739,7 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)
1738 1739
1739int acpi_processor_cst_has_changed(struct acpi_processor *pr) 1740int acpi_processor_cst_has_changed(struct acpi_processor *pr)
1740{ 1741{
1741 int ret; 1742 int ret = 0;
1742 1743
1743 if (boot_option_idle_override) 1744 if (boot_option_idle_override)
1744 return 0; 1745 return 0;
@@ -1756,8 +1757,10 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr)
1756 cpuidle_pause_and_lock(); 1757 cpuidle_pause_and_lock();
1757 cpuidle_disable_device(&pr->power.dev); 1758 cpuidle_disable_device(&pr->power.dev);
1758 acpi_processor_get_power_info(pr); 1759 acpi_processor_get_power_info(pr);
1759 acpi_processor_setup_cpuidle(pr); 1760 if (pr->flags.power) {
1760 ret = cpuidle_enable_device(&pr->power.dev); 1761 acpi_processor_setup_cpuidle(pr);
1762 ret = cpuidle_enable_device(&pr->power.dev);
1763 }
1761 cpuidle_resume_and_unlock(); 1764 cpuidle_resume_and_unlock();
1762 1765
1763 return ret; 1766 return ret;
@@ -1813,7 +1816,6 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr,
1813 if (pr->flags.power) { 1816 if (pr->flags.power) {
1814#ifdef CONFIG_CPU_IDLE 1817#ifdef CONFIG_CPU_IDLE
1815 acpi_processor_setup_cpuidle(pr); 1818 acpi_processor_setup_cpuidle(pr);
1816 pr->power.dev.cpu = pr->id;
1817 if (cpuidle_register_device(&pr->power.dev)) 1819 if (cpuidle_register_device(&pr->power.dev))
1818 return -EIO; 1820 return -EIO;
1819#endif 1821#endif
@@ -1850,8 +1852,7 @@ int acpi_processor_power_exit(struct acpi_processor *pr,
1850 return 0; 1852 return 0;
1851 1853
1852#ifdef CONFIG_CPU_IDLE 1854#ifdef CONFIG_CPU_IDLE
1853 if (pr->flags.power) 1855 cpuidle_unregister_device(&pr->power.dev);
1854 cpuidle_unregister_device(&pr->power.dev);
1855#endif 1856#endif
1856 pr->flags.power_setup_done = 0; 1857 pr->flags.power_setup_done = 0;
1857 1858
diff --git a/drivers/acpi/sleep/proc.c b/drivers/acpi/sleep/proc.c
index 8a5fe8710513..224c57c03381 100644
--- a/drivers/acpi/sleep/proc.c
+++ b/drivers/acpi/sleep/proc.c
@@ -495,6 +495,12 @@ static int __init acpi_sleep_proc_init(void)
495 acpi_root_dir, &acpi_system_alarm_fops); 495 acpi_root_dir, &acpi_system_alarm_fops);
496 496
497 acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL); 497 acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, NULL);
498 /*
499 * Disable the RTC event after installing RTC handler.
500 * Only when RTC alarm is set will it be enabled.
501 */
502 acpi_clear_event(ACPI_EVENT_RTC);
503 acpi_disable_event(ACPI_EVENT_RTC, 0);
498#endif /* HAVE_ACPI_LEGACY_ALARM */ 504#endif /* HAVE_ACPI_LEGACY_ALARM */
499 505
500 /* 'wakeup device' [R/W] */ 506 /* 'wakeup device' [R/W] */
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c
index 769f24855eb6..5bd2dec9a7ac 100644
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -77,7 +77,6 @@ static ssize_t acpi_table_show(struct kobject *kobj,
77 container_of(bin_attr, struct acpi_table_attr, attr); 77 container_of(bin_attr, struct acpi_table_attr, attr);
78 struct acpi_table_header *table_header = NULL; 78 struct acpi_table_header *table_header = NULL;
79 acpi_status status; 79 acpi_status status;
80 ssize_t ret_count = count;
81 80
82 status = 81 status =
83 acpi_get_table(table_attr->name, table_attr->instance, 82 acpi_get_table(table_attr->name, table_attr->instance,
@@ -85,18 +84,8 @@ static ssize_t acpi_table_show(struct kobject *kobj,
85 if (ACPI_FAILURE(status)) 84 if (ACPI_FAILURE(status))
86 return -ENODEV; 85 return -ENODEV;
87 86
88 if (offset >= table_header->length) { 87 return memory_read_from_buffer(buf, count, &offset,
89 ret_count = 0; 88 table_header, table_header->length);
90 goto end;
91 }
92
93 if (offset + ret_count > table_header->length)
94 ret_count = table_header->length - offset;
95
96 memcpy(buf, ((char *)table_header) + offset, ret_count);
97
98 end:
99 return ret_count;
100} 89}
101 90
102static void acpi_table_attr_init(struct acpi_table_attr *table_attr, 91static void acpi_table_attr_init(struct acpi_table_attr *table_attr,
diff --git a/drivers/acpi/tables/tbinstal.c b/drivers/acpi/tables/tbinstal.c
index 402f93e1ff20..5336ce88f89f 100644
--- a/drivers/acpi/tables/tbinstal.c
+++ b/drivers/acpi/tables/tbinstal.c
@@ -123,24 +123,13 @@ acpi_tb_add_table(struct acpi_table_desc *table_desc,
123 } 123 }
124 } 124 }
125 125
126 /* The table must be either an SSDT or a PSDT or an OEMx */ 126 /*
127 127 * Originally, we checked the table signature for "SSDT" or "PSDT" here.
128 if (!ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_PSDT)&& 128 * Next, we added support for OEMx tables, signature "OEM".
129 !ACPI_COMPARE_NAME(table_desc->pointer->signature, ACPI_SIG_SSDT)&& 129 * Valid tables were encountered with a null signature, so we've just
130 strncmp(table_desc->pointer->signature, "OEM", 3)) { 130 * given up on validating the signature, since it seems to be a waste
131 /* Check for a printable name */ 131 * of code. The original code was removed (05/2008).
132 if (acpi_ut_valid_acpi_name( 132 */
133 *(u32 *) table_desc->pointer->signature)) {
134 ACPI_ERROR((AE_INFO, "Table has invalid signature "
135 "[%4.4s], must be SSDT or PSDT",
136 table_desc->pointer->signature));
137 } else {
138 ACPI_ERROR((AE_INFO, "Table has invalid signature "
139 "(0x%8.8X), must be SSDT or PSDT",
140 *(u32 *) table_desc->pointer->signature));
141 }
142 return_ACPI_STATUS(AE_BAD_SIGNATURE);
143 }
144 133
145 (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES); 134 (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
146 135
diff --git a/drivers/acpi/tables/tbxface.c b/drivers/acpi/tables/tbxface.c
index fb57b93c2495..0e319604d3e7 100644
--- a/drivers/acpi/tables/tbxface.c
+++ b/drivers/acpi/tables/tbxface.c
@@ -540,7 +540,7 @@ static acpi_status acpi_tb_load_namespace(void)
540 acpi_tb_print_table_header(0, table); 540 acpi_tb_print_table_header(0, table);
541 541
542 if (no_auto_ssdt == 0) { 542 if (no_auto_ssdt == 0) {
543 printk(KERN_WARNING "ACPI: DSDT override uses original SSDTs unless \"acpi_no_auto_ssdt\""); 543 printk(KERN_WARNING "ACPI: DSDT override uses original SSDTs unless \"acpi_no_auto_ssdt\"\n");
544 } 544 }
545 } 545 }
546 546
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 504385b1f211..84c795fb9b1e 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -364,10 +364,17 @@ static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag)
364 if (flag & ACPI_TRIPS_CRITICAL) { 364 if (flag & ACPI_TRIPS_CRITICAL) {
365 status = acpi_evaluate_integer(tz->device->handle, 365 status = acpi_evaluate_integer(tz->device->handle,
366 "_CRT", NULL, &tz->trips.critical.temperature); 366 "_CRT", NULL, &tz->trips.critical.temperature);
367 if (ACPI_FAILURE(status)) { 367 /*
368 * Treat freezing temperatures as invalid as well; some
369 * BIOSes return really low values and cause reboots at startup.
370 * Below zero (Celcius) values clearly aren't right for sure..
371 * ... so lets discard those as invalid.
372 */
373 if (ACPI_FAILURE(status) ||
374 tz->trips.critical.temperature <= 2732) {
368 tz->trips.critical.flags.valid = 0; 375 tz->trips.critical.flags.valid = 0;
369 ACPI_EXCEPTION((AE_INFO, status, 376 ACPI_EXCEPTION((AE_INFO, status,
370 "No critical threshold")); 377 "No or invalid critical threshold"));
371 return -ENODEV; 378 return -ENODEV;
372 } else { 379 } else {
373 tz->trips.critical.flags.valid = 1; 380 tz->trips.critical.flags.valid = 1;
diff --git a/drivers/acpi/utilities/utmisc.c b/drivers/acpi/utilities/utmisc.c
index e4ba7192cd15..1f057b71db1a 100644
--- a/drivers/acpi/utilities/utmisc.c
+++ b/drivers/acpi/utilities/utmisc.c
@@ -1048,6 +1048,7 @@ acpi_ut_exception(char *module_name,
1048 va_start(args, format); 1048 va_start(args, format);
1049 acpi_os_vprintf(format, args); 1049 acpi_os_vprintf(format, args);
1050 acpi_os_printf(" [%X]\n", ACPI_CA_VERSION); 1050 acpi_os_printf(" [%X]\n", ACPI_CA_VERSION);
1051 va_end(args);
1051} 1052}
1052 1053
1053EXPORT_SYMBOL(acpi_ut_exception); 1054EXPORT_SYMBOL(acpi_ut_exception);
@@ -1063,7 +1064,6 @@ acpi_ut_warning(char *module_name, u32 line_number, char *format, ...)
1063 acpi_os_vprintf(format, args); 1064 acpi_os_vprintf(format, args);
1064 acpi_os_printf(" [%X]\n", ACPI_CA_VERSION); 1065 acpi_os_printf(" [%X]\n", ACPI_CA_VERSION);
1065 va_end(args); 1066 va_end(args);
1066 va_end(args);
1067} 1067}
1068 1068
1069void ACPI_INTERNAL_VAR_XFACE 1069void ACPI_INTERNAL_VAR_XFACE
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 5e5dda3a3027..d089c4519d45 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1713,7 +1713,8 @@ acpi_video_bus_get_devices(struct acpi_video_bus *video,
1713 1713
1714 status = acpi_video_bus_get_one_device(dev, video); 1714 status = acpi_video_bus_get_one_device(dev, video);
1715 if (ACPI_FAILURE(status)) { 1715 if (ACPI_FAILURE(status)) {
1716 ACPI_EXCEPTION((AE_INFO, status, "Cant attach device")); 1716 ACPI_DEBUG_PRINT((ACPI_DB_WARN,
1717 "Cant attach device"));
1717 continue; 1718 continue;
1718 } 1719 }
1719 } 1720 }
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 9bf2986a2788..ae8494944c45 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -651,9 +651,17 @@ config PATA_WINBOND_VLB
651 Support for the Winbond W83759A controller on Vesa Local Bus 651 Support for the Winbond W83759A controller on Vesa Local Bus
652 systems. 652 systems.
653 653
654config HAVE_PATA_PLATFORM
655 bool
656 help
657 This is an internal configuration node for any machine that
658 uses pata-platform driver to enable the relevant driver in the
659 configuration structure without having to submit endless patches
660 to update the PATA_PLATFORM entry.
661
654config PATA_PLATFORM 662config PATA_PLATFORM
655 tristate "Generic platform device PATA support" 663 tristate "Generic platform device PATA support"
656 depends on EMBEDDED || ARCH_RPC || PPC 664 depends on EMBEDDED || ARCH_RPC || PPC || HAVE_PATA_PLATFORM
657 help 665 help
658 This option enables support for generic directly connected ATA 666 This option enables support for generic directly connected ATA
659 devices commonly found on embedded systems. 667 devices commonly found on embedded systems.
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 544b7d6c617c..6a4a2a25d97a 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -89,6 +89,8 @@ enum {
89 board_ahci_sb600 = 3, 89 board_ahci_sb600 = 3,
90 board_ahci_mv = 4, 90 board_ahci_mv = 4,
91 board_ahci_sb700 = 5, 91 board_ahci_sb700 = 5,
92 board_ahci_mcp65 = 6,
93 board_ahci_nopmp = 7,
92 94
93 /* global controller registers */ 95 /* global controller registers */
94 HOST_CAP = 0x00, /* host capabilities */ 96 HOST_CAP = 0x00, /* host capabilities */
@@ -190,6 +192,7 @@ enum {
190 AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */ 192 AHCI_HFLAG_NO_PMP = (1 << 6), /* no PMP */
191 AHCI_HFLAG_NO_HOTPLUG = (1 << 7), /* ignore PxSERR.DIAG.N */ 193 AHCI_HFLAG_NO_HOTPLUG = (1 << 7), /* ignore PxSERR.DIAG.N */
192 AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */ 194 AHCI_HFLAG_SECT255 = (1 << 8), /* max 255 sectors */
195 AHCI_HFLAG_YES_NCQ = (1 << 9), /* force NCQ cap on */
193 196
194 /* ap->flags bits */ 197 /* ap->flags bits */
195 198
@@ -253,6 +256,8 @@ static void ahci_pmp_attach(struct ata_port *ap);
253static void ahci_pmp_detach(struct ata_port *ap); 256static void ahci_pmp_detach(struct ata_port *ap);
254static int ahci_softreset(struct ata_link *link, unsigned int *class, 257static int ahci_softreset(struct ata_link *link, unsigned int *class,
255 unsigned long deadline); 258 unsigned long deadline);
259static int ahci_sb600_softreset(struct ata_link *link, unsigned int *class,
260 unsigned long deadline);
256static int ahci_hardreset(struct ata_link *link, unsigned int *class, 261static int ahci_hardreset(struct ata_link *link, unsigned int *class,
257 unsigned long deadline); 262 unsigned long deadline);
258static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class, 263static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
@@ -329,6 +334,12 @@ static struct ata_port_operations ahci_p5wdh_ops = {
329 .hardreset = ahci_p5wdh_hardreset, 334 .hardreset = ahci_p5wdh_hardreset,
330}; 335};
331 336
337static struct ata_port_operations ahci_sb600_ops = {
338 .inherits = &ahci_ops,
339 .softreset = ahci_sb600_softreset,
340 .pmp_softreset = ahci_sb600_softreset,
341};
342
332#define AHCI_HFLAGS(flags) .private_data = (void *)(flags) 343#define AHCI_HFLAGS(flags) .private_data = (void *)(flags)
333 344
334static const struct ata_port_info ahci_port_info[] = { 345static const struct ata_port_info ahci_port_info[] = {
@@ -359,11 +370,11 @@ static const struct ata_port_info ahci_port_info[] = {
359 { 370 {
360 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | 371 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL |
361 AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_MSI | 372 AHCI_HFLAG_32BIT_ONLY | AHCI_HFLAG_NO_MSI |
362 AHCI_HFLAG_SECT255 | AHCI_HFLAG_NO_PMP), 373 AHCI_HFLAG_SECT255),
363 .flags = AHCI_FLAG_COMMON, 374 .flags = AHCI_FLAG_COMMON,
364 .pio_mask = 0x1f, /* pio0-4 */ 375 .pio_mask = 0x1f, /* pio0-4 */
365 .udma_mask = ATA_UDMA6, 376 .udma_mask = ATA_UDMA6,
366 .port_ops = &ahci_ops, 377 .port_ops = &ahci_sb600_ops,
367 }, 378 },
368 /* board_ahci_mv */ 379 /* board_ahci_mv */
369 { 380 {
@@ -377,8 +388,23 @@ static const struct ata_port_info ahci_port_info[] = {
377 }, 388 },
378 /* board_ahci_sb700 */ 389 /* board_ahci_sb700 */
379 { 390 {
380 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | 391 AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL),
381 AHCI_HFLAG_NO_PMP), 392 .flags = AHCI_FLAG_COMMON,
393 .pio_mask = 0x1f, /* pio0-4 */
394 .udma_mask = ATA_UDMA6,
395 .port_ops = &ahci_sb600_ops,
396 },
397 /* board_ahci_mcp65 */
398 {
399 AHCI_HFLAGS (AHCI_HFLAG_YES_NCQ),
400 .flags = AHCI_FLAG_COMMON,
401 .pio_mask = 0x1f, /* pio0-4 */
402 .udma_mask = ATA_UDMA6,
403 .port_ops = &ahci_ops,
404 },
405 /* board_ahci_nopmp */
406 {
407 AHCI_HFLAGS (AHCI_HFLAG_NO_PMP),
382 .flags = AHCI_FLAG_COMMON, 408 .flags = AHCI_FLAG_COMMON,
383 .pio_mask = 0x1f, /* pio0-4 */ 409 .pio_mask = 0x1f, /* pio0-4 */
384 .udma_mask = ATA_UDMA6, 410 .udma_mask = ATA_UDMA6,
@@ -438,14 +464,14 @@ static const struct pci_device_id ahci_pci_tbl[] = {
438 { PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251 }, /* VIA VT8251 */ 464 { PCI_VDEVICE(VIA, 0x6287), board_ahci_vt8251 }, /* VIA VT8251 */
439 465
440 /* NVIDIA */ 466 /* NVIDIA */
441 { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci }, /* MCP65 */ 467 { PCI_VDEVICE(NVIDIA, 0x044c), board_ahci_mcp65 }, /* MCP65 */
442 { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci }, /* MCP65 */ 468 { PCI_VDEVICE(NVIDIA, 0x044d), board_ahci_mcp65 }, /* MCP65 */
443 { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci }, /* MCP65 */ 469 { PCI_VDEVICE(NVIDIA, 0x044e), board_ahci_mcp65 }, /* MCP65 */
444 { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci }, /* MCP65 */ 470 { PCI_VDEVICE(NVIDIA, 0x044f), board_ahci_mcp65 }, /* MCP65 */
445 { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci }, /* MCP65 */ 471 { PCI_VDEVICE(NVIDIA, 0x045c), board_ahci_mcp65 }, /* MCP65 */
446 { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci }, /* MCP65 */ 472 { PCI_VDEVICE(NVIDIA, 0x045d), board_ahci_mcp65 }, /* MCP65 */
447 { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci }, /* MCP65 */ 473 { PCI_VDEVICE(NVIDIA, 0x045e), board_ahci_mcp65 }, /* MCP65 */
448 { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci }, /* MCP65 */ 474 { PCI_VDEVICE(NVIDIA, 0x045f), board_ahci_mcp65 }, /* MCP65 */
449 { PCI_VDEVICE(NVIDIA, 0x0550), board_ahci }, /* MCP67 */ 475 { PCI_VDEVICE(NVIDIA, 0x0550), board_ahci }, /* MCP67 */
450 { PCI_VDEVICE(NVIDIA, 0x0551), board_ahci }, /* MCP67 */ 476 { PCI_VDEVICE(NVIDIA, 0x0551), board_ahci }, /* MCP67 */
451 { PCI_VDEVICE(NVIDIA, 0x0552), board_ahci }, /* MCP67 */ 477 { PCI_VDEVICE(NVIDIA, 0x0552), board_ahci }, /* MCP67 */
@@ -508,9 +534,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
508 { PCI_VDEVICE(NVIDIA, 0x0bc7), board_ahci }, /* MCP7B */ 534 { PCI_VDEVICE(NVIDIA, 0x0bc7), board_ahci }, /* MCP7B */
509 535
510 /* SiS */ 536 /* SiS */
511 { PCI_VDEVICE(SI, 0x1184), board_ahci }, /* SiS 966 */ 537 { PCI_VDEVICE(SI, 0x1184), board_ahci_nopmp }, /* SiS 966 */
512 { PCI_VDEVICE(SI, 0x1185), board_ahci }, /* SiS 966 */ 538 { PCI_VDEVICE(SI, 0x1185), board_ahci_nopmp }, /* SiS 968 */
513 { PCI_VDEVICE(SI, 0x0186), board_ahci }, /* SiS 968 */ 539 { PCI_VDEVICE(SI, 0x0186), board_ahci_nopmp }, /* SiS 968 */
514 540
515 /* Marvell */ 541 /* Marvell */
516 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ 542 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */
@@ -624,12 +650,26 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
624 cap &= ~HOST_CAP_NCQ; 650 cap &= ~HOST_CAP_NCQ;
625 } 651 }
626 652
653 if (!(cap & HOST_CAP_NCQ) && (hpriv->flags & AHCI_HFLAG_YES_NCQ)) {
654 dev_printk(KERN_INFO, &pdev->dev,
655 "controller can do NCQ, turning on CAP_NCQ\n");
656 cap |= HOST_CAP_NCQ;
657 }
658
627 if ((cap & HOST_CAP_PMP) && (hpriv->flags & AHCI_HFLAG_NO_PMP)) { 659 if ((cap & HOST_CAP_PMP) && (hpriv->flags & AHCI_HFLAG_NO_PMP)) {
628 dev_printk(KERN_INFO, &pdev->dev, 660 dev_printk(KERN_INFO, &pdev->dev,
629 "controller can't do PMP, turning off CAP_PMP\n"); 661 "controller can't do PMP, turning off CAP_PMP\n");
630 cap &= ~HOST_CAP_PMP; 662 cap &= ~HOST_CAP_PMP;
631 } 663 }
632 664
665 if (pdev->vendor == PCI_VENDOR_ID_JMICRON && pdev->device == 0x2361 &&
666 port_map != 1) {
667 dev_printk(KERN_INFO, &pdev->dev,
668 "JMB361 has only one port, port_map 0x%x -> 0x%x\n",
669 port_map, 1);
670 port_map = 1;
671 }
672
633 /* 673 /*
634 * Temporary Marvell 6145 hack: PATA port presence 674 * Temporary Marvell 6145 hack: PATA port presence
635 * is asserted through the standard AHCI port 675 * is asserted through the standard AHCI port
@@ -1262,19 +1302,11 @@ static int ahci_exec_polled_cmd(struct ata_port *ap, int pmp,
1262 return 0; 1302 return 0;
1263} 1303}
1264 1304
1265static int ahci_check_ready(struct ata_link *link) 1305static int ahci_do_softreset(struct ata_link *link, unsigned int *class,
1266{ 1306 int pmp, unsigned long deadline,
1267 void __iomem *port_mmio = ahci_port_base(link->ap); 1307 int (*check_ready)(struct ata_link *link))
1268 u8 status = readl(port_mmio + PORT_TFDATA) & 0xFF;
1269
1270 return ata_check_ready(status);
1271}
1272
1273static int ahci_softreset(struct ata_link *link, unsigned int *class,
1274 unsigned long deadline)
1275{ 1308{
1276 struct ata_port *ap = link->ap; 1309 struct ata_port *ap = link->ap;
1277 int pmp = sata_srst_pmp(link);
1278 const char *reason = NULL; 1310 const char *reason = NULL;
1279 unsigned long now, msecs; 1311 unsigned long now, msecs;
1280 struct ata_taskfile tf; 1312 struct ata_taskfile tf;
@@ -1312,7 +1344,7 @@ static int ahci_softreset(struct ata_link *link, unsigned int *class,
1312 ahci_exec_polled_cmd(ap, pmp, &tf, 0, 0, 0); 1344 ahci_exec_polled_cmd(ap, pmp, &tf, 0, 0, 0);
1313 1345
1314 /* wait for link to become ready */ 1346 /* wait for link to become ready */
1315 rc = ata_wait_after_reset(link, deadline, ahci_check_ready); 1347 rc = ata_wait_after_reset(link, deadline, check_ready);
1316 /* link occupied, -ENODEV too is an error */ 1348 /* link occupied, -ENODEV too is an error */
1317 if (rc) { 1349 if (rc) {
1318 reason = "device not ready"; 1350 reason = "device not ready";
@@ -1328,6 +1360,72 @@ static int ahci_softreset(struct ata_link *link, unsigned int *class,
1328 return rc; 1360 return rc;
1329} 1361}
1330 1362
1363static int ahci_check_ready(struct ata_link *link)
1364{
1365 void __iomem *port_mmio = ahci_port_base(link->ap);
1366 u8 status = readl(port_mmio + PORT_TFDATA) & 0xFF;
1367
1368 return ata_check_ready(status);
1369}
1370
1371static int ahci_softreset(struct ata_link *link, unsigned int *class,
1372 unsigned long deadline)
1373{
1374 int pmp = sata_srst_pmp(link);
1375
1376 DPRINTK("ENTER\n");
1377
1378 return ahci_do_softreset(link, class, pmp, deadline, ahci_check_ready);
1379}
1380
1381static int ahci_sb600_check_ready(struct ata_link *link)
1382{
1383 void __iomem *port_mmio = ahci_port_base(link->ap);
1384 u8 status = readl(port_mmio + PORT_TFDATA) & 0xFF;
1385 u32 irq_status = readl(port_mmio + PORT_IRQ_STAT);
1386
1387 /*
1388 * There is no need to check TFDATA if BAD PMP is found due to HW bug,
1389 * which can save timeout delay.
1390 */
1391 if (irq_status & PORT_IRQ_BAD_PMP)
1392 return -EIO;
1393
1394 return ata_check_ready(status);
1395}
1396
1397static int ahci_sb600_softreset(struct ata_link *link, unsigned int *class,
1398 unsigned long deadline)
1399{
1400 struct ata_port *ap = link->ap;
1401 void __iomem *port_mmio = ahci_port_base(ap);
1402 int pmp = sata_srst_pmp(link);
1403 int rc;
1404 u32 irq_sts;
1405
1406 DPRINTK("ENTER\n");
1407
1408 rc = ahci_do_softreset(link, class, pmp, deadline,
1409 ahci_sb600_check_ready);
1410
1411 /*
1412 * Soft reset fails on some ATI chips with IPMS set when PMP
1413 * is enabled but SATA HDD/ODD is connected to SATA port,
1414 * do soft reset again to port 0.
1415 */
1416 if (rc == -EIO) {
1417 irq_sts = readl(port_mmio + PORT_IRQ_STAT);
1418 if (irq_sts & PORT_IRQ_BAD_PMP) {
1419 ata_link_printk(link, KERN_WARNING,
1420 "failed due to HW bug, retry pmp=0\n");
1421 rc = ahci_do_softreset(link, class, 0, deadline,
1422 ahci_check_ready);
1423 }
1424 }
1425
1426 return rc;
1427}
1428
1331static int ahci_hardreset(struct ata_link *link, unsigned int *class, 1429static int ahci_hardreset(struct ata_link *link, unsigned int *class,
1332 unsigned long deadline) 1430 unsigned long deadline)
1333{ 1431{
@@ -2118,7 +2216,8 @@ static void ahci_p5wdh_workaround(struct ata_host *host)
2118static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) 2216static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2119{ 2217{
2120 static int printed_version; 2218 static int printed_version;
2121 struct ata_port_info pi = ahci_port_info[ent->driver_data]; 2219 unsigned int board_id = ent->driver_data;
2220 struct ata_port_info pi = ahci_port_info[board_id];
2122 const struct ata_port_info *ppi[] = { &pi, NULL }; 2221 const struct ata_port_info *ppi[] = { &pi, NULL };
2123 struct device *dev = &pdev->dev; 2222 struct device *dev = &pdev->dev;
2124 struct ahci_host_priv *hpriv; 2223 struct ahci_host_priv *hpriv;
@@ -2167,6 +2266,11 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2167 return -ENOMEM; 2266 return -ENOMEM;
2168 hpriv->flags |= (unsigned long)pi.private_data; 2267 hpriv->flags |= (unsigned long)pi.private_data;
2169 2268
2269 /* MCP65 revision A1 and A2 can't do MSI */
2270 if (board_id == board_ahci_mcp65 &&
2271 (pdev->revision == 0xa1 || pdev->revision == 0xa2))
2272 hpriv->flags |= AHCI_HFLAG_NO_MSI;
2273
2170 if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev)) 2274 if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev))
2171 pci_intx(pdev, 1); 2275 pci_intx(pdev, 1);
2172 2276
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 81b7ae376951..a90ae03f56b2 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1043,6 +1043,13 @@ static int piix_broken_suspend(void)
1043 }, 1043 },
1044 }, 1044 },
1045 { 1045 {
1046 .ident = "TECRA M4",
1047 .matches = {
1048 DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
1049 DMI_MATCH(DMI_PRODUCT_NAME, "TECRA M4"),
1050 },
1051 },
1052 {
1046 .ident = "TECRA M5", 1053 .ident = "TECRA M5",
1047 .matches = { 1054 .matches = {
1048 DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), 1055 DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index cc816ca623d3..303fc0d2b978 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4297,7 +4297,7 @@ void ata_sg_clean(struct ata_queued_cmd *qc)
4297} 4297}
4298 4298
4299/** 4299/**
4300 * ata_check_atapi_dma - Check whether ATAPI DMA can be supported 4300 * atapi_check_dma - Check whether ATAPI DMA can be supported
4301 * @qc: Metadata associated with taskfile to check 4301 * @qc: Metadata associated with taskfile to check
4302 * 4302 *
4303 * Allow low-level driver to filter ATA PACKET commands, returning 4303 * Allow low-level driver to filter ATA PACKET commands, returning
@@ -4310,7 +4310,7 @@ void ata_sg_clean(struct ata_queued_cmd *qc)
4310 * RETURNS: 0 when ATAPI DMA can be used 4310 * RETURNS: 0 when ATAPI DMA can be used
4311 * nonzero otherwise 4311 * nonzero otherwise
4312 */ 4312 */
4313int ata_check_atapi_dma(struct ata_queued_cmd *qc) 4313int atapi_check_dma(struct ata_queued_cmd *qc)
4314{ 4314{
4315 struct ata_port *ap = qc->ap; 4315 struct ata_port *ap = qc->ap;
4316 4316
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 2e6e1622dc6d..57a43649a461 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -2343,8 +2343,8 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
2343{ 2343{
2344 struct scsi_cmnd *scmd = qc->scsicmd; 2344 struct scsi_cmnd *scmd = qc->scsicmd;
2345 struct ata_device *dev = qc->dev; 2345 struct ata_device *dev = qc->dev;
2346 int using_pio = (dev->flags & ATA_DFLAG_PIO);
2347 int nodata = (scmd->sc_data_direction == DMA_NONE); 2346 int nodata = (scmd->sc_data_direction == DMA_NONE);
2347 int using_pio = !nodata && (dev->flags & ATA_DFLAG_PIO);
2348 unsigned int nbytes; 2348 unsigned int nbytes;
2349 2349
2350 memset(qc->cdb, 0, dev->cdb_len); 2350 memset(qc->cdb, 0, dev->cdb_len);
@@ -2362,7 +2362,7 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
2362 ata_qc_set_pc_nbytes(qc); 2362 ata_qc_set_pc_nbytes(qc);
2363 2363
2364 /* check whether ATAPI DMA is safe */ 2364 /* check whether ATAPI DMA is safe */
2365 if (!using_pio && ata_check_atapi_dma(qc)) 2365 if (!nodata && !using_pio && atapi_check_dma(qc))
2366 using_pio = 1; 2366 using_pio = 1;
2367 2367
2368 /* Some controller variants snoop this value for Packet 2368 /* Some controller variants snoop this value for Packet
@@ -2402,13 +2402,11 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
2402 qc->tf.lbam = (nbytes & 0xFF); 2402 qc->tf.lbam = (nbytes & 0xFF);
2403 qc->tf.lbah = (nbytes >> 8); 2403 qc->tf.lbah = (nbytes >> 8);
2404 2404
2405 if (using_pio || nodata) { 2405 if (nodata)
2406 /* no data, or PIO data xfer */ 2406 qc->tf.protocol = ATAPI_PROT_NODATA;
2407 if (nodata) 2407 else if (using_pio)
2408 qc->tf.protocol = ATAPI_PROT_NODATA; 2408 qc->tf.protocol = ATAPI_PROT_PIO;
2409 else 2409 else {
2410 qc->tf.protocol = ATAPI_PROT_PIO;
2411 } else {
2412 /* DMA data xfer */ 2410 /* DMA data xfer */
2413 qc->tf.protocol = ATAPI_PROT_DMA; 2411 qc->tf.protocol = ATAPI_PROT_DMA;
2414 qc->tf.feature |= ATAPI_PKT_DMA; 2412 qc->tf.feature |= ATAPI_PKT_DMA;
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
index 4514283937ea..1cf803adbc95 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -106,7 +106,7 @@ extern void ata_sg_clean(struct ata_queued_cmd *qc);
106extern void ata_qc_free(struct ata_queued_cmd *qc); 106extern void ata_qc_free(struct ata_queued_cmd *qc);
107extern void ata_qc_issue(struct ata_queued_cmd *qc); 107extern void ata_qc_issue(struct ata_queued_cmd *qc);
108extern void __ata_qc_complete(struct ata_queued_cmd *qc); 108extern void __ata_qc_complete(struct ata_queued_cmd *qc);
109extern int ata_check_atapi_dma(struct ata_queued_cmd *qc); 109extern int atapi_check_dma(struct ata_queued_cmd *qc);
110extern void swap_buf_le16(u16 *buf, unsigned int buf_words); 110extern void swap_buf_le16(u16 *buf, unsigned int buf_words);
111extern void ata_dev_init(struct ata_device *dev); 111extern void ata_dev_init(struct ata_device *dev);
112extern void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp); 112extern void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp);
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index 3d39f9dfec5a..41b4361bbf6e 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -414,6 +414,7 @@ static struct pcmcia_device_id pcmcia_devices[] = {
414 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149), 414 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
415 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDEII", 0x547e66dc, 0xb3662674), 415 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDEII", 0x547e66dc, 0xb3662674),
416 PCMCIA_DEVICE_PROD_ID12("LOOKMEET", "CBIDE2 ", 0xe37be2b5, 0x8671043b), 416 PCMCIA_DEVICE_PROD_ID12("LOOKMEET", "CBIDE2 ", 0xe37be2b5, 0x8671043b),
417 PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF300", 0x7ed2ad87, 0x7e9e78ee),
417 PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF500", 0x7ed2ad87, 0x7a13045c), 418 PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF500", 0x7ed2ad87, 0x7a13045c),
418 PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79), 419 PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79),
419 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591), 420 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591),
@@ -424,6 +425,7 @@ static struct pcmcia_device_id pcmcia_devices[] = {
424 PCMCIA_DEVICE_PROD_ID12("SMI VENDOR", "SMI PRODUCT", 0x30896c92, 0x703cc5f6), 425 PCMCIA_DEVICE_PROD_ID12("SMI VENDOR", "SMI PRODUCT", 0x30896c92, 0x703cc5f6),
425 PCMCIA_DEVICE_PROD_ID12("TOSHIBA", "MK2001MPL", 0xb4585a1a, 0x3489e003), 426 PCMCIA_DEVICE_PROD_ID12("TOSHIBA", "MK2001MPL", 0xb4585a1a, 0x3489e003),
426 PCMCIA_DEVICE_PROD_ID1("TRANSCEND 512M ", 0xd0909443), 427 PCMCIA_DEVICE_PROD_ID1("TRANSCEND 512M ", 0xd0909443),
428 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF45", 0x709b1bf1, 0xf68b6f32),
427 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 429 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
428 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 430 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
429 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 431 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 60391e9a84db..28092bc50146 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -1322,6 +1322,9 @@ static int mv_port_start(struct ata_port *ap)
1322 goto out_port_free_dma_mem; 1322 goto out_port_free_dma_mem;
1323 memset(pp->crpb, 0, MV_CRPB_Q_SZ); 1323 memset(pp->crpb, 0, MV_CRPB_Q_SZ);
1324 1324
1325 /* 6041/6081 Rev. "C0" (and newer) are okay with async notify */
1326 if (hpriv->hp_flags & MV_HP_ERRATA_60X1C0)
1327 ap->flags |= ATA_FLAG_AN;
1325 /* 1328 /*
1326 * For GEN_I, there's no NCQ, so we only allocate a single sg_tbl. 1329 * For GEN_I, there's no NCQ, so we only allocate a single sg_tbl.
1327 * For later hardware, we need one unique sg_tbl per NCQ tag. 1330 * For later hardware, we need one unique sg_tbl per NCQ tag.
@@ -1592,6 +1595,24 @@ static unsigned int mv_qc_issue(struct ata_queued_cmd *qc)
1592 1595
1593 if ((qc->tf.protocol != ATA_PROT_DMA) && 1596 if ((qc->tf.protocol != ATA_PROT_DMA) &&
1594 (qc->tf.protocol != ATA_PROT_NCQ)) { 1597 (qc->tf.protocol != ATA_PROT_NCQ)) {
1598 static int limit_warnings = 10;
1599 /*
1600 * Errata SATA#16, SATA#24: warn if multiple DRQs expected.
1601 *
1602 * Someday, we might implement special polling workarounds
1603 * for these, but it all seems rather unnecessary since we
1604 * normally use only DMA for commands which transfer more
1605 * than a single block of data.
1606 *
1607 * Much of the time, this could just work regardless.
1608 * So for now, just log the incident, and allow the attempt.
1609 */
1610 if (limit_warnings && (qc->nbytes / qc->sect_size) > 1) {
1611 --limit_warnings;
1612 ata_link_printk(qc->dev->link, KERN_WARNING, DRV_NAME
1613 ": attempting PIO w/multiple DRQ: "
1614 "this may fail due to h/w errata\n");
1615 }
1595 /* 1616 /*
1596 * We're about to send a non-EDMA capable command to the 1617 * We're about to send a non-EDMA capable command to the
1597 * port. Turn off EDMA so there won't be problems accessing 1618 * port. Turn off EDMA so there won't be problems accessing
diff --git a/drivers/atm/eni.h b/drivers/atm/eni.h
index d04fefb0841f..e4c9525e60b3 100644
--- a/drivers/atm/eni.h
+++ b/drivers/atm/eni.h
@@ -18,7 +18,6 @@
18#include "midway.h" 18#include "midway.h"
19 19
20 20
21#define KERNEL_OFFSET 0xC0000000 /* kernel 0x0 is at phys 0xC0000000 */
22#define DEV_LABEL "eni" 21#define DEV_LABEL "eni"
23 22
24#define UBR_BUFFER (128*1024) /* UBR buffer size */ 23#define UBR_BUFFER (128*1024) /* UBR buffer size */
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
index ffc4a5a41946..ea495b21f916 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c
@@ -1542,7 +1542,8 @@ he_start(struct atm_dev *dev)
1542 /* initialize framer */ 1542 /* initialize framer */
1543 1543
1544#ifdef CONFIG_ATM_HE_USE_SUNI 1544#ifdef CONFIG_ATM_HE_USE_SUNI
1545 suni_init(he_dev->atm_dev); 1545 if (he_isMM(he_dev))
1546 suni_init(he_dev->atm_dev);
1546 if (he_dev->atm_dev->phy && he_dev->atm_dev->phy->start) 1547 if (he_dev->atm_dev->phy && he_dev->atm_dev->phy->start)
1547 he_dev->atm_dev->phy->start(he_dev->atm_dev); 1548 he_dev->atm_dev->phy->start(he_dev->atm_dev);
1548#endif /* CONFIG_ATM_HE_USE_SUNI */ 1549#endif /* CONFIG_ATM_HE_USE_SUNI */
@@ -1554,6 +1555,7 @@ he_start(struct atm_dev *dev)
1554 val = he_phy_get(he_dev->atm_dev, SUNI_TPOP_APM); 1555 val = he_phy_get(he_dev->atm_dev, SUNI_TPOP_APM);
1555 val = (val & ~SUNI_TPOP_APM_S) | (SUNI_TPOP_S_SDH << SUNI_TPOP_APM_S_SHIFT); 1556 val = (val & ~SUNI_TPOP_APM_S) | (SUNI_TPOP_S_SDH << SUNI_TPOP_APM_S_SHIFT);
1556 he_phy_put(he_dev->atm_dev, val, SUNI_TPOP_APM); 1557 he_phy_put(he_dev->atm_dev, val, SUNI_TPOP_APM);
1558 he_phy_put(he_dev->atm_dev, SUNI_TACP_IUCHP_CLP, SUNI_TACP_IUCHP);
1557 } 1559 }
1558 1560
1559 /* 5.1.12 enable transmit and receive */ 1561 /* 5.1.12 enable transmit and receive */
@@ -2844,10 +2846,15 @@ he_ioctl(struct atm_dev *atm_dev, unsigned int cmd, void __user *arg)
2844 if (copy_from_user(&reg, arg, 2846 if (copy_from_user(&reg, arg,
2845 sizeof(struct he_ioctl_reg))) 2847 sizeof(struct he_ioctl_reg)))
2846 return -EFAULT; 2848 return -EFAULT;
2847 2849
2848 spin_lock_irqsave(&he_dev->global_lock, flags); 2850 spin_lock_irqsave(&he_dev->global_lock, flags);
2849 switch (reg.type) { 2851 switch (reg.type) {
2850 case HE_REGTYPE_PCI: 2852 case HE_REGTYPE_PCI:
2853 if (reg.addr < 0 || reg.addr >= HE_REGMAP_SIZE) {
2854 err = -EINVAL;
2855 break;
2856 }
2857
2851 reg.val = he_readl(he_dev, reg.addr); 2858 reg.val = he_readl(he_dev, reg.addr);
2852 break; 2859 break;
2853 case HE_REGTYPE_RCM: 2860 case HE_REGTYPE_RCM:
diff --git a/drivers/atm/he.h b/drivers/atm/he.h
index fe6cd15a78a4..b87d6ccabac1 100644
--- a/drivers/atm/he.h
+++ b/drivers/atm/he.h
@@ -267,13 +267,7 @@ struct he_dev {
267 267
268 char prod_id[30]; 268 char prod_id[30];
269 char mac_addr[6]; 269 char mac_addr[6];
270 int media; /* 270 int media;
271 * 0x26 = HE155 MM
272 * 0x27 = HE622 MM
273 * 0x46 = HE155 SM
274 * 0x47 = HE622 SM
275 */
276
277 271
278 unsigned int vcibits, vpibits; 272 unsigned int vcibits, vpibits;
279 unsigned int cells_per_row; 273 unsigned int cells_per_row;
@@ -392,6 +386,7 @@ struct he_vcc
392#define HE_DEV(dev) ((struct he_dev *) (dev)->dev_data) 386#define HE_DEV(dev) ((struct he_dev *) (dev)->dev_data)
393 387
394#define he_is622(dev) ((dev)->media & 0x1) 388#define he_is622(dev) ((dev)->media & 0x1)
389#define he_isMM(dev) ((dev)->media & 0x20)
395 390
396#define HE_REGMAP_SIZE 0x100000 391#define HE_REGMAP_SIZE 0x100000
397 392
@@ -876,8 +871,8 @@ struct he_vcc
876#define M_SN 0x3a /* integer */ 871#define M_SN 0x3a /* integer */
877#define MEDIA 0x3e /* integer */ 872#define MEDIA 0x3e /* integer */
878#define HE155MM 0x26 873#define HE155MM 0x26
879#define HE155SM 0x27 874#define HE622MM 0x27
880#define HE622MM 0x46 875#define HE155SM 0x46
881#define HE622SM 0x47 876#define HE622SM 0x47
882#define MAC_ADDR 0x42 /* char[] */ 877#define MAC_ADDR 0x42 /* char[] */
883 878
diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index 5c28ca7380ff..139fce6968a6 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -2562,17 +2562,11 @@ static int __devinit ia_start(struct atm_dev *dev)
2562 error = suni_init(dev); 2562 error = suni_init(dev);
2563 if (error) 2563 if (error)
2564 goto err_free_rx; 2564 goto err_free_rx;
2565 /* 2565 if (dev->phy->start) {
2566 * Enable interrupt on loss of signal 2566 error = dev->phy->start(dev);
2567 * SUNI_RSOP_CIE - 0x10 2567 if (error)
2568 * SUNI_RSOP_CIE_LOSE - 0x04 2568 goto err_free_rx;
2569 */ 2569 }
2570 ia_phy_put(dev, ia_phy_get(dev, 0x10) | 0x04, 0x10);
2571#ifndef MODULE
2572 error = dev->phy->start(dev);
2573 if (error)
2574 goto err_free_rx;
2575#endif
2576 /* Get iadev->carrier_detect status */ 2570 /* Get iadev->carrier_detect status */
2577 IaFrontEndIntr(iadev); 2571 IaFrontEndIntr(iadev);
2578 } 2572 }
@@ -3198,6 +3192,8 @@ static int __devinit ia_init_one(struct pci_dev *pdev,
3198 IF_INIT(printk("dev_id = 0x%x iadev->LineRate = %d \n", (u32)dev, 3192 IF_INIT(printk("dev_id = 0x%x iadev->LineRate = %d \n", (u32)dev,
3199 iadev->LineRate);) 3193 iadev->LineRate);)
3200 3194
3195 pci_set_drvdata(pdev, dev);
3196
3201 ia_dev[iadev_count] = iadev; 3197 ia_dev[iadev_count] = iadev;
3202 _ia_dev[iadev_count] = dev; 3198 _ia_dev[iadev_count] = dev;
3203 iadev_count++; 3199 iadev_count++;
@@ -3219,8 +3215,6 @@ static int __devinit ia_init_one(struct pci_dev *pdev,
3219 iadev->next_board = ia_boards; 3215 iadev->next_board = ia_boards;
3220 ia_boards = dev; 3216 ia_boards = dev;
3221 3217
3222 pci_set_drvdata(pdev, dev);
3223
3224 return 0; 3218 return 0;
3225 3219
3226err_out_deregister_dev: 3220err_out_deregister_dev:
@@ -3238,9 +3232,14 @@ static void __devexit ia_remove_one(struct pci_dev *pdev)
3238 struct atm_dev *dev = pci_get_drvdata(pdev); 3232 struct atm_dev *dev = pci_get_drvdata(pdev);
3239 IADEV *iadev = INPH_IA_DEV(dev); 3233 IADEV *iadev = INPH_IA_DEV(dev);
3240 3234
3241 ia_phy_put(dev, ia_phy_get(dev,0x10) & ~(0x4), 0x10); 3235 /* Disable phy interrupts */
3236 ia_phy_put(dev, ia_phy_get(dev, SUNI_RSOP_CIE) & ~(SUNI_RSOP_CIE_LOSE),
3237 SUNI_RSOP_CIE);
3242 udelay(1); 3238 udelay(1);
3243 3239
3240 if (dev->phy && dev->phy->stop)
3241 dev->phy->stop(dev);
3242
3244 /* De-register device */ 3243 /* De-register device */
3245 free_irq(iadev->irq, dev); 3244 free_irq(iadev->irq, dev);
3246 iadev_count--; 3245 iadev_count--;
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 422cfcad486d..ee0a51a3a41d 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -762,6 +762,7 @@ static void device_remove_class_symlinks(struct device *dev)
762/** 762/**
763 * dev_set_name - set a device name 763 * dev_set_name - set a device name
764 * @dev: device 764 * @dev: device
765 * @fmt: format string for the device's name
765 */ 766 */
766int dev_set_name(struct device *dev, const char *fmt, ...) 767int dev_set_name(struct device *dev, const char *fmt, ...)
767{ 768{
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index e336b05fe4a7..5f1e1cc6165a 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -53,15 +53,16 @@
53#include <linux/scatterlist.h> 53#include <linux/scatterlist.h>
54 54
55#define CCISS_DRIVER_VERSION(maj,min,submin) ((maj<<16)|(min<<8)|(submin)) 55#define CCISS_DRIVER_VERSION(maj,min,submin) ((maj<<16)|(min<<8)|(submin))
56#define DRIVER_NAME "HP CISS Driver (v 3.6.14)" 56#define DRIVER_NAME "HP CISS Driver (v 3.6.20)"
57#define DRIVER_VERSION CCISS_DRIVER_VERSION(3,6,14) 57#define DRIVER_VERSION CCISS_DRIVER_VERSION(3, 6, 20)
58 58
59/* Embedded module documentation macros - see modules.h */ 59/* Embedded module documentation macros - see modules.h */
60MODULE_AUTHOR("Hewlett-Packard Company"); 60MODULE_AUTHOR("Hewlett-Packard Company");
61MODULE_DESCRIPTION("Driver for HP Controller SA5xxx SA6xxx version 3.6.14"); 61MODULE_DESCRIPTION("Driver for HP Smart Array Controllers");
62MODULE_SUPPORTED_DEVICE("HP SA5i SA5i+ SA532 SA5300 SA5312 SA641 SA642 SA6400" 62MODULE_SUPPORTED_DEVICE("HP SA5i SA5i+ SA532 SA5300 SA5312 SA641 SA642 SA6400"
63 " SA6i P600 P800 P400 P400i E200 E200i E500"); 63 " SA6i P600 P800 P400 P400i E200 E200i E500 P700m"
64MODULE_VERSION("3.6.14"); 64 " Smart Array G2 Series SAS/SATA Controllers");
65MODULE_VERSION("3.6.20");
65MODULE_LICENSE("GPL"); 66MODULE_LICENSE("GPL");
66 67
67#include "cciss_cmd.h" 68#include "cciss_cmd.h"
@@ -90,6 +91,11 @@ static const struct pci_device_id cciss_pci_device_id[] = {
90 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSD, 0x103C, 0x3215}, 91 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSD, 0x103C, 0x3215},
91 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3237}, 92 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x3237},
92 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x323D}, 93 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSC, 0x103C, 0x323D},
94 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3241},
95 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3243},
96 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3245},
97 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3247},
98 {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSE, 0x103C, 0x3249},
93 {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 99 {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
94 PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, 100 PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0},
95 {0,} 101 {0,}
@@ -123,6 +129,11 @@ static struct board_type products[] = {
123 {0x3215103C, "Smart Array E200i", &SA5_access, 120}, 129 {0x3215103C, "Smart Array E200i", &SA5_access, 120},
124 {0x3237103C, "Smart Array E500", &SA5_access, 512}, 130 {0x3237103C, "Smart Array E500", &SA5_access, 512},
125 {0x323D103C, "Smart Array P700m", &SA5_access, 512}, 131 {0x323D103C, "Smart Array P700m", &SA5_access, 512},
132 {0x3241103C, "Smart Array P212", &SA5_access, 384},
133 {0x3243103C, "Smart Array P410", &SA5_access, 384},
134 {0x3245103C, "Smart Array P410i", &SA5_access, 384},
135 {0x3247103C, "Smart Array P411", &SA5_access, 384},
136 {0x3249103C, "Smart Array P812", &SA5_access, 384},
126 {0xFFFF103C, "Unknown Smart Array", &SA5_access, 120}, 137 {0xFFFF103C, "Unknown Smart Array", &SA5_access, 120},
127}; 138};
128 139
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index d307bf26af58..2d854bb9373e 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -749,7 +749,7 @@ config NVRAM
749if RTC_LIB=n 749if RTC_LIB=n
750 750
751config RTC 751config RTC
752 tristate "Enhanced Real Time Clock Support" 752 tristate "Enhanced Real Time Clock Support (legacy PC RTC driver)"
753 depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \ 753 depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \
754 && !ARM && !SUPERH && !S390 && !AVR32 754 && !ARM && !SUPERH && !S390 && !AVR32
755 ---help--- 755 ---help---
@@ -1036,9 +1036,9 @@ config HPET
1036 non-periodic and/or periodic. 1036 non-periodic and/or periodic.
1037 1037
1038config HPET_RTC_IRQ 1038config HPET_RTC_IRQ
1039 bool "HPET Control RTC IRQ" if !HPET_EMULATE_RTC 1039 bool
1040 default n 1040 default HPET_EMULATE_RTC
1041 depends on HPET 1041 depends on RTC && HPET
1042 help 1042 help
1043 If you say Y here, you will disable RTC_IRQ in drivers/char/rtc.c. It 1043 If you say Y here, you will disable RTC_IRQ in drivers/char/rtc.c. It
1044 is assumed the platform called hpet_alloc with the RTC IRQ values for 1044 is assumed the platform called hpet_alloc with the RTC IRQ values for
diff --git a/drivers/char/agp/agp.h b/drivers/char/agp/agp.h
index 99e6a406efb4..81e14bea54bd 100644
--- a/drivers/char/agp/agp.h
+++ b/drivers/char/agp/agp.h
@@ -99,8 +99,8 @@ struct agp_bridge_driver {
99 const void *aperture_sizes; 99 const void *aperture_sizes;
100 int num_aperture_sizes; 100 int num_aperture_sizes;
101 enum aper_size_type size_type; 101 enum aper_size_type size_type;
102 int cant_use_aperture; 102 bool cant_use_aperture;
103 int needs_scratch_page; 103 bool needs_scratch_page;
104 const struct gatt_mask *masks; 104 const struct gatt_mask *masks;
105 int (*fetch_size)(void); 105 int (*fetch_size)(void);
106 int (*configure)(void); 106 int (*configure)(void);
@@ -278,7 +278,7 @@ void agp_generic_destroy_page(void *addr, int flags);
278void agp_free_key(int key); 278void agp_free_key(int key);
279int agp_num_entries(void); 279int agp_num_entries(void);
280u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 mode, u32 command); 280u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 mode, u32 command);
281void agp_device_command(u32 command, int agp_v3); 281void agp_device_command(u32 command, bool agp_v3);
282int agp_3_5_enable(struct agp_bridge_data *bridge); 282int agp_3_5_enable(struct agp_bridge_data *bridge);
283void global_cache_flush(void); 283void global_cache_flush(void);
284void get_agp_version(struct agp_bridge_data *bridge); 284void get_agp_version(struct agp_bridge_data *bridge);
diff --git a/drivers/char/agp/alpha-agp.c b/drivers/char/agp/alpha-agp.c
index e77c17838c8a..5da89f6c6c25 100644
--- a/drivers/char/agp/alpha-agp.c
+++ b/drivers/char/agp/alpha-agp.c
@@ -80,7 +80,7 @@ static void alpha_core_agp_enable(struct agp_bridge_data *bridge, u32 mode)
80 agp->mode.bits.enable = 1; 80 agp->mode.bits.enable = 1;
81 agp->ops->configure(agp); 81 agp->ops->configure(agp);
82 82
83 agp_device_command(agp->mode.lw, 0); 83 agp_device_command(agp->mode.lw, false);
84} 84}
85 85
86static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start, 86static int alpha_core_agp_insert_memory(struct agp_memory *mem, off_t pg_start,
@@ -126,7 +126,7 @@ struct agp_bridge_driver alpha_core_agp_driver = {
126 .aperture_sizes = alpha_core_agp_sizes, 126 .aperture_sizes = alpha_core_agp_sizes,
127 .num_aperture_sizes = 1, 127 .num_aperture_sizes = 1,
128 .size_type = FIXED_APER_SIZE, 128 .size_type = FIXED_APER_SIZE,
129 .cant_use_aperture = 1, 129 .cant_use_aperture = true,
130 .masks = NULL, 130 .masks = NULL,
131 131
132 .fetch_size = alpha_core_agp_fetch_size, 132 .fetch_size = alpha_core_agp_fetch_size,
diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c
index 96bdb9296b07..39a0718bc616 100644
--- a/drivers/char/agp/amd-k7-agp.c
+++ b/drivers/char/agp/amd-k7-agp.c
@@ -314,9 +314,9 @@ static int amd_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
314 j++; 314 j++;
315 } 315 }
316 316
317 if (mem->is_flushed == FALSE) { 317 if (!mem->is_flushed) {
318 global_cache_flush(); 318 global_cache_flush();
319 mem->is_flushed = TRUE; 319 mem->is_flushed = true;
320 } 320 }
321 321
322 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 322 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c
index d8200ac8f8cb..13665db363d6 100644
--- a/drivers/char/agp/amd64-agp.c
+++ b/drivers/char/agp/amd64-agp.c
@@ -90,9 +90,9 @@ static int amd64_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
90 j++; 90 j++;
91 } 91 }
92 92
93 if (mem->is_flushed == FALSE) { 93 if (!mem->is_flushed) {
94 global_cache_flush(); 94 global_cache_flush();
95 mem->is_flushed = TRUE; 95 mem->is_flushed = true;
96 } 96 }
97 97
98 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 98 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c
index 55c97f623242..3a4566c0d84f 100644
--- a/drivers/char/agp/ati-agp.c
+++ b/drivers/char/agp/ati-agp.c
@@ -287,10 +287,10 @@ static int ati_insert_memory(struct agp_memory * mem,
287 j++; 287 j++;
288 } 288 }
289 289
290 if (mem->is_flushed == FALSE) { 290 if (!mem->is_flushed) {
291 /*CACHE_FLUSH(); */ 291 /*CACHE_FLUSH(); */
292 global_cache_flush(); 292 global_cache_flush();
293 mem->is_flushed = TRUE; 293 mem->is_flushed = true;
294 } 294 }
295 295
296 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 296 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
@@ -458,6 +458,10 @@ static struct agp_device_ids ati_agp_device_ids[] __devinitdata =
458 .chipset_name = "IGP9100/M", 458 .chipset_name = "IGP9100/M",
459 }, 459 },
460 { 460 {
461 .device_id = PCI_DEVICE_ID_ATI_RS350_133,
462 .chipset_name = "IGP9000/M",
463 },
464 {
461 .device_id = PCI_DEVICE_ID_ATI_RS350_200, 465 .device_id = PCI_DEVICE_ID_ATI_RS350_200,
462 .chipset_name = "IGP9100/M", 466 .chipset_name = "IGP9100/M",
463 }, 467 },
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c
index b1bdd015165c..1ec87104e68c 100644
--- a/drivers/char/agp/backend.c
+++ b/drivers/char/agp/backend.c
@@ -188,10 +188,10 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge)
188 188
189err_out: 189err_out:
190 if (bridge->driver->needs_scratch_page) { 190 if (bridge->driver->needs_scratch_page) {
191 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 191 void *va = gart_to_virt(bridge->scratch_page_real);
192 AGP_PAGE_DESTROY_UNMAP); 192
193 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 193 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP);
194 AGP_PAGE_DESTROY_FREE); 194 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE);
195 } 195 }
196 if (got_gatt) 196 if (got_gatt)
197 bridge->driver->free_gatt_table(bridge); 197 bridge->driver->free_gatt_table(bridge);
@@ -215,10 +215,10 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge)
215 215
216 if (bridge->driver->agp_destroy_page && 216 if (bridge->driver->agp_destroy_page &&
217 bridge->driver->needs_scratch_page) { 217 bridge->driver->needs_scratch_page) {
218 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 218 void *va = gart_to_virt(bridge->scratch_page_real);
219 AGP_PAGE_DESTROY_UNMAP); 219
220 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 220 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP);
221 AGP_PAGE_DESTROY_FREE); 221 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE);
222 } 222 }
223} 223}
224 224
diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
index 39275794fe63..58c57cb2518c 100644
--- a/drivers/char/agp/compat_ioctl.c
+++ b/drivers/char/agp/compat_ioctl.c
@@ -214,7 +214,7 @@ long compat_agp_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
214 ret_val = -EINVAL; 214 ret_val = -EINVAL;
215 goto ioctl_out; 215 goto ioctl_out;
216 } 216 }
217 if ((agp_fe.backend_acquired != TRUE) && 217 if ((agp_fe.backend_acquired != true) &&
218 (cmd != AGPIOC_ACQUIRE32)) { 218 (cmd != AGPIOC_ACQUIRE32)) {
219 ret_val = -EBUSY; 219 ret_val = -EBUSY;
220 goto ioctl_out; 220 goto ioctl_out;
diff --git a/drivers/char/agp/efficeon-agp.c b/drivers/char/agp/efficeon-agp.c
index cac0009cebc1..8ca6f262ef85 100644
--- a/drivers/char/agp/efficeon-agp.c
+++ b/drivers/char/agp/efficeon-agp.c
@@ -249,9 +249,9 @@ static int efficeon_insert_memory(struct agp_memory * mem, off_t pg_start, int t
249 if (type != 0 || mem->type != 0) 249 if (type != 0 || mem->type != 0)
250 return -EINVAL; 250 return -EINVAL;
251 251
252 if (mem->is_flushed == FALSE) { 252 if (!mem->is_flushed) {
253 global_cache_flush(); 253 global_cache_flush();
254 mem->is_flushed = TRUE; 254 mem->is_flushed = true;
255 } 255 }
256 256
257 last_page = NULL; 257 last_page = NULL;
@@ -329,7 +329,7 @@ static const struct agp_bridge_driver efficeon_driver = {
329 .free_gatt_table = efficeon_free_gatt_table, 329 .free_gatt_table = efficeon_free_gatt_table,
330 .insert_memory = efficeon_insert_memory, 330 .insert_memory = efficeon_insert_memory,
331 .remove_memory = efficeon_remove_memory, 331 .remove_memory = efficeon_remove_memory,
332 .cant_use_aperture = 0, // 1 might be faster? 332 .cant_use_aperture = false, // true might be faster?
333 333
334 // Generic 334 // Generic
335 .alloc_by_type = agp_generic_alloc_by_type, 335 .alloc_by_type = agp_generic_alloc_by_type,
diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
index 857b26227d87..e6cb1ab03e06 100644
--- a/drivers/char/agp/frontend.c
+++ b/drivers/char/agp/frontend.c
@@ -395,7 +395,7 @@ static int agp_remove_controller(struct agp_controller *controller)
395 395
396 if (agp_fe.current_controller == controller) { 396 if (agp_fe.current_controller == controller) {
397 agp_fe.current_controller = NULL; 397 agp_fe.current_controller = NULL;
398 agp_fe.backend_acquired = FALSE; 398 agp_fe.backend_acquired = false;
399 agp_backend_release(agp_bridge); 399 agp_backend_release(agp_bridge);
400 } 400 }
401 kfree(controller); 401 kfree(controller);
@@ -443,7 +443,7 @@ static void agp_controller_release_current(struct agp_controller *controller,
443 } 443 }
444 444
445 agp_fe.current_controller = NULL; 445 agp_fe.current_controller = NULL;
446 agp_fe.used_by_controller = FALSE; 446 agp_fe.used_by_controller = false;
447 agp_backend_release(agp_bridge); 447 agp_backend_release(agp_bridge);
448} 448}
449 449
@@ -573,7 +573,7 @@ static int agp_mmap(struct file *file, struct vm_area_struct *vma)
573 573
574 mutex_lock(&(agp_fe.agp_mutex)); 574 mutex_lock(&(agp_fe.agp_mutex));
575 575
576 if (agp_fe.backend_acquired != TRUE) 576 if (agp_fe.backend_acquired != true)
577 goto out_eperm; 577 goto out_eperm;
578 578
579 if (!(test_bit(AGP_FF_IS_VALID, &priv->access_flags))) 579 if (!(test_bit(AGP_FF_IS_VALID, &priv->access_flags)))
@@ -768,7 +768,7 @@ int agpioc_acquire_wrap(struct agp_file_private *priv)
768 768
769 atomic_inc(&agp_bridge->agp_in_use); 769 atomic_inc(&agp_bridge->agp_in_use);
770 770
771 agp_fe.backend_acquired = TRUE; 771 agp_fe.backend_acquired = true;
772 772
773 controller = agp_find_controller_by_pid(priv->my_pid); 773 controller = agp_find_controller_by_pid(priv->my_pid);
774 774
@@ -778,7 +778,7 @@ int agpioc_acquire_wrap(struct agp_file_private *priv)
778 controller = agp_create_controller(priv->my_pid); 778 controller = agp_create_controller(priv->my_pid);
779 779
780 if (controller == NULL) { 780 if (controller == NULL) {
781 agp_fe.backend_acquired = FALSE; 781 agp_fe.backend_acquired = false;
782 agp_backend_release(agp_bridge); 782 agp_backend_release(agp_bridge);
783 return -ENOMEM; 783 return -ENOMEM;
784 } 784 }
@@ -981,7 +981,7 @@ static long agp_ioctl(struct file *file,
981 ret_val = -EINVAL; 981 ret_val = -EINVAL;
982 goto ioctl_out; 982 goto ioctl_out;
983 } 983 }
984 if ((agp_fe.backend_acquired != TRUE) && 984 if ((agp_fe.backend_acquired != true) &&
985 (cmd != AGPIOC_ACQUIRE)) { 985 (cmd != AGPIOC_ACQUIRE)) {
986 ret_val = -EBUSY; 986 ret_val = -EBUSY;
987 goto ioctl_out; 987 goto ioctl_out;
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c
index 7fc0c99a3a58..564daaa6c7d0 100644
--- a/drivers/char/agp/generic.c
+++ b/drivers/char/agp/generic.c
@@ -96,13 +96,13 @@ EXPORT_SYMBOL(agp_flush_chipset);
96void agp_alloc_page_array(size_t size, struct agp_memory *mem) 96void agp_alloc_page_array(size_t size, struct agp_memory *mem)
97{ 97{
98 mem->memory = NULL; 98 mem->memory = NULL;
99 mem->vmalloc_flag = 0; 99 mem->vmalloc_flag = false;
100 100
101 if (size <= 2*PAGE_SIZE) 101 if (size <= 2*PAGE_SIZE)
102 mem->memory = kmalloc(size, GFP_KERNEL | __GFP_NORETRY); 102 mem->memory = kmalloc(size, GFP_KERNEL | __GFP_NORETRY);
103 if (mem->memory == NULL) { 103 if (mem->memory == NULL) {
104 mem->memory = vmalloc(size); 104 mem->memory = vmalloc(size);
105 mem->vmalloc_flag = 1; 105 mem->vmalloc_flag = true;
106 } 106 }
107} 107}
108EXPORT_SYMBOL(agp_alloc_page_array); 108EXPORT_SYMBOL(agp_alloc_page_array);
@@ -188,7 +188,7 @@ void agp_free_memory(struct agp_memory *curr)
188 if (curr == NULL) 188 if (curr == NULL)
189 return; 189 return;
190 190
191 if (curr->is_bound == TRUE) 191 if (curr->is_bound)
192 agp_unbind_memory(curr); 192 agp_unbind_memory(curr);
193 193
194 if (curr->type >= AGP_USER_TYPES) { 194 if (curr->type >= AGP_USER_TYPES) {
@@ -202,10 +202,13 @@ void agp_free_memory(struct agp_memory *curr)
202 } 202 }
203 if (curr->page_count != 0) { 203 if (curr->page_count != 0) {
204 for (i = 0; i < curr->page_count; i++) { 204 for (i = 0; i < curr->page_count; i++) {
205 curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i]), AGP_PAGE_DESTROY_UNMAP); 205 curr->memory[i] = (unsigned long)gart_to_virt(curr->memory[i]);
206 curr->bridge->driver->agp_destroy_page((void *)curr->memory[i],
207 AGP_PAGE_DESTROY_UNMAP);
206 } 208 }
207 for (i = 0; i < curr->page_count; i++) { 209 for (i = 0; i < curr->page_count; i++) {
208 curr->bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[i]), AGP_PAGE_DESTROY_FREE); 210 curr->bridge->driver->agp_destroy_page((void *)curr->memory[i],
211 AGP_PAGE_DESTROY_FREE);
209 } 212 }
210 } 213 }
211 agp_free_key(curr->key); 214 agp_free_key(curr->key);
@@ -411,20 +414,20 @@ int agp_bind_memory(struct agp_memory *curr, off_t pg_start)
411 if (curr == NULL) 414 if (curr == NULL)
412 return -EINVAL; 415 return -EINVAL;
413 416
414 if (curr->is_bound == TRUE) { 417 if (curr->is_bound) {
415 printk(KERN_INFO PFX "memory %p is already bound!\n", curr); 418 printk(KERN_INFO PFX "memory %p is already bound!\n", curr);
416 return -EINVAL; 419 return -EINVAL;
417 } 420 }
418 if (curr->is_flushed == FALSE) { 421 if (!curr->is_flushed) {
419 curr->bridge->driver->cache_flush(); 422 curr->bridge->driver->cache_flush();
420 curr->is_flushed = TRUE; 423 curr->is_flushed = true;
421 } 424 }
422 ret_val = curr->bridge->driver->insert_memory(curr, pg_start, curr->type); 425 ret_val = curr->bridge->driver->insert_memory(curr, pg_start, curr->type);
423 426
424 if (ret_val != 0) 427 if (ret_val != 0)
425 return ret_val; 428 return ret_val;
426 429
427 curr->is_bound = TRUE; 430 curr->is_bound = true;
428 curr->pg_start = pg_start; 431 curr->pg_start = pg_start;
429 return 0; 432 return 0;
430} 433}
@@ -446,7 +449,7 @@ int agp_unbind_memory(struct agp_memory *curr)
446 if (curr == NULL) 449 if (curr == NULL)
447 return -EINVAL; 450 return -EINVAL;
448 451
449 if (curr->is_bound != TRUE) { 452 if (!curr->is_bound) {
450 printk(KERN_INFO PFX "memory %p was not bound!\n", curr); 453 printk(KERN_INFO PFX "memory %p was not bound!\n", curr);
451 return -EINVAL; 454 return -EINVAL;
452 } 455 }
@@ -456,7 +459,7 @@ int agp_unbind_memory(struct agp_memory *curr)
456 if (ret_val != 0) 459 if (ret_val != 0)
457 return ret_val; 460 return ret_val;
458 461
459 curr->is_bound = FALSE; 462 curr->is_bound = false;
460 curr->pg_start = 0; 463 curr->pg_start = 0;
461 return 0; 464 return 0;
462} 465}
@@ -754,7 +757,7 @@ u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 requested_mode
754EXPORT_SYMBOL(agp_collect_device_status); 757EXPORT_SYMBOL(agp_collect_device_status);
755 758
756 759
757void agp_device_command(u32 bridge_agpstat, int agp_v3) 760void agp_device_command(u32 bridge_agpstat, bool agp_v3)
758{ 761{
759 struct pci_dev *device = NULL; 762 struct pci_dev *device = NULL;
760 int mode; 763 int mode;
@@ -818,7 +821,7 @@ void agp_generic_enable(struct agp_bridge_data *bridge, u32 requested_mode)
818 /* If we have 3.5, we can do the isoch stuff. */ 821 /* If we have 3.5, we can do the isoch stuff. */
819 if (bridge->minor_version >= 5) 822 if (bridge->minor_version >= 5)
820 agp_3_5_enable(bridge); 823 agp_3_5_enable(bridge);
821 agp_device_command(bridge_agpstat, TRUE); 824 agp_device_command(bridge_agpstat, true);
822 return; 825 return;
823 } else { 826 } else {
824 /* Disable calibration cycle in RX91<1> when not in AGP3.0 mode of operation.*/ 827 /* Disable calibration cycle in RX91<1> when not in AGP3.0 mode of operation.*/
@@ -835,7 +838,7 @@ void agp_generic_enable(struct agp_bridge_data *bridge, u32 requested_mode)
835 } 838 }
836 839
837 /* AGP v<3 */ 840 /* AGP v<3 */
838 agp_device_command(bridge_agpstat, FALSE); 841 agp_device_command(bridge_agpstat, false);
839} 842}
840EXPORT_SYMBOL(agp_generic_enable); 843EXPORT_SYMBOL(agp_generic_enable);
841 844
@@ -1083,9 +1086,9 @@ int agp_generic_insert_memory(struct agp_memory * mem, off_t pg_start, int type)
1083 j++; 1086 j++;
1084 } 1087 }
1085 1088
1086 if (mem->is_flushed == FALSE) { 1089 if (!mem->is_flushed) {
1087 bridge->driver->cache_flush(); 1090 bridge->driver->cache_flush();
1088 mem->is_flushed = TRUE; 1091 mem->is_flushed = true;
1089 } 1092 }
1090 1093
1091 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 1094 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
diff --git a/drivers/char/agp/hp-agp.c b/drivers/char/agp/hp-agp.c
index cbb0444467ba..80d7317f85c9 100644
--- a/drivers/char/agp/hp-agp.c
+++ b/drivers/char/agp/hp-agp.c
@@ -353,9 +353,9 @@ hp_zx1_insert_memory (struct agp_memory *mem, off_t pg_start, int type)
353 j++; 353 j++;
354 } 354 }
355 355
356 if (mem->is_flushed == FALSE) { 356 if (!mem->is_flushed) {
357 global_cache_flush(); 357 global_cache_flush();
358 mem->is_flushed = TRUE; 358 mem->is_flushed = true;
359 } 359 }
360 360
361 for (i = 0, j = io_pg_start; i < mem->page_count; i++) { 361 for (i = 0, j = io_pg_start; i < mem->page_count; i++) {
@@ -437,7 +437,7 @@ const struct agp_bridge_driver hp_zx1_driver = {
437 .agp_alloc_page = agp_generic_alloc_page, 437 .agp_alloc_page = agp_generic_alloc_page,
438 .agp_destroy_page = agp_generic_destroy_page, 438 .agp_destroy_page = agp_generic_destroy_page,
439 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 439 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
440 .cant_use_aperture = 1, 440 .cant_use_aperture = true,
441}; 441};
442 442
443static int __init 443static int __init
diff --git a/drivers/char/agp/i460-agp.c b/drivers/char/agp/i460-agp.c
index 76f581c85a7d..e587eebebc67 100644
--- a/drivers/char/agp/i460-agp.c
+++ b/drivers/char/agp/i460-agp.c
@@ -580,7 +580,7 @@ const struct agp_bridge_driver intel_i460_driver = {
580 .alloc_by_type = agp_generic_alloc_by_type, 580 .alloc_by_type = agp_generic_alloc_by_type,
581 .free_by_type = agp_generic_free_by_type, 581 .free_by_type = agp_generic_free_by_type,
582 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 582 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
583 .cant_use_aperture = 1, 583 .cant_use_aperture = true,
584}; 584};
585 585
586static int __devinit agp_intel_i460_probe(struct pci_dev *pdev, 586static int __devinit agp_intel_i460_probe(struct pci_dev *pdev,
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index eeea50a1d22a..df702642ab8f 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -34,6 +34,12 @@
34#define PCI_DEVICE_ID_INTEL_Q33_IG 0x29D2 34#define PCI_DEVICE_ID_INTEL_Q33_IG 0x29D2
35#define PCI_DEVICE_ID_INTEL_IGD_HB 0x2A40 35#define PCI_DEVICE_ID_INTEL_IGD_HB 0x2A40
36#define PCI_DEVICE_ID_INTEL_IGD_IG 0x2A42 36#define PCI_DEVICE_ID_INTEL_IGD_IG 0x2A42
37#define PCI_DEVICE_ID_INTEL_IGD_E_HB 0x2E00
38#define PCI_DEVICE_ID_INTEL_IGD_E_IG 0x2E02
39#define PCI_DEVICE_ID_INTEL_Q45_HB 0x2E10
40#define PCI_DEVICE_ID_INTEL_Q45_IG 0x2E12
41#define PCI_DEVICE_ID_INTEL_G45_HB 0x2E20
42#define PCI_DEVICE_ID_INTEL_G45_IG 0x2E22
37 43
38/* cover 915 and 945 variants */ 44/* cover 915 and 945 variants */
39#define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \ 45#define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \
@@ -55,6 +61,10 @@
55 agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \ 61 agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \
56 agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q33_HB) 62 agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q33_HB)
57 63
64#define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_E_HB || \
65 agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \
66 agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB)
67
58extern int agp_memory_reserved; 68extern int agp_memory_reserved;
59 69
60 70
@@ -80,8 +90,13 @@ extern int agp_memory_reserved;
80#define I915_PTEADDR 0x1C 90#define I915_PTEADDR 0x1C
81#define I915_GMCH_GMS_STOLEN_48M (0x6 << 4) 91#define I915_GMCH_GMS_STOLEN_48M (0x6 << 4)
82#define I915_GMCH_GMS_STOLEN_64M (0x7 << 4) 92#define I915_GMCH_GMS_STOLEN_64M (0x7 << 4)
83#define G33_GMCH_GMS_STOLEN_128M (0x8 << 4) 93#define G33_GMCH_GMS_STOLEN_128M (0x8 << 4)
84#define G33_GMCH_GMS_STOLEN_256M (0x9 << 4) 94#define G33_GMCH_GMS_STOLEN_256M (0x9 << 4)
95#define INTEL_GMCH_GMS_STOLEN_96M (0xa << 4)
96#define INTEL_GMCH_GMS_STOLEN_160M (0xb << 4)
97#define INTEL_GMCH_GMS_STOLEN_224M (0xc << 4)
98#define INTEL_GMCH_GMS_STOLEN_352M (0xd << 4)
99
85#define I915_IFPADDR 0x60 100#define I915_IFPADDR 0x60
86 101
87/* Intel 965G registers */ 102/* Intel 965G registers */
@@ -325,7 +340,7 @@ static int intel_i810_insert_entries(struct agp_memory *mem, off_t pg_start,
325out: 340out:
326 ret = 0; 341 ret = 0;
327out_err: 342out_err:
328 mem->is_flushed = 1; 343 mem->is_flushed = true;
329 return ret; 344 return ret;
330} 345}
331 346
@@ -418,9 +433,11 @@ static void intel_i810_free_by_type(struct agp_memory *curr)
418 if (curr->page_count == 4) 433 if (curr->page_count == 4)
419 i8xx_destroy_pages(gart_to_virt(curr->memory[0])); 434 i8xx_destroy_pages(gart_to_virt(curr->memory[0]));
420 else { 435 else {
421 agp_bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[0]), 436 void *va = gart_to_virt(curr->memory[0]);
437
438 agp_bridge->driver->agp_destroy_page(va,
422 AGP_PAGE_DESTROY_UNMAP); 439 AGP_PAGE_DESTROY_UNMAP);
423 agp_bridge->driver->agp_destroy_page(gart_to_virt(curr->memory[0]), 440 agp_bridge->driver->agp_destroy_page(va,
424 AGP_PAGE_DESTROY_FREE); 441 AGP_PAGE_DESTROY_FREE);
425 } 442 }
426 agp_free_page_array(curr); 443 agp_free_page_array(curr);
@@ -504,6 +521,10 @@ static void intel_i830_init_gtt_entries(void)
504 size = 512; 521 size = 512;
505 } 522 }
506 size += 4; 523 size += 4;
524 } else if (IS_G4X) {
525 /* On 4 series hardware, GTT stolen is separate from graphics
526 * stolen, ignore it in stolen gtt entries counting */
527 size = 0;
507 } else { 528 } else {
508 /* On previous hardware, the GTT size was just what was 529 /* On previous hardware, the GTT size was just what was
509 * required to map the aperture. 530 * required to map the aperture.
@@ -552,30 +573,54 @@ static void intel_i830_init_gtt_entries(void)
552 break; 573 break;
553 case I915_GMCH_GMS_STOLEN_48M: 574 case I915_GMCH_GMS_STOLEN_48M:
554 /* Check it's really I915G */ 575 /* Check it's really I915G */
555 if (IS_I915 || IS_I965 || IS_G33) 576 if (IS_I915 || IS_I965 || IS_G33 || IS_G4X)
556 gtt_entries = MB(48) - KB(size); 577 gtt_entries = MB(48) - KB(size);
557 else 578 else
558 gtt_entries = 0; 579 gtt_entries = 0;
559 break; 580 break;
560 case I915_GMCH_GMS_STOLEN_64M: 581 case I915_GMCH_GMS_STOLEN_64M:
561 /* Check it's really I915G */ 582 /* Check it's really I915G */
562 if (IS_I915 || IS_I965 || IS_G33) 583 if (IS_I915 || IS_I965 || IS_G33 || IS_G4X)
563 gtt_entries = MB(64) - KB(size); 584 gtt_entries = MB(64) - KB(size);
564 else 585 else
565 gtt_entries = 0; 586 gtt_entries = 0;
566 break; 587 break;
567 case G33_GMCH_GMS_STOLEN_128M: 588 case G33_GMCH_GMS_STOLEN_128M:
568 if (IS_G33) 589 if (IS_G33 || IS_I965 || IS_G4X)
569 gtt_entries = MB(128) - KB(size); 590 gtt_entries = MB(128) - KB(size);
570 else 591 else
571 gtt_entries = 0; 592 gtt_entries = 0;
572 break; 593 break;
573 case G33_GMCH_GMS_STOLEN_256M: 594 case G33_GMCH_GMS_STOLEN_256M:
574 if (IS_G33) 595 if (IS_G33 || IS_I965 || IS_G4X)
575 gtt_entries = MB(256) - KB(size); 596 gtt_entries = MB(256) - KB(size);
576 else 597 else
577 gtt_entries = 0; 598 gtt_entries = 0;
578 break; 599 break;
600 case INTEL_GMCH_GMS_STOLEN_96M:
601 if (IS_I965 || IS_G4X)
602 gtt_entries = MB(96) - KB(size);
603 else
604 gtt_entries = 0;
605 break;
606 case INTEL_GMCH_GMS_STOLEN_160M:
607 if (IS_I965 || IS_G4X)
608 gtt_entries = MB(160) - KB(size);
609 else
610 gtt_entries = 0;
611 break;
612 case INTEL_GMCH_GMS_STOLEN_224M:
613 if (IS_I965 || IS_G4X)
614 gtt_entries = MB(224) - KB(size);
615 else
616 gtt_entries = 0;
617 break;
618 case INTEL_GMCH_GMS_STOLEN_352M:
619 if (IS_I965 || IS_G4X)
620 gtt_entries = MB(352) - KB(size);
621 else
622 gtt_entries = 0;
623 break;
579 default: 624 default:
580 gtt_entries = 0; 625 gtt_entries = 0;
581 break; 626 break;
@@ -793,7 +838,7 @@ static int intel_i830_insert_entries(struct agp_memory *mem, off_t pg_start,
793out: 838out:
794 ret = 0; 839 ret = 0;
795out_err: 840out_err:
796 mem->is_flushed = 1; 841 mem->is_flushed = true;
797 return ret; 842 return ret;
798} 843}
799 844
@@ -903,7 +948,7 @@ static void intel_i9xx_setup_flush(void)
903 intel_private.ifp_resource.flags = IORESOURCE_MEM; 948 intel_private.ifp_resource.flags = IORESOURCE_MEM;
904 949
905 /* Setup chipset flush for 915 */ 950 /* Setup chipset flush for 915 */
906 if (IS_I965 || IS_G33) { 951 if (IS_I965 || IS_G33 || IS_G4X) {
907 intel_i965_g33_setup_chipset_flush(); 952 intel_i965_g33_setup_chipset_flush();
908 } else { 953 } else {
909 intel_i915_setup_chipset_flush(); 954 intel_i915_setup_chipset_flush();
@@ -1020,7 +1065,7 @@ static int intel_i915_insert_entries(struct agp_memory *mem, off_t pg_start,
1020 out: 1065 out:
1021 ret = 0; 1066 ret = 0;
1022 out_err: 1067 out_err:
1023 mem->is_flushed = 1; 1068 mem->is_flushed = true;
1024 return ret; 1069 return ret;
1025} 1070}
1026 1071
@@ -1134,53 +1179,64 @@ static unsigned long intel_i965_mask_memory(struct agp_bridge_data *bridge,
1134 return addr | bridge->driver->masks[type].mask; 1179 return addr | bridge->driver->masks[type].mask;
1135} 1180}
1136 1181
1182static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size)
1183{
1184 switch (agp_bridge->dev->device) {
1185 case PCI_DEVICE_ID_INTEL_IGD_HB:
1186 case PCI_DEVICE_ID_INTEL_IGD_E_HB:
1187 case PCI_DEVICE_ID_INTEL_Q45_HB:
1188 case PCI_DEVICE_ID_INTEL_G45_HB:
1189 *gtt_offset = *gtt_size = MB(2);
1190 break;
1191 default:
1192 *gtt_offset = *gtt_size = KB(512);
1193 }
1194}
1195
1137/* The intel i965 automatically initializes the agp aperture during POST. 1196/* The intel i965 automatically initializes the agp aperture during POST.
1138 * Use the memory already set aside for in the GTT. 1197 * Use the memory already set aside for in the GTT.
1139 */ 1198 */
1140static int intel_i965_create_gatt_table(struct agp_bridge_data *bridge) 1199static int intel_i965_create_gatt_table(struct agp_bridge_data *bridge)
1141{ 1200{
1142 int page_order; 1201 int page_order;
1143 struct aper_size_info_fixed *size; 1202 struct aper_size_info_fixed *size;
1144 int num_entries; 1203 int num_entries;
1145 u32 temp; 1204 u32 temp;
1146 int gtt_offset, gtt_size; 1205 int gtt_offset, gtt_size;
1147 1206
1148 size = agp_bridge->current_size; 1207 size = agp_bridge->current_size;
1149 page_order = size->page_order; 1208 page_order = size->page_order;
1150 num_entries = size->num_entries; 1209 num_entries = size->num_entries;
1151 agp_bridge->gatt_table_real = NULL; 1210 agp_bridge->gatt_table_real = NULL;
1152 1211
1153 pci_read_config_dword(intel_private.pcidev, I915_MMADDR, &temp); 1212 pci_read_config_dword(intel_private.pcidev, I915_MMADDR, &temp);
1154 1213
1155 temp &= 0xfff00000; 1214 temp &= 0xfff00000;
1156 1215
1157 if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_HB) 1216 intel_i965_get_gtt_range(&gtt_offset, &gtt_size);
1158 gtt_offset = gtt_size = MB(2);
1159 else
1160 gtt_offset = gtt_size = KB(512);
1161 1217
1162 intel_private.gtt = ioremap((temp + gtt_offset) , gtt_size); 1218 intel_private.gtt = ioremap((temp + gtt_offset) , gtt_size);
1163 1219
1164 if (!intel_private.gtt) 1220 if (!intel_private.gtt)
1165 return -ENOMEM; 1221 return -ENOMEM;
1166 1222
1167 intel_private.registers = ioremap(temp, 128 * 4096); 1223 intel_private.registers = ioremap(temp, 128 * 4096);
1168 if (!intel_private.registers) { 1224 if (!intel_private.registers) {
1169 iounmap(intel_private.gtt); 1225 iounmap(intel_private.gtt);
1170 return -ENOMEM; 1226 return -ENOMEM;
1171 } 1227 }
1172 1228
1173 temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; 1229 temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000;
1174 global_cache_flush(); /* FIXME: ? */ 1230 global_cache_flush(); /* FIXME: ? */
1175 1231
1176 /* we have to call this as early as possible after the MMIO base address is known */ 1232 /* we have to call this as early as possible after the MMIO base address is known */
1177 intel_i830_init_gtt_entries(); 1233 intel_i830_init_gtt_entries();
1178 1234
1179 agp_bridge->gatt_table = NULL; 1235 agp_bridge->gatt_table = NULL;
1180 1236
1181 agp_bridge->gatt_bus_addr = temp; 1237 agp_bridge->gatt_bus_addr = temp;
1182 1238
1183 return 0; 1239 return 0;
1184} 1240}
1185 1241
1186 1242
@@ -1656,7 +1712,7 @@ static const struct agp_bridge_driver intel_810_driver = {
1656 .aperture_sizes = intel_i810_sizes, 1712 .aperture_sizes = intel_i810_sizes,
1657 .size_type = FIXED_APER_SIZE, 1713 .size_type = FIXED_APER_SIZE,
1658 .num_aperture_sizes = 2, 1714 .num_aperture_sizes = 2,
1659 .needs_scratch_page = TRUE, 1715 .needs_scratch_page = true,
1660 .configure = intel_i810_configure, 1716 .configure = intel_i810_configure,
1661 .fetch_size = intel_i810_fetch_size, 1717 .fetch_size = intel_i810_fetch_size,
1662 .cleanup = intel_i810_cleanup, 1718 .cleanup = intel_i810_cleanup,
@@ -1697,7 +1753,7 @@ static const struct agp_bridge_driver intel_815_driver = {
1697 .free_by_type = agp_generic_free_by_type, 1753 .free_by_type = agp_generic_free_by_type,
1698 .agp_alloc_page = agp_generic_alloc_page, 1754 .agp_alloc_page = agp_generic_alloc_page,
1699 .agp_destroy_page = agp_generic_destroy_page, 1755 .agp_destroy_page = agp_generic_destroy_page,
1700 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 1756 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
1701}; 1757};
1702 1758
1703static const struct agp_bridge_driver intel_830_driver = { 1759static const struct agp_bridge_driver intel_830_driver = {
@@ -1705,7 +1761,7 @@ static const struct agp_bridge_driver intel_830_driver = {
1705 .aperture_sizes = intel_i830_sizes, 1761 .aperture_sizes = intel_i830_sizes,
1706 .size_type = FIXED_APER_SIZE, 1762 .size_type = FIXED_APER_SIZE,
1707 .num_aperture_sizes = 4, 1763 .num_aperture_sizes = 4,
1708 .needs_scratch_page = TRUE, 1764 .needs_scratch_page = true,
1709 .configure = intel_i830_configure, 1765 .configure = intel_i830_configure,
1710 .fetch_size = intel_i830_fetch_size, 1766 .fetch_size = intel_i830_fetch_size,
1711 .cleanup = intel_i830_cleanup, 1767 .cleanup = intel_i830_cleanup,
@@ -1876,7 +1932,7 @@ static const struct agp_bridge_driver intel_915_driver = {
1876 .aperture_sizes = intel_i830_sizes, 1932 .aperture_sizes = intel_i830_sizes,
1877 .size_type = FIXED_APER_SIZE, 1933 .size_type = FIXED_APER_SIZE,
1878 .num_aperture_sizes = 4, 1934 .num_aperture_sizes = 4,
1879 .needs_scratch_page = TRUE, 1935 .needs_scratch_page = true,
1880 .configure = intel_i915_configure, 1936 .configure = intel_i915_configure,
1881 .fetch_size = intel_i9xx_fetch_size, 1937 .fetch_size = intel_i9xx_fetch_size,
1882 .cleanup = intel_i915_cleanup, 1938 .cleanup = intel_i915_cleanup,
@@ -1898,28 +1954,28 @@ static const struct agp_bridge_driver intel_915_driver = {
1898}; 1954};
1899 1955
1900static const struct agp_bridge_driver intel_i965_driver = { 1956static const struct agp_bridge_driver intel_i965_driver = {
1901 .owner = THIS_MODULE, 1957 .owner = THIS_MODULE,
1902 .aperture_sizes = intel_i830_sizes, 1958 .aperture_sizes = intel_i830_sizes,
1903 .size_type = FIXED_APER_SIZE, 1959 .size_type = FIXED_APER_SIZE,
1904 .num_aperture_sizes = 4, 1960 .num_aperture_sizes = 4,
1905 .needs_scratch_page = TRUE, 1961 .needs_scratch_page = true,
1906 .configure = intel_i915_configure, 1962 .configure = intel_i915_configure,
1907 .fetch_size = intel_i9xx_fetch_size, 1963 .fetch_size = intel_i9xx_fetch_size,
1908 .cleanup = intel_i915_cleanup, 1964 .cleanup = intel_i915_cleanup,
1909 .tlb_flush = intel_i810_tlbflush, 1965 .tlb_flush = intel_i810_tlbflush,
1910 .mask_memory = intel_i965_mask_memory, 1966 .mask_memory = intel_i965_mask_memory,
1911 .masks = intel_i810_masks, 1967 .masks = intel_i810_masks,
1912 .agp_enable = intel_i810_agp_enable, 1968 .agp_enable = intel_i810_agp_enable,
1913 .cache_flush = global_cache_flush, 1969 .cache_flush = global_cache_flush,
1914 .create_gatt_table = intel_i965_create_gatt_table, 1970 .create_gatt_table = intel_i965_create_gatt_table,
1915 .free_gatt_table = intel_i830_free_gatt_table, 1971 .free_gatt_table = intel_i830_free_gatt_table,
1916 .insert_memory = intel_i915_insert_entries, 1972 .insert_memory = intel_i915_insert_entries,
1917 .remove_memory = intel_i915_remove_entries, 1973 .remove_memory = intel_i915_remove_entries,
1918 .alloc_by_type = intel_i830_alloc_by_type, 1974 .alloc_by_type = intel_i830_alloc_by_type,
1919 .free_by_type = intel_i810_free_by_type, 1975 .free_by_type = intel_i810_free_by_type,
1920 .agp_alloc_page = agp_generic_alloc_page, 1976 .agp_alloc_page = agp_generic_alloc_page,
1921 .agp_destroy_page = agp_generic_destroy_page, 1977 .agp_destroy_page = agp_generic_destroy_page,
1922 .agp_type_to_mask_type = intel_i830_type_to_mask_type, 1978 .agp_type_to_mask_type = intel_i830_type_to_mask_type,
1923 .chipset_flush = intel_i915_chipset_flush, 1979 .chipset_flush = intel_i915_chipset_flush,
1924}; 1980};
1925 1981
@@ -1948,28 +2004,28 @@ static const struct agp_bridge_driver intel_7505_driver = {
1948}; 2004};
1949 2005
1950static const struct agp_bridge_driver intel_g33_driver = { 2006static const struct agp_bridge_driver intel_g33_driver = {
1951 .owner = THIS_MODULE, 2007 .owner = THIS_MODULE,
1952 .aperture_sizes = intel_i830_sizes, 2008 .aperture_sizes = intel_i830_sizes,
1953 .size_type = FIXED_APER_SIZE, 2009 .size_type = FIXED_APER_SIZE,
1954 .num_aperture_sizes = 4, 2010 .num_aperture_sizes = 4,
1955 .needs_scratch_page = TRUE, 2011 .needs_scratch_page = true,
1956 .configure = intel_i915_configure, 2012 .configure = intel_i915_configure,
1957 .fetch_size = intel_i9xx_fetch_size, 2013 .fetch_size = intel_i9xx_fetch_size,
1958 .cleanup = intel_i915_cleanup, 2014 .cleanup = intel_i915_cleanup,
1959 .tlb_flush = intel_i810_tlbflush, 2015 .tlb_flush = intel_i810_tlbflush,
1960 .mask_memory = intel_i965_mask_memory, 2016 .mask_memory = intel_i965_mask_memory,
1961 .masks = intel_i810_masks, 2017 .masks = intel_i810_masks,
1962 .agp_enable = intel_i810_agp_enable, 2018 .agp_enable = intel_i810_agp_enable,
1963 .cache_flush = global_cache_flush, 2019 .cache_flush = global_cache_flush,
1964 .create_gatt_table = intel_i915_create_gatt_table, 2020 .create_gatt_table = intel_i915_create_gatt_table,
1965 .free_gatt_table = intel_i830_free_gatt_table, 2021 .free_gatt_table = intel_i830_free_gatt_table,
1966 .insert_memory = intel_i915_insert_entries, 2022 .insert_memory = intel_i915_insert_entries,
1967 .remove_memory = intel_i915_remove_entries, 2023 .remove_memory = intel_i915_remove_entries,
1968 .alloc_by_type = intel_i830_alloc_by_type, 2024 .alloc_by_type = intel_i830_alloc_by_type,
1969 .free_by_type = intel_i810_free_by_type, 2025 .free_by_type = intel_i810_free_by_type,
1970 .agp_alloc_page = agp_generic_alloc_page, 2026 .agp_alloc_page = agp_generic_alloc_page,
1971 .agp_destroy_page = agp_generic_destroy_page, 2027 .agp_destroy_page = agp_generic_destroy_page,
1972 .agp_type_to_mask_type = intel_i830_type_to_mask_type, 2028 .agp_type_to_mask_type = intel_i830_type_to_mask_type,
1973 .chipset_flush = intel_i915_chipset_flush, 2029 .chipset_flush = intel_i915_chipset_flush,
1974}; 2030};
1975 2031
@@ -2063,6 +2119,12 @@ static const struct intel_driver_description {
2063 NULL, &intel_g33_driver }, 2119 NULL, &intel_g33_driver },
2064 { PCI_DEVICE_ID_INTEL_IGD_HB, PCI_DEVICE_ID_INTEL_IGD_IG, 0, 2120 { PCI_DEVICE_ID_INTEL_IGD_HB, PCI_DEVICE_ID_INTEL_IGD_IG, 0,
2065 "Intel Integrated Graphics Device", NULL, &intel_i965_driver }, 2121 "Intel Integrated Graphics Device", NULL, &intel_i965_driver },
2122 { PCI_DEVICE_ID_INTEL_IGD_E_HB, PCI_DEVICE_ID_INTEL_IGD_E_IG, 0,
2123 "Intel Integrated Graphics Device", NULL, &intel_i965_driver },
2124 { PCI_DEVICE_ID_INTEL_Q45_HB, PCI_DEVICE_ID_INTEL_Q45_IG, 0,
2125 "Q45/Q43", NULL, &intel_i965_driver },
2126 { PCI_DEVICE_ID_INTEL_G45_HB, PCI_DEVICE_ID_INTEL_G45_IG, 0,
2127 "G45/G43", NULL, &intel_i965_driver },
2066 { 0, 0, 0, NULL, NULL, NULL } 2128 { 0, 0, 0, NULL, NULL, NULL }
2067}; 2129};
2068 2130
@@ -2254,6 +2316,9 @@ static struct pci_device_id agp_intel_pci_table[] = {
2254 ID(PCI_DEVICE_ID_INTEL_Q35_HB), 2316 ID(PCI_DEVICE_ID_INTEL_Q35_HB),
2255 ID(PCI_DEVICE_ID_INTEL_Q33_HB), 2317 ID(PCI_DEVICE_ID_INTEL_Q33_HB),
2256 ID(PCI_DEVICE_ID_INTEL_IGD_HB), 2318 ID(PCI_DEVICE_ID_INTEL_IGD_HB),
2319 ID(PCI_DEVICE_ID_INTEL_IGD_E_HB),
2320 ID(PCI_DEVICE_ID_INTEL_Q45_HB),
2321 ID(PCI_DEVICE_ID_INTEL_G45_HB),
2257 { } 2322 { }
2258}; 2323};
2259 2324
diff --git a/drivers/char/agp/nvidia-agp.c b/drivers/char/agp/nvidia-agp.c
index 225ed2a53d45..eaceb61ba2dc 100644
--- a/drivers/char/agp/nvidia-agp.c
+++ b/drivers/char/agp/nvidia-agp.c
@@ -214,9 +214,9 @@ static int nvidia_insert_memory(struct agp_memory *mem, off_t pg_start, int type
214 return -EBUSY; 214 return -EBUSY;
215 } 215 }
216 216
217 if (mem->is_flushed == FALSE) { 217 if (!mem->is_flushed) {
218 global_cache_flush(); 218 global_cache_flush();
219 mem->is_flushed = TRUE; 219 mem->is_flushed = true;
220 } 220 }
221 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 221 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
222 writel(agp_bridge->driver->mask_memory(agp_bridge, 222 writel(agp_bridge->driver->mask_memory(agp_bridge,
diff --git a/drivers/char/agp/parisc-agp.c b/drivers/char/agp/parisc-agp.c
index 2939e3570f9d..8c42dcc5958c 100644
--- a/drivers/char/agp/parisc-agp.c
+++ b/drivers/char/agp/parisc-agp.c
@@ -141,9 +141,9 @@ parisc_agp_insert_memory(struct agp_memory *mem, off_t pg_start, int type)
141 j++; 141 j++;
142 } 142 }
143 143
144 if (mem->is_flushed == FALSE) { 144 if (!mem->is_flushed) {
145 global_cache_flush(); 145 global_cache_flush();
146 mem->is_flushed = TRUE; 146 mem->is_flushed = true;
147 } 147 }
148 148
149 for (i = 0, j = io_pg_start; i < mem->page_count; i++) { 149 for (i = 0, j = io_pg_start; i < mem->page_count; i++) {
@@ -226,7 +226,7 @@ static const struct agp_bridge_driver parisc_agp_driver = {
226 .agp_alloc_page = agp_generic_alloc_page, 226 .agp_alloc_page = agp_generic_alloc_page,
227 .agp_destroy_page = agp_generic_destroy_page, 227 .agp_destroy_page = agp_generic_destroy_page,
228 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 228 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
229 .cant_use_aperture = 1, 229 .cant_use_aperture = true,
230}; 230};
231 231
232static int __init 232static int __init
diff --git a/drivers/char/agp/sgi-agp.c b/drivers/char/agp/sgi-agp.c
index 98cf8abb3e57..b972d83bb1b2 100644
--- a/drivers/char/agp/sgi-agp.c
+++ b/drivers/char/agp/sgi-agp.c
@@ -182,9 +182,9 @@ static int sgi_tioca_insert_memory(struct agp_memory *mem, off_t pg_start,
182 j++; 182 j++;
183 } 183 }
184 184
185 if (mem->is_flushed == FALSE) { 185 if (!mem->is_flushed) {
186 bridge->driver->cache_flush(); 186 bridge->driver->cache_flush();
187 mem->is_flushed = TRUE; 187 mem->is_flushed = true;
188 } 188 }
189 189
190 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 190 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
@@ -264,8 +264,8 @@ const struct agp_bridge_driver sgi_tioca_driver = {
264 .agp_alloc_page = sgi_tioca_alloc_page, 264 .agp_alloc_page = sgi_tioca_alloc_page,
265 .agp_destroy_page = agp_generic_destroy_page, 265 .agp_destroy_page = agp_generic_destroy_page,
266 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 266 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
267 .cant_use_aperture = 1, 267 .cant_use_aperture = true,
268 .needs_scratch_page = 0, 268 .needs_scratch_page = false,
269 .num_aperture_sizes = 1, 269 .num_aperture_sizes = 1,
270}; 270};
271 271
diff --git a/drivers/char/agp/sworks-agp.c b/drivers/char/agp/sworks-agp.c
index e08934e58f32..0e054c134490 100644
--- a/drivers/char/agp/sworks-agp.c
+++ b/drivers/char/agp/sworks-agp.c
@@ -339,9 +339,9 @@ static int serverworks_insert_memory(struct agp_memory *mem,
339 j++; 339 j++;
340 } 340 }
341 341
342 if (mem->is_flushed == FALSE) { 342 if (!mem->is_flushed) {
343 global_cache_flush(); 343 global_cache_flush();
344 mem->is_flushed = TRUE; 344 mem->is_flushed = true;
345 } 345 }
346 346
347 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) { 347 for (i = 0, j = pg_start; i < mem->page_count; i++, j++) {
@@ -412,7 +412,7 @@ static void serverworks_agp_enable(struct agp_bridge_data *bridge, u32 mode)
412 bridge->capndx + PCI_AGP_COMMAND, 412 bridge->capndx + PCI_AGP_COMMAND,
413 command); 413 command);
414 414
415 agp_device_command(command, 0); 415 agp_device_command(command, false);
416} 416}
417 417
418static const struct agp_bridge_driver sworks_driver = { 418static const struct agp_bridge_driver sworks_driver = {
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index 42c0a600b1ac..d2fa3cfca02a 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -281,10 +281,10 @@ static void uninorth_agp_enable(struct agp_bridge_data *bridge, u32 mode)
281 281
282 if (uninorth_rev >= 0x30) { 282 if (uninorth_rev >= 0x30) {
283 /* This is an AGP V3 */ 283 /* This is an AGP V3 */
284 agp_device_command(command, (status & AGPSTAT_MODE_3_0)); 284 agp_device_command(command, (status & AGPSTAT_MODE_3_0) != 0);
285 } else { 285 } else {
286 /* AGP V2 */ 286 /* AGP V2 */
287 agp_device_command(command, 0); 287 agp_device_command(command, false);
288 } 288 }
289 289
290 uninorth_tlbflush(NULL); 290 uninorth_tlbflush(NULL);
@@ -511,7 +511,7 @@ const struct agp_bridge_driver uninorth_agp_driver = {
511 .agp_alloc_page = agp_generic_alloc_page, 511 .agp_alloc_page = agp_generic_alloc_page,
512 .agp_destroy_page = agp_generic_destroy_page, 512 .agp_destroy_page = agp_generic_destroy_page,
513 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 513 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
514 .cant_use_aperture = 1, 514 .cant_use_aperture = true,
515}; 515};
516 516
517const struct agp_bridge_driver u3_agp_driver = { 517const struct agp_bridge_driver u3_agp_driver = {
@@ -536,8 +536,8 @@ const struct agp_bridge_driver u3_agp_driver = {
536 .agp_alloc_page = agp_generic_alloc_page, 536 .agp_alloc_page = agp_generic_alloc_page,
537 .agp_destroy_page = agp_generic_destroy_page, 537 .agp_destroy_page = agp_generic_destroy_page,
538 .agp_type_to_mask_type = agp_generic_type_to_mask_type, 538 .agp_type_to_mask_type = agp_generic_type_to_mask_type,
539 .cant_use_aperture = 1, 539 .cant_use_aperture = true,
540 .needs_scratch_page = 1, 540 .needs_scratch_page = true,
541}; 541};
542 542
543static struct agp_device_ids uninorth_agp_device_ids[] __devinitdata = { 543static struct agp_device_ids uninorth_agp_device_ids[] __devinitdata = {
diff --git a/drivers/char/agp/via-agp.c b/drivers/char/agp/via-agp.c
index 0ecc54d327bc..7b36476dff41 100644
--- a/drivers/char/agp/via-agp.c
+++ b/drivers/char/agp/via-agp.c
@@ -389,11 +389,20 @@ static struct agp_device_ids via_agp_device_ids[] __devinitdata =
389 .device_id = PCI_DEVICE_ID_VIA_VT3324, 389 .device_id = PCI_DEVICE_ID_VIA_VT3324,
390 .chipset_name = "CX700", 390 .chipset_name = "CX700",
391 }, 391 },
392 /* VT3336 */ 392 /* VT3336 - this is a chipset for AMD Athlon/K8 CPU. Due to K8's unique
393 * architecture, the AGP resource and behavior are different from
394 * the traditional AGP which resides only in chipset. AGP is used
395 * by 3D driver which wasn't available for the VT3336 and VT3364
396 * generation until now. Unfortunately, by testing, VT3364 works
397 * but VT3336 doesn't. - explaination from via, just leave this as
398 * as a placeholder to avoid future patches adding it back in.
399 */
400#if 0
393 { 401 {
394 .device_id = PCI_DEVICE_ID_VIA_VT3336, 402 .device_id = PCI_DEVICE_ID_VIA_VT3336,
395 .chipset_name = "VT3336", 403 .chipset_name = "VT3336",
396 }, 404 },
405#endif
397 /* P4M890 */ 406 /* P4M890 */
398 { 407 {
399 .device_id = PCI_DEVICE_ID_VIA_P4M890, 408 .device_id = PCI_DEVICE_ID_VIA_P4M890,
@@ -546,8 +555,8 @@ static const struct pci_device_id agp_via_pci_table[] = {
546 ID(PCI_DEVICE_ID_VIA_3296_0), 555 ID(PCI_DEVICE_ID_VIA_3296_0),
547 ID(PCI_DEVICE_ID_VIA_P4M800CE), 556 ID(PCI_DEVICE_ID_VIA_P4M800CE),
548 ID(PCI_DEVICE_ID_VIA_VT3324), 557 ID(PCI_DEVICE_ID_VIA_VT3324),
549 ID(PCI_DEVICE_ID_VIA_VT3336),
550 ID(PCI_DEVICE_ID_VIA_P4M890), 558 ID(PCI_DEVICE_ID_VIA_P4M890),
559 ID(PCI_DEVICE_ID_VIA_VT3364),
551 { } 560 { }
552}; 561};
553 562
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
index b710426bab3e..c533d0c9ec61 100644
--- a/drivers/char/drm/ati_pcigart.c
+++ b/drivers/char/drm/ati_pcigart.c
@@ -76,7 +76,7 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info
76 for (i = 0; i < pages; i++) { 76 for (i = 0; i < pages; i++) {
77 if (!entry->busaddr[i]) 77 if (!entry->busaddr[i])
78 break; 78 break;
79 pci_unmap_single(dev->pdev, entry->busaddr[i], 79 pci_unmap_page(dev->pdev, entry->busaddr[i],
80 PAGE_SIZE, PCI_DMA_TODEVICE); 80 PAGE_SIZE, PCI_DMA_TODEVICE);
81 } 81 }
82 82
@@ -137,10 +137,8 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
137 137
138 for (i = 0; i < pages; i++) { 138 for (i = 0; i < pages; i++) {
139 /* we need to support large memory configurations */ 139 /* we need to support large memory configurations */
140 entry->busaddr[i] = pci_map_single(dev->pdev, 140 entry->busaddr[i] = pci_map_page(dev->pdev, entry->pagelist[i],
141 page_address(entry-> 141 0, PAGE_SIZE, PCI_DMA_TODEVICE);
142 pagelist[i]),
143 PAGE_SIZE, PCI_DMA_TODEVICE);
144 if (entry->busaddr[i] == 0) { 142 if (entry->busaddr[i] == 0) {
145 DRM_ERROR("unable to map PCIGART pages!\n"); 143 DRM_ERROR("unable to map PCIGART pages!\n");
146 drm_ati_pcigart_cleanup(dev, gart_info); 144 drm_ati_pcigart_cleanup(dev, gart_info);
diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h
index 3a05c6d5ebe1..38d3c6b8276a 100644
--- a/drivers/char/drm/drm.h
+++ b/drivers/char/drm/drm.h
@@ -628,7 +628,7 @@ struct drm_set_version {
628#define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding) 628#define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding)
629#define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding) 629#define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding)
630 630
631#define DRM_IOCTL_SG_ALLOC DRM_IOW( 0x38, struct drm_scatter_gather) 631#define DRM_IOCTL_SG_ALLOC DRM_IOWR(0x38, struct drm_scatter_gather)
632#define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather) 632#define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather)
633 633
634#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank) 634#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank)
diff --git a/drivers/char/drm/drm_drv.c b/drivers/char/drm/drm_drv.c
index fc54140551a7..564138714bb5 100644
--- a/drivers/char/drm/drm_drv.c
+++ b/drivers/char/drm/drm_drv.c
@@ -470,17 +470,18 @@ int drm_ioctl(struct inode *inode, struct file *filp,
470 if ((nr >= DRM_COMMAND_BASE) && (nr < DRM_COMMAND_END) && 470 if ((nr >= DRM_COMMAND_BASE) && (nr < DRM_COMMAND_END) &&
471 (nr < DRM_COMMAND_BASE + dev->driver->num_ioctls)) 471 (nr < DRM_COMMAND_BASE + dev->driver->num_ioctls))
472 ioctl = &dev->driver->ioctls[nr - DRM_COMMAND_BASE]; 472 ioctl = &dev->driver->ioctls[nr - DRM_COMMAND_BASE];
473 else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) 473 else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) {
474 ioctl = &drm_ioctls[nr]; 474 ioctl = &drm_ioctls[nr];
475 else 475 cmd = ioctl->cmd;
476 } else
476 goto err_i1; 477 goto err_i1;
477 478
479 /* Do not trust userspace, use our own definition */
478 func = ioctl->func; 480 func = ioctl->func;
479 /* is there a local override? */ 481 /* is there a local override? */
480 if ((nr == DRM_IOCTL_NR(DRM_IOCTL_DMA)) && dev->driver->dma_ioctl) 482 if ((nr == DRM_IOCTL_NR(DRM_IOCTL_DMA)) && dev->driver->dma_ioctl)
481 func = dev->driver->dma_ioctl; 483 func = dev->driver->dma_ioctl;
482 484
483
484 if (!func) { 485 if (!func) {
485 DRM_DEBUG("no function\n"); 486 DRM_DEBUG("no function\n");
486 retcode = -EINVAL; 487 retcode = -EINVAL;
diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h
index a6a499f97e22..135bd19499fc 100644
--- a/drivers/char/drm/drm_pciids.h
+++ b/drivers/char/drm/drm_pciids.h
@@ -103,20 +103,18 @@
103 {0x1002, 0x5653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 103 {0x1002, 0x5653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV410|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
104 {0x1002, 0x5834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP}, \ 104 {0x1002, 0x5834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP}, \
105 {0x1002, 0x5835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \ 105 {0x1002, 0x5835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY}, \
106 {0x1002, 0x5954, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ 106 {0x1002, 0x5954, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
107 {0x1002, 0x5955, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ 107 {0x1002, 0x5955, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
108 {0x1002, 0x5974, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ 108 {0x1002, 0x5974, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
109 {0x1002, 0x5975, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ 109 {0x1002, 0x5975, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
110 {0x1002, 0x5960, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ 110 {0x1002, 0x5960, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
111 {0x1002, 0x5961, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ 111 {0x1002, 0x5961, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
112 {0x1002, 0x5962, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ 112 {0x1002, 0x5962, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
113 {0x1002, 0x5964, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ 113 {0x1002, 0x5964, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
114 {0x1002, 0x5965, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \ 114 {0x1002, 0x5965, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280}, \
115 {0x1002, 0x5969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \ 115 {0x1002, 0x5969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV100}, \
116 {0x1002, 0x5a41, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ 116 {0x1002, 0x5a61, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
117 {0x1002, 0x5a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \ 117 {0x1002, 0x5a62, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS480|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
118 {0x1002, 0x5a61, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
119 {0x1002, 0x5a62, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS400|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_IS_IGPGART}, \
120 {0x1002, 0x5b60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \ 118 {0x1002, 0x5b60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
121 {0x1002, 0x5b62, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \ 119 {0x1002, 0x5b62, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
122 {0x1002, 0x5b63, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \ 120 {0x1002, 0x5b63, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_NEW_MEMMAP}, \
@@ -411,4 +409,7 @@
411 {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 409 {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
412 {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 410 {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
413 {0x8086, 0x2a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ 411 {0x8086, 0x2a42, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
412 {0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
413 {0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
414 {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \
414 {0, 0, 0} 415 {0, 0, 0}
diff --git a/drivers/char/drm/i915_drv.c b/drivers/char/drm/i915_drv.c
index e8f3d682e3b1..93aed1c38bd2 100644
--- a/drivers/char/drm/i915_drv.c
+++ b/drivers/char/drm/i915_drv.c
@@ -389,6 +389,7 @@ static int i915_resume(struct drm_device *dev)
389 pci_restore_state(dev->pdev); 389 pci_restore_state(dev->pdev);
390 if (pci_enable_device(dev->pdev)) 390 if (pci_enable_device(dev->pdev))
391 return -1; 391 return -1;
392 pci_set_master(dev->pdev);
392 393
393 pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); 394 pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB);
394 395
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h
index 1b20f7c0639c..d7326d92a237 100644
--- a/drivers/char/drm/i915_drv.h
+++ b/drivers/char/drm/i915_drv.h
@@ -1112,12 +1112,19 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1112 (dev)->pci_device == 0x29A2 || \ 1112 (dev)->pci_device == 0x29A2 || \
1113 (dev)->pci_device == 0x2A02 || \ 1113 (dev)->pci_device == 0x2A02 || \
1114 (dev)->pci_device == 0x2A12 || \ 1114 (dev)->pci_device == 0x2A12 || \
1115 (dev)->pci_device == 0x2A42) 1115 (dev)->pci_device == 0x2A42 || \
1116 (dev)->pci_device == 0x2E02 || \
1117 (dev)->pci_device == 0x2E12 || \
1118 (dev)->pci_device == 0x2E22)
1116 1119
1117#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) 1120#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
1118 1121
1119#define IS_IGD_GM(dev) ((dev)->pci_device == 0x2A42) 1122#define IS_IGD_GM(dev) ((dev)->pci_device == 0x2A42)
1120 1123
1124#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
1125 (dev)->pci_device == 0x2E12 || \
1126 (dev)->pci_device == 0x2E22)
1127
1121#define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \ 1128#define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \
1122 (dev)->pci_device == 0x29B2 || \ 1129 (dev)->pci_device == 0x29B2 || \
1123 (dev)->pci_device == 0x29D2) 1130 (dev)->pci_device == 0x29D2)
@@ -1128,7 +1135,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1128#define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \ 1135#define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \
1129 IS_I945GM(dev) || IS_I965GM(dev) || IS_IGD_GM(dev)) 1136 IS_I945GM(dev) || IS_I965GM(dev) || IS_IGD_GM(dev))
1130 1137
1131#define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_IGD_GM(dev)) 1138#define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_IGD_GM(dev) || IS_G4X(dev))
1132 1139
1133#define PRIMARY_RINGBUFFER_SIZE (128*1024) 1140#define PRIMARY_RINGBUFFER_SIZE (128*1024)
1134 1141
diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/char/drm/r300_cmdbuf.c
index f535812e4057..702df45320f7 100644
--- a/drivers/char/drm/r300_cmdbuf.c
+++ b/drivers/char/drm/r300_cmdbuf.c
@@ -189,18 +189,12 @@ void r300_init_reg_flags(struct drm_device *dev)
189 ADD_RANGE(R300_RE_CULL_CNTL, 1); 189 ADD_RANGE(R300_RE_CULL_CNTL, 1);
190 ADD_RANGE(0x42C0, 2); 190 ADD_RANGE(0x42C0, 2);
191 ADD_RANGE(R300_RS_CNTL_0, 2); 191 ADD_RANGE(R300_RS_CNTL_0, 2);
192 ADD_RANGE(R300_RS_INTERP_0, 8); 192
193 ADD_RANGE(R300_RS_ROUTE_0, 8); 193 ADD_RANGE(R300_SC_HYPERZ, 2);
194 ADD_RANGE(0x43A4, 2);
195 ADD_RANGE(0x43E8, 1); 194 ADD_RANGE(0x43E8, 1);
196 ADD_RANGE(R300_PFS_CNTL_0, 3); 195
197 ADD_RANGE(R300_PFS_NODE_0, 4);
198 ADD_RANGE(R300_PFS_TEXI_0, 64);
199 ADD_RANGE(0x46A4, 5); 196 ADD_RANGE(0x46A4, 5);
200 ADD_RANGE(R300_PFS_INSTR0_0, 64); 197
201 ADD_RANGE(R300_PFS_INSTR1_0, 64);
202 ADD_RANGE(R300_PFS_INSTR2_0, 64);
203 ADD_RANGE(R300_PFS_INSTR3_0, 64);
204 ADD_RANGE(R300_RE_FOG_STATE, 1); 198 ADD_RANGE(R300_RE_FOG_STATE, 1);
205 ADD_RANGE(R300_FOG_COLOR_R, 3); 199 ADD_RANGE(R300_FOG_COLOR_R, 3);
206 ADD_RANGE(R300_PP_ALPHA_TEST, 2); 200 ADD_RANGE(R300_PP_ALPHA_TEST, 2);
@@ -215,14 +209,12 @@ void r300_init_reg_flags(struct drm_device *dev)
215 ADD_RANGE(0x4E50, 9); 209 ADD_RANGE(0x4E50, 9);
216 ADD_RANGE(0x4E88, 1); 210 ADD_RANGE(0x4E88, 1);
217 ADD_RANGE(0x4EA0, 2); 211 ADD_RANGE(0x4EA0, 2);
218 ADD_RANGE(R300_RB3D_ZSTENCIL_CNTL_0, 3); 212 ADD_RANGE(R300_ZB_CNTL, 3);
219 ADD_RANGE(R300_RB3D_ZSTENCIL_FORMAT, 4); 213 ADD_RANGE(R300_ZB_FORMAT, 4);
220 ADD_RANGE_MARK(R300_RB3D_DEPTHOFFSET, 1, MARK_CHECK_OFFSET); /* check offset */ 214 ADD_RANGE_MARK(R300_ZB_DEPTHOFFSET, 1, MARK_CHECK_OFFSET); /* check offset */
221 ADD_RANGE(R300_RB3D_DEPTHPITCH, 1); 215 ADD_RANGE(R300_ZB_DEPTHPITCH, 1);
222 ADD_RANGE(0x4F28, 1); 216 ADD_RANGE(R300_ZB_DEPTHCLEARVALUE, 1);
223 ADD_RANGE(0x4F30, 2); 217 ADD_RANGE(R300_ZB_ZMASK_OFFSET, 13);
224 ADD_RANGE(0x4F44, 1);
225 ADD_RANGE(0x4F54, 1);
226 218
227 ADD_RANGE(R300_TX_FILTER_0, 16); 219 ADD_RANGE(R300_TX_FILTER_0, 16);
228 ADD_RANGE(R300_TX_FILTER1_0, 16); 220 ADD_RANGE(R300_TX_FILTER1_0, 16);
@@ -235,13 +227,32 @@ void r300_init_reg_flags(struct drm_device *dev)
235 ADD_RANGE(R300_TX_BORDER_COLOR_0, 16); 227 ADD_RANGE(R300_TX_BORDER_COLOR_0, 16);
236 228
237 /* Sporadic registers used as primitives are emitted */ 229 /* Sporadic registers used as primitives are emitted */
238 ADD_RANGE(R300_RB3D_ZCACHE_CTLSTAT, 1); 230 ADD_RANGE(R300_ZB_ZCACHE_CTLSTAT, 1);
239 ADD_RANGE(R300_RB3D_DSTCACHE_CTLSTAT, 1); 231 ADD_RANGE(R300_RB3D_DSTCACHE_CTLSTAT, 1);
240 ADD_RANGE(R300_VAP_INPUT_ROUTE_0_0, 8); 232 ADD_RANGE(R300_VAP_INPUT_ROUTE_0_0, 8);
241 ADD_RANGE(R300_VAP_INPUT_ROUTE_1_0, 8); 233 ADD_RANGE(R300_VAP_INPUT_ROUTE_1_0, 8);
242 234
243 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) { 235 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) {
244 ADD_RANGE(0x4074, 16); 236 ADD_RANGE(R500_VAP_INDEX_OFFSET, 1);
237 ADD_RANGE(R500_US_CONFIG, 2);
238 ADD_RANGE(R500_US_CODE_ADDR, 3);
239 ADD_RANGE(R500_US_FC_CTRL, 1);
240 ADD_RANGE(R500_RS_IP_0, 16);
241 ADD_RANGE(R500_RS_INST_0, 16);
242 ADD_RANGE(R500_RB3D_COLOR_CLEAR_VALUE_AR, 2);
243 ADD_RANGE(R500_RB3D_CONSTANT_COLOR_AR, 2);
244 ADD_RANGE(R500_ZB_FIFO_SIZE, 2);
245 } else {
246 ADD_RANGE(R300_PFS_CNTL_0, 3);
247 ADD_RANGE(R300_PFS_NODE_0, 4);
248 ADD_RANGE(R300_PFS_TEXI_0, 64);
249 ADD_RANGE(R300_PFS_INSTR0_0, 64);
250 ADD_RANGE(R300_PFS_INSTR1_0, 64);
251 ADD_RANGE(R300_PFS_INSTR2_0, 64);
252 ADD_RANGE(R300_PFS_INSTR3_0, 64);
253 ADD_RANGE(R300_RS_INTERP_0, 8);
254 ADD_RANGE(R300_RS_ROUTE_0, 8);
255
245 } 256 }
246} 257}
247 258
@@ -707,8 +718,9 @@ static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv)
707 BEGIN_RING(6); 718 BEGIN_RING(6);
708 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); 719 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
709 OUT_RING(R300_RB3D_DSTCACHE_UNKNOWN_0A); 720 OUT_RING(R300_RB3D_DSTCACHE_UNKNOWN_0A);
710 OUT_RING(CP_PACKET0(R300_RB3D_ZCACHE_CTLSTAT, 0)); 721 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0));
711 OUT_RING(R300_RB3D_ZCACHE_UNKNOWN_03); 722 OUT_RING(R300_ZB_ZCACHE_CTLSTAT_ZC_FLUSH_FLUSH_AND_FREE|
723 R300_ZB_ZCACHE_CTLSTAT_ZC_FREE_FREE);
712 OUT_RING(CP_PACKET3(RADEON_CP_NOP, 0)); 724 OUT_RING(CP_PACKET3(RADEON_CP_NOP, 0));
713 OUT_RING(0x0); 725 OUT_RING(0x0);
714 ADVANCE_RING(); 726 ADVANCE_RING();
@@ -829,6 +841,54 @@ static int r300_scratch(drm_radeon_private_t *dev_priv,
829} 841}
830 842
831/** 843/**
844 * Uploads user-supplied vertex program instructions or parameters onto
845 * the graphics card.
846 * Called by r300_do_cp_cmdbuf.
847 */
848static inline int r300_emit_r500fp(drm_radeon_private_t *dev_priv,
849 drm_radeon_kcmd_buffer_t *cmdbuf,
850 drm_r300_cmd_header_t header)
851{
852 int sz;
853 int addr;
854 int type;
855 int clamp;
856 int stride;
857 RING_LOCALS;
858
859 sz = header.r500fp.count;
860 /* address is 9 bits 0 - 8, bit 1 of flags is part of address */
861 addr = ((header.r500fp.adrhi_flags & 1) << 8) | header.r500fp.adrlo;
862
863 type = !!(header.r500fp.adrhi_flags & R500FP_CONSTANT_TYPE);
864 clamp = !!(header.r500fp.adrhi_flags & R500FP_CONSTANT_CLAMP);
865
866 addr |= (type << 16);
867 addr |= (clamp << 17);
868
869 stride = type ? 4 : 6;
870
871 DRM_DEBUG("r500fp %d %d type: %d\n", sz, addr, type);
872 if (!sz)
873 return 0;
874 if (sz * stride * 4 > cmdbuf->bufsz)
875 return -EINVAL;
876
877 BEGIN_RING(3 + sz * stride);
878 OUT_RING_REG(R500_GA_US_VECTOR_INDEX, addr);
879 OUT_RING(CP_PACKET0_TABLE(R500_GA_US_VECTOR_DATA, sz * stride - 1));
880 OUT_RING_TABLE((int *)cmdbuf->buf, sz * stride);
881
882 ADVANCE_RING();
883
884 cmdbuf->buf += sz * stride * 4;
885 cmdbuf->bufsz -= sz * stride * 4;
886
887 return 0;
888}
889
890
891/**
832 * Parses and validates a user-supplied command buffer and emits appropriate 892 * Parses and validates a user-supplied command buffer and emits appropriate
833 * commands on the DMA ring buffer. 893 * commands on the DMA ring buffer.
834 * Called by the ioctl handler function radeon_cp_cmdbuf. 894 * Called by the ioctl handler function radeon_cp_cmdbuf.
@@ -963,6 +1023,19 @@ int r300_do_cp_cmdbuf(struct drm_device *dev,
963 } 1023 }
964 break; 1024 break;
965 1025
1026 case R300_CMD_R500FP:
1027 if ((dev_priv->flags & RADEON_FAMILY_MASK) < CHIP_RV515) {
1028 DRM_ERROR("Calling r500 command on r300 card\n");
1029 ret = -EINVAL;
1030 goto cleanup;
1031 }
1032 DRM_DEBUG("R300_CMD_R500FP\n");
1033 ret = r300_emit_r500fp(dev_priv, cmdbuf, header);
1034 if (ret) {
1035 DRM_ERROR("r300_emit_r500fp failed\n");
1036 goto cleanup;
1037 }
1038 break;
966 default: 1039 default:
967 DRM_ERROR("bad cmd_type %i at %p\n", 1040 DRM_ERROR("bad cmd_type %i at %p\n",
968 header.header.cmd_type, 1041 header.header.cmd_type,
diff --git a/drivers/char/drm/r300_reg.h b/drivers/char/drm/r300_reg.h
index 8f664af9c4a4..a6802f26afc4 100644
--- a/drivers/char/drm/r300_reg.h
+++ b/drivers/char/drm/r300_reg.h
@@ -702,6 +702,27 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
702# define R300_RS_ROUTE_1_UNKNOWN11 (1 << 11) 702# define R300_RS_ROUTE_1_UNKNOWN11 (1 << 11)
703/* END: Rasterization / Interpolators - many guesses */ 703/* END: Rasterization / Interpolators - many guesses */
704 704
705/* Hierarchical Z Enable */
706#define R300_SC_HYPERZ 0x43a4
707# define R300_SC_HYPERZ_DISABLE (0 << 0)
708# define R300_SC_HYPERZ_ENABLE (1 << 0)
709# define R300_SC_HYPERZ_MIN (0 << 1)
710# define R300_SC_HYPERZ_MAX (1 << 1)
711# define R300_SC_HYPERZ_ADJ_256 (0 << 2)
712# define R300_SC_HYPERZ_ADJ_128 (1 << 2)
713# define R300_SC_HYPERZ_ADJ_64 (2 << 2)
714# define R300_SC_HYPERZ_ADJ_32 (3 << 2)
715# define R300_SC_HYPERZ_ADJ_16 (4 << 2)
716# define R300_SC_HYPERZ_ADJ_8 (5 << 2)
717# define R300_SC_HYPERZ_ADJ_4 (6 << 2)
718# define R300_SC_HYPERZ_ADJ_2 (7 << 2)
719# define R300_SC_HYPERZ_HZ_Z0MIN_NO (0 << 5)
720# define R300_SC_HYPERZ_HZ_Z0MIN (1 << 5)
721# define R300_SC_HYPERZ_HZ_Z0MAX_NO (0 << 6)
722# define R300_SC_HYPERZ_HZ_Z0MAX (1 << 6)
723
724#define R300_SC_EDGERULE 0x43a8
725
705/* BEGIN: Scissors and cliprects */ 726/* BEGIN: Scissors and cliprects */
706 727
707/* There are four clipping rectangles. Their corner coordinates are inclusive. 728/* There are four clipping rectangles. Their corner coordinates are inclusive.
@@ -1346,7 +1367,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
1346/* Guess by Vladimir. 1367/* Guess by Vladimir.
1347 * Set to 0A before 3D operations, set to 02 afterwards. 1368 * Set to 0A before 3D operations, set to 02 afterwards.
1348 */ 1369 */
1349#define R300_RB3D_DSTCACHE_CTLSTAT 0x4E4C 1370/*#define R300_RB3D_DSTCACHE_CTLSTAT 0x4E4C*/
1350# define R300_RB3D_DSTCACHE_UNKNOWN_02 0x00000002 1371# define R300_RB3D_DSTCACHE_UNKNOWN_02 0x00000002
1351# define R300_RB3D_DSTCACHE_UNKNOWN_0A 0x0000000A 1372# define R300_RB3D_DSTCACHE_UNKNOWN_0A 0x0000000A
1352 1373
@@ -1355,19 +1376,14 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
1355 * for this. 1376 * for this.
1356 * Bit (1<<8) is the "test" bit. so plain write is 6 - vd 1377 * Bit (1<<8) is the "test" bit. so plain write is 6 - vd
1357 */ 1378 */
1358#define R300_RB3D_ZSTENCIL_CNTL_0 0x4F00 1379#define R300_ZB_CNTL 0x4F00
1359# define R300_RB3D_Z_DISABLED_1 0x00000010 1380# define R300_STENCIL_ENABLE (1 << 0)
1360# define R300_RB3D_Z_DISABLED_2 0x00000014 1381# define R300_Z_ENABLE (1 << 1)
1361# define R300_RB3D_Z_TEST 0x00000012 1382# define R300_Z_WRITE_ENABLE (1 << 2)
1362# define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 1383# define R300_Z_SIGNED_COMPARE (1 << 3)
1363# define R300_RB3D_Z_WRITE_ONLY 0x00000006 1384# define R300_STENCIL_FRONT_BACK (1 << 4)
1364 1385
1365# define R300_RB3D_Z_TEST 0x00000012 1386#define R300_ZB_ZSTENCILCNTL 0x4f04
1366# define R300_RB3D_Z_TEST_AND_WRITE 0x00000016
1367# define R300_RB3D_Z_WRITE_ONLY 0x00000006
1368# define R300_RB3D_STENCIL_ENABLE 0x00000001
1369
1370#define R300_RB3D_ZSTENCIL_CNTL_1 0x4F04
1371 /* functions */ 1387 /* functions */
1372# define R300_ZS_NEVER 0 1388# define R300_ZS_NEVER 0
1373# define R300_ZS_LESS 1 1389# define R300_ZS_LESS 1
@@ -1387,52 +1403,166 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
1387# define R300_ZS_INVERT 5 1403# define R300_ZS_INVERT 5
1388# define R300_ZS_INCR_WRAP 6 1404# define R300_ZS_INCR_WRAP 6
1389# define R300_ZS_DECR_WRAP 7 1405# define R300_ZS_DECR_WRAP 7
1406# define R300_Z_FUNC_SHIFT 0
1390 /* front and back refer to operations done for front 1407 /* front and back refer to operations done for front
1391 and back faces, i.e. separate stencil function support */ 1408 and back faces, i.e. separate stencil function support */
1392# define R300_RB3D_ZS1_DEPTH_FUNC_SHIFT 0 1409# define R300_S_FRONT_FUNC_SHIFT 3
1393# define R300_RB3D_ZS1_FRONT_FUNC_SHIFT 3 1410# define R300_S_FRONT_SFAIL_OP_SHIFT 6
1394# define R300_RB3D_ZS1_FRONT_FAIL_OP_SHIFT 6 1411# define R300_S_FRONT_ZPASS_OP_SHIFT 9
1395# define R300_RB3D_ZS1_FRONT_ZPASS_OP_SHIFT 9 1412# define R300_S_FRONT_ZFAIL_OP_SHIFT 12
1396# define R300_RB3D_ZS1_FRONT_ZFAIL_OP_SHIFT 12 1413# define R300_S_BACK_FUNC_SHIFT 15
1397# define R300_RB3D_ZS1_BACK_FUNC_SHIFT 15 1414# define R300_S_BACK_SFAIL_OP_SHIFT 18
1398# define R300_RB3D_ZS1_BACK_FAIL_OP_SHIFT 18 1415# define R300_S_BACK_ZPASS_OP_SHIFT 21
1399# define R300_RB3D_ZS1_BACK_ZPASS_OP_SHIFT 21 1416# define R300_S_BACK_ZFAIL_OP_SHIFT 24
1400# define R300_RB3D_ZS1_BACK_ZFAIL_OP_SHIFT 24 1417
1401 1418#define R300_ZB_STENCILREFMASK 0x4f08
1402#define R300_RB3D_ZSTENCIL_CNTL_2 0x4F08 1419# define R300_STENCILREF_SHIFT 0
1403# define R300_RB3D_ZS2_STENCIL_REF_SHIFT 0 1420# define R300_STENCILREF_MASK 0x000000ff
1404# define R300_RB3D_ZS2_STENCIL_MASK 0xFF 1421# define R300_STENCILMASK_SHIFT 8
1405# define R300_RB3D_ZS2_STENCIL_MASK_SHIFT 8 1422# define R300_STENCILMASK_MASK 0x0000ff00
1406# define R300_RB3D_ZS2_STENCIL_WRITE_MASK_SHIFT 16 1423# define R300_STENCILWRITEMASK_SHIFT 16
1424# define R300_STENCILWRITEMASK_MASK 0x00ff0000
1407 1425
1408/* gap */ 1426/* gap */
1409 1427
1410#define R300_RB3D_ZSTENCIL_FORMAT 0x4F10 1428#define R300_ZB_FORMAT 0x4f10
1411# define R300_DEPTH_FORMAT_16BIT_INT_Z (0 << 0) 1429# define R300_DEPTHFORMAT_16BIT_INT_Z (0 << 0)
1412# define R300_DEPTH_FORMAT_24BIT_INT_Z (2 << 0) 1430# define R300_DEPTHFORMAT_16BIT_13E3 (1 << 0)
1413 /* 16 bit format or some aditional bit ? */ 1431# define R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL (2 << 0)
1414# define R300_DEPTH_FORMAT_UNK32 (32 << 0) 1432/* reserved up to (15 << 0) */
1433# define R300_INVERT_13E3_LEADING_ONES (0 << 4)
1434# define R300_INVERT_13E3_LEADING_ZEROS (1 << 4)
1415 1435
1416#define R300_RB3D_EARLY_Z 0x4F14 1436#define R300_ZB_ZTOP 0x4F14
1417# define R300_EARLY_Z_DISABLE (0 << 0) 1437# define R300_ZTOP_DISABLE (0 << 0)
1418# define R300_EARLY_Z_ENABLE (1 << 0) 1438# define R300_ZTOP_ENABLE (1 << 0)
1419 1439
1420/* gap */ 1440/* gap */
1421 1441
1422#define R300_RB3D_ZCACHE_CTLSTAT 0x4F18 /* GUESS */ 1442#define R300_ZB_ZCACHE_CTLSTAT 0x4f18
1423# define R300_RB3D_ZCACHE_UNKNOWN_01 0x1 1443# define R300_ZB_ZCACHE_CTLSTAT_ZC_FLUSH_NO_EFFECT (0 << 0)
1424# define R300_RB3D_ZCACHE_UNKNOWN_03 0x3 1444# define R300_ZB_ZCACHE_CTLSTAT_ZC_FLUSH_FLUSH_AND_FREE (1 << 0)
1445# define R300_ZB_ZCACHE_CTLSTAT_ZC_FREE_NO_EFFECT (0 << 1)
1446# define R300_ZB_ZCACHE_CTLSTAT_ZC_FREE_FREE (1 << 1)
1447# define R300_ZB_ZCACHE_CTLSTAT_ZC_BUSY_IDLE (0 << 31)
1448# define R300_ZB_ZCACHE_CTLSTAT_ZC_BUSY_BUSY (1 << 31)
1449
1450#define R300_ZB_BW_CNTL 0x4f1c
1451# define R300_HIZ_DISABLE (0 << 0)
1452# define R300_HIZ_ENABLE (1 << 0)
1453# define R300_HIZ_MIN (0 << 1)
1454# define R300_HIZ_MAX (1 << 1)
1455# define R300_FAST_FILL_DISABLE (0 << 2)
1456# define R300_FAST_FILL_ENABLE (1 << 2)
1457# define R300_RD_COMP_DISABLE (0 << 3)
1458# define R300_RD_COMP_ENABLE (1 << 3)
1459# define R300_WR_COMP_DISABLE (0 << 4)
1460# define R300_WR_COMP_ENABLE (1 << 4)
1461# define R300_ZB_CB_CLEAR_RMW (0 << 5)
1462# define R300_ZB_CB_CLEAR_CACHE_LINEAR (1 << 5)
1463# define R300_FORCE_COMPRESSED_STENCIL_VALUE_DISABLE (0 << 6)
1464# define R300_FORCE_COMPRESSED_STENCIL_VALUE_ENABLE (1 << 6)
1465
1466# define R500_ZEQUAL_OPTIMIZE_ENABLE (0 << 7)
1467# define R500_ZEQUAL_OPTIMIZE_DISABLE (1 << 7)
1468# define R500_SEQUAL_OPTIMIZE_ENABLE (0 << 8)
1469# define R500_SEQUAL_OPTIMIZE_DISABLE (1 << 8)
1470
1471# define R500_BMASK_ENABLE (0 << 10)
1472# define R500_BMASK_DISABLE (1 << 10)
1473# define R500_HIZ_EQUAL_REJECT_DISABLE (0 << 11)
1474# define R500_HIZ_EQUAL_REJECT_ENABLE (1 << 11)
1475# define R500_HIZ_FP_EXP_BITS_DISABLE (0 << 12)
1476# define R500_HIZ_FP_EXP_BITS_1 (1 << 12)
1477# define R500_HIZ_FP_EXP_BITS_2 (2 << 12)
1478# define R500_HIZ_FP_EXP_BITS_3 (3 << 12)
1479# define R500_HIZ_FP_EXP_BITS_4 (4 << 12)
1480# define R500_HIZ_FP_EXP_BITS_5 (5 << 12)
1481# define R500_HIZ_FP_INVERT_LEADING_ONES (0 << 15)
1482# define R500_HIZ_FP_INVERT_LEADING_ZEROS (1 << 15)
1483# define R500_TILE_OVERWRITE_RECOMPRESSION_ENABLE (0 << 16)
1484# define R500_TILE_OVERWRITE_RECOMPRESSION_DISABLE (1 << 16)
1485# define R500_CONTIGUOUS_6XAA_SAMPLES_ENABLE (0 << 17)
1486# define R500_CONTIGUOUS_6XAA_SAMPLES_DISABLE (1 << 17)
1487# define R500_PEQ_PACKING_DISABLE (0 << 18)
1488# define R500_PEQ_PACKING_ENABLE (1 << 18)
1489# define R500_COVERED_PTR_MASKING_DISABLE (0 << 18)
1490# define R500_COVERED_PTR_MASKING_ENABLE (1 << 18)
1491
1425 1492
1426/* gap */ 1493/* gap */
1427 1494
1428#define R300_RB3D_DEPTHOFFSET 0x4F20 1495/* Z Buffer Address Offset.
1429#define R300_RB3D_DEPTHPITCH 0x4F24 1496 * Bits 31 to 5 are used for aligned Z buffer address offset for macro tiles.
1430# define R300_DEPTHPITCH_MASK 0x00001FF8 /* GUESS */ 1497 */
1431# define R300_DEPTH_TILE_ENABLE (1 << 16) /* GUESS */ 1498#define R300_ZB_DEPTHOFFSET 0x4f20
1432# define R300_DEPTH_MICROTILE_ENABLE (1 << 17) /* GUESS */ 1499
1433# define R300_DEPTH_ENDIAN_NO_SWAP (0 << 18) /* GUESS */ 1500/* Z Buffer Pitch and Endian Control */
1434# define R300_DEPTH_ENDIAN_WORD_SWAP (1 << 18) /* GUESS */ 1501#define R300_ZB_DEPTHPITCH 0x4f24
1435# define R300_DEPTH_ENDIAN_DWORD_SWAP (2 << 18) /* GUESS */ 1502# define R300_DEPTHPITCH_MASK 0x00003FFC
1503# define R300_DEPTHMACROTILE_DISABLE (0 << 16)
1504# define R300_DEPTHMACROTILE_ENABLE (1 << 16)
1505# define R300_DEPTHMICROTILE_LINEAR (0 << 17)
1506# define R300_DEPTHMICROTILE_TILED (1 << 17)
1507# define R300_DEPTHMICROTILE_TILED_SQUARE (2 << 17)
1508# define R300_DEPTHENDIAN_NO_SWAP (0 << 18)
1509# define R300_DEPTHENDIAN_WORD_SWAP (1 << 18)
1510# define R300_DEPTHENDIAN_DWORD_SWAP (2 << 18)
1511# define R300_DEPTHENDIAN_HALF_DWORD_SWAP (3 << 18)
1512
1513/* Z Buffer Clear Value */
1514#define R300_ZB_DEPTHCLEARVALUE 0x4f28
1515
1516#define R300_ZB_ZMASK_OFFSET 0x4f30
1517#define R300_ZB_ZMASK_PITCH 0x4f34
1518#define R300_ZB_ZMASK_WRINDEX 0x4f38
1519#define R300_ZB_ZMASK_DWORD 0x4f3c
1520#define R300_ZB_ZMASK_RDINDEX 0x4f40
1521
1522/* Hierarchical Z Memory Offset */
1523#define R300_ZB_HIZ_OFFSET 0x4f44
1524
1525/* Hierarchical Z Write Index */
1526#define R300_ZB_HIZ_WRINDEX 0x4f48
1527
1528/* Hierarchical Z Data */
1529#define R300_ZB_HIZ_DWORD 0x4f4c
1530
1531/* Hierarchical Z Read Index */
1532#define R300_ZB_HIZ_RDINDEX 0x4f50
1533
1534/* Hierarchical Z Pitch */
1535#define R300_ZB_HIZ_PITCH 0x4f54
1536
1537/* Z Buffer Z Pass Counter Data */
1538#define R300_ZB_ZPASS_DATA 0x4f58
1539
1540/* Z Buffer Z Pass Counter Address */
1541#define R300_ZB_ZPASS_ADDR 0x4f5c
1542
1543/* Depth buffer X and Y coordinate offset */
1544#define R300_ZB_DEPTHXY_OFFSET 0x4f60
1545# define R300_DEPTHX_OFFSET_SHIFT 1
1546# define R300_DEPTHX_OFFSET_MASK 0x000007FE
1547# define R300_DEPTHY_OFFSET_SHIFT 17
1548# define R300_DEPTHY_OFFSET_MASK 0x07FE0000
1549
1550/* Sets the fifo sizes */
1551#define R500_ZB_FIFO_SIZE 0x4fd0
1552# define R500_OP_FIFO_SIZE_FULL (0 << 0)
1553# define R500_OP_FIFO_SIZE_HALF (1 << 0)
1554# define R500_OP_FIFO_SIZE_QUATER (2 << 0)
1555# define R500_OP_FIFO_SIZE_EIGTHS (4 << 0)
1556
1557/* Stencil Reference Value and Mask for backfacing quads */
1558/* R300_ZB_STENCILREFMASK handles front face */
1559#define R500_ZB_STENCILREFMASK_BF 0x4fd4
1560# define R500_STENCILREF_SHIFT 0
1561# define R500_STENCILREF_MASK 0x000000ff
1562# define R500_STENCILMASK_SHIFT 8
1563# define R500_STENCILMASK_MASK 0x0000ff00
1564# define R500_STENCILWRITEMASK_SHIFT 16
1565# define R500_STENCILWRITEMASK_MASK 0x00ff0000
1436 1566
1437/* BEGIN: Vertex program instruction set */ 1567/* BEGIN: Vertex program instruction set */
1438 1568
@@ -1623,4 +1753,20 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
1623 */ 1753 */
1624#define R300_CP_CMD_BITBLT_MULTI 0xC0009B00 1754#define R300_CP_CMD_BITBLT_MULTI 0xC0009B00
1625 1755
1756#define R500_VAP_INDEX_OFFSET 0x208c
1757
1758#define R500_GA_US_VECTOR_INDEX 0x4250
1759#define R500_GA_US_VECTOR_DATA 0x4254
1760
1761#define R500_RS_IP_0 0x4074
1762#define R500_RS_INST_0 0x4320
1763
1764#define R500_US_CONFIG 0x4600
1765
1766#define R500_US_FC_CTRL 0x4624
1767#define R500_US_CODE_ADDR 0x4630
1768
1769#define R500_RB3D_COLOR_CLEAR_VALUE_AR 0x46c0
1770#define R500_RB3D_CONSTANT_COLOR_AR 0x4ef8
1771
1626#endif /* _R300_REG_H */ 1772#endif /* _R300_REG_H */
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c
index f6f6c92bf771..e53158f0ecb5 100644
--- a/drivers/char/drm/radeon_cp.c
+++ b/drivers/char/drm/radeon_cp.c
@@ -2,6 +2,7 @@
2/* 2/*
3 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas. 3 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
4 * Copyright 2000 VA Linux Systems, Inc., Fremont, California. 4 * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
5 * Copyright 2007 Advanced Micro Devices, Inc.
5 * All Rights Reserved. 6 * All Rights Reserved.
6 * 7 *
7 * Permission is hereby granted, free of charge, to any person obtaining a 8 * Permission is hereby granted, free of charge, to any person obtaining a
@@ -34,789 +35,13 @@
34#include "radeon_drv.h" 35#include "radeon_drv.h"
35#include "r300_reg.h" 36#include "r300_reg.h"
36 37
38#include "radeon_microcode.h"
39
37#define RADEON_FIFO_DEBUG 0 40#define RADEON_FIFO_DEBUG 0
38 41
39static int radeon_do_cleanup_cp(struct drm_device * dev); 42static int radeon_do_cleanup_cp(struct drm_device * dev);
40 43
41/* CP microcode (from ATI) */ 44static u32 R500_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
42static const u32 R200_cp_microcode[][2] = {
43 {0x21007000, 0000000000},
44 {0x20007000, 0000000000},
45 {0x000000ab, 0x00000004},
46 {0x000000af, 0x00000004},
47 {0x66544a49, 0000000000},
48 {0x49494174, 0000000000},
49 {0x54517d83, 0000000000},
50 {0x498d8b64, 0000000000},
51 {0x49494949, 0000000000},
52 {0x49da493c, 0000000000},
53 {0x49989898, 0000000000},
54 {0xd34949d5, 0000000000},
55 {0x9dc90e11, 0000000000},
56 {0xce9b9b9b, 0000000000},
57 {0x000f0000, 0x00000016},
58 {0x352e232c, 0000000000},
59 {0x00000013, 0x00000004},
60 {0x000f0000, 0x00000016},
61 {0x352e272c, 0000000000},
62 {0x000f0001, 0x00000016},
63 {0x3239362f, 0000000000},
64 {0x000077ef, 0x00000002},
65 {0x00061000, 0x00000002},
66 {0x00000020, 0x0000001a},
67 {0x00004000, 0x0000001e},
68 {0x00061000, 0x00000002},
69 {0x00000020, 0x0000001a},
70 {0x00004000, 0x0000001e},
71 {0x00061000, 0x00000002},
72 {0x00000020, 0x0000001a},
73 {0x00004000, 0x0000001e},
74 {0x00000016, 0x00000004},
75 {0x0003802a, 0x00000002},
76 {0x040067e0, 0x00000002},
77 {0x00000016, 0x00000004},
78 {0x000077e0, 0x00000002},
79 {0x00065000, 0x00000002},
80 {0x000037e1, 0x00000002},
81 {0x040067e1, 0x00000006},
82 {0x000077e0, 0x00000002},
83 {0x000077e1, 0x00000002},
84 {0x000077e1, 0x00000006},
85 {0xffffffff, 0000000000},
86 {0x10000000, 0000000000},
87 {0x0003802a, 0x00000002},
88 {0x040067e0, 0x00000006},
89 {0x00007675, 0x00000002},
90 {0x00007676, 0x00000002},
91 {0x00007677, 0x00000002},
92 {0x00007678, 0x00000006},
93 {0x0003802b, 0x00000002},
94 {0x04002676, 0x00000002},
95 {0x00007677, 0x00000002},
96 {0x00007678, 0x00000006},
97 {0x0000002e, 0x00000018},
98 {0x0000002e, 0x00000018},
99 {0000000000, 0x00000006},
100 {0x0000002f, 0x00000018},
101 {0x0000002f, 0x00000018},
102 {0000000000, 0x00000006},
103 {0x01605000, 0x00000002},
104 {0x00065000, 0x00000002},
105 {0x00098000, 0x00000002},
106 {0x00061000, 0x00000002},
107 {0x64c0603d, 0x00000004},
108 {0x00080000, 0x00000016},
109 {0000000000, 0000000000},
110 {0x0400251d, 0x00000002},
111 {0x00007580, 0x00000002},
112 {0x00067581, 0x00000002},
113 {0x04002580, 0x00000002},
114 {0x00067581, 0x00000002},
115 {0x00000046, 0x00000004},
116 {0x00005000, 0000000000},
117 {0x00061000, 0x00000002},
118 {0x0000750e, 0x00000002},
119 {0x00019000, 0x00000002},
120 {0x00011055, 0x00000014},
121 {0x00000055, 0x00000012},
122 {0x0400250f, 0x00000002},
123 {0x0000504a, 0x00000004},
124 {0x00007565, 0x00000002},
125 {0x00007566, 0x00000002},
126 {0x00000051, 0x00000004},
127 {0x01e655b4, 0x00000002},
128 {0x4401b0dc, 0x00000002},
129 {0x01c110dc, 0x00000002},
130 {0x2666705d, 0x00000018},
131 {0x040c2565, 0x00000002},
132 {0x0000005d, 0x00000018},
133 {0x04002564, 0x00000002},
134 {0x00007566, 0x00000002},
135 {0x00000054, 0x00000004},
136 {0x00401060, 0x00000008},
137 {0x00101000, 0x00000002},
138 {0x000d80ff, 0x00000002},
139 {0x00800063, 0x00000008},
140 {0x000f9000, 0x00000002},
141 {0x000e00ff, 0x00000002},
142 {0000000000, 0x00000006},
143 {0x00000080, 0x00000018},
144 {0x00000054, 0x00000004},
145 {0x00007576, 0x00000002},
146 {0x00065000, 0x00000002},
147 {0x00009000, 0x00000002},
148 {0x00041000, 0x00000002},
149 {0x0c00350e, 0x00000002},
150 {0x00049000, 0x00000002},
151 {0x00051000, 0x00000002},
152 {0x01e785f8, 0x00000002},
153 {0x00200000, 0x00000002},
154 {0x00600073, 0x0000000c},
155 {0x00007563, 0x00000002},
156 {0x006075f0, 0x00000021},
157 {0x20007068, 0x00000004},
158 {0x00005068, 0x00000004},
159 {0x00007576, 0x00000002},
160 {0x00007577, 0x00000002},
161 {0x0000750e, 0x00000002},
162 {0x0000750f, 0x00000002},
163 {0x00a05000, 0x00000002},
164 {0x00600076, 0x0000000c},
165 {0x006075f0, 0x00000021},
166 {0x000075f8, 0x00000002},
167 {0x00000076, 0x00000004},
168 {0x000a750e, 0x00000002},
169 {0x0020750f, 0x00000002},
170 {0x00600079, 0x00000004},
171 {0x00007570, 0x00000002},
172 {0x00007571, 0x00000002},
173 {0x00007572, 0x00000006},
174 {0x00005000, 0x00000002},
175 {0x00a05000, 0x00000002},
176 {0x00007568, 0x00000002},
177 {0x00061000, 0x00000002},
178 {0x00000084, 0x0000000c},
179 {0x00058000, 0x00000002},
180 {0x0c607562, 0x00000002},
181 {0x00000086, 0x00000004},
182 {0x00600085, 0x00000004},
183 {0x400070dd, 0000000000},
184 {0x000380dd, 0x00000002},
185 {0x00000093, 0x0000001c},
186 {0x00065095, 0x00000018},
187 {0x040025bb, 0x00000002},
188 {0x00061096, 0x00000018},
189 {0x040075bc, 0000000000},
190 {0x000075bb, 0x00000002},
191 {0x000075bc, 0000000000},
192 {0x00090000, 0x00000006},
193 {0x00090000, 0x00000002},
194 {0x000d8002, 0x00000006},
195 {0x00005000, 0x00000002},
196 {0x00007821, 0x00000002},
197 {0x00007800, 0000000000},
198 {0x00007821, 0x00000002},
199 {0x00007800, 0000000000},
200 {0x01665000, 0x00000002},
201 {0x000a0000, 0x00000002},
202 {0x000671cc, 0x00000002},
203 {0x0286f1cd, 0x00000002},
204 {0x000000a3, 0x00000010},
205 {0x21007000, 0000000000},
206 {0x000000aa, 0x0000001c},
207 {0x00065000, 0x00000002},
208 {0x000a0000, 0x00000002},
209 {0x00061000, 0x00000002},
210 {0x000b0000, 0x00000002},
211 {0x38067000, 0x00000002},
212 {0x000a00a6, 0x00000004},
213 {0x20007000, 0000000000},
214 {0x01200000, 0x00000002},
215 {0x20077000, 0x00000002},
216 {0x01200000, 0x00000002},
217 {0x20007000, 0000000000},
218 {0x00061000, 0x00000002},
219 {0x0120751b, 0x00000002},
220 {0x8040750a, 0x00000002},
221 {0x8040750b, 0x00000002},
222 {0x00110000, 0x00000002},
223 {0x000380dd, 0x00000002},
224 {0x000000bd, 0x0000001c},
225 {0x00061096, 0x00000018},
226 {0x844075bd, 0x00000002},
227 {0x00061095, 0x00000018},
228 {0x840075bb, 0x00000002},
229 {0x00061096, 0x00000018},
230 {0x844075bc, 0x00000002},
231 {0x000000c0, 0x00000004},
232 {0x804075bd, 0x00000002},
233 {0x800075bb, 0x00000002},
234 {0x804075bc, 0x00000002},
235 {0x00108000, 0x00000002},
236 {0x01400000, 0x00000002},
237 {0x006000c4, 0x0000000c},
238 {0x20c07000, 0x00000020},
239 {0x000000c6, 0x00000012},
240 {0x00800000, 0x00000006},
241 {0x0080751d, 0x00000006},
242 {0x000025bb, 0x00000002},
243 {0x000040c0, 0x00000004},
244 {0x0000775c, 0x00000002},
245 {0x00a05000, 0x00000002},
246 {0x00661000, 0x00000002},
247 {0x0460275d, 0x00000020},
248 {0x00004000, 0000000000},
249 {0x00007999, 0x00000002},
250 {0x00a05000, 0x00000002},
251 {0x00661000, 0x00000002},
252 {0x0460299b, 0x00000020},
253 {0x00004000, 0000000000},
254 {0x01e00830, 0x00000002},
255 {0x21007000, 0000000000},
256 {0x00005000, 0x00000002},
257 {0x00038042, 0x00000002},
258 {0x040025e0, 0x00000002},
259 {0x000075e1, 0000000000},
260 {0x00000001, 0000000000},
261 {0x000380d9, 0x00000002},
262 {0x04007394, 0000000000},
263 {0000000000, 0000000000},
264 {0000000000, 0000000000},
265 {0000000000, 0000000000},
266 {0000000000, 0000000000},
267 {0000000000, 0000000000},
268 {0000000000, 0000000000},
269 {0000000000, 0000000000},
270 {0000000000, 0000000000},
271 {0000000000, 0000000000},
272 {0000000000, 0000000000},
273 {0000000000, 0000000000},
274 {0000000000, 0000000000},
275 {0000000000, 0000000000},
276 {0000000000, 0000000000},
277 {0000000000, 0000000000},
278 {0000000000, 0000000000},
279 {0000000000, 0000000000},
280 {0000000000, 0000000000},
281 {0000000000, 0000000000},
282 {0000000000, 0000000000},
283 {0000000000, 0000000000},
284 {0000000000, 0000000000},
285 {0000000000, 0000000000},
286 {0000000000, 0000000000},
287 {0000000000, 0000000000},
288 {0000000000, 0000000000},
289 {0000000000, 0000000000},
290 {0000000000, 0000000000},
291 {0000000000, 0000000000},
292 {0000000000, 0000000000},
293 {0000000000, 0000000000},
294 {0000000000, 0000000000},
295 {0000000000, 0000000000},
296 {0000000000, 0000000000},
297 {0000000000, 0000000000},
298 {0000000000, 0000000000},
299};
300
301static const u32 radeon_cp_microcode[][2] = {
302 {0x21007000, 0000000000},
303 {0x20007000, 0000000000},
304 {0x000000b4, 0x00000004},
305 {0x000000b8, 0x00000004},
306 {0x6f5b4d4c, 0000000000},
307 {0x4c4c427f, 0000000000},
308 {0x5b568a92, 0000000000},
309 {0x4ca09c6d, 0000000000},
310 {0xad4c4c4c, 0000000000},
311 {0x4ce1af3d, 0000000000},
312 {0xd8afafaf, 0000000000},
313 {0xd64c4cdc, 0000000000},
314 {0x4cd10d10, 0000000000},
315 {0x000f0000, 0x00000016},
316 {0x362f242d, 0000000000},
317 {0x00000012, 0x00000004},
318 {0x000f0000, 0x00000016},
319 {0x362f282d, 0000000000},
320 {0x000380e7, 0x00000002},
321 {0x04002c97, 0x00000002},
322 {0x000f0001, 0x00000016},
323 {0x333a3730, 0000000000},
324 {0x000077ef, 0x00000002},
325 {0x00061000, 0x00000002},
326 {0x00000021, 0x0000001a},
327 {0x00004000, 0x0000001e},
328 {0x00061000, 0x00000002},
329 {0x00000021, 0x0000001a},
330 {0x00004000, 0x0000001e},
331 {0x00061000, 0x00000002},
332 {0x00000021, 0x0000001a},
333 {0x00004000, 0x0000001e},
334 {0x00000017, 0x00000004},
335 {0x0003802b, 0x00000002},
336 {0x040067e0, 0x00000002},
337 {0x00000017, 0x00000004},
338 {0x000077e0, 0x00000002},
339 {0x00065000, 0x00000002},
340 {0x000037e1, 0x00000002},
341 {0x040067e1, 0x00000006},
342 {0x000077e0, 0x00000002},
343 {0x000077e1, 0x00000002},
344 {0x000077e1, 0x00000006},
345 {0xffffffff, 0000000000},
346 {0x10000000, 0000000000},
347 {0x0003802b, 0x00000002},
348 {0x040067e0, 0x00000006},
349 {0x00007675, 0x00000002},
350 {0x00007676, 0x00000002},
351 {0x00007677, 0x00000002},
352 {0x00007678, 0x00000006},
353 {0x0003802c, 0x00000002},
354 {0x04002676, 0x00000002},
355 {0x00007677, 0x00000002},
356 {0x00007678, 0x00000006},
357 {0x0000002f, 0x00000018},
358 {0x0000002f, 0x00000018},
359 {0000000000, 0x00000006},
360 {0x00000030, 0x00000018},
361 {0x00000030, 0x00000018},
362 {0000000000, 0x00000006},
363 {0x01605000, 0x00000002},
364 {0x00065000, 0x00000002},
365 {0x00098000, 0x00000002},
366 {0x00061000, 0x00000002},
367 {0x64c0603e, 0x00000004},
368 {0x000380e6, 0x00000002},
369 {0x040025c5, 0x00000002},
370 {0x00080000, 0x00000016},
371 {0000000000, 0000000000},
372 {0x0400251d, 0x00000002},
373 {0x00007580, 0x00000002},
374 {0x00067581, 0x00000002},
375 {0x04002580, 0x00000002},
376 {0x00067581, 0x00000002},
377 {0x00000049, 0x00000004},
378 {0x00005000, 0000000000},
379 {0x000380e6, 0x00000002},
380 {0x040025c5, 0x00000002},
381 {0x00061000, 0x00000002},
382 {0x0000750e, 0x00000002},
383 {0x00019000, 0x00000002},
384 {0x00011055, 0x00000014},
385 {0x00000055, 0x00000012},
386 {0x0400250f, 0x00000002},
387 {0x0000504f, 0x00000004},
388 {0x000380e6, 0x00000002},
389 {0x040025c5, 0x00000002},
390 {0x00007565, 0x00000002},
391 {0x00007566, 0x00000002},
392 {0x00000058, 0x00000004},
393 {0x000380e6, 0x00000002},
394 {0x040025c5, 0x00000002},
395 {0x01e655b4, 0x00000002},
396 {0x4401b0e4, 0x00000002},
397 {0x01c110e4, 0x00000002},
398 {0x26667066, 0x00000018},
399 {0x040c2565, 0x00000002},
400 {0x00000066, 0x00000018},
401 {0x04002564, 0x00000002},
402 {0x00007566, 0x00000002},
403 {0x0000005d, 0x00000004},
404 {0x00401069, 0x00000008},
405 {0x00101000, 0x00000002},
406 {0x000d80ff, 0x00000002},
407 {0x0080006c, 0x00000008},
408 {0x000f9000, 0x00000002},
409 {0x000e00ff, 0x00000002},
410 {0000000000, 0x00000006},
411 {0x0000008f, 0x00000018},
412 {0x0000005b, 0x00000004},
413 {0x000380e6, 0x00000002},
414 {0x040025c5, 0x00000002},
415 {0x00007576, 0x00000002},
416 {0x00065000, 0x00000002},
417 {0x00009000, 0x00000002},
418 {0x00041000, 0x00000002},
419 {0x0c00350e, 0x00000002},
420 {0x00049000, 0x00000002},
421 {0x00051000, 0x00000002},
422 {0x01e785f8, 0x00000002},
423 {0x00200000, 0x00000002},
424 {0x0060007e, 0x0000000c},
425 {0x00007563, 0x00000002},
426 {0x006075f0, 0x00000021},
427 {0x20007073, 0x00000004},
428 {0x00005073, 0x00000004},
429 {0x000380e6, 0x00000002},
430 {0x040025c5, 0x00000002},
431 {0x00007576, 0x00000002},
432 {0x00007577, 0x00000002},
433 {0x0000750e, 0x00000002},
434 {0x0000750f, 0x00000002},
435 {0x00a05000, 0x00000002},
436 {0x00600083, 0x0000000c},
437 {0x006075f0, 0x00000021},
438 {0x000075f8, 0x00000002},
439 {0x00000083, 0x00000004},
440 {0x000a750e, 0x00000002},
441 {0x000380e6, 0x00000002},
442 {0x040025c5, 0x00000002},
443 {0x0020750f, 0x00000002},
444 {0x00600086, 0x00000004},
445 {0x00007570, 0x00000002},
446 {0x00007571, 0x00000002},
447 {0x00007572, 0x00000006},
448 {0x000380e6, 0x00000002},
449 {0x040025c5, 0x00000002},
450 {0x00005000, 0x00000002},
451 {0x00a05000, 0x00000002},
452 {0x00007568, 0x00000002},
453 {0x00061000, 0x00000002},
454 {0x00000095, 0x0000000c},
455 {0x00058000, 0x00000002},
456 {0x0c607562, 0x00000002},
457 {0x00000097, 0x00000004},
458 {0x000380e6, 0x00000002},
459 {0x040025c5, 0x00000002},
460 {0x00600096, 0x00000004},
461 {0x400070e5, 0000000000},
462 {0x000380e6, 0x00000002},
463 {0x040025c5, 0x00000002},
464 {0x000380e5, 0x00000002},
465 {0x000000a8, 0x0000001c},
466 {0x000650aa, 0x00000018},
467 {0x040025bb, 0x00000002},
468 {0x000610ab, 0x00000018},
469 {0x040075bc, 0000000000},
470 {0x000075bb, 0x00000002},
471 {0x000075bc, 0000000000},
472 {0x00090000, 0x00000006},
473 {0x00090000, 0x00000002},
474 {0x000d8002, 0x00000006},
475 {0x00007832, 0x00000002},
476 {0x00005000, 0x00000002},
477 {0x000380e7, 0x00000002},
478 {0x04002c97, 0x00000002},
479 {0x00007820, 0x00000002},
480 {0x00007821, 0x00000002},
481 {0x00007800, 0000000000},
482 {0x01200000, 0x00000002},
483 {0x20077000, 0x00000002},
484 {0x01200000, 0x00000002},
485 {0x20007000, 0x00000002},
486 {0x00061000, 0x00000002},
487 {0x0120751b, 0x00000002},
488 {0x8040750a, 0x00000002},
489 {0x8040750b, 0x00000002},
490 {0x00110000, 0x00000002},
491 {0x000380e5, 0x00000002},
492 {0x000000c6, 0x0000001c},
493 {0x000610ab, 0x00000018},
494 {0x844075bd, 0x00000002},
495 {0x000610aa, 0x00000018},
496 {0x840075bb, 0x00000002},
497 {0x000610ab, 0x00000018},
498 {0x844075bc, 0x00000002},
499 {0x000000c9, 0x00000004},
500 {0x804075bd, 0x00000002},
501 {0x800075bb, 0x00000002},
502 {0x804075bc, 0x00000002},
503 {0x00108000, 0x00000002},
504 {0x01400000, 0x00000002},
505 {0x006000cd, 0x0000000c},
506 {0x20c07000, 0x00000020},
507 {0x000000cf, 0x00000012},
508 {0x00800000, 0x00000006},
509 {0x0080751d, 0x00000006},
510 {0000000000, 0000000000},
511 {0x0000775c, 0x00000002},
512 {0x00a05000, 0x00000002},
513 {0x00661000, 0x00000002},
514 {0x0460275d, 0x00000020},
515 {0x00004000, 0000000000},
516 {0x01e00830, 0x00000002},
517 {0x21007000, 0000000000},
518 {0x6464614d, 0000000000},
519 {0x69687420, 0000000000},
520 {0x00000073, 0000000000},
521 {0000000000, 0000000000},
522 {0x00005000, 0x00000002},
523 {0x000380d0, 0x00000002},
524 {0x040025e0, 0x00000002},
525 {0x000075e1, 0000000000},
526 {0x00000001, 0000000000},
527 {0x000380e0, 0x00000002},
528 {0x04002394, 0x00000002},
529 {0x00005000, 0000000000},
530 {0000000000, 0000000000},
531 {0000000000, 0000000000},
532 {0x00000008, 0000000000},
533 {0x00000004, 0000000000},
534 {0000000000, 0000000000},
535 {0000000000, 0000000000},
536 {0000000000, 0000000000},
537 {0000000000, 0000000000},
538 {0000000000, 0000000000},
539 {0000000000, 0000000000},
540 {0000000000, 0000000000},
541 {0000000000, 0000000000},
542 {0000000000, 0000000000},
543 {0000000000, 0000000000},
544 {0000000000, 0000000000},
545 {0000000000, 0000000000},
546 {0000000000, 0000000000},
547 {0000000000, 0000000000},
548 {0000000000, 0000000000},
549 {0000000000, 0000000000},
550 {0000000000, 0000000000},
551 {0000000000, 0000000000},
552 {0000000000, 0000000000},
553 {0000000000, 0000000000},
554 {0000000000, 0000000000},
555 {0000000000, 0000000000},
556 {0000000000, 0000000000},
557 {0000000000, 0000000000},
558};
559
560static const u32 R300_cp_microcode[][2] = {
561 {0x4200e000, 0000000000},
562 {0x4000e000, 0000000000},
563 {0x000000af, 0x00000008},
564 {0x000000b3, 0x00000008},
565 {0x6c5a504f, 0000000000},
566 {0x4f4f497a, 0000000000},
567 {0x5a578288, 0000000000},
568 {0x4f91906a, 0000000000},
569 {0x4f4f4f4f, 0000000000},
570 {0x4fe24f44, 0000000000},
571 {0x4f9c9c9c, 0000000000},
572 {0xdc4f4fde, 0000000000},
573 {0xa1cd4f4f, 0000000000},
574 {0xd29d9d9d, 0000000000},
575 {0x4f0f9fd7, 0000000000},
576 {0x000ca000, 0x00000004},
577 {0x000d0012, 0x00000038},
578 {0x0000e8b4, 0x00000004},
579 {0x000d0014, 0x00000038},
580 {0x0000e8b6, 0x00000004},
581 {0x000d0016, 0x00000038},
582 {0x0000e854, 0x00000004},
583 {0x000d0018, 0x00000038},
584 {0x0000e855, 0x00000004},
585 {0x000d001a, 0x00000038},
586 {0x0000e856, 0x00000004},
587 {0x000d001c, 0x00000038},
588 {0x0000e857, 0x00000004},
589 {0x000d001e, 0x00000038},
590 {0x0000e824, 0x00000004},
591 {0x000d0020, 0x00000038},
592 {0x0000e825, 0x00000004},
593 {0x000d0022, 0x00000038},
594 {0x0000e830, 0x00000004},
595 {0x000d0024, 0x00000038},
596 {0x0000f0c0, 0x00000004},
597 {0x000d0026, 0x00000038},
598 {0x0000f0c1, 0x00000004},
599 {0x000d0028, 0x00000038},
600 {0x0000f041, 0x00000004},
601 {0x000d002a, 0x00000038},
602 {0x0000f184, 0x00000004},
603 {0x000d002c, 0x00000038},
604 {0x0000f185, 0x00000004},
605 {0x000d002e, 0x00000038},
606 {0x0000f186, 0x00000004},
607 {0x000d0030, 0x00000038},
608 {0x0000f187, 0x00000004},
609 {0x000d0032, 0x00000038},
610 {0x0000f180, 0x00000004},
611 {0x000d0034, 0x00000038},
612 {0x0000f393, 0x00000004},
613 {0x000d0036, 0x00000038},
614 {0x0000f38a, 0x00000004},
615 {0x000d0038, 0x00000038},
616 {0x0000f38e, 0x00000004},
617 {0x0000e821, 0x00000004},
618 {0x0140a000, 0x00000004},
619 {0x00000043, 0x00000018},
620 {0x00cce800, 0x00000004},
621 {0x001b0001, 0x00000004},
622 {0x08004800, 0x00000004},
623 {0x001b0001, 0x00000004},
624 {0x08004800, 0x00000004},
625 {0x001b0001, 0x00000004},
626 {0x08004800, 0x00000004},
627 {0x0000003a, 0x00000008},
628 {0x0000a000, 0000000000},
629 {0x02c0a000, 0x00000004},
630 {0x000ca000, 0x00000004},
631 {0x00130000, 0x00000004},
632 {0x000c2000, 0x00000004},
633 {0xc980c045, 0x00000008},
634 {0x2000451d, 0x00000004},
635 {0x0000e580, 0x00000004},
636 {0x000ce581, 0x00000004},
637 {0x08004580, 0x00000004},
638 {0x000ce581, 0x00000004},
639 {0x0000004c, 0x00000008},
640 {0x0000a000, 0000000000},
641 {0x000c2000, 0x00000004},
642 {0x0000e50e, 0x00000004},
643 {0x00032000, 0x00000004},
644 {0x00022056, 0x00000028},
645 {0x00000056, 0x00000024},
646 {0x0800450f, 0x00000004},
647 {0x0000a050, 0x00000008},
648 {0x0000e565, 0x00000004},
649 {0x0000e566, 0x00000004},
650 {0x00000057, 0x00000008},
651 {0x03cca5b4, 0x00000004},
652 {0x05432000, 0x00000004},
653 {0x00022000, 0x00000004},
654 {0x4ccce063, 0x00000030},
655 {0x08274565, 0x00000004},
656 {0x00000063, 0x00000030},
657 {0x08004564, 0x00000004},
658 {0x0000e566, 0x00000004},
659 {0x0000005a, 0x00000008},
660 {0x00802066, 0x00000010},
661 {0x00202000, 0x00000004},
662 {0x001b00ff, 0x00000004},
663 {0x01000069, 0x00000010},
664 {0x001f2000, 0x00000004},
665 {0x001c00ff, 0x00000004},
666 {0000000000, 0x0000000c},
667 {0x00000085, 0x00000030},
668 {0x0000005a, 0x00000008},
669 {0x0000e576, 0x00000004},
670 {0x000ca000, 0x00000004},
671 {0x00012000, 0x00000004},
672 {0x00082000, 0x00000004},
673 {0x1800650e, 0x00000004},
674 {0x00092000, 0x00000004},
675 {0x000a2000, 0x00000004},
676 {0x000f0000, 0x00000004},
677 {0x00400000, 0x00000004},
678 {0x00000079, 0x00000018},
679 {0x0000e563, 0x00000004},
680 {0x00c0e5f9, 0x000000c2},
681 {0x0000006e, 0x00000008},
682 {0x0000a06e, 0x00000008},
683 {0x0000e576, 0x00000004},
684 {0x0000e577, 0x00000004},
685 {0x0000e50e, 0x00000004},
686 {0x0000e50f, 0x00000004},
687 {0x0140a000, 0x00000004},
688 {0x0000007c, 0x00000018},
689 {0x00c0e5f9, 0x000000c2},
690 {0x0000007c, 0x00000008},
691 {0x0014e50e, 0x00000004},
692 {0x0040e50f, 0x00000004},
693 {0x00c0007f, 0x00000008},
694 {0x0000e570, 0x00000004},
695 {0x0000e571, 0x00000004},
696 {0x0000e572, 0x0000000c},
697 {0x0000a000, 0x00000004},
698 {0x0140a000, 0x00000004},
699 {0x0000e568, 0x00000004},
700 {0x000c2000, 0x00000004},
701 {0x00000089, 0x00000018},
702 {0x000b0000, 0x00000004},
703 {0x18c0e562, 0x00000004},
704 {0x0000008b, 0x00000008},
705 {0x00c0008a, 0x00000008},
706 {0x000700e4, 0x00000004},
707 {0x00000097, 0x00000038},
708 {0x000ca099, 0x00000030},
709 {0x080045bb, 0x00000004},
710 {0x000c209a, 0x00000030},
711 {0x0800e5bc, 0000000000},
712 {0x0000e5bb, 0x00000004},
713 {0x0000e5bc, 0000000000},
714 {0x00120000, 0x0000000c},
715 {0x00120000, 0x00000004},
716 {0x001b0002, 0x0000000c},
717 {0x0000a000, 0x00000004},
718 {0x0000e821, 0x00000004},
719 {0x0000e800, 0000000000},
720 {0x0000e821, 0x00000004},
721 {0x0000e82e, 0000000000},
722 {0x02cca000, 0x00000004},
723 {0x00140000, 0x00000004},
724 {0x000ce1cc, 0x00000004},
725 {0x050de1cd, 0x00000004},
726 {0x000000a7, 0x00000020},
727 {0x4200e000, 0000000000},
728 {0x000000ae, 0x00000038},
729 {0x000ca000, 0x00000004},
730 {0x00140000, 0x00000004},
731 {0x000c2000, 0x00000004},
732 {0x00160000, 0x00000004},
733 {0x700ce000, 0x00000004},
734 {0x001400aa, 0x00000008},
735 {0x4000e000, 0000000000},
736 {0x02400000, 0x00000004},
737 {0x400ee000, 0x00000004},
738 {0x02400000, 0x00000004},
739 {0x4000e000, 0000000000},
740 {0x000c2000, 0x00000004},
741 {0x0240e51b, 0x00000004},
742 {0x0080e50a, 0x00000005},
743 {0x0080e50b, 0x00000005},
744 {0x00220000, 0x00000004},
745 {0x000700e4, 0x00000004},
746 {0x000000c1, 0x00000038},
747 {0x000c209a, 0x00000030},
748 {0x0880e5bd, 0x00000005},
749 {0x000c2099, 0x00000030},
750 {0x0800e5bb, 0x00000005},
751 {0x000c209a, 0x00000030},
752 {0x0880e5bc, 0x00000005},
753 {0x000000c4, 0x00000008},
754 {0x0080e5bd, 0x00000005},
755 {0x0000e5bb, 0x00000005},
756 {0x0080e5bc, 0x00000005},
757 {0x00210000, 0x00000004},
758 {0x02800000, 0x00000004},
759 {0x00c000c8, 0x00000018},
760 {0x4180e000, 0x00000040},
761 {0x000000ca, 0x00000024},
762 {0x01000000, 0x0000000c},
763 {0x0100e51d, 0x0000000c},
764 {0x000045bb, 0x00000004},
765 {0x000080c4, 0x00000008},
766 {0x0000f3ce, 0x00000004},
767 {0x0140a000, 0x00000004},
768 {0x00cc2000, 0x00000004},
769 {0x08c053cf, 0x00000040},
770 {0x00008000, 0000000000},
771 {0x0000f3d2, 0x00000004},
772 {0x0140a000, 0x00000004},
773 {0x00cc2000, 0x00000004},
774 {0x08c053d3, 0x00000040},
775 {0x00008000, 0000000000},
776 {0x0000f39d, 0x00000004},
777 {0x0140a000, 0x00000004},
778 {0x00cc2000, 0x00000004},
779 {0x08c0539e, 0x00000040},
780 {0x00008000, 0000000000},
781 {0x03c00830, 0x00000004},
782 {0x4200e000, 0000000000},
783 {0x0000a000, 0x00000004},
784 {0x200045e0, 0x00000004},
785 {0x0000e5e1, 0000000000},
786 {0x00000001, 0000000000},
787 {0x000700e1, 0x00000004},
788 {0x0800e394, 0000000000},
789 {0000000000, 0000000000},
790 {0000000000, 0000000000},
791 {0000000000, 0000000000},
792 {0000000000, 0000000000},
793 {0000000000, 0000000000},
794 {0000000000, 0000000000},
795 {0000000000, 0000000000},
796 {0000000000, 0000000000},
797 {0000000000, 0000000000},
798 {0000000000, 0000000000},
799 {0000000000, 0000000000},
800 {0000000000, 0000000000},
801 {0000000000, 0000000000},
802 {0000000000, 0000000000},
803 {0000000000, 0000000000},
804 {0000000000, 0000000000},
805 {0000000000, 0000000000},
806 {0000000000, 0000000000},
807 {0000000000, 0000000000},
808 {0000000000, 0000000000},
809 {0000000000, 0000000000},
810 {0000000000, 0000000000},
811 {0000000000, 0000000000},
812 {0000000000, 0000000000},
813 {0000000000, 0000000000},
814 {0000000000, 0000000000},
815 {0000000000, 0000000000},
816 {0000000000, 0000000000},
817};
818
819static u32 RADEON_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
820{ 45{
821 u32 ret; 46 u32 ret;
822 RADEON_WRITE(R520_MC_IND_INDEX, 0x7f0000 | (addr & 0xff)); 47 RADEON_WRITE(R520_MC_IND_INDEX, 0x7f0000 | (addr & 0xff));
@@ -825,21 +50,41 @@ static u32 RADEON_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
825 return ret; 50 return ret;
826} 51}
827 52
53static u32 RS480_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
54{
55 u32 ret;
56 RADEON_WRITE(RS480_NB_MC_INDEX, addr & 0xff);
57 ret = RADEON_READ(RS480_NB_MC_DATA);
58 RADEON_WRITE(RS480_NB_MC_INDEX, 0xff);
59 return ret;
60}
61
828static u32 RS690_READ_MCIND(drm_radeon_private_t *dev_priv, int addr) 62static u32 RS690_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
829{ 63{
64 u32 ret;
830 RADEON_WRITE(RS690_MC_INDEX, (addr & RS690_MC_INDEX_MASK)); 65 RADEON_WRITE(RS690_MC_INDEX, (addr & RS690_MC_INDEX_MASK));
831 return RADEON_READ(RS690_MC_DATA); 66 ret = RADEON_READ(RS690_MC_DATA);
67 RADEON_WRITE(RS690_MC_INDEX, RS690_MC_INDEX_MASK);
68 return ret;
69}
70
71static u32 IGP_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
72{
73 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690)
74 return RS690_READ_MCIND(dev_priv, addr);
75 else
76 return RS480_READ_MCIND(dev_priv, addr);
832} 77}
833 78
834u32 radeon_read_fb_location(drm_radeon_private_t *dev_priv) 79u32 radeon_read_fb_location(drm_radeon_private_t *dev_priv)
835{ 80{
836 81
837 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515) 82 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515)
838 return RADEON_READ_MCIND(dev_priv, RV515_MC_FB_LOCATION); 83 return R500_READ_MCIND(dev_priv, RV515_MC_FB_LOCATION);
839 else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) 84 else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690)
840 return RS690_READ_MCIND(dev_priv, RS690_MC_FB_LOCATION); 85 return RS690_READ_MCIND(dev_priv, RS690_MC_FB_LOCATION);
841 else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515) 86 else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515)
842 return RADEON_READ_MCIND(dev_priv, R520_MC_FB_LOCATION); 87 return R500_READ_MCIND(dev_priv, R520_MC_FB_LOCATION);
843 else 88 else
844 return RADEON_READ(RADEON_MC_FB_LOCATION); 89 return RADEON_READ(RADEON_MC_FB_LOCATION);
845} 90}
@@ -847,11 +92,11 @@ u32 radeon_read_fb_location(drm_radeon_private_t *dev_priv)
847static void radeon_write_fb_location(drm_radeon_private_t *dev_priv, u32 fb_loc) 92static void radeon_write_fb_location(drm_radeon_private_t *dev_priv, u32 fb_loc)
848{ 93{
849 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515) 94 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515)
850 RADEON_WRITE_MCIND(RV515_MC_FB_LOCATION, fb_loc); 95 R500_WRITE_MCIND(RV515_MC_FB_LOCATION, fb_loc);
851 else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) 96 else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690)
852 RS690_WRITE_MCIND(RS690_MC_FB_LOCATION, fb_loc); 97 RS690_WRITE_MCIND(RS690_MC_FB_LOCATION, fb_loc);
853 else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515) 98 else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515)
854 RADEON_WRITE_MCIND(R520_MC_FB_LOCATION, fb_loc); 99 R500_WRITE_MCIND(R520_MC_FB_LOCATION, fb_loc);
855 else 100 else
856 RADEON_WRITE(RADEON_MC_FB_LOCATION, fb_loc); 101 RADEON_WRITE(RADEON_MC_FB_LOCATION, fb_loc);
857} 102}
@@ -859,15 +104,39 @@ static void radeon_write_fb_location(drm_radeon_private_t *dev_priv, u32 fb_loc)
859static void radeon_write_agp_location(drm_radeon_private_t *dev_priv, u32 agp_loc) 104static void radeon_write_agp_location(drm_radeon_private_t *dev_priv, u32 agp_loc)
860{ 105{
861 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515) 106 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515)
862 RADEON_WRITE_MCIND(RV515_MC_AGP_LOCATION, agp_loc); 107 R500_WRITE_MCIND(RV515_MC_AGP_LOCATION, agp_loc);
863 else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) 108 else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690)
864 RS690_WRITE_MCIND(RS690_MC_AGP_LOCATION, agp_loc); 109 RS690_WRITE_MCIND(RS690_MC_AGP_LOCATION, agp_loc);
865 else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515) 110 else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515)
866 RADEON_WRITE_MCIND(R520_MC_AGP_LOCATION, agp_loc); 111 R500_WRITE_MCIND(R520_MC_AGP_LOCATION, agp_loc);
867 else 112 else
868 RADEON_WRITE(RADEON_MC_AGP_LOCATION, agp_loc); 113 RADEON_WRITE(RADEON_MC_AGP_LOCATION, agp_loc);
869} 114}
870 115
116static void radeon_write_agp_base(drm_radeon_private_t *dev_priv, u64 agp_base)
117{
118 u32 agp_base_hi = upper_32_bits(agp_base);
119 u32 agp_base_lo = agp_base & 0xffffffff;
120
121 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515) {
122 R500_WRITE_MCIND(RV515_MC_AGP_BASE, agp_base_lo);
123 R500_WRITE_MCIND(RV515_MC_AGP_BASE_2, agp_base_hi);
124 } else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) {
125 RS690_WRITE_MCIND(RS690_MC_AGP_BASE, agp_base_lo);
126 RS690_WRITE_MCIND(RS690_MC_AGP_BASE_2, agp_base_hi);
127 } else if ((dev_priv->flags & RADEON_FAMILY_MASK) > CHIP_RV515) {
128 R500_WRITE_MCIND(R520_MC_AGP_BASE, agp_base_lo);
129 R500_WRITE_MCIND(R520_MC_AGP_BASE_2, agp_base_hi);
130 } else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS480) {
131 RADEON_WRITE(RADEON_AGP_BASE, agp_base_lo);
132 RADEON_WRITE(RS480_AGP_BASE_2, 0);
133 } else {
134 RADEON_WRITE(RADEON_AGP_BASE, agp_base_lo);
135 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R200)
136 RADEON_WRITE(RADEON_AGP_BASE_2, agp_base_hi);
137 }
138}
139
871static int RADEON_READ_PLL(struct drm_device * dev, int addr) 140static int RADEON_READ_PLL(struct drm_device * dev, int addr)
872{ 141{
873 drm_radeon_private_t *dev_priv = dev->dev_private; 142 drm_radeon_private_t *dev_priv = dev->dev_private;
@@ -882,15 +151,6 @@ static u32 RADEON_READ_PCIE(drm_radeon_private_t *dev_priv, int addr)
882 return RADEON_READ(RADEON_PCIE_DATA); 151 return RADEON_READ(RADEON_PCIE_DATA);
883} 152}
884 153
885static u32 RADEON_READ_IGPGART(drm_radeon_private_t *dev_priv, int addr)
886{
887 u32 ret;
888 RADEON_WRITE(RADEON_IGPGART_INDEX, addr & 0x7f);
889 ret = RADEON_READ(RADEON_IGPGART_DATA);
890 RADEON_WRITE(RADEON_IGPGART_INDEX, 0x7f);
891 return ret;
892}
893
894#if RADEON_FIFO_DEBUG 154#if RADEON_FIFO_DEBUG
895static void radeon_status(drm_radeon_private_t * dev_priv) 155static void radeon_status(drm_radeon_private_t * dev_priv)
896{ 156{
@@ -925,16 +185,36 @@ static int radeon_do_pixcache_flush(drm_radeon_private_t * dev_priv)
925 185
926 dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE; 186 dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE;
927 187
928 tmp = RADEON_READ(RADEON_RB3D_DSTCACHE_CTLSTAT); 188 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) {
929 tmp |= RADEON_RB3D_DC_FLUSH_ALL; 189 tmp = RADEON_READ(RADEON_RB3D_DSTCACHE_CTLSTAT);
930 RADEON_WRITE(RADEON_RB3D_DSTCACHE_CTLSTAT, tmp); 190 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
191 RADEON_WRITE(RADEON_RB3D_DSTCACHE_CTLSTAT, tmp);
931 192
932 for (i = 0; i < dev_priv->usec_timeout; i++) { 193 for (i = 0; i < dev_priv->usec_timeout; i++) {
933 if (!(RADEON_READ(RADEON_RB3D_DSTCACHE_CTLSTAT) 194 if (!(RADEON_READ(RADEON_RB3D_DSTCACHE_CTLSTAT)
934 & RADEON_RB3D_DC_BUSY)) { 195 & RADEON_RB3D_DC_BUSY)) {
935 return 0; 196 return 0;
197 }
198 DRM_UDELAY(1);
199 }
200 } else {
201 /* 3D */
202 tmp = RADEON_READ(R300_RB3D_DSTCACHE_CTLSTAT);
203 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
204 RADEON_WRITE(R300_RB3D_DSTCACHE_CTLSTAT, tmp);
205
206 /* 2D */
207 tmp = RADEON_READ(R300_DSTCACHE_CTLSTAT);
208 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
209 RADEON_WRITE(R300_DSTCACHE_CTLSTAT, tmp);
210
211 for (i = 0; i < dev_priv->usec_timeout; i++) {
212 if (!(RADEON_READ(R300_DSTCACHE_CTLSTAT)
213 & RADEON_RB3D_DC_BUSY)) {
214 return 0;
215 }
216 DRM_UDELAY(1);
936 } 217 }
937 DRM_UDELAY(1);
938 } 218 }
939 219
940#if RADEON_FIFO_DEBUG 220#if RADEON_FIFO_DEBUG
@@ -991,6 +271,50 @@ static int radeon_do_wait_for_idle(drm_radeon_private_t * dev_priv)
991 return -EBUSY; 271 return -EBUSY;
992} 272}
993 273
274static void radeon_init_pipes(drm_radeon_private_t *dev_priv)
275{
276 uint32_t gb_tile_config, gb_pipe_sel = 0;
277
278 /* RS4xx/RS6xx/R4xx/R5xx */
279 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R420) {
280 gb_pipe_sel = RADEON_READ(R400_GB_PIPE_SELECT);
281 dev_priv->num_gb_pipes = ((gb_pipe_sel >> 12) & 0x3) + 1;
282 } else {
283 /* R3xx */
284 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300) ||
285 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350)) {
286 dev_priv->num_gb_pipes = 2;
287 } else {
288 /* R3Vxx */
289 dev_priv->num_gb_pipes = 1;
290 }
291 }
292 DRM_INFO("Num pipes: %d\n", dev_priv->num_gb_pipes);
293
294 gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 /*| R300_SUBPIXEL_1_16*/);
295
296 switch (dev_priv->num_gb_pipes) {
297 case 2: gb_tile_config |= R300_PIPE_COUNT_R300; break;
298 case 3: gb_tile_config |= R300_PIPE_COUNT_R420_3P; break;
299 case 4: gb_tile_config |= R300_PIPE_COUNT_R420; break;
300 default:
301 case 1: gb_tile_config |= R300_PIPE_COUNT_RV350; break;
302 }
303
304 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) {
305 RADEON_WRITE_PLL(R500_DYN_SCLK_PWMEM_PIPE, (1 | ((gb_pipe_sel >> 8) & 0xf) << 4));
306 RADEON_WRITE(R500_SU_REG_DEST, ((1 << dev_priv->num_gb_pipes) - 1));
307 }
308 RADEON_WRITE(R300_GB_TILE_CONFIG, gb_tile_config);
309 radeon_do_wait_for_idle(dev_priv);
310 RADEON_WRITE(R300_DST_PIPE_CONFIG, RADEON_READ(R300_DST_PIPE_CONFIG) | R300_PIPE_AUTO_CONFIG);
311 RADEON_WRITE(R300_RB2D_DSTCACHE_MODE, (RADEON_READ(R300_RB2D_DSTCACHE_MODE) |
312 R300_DC_AUTOFLUSH_ENABLE |
313 R300_DC_DC_DISABLE_IGNORE_PE));
314
315
316}
317
994/* ================================================================ 318/* ================================================================
995 * CP control, initialization 319 * CP control, initialization
996 */ 320 */
@@ -1004,8 +328,22 @@ static void radeon_cp_load_microcode(drm_radeon_private_t * dev_priv)
1004 radeon_do_wait_for_idle(dev_priv); 328 radeon_do_wait_for_idle(dev_priv);
1005 329
1006 RADEON_WRITE(RADEON_CP_ME_RAM_ADDR, 0); 330 RADEON_WRITE(RADEON_CP_ME_RAM_ADDR, 0);
1007 331 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R100) ||
1008 if (dev_priv->microcode_version == UCODE_R200) { 332 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV100) ||
333 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV200) ||
334 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS100) ||
335 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS200)) {
336 DRM_INFO("Loading R100 Microcode\n");
337 for (i = 0; i < 256; i++) {
338 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH,
339 R100_cp_microcode[i][1]);
340 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL,
341 R100_cp_microcode[i][0]);
342 }
343 } else if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R200) ||
344 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV250) ||
345 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV280) ||
346 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS300)) {
1009 DRM_INFO("Loading R200 Microcode\n"); 347 DRM_INFO("Loading R200 Microcode\n");
1010 for (i = 0; i < 256; i++) { 348 for (i = 0; i < 256; i++) {
1011 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH, 349 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH,
@@ -1013,7 +351,11 @@ static void radeon_cp_load_microcode(drm_radeon_private_t * dev_priv)
1013 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL, 351 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL,
1014 R200_cp_microcode[i][0]); 352 R200_cp_microcode[i][0]);
1015 } 353 }
1016 } else if (dev_priv->microcode_version == UCODE_R300) { 354 } else if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R300) ||
355 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R350) ||
356 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV350) ||
357 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV380) ||
358 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS480)) {
1017 DRM_INFO("Loading R300 Microcode\n"); 359 DRM_INFO("Loading R300 Microcode\n");
1018 for (i = 0; i < 256; i++) { 360 for (i = 0; i < 256; i++) {
1019 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH, 361 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH,
@@ -1021,12 +363,35 @@ static void radeon_cp_load_microcode(drm_radeon_private_t * dev_priv)
1021 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL, 363 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL,
1022 R300_cp_microcode[i][0]); 364 R300_cp_microcode[i][0]);
1023 } 365 }
1024 } else { 366 } else if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R420) ||
367 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV410)) {
368 DRM_INFO("Loading R400 Microcode\n");
1025 for (i = 0; i < 256; i++) { 369 for (i = 0; i < 256; i++) {
1026 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH, 370 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH,
1027 radeon_cp_microcode[i][1]); 371 R420_cp_microcode[i][1]);
1028 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL, 372 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL,
1029 radeon_cp_microcode[i][0]); 373 R420_cp_microcode[i][0]);
374 }
375 } else if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) {
376 DRM_INFO("Loading RS690 Microcode\n");
377 for (i = 0; i < 256; i++) {
378 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH,
379 RS690_cp_microcode[i][1]);
380 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL,
381 RS690_cp_microcode[i][0]);
382 }
383 } else if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV515) ||
384 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R520) ||
385 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV530) ||
386 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R580) ||
387 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV560) ||
388 ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV570)) {
389 DRM_INFO("Loading R500 Microcode\n");
390 for (i = 0; i < 256; i++) {
391 RADEON_WRITE(RADEON_CP_ME_RAM_DATAH,
392 R520_cp_microcode[i][1]);
393 RADEON_WRITE(RADEON_CP_ME_RAM_DATAL,
394 R520_cp_microcode[i][0]);
1030 } 395 }
1031 } 396 }
1032} 397}
@@ -1121,12 +486,13 @@ static void radeon_do_cp_stop(drm_radeon_private_t * dev_priv)
1121static int radeon_do_engine_reset(struct drm_device * dev) 486static int radeon_do_engine_reset(struct drm_device * dev)
1122{ 487{
1123 drm_radeon_private_t *dev_priv = dev->dev_private; 488 drm_radeon_private_t *dev_priv = dev->dev_private;
1124 u32 clock_cntl_index, mclk_cntl, rbbm_soft_reset; 489 u32 clock_cntl_index = 0, mclk_cntl = 0, rbbm_soft_reset;
1125 DRM_DEBUG("\n"); 490 DRM_DEBUG("\n");
1126 491
1127 radeon_do_pixcache_flush(dev_priv); 492 radeon_do_pixcache_flush(dev_priv);
1128 493
1129 if ((dev_priv->flags & RADEON_FAMILY_MASK) < CHIP_RV515) { 494 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV410) {
495 /* may need something similar for newer chips */
1130 clock_cntl_index = RADEON_READ(RADEON_CLOCK_CNTL_INDEX); 496 clock_cntl_index = RADEON_READ(RADEON_CLOCK_CNTL_INDEX);
1131 mclk_cntl = RADEON_READ_PLL(dev, RADEON_MCLK_CNTL); 497 mclk_cntl = RADEON_READ_PLL(dev, RADEON_MCLK_CNTL);
1132 498
@@ -1137,33 +503,39 @@ static int radeon_do_engine_reset(struct drm_device * dev)
1137 RADEON_FORCEON_YCLKB | 503 RADEON_FORCEON_YCLKB |
1138 RADEON_FORCEON_MC | 504 RADEON_FORCEON_MC |
1139 RADEON_FORCEON_AIC)); 505 RADEON_FORCEON_AIC));
506 }
1140 507
1141 rbbm_soft_reset = RADEON_READ(RADEON_RBBM_SOFT_RESET); 508 rbbm_soft_reset = RADEON_READ(RADEON_RBBM_SOFT_RESET);
1142 509
1143 RADEON_WRITE(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset | 510 RADEON_WRITE(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset |
1144 RADEON_SOFT_RESET_CP | 511 RADEON_SOFT_RESET_CP |
1145 RADEON_SOFT_RESET_HI | 512 RADEON_SOFT_RESET_HI |
1146 RADEON_SOFT_RESET_SE | 513 RADEON_SOFT_RESET_SE |
1147 RADEON_SOFT_RESET_RE | 514 RADEON_SOFT_RESET_RE |
1148 RADEON_SOFT_RESET_PP | 515 RADEON_SOFT_RESET_PP |
1149 RADEON_SOFT_RESET_E2 | 516 RADEON_SOFT_RESET_E2 |
1150 RADEON_SOFT_RESET_RB)); 517 RADEON_SOFT_RESET_RB));
1151 RADEON_READ(RADEON_RBBM_SOFT_RESET); 518 RADEON_READ(RADEON_RBBM_SOFT_RESET);
1152 RADEON_WRITE(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset & 519 RADEON_WRITE(RADEON_RBBM_SOFT_RESET, (rbbm_soft_reset &
1153 ~(RADEON_SOFT_RESET_CP | 520 ~(RADEON_SOFT_RESET_CP |
1154 RADEON_SOFT_RESET_HI | 521 RADEON_SOFT_RESET_HI |
1155 RADEON_SOFT_RESET_SE | 522 RADEON_SOFT_RESET_SE |
1156 RADEON_SOFT_RESET_RE | 523 RADEON_SOFT_RESET_RE |
1157 RADEON_SOFT_RESET_PP | 524 RADEON_SOFT_RESET_PP |
1158 RADEON_SOFT_RESET_E2 | 525 RADEON_SOFT_RESET_E2 |
1159 RADEON_SOFT_RESET_RB))); 526 RADEON_SOFT_RESET_RB)));
1160 RADEON_READ(RADEON_RBBM_SOFT_RESET); 527 RADEON_READ(RADEON_RBBM_SOFT_RESET);
1161 528
529 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV410) {
1162 RADEON_WRITE_PLL(RADEON_MCLK_CNTL, mclk_cntl); 530 RADEON_WRITE_PLL(RADEON_MCLK_CNTL, mclk_cntl);
1163 RADEON_WRITE(RADEON_CLOCK_CNTL_INDEX, clock_cntl_index); 531 RADEON_WRITE(RADEON_CLOCK_CNTL_INDEX, clock_cntl_index);
1164 RADEON_WRITE(RADEON_RBBM_SOFT_RESET, rbbm_soft_reset); 532 RADEON_WRITE(RADEON_RBBM_SOFT_RESET, rbbm_soft_reset);
1165 } 533 }
1166 534
535 /* setup the raster pipes */
536 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R300)
537 radeon_init_pipes(dev_priv);
538
1167 /* Reset the CP ring */ 539 /* Reset the CP ring */
1168 radeon_do_cp_reset(dev_priv); 540 radeon_do_cp_reset(dev_priv);
1169 541
@@ -1194,7 +566,8 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev,
1194 566
1195#if __OS_HAS_AGP 567#if __OS_HAS_AGP
1196 if (dev_priv->flags & RADEON_IS_AGP) { 568 if (dev_priv->flags & RADEON_IS_AGP) {
1197 RADEON_WRITE(RADEON_AGP_BASE, (unsigned int)dev->agp->base); 569 radeon_write_agp_base(dev_priv, dev->agp->base);
570
1198 radeon_write_agp_location(dev_priv, 571 radeon_write_agp_location(dev_priv,
1199 (((dev_priv->gart_vm_start - 1 + 572 (((dev_priv->gart_vm_start - 1 +
1200 dev_priv->gart_size) & 0xffff0000) | 573 dev_priv->gart_size) & 0xffff0000) |
@@ -1339,102 +712,70 @@ static void radeon_test_writeback(drm_radeon_private_t * dev_priv)
1339/* Enable or disable IGP GART on the chip */ 712/* Enable or disable IGP GART on the chip */
1340static void radeon_set_igpgart(drm_radeon_private_t * dev_priv, int on) 713static void radeon_set_igpgart(drm_radeon_private_t * dev_priv, int on)
1341{ 714{
1342 u32 temp, tmp;
1343
1344 tmp = RADEON_READ(RADEON_AIC_CNTL);
1345 if (on) {
1346 DRM_DEBUG("programming igpgart %08X %08lX %08X\n",
1347 dev_priv->gart_vm_start,
1348 (long)dev_priv->gart_info.bus_addr,
1349 dev_priv->gart_size);
1350
1351 RADEON_WRITE_IGPGART(RADEON_IGPGART_UNK_18, 0x1000);
1352 RADEON_WRITE_IGPGART(RADEON_IGPGART_ENABLE, 0x1);
1353 RADEON_WRITE_IGPGART(RADEON_IGPGART_CTRL, 0x42040800);
1354 RADEON_WRITE_IGPGART(RADEON_IGPGART_BASE_ADDR,
1355 dev_priv->gart_info.bus_addr);
1356
1357 temp = RADEON_READ_IGPGART(dev_priv, RADEON_IGPGART_UNK_39);
1358 RADEON_WRITE_IGPGART(RADEON_IGPGART_UNK_39, temp);
1359
1360 RADEON_WRITE(RADEON_AGP_BASE, (unsigned int)dev_priv->gart_vm_start);
1361 dev_priv->gart_size = 32*1024*1024;
1362 radeon_write_agp_location(dev_priv,
1363 (((dev_priv->gart_vm_start - 1 +
1364 dev_priv->gart_size) & 0xffff0000) |
1365 (dev_priv->gart_vm_start >> 16)));
1366
1367 temp = RADEON_READ_IGPGART(dev_priv, RADEON_IGPGART_ENABLE);
1368 RADEON_WRITE_IGPGART(RADEON_IGPGART_ENABLE, temp);
1369
1370 RADEON_READ_IGPGART(dev_priv, RADEON_IGPGART_FLUSH);
1371 RADEON_WRITE_IGPGART(RADEON_IGPGART_FLUSH, 0x1);
1372 RADEON_READ_IGPGART(dev_priv, RADEON_IGPGART_FLUSH);
1373 RADEON_WRITE_IGPGART(RADEON_IGPGART_FLUSH, 0x0);
1374 }
1375}
1376
1377/* Enable or disable RS690 GART on the chip */
1378static void radeon_set_rs690gart(drm_radeon_private_t *dev_priv, int on)
1379{
1380 u32 temp; 715 u32 temp;
1381 716
1382 if (on) { 717 if (on) {
1383 DRM_DEBUG("programming rs690 gart %08X %08lX %08X\n", 718 DRM_DEBUG("programming igp gart %08X %08lX %08X\n",
1384 dev_priv->gart_vm_start, 719 dev_priv->gart_vm_start,
1385 (long)dev_priv->gart_info.bus_addr, 720 (long)dev_priv->gart_info.bus_addr,
1386 dev_priv->gart_size); 721 dev_priv->gart_size);
1387 722
1388 temp = RS690_READ_MCIND(dev_priv, RS690_MC_MISC_CNTL); 723 temp = IGP_READ_MCIND(dev_priv, RS480_MC_MISC_CNTL);
1389 RS690_WRITE_MCIND(RS690_MC_MISC_CNTL, 0x5000); 724 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690)
725 IGP_WRITE_MCIND(RS480_MC_MISC_CNTL, (RS480_GART_INDEX_REG_EN |
726 RS690_BLOCK_GFX_D3_EN));
727 else
728 IGP_WRITE_MCIND(RS480_MC_MISC_CNTL, RS480_GART_INDEX_REG_EN);
1390 729
1391 RS690_WRITE_MCIND(RS690_MC_AGP_SIZE, 730 IGP_WRITE_MCIND(RS480_AGP_ADDRESS_SPACE_SIZE, (RS480_GART_EN |
1392 RS690_MC_GART_EN | RS690_MC_AGP_SIZE_32MB); 731 RS480_VA_SIZE_32MB));
1393 732
1394 temp = RS690_READ_MCIND(dev_priv, RS690_MC_GART_FEATURE_ID); 733 temp = IGP_READ_MCIND(dev_priv, RS480_GART_FEATURE_ID);
1395 RS690_WRITE_MCIND(RS690_MC_GART_FEATURE_ID, 0x42040800); 734 IGP_WRITE_MCIND(RS480_GART_FEATURE_ID, (RS480_HANG_EN |
735 RS480_TLB_ENABLE |
736 RS480_GTW_LAC_EN |
737 RS480_1LEVEL_GART));
1396 738
1397 RS690_WRITE_MCIND(RS690_MC_GART_BASE, 739 temp = dev_priv->gart_info.bus_addr & 0xfffff000;
1398 dev_priv->gart_info.bus_addr); 740 temp |= (upper_32_bits(dev_priv->gart_info.bus_addr) & 0xff) << 4;
741 IGP_WRITE_MCIND(RS480_GART_BASE, temp);
1399 742
1400 temp = RS690_READ_MCIND(dev_priv, RS690_MC_AGP_MODE_CONTROL); 743 temp = IGP_READ_MCIND(dev_priv, RS480_AGP_MODE_CNTL);
1401 RS690_WRITE_MCIND(RS690_MC_AGP_MODE_CONTROL, 0x01400000); 744 IGP_WRITE_MCIND(RS480_AGP_MODE_CNTL, ((1 << RS480_REQ_TYPE_SNOOP_SHIFT) |
745 RS480_REQ_TYPE_SNOOP_DIS));
1402 746
1403 RS690_WRITE_MCIND(RS690_MC_AGP_BASE, 747 radeon_write_agp_base(dev_priv, dev_priv->gart_vm_start);
1404 (unsigned int)dev_priv->gart_vm_start);
1405 748
1406 dev_priv->gart_size = 32*1024*1024; 749 dev_priv->gart_size = 32*1024*1024;
1407 temp = (((dev_priv->gart_vm_start - 1 + dev_priv->gart_size) & 750 temp = (((dev_priv->gart_vm_start - 1 + dev_priv->gart_size) &
1408 0xffff0000) | (dev_priv->gart_vm_start >> 16)); 751 0xffff0000) | (dev_priv->gart_vm_start >> 16));
1409 752
1410 RS690_WRITE_MCIND(RS690_MC_AGP_LOCATION, temp); 753 radeon_write_agp_location(dev_priv, temp);
1411 754
1412 temp = RS690_READ_MCIND(dev_priv, RS690_MC_AGP_SIZE); 755 temp = IGP_READ_MCIND(dev_priv, RS480_AGP_ADDRESS_SPACE_SIZE);
1413 RS690_WRITE_MCIND(RS690_MC_AGP_SIZE, 756 IGP_WRITE_MCIND(RS480_AGP_ADDRESS_SPACE_SIZE, (RS480_GART_EN |
1414 RS690_MC_GART_EN | RS690_MC_AGP_SIZE_32MB); 757 RS480_VA_SIZE_32MB));
1415 758
1416 do { 759 do {
1417 temp = RS690_READ_MCIND(dev_priv, RS690_MC_GART_CACHE_CNTL); 760 temp = IGP_READ_MCIND(dev_priv, RS480_GART_CACHE_CNTRL);
1418 if ((temp & RS690_MC_GART_CLEAR_STATUS) == 761 if ((temp & RS480_GART_CACHE_INVALIDATE) == 0)
1419 RS690_MC_GART_CLEAR_DONE)
1420 break; 762 break;
1421 DRM_UDELAY(1); 763 DRM_UDELAY(1);
1422 } while (1); 764 } while (1);
1423 765
1424 RS690_WRITE_MCIND(RS690_MC_GART_CACHE_CNTL, 766 IGP_WRITE_MCIND(RS480_GART_CACHE_CNTRL,
1425 RS690_MC_GART_CC_CLEAR); 767 RS480_GART_CACHE_INVALIDATE);
768
1426 do { 769 do {
1427 temp = RS690_READ_MCIND(dev_priv, RS690_MC_GART_CACHE_CNTL); 770 temp = IGP_READ_MCIND(dev_priv, RS480_GART_CACHE_CNTRL);
1428 if ((temp & RS690_MC_GART_CLEAR_STATUS) == 771 if ((temp & RS480_GART_CACHE_INVALIDATE) == 0)
1429 RS690_MC_GART_CLEAR_DONE)
1430 break; 772 break;
1431 DRM_UDELAY(1); 773 DRM_UDELAY(1);
1432 } while (1); 774 } while (1);
1433 775
1434 RS690_WRITE_MCIND(RS690_MC_GART_CACHE_CNTL, 776 IGP_WRITE_MCIND(RS480_GART_CACHE_CNTRL, 0);
1435 RS690_MC_GART_CC_NO_CHANGE);
1436 } else { 777 } else {
1437 RS690_WRITE_MCIND(RS690_MC_AGP_SIZE, RS690_MC_GART_DIS); 778 IGP_WRITE_MCIND(RS480_AGP_ADDRESS_SPACE_SIZE, 0);
1438 } 779 }
1439} 780}
1440 781
@@ -1472,12 +813,8 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
1472{ 813{
1473 u32 tmp; 814 u32 tmp;
1474 815
1475 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) { 816 if (((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) ||
1476 radeon_set_rs690gart(dev_priv, on); 817 (dev_priv->flags & RADEON_IS_IGPGART)) {
1477 return;
1478 }
1479
1480 if (dev_priv->flags & RADEON_IS_IGPGART) {
1481 radeon_set_igpgart(dev_priv, on); 818 radeon_set_igpgart(dev_priv, on);
1482 return; 819 return;
1483 } 820 }
@@ -1951,6 +1288,7 @@ static int radeon_do_resume_cp(struct drm_device * dev)
1951 radeon_cp_init_ring_buffer(dev, dev_priv); 1288 radeon_cp_init_ring_buffer(dev, dev_priv);
1952 1289
1953 radeon_do_engine_reset(dev); 1290 radeon_do_engine_reset(dev);
1291 radeon_enable_interrupt(dev);
1954 1292
1955 DRM_DEBUG("radeon_do_resume_cp() complete\n"); 1293 DRM_DEBUG("radeon_do_resume_cp() complete\n");
1956 1294
diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h
index aab82e121e07..73ff51f12311 100644
--- a/drivers/char/drm/radeon_drm.h
+++ b/drivers/char/drm/radeon_drm.h
@@ -240,6 +240,7 @@ typedef union {
240# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8 240# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8
241 241
242#define R300_CMD_SCRATCH 8 242#define R300_CMD_SCRATCH 8
243#define R300_CMD_R500FP 9
243 244
244typedef union { 245typedef union {
245 unsigned int u; 246 unsigned int u;
@@ -268,6 +269,9 @@ typedef union {
268 struct { 269 struct {
269 unsigned char cmd_type, reg, n_bufs, flags; 270 unsigned char cmd_type, reg, n_bufs, flags;
270 } scratch; 271 } scratch;
272 struct {
273 unsigned char cmd_type, count, adrlo, adrhi_flags;
274 } r500fp;
271} drm_r300_cmd_header_t; 275} drm_r300_cmd_header_t;
272 276
273#define RADEON_FRONT 0x1 277#define RADEON_FRONT 0x1
@@ -278,6 +282,9 @@ typedef union {
278#define RADEON_USE_HIERZ 0x40000000 282#define RADEON_USE_HIERZ 0x40000000
279#define RADEON_USE_COMP_ZBUF 0x20000000 283#define RADEON_USE_COMP_ZBUF 0x20000000
280 284
285#define R500FP_CONSTANT_TYPE (1 << 1)
286#define R500FP_CONSTANT_CLAMP (1 << 2)
287
281/* Primitive types 288/* Primitive types
282 */ 289 */
283#define RADEON_POINTS 0x1 290#define RADEON_POINTS 0x1
@@ -669,6 +676,7 @@ typedef struct drm_radeon_indirect {
669#define RADEON_PARAM_CARD_TYPE 12 676#define RADEON_PARAM_CARD_TYPE 12
670#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */ 677#define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */
671#define RADEON_PARAM_FB_LOCATION 14 /* FB location */ 678#define RADEON_PARAM_FB_LOCATION 14 /* FB location */
679#define RADEON_PARAM_NUM_GB_PIPES 15 /* num GB pipes */
672 680
673typedef struct drm_radeon_getparam { 681typedef struct drm_radeon_getparam {
674 int param; 682 int param;
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
index 173ae620223a..3f0eca957aa7 100644
--- a/drivers/char/drm/radeon_drv.h
+++ b/drivers/char/drm/radeon_drv.h
@@ -38,7 +38,7 @@
38 38
39#define DRIVER_NAME "radeon" 39#define DRIVER_NAME "radeon"
40#define DRIVER_DESC "ATI Radeon" 40#define DRIVER_DESC "ATI Radeon"
41#define DRIVER_DATE "20060524" 41#define DRIVER_DATE "20080528"
42 42
43/* Interface history: 43/* Interface history:
44 * 44 *
@@ -98,9 +98,10 @@
98 * 1.26- Add support for variable size PCI(E) gart aperture 98 * 1.26- Add support for variable size PCI(E) gart aperture
99 * 1.27- Add support for IGP GART 99 * 1.27- Add support for IGP GART
100 * 1.28- Add support for VBL on CRTC2 100 * 1.28- Add support for VBL on CRTC2
101 * 1.29- R500 3D cmd buffer support
101 */ 102 */
102#define DRIVER_MAJOR 1 103#define DRIVER_MAJOR 1
103#define DRIVER_MINOR 28 104#define DRIVER_MINOR 29
104#define DRIVER_PATCHLEVEL 0 105#define DRIVER_PATCHLEVEL 0
105 106
106/* 107/*
@@ -122,7 +123,7 @@ enum radeon_family {
122 CHIP_RV380, 123 CHIP_RV380,
123 CHIP_R420, 124 CHIP_R420,
124 CHIP_RV410, 125 CHIP_RV410,
125 CHIP_RS400, 126 CHIP_RS480,
126 CHIP_RS690, 127 CHIP_RS690,
127 CHIP_RV515, 128 CHIP_RV515,
128 CHIP_R520, 129 CHIP_R520,
@@ -294,6 +295,7 @@ typedef struct drm_radeon_private {
294 int vblank_crtc; 295 int vblank_crtc;
295 uint32_t irq_enable_reg; 296 uint32_t irq_enable_reg;
296 int irq_enabled; 297 int irq_enabled;
298 uint32_t r500_disp_irq_reg;
297 299
298 struct radeon_surface surfaces[RADEON_MAX_SURFACES]; 300 struct radeon_surface surfaces[RADEON_MAX_SURFACES];
299 struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES]; 301 struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES];
@@ -307,6 +309,8 @@ typedef struct drm_radeon_private {
307 /* starting from here on, data is preserved accross an open */ 309 /* starting from here on, data is preserved accross an open */
308 uint32_t flags; /* see radeon_chip_flags */ 310 uint32_t flags; /* see radeon_chip_flags */
309 unsigned long fb_aper_offset; 311 unsigned long fb_aper_offset;
312
313 int num_gb_pipes;
310} drm_radeon_private_t; 314} drm_radeon_private_t;
311 315
312typedef struct drm_radeon_buf_priv { 316typedef struct drm_radeon_buf_priv {
@@ -382,6 +386,7 @@ extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS);
382extern void radeon_driver_irq_preinstall(struct drm_device * dev); 386extern void radeon_driver_irq_preinstall(struct drm_device * dev);
383extern void radeon_driver_irq_postinstall(struct drm_device * dev); 387extern void radeon_driver_irq_postinstall(struct drm_device * dev);
384extern void radeon_driver_irq_uninstall(struct drm_device * dev); 388extern void radeon_driver_irq_uninstall(struct drm_device * dev);
389extern void radeon_enable_interrupt(struct drm_device *dev);
385extern int radeon_vblank_crtc_get(struct drm_device *dev); 390extern int radeon_vblank_crtc_get(struct drm_device *dev);
386extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value); 391extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value);
387 392
@@ -444,13 +449,13 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
444#define RADEON_PCIE_DATA 0x0034 449#define RADEON_PCIE_DATA 0x0034
445#define RADEON_PCIE_TX_GART_CNTL 0x10 450#define RADEON_PCIE_TX_GART_CNTL 0x10
446# define RADEON_PCIE_TX_GART_EN (1 << 0) 451# define RADEON_PCIE_TX_GART_EN (1 << 0)
447# define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_PASS_THRU (0<<1) 452# define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_PASS_THRU (0 << 1)
448# define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_CLAMP_LO (1<<1) 453# define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_CLAMP_LO (1 << 1)
449# define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD (3<<1) 454# define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD (3 << 1)
450# define RADEON_PCIE_TX_GART_MODE_32_128_CACHE (0<<3) 455# define RADEON_PCIE_TX_GART_MODE_32_128_CACHE (0 << 3)
451# define RADEON_PCIE_TX_GART_MODE_8_4_128_CACHE (1<<3) 456# define RADEON_PCIE_TX_GART_MODE_8_4_128_CACHE (1 << 3)
452# define RADEON_PCIE_TX_GART_CHK_RW_VALID_EN (1<<5) 457# define RADEON_PCIE_TX_GART_CHK_RW_VALID_EN (1 << 5)
453# define RADEON_PCIE_TX_GART_INVALIDATE_TLB (1<<8) 458# define RADEON_PCIE_TX_GART_INVALIDATE_TLB (1 << 8)
454#define RADEON_PCIE_TX_DISCARD_RD_ADDR_LO 0x11 459#define RADEON_PCIE_TX_DISCARD_RD_ADDR_LO 0x11
455#define RADEON_PCIE_TX_DISCARD_RD_ADDR_HI 0x12 460#define RADEON_PCIE_TX_DISCARD_RD_ADDR_HI 0x12
456#define RADEON_PCIE_TX_GART_BASE 0x13 461#define RADEON_PCIE_TX_GART_BASE 0x13
@@ -459,14 +464,9 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
459#define RADEON_PCIE_TX_GART_END_LO 0x16 464#define RADEON_PCIE_TX_GART_END_LO 0x16
460#define RADEON_PCIE_TX_GART_END_HI 0x17 465#define RADEON_PCIE_TX_GART_END_HI 0x17
461 466
462#define RADEON_IGPGART_INDEX 0x168 467#define RS480_NB_MC_INDEX 0x168
463#define RADEON_IGPGART_DATA 0x16c 468# define RS480_NB_MC_IND_WR_EN (1 << 8)
464#define RADEON_IGPGART_UNK_18 0x18 469#define RS480_NB_MC_DATA 0x16c
465#define RADEON_IGPGART_CTRL 0x2b
466#define RADEON_IGPGART_BASE_ADDR 0x2c
467#define RADEON_IGPGART_FLUSH 0x2e
468#define RADEON_IGPGART_ENABLE 0x38
469#define RADEON_IGPGART_UNK_39 0x39
470 470
471#define RS690_MC_INDEX 0x78 471#define RS690_MC_INDEX 0x78
472# define RS690_MC_INDEX_MASK 0x1ff 472# define RS690_MC_INDEX_MASK 0x1ff
@@ -474,45 +474,91 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
474# define RS690_MC_INDEX_WR_ACK 0x7f 474# define RS690_MC_INDEX_WR_ACK 0x7f
475#define RS690_MC_DATA 0x7c 475#define RS690_MC_DATA 0x7c
476 476
477#define RS690_MC_MISC_CNTL 0x18 477/* MC indirect registers */
478#define RS690_MC_GART_FEATURE_ID 0x2b 478#define RS480_MC_MISC_CNTL 0x18
479#define RS690_MC_GART_BASE 0x2c 479# define RS480_DISABLE_GTW (1 << 1)
480#define RS690_MC_GART_CACHE_CNTL 0x2e 480/* switch between MCIND GART and MM GART registers. 0 = mmgart, 1 = mcind gart */
481# define RS690_MC_GART_CC_NO_CHANGE 0x0 481# define RS480_GART_INDEX_REG_EN (1 << 12)
482# define RS690_MC_GART_CC_CLEAR 0x1 482# define RS690_BLOCK_GFX_D3_EN (1 << 14)
483# define RS690_MC_GART_CLEAR_STATUS (1 << 1) 483#define RS480_K8_FB_LOCATION 0x1e
484# define RS690_MC_GART_CLEAR_DONE (0 << 1) 484#define RS480_GART_FEATURE_ID 0x2b
485# define RS690_MC_GART_CLEAR_PENDING (1 << 1) 485# define RS480_HANG_EN (1 << 11)
486#define RS690_MC_AGP_SIZE 0x38 486# define RS480_TLB_ENABLE (1 << 18)
487# define RS690_MC_GART_DIS 0x0 487# define RS480_P2P_ENABLE (1 << 19)
488# define RS690_MC_GART_EN 0x1 488# define RS480_GTW_LAC_EN (1 << 25)
489# define RS690_MC_AGP_SIZE_32MB (0 << 1) 489# define RS480_2LEVEL_GART (0 << 30)
490# define RS690_MC_AGP_SIZE_64MB (1 << 1) 490# define RS480_1LEVEL_GART (1 << 30)
491# define RS690_MC_AGP_SIZE_128MB (2 << 1) 491# define RS480_PDC_EN (1 << 31)
492# define RS690_MC_AGP_SIZE_256MB (3 << 1) 492#define RS480_GART_BASE 0x2c
493# define RS690_MC_AGP_SIZE_512MB (4 << 1) 493#define RS480_GART_CACHE_CNTRL 0x2e
494# define RS690_MC_AGP_SIZE_1GB (5 << 1) 494# define RS480_GART_CACHE_INVALIDATE (1 << 0) /* wait for it to clear */
495# define RS690_MC_AGP_SIZE_2GB (6 << 1) 495#define RS480_AGP_ADDRESS_SPACE_SIZE 0x38
496#define RS690_MC_AGP_MODE_CONTROL 0x39 496# define RS480_GART_EN (1 << 0)
497# define RS480_VA_SIZE_32MB (0 << 1)
498# define RS480_VA_SIZE_64MB (1 << 1)
499# define RS480_VA_SIZE_128MB (2 << 1)
500# define RS480_VA_SIZE_256MB (3 << 1)
501# define RS480_VA_SIZE_512MB (4 << 1)
502# define RS480_VA_SIZE_1GB (5 << 1)
503# define RS480_VA_SIZE_2GB (6 << 1)
504#define RS480_AGP_MODE_CNTL 0x39
505# define RS480_POST_GART_Q_SIZE (1 << 18)
506# define RS480_NONGART_SNOOP (1 << 19)
507# define RS480_AGP_RD_BUF_SIZE (1 << 20)
508# define RS480_REQ_TYPE_SNOOP_SHIFT 22
509# define RS480_REQ_TYPE_SNOOP_MASK 0x3
510# define RS480_REQ_TYPE_SNOOP_DIS (1 << 24)
511#define RS480_MC_MISC_UMA_CNTL 0x5f
512#define RS480_MC_MCLK_CNTL 0x7a
513#define RS480_MC_UMA_DUALCH_CNTL 0x86
514
497#define RS690_MC_FB_LOCATION 0x100 515#define RS690_MC_FB_LOCATION 0x100
498#define RS690_MC_AGP_LOCATION 0x101 516#define RS690_MC_AGP_LOCATION 0x101
499#define RS690_MC_AGP_BASE 0x102 517#define RS690_MC_AGP_BASE 0x102
518#define RS690_MC_AGP_BASE_2 0x103
500 519
501#define R520_MC_IND_INDEX 0x70 520#define R520_MC_IND_INDEX 0x70
502#define R520_MC_IND_WR_EN (1<<24) 521#define R520_MC_IND_WR_EN (1 << 24)
503#define R520_MC_IND_DATA 0x74 522#define R520_MC_IND_DATA 0x74
504 523
505#define RV515_MC_FB_LOCATION 0x01 524#define RV515_MC_FB_LOCATION 0x01
506#define RV515_MC_AGP_LOCATION 0x02 525#define RV515_MC_AGP_LOCATION 0x02
526#define RV515_MC_AGP_BASE 0x03
527#define RV515_MC_AGP_BASE_2 0x04
507 528
508#define R520_MC_FB_LOCATION 0x04 529#define R520_MC_FB_LOCATION 0x04
509#define R520_MC_AGP_LOCATION 0x05 530#define R520_MC_AGP_LOCATION 0x05
531#define R520_MC_AGP_BASE 0x06
532#define R520_MC_AGP_BASE_2 0x07
510 533
511#define RADEON_MPP_TB_CONFIG 0x01c0 534#define RADEON_MPP_TB_CONFIG 0x01c0
512#define RADEON_MEM_CNTL 0x0140 535#define RADEON_MEM_CNTL 0x0140
513#define RADEON_MEM_SDRAM_MODE_REG 0x0158 536#define RADEON_MEM_SDRAM_MODE_REG 0x0158
537#define RADEON_AGP_BASE_2 0x015c /* r200+ only */
538#define RS480_AGP_BASE_2 0x0164
514#define RADEON_AGP_BASE 0x0170 539#define RADEON_AGP_BASE 0x0170
515 540
541/* pipe config regs */
542#define R400_GB_PIPE_SELECT 0x402c
543#define R500_DYN_SCLK_PWMEM_PIPE 0x000d /* PLL */
544#define R500_SU_REG_DEST 0x42c8
545#define R300_GB_TILE_CONFIG 0x4018
546# define R300_ENABLE_TILING (1 << 0)
547# define R300_PIPE_COUNT_RV350 (0 << 1)
548# define R300_PIPE_COUNT_R300 (3 << 1)
549# define R300_PIPE_COUNT_R420_3P (6 << 1)
550# define R300_PIPE_COUNT_R420 (7 << 1)
551# define R300_TILE_SIZE_8 (0 << 4)
552# define R300_TILE_SIZE_16 (1 << 4)
553# define R300_TILE_SIZE_32 (2 << 4)
554# define R300_SUBPIXEL_1_12 (0 << 16)
555# define R300_SUBPIXEL_1_16 (1 << 16)
556#define R300_DST_PIPE_CONFIG 0x170c
557# define R300_PIPE_AUTO_CONFIG (1 << 31)
558#define R300_RB2D_DSTCACHE_MODE 0x3428
559# define R300_DC_AUTOFLUSH_ENABLE (1 << 8)
560# define R300_DC_DC_DISABLE_IGNORE_PE (1 << 17)
561
516#define RADEON_RB3D_COLOROFFSET 0x1c40 562#define RADEON_RB3D_COLOROFFSET 0x1c40
517#define RADEON_RB3D_COLORPITCH 0x1c48 563#define RADEON_RB3D_COLORPITCH 0x1c48
518 564
@@ -616,11 +662,12 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
616#define RADEON_PP_TXFILTER_1 0x1c6c 662#define RADEON_PP_TXFILTER_1 0x1c6c
617#define RADEON_PP_TXFILTER_2 0x1c84 663#define RADEON_PP_TXFILTER_2 0x1c84
618 664
619#define RADEON_RB2D_DSTCACHE_CTLSTAT 0x342c 665#define R300_RB2D_DSTCACHE_CTLSTAT 0x342c /* use R300_DSTCACHE_CTLSTAT */
620# define RADEON_RB2D_DC_FLUSH (3 << 0) 666#define R300_DSTCACHE_CTLSTAT 0x1714
621# define RADEON_RB2D_DC_FREE (3 << 2) 667# define R300_RB2D_DC_FLUSH (3 << 0)
622# define RADEON_RB2D_DC_FLUSH_ALL 0xf 668# define R300_RB2D_DC_FREE (3 << 2)
623# define RADEON_RB2D_DC_BUSY (1 << 31) 669# define R300_RB2D_DC_FLUSH_ALL 0xf
670# define R300_RB2D_DC_BUSY (1 << 31)
624#define RADEON_RB3D_CNTL 0x1c3c 671#define RADEON_RB3D_CNTL 0x1c3c
625# define RADEON_ALPHA_BLEND_ENABLE (1 << 0) 672# define RADEON_ALPHA_BLEND_ENABLE (1 << 0)
626# define RADEON_PLANE_MASK_ENABLE (1 << 1) 673# define RADEON_PLANE_MASK_ENABLE (1 << 1)
@@ -643,11 +690,18 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
643# define RADEON_RB3D_ZC_FREE (1 << 2) 690# define RADEON_RB3D_ZC_FREE (1 << 2)
644# define RADEON_RB3D_ZC_FLUSH_ALL 0x5 691# define RADEON_RB3D_ZC_FLUSH_ALL 0x5
645# define RADEON_RB3D_ZC_BUSY (1 << 31) 692# define RADEON_RB3D_ZC_BUSY (1 << 31)
693#define R300_ZB_ZCACHE_CTLSTAT 0x4f18
694# define R300_ZC_FLUSH (1 << 0)
695# define R300_ZC_FREE (1 << 1)
696# define R300_ZC_FLUSH_ALL 0x3
697# define R300_ZC_BUSY (1 << 31)
646#define RADEON_RB3D_DSTCACHE_CTLSTAT 0x325c 698#define RADEON_RB3D_DSTCACHE_CTLSTAT 0x325c
647# define RADEON_RB3D_DC_FLUSH (3 << 0) 699# define RADEON_RB3D_DC_FLUSH (3 << 0)
648# define RADEON_RB3D_DC_FREE (3 << 2) 700# define RADEON_RB3D_DC_FREE (3 << 2)
649# define RADEON_RB3D_DC_FLUSH_ALL 0xf 701# define RADEON_RB3D_DC_FLUSH_ALL 0xf
650# define RADEON_RB3D_DC_BUSY (1 << 31) 702# define RADEON_RB3D_DC_BUSY (1 << 31)
703#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c
704# define R300_RB3D_DC_FINISH (1 << 4)
651#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c 705#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c
652# define RADEON_Z_TEST_MASK (7 << 4) 706# define RADEON_Z_TEST_MASK (7 << 4)
653# define RADEON_Z_TEST_ALWAYS (7 << 4) 707# define RADEON_Z_TEST_ALWAYS (7 << 4)
@@ -1057,6 +1111,31 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
1057 1111
1058#define R200_VAP_PVS_CNTL_1 0x22D0 1112#define R200_VAP_PVS_CNTL_1 0x22D0
1059 1113
1114#define R500_D1CRTC_STATUS 0x609c
1115#define R500_D2CRTC_STATUS 0x689c
1116#define R500_CRTC_V_BLANK (1<<0)
1117
1118#define R500_D1CRTC_FRAME_COUNT 0x60a4
1119#define R500_D2CRTC_FRAME_COUNT 0x68a4
1120
1121#define R500_D1MODE_V_COUNTER 0x6530
1122#define R500_D2MODE_V_COUNTER 0x6d30
1123
1124#define R500_D1MODE_VBLANK_STATUS 0x6534
1125#define R500_D2MODE_VBLANK_STATUS 0x6d34
1126#define R500_VBLANK_OCCURED (1<<0)
1127#define R500_VBLANK_ACK (1<<4)
1128#define R500_VBLANK_STAT (1<<12)
1129#define R500_VBLANK_INT (1<<16)
1130
1131#define R500_DxMODE_INT_MASK 0x6540
1132#define R500_D1MODE_INT_MASK (1<<0)
1133#define R500_D2MODE_INT_MASK (1<<8)
1134
1135#define R500_DISP_INTERRUPT_STATUS 0x7edc
1136#define R500_D1_VBLANK_INTERRUPT (1 << 4)
1137#define R500_D2_VBLANK_INTERRUPT (1 << 5)
1138
1060/* Constants */ 1139/* Constants */
1061#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */ 1140#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */
1062 1141
@@ -1078,42 +1157,50 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
1078#define RADEON_READ8(reg) DRM_READ8( dev_priv->mmio, (reg) ) 1157#define RADEON_READ8(reg) DRM_READ8( dev_priv->mmio, (reg) )
1079#define RADEON_WRITE8(reg,val) DRM_WRITE8( dev_priv->mmio, (reg), (val) ) 1158#define RADEON_WRITE8(reg,val) DRM_WRITE8( dev_priv->mmio, (reg), (val) )
1080 1159
1081#define RADEON_WRITE_PLL( addr, val ) \ 1160#define RADEON_WRITE_PLL(addr, val) \
1082do { \ 1161do { \
1083 RADEON_WRITE8( RADEON_CLOCK_CNTL_INDEX, \ 1162 RADEON_WRITE8(RADEON_CLOCK_CNTL_INDEX, \
1084 ((addr) & 0x1f) | RADEON_PLL_WR_EN ); \ 1163 ((addr) & 0x1f) | RADEON_PLL_WR_EN ); \
1085 RADEON_WRITE( RADEON_CLOCK_CNTL_DATA, (val) ); \ 1164 RADEON_WRITE(RADEON_CLOCK_CNTL_DATA, (val)); \
1086} while (0) 1165} while (0)
1087 1166
1088#define RADEON_WRITE_IGPGART( addr, val ) \ 1167#define RADEON_WRITE_PCIE(addr, val) \
1089do { \ 1168do { \
1090 RADEON_WRITE( RADEON_IGPGART_INDEX, \ 1169 RADEON_WRITE8(RADEON_PCIE_INDEX, \
1091 ((addr) & 0x7f) | (1 << 8)); \ 1170 ((addr) & 0xff)); \
1092 RADEON_WRITE( RADEON_IGPGART_DATA, (val) ); \ 1171 RADEON_WRITE(RADEON_PCIE_DATA, (val)); \
1093 RADEON_WRITE( RADEON_IGPGART_INDEX, 0x7f ); \
1094} while (0) 1172} while (0)
1095 1173
1096#define RADEON_WRITE_PCIE( addr, val ) \ 1174#define R500_WRITE_MCIND(addr, val) \
1097do { \ 1175do { \
1098 RADEON_WRITE8( RADEON_PCIE_INDEX, \ 1176 RADEON_WRITE(R520_MC_IND_INDEX, 0xff0000 | ((addr) & 0xff)); \
1099 ((addr) & 0xff)); \ 1177 RADEON_WRITE(R520_MC_IND_DATA, (val)); \
1100 RADEON_WRITE( RADEON_PCIE_DATA, (val) ); \ 1178 RADEON_WRITE(R520_MC_IND_INDEX, 0); \
1101} while (0) 1179} while (0)
1102 1180
1103#define RADEON_WRITE_MCIND( addr, val ) \ 1181#define RS480_WRITE_MCIND(addr, val) \
1104 do { \ 1182do { \
1105 RADEON_WRITE(R520_MC_IND_INDEX, 0xff0000 | ((addr) & 0xff)); \ 1183 RADEON_WRITE(RS480_NB_MC_INDEX, \
1106 RADEON_WRITE(R520_MC_IND_DATA, (val)); \ 1184 ((addr) & 0xff) | RS480_NB_MC_IND_WR_EN); \
1107 RADEON_WRITE(R520_MC_IND_INDEX, 0); \ 1185 RADEON_WRITE(RS480_NB_MC_DATA, (val)); \
1108 } while (0) 1186 RADEON_WRITE(RS480_NB_MC_INDEX, 0xff); \
1187} while (0)
1109 1188
1110#define RS690_WRITE_MCIND( addr, val ) \ 1189#define RS690_WRITE_MCIND(addr, val) \
1111do { \ 1190do { \
1112 RADEON_WRITE(RS690_MC_INDEX, RS690_MC_INDEX_WR_EN | ((addr) & RS690_MC_INDEX_MASK)); \ 1191 RADEON_WRITE(RS690_MC_INDEX, RS690_MC_INDEX_WR_EN | ((addr) & RS690_MC_INDEX_MASK)); \
1113 RADEON_WRITE(RS690_MC_DATA, val); \ 1192 RADEON_WRITE(RS690_MC_DATA, val); \
1114 RADEON_WRITE(RS690_MC_INDEX, RS690_MC_INDEX_WR_ACK); \ 1193 RADEON_WRITE(RS690_MC_INDEX, RS690_MC_INDEX_WR_ACK); \
1115} while (0) 1194} while (0)
1116 1195
1196#define IGP_WRITE_MCIND(addr, val) \
1197do { \
1198 if ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS690) \
1199 RS690_WRITE_MCIND(addr, val); \
1200 else \
1201 RS480_WRITE_MCIND(addr, val); \
1202} while (0)
1203
1117#define CP_PACKET0( reg, n ) \ 1204#define CP_PACKET0( reg, n ) \
1118 (RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2)) 1205 (RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2))
1119#define CP_PACKET0_TABLE( reg, n ) \ 1206#define CP_PACKET0_TABLE( reg, n ) \
@@ -1154,23 +1241,43 @@ do { \
1154} while (0) 1241} while (0)
1155 1242
1156#define RADEON_FLUSH_CACHE() do { \ 1243#define RADEON_FLUSH_CACHE() do { \
1157 OUT_RING( CP_PACKET0( RADEON_RB3D_DSTCACHE_CTLSTAT, 0 ) ); \ 1244 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1158 OUT_RING( RADEON_RB3D_DC_FLUSH ); \ 1245 OUT_RING(CP_PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); \
1246 OUT_RING(RADEON_RB3D_DC_FLUSH); \
1247 } else { \
1248 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1249 OUT_RING(RADEON_RB3D_DC_FLUSH); \
1250 } \
1159} while (0) 1251} while (0)
1160 1252
1161#define RADEON_PURGE_CACHE() do { \ 1253#define RADEON_PURGE_CACHE() do { \
1162 OUT_RING( CP_PACKET0( RADEON_RB3D_DSTCACHE_CTLSTAT, 0 ) ); \ 1254 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1163 OUT_RING( RADEON_RB3D_DC_FLUSH_ALL ); \ 1255 OUT_RING(CP_PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); \
1256 OUT_RING(RADEON_RB3D_DC_FLUSH_ALL); \
1257 } else { \
1258 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1259 OUT_RING(RADEON_RB3D_DC_FLUSH_ALL); \
1260 } \
1164} while (0) 1261} while (0)
1165 1262
1166#define RADEON_FLUSH_ZCACHE() do { \ 1263#define RADEON_FLUSH_ZCACHE() do { \
1167 OUT_RING( CP_PACKET0( RADEON_RB3D_ZCACHE_CTLSTAT, 0 ) ); \ 1264 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1168 OUT_RING( RADEON_RB3D_ZC_FLUSH ); \ 1265 OUT_RING(CP_PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); \
1266 OUT_RING(RADEON_RB3D_ZC_FLUSH); \
1267 } else { \
1268 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0)); \
1269 OUT_RING(R300_ZC_FLUSH); \
1270 } \
1169} while (0) 1271} while (0)
1170 1272
1171#define RADEON_PURGE_ZCACHE() do { \ 1273#define RADEON_PURGE_ZCACHE() do { \
1172 OUT_RING( CP_PACKET0( RADEON_RB3D_ZCACHE_CTLSTAT, 0 ) ); \ 1274 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1173 OUT_RING( RADEON_RB3D_ZC_FLUSH_ALL ); \ 1275 OUT_RING(CP_PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); \
1276 OUT_RING(RADEON_RB3D_ZC_FLUSH_ALL); \
1277 } else { \
1278 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1279 OUT_RING(R300_ZC_FLUSH_ALL); \
1280 } \
1174} while (0) 1281} while (0)
1175 1282
1176/* ================================================================ 1283/* ================================================================
diff --git a/drivers/char/drm/radeon_irq.c b/drivers/char/drm/radeon_irq.c
index 009af3814b6f..ee40d197deb7 100644
--- a/drivers/char/drm/radeon_irq.c
+++ b/drivers/char/drm/radeon_irq.c
@@ -234,7 +234,7 @@ int radeon_irq_wait(struct drm_device *dev, void *data, struct drm_file *file_pr
234 return radeon_wait_irq(dev, irqwait->irq_seq); 234 return radeon_wait_irq(dev, irqwait->irq_seq);
235} 235}
236 236
237static void radeon_enable_interrupt(struct drm_device *dev) 237void radeon_enable_interrupt(struct drm_device *dev)
238{ 238{
239 drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; 239 drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private;
240 240
diff --git a/drivers/char/drm/radeon_microcode.h b/drivers/char/drm/radeon_microcode.h
new file mode 100644
index 000000000000..a348c9e7db1c
--- /dev/null
+++ b/drivers/char/drm/radeon_microcode.h
@@ -0,0 +1,1844 @@
1/*
2 * Copyright 2007 Advanced Micro Devices, Inc.
3 * All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
20 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 *
24 */
25
26#ifndef RADEON_MICROCODE_H
27#define RADEON_MICROCODE_H
28
29/* production radeon ucode r1xx-r6xx */
30static const u32 R100_cp_microcode[][2] = {
31 { 0x21007000, 0000000000 },
32 { 0x20007000, 0000000000 },
33 { 0x000000b4, 0x00000004 },
34 { 0x000000b8, 0x00000004 },
35 { 0x6f5b4d4c, 0000000000 },
36 { 0x4c4c427f, 0000000000 },
37 { 0x5b568a92, 0000000000 },
38 { 0x4ca09c6d, 0000000000 },
39 { 0xad4c4c4c, 0000000000 },
40 { 0x4ce1af3d, 0000000000 },
41 { 0xd8afafaf, 0000000000 },
42 { 0xd64c4cdc, 0000000000 },
43 { 0x4cd10d10, 0000000000 },
44 { 0x000f0000, 0x00000016 },
45 { 0x362f242d, 0000000000 },
46 { 0x00000012, 0x00000004 },
47 { 0x000f0000, 0x00000016 },
48 { 0x362f282d, 0000000000 },
49 { 0x000380e7, 0x00000002 },
50 { 0x04002c97, 0x00000002 },
51 { 0x000f0001, 0x00000016 },
52 { 0x333a3730, 0000000000 },
53 { 0x000077ef, 0x00000002 },
54 { 0x00061000, 0x00000002 },
55 { 0x00000021, 0x0000001a },
56 { 0x00004000, 0x0000001e },
57 { 0x00061000, 0x00000002 },
58 { 0x00000021, 0x0000001a },
59 { 0x00004000, 0x0000001e },
60 { 0x00061000, 0x00000002 },
61 { 0x00000021, 0x0000001a },
62 { 0x00004000, 0x0000001e },
63 { 0x00000017, 0x00000004 },
64 { 0x0003802b, 0x00000002 },
65 { 0x040067e0, 0x00000002 },
66 { 0x00000017, 0x00000004 },
67 { 0x000077e0, 0x00000002 },
68 { 0x00065000, 0x00000002 },
69 { 0x000037e1, 0x00000002 },
70 { 0x040067e1, 0x00000006 },
71 { 0x000077e0, 0x00000002 },
72 { 0x000077e1, 0x00000002 },
73 { 0x000077e1, 0x00000006 },
74 { 0xffffffff, 0000000000 },
75 { 0x10000000, 0000000000 },
76 { 0x0003802b, 0x00000002 },
77 { 0x040067e0, 0x00000006 },
78 { 0x00007675, 0x00000002 },
79 { 0x00007676, 0x00000002 },
80 { 0x00007677, 0x00000002 },
81 { 0x00007678, 0x00000006 },
82 { 0x0003802c, 0x00000002 },
83 { 0x04002676, 0x00000002 },
84 { 0x00007677, 0x00000002 },
85 { 0x00007678, 0x00000006 },
86 { 0x0000002f, 0x00000018 },
87 { 0x0000002f, 0x00000018 },
88 { 0000000000, 0x00000006 },
89 { 0x00000030, 0x00000018 },
90 { 0x00000030, 0x00000018 },
91 { 0000000000, 0x00000006 },
92 { 0x01605000, 0x00000002 },
93 { 0x00065000, 0x00000002 },
94 { 0x00098000, 0x00000002 },
95 { 0x00061000, 0x00000002 },
96 { 0x64c0603e, 0x00000004 },
97 { 0x000380e6, 0x00000002 },
98 { 0x040025c5, 0x00000002 },
99 { 0x00080000, 0x00000016 },
100 { 0000000000, 0000000000 },
101 { 0x0400251d, 0x00000002 },
102 { 0x00007580, 0x00000002 },
103 { 0x00067581, 0x00000002 },
104 { 0x04002580, 0x00000002 },
105 { 0x00067581, 0x00000002 },
106 { 0x00000049, 0x00000004 },
107 { 0x00005000, 0000000000 },
108 { 0x000380e6, 0x00000002 },
109 { 0x040025c5, 0x00000002 },
110 { 0x00061000, 0x00000002 },
111 { 0x0000750e, 0x00000002 },
112 { 0x00019000, 0x00000002 },
113 { 0x00011055, 0x00000014 },
114 { 0x00000055, 0x00000012 },
115 { 0x0400250f, 0x00000002 },
116 { 0x0000504f, 0x00000004 },
117 { 0x000380e6, 0x00000002 },
118 { 0x040025c5, 0x00000002 },
119 { 0x00007565, 0x00000002 },
120 { 0x00007566, 0x00000002 },
121 { 0x00000058, 0x00000004 },
122 { 0x000380e6, 0x00000002 },
123 { 0x040025c5, 0x00000002 },
124 { 0x01e655b4, 0x00000002 },
125 { 0x4401b0e4, 0x00000002 },
126 { 0x01c110e4, 0x00000002 },
127 { 0x26667066, 0x00000018 },
128 { 0x040c2565, 0x00000002 },
129 { 0x00000066, 0x00000018 },
130 { 0x04002564, 0x00000002 },
131 { 0x00007566, 0x00000002 },
132 { 0x0000005d, 0x00000004 },
133 { 0x00401069, 0x00000008 },
134 { 0x00101000, 0x00000002 },
135 { 0x000d80ff, 0x00000002 },
136 { 0x0080006c, 0x00000008 },
137 { 0x000f9000, 0x00000002 },
138 { 0x000e00ff, 0x00000002 },
139 { 0000000000, 0x00000006 },
140 { 0x0000008f, 0x00000018 },
141 { 0x0000005b, 0x00000004 },
142 { 0x000380e6, 0x00000002 },
143 { 0x040025c5, 0x00000002 },
144 { 0x00007576, 0x00000002 },
145 { 0x00065000, 0x00000002 },
146 { 0x00009000, 0x00000002 },
147 { 0x00041000, 0x00000002 },
148 { 0x0c00350e, 0x00000002 },
149 { 0x00049000, 0x00000002 },
150 { 0x00051000, 0x00000002 },
151 { 0x01e785f8, 0x00000002 },
152 { 0x00200000, 0x00000002 },
153 { 0x0060007e, 0x0000000c },
154 { 0x00007563, 0x00000002 },
155 { 0x006075f0, 0x00000021 },
156 { 0x20007073, 0x00000004 },
157 { 0x00005073, 0x00000004 },
158 { 0x000380e6, 0x00000002 },
159 { 0x040025c5, 0x00000002 },
160 { 0x00007576, 0x00000002 },
161 { 0x00007577, 0x00000002 },
162 { 0x0000750e, 0x00000002 },
163 { 0x0000750f, 0x00000002 },
164 { 0x00a05000, 0x00000002 },
165 { 0x00600083, 0x0000000c },
166 { 0x006075f0, 0x00000021 },
167 { 0x000075f8, 0x00000002 },
168 { 0x00000083, 0x00000004 },
169 { 0x000a750e, 0x00000002 },
170 { 0x000380e6, 0x00000002 },
171 { 0x040025c5, 0x00000002 },
172 { 0x0020750f, 0x00000002 },
173 { 0x00600086, 0x00000004 },
174 { 0x00007570, 0x00000002 },
175 { 0x00007571, 0x00000002 },
176 { 0x00007572, 0x00000006 },
177 { 0x000380e6, 0x00000002 },
178 { 0x040025c5, 0x00000002 },
179 { 0x00005000, 0x00000002 },
180 { 0x00a05000, 0x00000002 },
181 { 0x00007568, 0x00000002 },
182 { 0x00061000, 0x00000002 },
183 { 0x00000095, 0x0000000c },
184 { 0x00058000, 0x00000002 },
185 { 0x0c607562, 0x00000002 },
186 { 0x00000097, 0x00000004 },
187 { 0x000380e6, 0x00000002 },
188 { 0x040025c5, 0x00000002 },
189 { 0x00600096, 0x00000004 },
190 { 0x400070e5, 0000000000 },
191 { 0x000380e6, 0x00000002 },
192 { 0x040025c5, 0x00000002 },
193 { 0x000380e5, 0x00000002 },
194 { 0x000000a8, 0x0000001c },
195 { 0x000650aa, 0x00000018 },
196 { 0x040025bb, 0x00000002 },
197 { 0x000610ab, 0x00000018 },
198 { 0x040075bc, 0000000000 },
199 { 0x000075bb, 0x00000002 },
200 { 0x000075bc, 0000000000 },
201 { 0x00090000, 0x00000006 },
202 { 0x00090000, 0x00000002 },
203 { 0x000d8002, 0x00000006 },
204 { 0x00007832, 0x00000002 },
205 { 0x00005000, 0x00000002 },
206 { 0x000380e7, 0x00000002 },
207 { 0x04002c97, 0x00000002 },
208 { 0x00007820, 0x00000002 },
209 { 0x00007821, 0x00000002 },
210 { 0x00007800, 0000000000 },
211 { 0x01200000, 0x00000002 },
212 { 0x20077000, 0x00000002 },
213 { 0x01200000, 0x00000002 },
214 { 0x20007000, 0x00000002 },
215 { 0x00061000, 0x00000002 },
216 { 0x0120751b, 0x00000002 },
217 { 0x8040750a, 0x00000002 },
218 { 0x8040750b, 0x00000002 },
219 { 0x00110000, 0x00000002 },
220 { 0x000380e5, 0x00000002 },
221 { 0x000000c6, 0x0000001c },
222 { 0x000610ab, 0x00000018 },
223 { 0x844075bd, 0x00000002 },
224 { 0x000610aa, 0x00000018 },
225 { 0x840075bb, 0x00000002 },
226 { 0x000610ab, 0x00000018 },
227 { 0x844075bc, 0x00000002 },
228 { 0x000000c9, 0x00000004 },
229 { 0x804075bd, 0x00000002 },
230 { 0x800075bb, 0x00000002 },
231 { 0x804075bc, 0x00000002 },
232 { 0x00108000, 0x00000002 },
233 { 0x01400000, 0x00000002 },
234 { 0x006000cd, 0x0000000c },
235 { 0x20c07000, 0x00000020 },
236 { 0x000000cf, 0x00000012 },
237 { 0x00800000, 0x00000006 },
238 { 0x0080751d, 0x00000006 },
239 { 0000000000, 0000000000 },
240 { 0x0000775c, 0x00000002 },
241 { 0x00a05000, 0x00000002 },
242 { 0x00661000, 0x00000002 },
243 { 0x0460275d, 0x00000020 },
244 { 0x00004000, 0000000000 },
245 { 0x01e00830, 0x00000002 },
246 { 0x21007000, 0000000000 },
247 { 0x6464614d, 0000000000 },
248 { 0x69687420, 0000000000 },
249 { 0x00000073, 0000000000 },
250 { 0000000000, 0000000000 },
251 { 0x00005000, 0x00000002 },
252 { 0x000380d0, 0x00000002 },
253 { 0x040025e0, 0x00000002 },
254 { 0x000075e1, 0000000000 },
255 { 0x00000001, 0000000000 },
256 { 0x000380e0, 0x00000002 },
257 { 0x04002394, 0x00000002 },
258 { 0x00005000, 0000000000 },
259 { 0000000000, 0000000000 },
260 { 0000000000, 0000000000 },
261 { 0x00000008, 0000000000 },
262 { 0x00000004, 0000000000 },
263 { 0000000000, 0000000000 },
264 { 0000000000, 0000000000 },
265 { 0000000000, 0000000000 },
266 { 0000000000, 0000000000 },
267 { 0000000000, 0000000000 },
268 { 0000000000, 0000000000 },
269 { 0000000000, 0000000000 },
270 { 0000000000, 0000000000 },
271 { 0000000000, 0000000000 },
272 { 0000000000, 0000000000 },
273 { 0000000000, 0000000000 },
274 { 0000000000, 0000000000 },
275 { 0000000000, 0000000000 },
276 { 0000000000, 0000000000 },
277 { 0000000000, 0000000000 },
278 { 0000000000, 0000000000 },
279 { 0000000000, 0000000000 },
280 { 0000000000, 0000000000 },
281 { 0000000000, 0000000000 },
282 { 0000000000, 0000000000 },
283 { 0000000000, 0000000000 },
284 { 0000000000, 0000000000 },
285 { 0000000000, 0000000000 },
286 { 0000000000, 0000000000 },
287};
288
289static const u32 R200_cp_microcode[][2] = {
290 { 0x21007000, 0000000000 },
291 { 0x20007000, 0000000000 },
292 { 0x000000bf, 0x00000004 },
293 { 0x000000c3, 0x00000004 },
294 { 0x7a685e5d, 0000000000 },
295 { 0x5d5d5588, 0000000000 },
296 { 0x68659197, 0000000000 },
297 { 0x5da19f78, 0000000000 },
298 { 0x5d5d5d5d, 0000000000 },
299 { 0x5dee5d50, 0000000000 },
300 { 0xf2acacac, 0000000000 },
301 { 0xe75df9e9, 0000000000 },
302 { 0xb1dd0e11, 0000000000 },
303 { 0xe2afafaf, 0000000000 },
304 { 0x000f0000, 0x00000016 },
305 { 0x452f232d, 0000000000 },
306 { 0x00000013, 0x00000004 },
307 { 0x000f0000, 0x00000016 },
308 { 0x452f272d, 0000000000 },
309 { 0x000f0001, 0x00000016 },
310 { 0x3e4d4a37, 0000000000 },
311 { 0x000077ef, 0x00000002 },
312 { 0x00061000, 0x00000002 },
313 { 0x00000020, 0x0000001a },
314 { 0x00004000, 0x0000001e },
315 { 0x00061000, 0x00000002 },
316 { 0x00000020, 0x0000001a },
317 { 0x00004000, 0x0000001e },
318 { 0x00061000, 0x00000002 },
319 { 0x00000020, 0x0000001a },
320 { 0x00004000, 0x0000001e },
321 { 0x00000016, 0x00000004 },
322 { 0x0003802a, 0x00000002 },
323 { 0x040067e0, 0x00000002 },
324 { 0x00000016, 0x00000004 },
325 { 0x000077e0, 0x00000002 },
326 { 0x00065000, 0x00000002 },
327 { 0x000037e1, 0x00000002 },
328 { 0x040067e1, 0x00000006 },
329 { 0x000077e0, 0x00000002 },
330 { 0x000077e1, 0x00000002 },
331 { 0x000077e1, 0x00000006 },
332 { 0xffffffff, 0000000000 },
333 { 0x10000000, 0000000000 },
334 { 0x07f007f0, 0000000000 },
335 { 0x0003802a, 0x00000002 },
336 { 0x040067e0, 0x00000006 },
337 { 0x0003802c, 0x00000002 },
338 { 0x04002741, 0x00000002 },
339 { 0x04002741, 0x00000002 },
340 { 0x04002743, 0x00000002 },
341 { 0x00007675, 0x00000002 },
342 { 0x00007676, 0x00000002 },
343 { 0x00007677, 0x00000002 },
344 { 0x00007678, 0x00000006 },
345 { 0x0003802c, 0x00000002 },
346 { 0x04002741, 0x00000002 },
347 { 0x04002741, 0x00000002 },
348 { 0x04002743, 0x00000002 },
349 { 0x00007676, 0x00000002 },
350 { 0x00007677, 0x00000002 },
351 { 0x00007678, 0x00000006 },
352 { 0x0003802b, 0x00000002 },
353 { 0x04002676, 0x00000002 },
354 { 0x00007677, 0x00000002 },
355 { 0x0003802c, 0x00000002 },
356 { 0x04002741, 0x00000002 },
357 { 0x04002743, 0x00000002 },
358 { 0x00007678, 0x00000006 },
359 { 0x0003802c, 0x00000002 },
360 { 0x04002741, 0x00000002 },
361 { 0x04002741, 0x00000002 },
362 { 0x04002743, 0x00000002 },
363 { 0x00007678, 0x00000006 },
364 { 0x0000002f, 0x00000018 },
365 { 0x0000002f, 0x00000018 },
366 { 0000000000, 0x00000006 },
367 { 0x00000037, 0x00000018 },
368 { 0x00000037, 0x00000018 },
369 { 0000000000, 0x00000006 },
370 { 0x01605000, 0x00000002 },
371 { 0x00065000, 0x00000002 },
372 { 0x00098000, 0x00000002 },
373 { 0x00061000, 0x00000002 },
374 { 0x64c06051, 0x00000004 },
375 { 0x00080000, 0x00000016 },
376 { 0000000000, 0000000000 },
377 { 0x0400251d, 0x00000002 },
378 { 0x00007580, 0x00000002 },
379 { 0x00067581, 0x00000002 },
380 { 0x04002580, 0x00000002 },
381 { 0x00067581, 0x00000002 },
382 { 0x0000005a, 0x00000004 },
383 { 0x00005000, 0000000000 },
384 { 0x00061000, 0x00000002 },
385 { 0x0000750e, 0x00000002 },
386 { 0x00019000, 0x00000002 },
387 { 0x00011064, 0x00000014 },
388 { 0x00000064, 0x00000012 },
389 { 0x0400250f, 0x00000002 },
390 { 0x0000505e, 0x00000004 },
391 { 0x00007565, 0x00000002 },
392 { 0x00007566, 0x00000002 },
393 { 0x00000065, 0x00000004 },
394 { 0x01e655b4, 0x00000002 },
395 { 0x4401b0f0, 0x00000002 },
396 { 0x01c110f0, 0x00000002 },
397 { 0x26667071, 0x00000018 },
398 { 0x040c2565, 0x00000002 },
399 { 0x00000071, 0x00000018 },
400 { 0x04002564, 0x00000002 },
401 { 0x00007566, 0x00000002 },
402 { 0x00000068, 0x00000004 },
403 { 0x00401074, 0x00000008 },
404 { 0x00101000, 0x00000002 },
405 { 0x000d80ff, 0x00000002 },
406 { 0x00800077, 0x00000008 },
407 { 0x000f9000, 0x00000002 },
408 { 0x000e00ff, 0x00000002 },
409 { 0000000000, 0x00000006 },
410 { 0x00000094, 0x00000018 },
411 { 0x00000068, 0x00000004 },
412 { 0x00007576, 0x00000002 },
413 { 0x00065000, 0x00000002 },
414 { 0x00009000, 0x00000002 },
415 { 0x00041000, 0x00000002 },
416 { 0x0c00350e, 0x00000002 },
417 { 0x00049000, 0x00000002 },
418 { 0x00051000, 0x00000002 },
419 { 0x01e785f8, 0x00000002 },
420 { 0x00200000, 0x00000002 },
421 { 0x00600087, 0x0000000c },
422 { 0x00007563, 0x00000002 },
423 { 0x006075f0, 0x00000021 },
424 { 0x2000707c, 0x00000004 },
425 { 0x0000507c, 0x00000004 },
426 { 0x00007576, 0x00000002 },
427 { 0x00007577, 0x00000002 },
428 { 0x0000750e, 0x00000002 },
429 { 0x0000750f, 0x00000002 },
430 { 0x00a05000, 0x00000002 },
431 { 0x0060008a, 0x0000000c },
432 { 0x006075f0, 0x00000021 },
433 { 0x000075f8, 0x00000002 },
434 { 0x0000008a, 0x00000004 },
435 { 0x000a750e, 0x00000002 },
436 { 0x0020750f, 0x00000002 },
437 { 0x0060008d, 0x00000004 },
438 { 0x00007570, 0x00000002 },
439 { 0x00007571, 0x00000002 },
440 { 0x00007572, 0x00000006 },
441 { 0x00005000, 0x00000002 },
442 { 0x00a05000, 0x00000002 },
443 { 0x00007568, 0x00000002 },
444 { 0x00061000, 0x00000002 },
445 { 0x00000098, 0x0000000c },
446 { 0x00058000, 0x00000002 },
447 { 0x0c607562, 0x00000002 },
448 { 0x0000009a, 0x00000004 },
449 { 0x00600099, 0x00000004 },
450 { 0x400070f1, 0000000000 },
451 { 0x000380f1, 0x00000002 },
452 { 0x000000a7, 0x0000001c },
453 { 0x000650a9, 0x00000018 },
454 { 0x040025bb, 0x00000002 },
455 { 0x000610aa, 0x00000018 },
456 { 0x040075bc, 0000000000 },
457 { 0x000075bb, 0x00000002 },
458 { 0x000075bc, 0000000000 },
459 { 0x00090000, 0x00000006 },
460 { 0x00090000, 0x00000002 },
461 { 0x000d8002, 0x00000006 },
462 { 0x00005000, 0x00000002 },
463 { 0x00007821, 0x00000002 },
464 { 0x00007800, 0000000000 },
465 { 0x00007821, 0x00000002 },
466 { 0x00007800, 0000000000 },
467 { 0x01665000, 0x00000002 },
468 { 0x000a0000, 0x00000002 },
469 { 0x000671cc, 0x00000002 },
470 { 0x0286f1cd, 0x00000002 },
471 { 0x000000b7, 0x00000010 },
472 { 0x21007000, 0000000000 },
473 { 0x000000be, 0x0000001c },
474 { 0x00065000, 0x00000002 },
475 { 0x000a0000, 0x00000002 },
476 { 0x00061000, 0x00000002 },
477 { 0x000b0000, 0x00000002 },
478 { 0x38067000, 0x00000002 },
479 { 0x000a00ba, 0x00000004 },
480 { 0x20007000, 0000000000 },
481 { 0x01200000, 0x00000002 },
482 { 0x20077000, 0x00000002 },
483 { 0x01200000, 0x00000002 },
484 { 0x20007000, 0000000000 },
485 { 0x00061000, 0x00000002 },
486 { 0x0120751b, 0x00000002 },
487 { 0x8040750a, 0x00000002 },
488 { 0x8040750b, 0x00000002 },
489 { 0x00110000, 0x00000002 },
490 { 0x000380f1, 0x00000002 },
491 { 0x000000d1, 0x0000001c },
492 { 0x000610aa, 0x00000018 },
493 { 0x844075bd, 0x00000002 },
494 { 0x000610a9, 0x00000018 },
495 { 0x840075bb, 0x00000002 },
496 { 0x000610aa, 0x00000018 },
497 { 0x844075bc, 0x00000002 },
498 { 0x000000d4, 0x00000004 },
499 { 0x804075bd, 0x00000002 },
500 { 0x800075bb, 0x00000002 },
501 { 0x804075bc, 0x00000002 },
502 { 0x00108000, 0x00000002 },
503 { 0x01400000, 0x00000002 },
504 { 0x006000d8, 0x0000000c },
505 { 0x20c07000, 0x00000020 },
506 { 0x000000da, 0x00000012 },
507 { 0x00800000, 0x00000006 },
508 { 0x0080751d, 0x00000006 },
509 { 0x000025bb, 0x00000002 },
510 { 0x000040d4, 0x00000004 },
511 { 0x0000775c, 0x00000002 },
512 { 0x00a05000, 0x00000002 },
513 { 0x00661000, 0x00000002 },
514 { 0x0460275d, 0x00000020 },
515 { 0x00004000, 0000000000 },
516 { 0x00007999, 0x00000002 },
517 { 0x00a05000, 0x00000002 },
518 { 0x00661000, 0x00000002 },
519 { 0x0460299b, 0x00000020 },
520 { 0x00004000, 0000000000 },
521 { 0x01e00830, 0x00000002 },
522 { 0x21007000, 0000000000 },
523 { 0x00005000, 0x00000002 },
524 { 0x00038056, 0x00000002 },
525 { 0x040025e0, 0x00000002 },
526 { 0x000075e1, 0000000000 },
527 { 0x00000001, 0000000000 },
528 { 0x000380ed, 0x00000002 },
529 { 0x04007394, 0000000000 },
530 { 0000000000, 0000000000 },
531 { 0000000000, 0000000000 },
532 { 0x000078c4, 0x00000002 },
533 { 0x000078c5, 0x00000002 },
534 { 0x000078c6, 0x00000002 },
535 { 0x00007924, 0x00000002 },
536 { 0x00007925, 0x00000002 },
537 { 0x00007926, 0x00000002 },
538 { 0x000000f2, 0x00000004 },
539 { 0x00007924, 0x00000002 },
540 { 0x00007925, 0x00000002 },
541 { 0x00007926, 0x00000002 },
542 { 0x000000f9, 0x00000004 },
543 { 0000000000, 0000000000 },
544 { 0000000000, 0000000000 },
545 { 0000000000, 0000000000 },
546};
547
548static const u32 R300_cp_microcode[][2] = {
549 { 0x4200e000, 0000000000 },
550 { 0x4000e000, 0000000000 },
551 { 0x000000ae, 0x00000008 },
552 { 0x000000b2, 0x00000008 },
553 { 0x67554b4a, 0000000000 },
554 { 0x4a4a4475, 0000000000 },
555 { 0x55527d83, 0000000000 },
556 { 0x4a8c8b65, 0000000000 },
557 { 0x4aef4af6, 0000000000 },
558 { 0x4ae14a4a, 0000000000 },
559 { 0xe4979797, 0000000000 },
560 { 0xdb4aebdd, 0000000000 },
561 { 0x9ccc4a4a, 0000000000 },
562 { 0xd1989898, 0000000000 },
563 { 0x4a0f9ad6, 0000000000 },
564 { 0x000ca000, 0x00000004 },
565 { 0x000d0012, 0x00000038 },
566 { 0x0000e8b4, 0x00000004 },
567 { 0x000d0014, 0x00000038 },
568 { 0x0000e8b6, 0x00000004 },
569 { 0x000d0016, 0x00000038 },
570 { 0x0000e854, 0x00000004 },
571 { 0x000d0018, 0x00000038 },
572 { 0x0000e855, 0x00000004 },
573 { 0x000d001a, 0x00000038 },
574 { 0x0000e856, 0x00000004 },
575 { 0x000d001c, 0x00000038 },
576 { 0x0000e857, 0x00000004 },
577 { 0x000d001e, 0x00000038 },
578 { 0x0000e824, 0x00000004 },
579 { 0x000d0020, 0x00000038 },
580 { 0x0000e825, 0x00000004 },
581 { 0x000d0022, 0x00000038 },
582 { 0x0000e830, 0x00000004 },
583 { 0x000d0024, 0x00000038 },
584 { 0x0000f0c0, 0x00000004 },
585 { 0x000d0026, 0x00000038 },
586 { 0x0000f0c1, 0x00000004 },
587 { 0x000d0028, 0x00000038 },
588 { 0x0000f041, 0x00000004 },
589 { 0x000d002a, 0x00000038 },
590 { 0x0000f184, 0x00000004 },
591 { 0x000d002c, 0x00000038 },
592 { 0x0000f185, 0x00000004 },
593 { 0x000d002e, 0x00000038 },
594 { 0x0000f186, 0x00000004 },
595 { 0x000d0030, 0x00000038 },
596 { 0x0000f187, 0x00000004 },
597 { 0x000d0032, 0x00000038 },
598 { 0x0000f180, 0x00000004 },
599 { 0x000d0034, 0x00000038 },
600 { 0x0000f393, 0x00000004 },
601 { 0x000d0036, 0x00000038 },
602 { 0x0000f38a, 0x00000004 },
603 { 0x000d0038, 0x00000038 },
604 { 0x0000f38e, 0x00000004 },
605 { 0x0000e821, 0x00000004 },
606 { 0x0140a000, 0x00000004 },
607 { 0x00000043, 0x00000018 },
608 { 0x00cce800, 0x00000004 },
609 { 0x001b0001, 0x00000004 },
610 { 0x08004800, 0x00000004 },
611 { 0x001b0001, 0x00000004 },
612 { 0x08004800, 0x00000004 },
613 { 0x001b0001, 0x00000004 },
614 { 0x08004800, 0x00000004 },
615 { 0x0000003a, 0x00000008 },
616 { 0x0000a000, 0000000000 },
617 { 0x2000451d, 0x00000004 },
618 { 0x0000e580, 0x00000004 },
619 { 0x000ce581, 0x00000004 },
620 { 0x08004580, 0x00000004 },
621 { 0x000ce581, 0x00000004 },
622 { 0x00000047, 0x00000008 },
623 { 0x0000a000, 0000000000 },
624 { 0x000c2000, 0x00000004 },
625 { 0x0000e50e, 0x00000004 },
626 { 0x00032000, 0x00000004 },
627 { 0x00022051, 0x00000028 },
628 { 0x00000051, 0x00000024 },
629 { 0x0800450f, 0x00000004 },
630 { 0x0000a04b, 0x00000008 },
631 { 0x0000e565, 0x00000004 },
632 { 0x0000e566, 0x00000004 },
633 { 0x00000052, 0x00000008 },
634 { 0x03cca5b4, 0x00000004 },
635 { 0x05432000, 0x00000004 },
636 { 0x00022000, 0x00000004 },
637 { 0x4ccce05e, 0x00000030 },
638 { 0x08274565, 0x00000004 },
639 { 0x0000005e, 0x00000030 },
640 { 0x08004564, 0x00000004 },
641 { 0x0000e566, 0x00000004 },
642 { 0x00000055, 0x00000008 },
643 { 0x00802061, 0x00000010 },
644 { 0x00202000, 0x00000004 },
645 { 0x001b00ff, 0x00000004 },
646 { 0x01000064, 0x00000010 },
647 { 0x001f2000, 0x00000004 },
648 { 0x001c00ff, 0x00000004 },
649 { 0000000000, 0x0000000c },
650 { 0x00000080, 0x00000030 },
651 { 0x00000055, 0x00000008 },
652 { 0x0000e576, 0x00000004 },
653 { 0x000ca000, 0x00000004 },
654 { 0x00012000, 0x00000004 },
655 { 0x00082000, 0x00000004 },
656 { 0x1800650e, 0x00000004 },
657 { 0x00092000, 0x00000004 },
658 { 0x000a2000, 0x00000004 },
659 { 0x000f0000, 0x00000004 },
660 { 0x00400000, 0x00000004 },
661 { 0x00000074, 0x00000018 },
662 { 0x0000e563, 0x00000004 },
663 { 0x00c0e5f9, 0x000000c2 },
664 { 0x00000069, 0x00000008 },
665 { 0x0000a069, 0x00000008 },
666 { 0x0000e576, 0x00000004 },
667 { 0x0000e577, 0x00000004 },
668 { 0x0000e50e, 0x00000004 },
669 { 0x0000e50f, 0x00000004 },
670 { 0x0140a000, 0x00000004 },
671 { 0x00000077, 0x00000018 },
672 { 0x00c0e5f9, 0x000000c2 },
673 { 0x00000077, 0x00000008 },
674 { 0x0014e50e, 0x00000004 },
675 { 0x0040e50f, 0x00000004 },
676 { 0x00c0007a, 0x00000008 },
677 { 0x0000e570, 0x00000004 },
678 { 0x0000e571, 0x00000004 },
679 { 0x0000e572, 0x0000000c },
680 { 0x0000a000, 0x00000004 },
681 { 0x0140a000, 0x00000004 },
682 { 0x0000e568, 0x00000004 },
683 { 0x000c2000, 0x00000004 },
684 { 0x00000084, 0x00000018 },
685 { 0x000b0000, 0x00000004 },
686 { 0x18c0e562, 0x00000004 },
687 { 0x00000086, 0x00000008 },
688 { 0x00c00085, 0x00000008 },
689 { 0x000700e3, 0x00000004 },
690 { 0x00000092, 0x00000038 },
691 { 0x000ca094, 0x00000030 },
692 { 0x080045bb, 0x00000004 },
693 { 0x000c2095, 0x00000030 },
694 { 0x0800e5bc, 0000000000 },
695 { 0x0000e5bb, 0x00000004 },
696 { 0x0000e5bc, 0000000000 },
697 { 0x00120000, 0x0000000c },
698 { 0x00120000, 0x00000004 },
699 { 0x001b0002, 0x0000000c },
700 { 0x0000a000, 0x00000004 },
701 { 0x0000e821, 0x00000004 },
702 { 0x0000e800, 0000000000 },
703 { 0x0000e821, 0x00000004 },
704 { 0x0000e82e, 0000000000 },
705 { 0x02cca000, 0x00000004 },
706 { 0x00140000, 0x00000004 },
707 { 0x000ce1cc, 0x00000004 },
708 { 0x050de1cd, 0x00000004 },
709 { 0x00400000, 0x00000004 },
710 { 0x000000a4, 0x00000018 },
711 { 0x00c0a000, 0x00000004 },
712 { 0x000000a1, 0x00000008 },
713 { 0x000000a6, 0x00000020 },
714 { 0x4200e000, 0000000000 },
715 { 0x000000ad, 0x00000038 },
716 { 0x000ca000, 0x00000004 },
717 { 0x00140000, 0x00000004 },
718 { 0x000c2000, 0x00000004 },
719 { 0x00160000, 0x00000004 },
720 { 0x700ce000, 0x00000004 },
721 { 0x001400a9, 0x00000008 },
722 { 0x4000e000, 0000000000 },
723 { 0x02400000, 0x00000004 },
724 { 0x400ee000, 0x00000004 },
725 { 0x02400000, 0x00000004 },
726 { 0x4000e000, 0000000000 },
727 { 0x000c2000, 0x00000004 },
728 { 0x0240e51b, 0x00000004 },
729 { 0x0080e50a, 0x00000005 },
730 { 0x0080e50b, 0x00000005 },
731 { 0x00220000, 0x00000004 },
732 { 0x000700e3, 0x00000004 },
733 { 0x000000c0, 0x00000038 },
734 { 0x000c2095, 0x00000030 },
735 { 0x0880e5bd, 0x00000005 },
736 { 0x000c2094, 0x00000030 },
737 { 0x0800e5bb, 0x00000005 },
738 { 0x000c2095, 0x00000030 },
739 { 0x0880e5bc, 0x00000005 },
740 { 0x000000c3, 0x00000008 },
741 { 0x0080e5bd, 0x00000005 },
742 { 0x0000e5bb, 0x00000005 },
743 { 0x0080e5bc, 0x00000005 },
744 { 0x00210000, 0x00000004 },
745 { 0x02800000, 0x00000004 },
746 { 0x00c000c7, 0x00000018 },
747 { 0x4180e000, 0x00000040 },
748 { 0x000000c9, 0x00000024 },
749 { 0x01000000, 0x0000000c },
750 { 0x0100e51d, 0x0000000c },
751 { 0x000045bb, 0x00000004 },
752 { 0x000080c3, 0x00000008 },
753 { 0x0000f3ce, 0x00000004 },
754 { 0x0140a000, 0x00000004 },
755 { 0x00cc2000, 0x00000004 },
756 { 0x08c053cf, 0x00000040 },
757 { 0x00008000, 0000000000 },
758 { 0x0000f3d2, 0x00000004 },
759 { 0x0140a000, 0x00000004 },
760 { 0x00cc2000, 0x00000004 },
761 { 0x08c053d3, 0x00000040 },
762 { 0x00008000, 0000000000 },
763 { 0x0000f39d, 0x00000004 },
764 { 0x0140a000, 0x00000004 },
765 { 0x00cc2000, 0x00000004 },
766 { 0x08c0539e, 0x00000040 },
767 { 0x00008000, 0000000000 },
768 { 0x03c00830, 0x00000004 },
769 { 0x4200e000, 0000000000 },
770 { 0x0000a000, 0x00000004 },
771 { 0x200045e0, 0x00000004 },
772 { 0x0000e5e1, 0000000000 },
773 { 0x00000001, 0000000000 },
774 { 0x000700e0, 0x00000004 },
775 { 0x0800e394, 0000000000 },
776 { 0000000000, 0000000000 },
777 { 0x0000e8c4, 0x00000004 },
778 { 0x0000e8c5, 0x00000004 },
779 { 0x0000e8c6, 0x00000004 },
780 { 0x0000e928, 0x00000004 },
781 { 0x0000e929, 0x00000004 },
782 { 0x0000e92a, 0x00000004 },
783 { 0x000000e4, 0x00000008 },
784 { 0x0000e928, 0x00000004 },
785 { 0x0000e929, 0x00000004 },
786 { 0x0000e92a, 0x00000004 },
787 { 0x000000eb, 0x00000008 },
788 { 0x02c02000, 0x00000004 },
789 { 0x00060000, 0x00000004 },
790 { 0x000000f3, 0x00000034 },
791 { 0x000000f0, 0x00000008 },
792 { 0x00008000, 0x00000004 },
793 { 0xc000e000, 0000000000 },
794 { 0000000000, 0000000000 },
795 { 0x000c2000, 0x00000004 },
796 { 0x001d0018, 0x00000004 },
797 { 0x001a0001, 0x00000004 },
798 { 0x000000fb, 0x00000034 },
799 { 0x0000004a, 0x00000008 },
800 { 0x0500a04a, 0x00000008 },
801 { 0000000000, 0000000000 },
802 { 0000000000, 0000000000 },
803 { 0000000000, 0000000000 },
804 { 0000000000, 0000000000 },
805};
806
807static const u32 R420_cp_microcode[][2] = {
808 { 0x4200e000, 0000000000 },
809 { 0x4000e000, 0000000000 },
810 { 0x00000099, 0x00000008 },
811 { 0x0000009d, 0x00000008 },
812 { 0x4a554b4a, 0000000000 },
813 { 0x4a4a4467, 0000000000 },
814 { 0x55526f75, 0000000000 },
815 { 0x4a7e7d65, 0000000000 },
816 { 0xd9d3dff6, 0000000000 },
817 { 0x4ac54a4a, 0000000000 },
818 { 0xc8828282, 0000000000 },
819 { 0xbf4acfc1, 0000000000 },
820 { 0x87b04a4a, 0000000000 },
821 { 0xb5838383, 0000000000 },
822 { 0x4a0f85ba, 0000000000 },
823 { 0x000ca000, 0x00000004 },
824 { 0x000d0012, 0x00000038 },
825 { 0x0000e8b4, 0x00000004 },
826 { 0x000d0014, 0x00000038 },
827 { 0x0000e8b6, 0x00000004 },
828 { 0x000d0016, 0x00000038 },
829 { 0x0000e854, 0x00000004 },
830 { 0x000d0018, 0x00000038 },
831 { 0x0000e855, 0x00000004 },
832 { 0x000d001a, 0x00000038 },
833 { 0x0000e856, 0x00000004 },
834 { 0x000d001c, 0x00000038 },
835 { 0x0000e857, 0x00000004 },
836 { 0x000d001e, 0x00000038 },
837 { 0x0000e824, 0x00000004 },
838 { 0x000d0020, 0x00000038 },
839 { 0x0000e825, 0x00000004 },
840 { 0x000d0022, 0x00000038 },
841 { 0x0000e830, 0x00000004 },
842 { 0x000d0024, 0x00000038 },
843 { 0x0000f0c0, 0x00000004 },
844 { 0x000d0026, 0x00000038 },
845 { 0x0000f0c1, 0x00000004 },
846 { 0x000d0028, 0x00000038 },
847 { 0x0000f041, 0x00000004 },
848 { 0x000d002a, 0x00000038 },
849 { 0x0000f184, 0x00000004 },
850 { 0x000d002c, 0x00000038 },
851 { 0x0000f185, 0x00000004 },
852 { 0x000d002e, 0x00000038 },
853 { 0x0000f186, 0x00000004 },
854 { 0x000d0030, 0x00000038 },
855 { 0x0000f187, 0x00000004 },
856 { 0x000d0032, 0x00000038 },
857 { 0x0000f180, 0x00000004 },
858 { 0x000d0034, 0x00000038 },
859 { 0x0000f393, 0x00000004 },
860 { 0x000d0036, 0x00000038 },
861 { 0x0000f38a, 0x00000004 },
862 { 0x000d0038, 0x00000038 },
863 { 0x0000f38e, 0x00000004 },
864 { 0x0000e821, 0x00000004 },
865 { 0x0140a000, 0x00000004 },
866 { 0x00000043, 0x00000018 },
867 { 0x00cce800, 0x00000004 },
868 { 0x001b0001, 0x00000004 },
869 { 0x08004800, 0x00000004 },
870 { 0x001b0001, 0x00000004 },
871 { 0x08004800, 0x00000004 },
872 { 0x001b0001, 0x00000004 },
873 { 0x08004800, 0x00000004 },
874 { 0x0000003a, 0x00000008 },
875 { 0x0000a000, 0000000000 },
876 { 0x2000451d, 0x00000004 },
877 { 0x0000e580, 0x00000004 },
878 { 0x000ce581, 0x00000004 },
879 { 0x08004580, 0x00000004 },
880 { 0x000ce581, 0x00000004 },
881 { 0x00000047, 0x00000008 },
882 { 0x0000a000, 0000000000 },
883 { 0x000c2000, 0x00000004 },
884 { 0x0000e50e, 0x00000004 },
885 { 0x00032000, 0x00000004 },
886 { 0x00022051, 0x00000028 },
887 { 0x00000051, 0x00000024 },
888 { 0x0800450f, 0x00000004 },
889 { 0x0000a04b, 0x00000008 },
890 { 0x0000e565, 0x00000004 },
891 { 0x0000e566, 0x00000004 },
892 { 0x00000052, 0x00000008 },
893 { 0x03cca5b4, 0x00000004 },
894 { 0x05432000, 0x00000004 },
895 { 0x00022000, 0x00000004 },
896 { 0x4ccce05e, 0x00000030 },
897 { 0x08274565, 0x00000004 },
898 { 0x0000005e, 0x00000030 },
899 { 0x08004564, 0x00000004 },
900 { 0x0000e566, 0x00000004 },
901 { 0x00000055, 0x00000008 },
902 { 0x00802061, 0x00000010 },
903 { 0x00202000, 0x00000004 },
904 { 0x001b00ff, 0x00000004 },
905 { 0x01000064, 0x00000010 },
906 { 0x001f2000, 0x00000004 },
907 { 0x001c00ff, 0x00000004 },
908 { 0000000000, 0x0000000c },
909 { 0x00000072, 0x00000030 },
910 { 0x00000055, 0x00000008 },
911 { 0x0000e576, 0x00000004 },
912 { 0x0000e577, 0x00000004 },
913 { 0x0000e50e, 0x00000004 },
914 { 0x0000e50f, 0x00000004 },
915 { 0x0140a000, 0x00000004 },
916 { 0x00000069, 0x00000018 },
917 { 0x00c0e5f9, 0x000000c2 },
918 { 0x00000069, 0x00000008 },
919 { 0x0014e50e, 0x00000004 },
920 { 0x0040e50f, 0x00000004 },
921 { 0x00c0006c, 0x00000008 },
922 { 0x0000e570, 0x00000004 },
923 { 0x0000e571, 0x00000004 },
924 { 0x0000e572, 0x0000000c },
925 { 0x0000a000, 0x00000004 },
926 { 0x0140a000, 0x00000004 },
927 { 0x0000e568, 0x00000004 },
928 { 0x000c2000, 0x00000004 },
929 { 0x00000076, 0x00000018 },
930 { 0x000b0000, 0x00000004 },
931 { 0x18c0e562, 0x00000004 },
932 { 0x00000078, 0x00000008 },
933 { 0x00c00077, 0x00000008 },
934 { 0x000700c7, 0x00000004 },
935 { 0x00000080, 0x00000038 },
936 { 0x0000e5bb, 0x00000004 },
937 { 0x0000e5bc, 0000000000 },
938 { 0x0000a000, 0x00000004 },
939 { 0x0000e821, 0x00000004 },
940 { 0x0000e800, 0000000000 },
941 { 0x0000e821, 0x00000004 },
942 { 0x0000e82e, 0000000000 },
943 { 0x02cca000, 0x00000004 },
944 { 0x00140000, 0x00000004 },
945 { 0x000ce1cc, 0x00000004 },
946 { 0x050de1cd, 0x00000004 },
947 { 0x00400000, 0x00000004 },
948 { 0x0000008f, 0x00000018 },
949 { 0x00c0a000, 0x00000004 },
950 { 0x0000008c, 0x00000008 },
951 { 0x00000091, 0x00000020 },
952 { 0x4200e000, 0000000000 },
953 { 0x00000098, 0x00000038 },
954 { 0x000ca000, 0x00000004 },
955 { 0x00140000, 0x00000004 },
956 { 0x000c2000, 0x00000004 },
957 { 0x00160000, 0x00000004 },
958 { 0x700ce000, 0x00000004 },
959 { 0x00140094, 0x00000008 },
960 { 0x4000e000, 0000000000 },
961 { 0x02400000, 0x00000004 },
962 { 0x400ee000, 0x00000004 },
963 { 0x02400000, 0x00000004 },
964 { 0x4000e000, 0000000000 },
965 { 0x000c2000, 0x00000004 },
966 { 0x0240e51b, 0x00000004 },
967 { 0x0080e50a, 0x00000005 },
968 { 0x0080e50b, 0x00000005 },
969 { 0x00220000, 0x00000004 },
970 { 0x000700c7, 0x00000004 },
971 { 0x000000a4, 0x00000038 },
972 { 0x0080e5bd, 0x00000005 },
973 { 0x0000e5bb, 0x00000005 },
974 { 0x0080e5bc, 0x00000005 },
975 { 0x00210000, 0x00000004 },
976 { 0x02800000, 0x00000004 },
977 { 0x00c000ab, 0x00000018 },
978 { 0x4180e000, 0x00000040 },
979 { 0x000000ad, 0x00000024 },
980 { 0x01000000, 0x0000000c },
981 { 0x0100e51d, 0x0000000c },
982 { 0x000045bb, 0x00000004 },
983 { 0x000080a7, 0x00000008 },
984 { 0x0000f3ce, 0x00000004 },
985 { 0x0140a000, 0x00000004 },
986 { 0x00cc2000, 0x00000004 },
987 { 0x08c053cf, 0x00000040 },
988 { 0x00008000, 0000000000 },
989 { 0x0000f3d2, 0x00000004 },
990 { 0x0140a000, 0x00000004 },
991 { 0x00cc2000, 0x00000004 },
992 { 0x08c053d3, 0x00000040 },
993 { 0x00008000, 0000000000 },
994 { 0x0000f39d, 0x00000004 },
995 { 0x0140a000, 0x00000004 },
996 { 0x00cc2000, 0x00000004 },
997 { 0x08c0539e, 0x00000040 },
998 { 0x00008000, 0000000000 },
999 { 0x03c00830, 0x00000004 },
1000 { 0x4200e000, 0000000000 },
1001 { 0x0000a000, 0x00000004 },
1002 { 0x200045e0, 0x00000004 },
1003 { 0x0000e5e1, 0000000000 },
1004 { 0x00000001, 0000000000 },
1005 { 0x000700c4, 0x00000004 },
1006 { 0x0800e394, 0000000000 },
1007 { 0000000000, 0000000000 },
1008 { 0x0000e8c4, 0x00000004 },
1009 { 0x0000e8c5, 0x00000004 },
1010 { 0x0000e8c6, 0x00000004 },
1011 { 0x0000e928, 0x00000004 },
1012 { 0x0000e929, 0x00000004 },
1013 { 0x0000e92a, 0x00000004 },
1014 { 0x000000c8, 0x00000008 },
1015 { 0x0000e928, 0x00000004 },
1016 { 0x0000e929, 0x00000004 },
1017 { 0x0000e92a, 0x00000004 },
1018 { 0x000000cf, 0x00000008 },
1019 { 0x02c02000, 0x00000004 },
1020 { 0x00060000, 0x00000004 },
1021 { 0x000000d7, 0x00000034 },
1022 { 0x000000d4, 0x00000008 },
1023 { 0x00008000, 0x00000004 },
1024 { 0xc000e000, 0000000000 },
1025 { 0x0000e1cc, 0x00000004 },
1026 { 0x0500e1cd, 0x00000004 },
1027 { 0x000ca000, 0x00000004 },
1028 { 0x000000de, 0x00000034 },
1029 { 0x000000da, 0x00000008 },
1030 { 0x0000a000, 0000000000 },
1031 { 0x0019e1cc, 0x00000004 },
1032 { 0x001b0001, 0x00000004 },
1033 { 0x0500a000, 0x00000004 },
1034 { 0x080041cd, 0x00000004 },
1035 { 0x000ca000, 0x00000004 },
1036 { 0x000000fb, 0x00000034 },
1037 { 0x0000004a, 0x00000008 },
1038 { 0000000000, 0000000000 },
1039 { 0000000000, 0000000000 },
1040 { 0000000000, 0000000000 },
1041 { 0000000000, 0000000000 },
1042 { 0000000000, 0000000000 },
1043 { 0000000000, 0000000000 },
1044 { 0000000000, 0000000000 },
1045 { 0000000000, 0000000000 },
1046 { 0000000000, 0000000000 },
1047 { 0000000000, 0000000000 },
1048 { 0000000000, 0000000000 },
1049 { 0000000000, 0000000000 },
1050 { 0000000000, 0000000000 },
1051 { 0000000000, 0000000000 },
1052 { 0000000000, 0000000000 },
1053 { 0000000000, 0000000000 },
1054 { 0x000c2000, 0x00000004 },
1055 { 0x001d0018, 0x00000004 },
1056 { 0x001a0001, 0x00000004 },
1057 { 0x000000fb, 0x00000034 },
1058 { 0x0000004a, 0x00000008 },
1059 { 0x0500a04a, 0x00000008 },
1060 { 0000000000, 0000000000 },
1061 { 0000000000, 0000000000 },
1062 { 0000000000, 0000000000 },
1063 { 0000000000, 0000000000 },
1064};
1065
1066static const u32 RS600_cp_microcode[][2] = {
1067 { 0x4200e000, 0000000000 },
1068 { 0x4000e000, 0000000000 },
1069 { 0x000000a0, 0x00000008 },
1070 { 0x000000a4, 0x00000008 },
1071 { 0x4a554b4a, 0000000000 },
1072 { 0x4a4a4467, 0000000000 },
1073 { 0x55526f75, 0000000000 },
1074 { 0x4a7e7d65, 0000000000 },
1075 { 0x4ae74af6, 0000000000 },
1076 { 0x4ad34a4a, 0000000000 },
1077 { 0xd6898989, 0000000000 },
1078 { 0xcd4addcf, 0000000000 },
1079 { 0x8ebe4ae2, 0000000000 },
1080 { 0xc38a8a8a, 0000000000 },
1081 { 0x4a0f8cc8, 0000000000 },
1082 { 0x000ca000, 0x00000004 },
1083 { 0x000d0012, 0x00000038 },
1084 { 0x0000e8b4, 0x00000004 },
1085 { 0x000d0014, 0x00000038 },
1086 { 0x0000e8b6, 0x00000004 },
1087 { 0x000d0016, 0x00000038 },
1088 { 0x0000e854, 0x00000004 },
1089 { 0x000d0018, 0x00000038 },
1090 { 0x0000e855, 0x00000004 },
1091 { 0x000d001a, 0x00000038 },
1092 { 0x0000e856, 0x00000004 },
1093 { 0x000d001c, 0x00000038 },
1094 { 0x0000e857, 0x00000004 },
1095 { 0x000d001e, 0x00000038 },
1096 { 0x0000e824, 0x00000004 },
1097 { 0x000d0020, 0x00000038 },
1098 { 0x0000e825, 0x00000004 },
1099 { 0x000d0022, 0x00000038 },
1100 { 0x0000e830, 0x00000004 },
1101 { 0x000d0024, 0x00000038 },
1102 { 0x0000f0c0, 0x00000004 },
1103 { 0x000d0026, 0x00000038 },
1104 { 0x0000f0c1, 0x00000004 },
1105 { 0x000d0028, 0x00000038 },
1106 { 0x0000f041, 0x00000004 },
1107 { 0x000d002a, 0x00000038 },
1108 { 0x0000f184, 0x00000004 },
1109 { 0x000d002c, 0x00000038 },
1110 { 0x0000f185, 0x00000004 },
1111 { 0x000d002e, 0x00000038 },
1112 { 0x0000f186, 0x00000004 },
1113 { 0x000d0030, 0x00000038 },
1114 { 0x0000f187, 0x00000004 },
1115 { 0x000d0032, 0x00000038 },
1116 { 0x0000f180, 0x00000004 },
1117 { 0x000d0034, 0x00000038 },
1118 { 0x0000f393, 0x00000004 },
1119 { 0x000d0036, 0x00000038 },
1120 { 0x0000f38a, 0x00000004 },
1121 { 0x000d0038, 0x00000038 },
1122 { 0x0000f38e, 0x00000004 },
1123 { 0x0000e821, 0x00000004 },
1124 { 0x0140a000, 0x00000004 },
1125 { 0x00000043, 0x00000018 },
1126 { 0x00cce800, 0x00000004 },
1127 { 0x001b0001, 0x00000004 },
1128 { 0x08004800, 0x00000004 },
1129 { 0x001b0001, 0x00000004 },
1130 { 0x08004800, 0x00000004 },
1131 { 0x001b0001, 0x00000004 },
1132 { 0x08004800, 0x00000004 },
1133 { 0x0000003a, 0x00000008 },
1134 { 0x0000a000, 0000000000 },
1135 { 0x2000451d, 0x00000004 },
1136 { 0x0000e580, 0x00000004 },
1137 { 0x000ce581, 0x00000004 },
1138 { 0x08004580, 0x00000004 },
1139 { 0x000ce581, 0x00000004 },
1140 { 0x00000047, 0x00000008 },
1141 { 0x0000a000, 0000000000 },
1142 { 0x000c2000, 0x00000004 },
1143 { 0x0000e50e, 0x00000004 },
1144 { 0x00032000, 0x00000004 },
1145 { 0x00022051, 0x00000028 },
1146 { 0x00000051, 0x00000024 },
1147 { 0x0800450f, 0x00000004 },
1148 { 0x0000a04b, 0x00000008 },
1149 { 0x0000e565, 0x00000004 },
1150 { 0x0000e566, 0x00000004 },
1151 { 0x00000052, 0x00000008 },
1152 { 0x03cca5b4, 0x00000004 },
1153 { 0x05432000, 0x00000004 },
1154 { 0x00022000, 0x00000004 },
1155 { 0x4ccce05e, 0x00000030 },
1156 { 0x08274565, 0x00000004 },
1157 { 0x0000005e, 0x00000030 },
1158 { 0x08004564, 0x00000004 },
1159 { 0x0000e566, 0x00000004 },
1160 { 0x00000055, 0x00000008 },
1161 { 0x00802061, 0x00000010 },
1162 { 0x00202000, 0x00000004 },
1163 { 0x001b00ff, 0x00000004 },
1164 { 0x01000064, 0x00000010 },
1165 { 0x001f2000, 0x00000004 },
1166 { 0x001c00ff, 0x00000004 },
1167 { 0000000000, 0x0000000c },
1168 { 0x00000072, 0x00000030 },
1169 { 0x00000055, 0x00000008 },
1170 { 0x0000e576, 0x00000004 },
1171 { 0x0000e577, 0x00000004 },
1172 { 0x0000e50e, 0x00000004 },
1173 { 0x0000e50f, 0x00000004 },
1174 { 0x0140a000, 0x00000004 },
1175 { 0x00000069, 0x00000018 },
1176 { 0x00c0e5f9, 0x000000c2 },
1177 { 0x00000069, 0x00000008 },
1178 { 0x0014e50e, 0x00000004 },
1179 { 0x0040e50f, 0x00000004 },
1180 { 0x00c0006c, 0x00000008 },
1181 { 0x0000e570, 0x00000004 },
1182 { 0x0000e571, 0x00000004 },
1183 { 0x0000e572, 0x0000000c },
1184 { 0x0000a000, 0x00000004 },
1185 { 0x0140a000, 0x00000004 },
1186 { 0x0000e568, 0x00000004 },
1187 { 0x000c2000, 0x00000004 },
1188 { 0x00000076, 0x00000018 },
1189 { 0x000b0000, 0x00000004 },
1190 { 0x18c0e562, 0x00000004 },
1191 { 0x00000078, 0x00000008 },
1192 { 0x00c00077, 0x00000008 },
1193 { 0x000700d5, 0x00000004 },
1194 { 0x00000084, 0x00000038 },
1195 { 0x000ca086, 0x00000030 },
1196 { 0x080045bb, 0x00000004 },
1197 { 0x000c2087, 0x00000030 },
1198 { 0x0800e5bc, 0000000000 },
1199 { 0x0000e5bb, 0x00000004 },
1200 { 0x0000e5bc, 0000000000 },
1201 { 0x00120000, 0x0000000c },
1202 { 0x00120000, 0x00000004 },
1203 { 0x001b0002, 0x0000000c },
1204 { 0x0000a000, 0x00000004 },
1205 { 0x0000e821, 0x00000004 },
1206 { 0x0000e800, 0000000000 },
1207 { 0x0000e821, 0x00000004 },
1208 { 0x0000e82e, 0000000000 },
1209 { 0x02cca000, 0x00000004 },
1210 { 0x00140000, 0x00000004 },
1211 { 0x000ce1cc, 0x00000004 },
1212 { 0x050de1cd, 0x00000004 },
1213 { 0x00400000, 0x00000004 },
1214 { 0x00000096, 0x00000018 },
1215 { 0x00c0a000, 0x00000004 },
1216 { 0x00000093, 0x00000008 },
1217 { 0x00000098, 0x00000020 },
1218 { 0x4200e000, 0000000000 },
1219 { 0x0000009f, 0x00000038 },
1220 { 0x000ca000, 0x00000004 },
1221 { 0x00140000, 0x00000004 },
1222 { 0x000c2000, 0x00000004 },
1223 { 0x00160000, 0x00000004 },
1224 { 0x700ce000, 0x00000004 },
1225 { 0x0014009b, 0x00000008 },
1226 { 0x4000e000, 0000000000 },
1227 { 0x02400000, 0x00000004 },
1228 { 0x400ee000, 0x00000004 },
1229 { 0x02400000, 0x00000004 },
1230 { 0x4000e000, 0000000000 },
1231 { 0x000c2000, 0x00000004 },
1232 { 0x0240e51b, 0x00000004 },
1233 { 0x0080e50a, 0x00000005 },
1234 { 0x0080e50b, 0x00000005 },
1235 { 0x00220000, 0x00000004 },
1236 { 0x000700d5, 0x00000004 },
1237 { 0x000000b2, 0x00000038 },
1238 { 0x000c2087, 0x00000030 },
1239 { 0x0880e5bd, 0x00000005 },
1240 { 0x000c2086, 0x00000030 },
1241 { 0x0800e5bb, 0x00000005 },
1242 { 0x000c2087, 0x00000030 },
1243 { 0x0880e5bc, 0x00000005 },
1244 { 0x000000b5, 0x00000008 },
1245 { 0x0080e5bd, 0x00000005 },
1246 { 0x0000e5bb, 0x00000005 },
1247 { 0x0080e5bc, 0x00000005 },
1248 { 0x00210000, 0x00000004 },
1249 { 0x02800000, 0x00000004 },
1250 { 0x00c000b9, 0x00000018 },
1251 { 0x4180e000, 0x00000040 },
1252 { 0x000000bb, 0x00000024 },
1253 { 0x01000000, 0x0000000c },
1254 { 0x0100e51d, 0x0000000c },
1255 { 0x000045bb, 0x00000004 },
1256 { 0x000080b5, 0x00000008 },
1257 { 0x0000f3ce, 0x00000004 },
1258 { 0x0140a000, 0x00000004 },
1259 { 0x00cc2000, 0x00000004 },
1260 { 0x08c053cf, 0x00000040 },
1261 { 0x00008000, 0000000000 },
1262 { 0x0000f3d2, 0x00000004 },
1263 { 0x0140a000, 0x00000004 },
1264 { 0x00cc2000, 0x00000004 },
1265 { 0x08c053d3, 0x00000040 },
1266 { 0x00008000, 0000000000 },
1267 { 0x0000f39d, 0x00000004 },
1268 { 0x0140a000, 0x00000004 },
1269 { 0x00cc2000, 0x00000004 },
1270 { 0x08c0539e, 0x00000040 },
1271 { 0x00008000, 0000000000 },
1272 { 0x03c00830, 0x00000004 },
1273 { 0x4200e000, 0000000000 },
1274 { 0x0000a000, 0x00000004 },
1275 { 0x200045e0, 0x00000004 },
1276 { 0x0000e5e1, 0000000000 },
1277 { 0x00000001, 0000000000 },
1278 { 0x000700d2, 0x00000004 },
1279 { 0x0800e394, 0000000000 },
1280 { 0000000000, 0000000000 },
1281 { 0x0000e8c4, 0x00000004 },
1282 { 0x0000e8c5, 0x00000004 },
1283 { 0x0000e8c6, 0x00000004 },
1284 { 0x0000e928, 0x00000004 },
1285 { 0x0000e929, 0x00000004 },
1286 { 0x0000e92a, 0x00000004 },
1287 { 0x000000d6, 0x00000008 },
1288 { 0x0000e928, 0x00000004 },
1289 { 0x0000e929, 0x00000004 },
1290 { 0x0000e92a, 0x00000004 },
1291 { 0x000000dd, 0x00000008 },
1292 { 0x00e00116, 0000000000 },
1293 { 0x000700e1, 0x00000004 },
1294 { 0x0800401c, 0x00000004 },
1295 { 0x200050e7, 0x00000004 },
1296 { 0x0000e01d, 0x00000004 },
1297 { 0x000000e4, 0x00000008 },
1298 { 0x02c02000, 0x00000004 },
1299 { 0x00060000, 0x00000004 },
1300 { 0x000000eb, 0x00000034 },
1301 { 0x000000e8, 0x00000008 },
1302 { 0x00008000, 0x00000004 },
1303 { 0xc000e000, 0000000000 },
1304 { 0000000000, 0000000000 },
1305 { 0000000000, 0000000000 },
1306 { 0000000000, 0000000000 },
1307 { 0000000000, 0000000000 },
1308 { 0000000000, 0000000000 },
1309 { 0000000000, 0000000000 },
1310 { 0000000000, 0000000000 },
1311 { 0000000000, 0000000000 },
1312 { 0000000000, 0000000000 },
1313 { 0x000c2000, 0x00000004 },
1314 { 0x001d0018, 0x00000004 },
1315 { 0x001a0001, 0x00000004 },
1316 { 0x000000fb, 0x00000034 },
1317 { 0x0000004a, 0x00000008 },
1318 { 0x0500a04a, 0x00000008 },
1319 { 0000000000, 0000000000 },
1320 { 0000000000, 0000000000 },
1321 { 0000000000, 0000000000 },
1322 { 0000000000, 0000000000 },
1323};
1324
1325static const u32 RS690_cp_microcode[][2] = {
1326 { 0x000000dd, 0x00000008 },
1327 { 0x000000df, 0x00000008 },
1328 { 0x000000a0, 0x00000008 },
1329 { 0x000000a4, 0x00000008 },
1330 { 0x4a554b4a, 0000000000 },
1331 { 0x4a4a4467, 0000000000 },
1332 { 0x55526f75, 0000000000 },
1333 { 0x4a7e7d65, 0000000000 },
1334 { 0x4ad74af6, 0000000000 },
1335 { 0x4ac94a4a, 0000000000 },
1336 { 0xcc898989, 0000000000 },
1337 { 0xc34ad3c5, 0000000000 },
1338 { 0x8e4a4a4a, 0000000000 },
1339 { 0x4a8a8a8a, 0000000000 },
1340 { 0x4a0f8c4a, 0000000000 },
1341 { 0x000ca000, 0x00000004 },
1342 { 0x000d0012, 0x00000038 },
1343 { 0x0000e8b4, 0x00000004 },
1344 { 0x000d0014, 0x00000038 },
1345 { 0x0000e8b6, 0x00000004 },
1346 { 0x000d0016, 0x00000038 },
1347 { 0x0000e854, 0x00000004 },
1348 { 0x000d0018, 0x00000038 },
1349 { 0x0000e855, 0x00000004 },
1350 { 0x000d001a, 0x00000038 },
1351 { 0x0000e856, 0x00000004 },
1352 { 0x000d001c, 0x00000038 },
1353 { 0x0000e857, 0x00000004 },
1354 { 0x000d001e, 0x00000038 },
1355 { 0x0000e824, 0x00000004 },
1356 { 0x000d0020, 0x00000038 },
1357 { 0x0000e825, 0x00000004 },
1358 { 0x000d0022, 0x00000038 },
1359 { 0x0000e830, 0x00000004 },
1360 { 0x000d0024, 0x00000038 },
1361 { 0x0000f0c0, 0x00000004 },
1362 { 0x000d0026, 0x00000038 },
1363 { 0x0000f0c1, 0x00000004 },
1364 { 0x000d0028, 0x00000038 },
1365 { 0x0000f041, 0x00000004 },
1366 { 0x000d002a, 0x00000038 },
1367 { 0x0000f184, 0x00000004 },
1368 { 0x000d002c, 0x00000038 },
1369 { 0x0000f185, 0x00000004 },
1370 { 0x000d002e, 0x00000038 },
1371 { 0x0000f186, 0x00000004 },
1372 { 0x000d0030, 0x00000038 },
1373 { 0x0000f187, 0x00000004 },
1374 { 0x000d0032, 0x00000038 },
1375 { 0x0000f180, 0x00000004 },
1376 { 0x000d0034, 0x00000038 },
1377 { 0x0000f393, 0x00000004 },
1378 { 0x000d0036, 0x00000038 },
1379 { 0x0000f38a, 0x00000004 },
1380 { 0x000d0038, 0x00000038 },
1381 { 0x0000f38e, 0x00000004 },
1382 { 0x0000e821, 0x00000004 },
1383 { 0x0140a000, 0x00000004 },
1384 { 0x00000043, 0x00000018 },
1385 { 0x00cce800, 0x00000004 },
1386 { 0x001b0001, 0x00000004 },
1387 { 0x08004800, 0x00000004 },
1388 { 0x001b0001, 0x00000004 },
1389 { 0x08004800, 0x00000004 },
1390 { 0x001b0001, 0x00000004 },
1391 { 0x08004800, 0x00000004 },
1392 { 0x0000003a, 0x00000008 },
1393 { 0x0000a000, 0000000000 },
1394 { 0x2000451d, 0x00000004 },
1395 { 0x0000e580, 0x00000004 },
1396 { 0x000ce581, 0x00000004 },
1397 { 0x08004580, 0x00000004 },
1398 { 0x000ce581, 0x00000004 },
1399 { 0x00000047, 0x00000008 },
1400 { 0x0000a000, 0000000000 },
1401 { 0x000c2000, 0x00000004 },
1402 { 0x0000e50e, 0x00000004 },
1403 { 0x00032000, 0x00000004 },
1404 { 0x00022051, 0x00000028 },
1405 { 0x00000051, 0x00000024 },
1406 { 0x0800450f, 0x00000004 },
1407 { 0x0000a04b, 0x00000008 },
1408 { 0x0000e565, 0x00000004 },
1409 { 0x0000e566, 0x00000004 },
1410 { 0x00000052, 0x00000008 },
1411 { 0x03cca5b4, 0x00000004 },
1412 { 0x05432000, 0x00000004 },
1413 { 0x00022000, 0x00000004 },
1414 { 0x4ccce05e, 0x00000030 },
1415 { 0x08274565, 0x00000004 },
1416 { 0x0000005e, 0x00000030 },
1417 { 0x08004564, 0x00000004 },
1418 { 0x0000e566, 0x00000004 },
1419 { 0x00000055, 0x00000008 },
1420 { 0x00802061, 0x00000010 },
1421 { 0x00202000, 0x00000004 },
1422 { 0x001b00ff, 0x00000004 },
1423 { 0x01000064, 0x00000010 },
1424 { 0x001f2000, 0x00000004 },
1425 { 0x001c00ff, 0x00000004 },
1426 { 0000000000, 0x0000000c },
1427 { 0x00000072, 0x00000030 },
1428 { 0x00000055, 0x00000008 },
1429 { 0x0000e576, 0x00000004 },
1430 { 0x0000e577, 0x00000004 },
1431 { 0x0000e50e, 0x00000004 },
1432 { 0x0000e50f, 0x00000004 },
1433 { 0x0140a000, 0x00000004 },
1434 { 0x00000069, 0x00000018 },
1435 { 0x00c0e5f9, 0x000000c2 },
1436 { 0x00000069, 0x00000008 },
1437 { 0x0014e50e, 0x00000004 },
1438 { 0x0040e50f, 0x00000004 },
1439 { 0x00c0006c, 0x00000008 },
1440 { 0x0000e570, 0x00000004 },
1441 { 0x0000e571, 0x00000004 },
1442 { 0x0000e572, 0x0000000c },
1443 { 0x0000a000, 0x00000004 },
1444 { 0x0140a000, 0x00000004 },
1445 { 0x0000e568, 0x00000004 },
1446 { 0x000c2000, 0x00000004 },
1447 { 0x00000076, 0x00000018 },
1448 { 0x000b0000, 0x00000004 },
1449 { 0x18c0e562, 0x00000004 },
1450 { 0x00000078, 0x00000008 },
1451 { 0x00c00077, 0x00000008 },
1452 { 0x000700cb, 0x00000004 },
1453 { 0x00000084, 0x00000038 },
1454 { 0x000ca086, 0x00000030 },
1455 { 0x080045bb, 0x00000004 },
1456 { 0x000c2087, 0x00000030 },
1457 { 0x0800e5bc, 0000000000 },
1458 { 0x0000e5bb, 0x00000004 },
1459 { 0x0000e5bc, 0000000000 },
1460 { 0x00120000, 0x0000000c },
1461 { 0x00120000, 0x00000004 },
1462 { 0x001b0002, 0x0000000c },
1463 { 0x0000a000, 0x00000004 },
1464 { 0x0000e821, 0x00000004 },
1465 { 0x0000e800, 0000000000 },
1466 { 0x0000e821, 0x00000004 },
1467 { 0x0000e82e, 0000000000 },
1468 { 0x02cca000, 0x00000004 },
1469 { 0x00140000, 0x00000004 },
1470 { 0x000ce1cc, 0x00000004 },
1471 { 0x050de1cd, 0x00000004 },
1472 { 0x00400000, 0x00000004 },
1473 { 0x00000096, 0x00000018 },
1474 { 0x00c0a000, 0x00000004 },
1475 { 0x00000093, 0x00000008 },
1476 { 0x00000098, 0x00000020 },
1477 { 0x4200e000, 0000000000 },
1478 { 0x0000009f, 0x00000038 },
1479 { 0x000ca000, 0x00000004 },
1480 { 0x00140000, 0x00000004 },
1481 { 0x000c2000, 0x00000004 },
1482 { 0x00160000, 0x00000004 },
1483 { 0x700ce000, 0x00000004 },
1484 { 0x0014009b, 0x00000008 },
1485 { 0x4000e000, 0000000000 },
1486 { 0x02400000, 0x00000004 },
1487 { 0x400ee000, 0x00000004 },
1488 { 0x02400000, 0x00000004 },
1489 { 0x4000e000, 0000000000 },
1490 { 0x00100000, 0x0000002c },
1491 { 0x00004000, 0000000000 },
1492 { 0x080045c8, 0x00000004 },
1493 { 0x00240005, 0x00000004 },
1494 { 0x08004d0b, 0x00000004 },
1495 { 0x000c2000, 0x00000004 },
1496 { 0x0240e51b, 0x00000004 },
1497 { 0x0080e50a, 0x00000005 },
1498 { 0x0080e50b, 0x00000005 },
1499 { 0x00220000, 0x00000004 },
1500 { 0x000700cb, 0x00000004 },
1501 { 0x000000b7, 0x00000038 },
1502 { 0x000c2087, 0x00000030 },
1503 { 0x0880e5bd, 0x00000005 },
1504 { 0x000c2086, 0x00000030 },
1505 { 0x0800e5bb, 0x00000005 },
1506 { 0x000c2087, 0x00000030 },
1507 { 0x0880e5bc, 0x00000005 },
1508 { 0x000000ba, 0x00000008 },
1509 { 0x0080e5bd, 0x00000005 },
1510 { 0x0000e5bb, 0x00000005 },
1511 { 0x0080e5bc, 0x00000005 },
1512 { 0x00210000, 0x00000004 },
1513 { 0x02800000, 0x00000004 },
1514 { 0x00c000be, 0x00000018 },
1515 { 0x4180e000, 0x00000040 },
1516 { 0x000000c0, 0x00000024 },
1517 { 0x01000000, 0x0000000c },
1518 { 0x0100e51d, 0x0000000c },
1519 { 0x000045bb, 0x00000004 },
1520 { 0x000080ba, 0x00000008 },
1521 { 0x03c00830, 0x00000004 },
1522 { 0x4200e000, 0000000000 },
1523 { 0x0000a000, 0x00000004 },
1524 { 0x200045e0, 0x00000004 },
1525 { 0x0000e5e1, 0000000000 },
1526 { 0x00000001, 0000000000 },
1527 { 0x000700c8, 0x00000004 },
1528 { 0x0800e394, 0000000000 },
1529 { 0000000000, 0000000000 },
1530 { 0x0000e8c4, 0x00000004 },
1531 { 0x0000e8c5, 0x00000004 },
1532 { 0x0000e8c6, 0x00000004 },
1533 { 0x0000e928, 0x00000004 },
1534 { 0x0000e929, 0x00000004 },
1535 { 0x0000e92a, 0x00000004 },
1536 { 0x000000cc, 0x00000008 },
1537 { 0x0000e928, 0x00000004 },
1538 { 0x0000e929, 0x00000004 },
1539 { 0x0000e92a, 0x00000004 },
1540 { 0x000000d3, 0x00000008 },
1541 { 0x02c02000, 0x00000004 },
1542 { 0x00060000, 0x00000004 },
1543 { 0x000000db, 0x00000034 },
1544 { 0x000000d8, 0x00000008 },
1545 { 0x00008000, 0x00000004 },
1546 { 0xc000e000, 0000000000 },
1547 { 0x000000e1, 0x00000030 },
1548 { 0x4200e000, 0000000000 },
1549 { 0x000000e1, 0x00000030 },
1550 { 0x4000e000, 0000000000 },
1551 { 0x0025001b, 0x00000004 },
1552 { 0x00230000, 0x00000004 },
1553 { 0x00250005, 0x00000004 },
1554 { 0x000000e6, 0x00000034 },
1555 { 0000000000, 0x0000000c },
1556 { 0x00244000, 0x00000004 },
1557 { 0x080045c8, 0x00000004 },
1558 { 0x00240005, 0x00000004 },
1559 { 0x08004d0b, 0x0000000c },
1560 { 0000000000, 0000000000 },
1561 { 0000000000, 0000000000 },
1562 { 0000000000, 0000000000 },
1563 { 0000000000, 0000000000 },
1564 { 0000000000, 0000000000 },
1565 { 0000000000, 0000000000 },
1566 { 0000000000, 0000000000 },
1567 { 0000000000, 0000000000 },
1568 { 0000000000, 0000000000 },
1569 { 0000000000, 0000000000 },
1570 { 0000000000, 0000000000 },
1571 { 0000000000, 0000000000 },
1572 { 0x000c2000, 0x00000004 },
1573 { 0x001d0018, 0x00000004 },
1574 { 0x001a0001, 0x00000004 },
1575 { 0x000000fb, 0x00000034 },
1576 { 0x0000004a, 0x00000008 },
1577 { 0x0500a04a, 0x00000008 },
1578 { 0000000000, 0000000000 },
1579 { 0000000000, 0000000000 },
1580 { 0000000000, 0000000000 },
1581 { 0000000000, 0000000000 },
1582};
1583
1584static const u32 R520_cp_microcode[][2] = {
1585 { 0x4200e000, 0000000000 },
1586 { 0x4000e000, 0000000000 },
1587 { 0x00000099, 0x00000008 },
1588 { 0x0000009d, 0x00000008 },
1589 { 0x4a554b4a, 0000000000 },
1590 { 0x4a4a4467, 0000000000 },
1591 { 0x55526f75, 0000000000 },
1592 { 0x4a7e7d65, 0000000000 },
1593 { 0xe0dae6f6, 0000000000 },
1594 { 0x4ac54a4a, 0000000000 },
1595 { 0xc8828282, 0000000000 },
1596 { 0xbf4acfc1, 0000000000 },
1597 { 0x87b04ad5, 0000000000 },
1598 { 0xb5838383, 0000000000 },
1599 { 0x4a0f85ba, 0000000000 },
1600 { 0x000ca000, 0x00000004 },
1601 { 0x000d0012, 0x00000038 },
1602 { 0x0000e8b4, 0x00000004 },
1603 { 0x000d0014, 0x00000038 },
1604 { 0x0000e8b6, 0x00000004 },
1605 { 0x000d0016, 0x00000038 },
1606 { 0x0000e854, 0x00000004 },
1607 { 0x000d0018, 0x00000038 },
1608 { 0x0000e855, 0x00000004 },
1609 { 0x000d001a, 0x00000038 },
1610 { 0x0000e856, 0x00000004 },
1611 { 0x000d001c, 0x00000038 },
1612 { 0x0000e857, 0x00000004 },
1613 { 0x000d001e, 0x00000038 },
1614 { 0x0000e824, 0x00000004 },
1615 { 0x000d0020, 0x00000038 },
1616 { 0x0000e825, 0x00000004 },
1617 { 0x000d0022, 0x00000038 },
1618 { 0x0000e830, 0x00000004 },
1619 { 0x000d0024, 0x00000038 },
1620 { 0x0000f0c0, 0x00000004 },
1621 { 0x000d0026, 0x00000038 },
1622 { 0x0000f0c1, 0x00000004 },
1623 { 0x000d0028, 0x00000038 },
1624 { 0x0000e000, 0x00000004 },
1625 { 0x000d002a, 0x00000038 },
1626 { 0x0000e000, 0x00000004 },
1627 { 0x000d002c, 0x00000038 },
1628 { 0x0000e000, 0x00000004 },
1629 { 0x000d002e, 0x00000038 },
1630 { 0x0000e000, 0x00000004 },
1631 { 0x000d0030, 0x00000038 },
1632 { 0x0000e000, 0x00000004 },
1633 { 0x000d0032, 0x00000038 },
1634 { 0x0000f180, 0x00000004 },
1635 { 0x000d0034, 0x00000038 },
1636 { 0x0000f393, 0x00000004 },
1637 { 0x000d0036, 0x00000038 },
1638 { 0x0000f38a, 0x00000004 },
1639 { 0x000d0038, 0x00000038 },
1640 { 0x0000f38e, 0x00000004 },
1641 { 0x0000e821, 0x00000004 },
1642 { 0x0140a000, 0x00000004 },
1643 { 0x00000043, 0x00000018 },
1644 { 0x00cce800, 0x00000004 },
1645 { 0x001b0001, 0x00000004 },
1646 { 0x08004800, 0x00000004 },
1647 { 0x001b0001, 0x00000004 },
1648 { 0x08004800, 0x00000004 },
1649 { 0x001b0001, 0x00000004 },
1650 { 0x08004800, 0x00000004 },
1651 { 0x0000003a, 0x00000008 },
1652 { 0x0000a000, 0000000000 },
1653 { 0x2000451d, 0x00000004 },
1654 { 0x0000e580, 0x00000004 },
1655 { 0x000ce581, 0x00000004 },
1656 { 0x08004580, 0x00000004 },
1657 { 0x000ce581, 0x00000004 },
1658 { 0x00000047, 0x00000008 },
1659 { 0x0000a000, 0000000000 },
1660 { 0x000c2000, 0x00000004 },
1661 { 0x0000e50e, 0x00000004 },
1662 { 0x00032000, 0x00000004 },
1663 { 0x00022051, 0x00000028 },
1664 { 0x00000051, 0x00000024 },
1665 { 0x0800450f, 0x00000004 },
1666 { 0x0000a04b, 0x00000008 },
1667 { 0x0000e565, 0x00000004 },
1668 { 0x0000e566, 0x00000004 },
1669 { 0x00000052, 0x00000008 },
1670 { 0x03cca5b4, 0x00000004 },
1671 { 0x05432000, 0x00000004 },
1672 { 0x00022000, 0x00000004 },
1673 { 0x4ccce05e, 0x00000030 },
1674 { 0x08274565, 0x00000004 },
1675 { 0x0000005e, 0x00000030 },
1676 { 0x08004564, 0x00000004 },
1677 { 0x0000e566, 0x00000004 },
1678 { 0x00000055, 0x00000008 },
1679 { 0x00802061, 0x00000010 },
1680 { 0x00202000, 0x00000004 },
1681 { 0x001b00ff, 0x00000004 },
1682 { 0x01000064, 0x00000010 },
1683 { 0x001f2000, 0x00000004 },
1684 { 0x001c00ff, 0x00000004 },
1685 { 0000000000, 0x0000000c },
1686 { 0x00000072, 0x00000030 },
1687 { 0x00000055, 0x00000008 },
1688 { 0x0000e576, 0x00000004 },
1689 { 0x0000e577, 0x00000004 },
1690 { 0x0000e50e, 0x00000004 },
1691 { 0x0000e50f, 0x00000004 },
1692 { 0x0140a000, 0x00000004 },
1693 { 0x00000069, 0x00000018 },
1694 { 0x00c0e5f9, 0x000000c2 },
1695 { 0x00000069, 0x00000008 },
1696 { 0x0014e50e, 0x00000004 },
1697 { 0x0040e50f, 0x00000004 },
1698 { 0x00c0006c, 0x00000008 },
1699 { 0x0000e570, 0x00000004 },
1700 { 0x0000e571, 0x00000004 },
1701 { 0x0000e572, 0x0000000c },
1702 { 0x0000a000, 0x00000004 },
1703 { 0x0140a000, 0x00000004 },
1704 { 0x0000e568, 0x00000004 },
1705 { 0x000c2000, 0x00000004 },
1706 { 0x00000076, 0x00000018 },
1707 { 0x000b0000, 0x00000004 },
1708 { 0x18c0e562, 0x00000004 },
1709 { 0x00000078, 0x00000008 },
1710 { 0x00c00077, 0x00000008 },
1711 { 0x000700c7, 0x00000004 },
1712 { 0x00000080, 0x00000038 },
1713 { 0x0000e5bb, 0x00000004 },
1714 { 0x0000e5bc, 0000000000 },
1715 { 0x0000a000, 0x00000004 },
1716 { 0x0000e821, 0x00000004 },
1717 { 0x0000e800, 0000000000 },
1718 { 0x0000e821, 0x00000004 },
1719 { 0x0000e82e, 0000000000 },
1720 { 0x02cca000, 0x00000004 },
1721 { 0x00140000, 0x00000004 },
1722 { 0x000ce1cc, 0x00000004 },
1723 { 0x050de1cd, 0x00000004 },
1724 { 0x00400000, 0x00000004 },
1725 { 0x0000008f, 0x00000018 },
1726 { 0x00c0a000, 0x00000004 },
1727 { 0x0000008c, 0x00000008 },
1728 { 0x00000091, 0x00000020 },
1729 { 0x4200e000, 0000000000 },
1730 { 0x00000098, 0x00000038 },
1731 { 0x000ca000, 0x00000004 },
1732 { 0x00140000, 0x00000004 },
1733 { 0x000c2000, 0x00000004 },
1734 { 0x00160000, 0x00000004 },
1735 { 0x700ce000, 0x00000004 },
1736 { 0x00140094, 0x00000008 },
1737 { 0x4000e000, 0000000000 },
1738 { 0x02400000, 0x00000004 },
1739 { 0x400ee000, 0x00000004 },
1740 { 0x02400000, 0x00000004 },
1741 { 0x4000e000, 0000000000 },
1742 { 0x000c2000, 0x00000004 },
1743 { 0x0240e51b, 0x00000004 },
1744 { 0x0080e50a, 0x00000005 },
1745 { 0x0080e50b, 0x00000005 },
1746 { 0x00220000, 0x00000004 },
1747 { 0x000700c7, 0x00000004 },
1748 { 0x000000a4, 0x00000038 },
1749 { 0x0080e5bd, 0x00000005 },
1750 { 0x0000e5bb, 0x00000005 },
1751 { 0x0080e5bc, 0x00000005 },
1752 { 0x00210000, 0x00000004 },
1753 { 0x02800000, 0x00000004 },
1754 { 0x00c000ab, 0x00000018 },
1755 { 0x4180e000, 0x00000040 },
1756 { 0x000000ad, 0x00000024 },
1757 { 0x01000000, 0x0000000c },
1758 { 0x0100e51d, 0x0000000c },
1759 { 0x000045bb, 0x00000004 },
1760 { 0x000080a7, 0x00000008 },
1761 { 0x0000f3ce, 0x00000004 },
1762 { 0x0140a000, 0x00000004 },
1763 { 0x00cc2000, 0x00000004 },
1764 { 0x08c053cf, 0x00000040 },
1765 { 0x00008000, 0000000000 },
1766 { 0x0000f3d2, 0x00000004 },
1767 { 0x0140a000, 0x00000004 },
1768 { 0x00cc2000, 0x00000004 },
1769 { 0x08c053d3, 0x00000040 },
1770 { 0x00008000, 0000000000 },
1771 { 0x0000f39d, 0x00000004 },
1772 { 0x0140a000, 0x00000004 },
1773 { 0x00cc2000, 0x00000004 },
1774 { 0x08c0539e, 0x00000040 },
1775 { 0x00008000, 0000000000 },
1776 { 0x03c00830, 0x00000004 },
1777 { 0x4200e000, 0000000000 },
1778 { 0x0000a000, 0x00000004 },
1779 { 0x200045e0, 0x00000004 },
1780 { 0x0000e5e1, 0000000000 },
1781 { 0x00000001, 0000000000 },
1782 { 0x000700c4, 0x00000004 },
1783 { 0x0800e394, 0000000000 },
1784 { 0000000000, 0000000000 },
1785 { 0x0000e8c4, 0x00000004 },
1786 { 0x0000e8c5, 0x00000004 },
1787 { 0x0000e8c6, 0x00000004 },
1788 { 0x0000e928, 0x00000004 },
1789 { 0x0000e929, 0x00000004 },
1790 { 0x0000e92a, 0x00000004 },
1791 { 0x000000c8, 0x00000008 },
1792 { 0x0000e928, 0x00000004 },
1793 { 0x0000e929, 0x00000004 },
1794 { 0x0000e92a, 0x00000004 },
1795 { 0x000000cf, 0x00000008 },
1796 { 0xdeadbeef, 0000000000 },
1797 { 0x00000116, 0000000000 },
1798 { 0x000700d3, 0x00000004 },
1799 { 0x080050e7, 0x00000004 },
1800 { 0x000700d4, 0x00000004 },
1801 { 0x0800401c, 0x00000004 },
1802 { 0x0000e01d, 0000000000 },
1803 { 0x02c02000, 0x00000004 },
1804 { 0x00060000, 0x00000004 },
1805 { 0x000000de, 0x00000034 },
1806 { 0x000000db, 0x00000008 },
1807 { 0x00008000, 0x00000004 },
1808 { 0xc000e000, 0000000000 },
1809 { 0x0000e1cc, 0x00000004 },
1810 { 0x0500e1cd, 0x00000004 },
1811 { 0x000ca000, 0x00000004 },
1812 { 0x000000e5, 0x00000034 },
1813 { 0x000000e1, 0x00000008 },
1814 { 0x0000a000, 0000000000 },
1815 { 0x0019e1cc, 0x00000004 },
1816 { 0x001b0001, 0x00000004 },
1817 { 0x0500a000, 0x00000004 },
1818 { 0x080041cd, 0x00000004 },
1819 { 0x000ca000, 0x00000004 },
1820 { 0x000000fb, 0x00000034 },
1821 { 0x0000004a, 0x00000008 },
1822 { 0000000000, 0000000000 },
1823 { 0000000000, 0000000000 },
1824 { 0000000000, 0000000000 },
1825 { 0000000000, 0000000000 },
1826 { 0000000000, 0000000000 },
1827 { 0000000000, 0000000000 },
1828 { 0000000000, 0000000000 },
1829 { 0000000000, 0000000000 },
1830 { 0000000000, 0000000000 },
1831 { 0x000c2000, 0x00000004 },
1832 { 0x001d0018, 0x00000004 },
1833 { 0x001a0001, 0x00000004 },
1834 { 0x000000fb, 0x00000034 },
1835 { 0x0000004a, 0x00000008 },
1836 { 0x0500a04a, 0x00000008 },
1837 { 0000000000, 0000000000 },
1838 { 0000000000, 0000000000 },
1839 { 0000000000, 0000000000 },
1840 { 0000000000, 0000000000 },
1841};
1842
1843
1844#endif
diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c
index 6f75512f591e..11c146b49211 100644
--- a/drivers/char/drm/radeon_state.c
+++ b/drivers/char/drm/radeon_state.c
@@ -1662,7 +1662,7 @@ static int radeon_cp_dispatch_texture(struct drm_device * dev,
1662 u32 height; 1662 u32 height;
1663 int i; 1663 int i;
1664 u32 texpitch, microtile; 1664 u32 texpitch, microtile;
1665 u32 offset; 1665 u32 offset, byte_offset;
1666 RING_LOCALS; 1666 RING_LOCALS;
1667 1667
1668 if (radeon_check_and_fixup_offset(dev_priv, file_priv, &tex->offset)) { 1668 if (radeon_check_and_fixup_offset(dev_priv, file_priv, &tex->offset)) {
@@ -1727,6 +1727,13 @@ static int radeon_cp_dispatch_texture(struct drm_device * dev,
1727 } else 1727 } else
1728 microtile = 0; 1728 microtile = 0;
1729 1729
1730 /* this might fail for zero-sized uploads - are those illegal? */
1731 if (!radeon_check_offset(dev_priv, tex->offset + image->height *
1732 blit_width - 1)) {
1733 DRM_ERROR("Invalid final destination offset\n");
1734 return -EINVAL;
1735 }
1736
1730 DRM_DEBUG("tex=%dx%d blit=%d\n", tex_width, tex->height, blit_width); 1737 DRM_DEBUG("tex=%dx%d blit=%d\n", tex_width, tex->height, blit_width);
1731 1738
1732 do { 1739 do {
@@ -1840,6 +1847,7 @@ static int radeon_cp_dispatch_texture(struct drm_device * dev,
1840 } 1847 }
1841 1848
1842#undef RADEON_COPY_MT 1849#undef RADEON_COPY_MT
1850 byte_offset = (image->y & ~2047) * blit_width;
1843 buf->file_priv = file_priv; 1851 buf->file_priv = file_priv;
1844 buf->used = size; 1852 buf->used = size;
1845 offset = dev_priv->gart_buffers_offset + buf->offset; 1853 offset = dev_priv->gart_buffers_offset + buf->offset;
@@ -1854,9 +1862,9 @@ static int radeon_cp_dispatch_texture(struct drm_device * dev,
1854 RADEON_DP_SRC_SOURCE_MEMORY | 1862 RADEON_DP_SRC_SOURCE_MEMORY |
1855 RADEON_GMC_CLR_CMP_CNTL_DIS | RADEON_GMC_WR_MSK_DIS); 1863 RADEON_GMC_CLR_CMP_CNTL_DIS | RADEON_GMC_WR_MSK_DIS);
1856 OUT_RING((spitch << 22) | (offset >> 10)); 1864 OUT_RING((spitch << 22) | (offset >> 10));
1857 OUT_RING((texpitch << 22) | (tex->offset >> 10)); 1865 OUT_RING((texpitch << 22) | ((tex->offset >> 10) + (byte_offset >> 10)));
1858 OUT_RING(0); 1866 OUT_RING(0);
1859 OUT_RING((image->x << 16) | image->y); 1867 OUT_RING((image->x << 16) | (image->y % 2048));
1860 OUT_RING((image->width << 16) | height); 1868 OUT_RING((image->width << 16) | height);
1861 RADEON_WAIT_UNTIL_2D_IDLE(); 1869 RADEON_WAIT_UNTIL_2D_IDLE();
1862 ADVANCE_RING(); 1870 ADVANCE_RING();
@@ -3037,6 +3045,9 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
3037 case RADEON_PARAM_FB_LOCATION: 3045 case RADEON_PARAM_FB_LOCATION:
3038 value = radeon_read_fb_location(dev_priv); 3046 value = radeon_read_fb_location(dev_priv);
3039 break; 3047 break;
3048 case RADEON_PARAM_NUM_GB_PIPES:
3049 value = dev_priv->num_gb_pipes;
3050 break;
3040 default: 3051 default:
3041 DRM_DEBUG("Invalid parameter %d\n", param->param); 3052 DRM_DEBUG("Invalid parameter %d\n", param->param);
3042 return -EINVAL; 3053 return -EINVAL;
diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c
index 2398e864c28d..a00869c650d5 100644
--- a/drivers/char/generic_nvram.c
+++ b/drivers/char/generic_nvram.c
@@ -133,7 +133,7 @@ static struct miscdevice nvram_dev = {
133 133
134int __init nvram_init(void) 134int __init nvram_init(void)
135{ 135{
136 printk(KERN_INFO "Macintosh non-volatile memory driver v%s\n", 136 printk(KERN_INFO "Generic non-volatile memory driver v%s\n",
137 NVRAM_VERSION); 137 NVRAM_VERSION);
138 return misc_register(&nvram_dev); 138 return misc_register(&nvram_dev);
139} 139}
diff --git a/drivers/char/hw_random/intel-rng.c b/drivers/char/hw_random/intel-rng.c
index 5cc651ef75eb..27fdc0866496 100644
--- a/drivers/char/hw_random/intel-rng.c
+++ b/drivers/char/hw_random/intel-rng.c
@@ -273,7 +273,7 @@ static int __init intel_rng_hw_init(void *_intel_rng_hw)
273 if (mfc != INTEL_FWH_MANUFACTURER_CODE || 273 if (mfc != INTEL_FWH_MANUFACTURER_CODE ||
274 (dvc != INTEL_FWH_DEVICE_CODE_8M && 274 (dvc != INTEL_FWH_DEVICE_CODE_8M &&
275 dvc != INTEL_FWH_DEVICE_CODE_4M)) { 275 dvc != INTEL_FWH_DEVICE_CODE_4M)) {
276 printk(KERN_ERR PFX "FWH not detected\n"); 276 printk(KERN_NOTICE PFX "FWH not detected\n");
277 return -ENODEV; 277 return -ENODEV;
278 } 278 }
279 279
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index 7f7e798c1384..d9a0a53c842d 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -677,12 +677,7 @@ static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag)
677 677
678static void k_self(struct vc_data *vc, unsigned char value, char up_flag) 678static void k_self(struct vc_data *vc, unsigned char value, char up_flag)
679{ 679{
680 unsigned int uni; 680 k_unicode(vc, conv_8bit_to_uni(value), up_flag);
681 if (kbd->kbdmode == VC_UNICODE)
682 uni = value;
683 else
684 uni = conv_8bit_to_uni(value);
685 k_unicode(vc, uni, up_flag);
686} 681}
687 682
688static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag) 683static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag)
diff --git a/drivers/char/tty_ioctl.c b/drivers/char/tty_ioctl.c
index b1a757a5ee27..8f81139d6194 100644
--- a/drivers/char/tty_ioctl.c
+++ b/drivers/char/tty_ioctl.c
@@ -981,16 +981,9 @@ EXPORT_SYMBOL_GPL(tty_perform_flush);
981int n_tty_ioctl(struct tty_struct *tty, struct file *file, 981int n_tty_ioctl(struct tty_struct *tty, struct file *file,
982 unsigned int cmd, unsigned long arg) 982 unsigned int cmd, unsigned long arg)
983{ 983{
984 struct tty_struct *real_tty;
985 unsigned long flags; 984 unsigned long flags;
986 int retval; 985 int retval;
987 986
988 if (tty->driver->type == TTY_DRIVER_TYPE_PTY &&
989 tty->driver->subtype == PTY_TYPE_MASTER)
990 real_tty = tty->link;
991 else
992 real_tty = tty;
993
994 switch (cmd) { 987 switch (cmd) {
995 case TCXONC: 988 case TCXONC:
996 retval = tty_check_change(tty); 989 retval = tty_check_change(tty);
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 4e07d1f43a43..1d41496ed2f8 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -412,7 +412,7 @@ static int cpufreq_parse_governor(char *str_governor, unsigned int *policy,
412 int ret; 412 int ret;
413 413
414 mutex_unlock(&cpufreq_governor_mutex); 414 mutex_unlock(&cpufreq_governor_mutex);
415 ret = request_module(name); 415 ret = request_module("%s", name);
416 mutex_lock(&cpufreq_governor_mutex); 416 mutex_lock(&cpufreq_governor_mutex);
417 417
418 if (ret == 0) 418 if (ret == 0)
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index fc555a90bb21..23554b676d6e 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -38,6 +38,8 @@ static void cpuidle_kick_cpus(void)
38static void cpuidle_kick_cpus(void) {} 38static void cpuidle_kick_cpus(void) {}
39#endif 39#endif
40 40
41static int __cpuidle_register_device(struct cpuidle_device *dev);
42
41/** 43/**
42 * cpuidle_idle_call - the main idle loop 44 * cpuidle_idle_call - the main idle loop
43 * 45 *
@@ -138,6 +140,12 @@ int cpuidle_enable_device(struct cpuidle_device *dev)
138 if (!dev->state_count) 140 if (!dev->state_count)
139 return -EINVAL; 141 return -EINVAL;
140 142
143 if (dev->registered == 0) {
144 ret = __cpuidle_register_device(dev);
145 if (ret)
146 return ret;
147 }
148
141 if ((ret = cpuidle_add_state_sysfs(dev))) 149 if ((ret = cpuidle_add_state_sysfs(dev)))
142 return ret; 150 return ret;
143 151
@@ -232,10 +240,13 @@ static void poll_idle_init(struct cpuidle_device *dev) {}
232#endif /* CONFIG_ARCH_HAS_CPU_RELAX */ 240#endif /* CONFIG_ARCH_HAS_CPU_RELAX */
233 241
234/** 242/**
235 * cpuidle_register_device - registers a CPU's idle PM feature 243 * __cpuidle_register_device - internal register function called before register
244 * and enable routines
236 * @dev: the cpu 245 * @dev: the cpu
246 *
247 * cpuidle_lock mutex must be held before this is called
237 */ 248 */
238int cpuidle_register_device(struct cpuidle_device *dev) 249static int __cpuidle_register_device(struct cpuidle_device *dev)
239{ 250{
240 int ret; 251 int ret;
241 struct sys_device *sys_dev = get_cpu_sysdev((unsigned long)dev->cpu); 252 struct sys_device *sys_dev = get_cpu_sysdev((unsigned long)dev->cpu);
@@ -247,18 +258,34 @@ int cpuidle_register_device(struct cpuidle_device *dev)
247 258
248 init_completion(&dev->kobj_unregister); 259 init_completion(&dev->kobj_unregister);
249 260
250 mutex_lock(&cpuidle_lock);
251
252 poll_idle_init(dev); 261 poll_idle_init(dev);
253 262
254 per_cpu(cpuidle_devices, dev->cpu) = dev; 263 per_cpu(cpuidle_devices, dev->cpu) = dev;
255 list_add(&dev->device_list, &cpuidle_detected_devices); 264 list_add(&dev->device_list, &cpuidle_detected_devices);
256 if ((ret = cpuidle_add_sysfs(sys_dev))) { 265 if ((ret = cpuidle_add_sysfs(sys_dev))) {
257 mutex_unlock(&cpuidle_lock);
258 module_put(cpuidle_curr_driver->owner); 266 module_put(cpuidle_curr_driver->owner);
259 return ret; 267 return ret;
260 } 268 }
261 269
270 dev->registered = 1;
271 return 0;
272}
273
274/**
275 * cpuidle_register_device - registers a CPU's idle PM feature
276 * @dev: the cpu
277 */
278int cpuidle_register_device(struct cpuidle_device *dev)
279{
280 int ret;
281
282 mutex_lock(&cpuidle_lock);
283
284 if ((ret = __cpuidle_register_device(dev))) {
285 mutex_unlock(&cpuidle_lock);
286 return ret;
287 }
288
262 cpuidle_enable_device(dev); 289 cpuidle_enable_device(dev);
263 cpuidle_install_idle_handler(); 290 cpuidle_install_idle_handler();
264 291
@@ -278,6 +305,9 @@ void cpuidle_unregister_device(struct cpuidle_device *dev)
278{ 305{
279 struct sys_device *sys_dev = get_cpu_sysdev((unsigned long)dev->cpu); 306 struct sys_device *sys_dev = get_cpu_sysdev((unsigned long)dev->cpu);
280 307
308 if (dev->registered == 0)
309 return;
310
281 cpuidle_pause_and_lock(); 311 cpuidle_pause_and_lock();
282 312
283 cpuidle_disable_device(dev); 313 cpuidle_disable_device(dev);
diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig
index fb4d391810b6..76f26710fc16 100644
--- a/drivers/firewire/Kconfig
+++ b/drivers/firewire/Kconfig
@@ -1,28 +1,26 @@
1comment "An alternative FireWire stack is available with EXPERIMENTAL=y" 1comment "A new alternative FireWire stack is available with EXPERIMENTAL=y"
2 depends on EXPERIMENTAL=n 2 depends on EXPERIMENTAL=n
3 3
4comment "Enable only one of the two stacks, unless you know what you are doing"
5 depends on EXPERIMENTAL
6
4config FIREWIRE 7config FIREWIRE
5 tristate "IEEE 1394 (FireWire) support - alternative stack, EXPERIMENTAL" 8 tristate "New FireWire stack, EXPERIMENTAL"
6 depends on EXPERIMENTAL 9 depends on EXPERIMENTAL
7 select CRC_ITU_T 10 select CRC_ITU_T
8 help 11 help
9 This is the "Juju" FireWire stack, a new alternative implementation 12 This is the "Juju" FireWire stack, a new alternative implementation
10 designed for robustness and simplicity. You can build either this 13 designed for robustness and simplicity. You can build either this
11 stack, or the classic stack (the ieee1394 driver, ohci1394 etc.) 14 stack, or the old stack (the ieee1394 driver, ohci1394 etc.) or both.
12 or both. Please read http://wiki.linux1394.org/JujuMigration before 15 Please read http://wiki.linux1394.org/JujuMigration before you
13 you enable the new stack. 16 enable the new stack.
14 17
15 To compile this driver as a module, say M here: the module will be 18 To compile this driver as a module, say M here: the module will be
16 called firewire-core. It functionally replaces ieee1394, raw1394, 19 called firewire-core. It functionally replaces ieee1394, raw1394,
17 and video1394. 20 and video1394.
18 21
19 NOTE:
20
21 You should only build ONE of the stacks, unless you REALLY know what
22 you are doing.
23
24config FIREWIRE_OHCI 22config FIREWIRE_OHCI
25 tristate "Support for OHCI FireWire host controllers" 23 tristate "OHCI-1394 controllers"
26 depends on PCI && FIREWIRE 24 depends on PCI && FIREWIRE
27 help 25 help
28 Enable this driver if you have a FireWire controller based 26 Enable this driver if you have a FireWire controller based
@@ -33,12 +31,12 @@ config FIREWIRE_OHCI
33 called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394 31 called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394
34 stack. 32 stack.
35 33
36 NOTE: 34 NOTE:
37 35
38 You should only build ohci1394 or firewire-ohci, but not both. 36 You should only build either firewire-ohci or the old ohci1394 driver,
39 If you nevertheless want to install both, you should configure them 37 but not both. If you nevertheless want to install both, you should
40 only as modules and blacklist the driver(s) which you don't want to 38 configure them only as modules and blacklist the driver(s) which you
41 have auto-loaded. Add either 39 don't want to have auto-loaded. Add either
42 40
43 blacklist firewire-ohci 41 blacklist firewire-ohci
44 or 42 or
@@ -60,7 +58,7 @@ config FIREWIRE_OHCI_DEBUG
60 default y 58 default y
61 59
62config FIREWIRE_SBP2 60config FIREWIRE_SBP2
63 tristate "Support for storage devices (SBP-2 protocol driver)" 61 tristate "Storage devices (SBP-2 protocol)"
64 depends on FIREWIRE && SCSI 62 depends on FIREWIRE && SCSI
65 help 63 help
66 This option enables you to use SBP-2 devices connected to a 64 This option enables you to use SBP-2 devices connected to a
diff --git a/drivers/firewire/fw-cdev.c b/drivers/firewire/fw-cdev.c
index dda14015e873..c639915fc3cb 100644
--- a/drivers/firewire/fw-cdev.c
+++ b/drivers/firewire/fw-cdev.c
@@ -205,6 +205,7 @@ fw_device_op_read(struct file *file,
205 return dequeue_event(client, buffer, count); 205 return dequeue_event(client, buffer, count);
206} 206}
207 207
208/* caller must hold card->lock so that node pointers can be dereferenced here */
208static void 209static void
209fill_bus_reset_event(struct fw_cdev_event_bus_reset *event, 210fill_bus_reset_event(struct fw_cdev_event_bus_reset *event,
210 struct client *client) 211 struct client *client)
@@ -214,7 +215,6 @@ fill_bus_reset_event(struct fw_cdev_event_bus_reset *event,
214 event->closure = client->bus_reset_closure; 215 event->closure = client->bus_reset_closure;
215 event->type = FW_CDEV_EVENT_BUS_RESET; 216 event->type = FW_CDEV_EVENT_BUS_RESET;
216 event->generation = client->device->generation; 217 event->generation = client->device->generation;
217 smp_rmb(); /* node_id must not be older than generation */
218 event->node_id = client->device->node_id; 218 event->node_id = client->device->node_id;
219 event->local_node_id = card->local_node->node_id; 219 event->local_node_id = card->local_node->node_id;
220 event->bm_node_id = 0; /* FIXME: We don't track the BM. */ 220 event->bm_node_id = 0; /* FIXME: We don't track the BM. */
@@ -274,6 +274,7 @@ static int ioctl_get_info(struct client *client, void *buffer)
274{ 274{
275 struct fw_cdev_get_info *get_info = buffer; 275 struct fw_cdev_get_info *get_info = buffer;
276 struct fw_cdev_event_bus_reset bus_reset; 276 struct fw_cdev_event_bus_reset bus_reset;
277 struct fw_card *card = client->device->card;
277 unsigned long ret = 0; 278 unsigned long ret = 0;
278 279
279 client->version = get_info->version; 280 client->version = get_info->version;
@@ -299,13 +300,17 @@ static int ioctl_get_info(struct client *client, void *buffer)
299 client->bus_reset_closure = get_info->bus_reset_closure; 300 client->bus_reset_closure = get_info->bus_reset_closure;
300 if (get_info->bus_reset != 0) { 301 if (get_info->bus_reset != 0) {
301 void __user *uptr = u64_to_uptr(get_info->bus_reset); 302 void __user *uptr = u64_to_uptr(get_info->bus_reset);
303 unsigned long flags;
302 304
305 spin_lock_irqsave(&card->lock, flags);
303 fill_bus_reset_event(&bus_reset, client); 306 fill_bus_reset_event(&bus_reset, client);
307 spin_unlock_irqrestore(&card->lock, flags);
308
304 if (copy_to_user(uptr, &bus_reset, sizeof(bus_reset))) 309 if (copy_to_user(uptr, &bus_reset, sizeof(bus_reset)))
305 return -EFAULT; 310 return -EFAULT;
306 } 311 }
307 312
308 get_info->card = client->device->card->index; 313 get_info->card = card->index;
309 314
310 return 0; 315 return 0;
311} 316}
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index 4f02c55f13e1..0b66306af479 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -265,27 +265,25 @@ static void log_irqs(u32 evt)
265 !(evt & OHCI1394_busReset)) 265 !(evt & OHCI1394_busReset))
266 return; 266 return;
267 267
268 printk(KERN_DEBUG KBUILD_MODNAME ": IRQ " 268 fw_notify("IRQ %08x%s%s%s%s%s%s%s%s%s%s%s%s%s\n", evt,
269 "%08x%s%s%s%s%s%s%s%s%s%s%s%s%s\n", 269 evt & OHCI1394_selfIDComplete ? " selfID" : "",
270 evt, 270 evt & OHCI1394_RQPkt ? " AR_req" : "",
271 evt & OHCI1394_selfIDComplete ? " selfID" : "", 271 evt & OHCI1394_RSPkt ? " AR_resp" : "",
272 evt & OHCI1394_RQPkt ? " AR_req" : "", 272 evt & OHCI1394_reqTxComplete ? " AT_req" : "",
273 evt & OHCI1394_RSPkt ? " AR_resp" : "", 273 evt & OHCI1394_respTxComplete ? " AT_resp" : "",
274 evt & OHCI1394_reqTxComplete ? " AT_req" : "", 274 evt & OHCI1394_isochRx ? " IR" : "",
275 evt & OHCI1394_respTxComplete ? " AT_resp" : "", 275 evt & OHCI1394_isochTx ? " IT" : "",
276 evt & OHCI1394_isochRx ? " IR" : "", 276 evt & OHCI1394_postedWriteErr ? " postedWriteErr" : "",
277 evt & OHCI1394_isochTx ? " IT" : "", 277 evt & OHCI1394_cycleTooLong ? " cycleTooLong" : "",
278 evt & OHCI1394_postedWriteErr ? " postedWriteErr" : "", 278 evt & OHCI1394_cycle64Seconds ? " cycle64Seconds" : "",
279 evt & OHCI1394_cycleTooLong ? " cycleTooLong" : "", 279 evt & OHCI1394_regAccessFail ? " regAccessFail" : "",
280 evt & OHCI1394_cycle64Seconds ? " cycle64Seconds" : "", 280 evt & OHCI1394_busReset ? " busReset" : "",
281 evt & OHCI1394_regAccessFail ? " regAccessFail" : "", 281 evt & ~(OHCI1394_selfIDComplete | OHCI1394_RQPkt |
282 evt & OHCI1394_busReset ? " busReset" : "", 282 OHCI1394_RSPkt | OHCI1394_reqTxComplete |
283 evt & ~(OHCI1394_selfIDComplete | OHCI1394_RQPkt | 283 OHCI1394_respTxComplete | OHCI1394_isochRx |
284 OHCI1394_RSPkt | OHCI1394_reqTxComplete | 284 OHCI1394_isochTx | OHCI1394_postedWriteErr |
285 OHCI1394_respTxComplete | OHCI1394_isochRx | 285 OHCI1394_cycleTooLong | OHCI1394_cycle64Seconds |
286 OHCI1394_isochTx | OHCI1394_postedWriteErr | 286 OHCI1394_regAccessFail | OHCI1394_busReset)
287 OHCI1394_cycleTooLong | OHCI1394_cycle64Seconds |
288 OHCI1394_regAccessFail | OHCI1394_busReset)
289 ? " ?" : ""); 287 ? " ?" : "");
290} 288}
291 289
@@ -308,23 +306,22 @@ static void log_selfids(int node_id, int generation, int self_id_count, u32 *s)
308 if (likely(!(param_debug & OHCI_PARAM_DEBUG_SELFIDS))) 306 if (likely(!(param_debug & OHCI_PARAM_DEBUG_SELFIDS)))
309 return; 307 return;
310 308
311 printk(KERN_DEBUG KBUILD_MODNAME ": %d selfIDs, generation %d, " 309 fw_notify("%d selfIDs, generation %d, local node ID %04x\n",
312 "local node ID %04x\n", self_id_count, generation, node_id); 310 self_id_count, generation, node_id);
313 311
314 for (; self_id_count--; ++s) 312 for (; self_id_count--; ++s)
315 if ((*s & 1 << 23) == 0) 313 if ((*s & 1 << 23) == 0)
316 printk(KERN_DEBUG "selfID 0: %08x, phy %d [%c%c%c] " 314 fw_notify("selfID 0: %08x, phy %d [%c%c%c] "
317 "%s gc=%d %s %s%s%s\n", 315 "%s gc=%d %s %s%s%s\n",
318 *s, *s >> 24 & 63, _p(s, 6), _p(s, 4), _p(s, 2), 316 *s, *s >> 24 & 63, _p(s, 6), _p(s, 4), _p(s, 2),
319 speed[*s >> 14 & 3], *s >> 16 & 63, 317 speed[*s >> 14 & 3], *s >> 16 & 63,
320 power[*s >> 8 & 7], *s >> 22 & 1 ? "L" : "", 318 power[*s >> 8 & 7], *s >> 22 & 1 ? "L" : "",
321 *s >> 11 & 1 ? "c" : "", *s & 2 ? "i" : ""); 319 *s >> 11 & 1 ? "c" : "", *s & 2 ? "i" : "");
322 else 320 else
323 printk(KERN_DEBUG "selfID n: %08x, phy %d " 321 fw_notify("selfID n: %08x, phy %d [%c%c%c%c%c%c%c%c]\n",
324 "[%c%c%c%c%c%c%c%c]\n", 322 *s, *s >> 24 & 63,
325 *s, *s >> 24 & 63, 323 _p(s, 16), _p(s, 14), _p(s, 12), _p(s, 10),
326 _p(s, 16), _p(s, 14), _p(s, 12), _p(s, 10), 324 _p(s, 8), _p(s, 6), _p(s, 4), _p(s, 2));
327 _p(s, 8), _p(s, 6), _p(s, 4), _p(s, 2));
328} 325}
329 326
330static const char *evts[] = { 327static const char *evts[] = {
@@ -373,15 +370,14 @@ static void log_ar_at_event(char dir, int speed, u32 *header, int evt)
373 evt = 0x1f; 370 evt = 0x1f;
374 371
375 if (evt == OHCI1394_evt_bus_reset) { 372 if (evt == OHCI1394_evt_bus_reset) {
376 printk(KERN_DEBUG "A%c evt_bus_reset, generation %d\n", 373 fw_notify("A%c evt_bus_reset, generation %d\n",
377 dir, (header[2] >> 16) & 0xff); 374 dir, (header[2] >> 16) & 0xff);
378 return; 375 return;
379 } 376 }
380 377
381 if (header[0] == ~header[1]) { 378 if (header[0] == ~header[1]) {
382 printk(KERN_DEBUG "A%c %s, %s, %08x\n", 379 fw_notify("A%c %s, %s, %08x\n",
383 dir, evts[evt], phys[header[0] >> 30 & 0x3], 380 dir, evts[evt], phys[header[0] >> 30 & 0x3], header[0]);
384 header[0]);
385 return; 381 return;
386 } 382 }
387 383
@@ -400,24 +396,23 @@ static void log_ar_at_event(char dir, int speed, u32 *header, int evt)
400 396
401 switch (tcode) { 397 switch (tcode) {
402 case 0xe: case 0xa: 398 case 0xe: case 0xa:
403 printk(KERN_DEBUG "A%c %s, %s\n", 399 fw_notify("A%c %s, %s\n", dir, evts[evt], tcodes[tcode]);
404 dir, evts[evt], tcodes[tcode]);
405 break; 400 break;
406 case 0x0: case 0x1: case 0x4: case 0x5: case 0x9: 401 case 0x0: case 0x1: case 0x4: case 0x5: case 0x9:
407 printk(KERN_DEBUG "A%c spd %x tl %02x, " 402 fw_notify("A%c spd %x tl %02x, "
408 "%04x -> %04x, %s, " 403 "%04x -> %04x, %s, "
409 "%s, %04x%08x%s\n", 404 "%s, %04x%08x%s\n",
410 dir, speed, header[0] >> 10 & 0x3f, 405 dir, speed, header[0] >> 10 & 0x3f,
411 header[1] >> 16, header[0] >> 16, evts[evt], 406 header[1] >> 16, header[0] >> 16, evts[evt],
412 tcodes[tcode], header[1] & 0xffff, header[2], specific); 407 tcodes[tcode], header[1] & 0xffff, header[2], specific);
413 break; 408 break;
414 default: 409 default:
415 printk(KERN_DEBUG "A%c spd %x tl %02x, " 410 fw_notify("A%c spd %x tl %02x, "
416 "%04x -> %04x, %s, " 411 "%04x -> %04x, %s, "
417 "%s%s\n", 412 "%s%s\n",
418 dir, speed, header[0] >> 10 & 0x3f, 413 dir, speed, header[0] >> 10 & 0x3f,
419 header[1] >> 16, header[0] >> 16, evts[evt], 414 header[1] >> 16, header[0] >> 16, evts[evt],
420 tcodes[tcode], specific); 415 tcodes[tcode], specific);
421 } 416 }
422} 417}
423 418
@@ -548,6 +543,11 @@ static __le32 *handle_ar_packet(struct ar_context *ctx, __le32 *buffer)
548 p.header_length = 12; 543 p.header_length = 12;
549 p.payload_length = 0; 544 p.payload_length = 0;
550 break; 545 break;
546
547 default:
548 /* FIXME: Stop context, discard everything, and restart? */
549 p.header_length = 0;
550 p.payload_length = 0;
551 } 551 }
552 552
553 p.payload = (void *) buffer + p.header_length; 553 p.payload = (void *) buffer + p.header_length;
@@ -1468,6 +1468,9 @@ static int ohci_enable(struct fw_card *card, u32 *config_rom, size_t length)
1468 reg_write(ohci, OHCI1394_HCControlClear, 1468 reg_write(ohci, OHCI1394_HCControlClear,
1469 OHCI1394_HCControl_noByteSwapData); 1469 OHCI1394_HCControl_noByteSwapData);
1470 1470
1471 reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->self_id_bus);
1472 reg_write(ohci, OHCI1394_LinkControlClear,
1473 OHCI1394_LinkControl_rcvPhyPkt);
1471 reg_write(ohci, OHCI1394_LinkControlSet, 1474 reg_write(ohci, OHCI1394_LinkControlSet,
1472 OHCI1394_LinkControl_rcvSelfID | 1475 OHCI1394_LinkControl_rcvSelfID |
1473 OHCI1394_LinkControl_cycleTimerEnable | 1476 OHCI1394_LinkControl_cycleTimerEnable |
@@ -1481,7 +1484,6 @@ static int ohci_enable(struct fw_card *card, u32 *config_rom, size_t length)
1481 ar_context_run(&ohci->ar_request_ctx); 1484 ar_context_run(&ohci->ar_request_ctx);
1482 ar_context_run(&ohci->ar_response_ctx); 1485 ar_context_run(&ohci->ar_response_ctx);
1483 1486
1484 reg_write(ohci, OHCI1394_SelfIDBuffer, ohci->self_id_bus);
1485 reg_write(ohci, OHCI1394_PhyUpperBound, 0x00010000); 1487 reg_write(ohci, OHCI1394_PhyUpperBound, 0x00010000);
1486 reg_write(ohci, OHCI1394_IntEventClear, ~0); 1488 reg_write(ohci, OHCI1394_IntEventClear, ~0);
1487 reg_write(ohci, OHCI1394_IntMaskClear, ~0); 1489 reg_write(ohci, OHCI1394_IntMaskClear, ~0);
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c
index b2458bb8e9ca..227d2e036cd8 100644
--- a/drivers/firewire/fw-sbp2.c
+++ b/drivers/firewire/fw-sbp2.c
@@ -1051,7 +1051,8 @@ static int sbp2_scan_unit_dir(struct sbp2_target *tgt, u32 *directory,
1051 break; 1051 break;
1052 1052
1053 case SBP2_CSR_LOGICAL_UNIT_DIRECTORY: 1053 case SBP2_CSR_LOGICAL_UNIT_DIRECTORY:
1054 if (sbp2_scan_logical_unit_dir(tgt, ci.p + value) < 0) 1054 /* Adjust for the increment in the iterator */
1055 if (sbp2_scan_logical_unit_dir(tgt, ci.p - 1 + value) < 0)
1055 return -ENOMEM; 1056 return -ENOMEM;
1056 break; 1057 break;
1057 } 1058 }
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index ccf0e4cf108f..03ae8a77c479 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -20,6 +20,7 @@
20 20
21#include <linux/completion.h> 21#include <linux/completion.h>
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/kref.h>
23#include <linux/module.h> 24#include <linux/module.h>
24#include <linux/init.h> 25#include <linux/init.h>
25#include <linux/interrupt.h> 26#include <linux/interrupt.h>
@@ -297,37 +298,55 @@ EXPORT_SYMBOL(fw_send_request);
297struct fw_phy_packet { 298struct fw_phy_packet {
298 struct fw_packet packet; 299 struct fw_packet packet;
299 struct completion done; 300 struct completion done;
301 struct kref kref;
300}; 302};
301 303
302static void 304static void phy_packet_release(struct kref *kref)
303transmit_phy_packet_callback(struct fw_packet *packet, 305{
304 struct fw_card *card, int status) 306 struct fw_phy_packet *p =
307 container_of(kref, struct fw_phy_packet, kref);
308 kfree(p);
309}
310
311static void transmit_phy_packet_callback(struct fw_packet *packet,
312 struct fw_card *card, int status)
305{ 313{
306 struct fw_phy_packet *p = 314 struct fw_phy_packet *p =
307 container_of(packet, struct fw_phy_packet, packet); 315 container_of(packet, struct fw_phy_packet, packet);
308 316
309 complete(&p->done); 317 complete(&p->done);
318 kref_put(&p->kref, phy_packet_release);
310} 319}
311 320
312void fw_send_phy_config(struct fw_card *card, 321void fw_send_phy_config(struct fw_card *card,
313 int node_id, int generation, int gap_count) 322 int node_id, int generation, int gap_count)
314{ 323{
315 struct fw_phy_packet p; 324 struct fw_phy_packet *p;
325 long timeout = DIV_ROUND_UP(HZ, 10);
316 u32 data = PHY_IDENTIFIER(PHY_PACKET_CONFIG) | 326 u32 data = PHY_IDENTIFIER(PHY_PACKET_CONFIG) |
317 PHY_CONFIG_ROOT_ID(node_id) | 327 PHY_CONFIG_ROOT_ID(node_id) |
318 PHY_CONFIG_GAP_COUNT(gap_count); 328 PHY_CONFIG_GAP_COUNT(gap_count);
319 329
320 p.packet.header[0] = data; 330 p = kmalloc(sizeof(*p), GFP_KERNEL);
321 p.packet.header[1] = ~data; 331 if (p == NULL)
322 p.packet.header_length = 8; 332 return;
323 p.packet.payload_length = 0; 333
324 p.packet.speed = SCODE_100; 334 p->packet.header[0] = data;
325 p.packet.generation = generation; 335 p->packet.header[1] = ~data;
326 p.packet.callback = transmit_phy_packet_callback; 336 p->packet.header_length = 8;
327 init_completion(&p.done); 337 p->packet.payload_length = 0;
328 338 p->packet.speed = SCODE_100;
329 card->driver->send_request(card, &p.packet); 339 p->packet.generation = generation;
330 wait_for_completion(&p.done); 340 p->packet.callback = transmit_phy_packet_callback;
341 init_completion(&p->done);
342 kref_set(&p->kref, 2);
343
344 card->driver->send_request(card, &p->packet);
345 timeout = wait_for_completion_timeout(&p->done, timeout);
346 kref_put(&p->kref, phy_packet_release);
347
348 /* will leak p if the callback is never executed */
349 WARN_ON(timeout == 0);
331} 350}
332 351
333void fw_flush_transactions(struct fw_card *card) 352void fw_flush_transactions(struct fw_card *card)
@@ -572,7 +591,8 @@ allocate_request(struct fw_packet *p)
572 break; 591 break;
573 592
574 default: 593 default:
575 BUG(); 594 fw_error("ERROR - corrupt request received - %08x %08x %08x\n",
595 p->header[0], p->header[1], p->header[2]);
576 return NULL; 596 return NULL;
577 } 597 }
578 598
diff --git a/drivers/hwmon/abituguru3.c b/drivers/hwmon/abituguru3.c
index ed33fddc4dee..f00f497b9ca9 100644
--- a/drivers/hwmon/abituguru3.c
+++ b/drivers/hwmon/abituguru3.c
@@ -30,6 +30,7 @@
30#include <linux/platform_device.h> 30#include <linux/platform_device.h>
31#include <linux/hwmon.h> 31#include <linux/hwmon.h>
32#include <linux/hwmon-sysfs.h> 32#include <linux/hwmon-sysfs.h>
33#include <linux/dmi.h>
33#include <asm/io.h> 34#include <asm/io.h>
34 35
35/* uGuru3 bank addresses */ 36/* uGuru3 bank addresses */
@@ -323,7 +324,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
323 { "AUX1 Fan", 36, 2, 60, 1, 0 }, 324 { "AUX1 Fan", 36, 2, 60, 1, 0 },
324 { NULL, 0, 0, 0, 0, 0 } } 325 { NULL, 0, 0, 0, 0, 0 } }
325 }, 326 },
326 { 0x0013, "unknown", { 327 { 0x0013, "Abit AW8D", {
327 { "CPU Core", 0, 0, 10, 1, 0 }, 328 { "CPU Core", 0, 0, 10, 1, 0 },
328 { "DDR", 1, 0, 10, 1, 0 }, 329 { "DDR", 1, 0, 10, 1, 0 },
329 { "DDR VTT", 2, 0, 10, 1, 0 }, 330 { "DDR VTT", 2, 0, 10, 1, 0 },
@@ -349,6 +350,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
349 { "AUX2 Fan", 36, 2, 60, 1, 0 }, 350 { "AUX2 Fan", 36, 2, 60, 1, 0 },
350 { "AUX3 Fan", 37, 2, 60, 1, 0 }, 351 { "AUX3 Fan", 37, 2, 60, 1, 0 },
351 { "AUX4 Fan", 38, 2, 60, 1, 0 }, 352 { "AUX4 Fan", 38, 2, 60, 1, 0 },
353 { "AUX5 Fan", 39, 2, 60, 1, 0 },
352 { NULL, 0, 0, 0, 0, 0 } } 354 { NULL, 0, 0, 0, 0, 0 } }
353 }, 355 },
354 { 0x0014, "Abit AB9 Pro", { 356 { 0x0014, "Abit AB9 Pro", {
@@ -1111,11 +1113,12 @@ static int __init abituguru3_detect(void)
1111{ 1113{
1112 /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 or 1114 /* See if there is an uguru3 there. An idle uGuru3 will hold 0x00 or
1113 0x08 at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05 1115 0x08 at DATA and 0xAC at CMD. Sometimes the uGuru3 will hold 0x05
1114 at CMD instead, why is unknown. So we test for 0x05 too. */ 1116 or 0x55 at CMD instead, why is unknown. */
1115 u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA); 1117 u8 data_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_DATA);
1116 u8 cmd_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_CMD); 1118 u8 cmd_val = inb_p(ABIT_UGURU3_BASE + ABIT_UGURU3_CMD);
1117 if (((data_val == 0x00) || (data_val == 0x08)) && 1119 if (((data_val == 0x00) || (data_val == 0x08)) &&
1118 ((cmd_val == 0xAC) || (cmd_val == 0x05))) 1120 ((cmd_val == 0xAC) || (cmd_val == 0x05) ||
1121 (cmd_val == 0x55)))
1119 return ABIT_UGURU3_BASE; 1122 return ABIT_UGURU3_BASE;
1120 1123
1121 ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = " 1124 ABIT_UGURU3_DEBUG("no Abit uGuru3 found, data = 0x%02X, cmd = "
@@ -1138,6 +1141,15 @@ static int __init abituguru3_init(void)
1138 int address, err; 1141 int address, err;
1139 struct resource res = { .flags = IORESOURCE_IO }; 1142 struct resource res = { .flags = IORESOURCE_IO };
1140 1143
1144#ifdef CONFIG_DMI
1145 const char *board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR);
1146
1147 /* safety check, refuse to load on non Abit motherboards */
1148 if (!force && (!board_vendor ||
1149 strcmp(board_vendor, "http://www.abit.com.tw/")))
1150 return -ENODEV;
1151#endif
1152
1141 address = abituguru3_detect(); 1153 address = abituguru3_detect();
1142 if (address < 0) 1154 if (address < 0)
1143 return address; 1155 return address;
diff --git a/drivers/hwmon/adt7473.c b/drivers/hwmon/adt7473.c
index c1009d6f9796..93dbf5e7ff8a 100644
--- a/drivers/hwmon/adt7473.c
+++ b/drivers/hwmon/adt7473.c
@@ -309,6 +309,9 @@ no_sensor_update:
309 ADT7473_REG_PWM_BHVR(i)); 309 ADT7473_REG_PWM_BHVR(i));
310 } 310 }
311 311
312 i = i2c_smbus_read_byte_data(client, ADT7473_REG_CFG4);
313 data->max_duty_at_overheat = !!(i & ADT7473_CFG4_MAX_DUTY_AT_OVT);
314
312 data->limits_last_updated = local_jiffies; 315 data->limits_last_updated = local_jiffies;
313 data->limits_valid = 1; 316 data->limits_valid = 1;
314 317
diff --git a/drivers/hwmon/lm75.c b/drivers/hwmon/lm75.c
index fa7696905154..de698dc73020 100644
--- a/drivers/hwmon/lm75.c
+++ b/drivers/hwmon/lm75.c
@@ -251,10 +251,13 @@ static int lm75_detach_client(struct i2c_client *client)
251 the SMBus standard. */ 251 the SMBus standard. */
252static int lm75_read_value(struct i2c_client *client, u8 reg) 252static int lm75_read_value(struct i2c_client *client, u8 reg)
253{ 253{
254 int value;
255
254 if (reg == LM75_REG_CONF) 256 if (reg == LM75_REG_CONF)
255 return i2c_smbus_read_byte_data(client, reg); 257 return i2c_smbus_read_byte_data(client, reg);
256 else 258
257 return swab16(i2c_smbus_read_word_data(client, reg)); 259 value = i2c_smbus_read_word_data(client, reg);
260 return (value < 0) ? value : swab16(value);
258} 261}
259 262
260static int lm75_write_value(struct i2c_client *client, u8 reg, u16 value) 263static int lm75_write_value(struct i2c_client *client, u8 reg, u16 value)
@@ -287,9 +290,16 @@ static struct lm75_data *lm75_update_device(struct device *dev)
287 int i; 290 int i;
288 dev_dbg(&client->dev, "Starting lm75 update\n"); 291 dev_dbg(&client->dev, "Starting lm75 update\n");
289 292
290 for (i = 0; i < ARRAY_SIZE(data->temp); i++) 293 for (i = 0; i < ARRAY_SIZE(data->temp); i++) {
291 data->temp[i] = lm75_read_value(client, 294 int status;
292 LM75_REG_TEMP[i]); 295
296 status = lm75_read_value(client, LM75_REG_TEMP[i]);
297 if (status < 0)
298 dev_dbg(&client->dev, "reg %d, err %d\n",
299 LM75_REG_TEMP[i], status);
300 else
301 data->temp[i] = status;
302 }
293 data->last_updated = jiffies; 303 data->last_updated = jiffies;
294 data->valid = 1; 304 data->valid = 1;
295 } 305 }
diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c
index 182fe6a5605f..ee5eca1c1921 100644
--- a/drivers/hwmon/lm85.c
+++ b/drivers/hwmon/lm85.c
@@ -192,23 +192,20 @@ static int RANGE_TO_REG( int range )
192{ 192{
193 int i; 193 int i;
194 194
195 if ( range < lm85_range_map[0] ) { 195 if (range >= lm85_range_map[15])
196 return 0 ;
197 } else if ( range > lm85_range_map[15] ) {
198 return 15 ; 196 return 15 ;
199 } else { /* find closest match */ 197
200 for ( i = 14 ; i >= 0 ; --i ) { 198 /* Find the closest match */
201 if ( range > lm85_range_map[i] ) { /* range bracketed */ 199 for (i = 14; i >= 0; --i) {
202 if ((lm85_range_map[i+1] - range) < 200 if (range >= lm85_range_map[i]) {
203 (range - lm85_range_map[i])) { 201 if ((lm85_range_map[i + 1] - range) <
204 i++; 202 (range - lm85_range_map[i]))
205 break; 203 return i + 1;
206 } 204 return i;
207 break;
208 }
209 } 205 }
210 } 206 }
211 return( i & 0x0f ); 207
208 return 0;
212} 209}
213#define RANGE_FROM_REG(val) (lm85_range_map[(val)&0x0f]) 210#define RANGE_FROM_REG(val) (lm85_range_map[(val)&0x0f])
214 211
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index b4f3aefa12b6..8e07de23d220 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -823,13 +823,6 @@ config BLK_DEV_IDE_RAPIDE
823 Say Y here if you want to support the Yellowstone RapIDE controller 823 Say Y here if you want to support the Yellowstone RapIDE controller
824 manufactured for use with Acorn computers. 824 manufactured for use with Acorn computers.
825 825
826config BLK_DEV_IDE_BAST
827 tristate "Simtec BAST / Thorcom VR1000 IDE support"
828 depends on ARM && (ARCH_BAST || MACH_VR1000)
829 help
830 Say Y here if you want to support the onboard IDE channels on the
831 Simtec BAST or the Thorcom VR1000
832
833config IDE_H8300 826config IDE_H8300
834 tristate "H8300 IDE support" 827 tristate "H8300 IDE support"
835 depends on H8300 828 depends on H8300
@@ -1028,6 +1021,7 @@ endif
1028 1021
1029config BLK_DEV_HD_ONLY 1022config BLK_DEV_HD_ONLY
1030 bool "Old hard disk (MFM/RLL/IDE) driver" 1023 bool "Old hard disk (MFM/RLL/IDE) driver"
1024 depends on !ARM || ARCH_RPC || ARCH_SHARK || BROKEN
1031 help 1025 help
1032 There are two drivers for MFM/RLL/IDE hard disks. Most people use 1026 There are two drivers for MFM/RLL/IDE hard disks. Most people use
1033 the newer enhanced driver, but this old one is still around for two 1027 the newer enhanced driver, but this old one is still around for two
diff --git a/drivers/ide/arm/Makefile b/drivers/ide/arm/Makefile
index 936e7b0237f5..5bc26053afa6 100644
--- a/drivers/ide/arm/Makefile
+++ b/drivers/ide/arm/Makefile
@@ -1,7 +1,6 @@
1 1
2obj-$(CONFIG_BLK_DEV_IDE_ICSIDE) += icside.o 2obj-$(CONFIG_BLK_DEV_IDE_ICSIDE) += icside.o
3obj-$(CONFIG_BLK_DEV_IDE_RAPIDE) += rapide.o 3obj-$(CONFIG_BLK_DEV_IDE_RAPIDE) += rapide.o
4obj-$(CONFIG_BLK_DEV_IDE_BAST) += bast-ide.o
5obj-$(CONFIG_BLK_DEV_PALMCHIP_BK3710) += palm_bk3710.o 4obj-$(CONFIG_BLK_DEV_PALMCHIP_BK3710) += palm_bk3710.o
6 5
7ifeq ($(CONFIG_IDE_ARM), m) 6ifeq ($(CONFIG_IDE_ARM), m)
diff --git a/drivers/ide/arm/bast-ide.c b/drivers/ide/arm/bast-ide.c
deleted file mode 100644
index 713cef20622e..000000000000
--- a/drivers/ide/arm/bast-ide.c
+++ /dev/null
@@ -1,89 +0,0 @@
1/*
2 * Copyright (c) 2003-2004 Simtec Electronics
3 * Ben Dooks <ben@simtec.co.uk>
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 version 2 as
7 * published by the Free Software Foundation.
8 *
9*/
10
11#include <linux/module.h>
12#include <linux/errno.h>
13#include <linux/ide.h>
14#include <linux/init.h>
15
16#include <asm/mach-types.h>
17
18#include <asm/io.h>
19#include <asm/irq.h>
20#include <asm/arch/map.h>
21#include <asm/arch/bast-map.h>
22#include <asm/arch/bast-irq.h>
23
24#define DRV_NAME "bast-ide"
25
26static int __init bastide_register(unsigned int base, unsigned int aux, int irq)
27{
28 ide_hwif_t *hwif;
29 hw_regs_t hw;
30 int i;
31 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
32
33 memset(&hw, 0, sizeof(hw));
34
35 base += BAST_IDE_CS;
36 aux += BAST_IDE_CS;
37
38 for (i = 0; i <= 7; i++) {
39 hw.io_ports_array[i] = (unsigned long)base;
40 base += 0x20;
41 }
42
43 hw.io_ports.ctl_addr = aux + (6 * 0x20);
44 hw.irq = irq;
45
46 hwif = ide_find_port();
47 if (hwif == NULL)
48 goto out;
49
50 i = hwif->index;
51
52 ide_init_port_data(hwif, i);
53 ide_init_port_hw(hwif, &hw);
54 hwif->port_ops = NULL;
55
56 idx[0] = i;
57
58 ide_device_add(idx, NULL);
59out:
60 return 0;
61}
62
63static int __init bastide_init(void)
64{
65 unsigned long base = BAST_VA_IDEPRI + BAST_IDE_CS;
66
67 /* we can treat the VR1000 and the BAST the same */
68
69 if (!(machine_is_bast() || machine_is_vr1000()))
70 return 0;
71
72 printk("BAST: IDE driver, (c) 2003-2004 Simtec Electronics\n");
73
74 if (!request_mem_region(base, 0x400000, DRV_NAME)) {
75 printk(KERN_ERR "%s: resources busy\n", DRV_NAME);
76 return -EBUSY;
77 }
78
79 bastide_register(BAST_VA_IDEPRI, BAST_VA_IDEPRIAUX, IRQ_IDE0);
80 bastide_register(BAST_VA_IDESEC, BAST_VA_IDESECAUX, IRQ_IDE1);
81
82 return 0;
83}
84
85module_init(bastide_init);
86
87MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
88MODULE_LICENSE("GPL");
89MODULE_DESCRIPTION("Simtec BAST / Thorcom VR1000 IDE driver");
diff --git a/drivers/ide/arm/ide_arm.c b/drivers/ide/arm/ide_arm.c
index 4263ffd4ab20..2f311da4c963 100644
--- a/drivers/ide/arm/ide_arm.c
+++ b/drivers/ide/arm/ide_arm.c
@@ -49,6 +49,7 @@ static int __init ide_arm_init(void)
49 memset(&hw, 0, sizeof(hw)); 49 memset(&hw, 0, sizeof(hw));
50 ide_std_init_ports(&hw, base, ctl); 50 ide_std_init_ports(&hw, base, ctl);
51 hw.irq = IDE_ARM_IRQ; 51 hw.irq = IDE_ARM_IRQ;
52 hw.chipset = ide_generic;
52 53
53 hwif = ide_find_port(); 54 hwif = ide_find_port();
54 if (hwif) { 55 if (hwif) {
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c
index 96378ebfb31f..cc24803fadff 100644
--- a/drivers/ide/arm/palm_bk3710.c
+++ b/drivers/ide/arm/palm_bk3710.c
@@ -353,8 +353,8 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
353 struct clk *clkp; 353 struct clk *clkp;
354 struct resource *mem, *irq; 354 struct resource *mem, *irq;
355 ide_hwif_t *hwif; 355 ide_hwif_t *hwif;
356 void __iomem *base; 356 unsigned long base;
357 int pribase, i; 357 int i;
358 hw_regs_t hw; 358 hw_regs_t hw;
359 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; 359 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
360 360
@@ -374,22 +374,27 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
374 printk(KERN_ERR "failed to get memory region resource\n"); 374 printk(KERN_ERR "failed to get memory region resource\n");
375 return -ENODEV; 375 return -ENODEV;
376 } 376 }
377
377 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 378 irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
378 if (irq == NULL) { 379 if (irq == NULL) {
379 printk(KERN_ERR "failed to get IRQ resource\n"); 380 printk(KERN_ERR "failed to get IRQ resource\n");
380 return -ENODEV; 381 return -ENODEV;
381 } 382 }
382 383
383 base = (void *)mem->start; 384 if (request_mem_region(mem->start, mem->end - mem->start + 1,
385 "palm_bk3710") == NULL) {
386 printk(KERN_ERR "failed to request memory region\n");
387 return -EBUSY;
388 }
389
390 base = IO_ADDRESS(mem->start);
384 391
385 /* Configure the Palm Chip controller */ 392 /* Configure the Palm Chip controller */
386 palm_bk3710_chipinit(base); 393 palm_bk3710_chipinit((void __iomem *)base);
387 394
388 pribase = mem->start + IDE_PALM_ATA_PRI_REG_OFFSET;
389 for (i = 0; i < IDE_NR_PORTS - 2; i++) 395 for (i = 0; i < IDE_NR_PORTS - 2; i++)
390 hw.io_ports_array[i] = pribase + i; 396 hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i;
391 hw.io_ports.ctl_addr = mem->start + 397 hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET;
392 IDE_PALM_ATA_PRI_CTL_OFFSET;
393 hw.irq = irq->start; 398 hw.irq = irq->start;
394 hw.chipset = ide_palm3710; 399 hw.chipset = ide_palm3710;
395 400
@@ -409,9 +414,6 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
409 414
410 ide_device_add(idx, &palm_bk3710_port_info); 415 ide_device_add(idx, &palm_bk3710_port_info);
411 416
412 if (!hwif->present)
413 goto out;
414
415 return 0; 417 return 0;
416out: 418out:
417 printk(KERN_WARNING "Palm Chip BK3710 IDE Register Fail\n"); 419 printk(KERN_WARNING "Palm Chip BK3710 IDE Register Fail\n");
@@ -437,4 +439,3 @@ static int __init palm_bk3710_init(void)
437 439
438module_init(palm_bk3710_init); 440module_init(palm_bk3710_init);
439MODULE_LICENSE("GPL"); 441MODULE_LICENSE("GPL");
440
diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
index a6073e248f45..2d92214096ab 100644
--- a/drivers/ide/ide-generic.c
+++ b/drivers/ide/ide-generic.c
@@ -22,6 +22,10 @@
22 22
23#define DRV_NAME "ide_generic" 23#define DRV_NAME "ide_generic"
24 24
25static int probe_mask = 0x03;
26module_param(probe_mask, int, 0);
27MODULE_PARM_DESC(probe_mask, "probe mask for legacy ISA IDE ports");
28
25static ssize_t store_add(struct class *cls, const char *buf, size_t n) 29static ssize_t store_add(struct class *cls, const char *buf, size_t n)
26{ 30{
27 ide_hwif_t *hwif; 31 ide_hwif_t *hwif;
@@ -89,6 +93,9 @@ static int __init ide_generic_init(void)
89 u8 idx[MAX_HWIFS]; 93 u8 idx[MAX_HWIFS];
90 int i; 94 int i;
91 95
96 printk(KERN_INFO DRV_NAME ": please use \"probe_mask=0x3f\" module "
97 "parameter for probing all legacy ISA IDE ports\n");
98
92 for (i = 0; i < MAX_HWIFS; i++) { 99 for (i = 0; i < MAX_HWIFS; i++) {
93 ide_hwif_t *hwif; 100 ide_hwif_t *hwif;
94 unsigned long io_addr = ide_default_io_base(i); 101 unsigned long io_addr = ide_default_io_base(i);
@@ -96,7 +103,7 @@ static int __init ide_generic_init(void)
96 103
97 idx[i] = 0xff; 104 idx[i] = 0xff;
98 105
99 if (io_addr) { 106 if ((probe_mask & (1 << i)) && io_addr) {
100 if (!request_region(io_addr, 8, DRV_NAME)) { 107 if (!request_region(io_addr, 8, DRV_NAME)) {
101 printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX " 108 printk(KERN_ERR "%s: I/O resource 0x%lX-0x%lX "
102 "not free.\n", 109 "not free.\n",
@@ -125,6 +132,7 @@ static int __init ide_generic_init(void)
125 memset(&hw, 0, sizeof(hw)); 132 memset(&hw, 0, sizeof(hw));
126 ide_std_init_ports(&hw, io_addr, io_addr + 0x206); 133 ide_std_init_ports(&hw, io_addr, io_addr + 0x206);
127 hw.irq = ide_default_irq(io_addr); 134 hw.irq = ide_default_irq(io_addr);
135 hw.chipset = ide_generic;
128 ide_init_port_hw(hwif, &hw); 136 ide_init_port_hw(hwif, &hw);
129 137
130 idx[i] = i; 138 idx[i] = i;
diff --git a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c
index 6a8953f68e9f..adbd01784162 100644
--- a/drivers/ide/ide-pnp.c
+++ b/drivers/ide/ide-pnp.c
@@ -55,6 +55,7 @@ static int idepnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
55 memset(&hw, 0, sizeof(hw)); 55 memset(&hw, 0, sizeof(hw));
56 ide_std_init_ports(&hw, base, ctl); 56 ide_std_init_ports(&hw, base, ctl);
57 hw.irq = pnp_irq(dev, 0); 57 hw.irq = pnp_irq(dev, 0);
58 hw.chipset = ide_generic;
58 59
59 hwif = ide_find_port(); 60 hwif = ide_find_port();
60 if (hwif) { 61 if (hwif) {
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 655ec7ef568a..380fa0c8cc84 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -1333,8 +1333,7 @@ static void ide_port_init_devices(ide_hwif_t *hwif)
1333static void ide_init_port(ide_hwif_t *hwif, unsigned int port, 1333static void ide_init_port(ide_hwif_t *hwif, unsigned int port,
1334 const struct ide_port_info *d) 1334 const struct ide_port_info *d)
1335{ 1335{
1336 if (d->chipset != ide_etrax100) 1336 hwif->channel = port;
1337 hwif->channel = port;
1338 1337
1339 if (d->chipset) 1338 if (d->chipset)
1340 hwif->chipset = d->chipset; 1339 hwif->chipset = d->chipset;
@@ -1519,7 +1518,7 @@ int ide_device_add_all(u8 *idx, const struct ide_port_info *d)
1519 continue; 1518 continue;
1520 } 1519 }
1521 1520
1522 if (d->chipset != ide_etrax100 && (i & 1) && mate) { 1521 if ((i & 1) && mate) {
1523 hwif->mate = mate; 1522 hwif->mate = mate;
1524 mate->mate = hwif; 1523 mate->mate = hwif;
1525 } 1524 }
@@ -1665,6 +1664,7 @@ static void ide_legacy_init_one(u8 *idx, hw_regs_t *hw, u8 port_no,
1665 1664
1666 ide_std_init_ports(hw, base, ctl); 1665 ide_std_init_ports(hw, base, ctl);
1667 hw->irq = irq; 1666 hw->irq = irq;
1667 hw->chipset = d->chipset;
1668 1668
1669 hwif = ide_find_port_slot(d); 1669 hwif = ide_find_port_slot(d);
1670 if (hwif) { 1670 if (hwif) {
diff --git a/drivers/ide/ide-proc.c b/drivers/ide/ide-proc.c
index 8d6ad812a014..55ec7f798772 100644
--- a/drivers/ide/ide-proc.c
+++ b/drivers/ide/ide-proc.c
@@ -63,7 +63,6 @@ static int proc_ide_read_imodel
63 case ide_pmac: name = "mac-io"; break; 63 case ide_pmac: name = "mac-io"; break;
64 case ide_au1xxx: name = "au1xxx"; break; 64 case ide_au1xxx: name = "au1xxx"; break;
65 case ide_palm3710: name = "palm3710"; break; 65 case ide_palm3710: name = "palm3710"; break;
66 case ide_etrax100: name = "etrax100"; break;
67 case ide_acorn: name = "acorn"; break; 66 case ide_acorn: name = "acorn"; break;
68 default: name = "(unknown)"; break; 67 default: name = "(unknown)"; break;
69 } 68 }
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index 0c908ca3ff79..ab545ffa1549 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -225,10 +225,10 @@ static u8 wait_drive_not_busy(ide_drive_t *drive)
225 u8 stat; 225 u8 stat;
226 226
227 /* 227 /*
228 * Last sector was transfered, wait until drive is ready. 228 * Last sector was transfered, wait until device is ready. This can
229 * This can take up to 10 usec, but we will wait max 1 ms. 229 * take up to 6 ms on some ATAPI devices, so we will wait max 10 ms.
230 */ 230 */
231 for (retries = 0; retries < 100; retries++) { 231 for (retries = 0; retries < 1000; retries++) {
232 stat = ide_read_status(drive); 232 stat = ide_read_status(drive);
233 233
234 if (stat & BUSY_STAT) 234 if (stat & BUSY_STAT)
diff --git a/drivers/ide/legacy/buddha.c b/drivers/ide/legacy/buddha.c
index 5c730e4dd735..9a1d27ef3f8a 100644
--- a/drivers/ide/legacy/buddha.c
+++ b/drivers/ide/legacy/buddha.c
@@ -138,6 +138,8 @@ static void __init buddha_setup_ports(hw_regs_t *hw, unsigned long base,
138 138
139 hw->irq = IRQ_AMIGA_PORTS; 139 hw->irq = IRQ_AMIGA_PORTS;
140 hw->ack_intr = ack_intr; 140 hw->ack_intr = ack_intr;
141
142 hw->chipset = ide_generic;
141} 143}
142 144
143 /* 145 /*
diff --git a/drivers/ide/legacy/falconide.c b/drivers/ide/legacy/falconide.c
index 9e449a0c623f..af11028b4794 100644
--- a/drivers/ide/legacy/falconide.c
+++ b/drivers/ide/legacy/falconide.c
@@ -81,6 +81,8 @@ static void __init falconide_setup_ports(hw_regs_t *hw)
81 81
82 hw->irq = IRQ_MFP_IDE; 82 hw->irq = IRQ_MFP_IDE;
83 hw->ack_intr = NULL; 83 hw->ack_intr = NULL;
84
85 hw->chipset = ide_generic;
84} 86}
85 87
86 /* 88 /*
diff --git a/drivers/ide/legacy/gayle.c b/drivers/ide/legacy/gayle.c
index a9c2593a898c..fed7d812761c 100644
--- a/drivers/ide/legacy/gayle.c
+++ b/drivers/ide/legacy/gayle.c
@@ -16,6 +16,7 @@
16#include <linux/ide.h> 16#include <linux/ide.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/zorro.h> 18#include <linux/zorro.h>
19#include <linux/module.h>
19 20
20#include <asm/setup.h> 21#include <asm/setup.h>
21#include <asm/amigahw.h> 22#include <asm/amigahw.h>
@@ -62,7 +63,10 @@
62 GAYLE_NUM_HWIFS-1) 63 GAYLE_NUM_HWIFS-1)
63#define GAYLE_HAS_CONTROL_REG (!ide_doubler) 64#define GAYLE_HAS_CONTROL_REG (!ide_doubler)
64#define GAYLE_IDEREG_SIZE (ide_doubler ? 0x1000 : 0x2000) 65#define GAYLE_IDEREG_SIZE (ide_doubler ? 0x1000 : 0x2000)
66
65int ide_doubler = 0; /* support IDE doublers? */ 67int ide_doubler = 0; /* support IDE doublers? */
68EXPORT_SYMBOL_GPL(ide_doubler);
69
66module_param_named(doubler, ide_doubler, bool, 0); 70module_param_named(doubler, ide_doubler, bool, 0);
67MODULE_PARM_DESC(doubler, "enable support for IDE doublers"); 71MODULE_PARM_DESC(doubler, "enable support for IDE doublers");
68#endif /* CONFIG_BLK_DEV_IDEDOUBLER */ 72#endif /* CONFIG_BLK_DEV_IDEDOUBLER */
@@ -112,6 +116,8 @@ static void __init gayle_setup_ports(hw_regs_t *hw, unsigned long base,
112 116
113 hw->irq = IRQ_AMIGA_PORTS; 117 hw->irq = IRQ_AMIGA_PORTS;
114 hw->ack_intr = ack_intr; 118 hw->ack_intr = ack_intr;
119
120 hw->chipset = ide_generic;
115} 121}
116 122
117 /* 123 /*
diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c
index aa2ea3deac85..3381424d70a1 100644
--- a/drivers/ide/legacy/ide-cs.c
+++ b/drivers/ide/legacy/ide-cs.c
@@ -135,13 +135,17 @@ static void ide_detach(struct pcmcia_device *link)
135{ 135{
136 ide_info_t *info = link->priv; 136 ide_info_t *info = link->priv;
137 ide_hwif_t *hwif = info->hwif; 137 ide_hwif_t *hwif = info->hwif;
138 unsigned long data_addr, ctl_addr;
138 139
139 DEBUG(0, "ide_detach(0x%p)\n", link); 140 DEBUG(0, "ide_detach(0x%p)\n", link);
140 141
142 data_addr = hwif->io_ports.data_addr;
143 ctl_addr = hwif->io_ports.ctl_addr;
144
141 ide_release(link); 145 ide_release(link);
142 146
143 release_region(hwif->io_ports.ctl_addr, 1); 147 release_region(ctl_addr, 1);
144 release_region(hwif->io_ports.data_addr, 8); 148 release_region(data_addr, 8);
145 149
146 kfree(info); 150 kfree(info);
147} /* ide_detach */ 151} /* ide_detach */
@@ -194,6 +198,16 @@ static ide_hwif_t *idecs_register(unsigned long io, unsigned long ctl,
194 if (hwif->present) 198 if (hwif->present)
195 return hwif; 199 return hwif;
196 200
201 /* retry registration in case device is still spinning up */
202 for (i = 0; i < 10; i++) {
203 msleep(100);
204 ide_port_scan(hwif);
205 if (hwif->present)
206 return hwif;
207 }
208
209 return hwif;
210
197out_release: 211out_release:
198 release_region(ctl, 1); 212 release_region(ctl, 1);
199 release_region(io, 8); 213 release_region(io, 8);
@@ -222,7 +236,7 @@ static int ide_config(struct pcmcia_device *link)
222 cistpl_cftable_entry_t dflt; 236 cistpl_cftable_entry_t dflt;
223 } *stk = NULL; 237 } *stk = NULL;
224 cistpl_cftable_entry_t *cfg; 238 cistpl_cftable_entry_t *cfg;
225 int i, pass, last_ret = 0, last_fn = 0, is_kme = 0; 239 int pass, last_ret = 0, last_fn = 0, is_kme = 0;
226 unsigned long io_base, ctl_base; 240 unsigned long io_base, ctl_base;
227 ide_hwif_t *hwif; 241 ide_hwif_t *hwif;
228 242
@@ -319,30 +333,15 @@ static int ide_config(struct pcmcia_device *link)
319 if (is_kme) 333 if (is_kme)
320 outb(0x81, ctl_base+1); 334 outb(0x81, ctl_base+1);
321 335
322 /* retry registration in case device is still spinning up */ 336 hwif = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link);
323 for (i = 0; i < 10; i++) { 337 if (hwif == NULL && link->io.NumPorts1 == 0x20) {
324 hwif = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link);
325 if (hwif)
326 break;
327 if (link->io.NumPorts1 == 0x20) {
328 outb(0x02, ctl_base + 0x10); 338 outb(0x02, ctl_base + 0x10);
329 hwif = idecs_register(io_base + 0x10, ctl_base + 0x10, 339 hwif = idecs_register(io_base + 0x10, ctl_base + 0x10,
330 link->irq.AssignedIRQ, link); 340 link->irq.AssignedIRQ, link);
331 if (hwif) {
332 io_base += 0x10;
333 ctl_base += 0x10;
334 break;
335 }
336 }
337 msleep(100);
338 } 341 }
339 342
340 if (hwif == NULL) { 343 if (hwif == NULL)
341 printk(KERN_NOTICE "ide-cs: ide_register() at 0x%3lx & 0x%3lx"
342 ", irq %u failed\n", io_base, ctl_base,
343 link->irq.AssignedIRQ);
344 goto failed; 344 goto failed;
345 }
346 345
347 info->ndev = 1; 346 info->ndev = 1;
348 sprintf(info->node.dev_name, "hd%c", 'a' + hwif->index * 2); 347 sprintf(info->node.dev_name, "hd%c", 'a' + hwif->index * 2);
@@ -411,6 +410,7 @@ static struct pcmcia_device_id ide_ids[] = {
411 PCMCIA_DEVICE_MANF_CARD(0x001c, 0x0001), /* Mitsubishi CFA */ 410 PCMCIA_DEVICE_MANF_CARD(0x001c, 0x0001), /* Mitsubishi CFA */
412 PCMCIA_DEVICE_MANF_CARD(0x0032, 0x0704), 411 PCMCIA_DEVICE_MANF_CARD(0x0032, 0x0704),
413 PCMCIA_DEVICE_MANF_CARD(0x0045, 0x0401), /* SanDisk CFA */ 412 PCMCIA_DEVICE_MANF_CARD(0x0045, 0x0401), /* SanDisk CFA */
413 PCMCIA_DEVICE_MANF_CARD(0x004f, 0x0000), /* Kingston */
414 PCMCIA_DEVICE_MANF_CARD(0x0098, 0x0000), /* Toshiba */ 414 PCMCIA_DEVICE_MANF_CARD(0x0098, 0x0000), /* Toshiba */
415 PCMCIA_DEVICE_MANF_CARD(0x00a4, 0x002d), 415 PCMCIA_DEVICE_MANF_CARD(0x00a4, 0x002d),
416 PCMCIA_DEVICE_MANF_CARD(0x00ce, 0x0000), /* Samsung */ 416 PCMCIA_DEVICE_MANF_CARD(0x00ce, 0x0000), /* Samsung */
@@ -440,6 +440,7 @@ static struct pcmcia_device_id ide_ids[] = {
440 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149), 440 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDE", 0x547e66dc, 0x5c5ab149),
441 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDEII", 0x547e66dc, 0xb3662674), 441 PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCIDEII", 0x547e66dc, 0xb3662674),
442 PCMCIA_DEVICE_PROD_ID12("LOOKMEET", "CBIDE2 ", 0xe37be2b5, 0x8671043b), 442 PCMCIA_DEVICE_PROD_ID12("LOOKMEET", "CBIDE2 ", 0xe37be2b5, 0x8671043b),
443 PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF300", 0x7ed2ad87, 0x7e9e78ee),
443 PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF500", 0x7ed2ad87, 0x7a13045c), 444 PCMCIA_DEVICE_PROD_ID12("M-Systems", "CF500", 0x7ed2ad87, 0x7a13045c),
444 PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79), 445 PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79),
445 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591), 446 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591),
@@ -450,6 +451,7 @@ static struct pcmcia_device_id ide_ids[] = {
450 PCMCIA_DEVICE_PROD_ID12("SMI VENDOR", "SMI PRODUCT", 0x30896c92, 0x703cc5f6), 451 PCMCIA_DEVICE_PROD_ID12("SMI VENDOR", "SMI PRODUCT", 0x30896c92, 0x703cc5f6),
451 PCMCIA_DEVICE_PROD_ID12("TOSHIBA", "MK2001MPL", 0xb4585a1a, 0x3489e003), 452 PCMCIA_DEVICE_PROD_ID12("TOSHIBA", "MK2001MPL", 0xb4585a1a, 0x3489e003),
452 PCMCIA_DEVICE_PROD_ID1("TRANSCEND 512M ", 0xd0909443), 453 PCMCIA_DEVICE_PROD_ID1("TRANSCEND 512M ", 0xd0909443),
454 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF45", 0x709b1bf1, 0xf68b6f32),
453 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1), 455 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS1GCF80", 0x709b1bf1, 0x2a54d4b1),
454 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2), 456 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS2GCF120", 0x709b1bf1, 0x969aa4f2),
455 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8), 457 PCMCIA_DEVICE_PROD_ID12("TRANSCEND", "TS4GCF120", 0x709b1bf1, 0xf54a91c8),
diff --git a/drivers/ide/legacy/macide.c b/drivers/ide/legacy/macide.c
index caa2632dd08e..2e84290d0bcc 100644
--- a/drivers/ide/legacy/macide.c
+++ b/drivers/ide/legacy/macide.c
@@ -78,6 +78,8 @@ static void __init macide_setup_ports(hw_regs_t *hw, unsigned long base,
78 78
79 hw->irq = irq; 79 hw->irq = irq;
80 hw->ack_intr = ack_intr; 80 hw->ack_intr = ack_intr;
81
82 hw->chipset = ide_generic;
81} 83}
82 84
83static const char *mac_ide_name[] = 85static const char *mac_ide_name[] =
diff --git a/drivers/ide/legacy/q40ide.c b/drivers/ide/legacy/q40ide.c
index 6f535d00e638..8ff6e2d20834 100644
--- a/drivers/ide/legacy/q40ide.c
+++ b/drivers/ide/legacy/q40ide.c
@@ -70,6 +70,8 @@ static void q40_ide_setup_ports(hw_regs_t *hw, unsigned long base,
70 70
71 hw->irq = irq; 71 hw->irq = irq;
72 hw->ack_intr = ack_intr; 72 hw->ack_intr = ack_intr;
73
74 hw->chipset = ide_generic;
73} 75}
74 76
75static void q40ide_input_data(ide_drive_t *drive, struct request *rq, 77static void q40ide_input_data(ide_drive_t *drive, struct request *rq,
diff --git a/drivers/ide/pci/cmd640.c b/drivers/ide/pci/cmd640.c
index aaf38109eaec..b38a1980dcd5 100644
--- a/drivers/ide/pci/cmd640.c
+++ b/drivers/ide/pci/cmd640.c
@@ -747,9 +747,11 @@ static int __init cmd640x_init(void)
747 747
748 ide_std_init_ports(&hw[0], 0x1f0, 0x3f6); 748 ide_std_init_ports(&hw[0], 0x1f0, 0x3f6);
749 hw[0].irq = 14; 749 hw[0].irq = 14;
750 hw[0].chipset = ide_cmd640;
750 751
751 ide_std_init_ports(&hw[1], 0x170, 0x376); 752 ide_std_init_ports(&hw[1], 0x170, 0x376);
752 hw[1].irq = 15; 753 hw[1].irq = 15;
754 hw[1].chipset = ide_cmd640;
753 755
754 printk(KERN_INFO "cmd640: buggy cmd640%c interface on %s, config=0x%02x" 756 printk(KERN_INFO "cmd640: buggy cmd640%c interface on %s, config=0x%02x"
755 "\n", 'a' + cmd640_chip_version - 1, bus_type, cfr); 757 "\n", 'a' + cmd640_chip_version - 1, bus_type, cfr);
diff --git a/drivers/ide/pci/delkin_cb.c b/drivers/ide/pci/delkin_cb.c
index b9e457996d0e..af0f30051d5a 100644
--- a/drivers/ide/pci/delkin_cb.c
+++ b/drivers/ide/pci/delkin_cb.c
@@ -47,13 +47,18 @@ static const struct ide_port_ops delkin_cb_port_ops = {
47 .quirkproc = ide_undecoded_slave, 47 .quirkproc = ide_undecoded_slave,
48}; 48};
49 49
50static const struct ide_port_info delkin_cb_port_info = {
51 .port_ops = &delkin_cb_port_ops,
52 .host_flags = IDE_HFLAG_IO_32BIT | IDE_HFLAG_UNMASK_IRQS |
53 IDE_HFLAG_NO_DMA,
54};
55
50static int __devinit 56static int __devinit
51delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id) 57delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
52{ 58{
53 unsigned long base; 59 unsigned long base;
54 hw_regs_t hw; 60 hw_regs_t hw;
55 ide_hwif_t *hwif = NULL; 61 ide_hwif_t *hwif = NULL;
56 ide_drive_t *drive;
57 int i, rc; 62 int i, rc;
58 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; 63 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
59 64
@@ -79,6 +84,7 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
79 memset(&hw, 0, sizeof(hw)); 84 memset(&hw, 0, sizeof(hw));
80 ide_std_init_ports(&hw, base + 0x10, base + 0x1e); 85 ide_std_init_ports(&hw, base + 0x10, base + 0x1e);
81 hw.irq = dev->irq; 86 hw.irq = dev->irq;
87 hw.dev = &dev->dev;
82 hw.chipset = ide_pci; /* this enables IRQ sharing */ 88 hw.chipset = ide_pci; /* this enables IRQ sharing */
83 89
84 hwif = ide_find_port(); 90 hwif = ide_find_port();
@@ -89,26 +95,16 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
89 95
90 ide_init_port_data(hwif, i); 96 ide_init_port_data(hwif, i);
91 ide_init_port_hw(hwif, &hw); 97 ide_init_port_hw(hwif, &hw);
92 hwif->port_ops = &delkin_cb_port_ops;
93 98
94 idx[0] = i; 99 idx[0] = i;
95 100
96 ide_device_add(idx, NULL); 101 ide_device_add(idx, &delkin_cb_port_info);
97
98 if (!hwif->present)
99 goto out_disable;
100 102
101 pci_set_drvdata(dev, hwif); 103 pci_set_drvdata(dev, hwif);
102 hwif->dev = &dev->dev; 104
103 drive = &hwif->drives[0];
104 if (drive->present) {
105 drive->io_32bit = 1;
106 drive->unmask = 1;
107 }
108 return 0; 105 return 0;
109 106
110out_disable: 107out_disable:
111 printk(KERN_ERR "delkin_cb: no IDE devices found\n");
112 pci_release_regions(dev); 108 pci_release_regions(dev);
113 pci_disable_device(dev); 109 pci_disable_device(dev);
114 return -ENODEV; 110 return -ENODEV;
@@ -139,14 +135,12 @@ static struct pci_driver driver = {
139 .remove = delkin_cb_remove, 135 .remove = delkin_cb_remove,
140}; 136};
141 137
142static int 138static int __init delkin_cb_init(void)
143delkin_cb_init (void)
144{ 139{
145 return pci_register_driver(&driver); 140 return pci_register_driver(&driver);
146} 141}
147 142
148static void 143static void __exit delkin_cb_exit(void)
149delkin_cb_exit (void)
150{ 144{
151 pci_unregister_driver(&driver); 145 pci_unregister_driver(&driver);
152} 146}
diff --git a/drivers/ide/pci/opti621.c b/drivers/ide/pci/opti621.c
index 6e99080497bf..725c80508d90 100644
--- a/drivers/ide/pci/opti621.c
+++ b/drivers/ide/pci/opti621.c
@@ -81,8 +81,6 @@
81 * 0.5 doesn't work. 81 * 0.5 doesn't work.
82 */ 82 */
83 83
84#define OPTI621_DEBUG /* define for debug messages */
85
86#include <linux/types.h> 84#include <linux/types.h>
87#include <linux/module.h> 85#include <linux/module.h>
88#include <linux/kernel.h> 86#include <linux/kernel.h>
@@ -92,28 +90,6 @@
92 90
93#include <asm/io.h> 91#include <asm/io.h>
94 92
95//#define OPTI621_MAX_PIO 3
96/* In fact, I do not have any PIO 4 drive
97 * (address: 25 ns, data: 70 ns, recovery: 35 ns),
98 * but OPTi 82C621 is programmable and it can do (minimal values):
99 * on 40MHz PCI bus (pulse 25 ns):
100 * address: 25 ns, data: 25 ns, recovery: 50 ns;
101 * on 20MHz PCI bus (pulse 50 ns):
102 * address: 50 ns, data: 50 ns, recovery: 100 ns.
103 */
104
105/* #define READ_PREFETCH 0 */
106/* Uncomment for disable read prefetch.
107 * There is some readprefetch capatibility in hdparm,
108 * but when I type hdparm -P 1 /dev/hda, I got errors
109 * and till reset drive is inaccessible.
110 * This (hw) read prefetch is safe on my drive.
111 */
112
113#ifndef READ_PREFETCH
114#define READ_PREFETCH 0x40 /* read prefetch is enabled */
115#endif /* else read prefetch is disabled */
116
117#define READ_REG 0 /* index of Read cycle timing register */ 93#define READ_REG 0 /* index of Read cycle timing register */
118#define WRITE_REG 1 /* index of Write cycle timing register */ 94#define WRITE_REG 1 /* index of Write cycle timing register */
119#define CNTRL_REG 3 /* index of Control register */ 95#define CNTRL_REG 3 /* index of Control register */
@@ -122,51 +98,8 @@
122 98
123static int reg_base; 99static int reg_base;
124 100
125#define PIO_NOT_EXIST 254
126#define PIO_DONT_KNOW 255
127
128static DEFINE_SPINLOCK(opti621_lock); 101static DEFINE_SPINLOCK(opti621_lock);
129 102
130/* there are stored pio numbers from other calls of opti621_set_pio_mode */
131static void compute_pios(ide_drive_t *drive, const u8 pio)
132/* Store values into drive->drive_data
133 * second_contr - 0 for primary controller, 1 for secondary
134 * slave_drive - 0 -> pio is for master, 1 -> pio is for slave
135 * pio - PIO mode for selected drive (for other we don't know)
136 */
137{
138 int d;
139 ide_hwif_t *hwif = HWIF(drive);
140
141 drive->drive_data = pio;
142
143 for (d = 0; d < 2; ++d) {
144 drive = &hwif->drives[d];
145 if (drive->present) {
146 if (drive->drive_data == PIO_DONT_KNOW)
147 drive->drive_data = ide_get_best_pio_mode(drive, 255, 3);
148#ifdef OPTI621_DEBUG
149 printk("%s: Selected PIO mode %d\n",
150 drive->name, drive->drive_data);
151#endif
152 } else {
153 drive->drive_data = PIO_NOT_EXIST;
154 }
155 }
156}
157
158static int cmpt_clk(int time, int bus_speed)
159/* Returns (rounded up) time in clocks for time in ns,
160 * with bus_speed in MHz.
161 * Example: bus_speed = 40 MHz, time = 80 ns
162 * 1000/40 = 25 ns (clk value),
163 * 80/25 = 3.2, rounded up to 4 (I hope ;-)).
164 * Use idebus=xx to select right frequency.
165 */
166{
167 return ((time*bus_speed+999)/1000);
168}
169
170/* Write value to register reg, base of register 103/* Write value to register reg, base of register
171 * is at reg_base (0x1f0 primary, 0x170 secondary, 104 * is at reg_base (0x1f0 primary, 0x170 secondary,
172 * if not changed by PCI configuration). 105 * if not changed by PCI configuration).
@@ -199,83 +132,29 @@ static u8 read_reg(int reg)
199 return ret; 132 return ret;
200} 133}
201 134
202typedef struct pio_clocks_s {
203 int address_time; /* Address setup (clocks) */
204 int data_time; /* Active/data pulse (clocks) */
205 int recovery_time; /* Recovery time (clocks) */
206} pio_clocks_t;
207
208static void compute_clocks(int pio, pio_clocks_t *clks)
209{
210 if (pio != PIO_NOT_EXIST) {
211 int adr_setup, data_pls;
212 int bus_speed = ide_pci_clk ? ide_pci_clk : system_bus_clock();
213
214 adr_setup = ide_pio_timings[pio].setup_time;
215 data_pls = ide_pio_timings[pio].active_time;
216 clks->address_time = cmpt_clk(adr_setup, bus_speed);
217 clks->data_time = cmpt_clk(data_pls, bus_speed);
218 clks->recovery_time = cmpt_clk(ide_pio_timings[pio].cycle_time
219 - adr_setup-data_pls, bus_speed);
220 if (clks->address_time < 1)
221 clks->address_time = 1;
222 if (clks->address_time > 4)
223 clks->address_time = 4;
224 if (clks->data_time < 1)
225 clks->data_time = 1;
226 if (clks->data_time > 16)
227 clks->data_time = 16;
228 if (clks->recovery_time < 2)
229 clks->recovery_time = 2;
230 if (clks->recovery_time > 17)
231 clks->recovery_time = 17;
232 } else {
233 clks->address_time = 1;
234 clks->data_time = 1;
235 clks->recovery_time = 2;
236 /* minimal values */
237 }
238}
239
240static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio) 135static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio)
241{ 136{
242 /* primary and secondary drives share some registers, 137 ide_hwif_t *hwif = drive->hwif;
243 * so we have to program both drives 138 ide_drive_t *pair = ide_get_paired_drive(drive);
244 */
245 unsigned long flags; 139 unsigned long flags;
246 u8 pio1 = 0, pio2 = 0; 140 u8 tim, misc, addr_pio = pio, clk;
247 pio_clocks_t first, second; 141
248 int ax, drdy; 142 /* DRDY is default 2 (by OPTi Databook) */
249 u8 cycle1, cycle2, misc; 143 static const u8 addr_timings[2][5] = {
250 ide_hwif_t *hwif = HWIF(drive); 144 { 0x20, 0x10, 0x00, 0x00, 0x00 }, /* 33 MHz */
251 145 { 0x10, 0x10, 0x00, 0x00, 0x00 }, /* 25 MHz */
252 /* sets drive->drive_data for both drives */ 146 };
253 compute_pios(drive, pio); 147 static const u8 data_rec_timings[2][5] = {
254 pio1 = hwif->drives[0].drive_data; 148 { 0x5b, 0x45, 0x32, 0x21, 0x20 }, /* 33 MHz */
255 pio2 = hwif->drives[1].drive_data; 149 { 0x48, 0x34, 0x21, 0x10, 0x10 } /* 25 MHz */
256 150 };
257 compute_clocks(pio1, &first); 151
258 compute_clocks(pio2, &second); 152 drive->drive_data = XFER_PIO_0 + pio;
259 153
260 /* ax = max(a1,a2) */ 154 if (pair->present) {
261 ax = (first.address_time < second.address_time) ? second.address_time : first.address_time; 155 if (pair->drive_data && pair->drive_data < drive->drive_data)
262 156 addr_pio = pair->drive_data - XFER_PIO_0;
263 drdy = 2; /* DRDY is default 2 (by OPTi Databook) */ 157 }
264
265 cycle1 = ((first.data_time-1)<<4) | (first.recovery_time-2);
266 cycle2 = ((second.data_time-1)<<4) | (second.recovery_time-2);
267 misc = READ_PREFETCH | ((ax-1)<<4) | ((drdy-2)<<1);
268
269#ifdef OPTI621_DEBUG
270 printk("%s: master: address: %d, data: %d, "
271 "recovery: %d, drdy: %d [clk]\n",
272 hwif->name, ax, first.data_time,
273 first.recovery_time, drdy);
274 printk("%s: slave: address: %d, data: %d, "
275 "recovery: %d, drdy: %d [clk]\n",
276 hwif->name, ax, second.data_time,
277 second.recovery_time, drdy);
278#endif
279 158
280 spin_lock_irqsave(&opti621_lock, flags); 159 spin_lock_irqsave(&opti621_lock, flags);
281 160
@@ -289,24 +168,21 @@ static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio)
289 (void)inb(reg_base + CNTRL_REG); 168 (void)inb(reg_base + CNTRL_REG);
290 /* if reads 0xc0, no interface exist? */ 169 /* if reads 0xc0, no interface exist? */
291 read_reg(CNTRL_REG); 170 read_reg(CNTRL_REG);
292 /* read version, probably 0 */
293 read_reg(STRAP_REG);
294 171
295 /* program primary drive */ 172 /* check CLK speed */
296 /* select Index-0 for Register-A */ 173 clk = read_reg(STRAP_REG) & 1;
297 write_reg(0, MISC_REG); 174
298 /* set read cycle timings */ 175 printk(KERN_INFO "%s: CLK = %d MHz\n", hwif->name, clk ? 25 : 33);
299 write_reg(cycle1, READ_REG);
300 /* set write cycle timings */
301 write_reg(cycle1, WRITE_REG);
302 176
303 /* program secondary drive */ 177 tim = data_rec_timings[clk][pio];
304 /* select Index-1 for Register-B */ 178 misc = addr_timings[clk][addr_pio];
305 write_reg(1, MISC_REG); 179
180 /* select Index-0/1 for Register-A/B */
181 write_reg(drive->select.b.unit, MISC_REG);
306 /* set read cycle timings */ 182 /* set read cycle timings */
307 write_reg(cycle2, READ_REG); 183 write_reg(tim, READ_REG);
308 /* set write cycle timings */ 184 /* set write cycle timings */
309 write_reg(cycle2, WRITE_REG); 185 write_reg(tim, WRITE_REG);
310 186
311 /* use Register-A for drive 0 */ 187 /* use Register-A for drive 0 */
312 /* use Register-B for drive 1 */ 188 /* use Register-B for drive 1 */
@@ -319,45 +195,26 @@ static void opti621_set_pio_mode(ide_drive_t *drive, const u8 pio)
319 spin_unlock_irqrestore(&opti621_lock, flags); 195 spin_unlock_irqrestore(&opti621_lock, flags);
320} 196}
321 197
322static void __devinit opti621_port_init_devs(ide_hwif_t *hwif)
323{
324 hwif->drives[0].drive_data = PIO_DONT_KNOW;
325 hwif->drives[1].drive_data = PIO_DONT_KNOW;
326}
327
328static const struct ide_port_ops opti621_port_ops = { 198static const struct ide_port_ops opti621_port_ops = {
329 .port_init_devs = opti621_port_init_devs,
330 .set_pio_mode = opti621_set_pio_mode, 199 .set_pio_mode = opti621_set_pio_mode,
331}; 200};
332 201
333static const struct ide_port_info opti621_chipsets[] __devinitdata = { 202static const struct ide_port_info opti621_chipset __devinitdata = {
334 { /* 0 */ 203 .name = "OPTI621/X",
335 .name = "OPTI621", 204 .enablebits = { {0x45, 0x80, 0x00}, {0x40, 0x08, 0x00} },
336 .enablebits = { {0x45, 0x80, 0x00}, {0x40, 0x08, 0x00} }, 205 .port_ops = &opti621_port_ops,
337 .port_ops = &opti621_port_ops, 206 .host_flags = IDE_HFLAG_NO_DMA,
338 .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA, 207 .pio_mask = ATA_PIO4,
339 .pio_mask = ATA_PIO3,
340 .swdma_mask = ATA_SWDMA2,
341 .mwdma_mask = ATA_MWDMA2,
342 }, { /* 1 */
343 .name = "OPTI621X",
344 .enablebits = { {0x45, 0x80, 0x00}, {0x40, 0x08, 0x00} },
345 .port_ops = &opti621_port_ops,
346 .host_flags = IDE_HFLAG_TRUST_BIOS_FOR_DMA,
347 .pio_mask = ATA_PIO3,
348 .swdma_mask = ATA_SWDMA2,
349 .mwdma_mask = ATA_MWDMA2,
350 }
351}; 208};
352 209
353static int __devinit opti621_init_one(struct pci_dev *dev, const struct pci_device_id *id) 210static int __devinit opti621_init_one(struct pci_dev *dev, const struct pci_device_id *id)
354{ 211{
355 return ide_setup_pci_device(dev, &opti621_chipsets[id->driver_data]); 212 return ide_setup_pci_device(dev, &opti621_chipset);
356} 213}
357 214
358static const struct pci_device_id opti621_pci_tbl[] = { 215static const struct pci_device_id opti621_pci_tbl[] = {
359 { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), 0 }, 216 { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C621), 0 },
360 { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), 1 }, 217 { PCI_VDEVICE(OPTI, PCI_DEVICE_ID_OPTI_82C825), 0 },
361 { 0, }, 218 { 0, },
362}; 219};
363MODULE_DEVICE_TABLE(pci, opti621_pci_tbl); 220MODULE_DEVICE_TABLE(pci, opti621_pci_tbl);
diff --git a/drivers/ide/pci/sis5513.c b/drivers/ide/pci/sis5513.c
index 4b0b85d8faf5..e127eb25ab63 100644
--- a/drivers/ide/pci/sis5513.c
+++ b/drivers/ide/pci/sis5513.c
@@ -569,6 +569,11 @@ static int __devinit sis5513_init_one(struct pci_dev *dev, const struct pci_devi
569{ 569{
570 struct ide_port_info d = sis5513_chipset; 570 struct ide_port_info d = sis5513_chipset;
571 u8 udma_rates[] = { 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f }; 571 u8 udma_rates[] = { 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f };
572 int rc;
573
574 rc = pci_enable_device(dev);
575 if (rc)
576 return rc;
572 577
573 if (sis_find_family(dev) == 0) 578 if (sis_find_family(dev) == 0)
574 return -ENOTSUPP; 579 return -ENOTSUPP;
diff --git a/drivers/ide/ppc/mpc8xx.c b/drivers/ide/ppc/mpc8xx.c
index f0e638dcc3ab..236f9c38e519 100644
--- a/drivers/ide/ppc/mpc8xx.c
+++ b/drivers/ide/ppc/mpc8xx.c
@@ -303,6 +303,8 @@ static int __init m8xx_ide_init_ports(hw_regs_t *hw, unsigned long data_port)
303 pcmp->pcmc_per = 0x100000 >> (16 * _slot_); 303 pcmp->pcmc_per = 0x100000 >> (16 * _slot_);
304#endif /* CONFIG_IDE_8xx_PCCARD */ 304#endif /* CONFIG_IDE_8xx_PCCARD */
305 305
306 hw->chipset = ide_generic;
307
306 return 0; 308 return 0;
307} 309}
308#endif /* CONFIG_IDE_8xx_PCCARD || CONFIG_IDE_8xx_DIRECT */ 310#endif /* CONFIG_IDE_8xx_PCCARD || CONFIG_IDE_8xx_DIRECT */
@@ -377,6 +379,8 @@ static int __init m8xx_ide_init_ports(hw_regs_t *hw, unsigned long data_port)
377 ((immap_t *) IMAP_ADDR)->im_siu_conf.sc_siel |= 379 ((immap_t *) IMAP_ADDR)->im_siu_conf.sc_siel |=
378 (0x80000000 >> ioport_dsc[data_port].irq); 380 (0x80000000 >> ioport_dsc[data_port].irq);
379 381
382 hw->chipset = ide_generic;
383
380 return 0; 384 return 0;
381} 385}
382#endif /* CONFIG_IDE_8xx_DIRECT */ 386#endif /* CONFIG_IDE_8xx_DIRECT */
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c
index 48aa019127bc..ba2d58727964 100644
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -59,7 +59,6 @@ typedef struct pmac_ide_hwif {
59 int irq; 59 int irq;
60 int kind; 60 int kind;
61 int aapl_bus_id; 61 int aapl_bus_id;
62 unsigned cable_80 : 1;
63 unsigned mediabay : 1; 62 unsigned mediabay : 1;
64 unsigned broken_dma : 1; 63 unsigned broken_dma : 1;
65 unsigned broken_dma_warn : 1; 64 unsigned broken_dma_warn : 1;
@@ -918,10 +917,40 @@ pmac_ide_do_resume(ide_hwif_t *hwif)
918 return 0; 917 return 0;
919} 918}
920 919
920static u8 pmac_ide_cable_detect(ide_hwif_t *hwif)
921{
922 pmac_ide_hwif_t *pmif = (pmac_ide_hwif_t *)ide_get_hwifdata(hwif);
923 struct device_node *np = pmif->node;
924 const char *cable = of_get_property(np, "cable-type", NULL);
925
926 /* Get cable type from device-tree. */
927 if (cable && !strncmp(cable, "80-", 3))
928 return ATA_CBL_PATA80;
929
930 /*
931 * G5's seem to have incorrect cable type in device-tree.
932 * Let's assume they have a 80 conductor cable, this seem
933 * to be always the case unless the user mucked around.
934 */
935 if (of_device_is_compatible(np, "K2-UATA") ||
936 of_device_is_compatible(np, "shasta-ata"))
937 return ATA_CBL_PATA80;
938
939 return ATA_CBL_PATA40;
940}
941
921static const struct ide_port_ops pmac_ide_ata6_port_ops = { 942static const struct ide_port_ops pmac_ide_ata6_port_ops = {
922 .set_pio_mode = pmac_ide_set_pio_mode, 943 .set_pio_mode = pmac_ide_set_pio_mode,
923 .set_dma_mode = pmac_ide_set_dma_mode, 944 .set_dma_mode = pmac_ide_set_dma_mode,
924 .selectproc = pmac_ide_kauai_selectproc, 945 .selectproc = pmac_ide_kauai_selectproc,
946 .cable_detect = pmac_ide_cable_detect,
947};
948
949static const struct ide_port_ops pmac_ide_ata4_port_ops = {
950 .set_pio_mode = pmac_ide_set_pio_mode,
951 .set_dma_mode = pmac_ide_set_dma_mode,
952 .selectproc = pmac_ide_selectproc,
953 .cable_detect = pmac_ide_cable_detect,
925}; 954};
926 955
927static const struct ide_port_ops pmac_ide_port_ops = { 956static const struct ide_port_ops pmac_ide_port_ops = {
@@ -949,10 +978,7 @@ static const struct ide_port_info pmac_port_info = {
949 978
950/* 979/*
951 * Setup, register & probe an IDE channel driven by this driver, this is 980 * Setup, register & probe an IDE channel driven by this driver, this is
952 * called by one of the 2 probe functions (macio or PCI). Note that a channel 981 * called by one of the 2 probe functions (macio or PCI).
953 * that ends up beeing free of any device is not kept around by this driver
954 * (it is kept in 2.4). This introduce an interface numbering change on some
955 * rare machines unfortunately, but it's better this way.
956 */ 982 */
957static int __devinit 983static int __devinit
958pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw) 984pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
@@ -962,7 +988,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
962 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; 988 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
963 struct ide_port_info d = pmac_port_info; 989 struct ide_port_info d = pmac_port_info;
964 990
965 pmif->cable_80 = 0;
966 pmif->broken_dma = pmif->broken_dma_warn = 0; 991 pmif->broken_dma = pmif->broken_dma_warn = 0;
967 if (of_device_is_compatible(np, "shasta-ata")) { 992 if (of_device_is_compatible(np, "shasta-ata")) {
968 pmif->kind = controller_sh_ata6; 993 pmif->kind = controller_sh_ata6;
@@ -979,6 +1004,7 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
979 } else if (of_device_is_compatible(np, "keylargo-ata")) { 1004 } else if (of_device_is_compatible(np, "keylargo-ata")) {
980 if (strcmp(np->name, "ata-4") == 0) { 1005 if (strcmp(np->name, "ata-4") == 0) {
981 pmif->kind = controller_kl_ata4; 1006 pmif->kind = controller_kl_ata4;
1007 d.port_ops = &pmac_ide_ata4_port_ops;
982 d.udma_mask = ATA_UDMA4; 1008 d.udma_mask = ATA_UDMA4;
983 } else 1009 } else
984 pmif->kind = controller_kl_ata3; 1010 pmif->kind = controller_kl_ata3;
@@ -992,22 +1018,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
992 bidp = of_get_property(np, "AAPL,bus-id", NULL); 1018 bidp = of_get_property(np, "AAPL,bus-id", NULL);
993 pmif->aapl_bus_id = bidp ? *bidp : 0; 1019 pmif->aapl_bus_id = bidp ? *bidp : 0;
994 1020
995 /* Get cable type from device-tree */
996 if (pmif->kind == controller_kl_ata4 || pmif->kind == controller_un_ata6
997 || pmif->kind == controller_k2_ata6
998 || pmif->kind == controller_sh_ata6) {
999 const char* cable = of_get_property(np, "cable-type", NULL);
1000 if (cable && !strncmp(cable, "80-", 3))
1001 pmif->cable_80 = 1;
1002 }
1003 /* G5's seem to have incorrect cable type in device-tree. Let's assume
1004 * they have a 80 conductor cable, this seem to be always the case unless
1005 * the user mucked around
1006 */
1007 if (of_device_is_compatible(np, "K2-UATA") ||
1008 of_device_is_compatible(np, "shasta-ata"))
1009 pmif->cable_80 = 1;
1010
1011 /* On Kauai-type controllers, we make sure the FCR is correct */ 1021 /* On Kauai-type controllers, we make sure the FCR is correct */
1012 if (pmif->kauai_fcr) 1022 if (pmif->kauai_fcr)
1013 writel(KAUAI_FCR_UATA_MAGIC | 1023 writel(KAUAI_FCR_UATA_MAGIC |
@@ -1053,7 +1063,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
1053 1063
1054 hwif->hwif_data = pmif; 1064 hwif->hwif_data = pmif;
1055 ide_init_port_hw(hwif, hw); 1065 ide_init_port_hw(hwif, hw);
1056 hwif->cbl = pmif->cable_80 ? ATA_CBL_PATA80 : ATA_CBL_PATA40;
1057 1066
1058 printk(KERN_INFO "ide%d: Found Apple %s controller, bus ID %d%s, irq %d\n", 1067 printk(KERN_INFO "ide%d: Found Apple %s controller, bus ID %d%s, irq %d\n",
1059 hwif->index, model_name[pmif->kind], pmif->aapl_bus_id, 1068 hwif->index, model_name[pmif->kind], pmif->aapl_bus_id,
@@ -1070,11 +1079,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif, hw_regs_t *hw)
1070 } 1079 }
1071 } 1080 }
1072 1081
1073#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
1074 if (pmif->cable_80 == 0)
1075 d.udma_mask &= ATA_UDMA2;
1076#endif
1077
1078 idx[0] = hwif->index; 1082 idx[0] = hwif->index;
1079 1083
1080 ide_device_add(idx, &d); 1084 ide_device_add(idx, &d);
diff --git a/drivers/ieee1394/Kconfig b/drivers/ieee1394/Kconfig
index 545663ef820b..95f45f9b8e5e 100644
--- a/drivers/ieee1394/Kconfig
+++ b/drivers/ieee1394/Kconfig
@@ -4,7 +4,7 @@ menu "IEEE 1394 (FireWire) support"
4source "drivers/firewire/Kconfig" 4source "drivers/firewire/Kconfig"
5 5
6config IEEE1394 6config IEEE1394
7 tristate "IEEE 1394 (FireWire) support" 7 tristate "Stable FireWire stack"
8 depends on PCI || BROKEN 8 depends on PCI || BROKEN
9 help 9 help
10 IEEE 1394 describes a high performance serial bus, which is also 10 IEEE 1394 describes a high performance serial bus, which is also
@@ -19,30 +19,45 @@ config IEEE1394
19 To compile this driver as a module, say M here: the 19 To compile this driver as a module, say M here: the
20 module will be called ieee1394. 20 module will be called ieee1394.
21 21
22comment "Subsystem Options" 22config IEEE1394_OHCI1394
23 depends on IEEE1394 23 tristate "OHCI-1394 controllers"
24 24 depends on PCI && IEEE1394
25config IEEE1394_VERBOSEDEBUG
26 bool "Excessive debugging output"
27 depends on IEEE1394
28 help 25 help
29 If you say Y here, you will get very verbose debugging logs from 26 Enable this driver if you have an IEEE 1394 controller based on the
30 the subsystem which includes a dump of the header of every sent 27 OHCI-1394 specification. The current driver is only tested with OHCI
31 and received packet. This can amount to a high amount of data 28 chipsets made by Texas Instruments and NEC. Most third-party vendors
32 collected in a very short time which is usually also saved to 29 use one of these chipsets. It should work with any OHCI-1394
33 disk by the system logging daemons. 30 compliant card, however.
34 31
35 Say Y if you really want or need the debugging output, everyone 32 To compile this driver as a module, say M here: the
36 else says N. 33 module will be called ohci1394.
37 34
38comment "Controllers" 35 NOTE:
39 depends on IEEE1394
40 36
41comment "Texas Instruments PCILynx requires I2C" 37 You should only build either ohci1394 or the new firewire-ohci driver,
38 but not both. If you nevertheless want to install both, you should
39 configure them only as modules and blacklist the driver(s) which you
40 don't want to have auto-loaded. Add either
41
42 blacklist firewire-ohci
43 or
44 blacklist ohci1394
45 blacklist video1394
46 blacklist dv1394
47
48 to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf
49 depending on your distribution. The latter two modules should be
50 blacklisted together with ohci1394 because they depend on ohci1394.
51
52 If you have an old modprobe which doesn't implement the blacklist
53 directive, use "install modulename /bin/true" for the modules to be
54 blacklisted.
55
56comment "PCILynx controller requires I2C"
42 depends on IEEE1394 && I2C=n 57 depends on IEEE1394 && I2C=n
43 58
44config IEEE1394_PCILYNX 59config IEEE1394_PCILYNX
45 tristate "Texas Instruments PCILynx support" 60 tristate "PCILynx controller"
46 depends on PCI && IEEE1394 && I2C 61 depends on PCI && IEEE1394 && I2C
47 select I2C_ALGOBIT 62 select I2C_ALGOBIT
48 help 63 help
@@ -57,35 +72,11 @@ config IEEE1394_PCILYNX
57 PowerMacs G3 B&W contain the PCILynx controller. Therefore 72 PowerMacs G3 B&W contain the PCILynx controller. Therefore
58 almost everybody can say N here. 73 almost everybody can say N here.
59 74
60config IEEE1394_OHCI1394
61 tristate "OHCI-1394 support"
62 depends on PCI && IEEE1394
63 help
64 Enable this driver if you have an IEEE 1394 controller based on the
65 OHCI-1394 specification. The current driver is only tested with OHCI
66 chipsets made by Texas Instruments and NEC. Most third-party vendors
67 use one of these chipsets. It should work with any OHCI-1394
68 compliant card, however.
69
70 To compile this driver as a module, say M here: the
71 module will be called ohci1394.
72
73comment "Protocols"
74 depends on IEEE1394
75
76config IEEE1394_VIDEO1394
77 tristate "OHCI-1394 Video support"
78 depends on IEEE1394 && IEEE1394_OHCI1394
79 help
80 This option enables video device usage for OHCI-1394 cards. Enable
81 this option only if you have an IEEE 1394 video device connected to
82 an OHCI-1394 card.
83
84comment "SBP-2 support (for storage devices) requires SCSI" 75comment "SBP-2 support (for storage devices) requires SCSI"
85 depends on IEEE1394 && SCSI=n 76 depends on IEEE1394 && SCSI=n
86 77
87config IEEE1394_SBP2 78config IEEE1394_SBP2
88 tristate "SBP-2 support (Harddisks etc.)" 79 tristate "Storage devices (SBP-2 protocol)"
89 depends on IEEE1394 && SCSI 80 depends on IEEE1394 && SCSI
90 help 81 help
91 This option enables you to use SBP-2 devices connected to an IEEE 82 This option enables you to use SBP-2 devices connected to an IEEE
@@ -127,24 +118,47 @@ config IEEE1394_ETH1394
127 118
128 The module is called eth1394 although it does not emulate Ethernet. 119 The module is called eth1394 although it does not emulate Ethernet.
129 120
121config IEEE1394_RAWIO
122 tristate "raw1394 userspace interface"
123 depends on IEEE1394
124 help
125 This option adds support for the raw1394 device file which enables
126 direct communication of user programs with IEEE 1394 devices
127 (isochronous and asynchronous). Almost all application programs
128 which access FireWire require this option.
129
130 To compile this driver as a module, say M here: the module will be
131 called raw1394.
132
133config IEEE1394_VIDEO1394
134 tristate "video1394 userspace interface"
135 depends on IEEE1394 && IEEE1394_OHCI1394
136 help
137 This option adds support for the video1394 device files which enable
138 isochronous communication of user programs with IEEE 1394 devices,
139 especially video capture or export. This interface is used by all
140 libdc1394 based programs and by several other programs, in addition to
141 the raw1394 interface. It is generally not required for DV capture.
142
143 To compile this driver as a module, say M here: the module will be
144 called video1394.
145
130config IEEE1394_DV1394 146config IEEE1394_DV1394
131 tristate "OHCI-DV I/O support (deprecated)" 147 tristate "dv1394 userspace interface (deprecated)"
132 depends on IEEE1394 && IEEE1394_OHCI1394 148 depends on IEEE1394 && IEEE1394_OHCI1394
133 help 149 help
134 The dv1394 driver is unsupported and may be removed from Linux in a 150 The dv1394 driver is unsupported and may be removed from Linux in a
135 future release. Its functionality is now provided by raw1394 together 151 future release. Its functionality is now provided by raw1394 together
136 with libraries such as libiec61883. 152 with libraries such as libiec61883.
137 153
138config IEEE1394_RAWIO 154config IEEE1394_VERBOSEDEBUG
139 tristate "Raw IEEE1394 I/O support" 155 bool "Excessive debugging output"
140 depends on IEEE1394 156 depends on IEEE1394
141 help 157 help
142 This option adds support for the raw1394 device file which enables 158 If you say Y here, you will get very verbose debugging logs from the
143 direct communication of user programs with the IEEE 1394 bus and thus 159 ieee1394 drivers, including sent and received packet headers. This
144 with the attached peripherals. Almost all application programs which 160 will quickly result in large amounts of data sent to the system log.
145 access FireWire require this option.
146 161
147 To compile this driver as a module, say M here: the module will be 162 Say Y if you really need the debugging output. Everyone else says N.
148 called raw1394.
149 163
150endmenu 164endmenu
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
index fe78f7d25099..a1768dbb0720 100644
--- a/drivers/infiniband/core/umem.c
+++ b/drivers/infiniband/core/umem.c
@@ -150,7 +150,7 @@ struct ib_umem *ib_umem_get(struct ib_ucontext *context, unsigned long addr,
150 ret = 0; 150 ret = 0;
151 while (npages) { 151 while (npages) {
152 ret = get_user_pages(current, current->mm, cur_base, 152 ret = get_user_pages(current, current->mm, cur_base,
153 min_t(int, npages, 153 min_t(unsigned long, npages,
154 PAGE_SIZE / sizeof (struct page *)), 154 PAGE_SIZE / sizeof (struct page *)),
155 1, !umem->writable, page_list, vma_list); 155 1, !umem->writable, page_list, vma_list);
156 156
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index f806da184b51..caed42bf7ef5 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -423,7 +423,7 @@ static void ib_uverbs_async_handler(struct ib_uverbs_file *file,
423 unsigned long flags; 423 unsigned long flags;
424 424
425 spin_lock_irqsave(&file->async_file->lock, flags); 425 spin_lock_irqsave(&file->async_file->lock, flags);
426 if (!file->async_file->is_closed) { 426 if (file->async_file->is_closed) {
427 spin_unlock_irqrestore(&file->async_file->lock, flags); 427 spin_unlock_irqrestore(&file->async_file->lock, flags);
428 return; 428 return;
429 } 429 }
diff --git a/drivers/infiniband/hw/amso1100/c2_rnic.c b/drivers/infiniband/hw/amso1100/c2_rnic.c
index 9a054c6941a4..b1441aeb60c2 100644
--- a/drivers/infiniband/hw/amso1100/c2_rnic.c
+++ b/drivers/infiniband/hw/amso1100/c2_rnic.c
@@ -455,8 +455,7 @@ int __devinit c2_rnic_init(struct c2_dev *c2dev)
455 IB_DEVICE_CURR_QP_STATE_MOD | 455 IB_DEVICE_CURR_QP_STATE_MOD |
456 IB_DEVICE_SYS_IMAGE_GUID | 456 IB_DEVICE_SYS_IMAGE_GUID |
457 IB_DEVICE_ZERO_STAG | 457 IB_DEVICE_ZERO_STAG |
458 IB_DEVICE_MEM_WINDOW | 458 IB_DEVICE_MEM_WINDOW);
459 IB_DEVICE_SEND_W_INV);
460 459
461 /* Allocate the qptr_array */ 460 /* Allocate the qptr_array */
462 c2dev->qptr_array = vmalloc(C2_MAX_CQS * sizeof(void *)); 461 c2dev->qptr_array = vmalloc(C2_MAX_CQS * sizeof(void *));
diff --git a/drivers/infiniband/hw/mthca/mthca_memfree.c b/drivers/infiniband/hw/mthca/mthca_memfree.c
index b224079d4e1f..d5862e5d99a0 100644
--- a/drivers/infiniband/hw/mthca/mthca_memfree.c
+++ b/drivers/infiniband/hw/mthca/mthca_memfree.c
@@ -109,7 +109,11 @@ static int mthca_alloc_icm_pages(struct scatterlist *mem, int order, gfp_t gfp_m
109{ 109{
110 struct page *page; 110 struct page *page;
111 111
112 page = alloc_pages(gfp_mask, order); 112 /*
113 * Use __GFP_ZERO because buggy firmware assumes ICM pages are
114 * cleared, and subtle failures are seen if they aren't.
115 */
116 page = alloc_pages(gfp_mask | __GFP_ZERO, order);
113 if (!page) 117 if (!page)
114 return -ENOMEM; 118 return -ENOMEM;
115 119
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
index 99b3c4ae86eb..d617da9bd351 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.c
+++ b/drivers/infiniband/hw/nes/nes_verbs.c
@@ -2456,10 +2456,8 @@ static struct ib_mr *nes_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
2456 if ((page_count!=0)&&(page_count<<12)-(region->offset&(4096-1))>=region->length) 2456 if ((page_count!=0)&&(page_count<<12)-(region->offset&(4096-1))>=region->length)
2457 goto enough_pages; 2457 goto enough_pages;
2458 if ((page_count&0x01FF) == 0) { 2458 if ((page_count&0x01FF) == 0) {
2459 if (page_count>(1024*512)) { 2459 if (page_count >= 1024 * 512) {
2460 ib_umem_release(region); 2460 ib_umem_release(region);
2461 pci_free_consistent(nesdev->pcidev, 4096, vpbl.pbl_vbase,
2462 vpbl.pbl_pbase);
2463 nes_free_resource(nesadapter, 2461 nes_free_resource(nesadapter,
2464 nesadapter->allocated_mrs, stag_index); 2462 nesadapter->allocated_mrs, stag_index);
2465 kfree(nesmr); 2463 kfree(nesmr);
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 3ad8bd9f7543..432699d61c58 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -15,7 +15,6 @@ if INPUT_MISC
15config INPUT_PCSPKR 15config INPUT_PCSPKR
16 tristate "PC Speaker support" 16 tristate "PC Speaker support"
17 depends on PCSPKR_PLATFORM 17 depends on PCSPKR_PLATFORM
18 depends on SND_PCSP=n
19 help 18 help
20 Say Y here if you want the standard PC Speaker to be used for 19 Say Y here if you want the standard PC Speaker to be used for
21 bells and whistles. 20 bells and whistles.
diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c
index 8dd3942f3022..ce6fdec19e14 100644
--- a/drivers/input/mouse/appletouch.c
+++ b/drivers/input/mouse/appletouch.c
@@ -589,6 +589,21 @@ static void atp_close(struct input_dev *input)
589 dev->open = 0; 589 dev->open = 0;
590} 590}
591 591
592static int atp_handle_geyser(struct atp *dev)
593{
594 struct usb_device *udev = dev->udev;
595
596 if (!atp_is_fountain(dev)) {
597 /* switch to raw sensor mode */
598 if (atp_geyser_init(udev))
599 return -EIO;
600
601 printk(KERN_INFO "appletouch: Geyser mode initialized.\n");
602 }
603
604 return 0;
605}
606
592static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id) 607static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id)
593{ 608{
594 struct atp *dev; 609 struct atp *dev;
@@ -633,14 +648,6 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id
633 else 648 else
634 dev->datalen = 81; 649 dev->datalen = 81;
635 650
636 if (!atp_is_fountain(dev)) {
637 /* switch to raw sensor mode */
638 if (atp_geyser_init(udev))
639 goto err_free_devs;
640
641 printk(KERN_INFO "appletouch: Geyser mode initialized.\n");
642 }
643
644 dev->urb = usb_alloc_urb(0, GFP_KERNEL); 651 dev->urb = usb_alloc_urb(0, GFP_KERNEL);
645 if (!dev->urb) 652 if (!dev->urb)
646 goto err_free_devs; 653 goto err_free_devs;
@@ -654,6 +661,10 @@ static int atp_probe(struct usb_interface *iface, const struct usb_device_id *id
654 usb_rcvintpipe(udev, int_in_endpointAddr), 661 usb_rcvintpipe(udev, int_in_endpointAddr),
655 dev->data, dev->datalen, atp_complete, dev, 1); 662 dev->data, dev->datalen, atp_complete, dev, 1);
656 663
664 error = atp_handle_geyser(dev);
665 if (error)
666 goto err_free_buffer;
667
657 usb_make_path(udev, dev->phys, sizeof(dev->phys)); 668 usb_make_path(udev, dev->phys, sizeof(dev->phys));
658 strlcat(dev->phys, "/input0", sizeof(dev->phys)); 669 strlcat(dev->phys, "/input0", sizeof(dev->phys));
659 670
@@ -744,6 +755,20 @@ static void atp_disconnect(struct usb_interface *iface)
744 printk(KERN_INFO "input: appletouch disconnected\n"); 755 printk(KERN_INFO "input: appletouch disconnected\n");
745} 756}
746 757
758static int atp_recover(struct atp *dev)
759{
760 int error;
761
762 error = atp_handle_geyser(dev);
763 if (error)
764 return error;
765
766 if (dev->open && usb_submit_urb(dev->urb, GFP_ATOMIC))
767 return -EIO;
768
769 return 0;
770}
771
747static int atp_suspend(struct usb_interface *iface, pm_message_t message) 772static int atp_suspend(struct usb_interface *iface, pm_message_t message)
748{ 773{
749 struct atp *dev = usb_get_intfdata(iface); 774 struct atp *dev = usb_get_intfdata(iface);
@@ -764,12 +789,20 @@ static int atp_resume(struct usb_interface *iface)
764 return 0; 789 return 0;
765} 790}
766 791
792static int atp_reset_resume(struct usb_interface *iface)
793{
794 struct atp *dev = usb_get_intfdata(iface);
795
796 return atp_recover(dev);
797}
798
767static struct usb_driver atp_driver = { 799static struct usb_driver atp_driver = {
768 .name = "appletouch", 800 .name = "appletouch",
769 .probe = atp_probe, 801 .probe = atp_probe,
770 .disconnect = atp_disconnect, 802 .disconnect = atp_disconnect,
771 .suspend = atp_suspend, 803 .suspend = atp_suspend,
772 .resume = atp_resume, 804 .resume = atp_resume,
805 .reset_resume = atp_reset_resume,
773 .id_table = atp_table, 806 .id_table = atp_table,
774}; 807};
775 808
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 9aafa96cb746..78eb7841174c 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -193,6 +193,13 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
193 }, 193 },
194 }, 194 },
195 { 195 {
196 .ident = "Fujitsu-Siemens Amilo Pro 2030",
197 .matches = {
198 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
199 DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"),
200 },
201 },
202 {
196 /* 203 /*
197 * No data is coming from the touchscreen unless KBC 204 * No data is coming from the touchscreen unless KBC
198 * is in legacy mode. 205 * is in legacy mode.
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index 592ff55b62d0..170f71ee5772 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -952,8 +952,12 @@ static int i8042_resume(struct platform_device *dev)
952 i8042_ctr |= I8042_CTR_AUXDIS | I8042_CTR_KBDDIS; 952 i8042_ctr |= I8042_CTR_AUXDIS | I8042_CTR_KBDDIS;
953 i8042_ctr &= ~(I8042_CTR_AUXINT | I8042_CTR_KBDINT); 953 i8042_ctr &= ~(I8042_CTR_AUXINT | I8042_CTR_KBDINT);
954 if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) { 954 if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
955 printk(KERN_ERR "i8042: Can't write CTR to resume\n"); 955 printk(KERN_WARNING "i8042: Can't write CTR to resume, retrying...\n");
956 return -EIO; 956 msleep(50);
957 if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
958 printk(KERN_ERR "i8042: CTR write retry failed\n");
959 return -EIO;
960 }
957 } 961 }
958 962
959 963
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c
index 5fcbdccd7a53..16a874bb1561 100644
--- a/drivers/isdn/hardware/eicon/divasmain.c
+++ b/drivers/isdn/hardware/eicon/divasmain.c
@@ -806,7 +806,6 @@ static int DIVA_INIT_FUNCTION divas_init(void)
806 806
807 if (!create_divas_proc()) { 807 if (!create_divas_proc()) {
808#ifdef MODULE 808#ifdef MODULE
809 remove_divas_proc();
810 divas_unregister_chrdev(); 809 divas_unregister_chrdev();
811 divasfunc_exit(); 810 divasfunc_exit();
812#endif 811#endif
diff --git a/drivers/isdn/hardware/eicon/divasproc.c b/drivers/isdn/hardware/eicon/divasproc.c
index fae895828a17..040827288ec9 100644
--- a/drivers/isdn/hardware/eicon/divasproc.c
+++ b/drivers/isdn/hardware/eicon/divasproc.c
@@ -125,8 +125,8 @@ static const struct file_operations divas_fops = {
125 125
126int create_divas_proc(void) 126int create_divas_proc(void)
127{ 127{
128 proc_create(divas_proc_name, S_IFREG | S_IRUGO, proc_net_eicon, 128 divas_proc_entry = proc_create(divas_proc_name, S_IFREG | S_IRUGO,
129 &divas_fops); 129 proc_net_eicon, &divas_fops);
130 if (!divas_proc_entry) 130 if (!divas_proc_entry)
131 return (0); 131 return (0);
132 132
diff --git a/drivers/isdn/hysdn/hysdn_procconf.c b/drivers/isdn/hysdn/hysdn_procconf.c
index 15906d005b05..484299b031f8 100644
--- a/drivers/isdn/hysdn/hysdn_procconf.c
+++ b/drivers/isdn/hysdn/hysdn_procconf.c
@@ -207,30 +207,17 @@ hysdn_conf_write(struct file *file, const char __user *buf, size_t count, loff_t
207/* read conf file -> output card info data */ 207/* read conf file -> output card info data */
208/*******************************************/ 208/*******************************************/
209static ssize_t 209static ssize_t
210hysdn_conf_read(struct file *file, char __user *buf, size_t count, loff_t * off) 210hysdn_conf_read(struct file *file, char __user *buf, size_t count, loff_t *off)
211{ 211{
212 char *cp; 212 char *cp;
213 int i;
214 213
215 if (file->f_mode & FMODE_READ) { 214 if (!(file->f_mode & FMODE_READ))
216 if (!(cp = file->private_data)) 215 return -EPERM; /* no permission to read */
217 return (-EFAULT); /* should never happen */ 216
218 i = strlen(cp); /* get total string length */ 217 if (!(cp = file->private_data))
219 if (*off < i) { 218 return -EFAULT; /* should never happen */
220 /* still bytes to transfer */ 219
221 cp += *off; /* point to desired data offset */ 220 return simple_read_from_buffer(buf, count, off, cp, strlen(cp));
222 i -= *off; /* remaining length */
223 if (i > count)
224 i = count; /* limit length to transfer */
225 if (copy_to_user(buf, cp, i))
226 return (-EFAULT); /* copy error */
227 *off += i; /* adjust offset */
228 } else
229 return (0);
230 } else
231 return (-EPERM); /* no permission to read */
232
233 return (i);
234} /* hysdn_conf_read */ 221} /* hysdn_conf_read */
235 222
236/******************/ 223/******************/
diff --git a/drivers/isdn/sc/ioctl.c b/drivers/isdn/sc/ioctl.c
index 7817d2244921..1081091bbfaf 100644
--- a/drivers/isdn/sc/ioctl.c
+++ b/drivers/isdn/sc/ioctl.c
@@ -226,6 +226,7 @@ int sc_ioctl(int card, scs_ioctl *data)
226 */ 226 */
227 if (copy_from_user(spid, data->dataptr, SCIOC_SPIDSIZE)) { 227 if (copy_from_user(spid, data->dataptr, SCIOC_SPIDSIZE)) {
228 kfree(rcvmsg); 228 kfree(rcvmsg);
229 kfree(spid);
229 return -EFAULT; 230 return -EFAULT;
230 } 231 }
231 232
diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
index 5126d5d9ea0e..2e554a4ab337 100644
--- a/drivers/lguest/x86/core.c
+++ b/drivers/lguest/x86/core.c
@@ -176,7 +176,7 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
176 * we set it now, so we can trap and pass that trap to the Guest if it 176 * we set it now, so we can trap and pass that trap to the Guest if it
177 * uses the FPU. */ 177 * uses the FPU. */
178 if (cpu->ts) 178 if (cpu->ts)
179 lguest_set_ts(); 179 unlazy_fpu(current);
180 180
181 /* SYSENTER is an optimized way of doing system calls. We can't allow 181 /* SYSENTER is an optimized way of doing system calls. We can't allow
182 * it because it always jumps to privilege level 0. A normal Guest 182 * it because it always jumps to privilege level 0. A normal Guest
@@ -196,6 +196,10 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
196 * trap made the switcher code come back, and an error code which some 196 * trap made the switcher code come back, and an error code which some
197 * traps set. */ 197 * traps set. */
198 198
199 /* Restore SYSENTER if it's supposed to be on. */
200 if (boot_cpu_has(X86_FEATURE_SEP))
201 wrmsr(MSR_IA32_SYSENTER_CS, __KERNEL_CS, 0);
202
199 /* If the Guest page faulted, then the cr2 register will tell us the 203 /* If the Guest page faulted, then the cr2 register will tell us the
200 * bad virtual address. We have to grab this now, because once we 204 * bad virtual address. We have to grab this now, because once we
201 * re-enable interrupts an interrupt could fault and thus overwrite 205 * re-enable interrupts an interrupt could fault and thus overwrite
@@ -203,13 +207,12 @@ void lguest_arch_run_guest(struct lg_cpu *cpu)
203 if (cpu->regs->trapnum == 14) 207 if (cpu->regs->trapnum == 14)
204 cpu->arch.last_pagefault = read_cr2(); 208 cpu->arch.last_pagefault = read_cr2();
205 /* Similarly, if we took a trap because the Guest used the FPU, 209 /* Similarly, if we took a trap because the Guest used the FPU,
206 * we have to restore the FPU it expects to see. */ 210 * we have to restore the FPU it expects to see.
211 * math_state_restore() may sleep and we may even move off to
212 * a different CPU. So all the critical stuff should be done
213 * before this. */
207 else if (cpu->regs->trapnum == 7) 214 else if (cpu->regs->trapnum == 7)
208 math_state_restore(); 215 math_state_restore();
209
210 /* Restore SYSENTER if it's supposed to be on. */
211 if (boot_cpu_has(X86_FEATURE_SEP))
212 wrmsr(MSR_IA32_SYSENTER_CS, __KERNEL_CS, 0);
213} 216}
214 217
215/*H:130 Now we've examined the hypercall code; our Guest can make requests. 218/*H:130 Now we've examined the hypercall code; our Guest can make requests.
diff --git a/drivers/macintosh/mediabay.c b/drivers/macintosh/mediabay.c
index 82add26cc665..818aba368541 100644
--- a/drivers/macintosh/mediabay.c
+++ b/drivers/macintosh/mediabay.c
@@ -84,7 +84,7 @@ struct media_bay_info {
84 int cd_irq; 84 int cd_irq;
85 int cd_retry; 85 int cd_retry;
86#endif 86#endif
87#if defined(CONFIG_BLK_DEV_IDE_PMAC) || defined(CONFIG_MAC_FLOPPY) 87#if defined(CONFIG_BLK_DEV_IDE_PMAC)
88 int cd_index; 88 int cd_index;
89#endif 89#endif
90}; 90};
@@ -417,6 +417,7 @@ static void poll_media_bay(struct media_bay_info* bay)
417 } 417 }
418} 418}
419 419
420#ifdef CONFIG_BLK_DEV_IDE_PMAC
420int check_media_bay(struct device_node *which_bay, int what) 421int check_media_bay(struct device_node *which_bay, int what)
421{ 422{
422 int i; 423 int i;
@@ -432,7 +433,6 @@ int check_media_bay(struct device_node *which_bay, int what)
432} 433}
433EXPORT_SYMBOL(check_media_bay); 434EXPORT_SYMBOL(check_media_bay);
434 435
435#ifdef CONFIG_BLK_DEV_IDE_PMAC
436int check_media_bay_by_base(unsigned long base, int what) 436int check_media_bay_by_base(unsigned long base, int what)
437{ 437{
438 int i; 438 int i;
@@ -556,7 +556,8 @@ static void media_bay_step(int i)
556 printk("mediabay %d, registering IDE...\n", i); 556 printk("mediabay %d, registering IDE...\n", i);
557 pmu_suspend(); 557 pmu_suspend();
558 ide_port_scan(bay->cd_port); 558 ide_port_scan(bay->cd_port);
559 bay->cd_index = bay->cd_port->index; 559 if (bay->cd_port->present)
560 bay->cd_index = bay->cd_port->index;
560 pmu_resume(); 561 pmu_resume();
561 } 562 }
562 if (bay->cd_index == -1) { 563 if (bay->cd_index == -1) {
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c
index 77ad192962c5..d86d57af282a 100644
--- a/drivers/macintosh/smu.c
+++ b/drivers/macintosh/smu.c
@@ -483,12 +483,15 @@ int __init smu_init (void)
483 483
484 if (smu_cmdbuf_abs == 0) { 484 if (smu_cmdbuf_abs == 0) {
485 printk(KERN_ERR "SMU: Command buffer not allocated !\n"); 485 printk(KERN_ERR "SMU: Command buffer not allocated !\n");
486 of_node_put(np);
486 return -EINVAL; 487 return -EINVAL;
487 } 488 }
488 489
489 smu = alloc_bootmem(sizeof(struct smu_device)); 490 smu = alloc_bootmem(sizeof(struct smu_device));
490 if (smu == NULL) 491 if (smu == NULL) {
492 of_node_put(np);
491 return -ENOMEM; 493 return -ENOMEM;
494 }
492 memset(smu, 0, sizeof(*smu)); 495 memset(smu, 0, sizeof(*smu));
493 496
494 spin_lock_init(&smu->lock); 497 spin_lock_init(&smu->lock);
diff --git a/drivers/macintosh/therm_adt746x.c b/drivers/macintosh/therm_adt746x.c
index 54f4942a2968..5366dc93fb38 100644
--- a/drivers/macintosh/therm_adt746x.c
+++ b/drivers/macintosh/therm_adt746x.c
@@ -562,18 +562,24 @@ thermostat_init(void)
562 therm_type = ADT7460; 562 therm_type = ADT7460;
563 else if (of_device_is_compatible(np, "adt7467")) 563 else if (of_device_is_compatible(np, "adt7467"))
564 therm_type = ADT7467; 564 therm_type = ADT7467;
565 else 565 else {
566 of_node_put(np);
566 return -ENODEV; 567 return -ENODEV;
568 }
567 569
568 prop = of_get_property(np, "hwsensor-params-version", NULL); 570 prop = of_get_property(np, "hwsensor-params-version", NULL);
569 printk(KERN_INFO "adt746x: version %d (%ssupported)\n", *prop, 571 printk(KERN_INFO "adt746x: version %d (%ssupported)\n", *prop,
570 (*prop == 1)?"":"un"); 572 (*prop == 1)?"":"un");
571 if (*prop != 1) 573 if (*prop != 1) {
574 of_node_put(np);
572 return -ENODEV; 575 return -ENODEV;
576 }
573 577
574 prop = of_get_property(np, "reg", NULL); 578 prop = of_get_property(np, "reg", NULL);
575 if (!prop) 579 if (!prop) {
580 of_node_put(np);
576 return -ENODEV; 581 return -ENODEV;
582 }
577 583
578 /* look for bus either by path or using "reg" */ 584 /* look for bus either by path or using "reg" */
579 if (strstr(np->full_name, "/i2c-bus@") != NULL) { 585 if (strstr(np->full_name, "/i2c-bus@") != NULL) {
@@ -610,6 +616,7 @@ thermostat_init(void)
610 616
611 if (of_dev == NULL) { 617 if (of_dev == NULL) {
612 printk(KERN_ERR "Can't register temperatures device !\n"); 618 printk(KERN_ERR "Can't register temperatures device !\n");
619 of_node_put(np);
613 return -ENODEV; 620 return -ENODEV;
614 } 621 }
615 622
diff --git a/drivers/media/common/ir-keymaps.c b/drivers/media/common/ir-keymaps.c
index a3485817e46c..8fa91f846d59 100644
--- a/drivers/media/common/ir-keymaps.c
+++ b/drivers/media/common/ir-keymaps.c
@@ -2201,3 +2201,41 @@ IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE] = {
2201 [0x25] = KEY_POWER, /* power */ 2201 [0x25] = KEY_POWER, /* power */
2202}; 2202};
2203EXPORT_SYMBOL_GPL(ir_codes_powercolor_real_angel); 2203EXPORT_SYMBOL_GPL(ir_codes_powercolor_real_angel);
2204
2205IR_KEYTAB_TYPE ir_codes_avermedia_a16d[IR_KEYTAB_SIZE] = {
2206 [0x20] = KEY_LIST,
2207 [0x00] = KEY_POWER,
2208 [0x28] = KEY_1,
2209 [0x18] = KEY_2,
2210 [0x38] = KEY_3,
2211 [0x24] = KEY_4,
2212 [0x14] = KEY_5,
2213 [0x34] = KEY_6,
2214 [0x2c] = KEY_7,
2215 [0x1c] = KEY_8,
2216 [0x3c] = KEY_9,
2217 [0x12] = KEY_SUBTITLE,
2218 [0x22] = KEY_0,
2219 [0x32] = KEY_REWIND,
2220 [0x3a] = KEY_SHUFFLE,
2221 [0x02] = KEY_PRINT,
2222 [0x11] = KEY_CHANNELDOWN,
2223 [0x31] = KEY_CHANNELUP,
2224 [0x0c] = KEY_ZOOM,
2225 [0x1e] = KEY_VOLUMEDOWN,
2226 [0x3e] = KEY_VOLUMEUP,
2227 [0x0a] = KEY_MUTE,
2228 [0x04] = KEY_AUDIO,
2229 [0x26] = KEY_RECORD,
2230 [0x06] = KEY_PLAY,
2231 [0x36] = KEY_STOP,
2232 [0x16] = KEY_PAUSE,
2233 [0x2e] = KEY_REWIND,
2234 [0x0e] = KEY_FASTFORWARD,
2235 [0x30] = KEY_TEXT,
2236 [0x21] = KEY_GREEN,
2237 [0x01] = KEY_BLUE,
2238 [0x08] = KEY_EPG,
2239 [0x2a] = KEY_MENU,
2240};
2241EXPORT_SYMBOL_GPL(ir_codes_avermedia_a16d);
diff --git a/drivers/media/common/tuners/tda18271-common.c b/drivers/media/common/tuners/tda18271-common.c
index f1894fec32b9..6fb5b4586569 100644
--- a/drivers/media/common/tuners/tda18271-common.c
+++ b/drivers/media/common/tuners/tda18271-common.c
@@ -649,9 +649,17 @@ int tda18271_calc_rf_cal(struct dvb_frontend *fe, u32 *freq)
649 u8 val; 649 u8 val;
650 650
651 int ret = tda18271_lookup_map(fe, RF_CAL, freq, &val); 651 int ret = tda18271_lookup_map(fe, RF_CAL, freq, &val);
652 /* The TDA18271HD/C1 rf_cal map lookup is expected to go out of range
653 * for frequencies above 61.1 MHz. In these cases, the internal RF
654 * tracking filters calibration mechanism is used.
655 *
656 * There is no need to warn the user about this.
657 */
658 if (ret < 0)
659 goto fail;
652 660
653 regs[R_EB14] = val; 661 regs[R_EB14] = val;
654 662fail:
655 return ret; 663 return ret;
656} 664}
657 665
diff --git a/drivers/media/common/tuners/tda18271-fe.c b/drivers/media/common/tuners/tda18271-fe.c
index 89c01fb1f859..93063c6fbbf6 100644
--- a/drivers/media/common/tuners/tda18271-fe.c
+++ b/drivers/media/common/tuners/tda18271-fe.c
@@ -45,6 +45,21 @@ static inline int charge_pump_source(struct dvb_frontend *fe, int force)
45 TDA18271_MAIN_PLL, force); 45 TDA18271_MAIN_PLL, force);
46} 46}
47 47
48static inline void tda18271_set_if_notch(struct dvb_frontend *fe)
49{
50 struct tda18271_priv *priv = fe->tuner_priv;
51 unsigned char *regs = priv->tda18271_regs;
52
53 switch (priv->mode) {
54 case TDA18271_ANALOG:
55 regs[R_MPD] &= ~0x80; /* IF notch = 0 */
56 break;
57 case TDA18271_DIGITAL:
58 regs[R_MPD] |= 0x80; /* IF notch = 1 */
59 break;
60 }
61}
62
48static int tda18271_channel_configuration(struct dvb_frontend *fe, 63static int tda18271_channel_configuration(struct dvb_frontend *fe,
49 struct tda18271_std_map_item *map, 64 struct tda18271_std_map_item *map,
50 u32 freq, u32 bw) 65 u32 freq, u32 bw)
@@ -60,25 +75,18 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
60 regs[R_EP3] &= ~0x1f; /* clear std bits */ 75 regs[R_EP3] &= ~0x1f; /* clear std bits */
61 regs[R_EP3] |= (map->agc_mode << 3) | map->std; 76 regs[R_EP3] |= (map->agc_mode << 3) | map->std;
62 77
63 /* set rfagc to high speed mode */ 78 if (priv->id == TDA18271HDC2) {
64 regs[R_EP3] &= ~0x04; 79 /* set rfagc to high speed mode */
80 regs[R_EP3] &= ~0x04;
81 }
65 82
66 /* set cal mode to normal */ 83 /* set cal mode to normal */
67 regs[R_EP4] &= ~0x03; 84 regs[R_EP4] &= ~0x03;
68 85
69 /* update IF output level & IF notch frequency */ 86 /* update IF output level */
70 regs[R_EP4] &= ~0x1c; /* clear if level bits */ 87 regs[R_EP4] &= ~0x1c; /* clear if level bits */
71 regs[R_EP4] |= (map->if_lvl << 2); 88 regs[R_EP4] |= (map->if_lvl << 2);
72 89
73 switch (priv->mode) {
74 case TDA18271_ANALOG:
75 regs[R_MPD] &= ~0x80; /* IF notch = 0 */
76 break;
77 case TDA18271_DIGITAL:
78 regs[R_MPD] |= 0x80; /* IF notch = 1 */
79 break;
80 }
81
82 /* update FM_RFn */ 90 /* update FM_RFn */
83 regs[R_EP4] &= ~0x80; 91 regs[R_EP4] &= ~0x80;
84 regs[R_EP4] |= map->fm_rfn << 7; 92 regs[R_EP4] |= map->fm_rfn << 7;
@@ -95,6 +103,9 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
95 /* disable Power Level Indicator */ 103 /* disable Power Level Indicator */
96 regs[R_EP1] |= 0x40; 104 regs[R_EP1] |= 0x40;
97 105
106 /* make sure thermometer is off */
107 regs[R_TM] &= ~0x10;
108
98 /* frequency dependent parameters */ 109 /* frequency dependent parameters */
99 110
100 tda18271_calc_ir_measure(fe, &freq); 111 tda18271_calc_ir_measure(fe, &freq);
@@ -135,6 +146,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
135 switch (priv->role) { 146 switch (priv->role) {
136 case TDA18271_MASTER: 147 case TDA18271_MASTER:
137 tda18271_calc_main_pll(fe, N); 148 tda18271_calc_main_pll(fe, N);
149 tda18271_set_if_notch(fe);
138 tda18271_write_regs(fe, R_MPD, 4); 150 tda18271_write_regs(fe, R_MPD, 4);
139 break; 151 break;
140 case TDA18271_SLAVE: 152 case TDA18271_SLAVE:
@@ -142,6 +154,7 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
142 tda18271_write_regs(fe, R_CPD, 4); 154 tda18271_write_regs(fe, R_CPD, 4);
143 155
144 regs[R_MPD] = regs[R_CPD] & 0x7f; 156 regs[R_MPD] = regs[R_CPD] & 0x7f;
157 tda18271_set_if_notch(fe);
145 tda18271_write_regs(fe, R_MPD, 1); 158 tda18271_write_regs(fe, R_MPD, 1);
146 break; 159 break;
147 } 160 }
@@ -160,12 +173,14 @@ static int tda18271_channel_configuration(struct dvb_frontend *fe,
160 173
161 msleep(20); 174 msleep(20);
162 175
163 /* set rfagc to normal speed mode */ 176 if (priv->id == TDA18271HDC2) {
164 if (map->fm_rfn) 177 /* set rfagc to normal speed mode */
165 regs[R_EP3] &= ~0x04; 178 if (map->fm_rfn)
166 else 179 regs[R_EP3] &= ~0x04;
167 regs[R_EP3] |= 0x04; 180 else
168 ret = tda18271_write_regs(fe, R_EP3, 1); 181 regs[R_EP3] |= 0x04;
182 ret = tda18271_write_regs(fe, R_EP3, 1);
183 }
169fail: 184fail:
170 return ret; 185 return ret;
171} 186}
@@ -507,7 +522,7 @@ static int tda18271_powerscan_init(struct dvb_frontend *fe)
507 /* set cal mode to normal */ 522 /* set cal mode to normal */
508 regs[R_EP4] &= ~0x03; 523 regs[R_EP4] &= ~0x03;
509 524
510 /* update IF output level & IF notch frequency */ 525 /* update IF output level */
511 regs[R_EP4] &= ~0x1c; /* clear if level bits */ 526 regs[R_EP4] &= ~0x1c; /* clear if level bits */
512 527
513 ret = tda18271_write_regs(fe, R_EP3, 2); 528 ret = tda18271_write_regs(fe, R_EP3, 2);
diff --git a/drivers/media/common/tuners/xc5000.c b/drivers/media/common/tuners/xc5000.c
index ceae6db901ec..7cf4f5bdb2ec 100644
--- a/drivers/media/common/tuners/xc5000.c
+++ b/drivers/media/common/tuners/xc5000.c
@@ -177,6 +177,7 @@ static XC_TV_STANDARD XC5000_Standard[MAX_TV_STANDARD] = {
177 {"FM Radio-INPUT1", 0x0208, 0x9002} 177 {"FM Radio-INPUT1", 0x0208, 0x9002}
178}; 178};
179 179
180static int xc5000_is_firmware_loaded(struct dvb_frontend *fe);
180static int xc5000_writeregs(struct xc5000_priv *priv, u8 *buf, u8 len); 181static int xc5000_writeregs(struct xc5000_priv *priv, u8 *buf, u8 len);
181static int xc5000_readregs(struct xc5000_priv *priv, u8 *buf, u8 len); 182static int xc5000_readregs(struct xc5000_priv *priv, u8 *buf, u8 len);
182static void xc5000_TunerReset(struct dvb_frontend *fe); 183static void xc5000_TunerReset(struct dvb_frontend *fe);
@@ -352,7 +353,7 @@ static int xc_SetTVStandard(struct xc5000_priv *priv,
352 353
353static int xc_shutdown(struct xc5000_priv *priv) 354static int xc_shutdown(struct xc5000_priv *priv)
354{ 355{
355 return 0; 356 return XC_RESULT_SUCCESS;
356 /* Fixme: cannot bring tuner back alive once shutdown 357 /* Fixme: cannot bring tuner back alive once shutdown
357 * without reloading the driver modules. 358 * without reloading the driver modules.
358 * return xc_write_reg(priv, XREG_POWER_DOWN, 0); 359 * return xc_write_reg(priv, XREG_POWER_DOWN, 0);
@@ -685,6 +686,25 @@ static int xc5000_set_params(struct dvb_frontend *fe,
685 return 0; 686 return 0;
686} 687}
687 688
689static int xc5000_is_firmware_loaded(struct dvb_frontend *fe)
690{
691 struct xc5000_priv *priv = fe->tuner_priv;
692 int ret;
693 u16 id;
694
695 ret = xc5000_readreg(priv, XREG_PRODUCT_ID, &id);
696 if (ret == XC_RESULT_SUCCESS) {
697 if (id == XC_PRODUCT_ID_FW_NOT_LOADED)
698 ret = XC_RESULT_RESET_FAILURE;
699 else
700 ret = XC_RESULT_SUCCESS;
701 }
702
703 dprintk(1, "%s() returns %s id = 0x%x\n", __func__,
704 ret == XC_RESULT_SUCCESS ? "True" : "False", id);
705 return ret;
706}
707
688static int xc_load_fw_and_init_tuner(struct dvb_frontend *fe); 708static int xc_load_fw_and_init_tuner(struct dvb_frontend *fe);
689 709
690static int xc5000_set_analog_params(struct dvb_frontend *fe, 710static int xc5000_set_analog_params(struct dvb_frontend *fe,
@@ -693,7 +713,7 @@ static int xc5000_set_analog_params(struct dvb_frontend *fe,
693 struct xc5000_priv *priv = fe->tuner_priv; 713 struct xc5000_priv *priv = fe->tuner_priv;
694 int ret; 714 int ret;
695 715
696 if(priv->fwloaded == 0) 716 if (xc5000_is_firmware_loaded(fe) != XC_RESULT_SUCCESS)
697 xc_load_fw_and_init_tuner(fe); 717 xc_load_fw_and_init_tuner(fe);
698 718
699 dprintk(1, "%s() frequency=%d (in units of 62.5khz)\n", 719 dprintk(1, "%s() frequency=%d (in units of 62.5khz)\n",
@@ -808,11 +828,10 @@ static int xc_load_fw_and_init_tuner(struct dvb_frontend *fe)
808 struct xc5000_priv *priv = fe->tuner_priv; 828 struct xc5000_priv *priv = fe->tuner_priv;
809 int ret = 0; 829 int ret = 0;
810 830
811 if (priv->fwloaded == 0) { 831 if (xc5000_is_firmware_loaded(fe) != XC_RESULT_SUCCESS) {
812 ret = xc5000_fwupload(fe); 832 ret = xc5000_fwupload(fe);
813 if (ret != XC_RESULT_SUCCESS) 833 if (ret != XC_RESULT_SUCCESS)
814 return ret; 834 return ret;
815 priv->fwloaded = 1;
816 } 835 }
817 836
818 /* Start the tuner self-calibration process */ 837 /* Start the tuner self-calibration process */
@@ -852,7 +871,6 @@ static int xc5000_sleep(struct dvb_frontend *fe)
852 return -EREMOTEIO; 871 return -EREMOTEIO;
853 } 872 }
854 else { 873 else {
855 /* priv->fwloaded = 0; */
856 return XC_RESULT_SUCCESS; 874 return XC_RESULT_SUCCESS;
857 } 875 }
858} 876}
@@ -933,7 +951,6 @@ struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
933 cfg->i2c_address); 951 cfg->i2c_address);
934 printk(KERN_INFO 952 printk(KERN_INFO
935 "xc5000: Firmware has been loaded previously\n"); 953 "xc5000: Firmware has been loaded previously\n");
936 priv->fwloaded = 1;
937 break; 954 break;
938 case XC_PRODUCT_ID_FW_NOT_LOADED: 955 case XC_PRODUCT_ID_FW_NOT_LOADED:
939 printk(KERN_INFO 956 printk(KERN_INFO
@@ -941,7 +958,6 @@ struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
941 cfg->i2c_address); 958 cfg->i2c_address);
942 printk(KERN_INFO 959 printk(KERN_INFO
943 "xc5000: Firmware has not been loaded previously\n"); 960 "xc5000: Firmware has not been loaded previously\n");
944 priv->fwloaded = 0;
945 break; 961 break;
946 default: 962 default:
947 printk(KERN_ERR 963 printk(KERN_ERR
diff --git a/drivers/media/common/tuners/xc5000_priv.h b/drivers/media/common/tuners/xc5000_priv.h
index ecebfe4745ad..a72a9887fe7f 100644
--- a/drivers/media/common/tuners/xc5000_priv.h
+++ b/drivers/media/common/tuners/xc5000_priv.h
@@ -30,7 +30,6 @@ struct xc5000_priv {
30 u32 bandwidth; 30 u32 bandwidth;
31 u8 video_standard; 31 u8 video_standard;
32 u8 rf_mode; 32 u8 rf_mode;
33 u8 fwloaded;
34 33
35 void *devptr; 34 void *devptr;
36}; 35};
diff --git a/drivers/media/dvb/dvb-usb/gl861.c b/drivers/media/dvb/dvb-usb/gl861.c
index 0a8ac64a4e33..037f7ffb47b2 100644
--- a/drivers/media/dvb/dvb-usb/gl861.c
+++ b/drivers/media/dvb/dvb-usb/gl861.c
@@ -47,6 +47,8 @@ static int gl861_i2c_msg(struct dvb_usb_device *d, u8 addr,
47 return -EINVAL; 47 return -EINVAL;
48 } 48 }
49 49
50 msleep(1); /* avoid I2C errors */
51
50 return usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), req, type, 52 return usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), req, type,
51 value, index, rbuf, rlen, 2000); 53 value, index, rbuf, rlen, 2000);
52} 54}
@@ -92,16 +94,6 @@ static struct i2c_algorithm gl861_i2c_algo = {
92}; 94};
93 95
94/* Callbacks for DVB USB */ 96/* Callbacks for DVB USB */
95static int gl861_identify_state(struct usb_device *udev,
96 struct dvb_usb_device_properties *props,
97 struct dvb_usb_device_description **desc,
98 int *cold)
99{
100 *cold = 0;
101
102 return 0;
103}
104
105static struct zl10353_config gl861_zl10353_config = { 97static struct zl10353_config gl861_zl10353_config = {
106 .demod_address = 0x0f, 98 .demod_address = 0x0f,
107 .no_tuner = 1, 99 .no_tuner = 1,
@@ -172,7 +164,6 @@ static struct dvb_usb_device_properties gl861_properties = {
172 164
173 .size_of_priv = 0, 165 .size_of_priv = 0,
174 166
175 .identify_state = gl861_identify_state,
176 .num_adapters = 1, 167 .num_adapters = 1,
177 .adapter = {{ 168 .adapter = {{
178 169
@@ -194,13 +185,15 @@ static struct dvb_usb_device_properties gl861_properties = {
194 185
195 .num_device_descs = 2, 186 .num_device_descs = 2,
196 .devices = { 187 .devices = {
197 { "MSI Mega Sky 55801 DVB-T USB2.0", 188 {
198 { &gl861_table[0], NULL }, 189 .name = "MSI Mega Sky 55801 DVB-T USB2.0",
199 { NULL }, 190 .cold_ids = { NULL },
191 .warm_ids = { &gl861_table[0], NULL },
200 }, 192 },
201 { "A-LINK DTU DVB-T USB2.0", 193 {
202 { &gl861_table[1], NULL }, 194 .name = "A-LINK DTU DVB-T USB2.0",
203 { NULL }, 195 .cold_ids = { NULL },
196 .warm_ids = { &gl861_table[1], NULL },
204 }, 197 },
205 } 198 }
206}; 199};
diff --git a/drivers/media/dvb/dvb-usb/umt-010.c b/drivers/media/dvb/dvb-usb/umt-010.c
index 9e7653bb3b66..118aab1a3e54 100644
--- a/drivers/media/dvb/dvb-usb/umt-010.c
+++ b/drivers/media/dvb/dvb-usb/umt-010.c
@@ -107,7 +107,7 @@ static struct dvb_usb_device_properties umt_properties = {
107 /* parameter for the MPEG2-data transfer */ 107 /* parameter for the MPEG2-data transfer */
108 .stream = { 108 .stream = {
109 .type = USB_BULK, 109 .type = USB_BULK,
110 .count = 20, 110 .count = MAX_NO_URBS_FOR_DATA_STREAM,
111 .endpoint = 0x06, 111 .endpoint = 0x06,
112 .u = { 112 .u = {
113 .bulk = { 113 .bulk = {
diff --git a/drivers/media/dvb/frontends/au8522.c b/drivers/media/dvb/frontends/au8522.c
index 084a280c2d7f..03900d241a76 100644
--- a/drivers/media/dvb/frontends/au8522.c
+++ b/drivers/media/dvb/frontends/au8522.c
@@ -463,10 +463,13 @@ static int au8522_set_frontend(struct dvb_frontend *fe,
463 struct dvb_frontend_parameters *p) 463 struct dvb_frontend_parameters *p)
464{ 464{
465 struct au8522_state *state = fe->demodulator_priv; 465 struct au8522_state *state = fe->demodulator_priv;
466 int ret = -EINVAL;
466 467
467 dprintk("%s(frequency=%d)\n", __func__, p->frequency); 468 dprintk("%s(frequency=%d)\n", __func__, p->frequency);
468 469
469 state->current_frequency = p->frequency; 470 if ((state->current_frequency == p->frequency) &&
471 (state->current_modulation == p->u.vsb.modulation))
472 return 0;
470 473
471 au8522_enable_modulation(fe, p->u.vsb.modulation); 474 au8522_enable_modulation(fe, p->u.vsb.modulation);
472 475
@@ -476,11 +479,16 @@ static int au8522_set_frontend(struct dvb_frontend *fe,
476 if (fe->ops.tuner_ops.set_params) { 479 if (fe->ops.tuner_ops.set_params) {
477 if (fe->ops.i2c_gate_ctrl) 480 if (fe->ops.i2c_gate_ctrl)
478 fe->ops.i2c_gate_ctrl(fe, 1); 481 fe->ops.i2c_gate_ctrl(fe, 1);
479 fe->ops.tuner_ops.set_params(fe, p); 482 ret = fe->ops.tuner_ops.set_params(fe, p);
480 if (fe->ops.i2c_gate_ctrl) 483 if (fe->ops.i2c_gate_ctrl)
481 fe->ops.i2c_gate_ctrl(fe, 0); 484 fe->ops.i2c_gate_ctrl(fe, 0);
482 } 485 }
483 486
487 if (ret < 0)
488 return ret;
489
490 state->current_frequency = p->frequency;
491
484 return 0; 492 return 0;
485} 493}
486 494
@@ -498,6 +506,16 @@ static int au8522_init(struct dvb_frontend *fe)
498 return 0; 506 return 0;
499} 507}
500 508
509static int au8522_sleep(struct dvb_frontend *fe)
510{
511 struct au8522_state *state = fe->demodulator_priv;
512 dprintk("%s()\n", __func__);
513
514 state->current_frequency = 0;
515
516 return 0;
517}
518
501static int au8522_read_status(struct dvb_frontend *fe, fe_status_t *status) 519static int au8522_read_status(struct dvb_frontend *fe, fe_status_t *status)
502{ 520{
503 struct au8522_state *state = fe->demodulator_priv; 521 struct au8522_state *state = fe->demodulator_priv;
@@ -509,10 +527,8 @@ static int au8522_read_status(struct dvb_frontend *fe, fe_status_t *status)
509 if (state->current_modulation == VSB_8) { 527 if (state->current_modulation == VSB_8) {
510 dprintk("%s() Checking VSB_8\n", __func__); 528 dprintk("%s() Checking VSB_8\n", __func__);
511 reg = au8522_readreg(state, 0x4088); 529 reg = au8522_readreg(state, 0x4088);
512 if (reg & 0x01) 530 if ((reg & 0x03) == 0x03)
513 *status |= FE_HAS_VITERBI; 531 *status |= FE_HAS_LOCK | FE_HAS_SYNC | FE_HAS_VITERBI;
514 if (reg & 0x02)
515 *status |= FE_HAS_LOCK | FE_HAS_SYNC;
516 } else { 532 } else {
517 dprintk("%s() Checking QAM\n", __func__); 533 dprintk("%s() Checking QAM\n", __func__);
518 reg = au8522_readreg(state, 0x4541); 534 reg = au8522_readreg(state, 0x4541);
@@ -672,6 +688,7 @@ static struct dvb_frontend_ops au8522_ops = {
672 }, 688 },
673 689
674 .init = au8522_init, 690 .init = au8522_init,
691 .sleep = au8522_sleep,
675 .i2c_gate_ctrl = au8522_i2c_gate_ctrl, 692 .i2c_gate_ctrl = au8522_i2c_gate_ctrl,
676 .set_frontend = au8522_set_frontend, 693 .set_frontend = au8522_set_frontend,
677 .get_frontend = au8522_get_frontend, 694 .get_frontend = au8522_get_frontend,
diff --git a/drivers/media/dvb/frontends/stv0299.c b/drivers/media/dvb/frontends/stv0299.c
index 17556183e871..35435bef8e79 100644
--- a/drivers/media/dvb/frontends/stv0299.c
+++ b/drivers/media/dvb/frontends/stv0299.c
@@ -63,6 +63,7 @@ struct stv0299_state {
63 u32 symbol_rate; 63 u32 symbol_rate;
64 fe_code_rate_t fec_inner; 64 fe_code_rate_t fec_inner;
65 int errmode; 65 int errmode;
66 u32 ucblocks;
66}; 67};
67 68
68#define STATUS_BER 0 69#define STATUS_BER 0
@@ -501,8 +502,10 @@ static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber)
501{ 502{
502 struct stv0299_state* state = fe->demodulator_priv; 503 struct stv0299_state* state = fe->demodulator_priv;
503 504
504 if (state->errmode != STATUS_BER) return 0; 505 if (state->errmode != STATUS_BER)
505 *ber = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); 506 return -ENOSYS;
507
508 *ber = stv0299_readreg(state, 0x1e) | (stv0299_readreg(state, 0x1d) << 8);
506 509
507 return 0; 510 return 0;
508} 511}
@@ -540,8 +543,12 @@ static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
540{ 543{
541 struct stv0299_state* state = fe->demodulator_priv; 544 struct stv0299_state* state = fe->demodulator_priv;
542 545
543 if (state->errmode != STATUS_UCBLOCKS) *ucblocks = 0; 546 if (state->errmode != STATUS_UCBLOCKS)
544 else *ucblocks = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); 547 return -ENOSYS;
548
549 state->ucblocks += stv0299_readreg(state, 0x1e);
550 state->ucblocks += (stv0299_readreg(state, 0x1d) << 8);
551 *ucblocks = state->ucblocks;
545 552
546 return 0; 553 return 0;
547} 554}
diff --git a/drivers/media/dvb/frontends/tda10023.c b/drivers/media/dvb/frontends/tda10023.c
index 0727b80bc4d2..c6ff5b82ff80 100644
--- a/drivers/media/dvb/frontends/tda10023.c
+++ b/drivers/media/dvb/frontends/tda10023.c
@@ -116,9 +116,12 @@ static u8 tda10023_readreg (struct tda10023_state* state, u8 reg)
116 int ret; 116 int ret;
117 117
118 ret = i2c_transfer (state->i2c, msg, 2); 118 ret = i2c_transfer (state->i2c, msg, 2);
119 if (ret != 2) 119 if (ret != 2) {
120 printk("DVB: TDA10023: %s: readreg error (ret == %i)\n", 120 int num = state->frontend.dvb ? state->frontend.dvb->num : -1;
121 __func__, ret); 121 printk(KERN_ERR "DVB: TDA10023(%d): %s: readreg error "
122 "(reg == 0x%02x, ret == %i)\n",
123 num, __func__, reg, ret);
124 }
122 return b1[0]; 125 return b1[0];
123} 126}
124 127
@@ -129,11 +132,12 @@ static int tda10023_writereg (struct tda10023_state* state, u8 reg, u8 data)
129 int ret; 132 int ret;
130 133
131 ret = i2c_transfer (state->i2c, &msg, 1); 134 ret = i2c_transfer (state->i2c, &msg, 1);
132 if (ret != 1) 135 if (ret != 1) {
133 printk("DVB: TDA10023(%d): %s, writereg error " 136 int num = state->frontend.dvb ? state->frontend.dvb->num : -1;
137 printk(KERN_ERR "DVB: TDA10023(%d): %s, writereg error "
134 "(reg == 0x%02x, val == 0x%02x, ret == %i)\n", 138 "(reg == 0x%02x, val == 0x%02x, ret == %i)\n",
135 state->frontend.dvb->num, __func__, reg, data, ret); 139 num, __func__, reg, data, ret);
136 140 }
137 return (ret != 1) ? -EREMOTEIO : 0; 141 return (ret != 1) ? -EREMOTEIO : 0;
138} 142}
139 143
@@ -464,7 +468,7 @@ struct dvb_frontend* tda10023_attach(const struct tda1002x_config* config,
464 int i; 468 int i;
465 469
466 /* allocate memory for the internal state */ 470 /* allocate memory for the internal state */
467 state = kmalloc(sizeof(struct tda10023_state), GFP_KERNEL); 471 state = kzalloc(sizeof(struct tda10023_state), GFP_KERNEL);
468 if (state == NULL) goto error; 472 if (state == NULL) goto error;
469 473
470 /* setup the state */ 474 /* setup the state */
diff --git a/drivers/media/dvb/frontends/tda1004x.c b/drivers/media/dvb/frontends/tda1004x.c
index 49973846373e..a0d638653567 100644
--- a/drivers/media/dvb/frontends/tda1004x.c
+++ b/drivers/media/dvb/frontends/tda1004x.c
@@ -1248,11 +1248,14 @@ struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
1248 struct i2c_adapter* i2c) 1248 struct i2c_adapter* i2c)
1249{ 1249{
1250 struct tda1004x_state *state; 1250 struct tda1004x_state *state;
1251 int id;
1251 1252
1252 /* allocate memory for the internal state */ 1253 /* allocate memory for the internal state */
1253 state = kmalloc(sizeof(struct tda1004x_state), GFP_KERNEL); 1254 state = kmalloc(sizeof(struct tda1004x_state), GFP_KERNEL);
1254 if (!state) 1255 if (!state) {
1256 printk(KERN_ERR "Can't alocate memory for tda10045 state\n");
1255 return NULL; 1257 return NULL;
1258 }
1256 1259
1257 /* setup the state */ 1260 /* setup the state */
1258 state->config = config; 1261 state->config = config;
@@ -1260,7 +1263,15 @@ struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
1260 state->demod_type = TDA1004X_DEMOD_TDA10045; 1263 state->demod_type = TDA1004X_DEMOD_TDA10045;
1261 1264
1262 /* check if the demod is there */ 1265 /* check if the demod is there */
1263 if (tda1004x_read_byte(state, TDA1004X_CHIPID) != 0x25) { 1266 id = tda1004x_read_byte(state, TDA1004X_CHIPID);
1267 if (id < 0) {
1268 printk(KERN_ERR "tda10045: chip is not answering. Giving up.\n");
1269 kfree(state);
1270 return NULL;
1271 }
1272
1273 if (id != 0x25) {
1274 printk(KERN_ERR "Invalid tda1004x ID = 0x%02x. Can't proceed\n", id);
1264 kfree(state); 1275 kfree(state);
1265 return NULL; 1276 return NULL;
1266 } 1277 }
@@ -1307,11 +1318,14 @@ struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config,
1307 struct i2c_adapter* i2c) 1318 struct i2c_adapter* i2c)
1308{ 1319{
1309 struct tda1004x_state *state; 1320 struct tda1004x_state *state;
1321 int id;
1310 1322
1311 /* allocate memory for the internal state */ 1323 /* allocate memory for the internal state */
1312 state = kmalloc(sizeof(struct tda1004x_state), GFP_KERNEL); 1324 state = kmalloc(sizeof(struct tda1004x_state), GFP_KERNEL);
1313 if (!state) 1325 if (!state) {
1326 printk(KERN_ERR "Can't alocate memory for tda10046 state\n");
1314 return NULL; 1327 return NULL;
1328 }
1315 1329
1316 /* setup the state */ 1330 /* setup the state */
1317 state->config = config; 1331 state->config = config;
@@ -1319,7 +1333,14 @@ struct dvb_frontend* tda10046_attach(const struct tda1004x_config* config,
1319 state->demod_type = TDA1004X_DEMOD_TDA10046; 1333 state->demod_type = TDA1004X_DEMOD_TDA10046;
1320 1334
1321 /* check if the demod is there */ 1335 /* check if the demod is there */
1322 if (tda1004x_read_byte(state, TDA1004X_CHIPID) != 0x46) { 1336 id = tda1004x_read_byte(state, TDA1004X_CHIPID);
1337 if (id < 0) {
1338 printk(KERN_ERR "tda10046: chip is not answering. Giving up.\n");
1339 kfree(state);
1340 return NULL;
1341 }
1342 if (id != 0x46) {
1343 printk(KERN_ERR "Invalid tda1004x ID = 0x%02x. Can't proceed\n", id);
1323 kfree(state); 1344 kfree(state);
1324 return NULL; 1345 return NULL;
1325 } 1346 }
diff --git a/drivers/media/dvb/ttpci/Kconfig b/drivers/media/dvb/ttpci/Kconfig
index d4339b1b3b68..07643e010093 100644
--- a/drivers/media/dvb/ttpci/Kconfig
+++ b/drivers/media/dvb/ttpci/Kconfig
@@ -101,6 +101,7 @@ config DVB_BUDGET
101config DVB_BUDGET_CI 101config DVB_BUDGET_CI
102 tristate "Budget cards with onboard CI connector" 102 tristate "Budget cards with onboard CI connector"
103 depends on DVB_BUDGET_CORE && I2C 103 depends on DVB_BUDGET_CORE && I2C
104 depends on INPUT # due to IR
104 select DVB_STV0297 if !DVB_FE_CUSTOMISE 105 select DVB_STV0297 if !DVB_FE_CUSTOMISE
105 select DVB_STV0299 if !DVB_FE_CUSTOMISE 106 select DVB_STV0299 if !DVB_FE_CUSTOMISE
106 select DVB_TDA1004X if !DVB_FE_CUSTOMISE 107 select DVB_TDA1004X if !DVB_FE_CUSTOMISE
diff --git a/drivers/media/dvb/ttpci/av7110_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c
index 9d81074b31df..3a3f5279e927 100644
--- a/drivers/media/dvb/ttpci/av7110_hw.c
+++ b/drivers/media/dvb/ttpci/av7110_hw.c
@@ -427,6 +427,7 @@ static int __av7110_send_fw_cmd(struct av7110 *av7110, u16* buf, int length)
427 if (err) { 427 if (err) {
428 printk(KERN_ERR "%s: timeout waiting on busy %s QUEUE\n", 428 printk(KERN_ERR "%s: timeout waiting on busy %s QUEUE\n",
429 __func__, type); 429 __func__, type);
430 av7110->arm_errors++;
430 return -ETIMEDOUT; 431 return -ETIMEDOUT;
431 } 432 }
432 msleep(1); 433 msleep(1);
@@ -853,10 +854,8 @@ static osd_raw_window_t bpp2bit[8] = {
853 854
854static inline int WaitUntilBmpLoaded(struct av7110 *av7110) 855static inline int WaitUntilBmpLoaded(struct av7110 *av7110)
855{ 856{
856 int ret = wait_event_interruptible_timeout(av7110->bmpq, 857 int ret = wait_event_timeout(av7110->bmpq,
857 av7110->bmp_state != BMP_LOADING, 10*HZ); 858 av7110->bmp_state != BMP_LOADING, 10*HZ);
858 if (ret == -ERESTARTSYS)
859 return ret;
860 if (ret == 0) { 859 if (ret == 0) {
861 printk("dvb-ttpci: warning: timeout waiting in LoadBitmap: %d, %d\n", 860 printk("dvb-ttpci: warning: timeout waiting in LoadBitmap: %d, %d\n",
862 ret, av7110->bmp_state); 861 ret, av7110->bmp_state);
diff --git a/drivers/media/video/au0828/au0828-cards.c b/drivers/media/video/au0828/au0828-cards.c
index a2a6983444fa..898e12395e7c 100644
--- a/drivers/media/video/au0828/au0828-cards.c
+++ b/drivers/media/video/au0828/au0828-cards.c
@@ -77,8 +77,14 @@ static void hauppauge_eeprom(struct au0828_dev *dev, u8 *eeprom_data)
77 77
78 /* Make sure we support the board model */ 78 /* Make sure we support the board model */
79 switch (tv.model) { 79 switch (tv.model) {
80 case 72000: /* WinTV-HVR950q (Retail, IR, ATSC/QAM */
80 case 72001: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and basic analog video */ 81 case 72001: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and basic analog video */
82 case 72211: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and basic analog video */
83 case 72221: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and basic analog video */
84 case 72231: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and basic analog video */
85 case 72241: /* WinTV-HVR950q (OEM, No IR, ATSC/QAM and basic analog video */
81 case 72301: /* WinTV-HVR850 (Retail, IR, ATSC and basic analog video */ 86 case 72301: /* WinTV-HVR850 (Retail, IR, ATSC and basic analog video */
87 case 72500: /* WinTV-HVR950q (OEM, No IR, ATSC/QAM */
82 break; 88 break;
83 default: 89 default:
84 printk(KERN_WARNING "%s: warning: " 90 printk(KERN_WARNING "%s: warning: "
@@ -175,6 +181,18 @@ struct usb_device_id au0828_usb_id_table [] = {
175 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR850 }, 181 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR850 },
176 { USB_DEVICE(0x0fe9, 0xd620), 182 { USB_DEVICE(0x0fe9, 0xd620),
177 .driver_info = AU0828_BOARD_DVICO_FUSIONHDTV7 }, 183 .driver_info = AU0828_BOARD_DVICO_FUSIONHDTV7 },
184 { USB_DEVICE(0x2040, 0x7210),
185 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
186 { USB_DEVICE(0x2040, 0x7217),
187 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
188 { USB_DEVICE(0x2040, 0x721b),
189 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
190 { USB_DEVICE(0x2040, 0x721f),
191 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
192 { USB_DEVICE(0x2040, 0x7280),
193 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
194 { USB_DEVICE(0x0fd9, 0x0008),
195 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q },
178 { }, 196 { },
179}; 197};
180 198
diff --git a/drivers/media/video/cx18/Kconfig b/drivers/media/video/cx18/Kconfig
index 5f942690570c..9aefdc5ea79a 100644
--- a/drivers/media/video/cx18/Kconfig
+++ b/drivers/media/video/cx18/Kconfig
@@ -10,8 +10,8 @@ config VIDEO_CX18
10 select VIDEO_TVEEPROM 10 select VIDEO_TVEEPROM
11 select VIDEO_CX2341X 11 select VIDEO_CX2341X
12 select VIDEO_CS5345 12 select VIDEO_CS5345
13 select DVB_S5H1409 13 select DVB_S5H1409 if !DVB_FE_CUSTOMISE
14 select MEDIA_TUNER_MXL5005S 14 select MEDIA_TUNER_MXL5005S if !DVB_FE_CUSTOMISE
15 ---help--- 15 ---help---
16 This is a video4linux driver for Conexant cx23418 based 16 This is a video4linux driver for Conexant cx23418 based
17 PCI combo video recorder devices. 17 PCI combo video recorder devices.
diff --git a/drivers/media/video/cx18/cx18-av-core.c b/drivers/media/video/cx18/cx18-av-core.c
index 9a26751615c6..faca43eb940f 100644
--- a/drivers/media/video/cx18/cx18-av-core.c
+++ b/drivers/media/video/cx18/cx18-av-core.c
@@ -69,6 +69,58 @@ int cx18_av_and_or4(struct cx18 *cx, u16 addr, u32 and_mask,
69 or_value); 69 or_value);
70} 70}
71 71
72int cx18_av_write_no_acfg(struct cx18 *cx, u16 addr, u8 value, int no_acfg_mask)
73{
74 int retval;
75 u32 saved_reg[8] = {0};
76
77 if (no_acfg_mask & CXADEC_NO_ACFG_AFE) {
78 saved_reg[0] = cx18_av_read4(cx, CXADEC_CHIP_CTRL);
79 saved_reg[1] = cx18_av_read4(cx, CXADEC_AFE_CTRL);
80 }
81
82 if (no_acfg_mask & CXADEC_NO_ACFG_PLL) {
83 saved_reg[2] = cx18_av_read4(cx, CXADEC_PLL_CTRL1);
84 saved_reg[3] = cx18_av_read4(cx, CXADEC_VID_PLL_FRAC);
85 }
86
87 if (no_acfg_mask & CXADEC_NO_ACFG_VID) {
88 saved_reg[4] = cx18_av_read4(cx, CXADEC_HORIZ_TIM_CTRL);
89 saved_reg[5] = cx18_av_read4(cx, CXADEC_VERT_TIM_CTRL);
90 saved_reg[6] = cx18_av_read4(cx, CXADEC_SRC_COMB_CFG);
91 saved_reg[7] = cx18_av_read4(cx, CXADEC_CHROMA_VBIOFF_CFG);
92 }
93
94 retval = cx18_av_write(cx, addr, value);
95
96 if (no_acfg_mask & CXADEC_NO_ACFG_AFE) {
97 cx18_av_write4(cx, CXADEC_CHIP_CTRL, saved_reg[0]);
98 cx18_av_write4(cx, CXADEC_AFE_CTRL, saved_reg[1]);
99 }
100
101 if (no_acfg_mask & CXADEC_NO_ACFG_PLL) {
102 cx18_av_write4(cx, CXADEC_PLL_CTRL1, saved_reg[2]);
103 cx18_av_write4(cx, CXADEC_VID_PLL_FRAC, saved_reg[3]);
104 }
105
106 if (no_acfg_mask & CXADEC_NO_ACFG_VID) {
107 cx18_av_write4(cx, CXADEC_HORIZ_TIM_CTRL, saved_reg[4]);
108 cx18_av_write4(cx, CXADEC_VERT_TIM_CTRL, saved_reg[5]);
109 cx18_av_write4(cx, CXADEC_SRC_COMB_CFG, saved_reg[6]);
110 cx18_av_write4(cx, CXADEC_CHROMA_VBIOFF_CFG, saved_reg[7]);
111 }
112
113 return retval;
114}
115
116int cx18_av_and_or_no_acfg(struct cx18 *cx, u16 addr, unsigned and_mask,
117 u8 or_value, int no_acfg_mask)
118{
119 return cx18_av_write_no_acfg(cx, addr,
120 (cx18_av_read(cx, addr) & and_mask) |
121 or_value, no_acfg_mask);
122}
123
72/* ----------------------------------------------------------------------- */ 124/* ----------------------------------------------------------------------- */
73 125
74static int set_input(struct cx18 *cx, enum cx18_av_video_input vid_input, 126static int set_input(struct cx18 *cx, enum cx18_av_video_input vid_input,
@@ -170,13 +222,15 @@ static void input_change(struct cx18 *cx)
170 222
171 /* Follow step 8c and 8d of section 3.16 in the cx18_av datasheet */ 223 /* Follow step 8c and 8d of section 3.16 in the cx18_av datasheet */
172 if (std & V4L2_STD_SECAM) 224 if (std & V4L2_STD_SECAM)
173 cx18_av_write(cx, 0x402, 0); 225 cx18_av_write_no_acfg(cx, 0x402, 0, CXADEC_NO_ACFG_ALL);
174 else { 226 else {
175 cx18_av_write(cx, 0x402, 0x04); 227 cx18_av_write_no_acfg(cx, 0x402, 0x04, CXADEC_NO_ACFG_ALL);
176 cx18_av_write(cx, 0x49f, (std & V4L2_STD_NTSC) ? 0x14 : 0x11); 228 cx18_av_write(cx, 0x49f, (std & V4L2_STD_NTSC) ? 0x14 : 0x11);
177 } 229 }
178 cx18_av_and_or(cx, 0x401, ~0x60, 0); 230 cx18_av_and_or_no_acfg(cx, 0x401, ~0x60, 0,
179 cx18_av_and_or(cx, 0x401, ~0x60, 0x60); 231 CXADEC_NO_ACFG_PLL | CXADEC_NO_ACFG_VID);
232 cx18_av_and_or_no_acfg(cx, 0x401, ~0x60, 0x60,
233 CXADEC_NO_ACFG_PLL | CXADEC_NO_ACFG_VID);
180 234
181 if (std & V4L2_STD_525_60) { 235 if (std & V4L2_STD_525_60) {
182 if (std == V4L2_STD_NTSC_M_JP) { 236 if (std == V4L2_STD_NTSC_M_JP) {
@@ -228,7 +282,7 @@ static int set_input(struct cx18 *cx, enum cx18_av_video_input vid_input,
228 282
229 if ((vid_input & ~0xff0) || 283 if ((vid_input & ~0xff0) ||
230 luma < CX18_AV_SVIDEO_LUMA1 || 284 luma < CX18_AV_SVIDEO_LUMA1 ||
231 luma > CX18_AV_SVIDEO_LUMA4 || 285 luma > CX18_AV_SVIDEO_LUMA8 ||
232 chroma < CX18_AV_SVIDEO_CHROMA4 || 286 chroma < CX18_AV_SVIDEO_CHROMA4 ||
233 chroma > CX18_AV_SVIDEO_CHROMA8) { 287 chroma > CX18_AV_SVIDEO_CHROMA8) {
234 CX18_ERR("0x%04x is not a valid video input!\n", 288 CX18_ERR("0x%04x is not a valid video input!\n",
@@ -262,7 +316,8 @@ static int set_input(struct cx18 *cx, enum cx18_av_video_input vid_input,
262 316
263 cx18_av_write(cx, 0x103, reg); 317 cx18_av_write(cx, 0x103, reg);
264 /* Set INPUT_MODE to Composite (0) or S-Video (1) */ 318 /* Set INPUT_MODE to Composite (0) or S-Video (1) */
265 cx18_av_and_or(cx, 0x401, ~0x6, is_composite ? 0 : 0x02); 319 cx18_av_and_or_no_acfg(cx, 0x401, ~0x6, is_composite ? 0 : 0x02,
320 CXADEC_NO_ACFG_PLL | CXADEC_NO_ACFG_VID);
266 /* Set CH_SEL_ADC2 to 1 if input comes from CH3 */ 321 /* Set CH_SEL_ADC2 to 1 if input comes from CH3 */
267 cx18_av_and_or(cx, 0x102, ~0x2, (reg & 0x80) == 0 ? 2 : 0); 322 cx18_av_and_or(cx, 0x102, ~0x2, (reg & 0x80) == 0 ? 2 : 0);
268 /* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2 and CH3 */ 323 /* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2 and CH3 */
@@ -318,12 +373,12 @@ static int set_v4lstd(struct cx18 *cx)
318 This happens for example with the Yuan MPC622. */ 373 This happens for example with the Yuan MPC622. */
319 if (fmt >= 4 && fmt < 8) { 374 if (fmt >= 4 && fmt < 8) {
320 /* Set format to NTSC-M */ 375 /* Set format to NTSC-M */
321 cx18_av_and_or(cx, 0x400, ~0xf, 1); 376 cx18_av_and_or_no_acfg(cx, 0x400, ~0xf, 1, CXADEC_NO_ACFG_AFE);
322 /* Turn off LCOMB */ 377 /* Turn off LCOMB */
323 cx18_av_and_or(cx, 0x47b, ~6, 0); 378 cx18_av_and_or(cx, 0x47b, ~6, 0);
324 } 379 }
325 cx18_av_and_or(cx, 0x400, ~0xf, fmt); 380 cx18_av_and_or_no_acfg(cx, 0x400, ~0xf, fmt, CXADEC_NO_ACFG_AFE);
326 cx18_av_and_or(cx, 0x403, ~0x3, pal_m); 381 cx18_av_and_or_no_acfg(cx, 0x403, ~0x3, pal_m, CXADEC_NO_ACFG_ALL);
327 cx18_av_vbi_setup(cx); 382 cx18_av_vbi_setup(cx);
328 input_change(cx); 383 input_change(cx);
329 return 0; 384 return 0;
diff --git a/drivers/media/video/cx18/cx18-av-core.h b/drivers/media/video/cx18/cx18-av-core.h
index 786901d72e9a..c172823ce1d8 100644
--- a/drivers/media/video/cx18/cx18-av-core.h
+++ b/drivers/media/video/cx18/cx18-av-core.h
@@ -37,12 +37,16 @@ enum cx18_av_video_input {
37 CX18_AV_COMPOSITE7, 37 CX18_AV_COMPOSITE7,
38 CX18_AV_COMPOSITE8, 38 CX18_AV_COMPOSITE8,
39 39
40 /* S-Video inputs consist of one luma input (In1-In4) ORed with one 40 /* S-Video inputs consist of one luma input (In1-In8) ORed with one
41 chroma input (In5-In8) */ 41 chroma input (In5-In8) */
42 CX18_AV_SVIDEO_LUMA1 = 0x10, 42 CX18_AV_SVIDEO_LUMA1 = 0x10,
43 CX18_AV_SVIDEO_LUMA2 = 0x20, 43 CX18_AV_SVIDEO_LUMA2 = 0x20,
44 CX18_AV_SVIDEO_LUMA3 = 0x30, 44 CX18_AV_SVIDEO_LUMA3 = 0x30,
45 CX18_AV_SVIDEO_LUMA4 = 0x40, 45 CX18_AV_SVIDEO_LUMA4 = 0x40,
46 CX18_AV_SVIDEO_LUMA5 = 0x50,
47 CX18_AV_SVIDEO_LUMA6 = 0x60,
48 CX18_AV_SVIDEO_LUMA7 = 0x70,
49 CX18_AV_SVIDEO_LUMA8 = 0x80,
46 CX18_AV_SVIDEO_CHROMA4 = 0x400, 50 CX18_AV_SVIDEO_CHROMA4 = 0x400,
47 CX18_AV_SVIDEO_CHROMA5 = 0x500, 51 CX18_AV_SVIDEO_CHROMA5 = 0x500,
48 CX18_AV_SVIDEO_CHROMA6 = 0x600, 52 CX18_AV_SVIDEO_CHROMA6 = 0x600,
@@ -291,14 +295,24 @@ struct cx18_av_state {
291#define CXADEC_SELECT_AUDIO_STANDARD_FM 0xF9 /* FM radio */ 295#define CXADEC_SELECT_AUDIO_STANDARD_FM 0xF9 /* FM radio */
292#define CXADEC_SELECT_AUDIO_STANDARD_AUTO 0xFF /* Auto detect */ 296#define CXADEC_SELECT_AUDIO_STANDARD_AUTO 0xFF /* Auto detect */
293 297
298/* Flags on what to preserve on write to 0x400-0x403 with cx18_av_.*_no_acfg()*/
299#define CXADEC_NO_ACFG_AFE 0x01 /* Preserve 0x100-0x107 */
300#define CXADEC_NO_ACFG_PLL 0x02 /* Preserve 0x108-0x10f */
301#define CXADEC_NO_ACFG_VID 0x04 /* Preserve 0x470-0x47f */
302#define CXADEC_NO_ACFG_ALL 0x07
303
294/* ----------------------------------------------------------------------- */ 304/* ----------------------------------------------------------------------- */
295/* cx18_av-core.c */ 305/* cx18_av-core.c */
296int cx18_av_write(struct cx18 *cx, u16 addr, u8 value); 306int cx18_av_write(struct cx18 *cx, u16 addr, u8 value);
297int cx18_av_write4(struct cx18 *cx, u16 addr, u32 value); 307int cx18_av_write4(struct cx18 *cx, u16 addr, u32 value);
308int cx18_av_write_no_acfg(struct cx18 *cx, u16 addr, u8 value,
309 int no_acfg_mask);
298u8 cx18_av_read(struct cx18 *cx, u16 addr); 310u8 cx18_av_read(struct cx18 *cx, u16 addr);
299u32 cx18_av_read4(struct cx18 *cx, u16 addr); 311u32 cx18_av_read4(struct cx18 *cx, u16 addr);
300int cx18_av_and_or(struct cx18 *cx, u16 addr, unsigned mask, u8 value); 312int cx18_av_and_or(struct cx18 *cx, u16 addr, unsigned mask, u8 value);
301int cx18_av_and_or4(struct cx18 *cx, u16 addr, u32 mask, u32 value); 313int cx18_av_and_or4(struct cx18 *cx, u16 addr, u32 mask, u32 value);
314int cx18_av_and_or_no_acfg(struct cx18 *cx, u16 addr, unsigned mask, u8 value,
315 int no_acfg_mask);
302int cx18_av_cmd(struct cx18 *cx, unsigned int cmd, void *arg); 316int cx18_av_cmd(struct cx18 *cx, unsigned int cmd, void *arg);
303 317
304/* ----------------------------------------------------------------------- */ 318/* ----------------------------------------------------------------------- */
diff --git a/drivers/media/video/cx18/cx18-cards.c b/drivers/media/video/cx18/cx18-cards.c
index baccd079243d..c26e0ef5b075 100644
--- a/drivers/media/video/cx18/cx18-cards.c
+++ b/drivers/media/video/cx18/cx18-cards.c
@@ -23,6 +23,7 @@
23 23
24#include "cx18-driver.h" 24#include "cx18-driver.h"
25#include "cx18-cards.h" 25#include "cx18-cards.h"
26#include "cx18-av-core.h"
26#include "cx18-i2c.h" 27#include "cx18-i2c.h"
27#include <media/cs5345.h> 28#include <media/cs5345.h>
28 29
@@ -54,22 +55,22 @@ static const struct cx18_card cx18_card_hvr1600_esmt = {
54 .hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER | 55 .hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER |
55 CX18_HW_CS5345 | CX18_HW_DVB, 56 CX18_HW_CS5345 | CX18_HW_DVB,
56 .video_inputs = { 57 .video_inputs = {
57 { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE7 }, 58 { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE7 },
58 { CX18_CARD_INPUT_SVIDEO1, 1, CX23418_SVIDEO1 }, 59 { CX18_CARD_INPUT_SVIDEO1, 1, CX18_AV_SVIDEO1 },
59 { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE3 }, 60 { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE3 },
60 { CX18_CARD_INPUT_SVIDEO2, 2, CX23418_SVIDEO2 }, 61 { CX18_CARD_INPUT_SVIDEO2, 2, CX18_AV_SVIDEO2 },
61 { CX18_CARD_INPUT_COMPOSITE2, 2, CX23418_COMPOSITE4 }, 62 { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE4 },
62 }, 63 },
63 .audio_inputs = { 64 .audio_inputs = {
64 { CX18_CARD_INPUT_AUD_TUNER, 65 { CX18_CARD_INPUT_AUD_TUNER,
65 CX23418_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 }, 66 CX18_AV_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 },
66 { CX18_CARD_INPUT_LINE_IN1, 67 { CX18_CARD_INPUT_LINE_IN1,
67 CX23418_AUDIO_SERIAL, CS5345_IN_2 }, 68 CX18_AV_AUDIO_SERIAL, CS5345_IN_2 },
68 { CX18_CARD_INPUT_LINE_IN2, 69 { CX18_CARD_INPUT_LINE_IN2,
69 CX23418_AUDIO_SERIAL, CS5345_IN_2 }, 70 CX18_AV_AUDIO_SERIAL, CS5345_IN_3 },
70 }, 71 },
71 .radio_input = { CX18_CARD_INPUT_AUD_TUNER, 72 .radio_input = { CX18_CARD_INPUT_AUD_TUNER,
72 CX23418_AUDIO_SERIAL, 0 }, 73 CX18_AV_AUDIO_SERIAL, CS5345_IN_4 },
73 .ddr = { 74 .ddr = {
74 /* ESMT M13S128324A-5B memory */ 75 /* ESMT M13S128324A-5B memory */
75 .chip_config = 0x003, 76 .chip_config = 0x003,
@@ -81,6 +82,11 @@ static const struct cx18_card cx18_card_hvr1600_esmt = {
81 }, 82 },
82 .gpio_init.initial_value = 0x3001, 83 .gpio_init.initial_value = 0x3001,
83 .gpio_init.direction = 0x3001, 84 .gpio_init.direction = 0x3001,
85 .gpio_i2c_slave_reset = {
86 .active_lo_mask = 0x3001,
87 .msecs_asserted = 10,
88 .msecs_recovery = 40,
89 },
84 .i2c = &cx18_i2c_std, 90 .i2c = &cx18_i2c_std,
85}; 91};
86 92
@@ -94,22 +100,22 @@ static const struct cx18_card cx18_card_hvr1600_samsung = {
94 .hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER | 100 .hw_all = CX18_HW_TVEEPROM | CX18_HW_TUNER |
95 CX18_HW_CS5345 | CX18_HW_DVB, 101 CX18_HW_CS5345 | CX18_HW_DVB,
96 .video_inputs = { 102 .video_inputs = {
97 { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE7 }, 103 { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE7 },
98 { CX18_CARD_INPUT_SVIDEO1, 1, CX23418_SVIDEO1 }, 104 { CX18_CARD_INPUT_SVIDEO1, 1, CX18_AV_SVIDEO1 },
99 { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE3 }, 105 { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE3 },
100 { CX18_CARD_INPUT_SVIDEO2, 2, CX23418_SVIDEO2 }, 106 { CX18_CARD_INPUT_SVIDEO2, 2, CX18_AV_SVIDEO2 },
101 { CX18_CARD_INPUT_COMPOSITE2, 2, CX23418_COMPOSITE4 }, 107 { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE4 },
102 }, 108 },
103 .audio_inputs = { 109 .audio_inputs = {
104 { CX18_CARD_INPUT_AUD_TUNER, 110 { CX18_CARD_INPUT_AUD_TUNER,
105 CX23418_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 }, 111 CX18_AV_AUDIO8, CS5345_IN_1 | CS5345_MCLK_1_5 },
106 { CX18_CARD_INPUT_LINE_IN1, 112 { CX18_CARD_INPUT_LINE_IN1,
107 CX23418_AUDIO_SERIAL, CS5345_IN_2 }, 113 CX18_AV_AUDIO_SERIAL, CS5345_IN_2 },
108 { CX18_CARD_INPUT_LINE_IN2, 114 { CX18_CARD_INPUT_LINE_IN2,
109 CX23418_AUDIO_SERIAL, CS5345_IN_2 }, 115 CX18_AV_AUDIO_SERIAL, CS5345_IN_3 },
110 }, 116 },
111 .radio_input = { CX18_CARD_INPUT_AUD_TUNER, 117 .radio_input = { CX18_CARD_INPUT_AUD_TUNER,
112 CX23418_AUDIO_SERIAL, 0 }, 118 CX18_AV_AUDIO_SERIAL, CS5345_IN_4 },
113 .ddr = { 119 .ddr = {
114 /* Samsung K4D263238G-VC33 memory */ 120 /* Samsung K4D263238G-VC33 memory */
115 .chip_config = 0x003, 121 .chip_config = 0x003,
@@ -121,6 +127,11 @@ static const struct cx18_card cx18_card_hvr1600_samsung = {
121 }, 127 },
122 .gpio_init.initial_value = 0x3001, 128 .gpio_init.initial_value = 0x3001,
123 .gpio_init.direction = 0x3001, 129 .gpio_init.direction = 0x3001,
130 .gpio_i2c_slave_reset = {
131 .active_lo_mask = 0x3001,
132 .msecs_asserted = 10,
133 .msecs_recovery = 40,
134 },
124 .i2c = &cx18_i2c_std, 135 .i2c = &cx18_i2c_std,
125}; 136};
126 137
@@ -141,19 +152,19 @@ static const struct cx18_card cx18_card_h900 = {
141 .hw_audio_ctrl = CX18_HW_CX23418, 152 .hw_audio_ctrl = CX18_HW_CX23418,
142 .hw_all = CX18_HW_TUNER, 153 .hw_all = CX18_HW_TUNER,
143 .video_inputs = { 154 .video_inputs = {
144 { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE2 }, 155 { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 },
145 { CX18_CARD_INPUT_SVIDEO1, 1, 156 { CX18_CARD_INPUT_SVIDEO1, 1,
146 CX23418_SVIDEO_LUMA3 | CX23418_SVIDEO_CHROMA4 }, 157 CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 },
147 { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE1 }, 158 { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE1 },
148 }, 159 },
149 .audio_inputs = { 160 .audio_inputs = {
150 { CX18_CARD_INPUT_AUD_TUNER, 161 { CX18_CARD_INPUT_AUD_TUNER,
151 CX23418_AUDIO8, 0 }, 162 CX18_AV_AUDIO8, 0 },
152 { CX18_CARD_INPUT_LINE_IN1, 163 { CX18_CARD_INPUT_LINE_IN1,
153 CX23418_AUDIO_SERIAL, 0 }, 164 CX18_AV_AUDIO_SERIAL, 0 },
154 }, 165 },
155 .radio_input = { CX18_CARD_INPUT_AUD_TUNER, 166 .radio_input = { CX18_CARD_INPUT_AUD_TUNER,
156 CX23418_AUDIO_SERIAL, 0 }, 167 CX18_AV_AUDIO_SERIAL, 0 },
157 .tuners = { 168 .tuners = {
158 { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 }, 169 { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
159 }, 170 },
@@ -183,23 +194,26 @@ static const struct cx18_card_pci_info cx18_pci_mpc718[] = {
183static const struct cx18_card cx18_card_mpc718 = { 194static const struct cx18_card cx18_card_mpc718 = {
184 .type = CX18_CARD_YUAN_MPC718, 195 .type = CX18_CARD_YUAN_MPC718,
185 .name = "Yuan MPC718", 196 .name = "Yuan MPC718",
186 .comment = "Not yet supported!\n", 197 .comment = "Some Composite and S-Video inputs are currently working.\n",
187 .v4l2_capabilities = 0, 198 .v4l2_capabilities = CX18_CAP_ENCODER,
188 .hw_audio_ctrl = CX18_HW_CX23418, 199 .hw_audio_ctrl = CX18_HW_CX23418,
189 .hw_all = CX18_HW_TUNER, 200 .hw_all = CX18_HW_TUNER,
190 .video_inputs = { 201 .video_inputs = {
191 { CX18_CARD_INPUT_VID_TUNER, 0, CX23418_COMPOSITE7 }, 202 { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 },
192 { CX18_CARD_INPUT_SVIDEO1, 1, CX23418_SVIDEO1 }, 203 { CX18_CARD_INPUT_SVIDEO1, 1,
193 { CX18_CARD_INPUT_COMPOSITE1, 1, CX23418_COMPOSITE3 }, 204 CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 },
205 { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE1 },
206 { CX18_CARD_INPUT_SVIDEO2, 2,
207 CX18_AV_SVIDEO_LUMA7 | CX18_AV_SVIDEO_CHROMA8 },
208 { CX18_CARD_INPUT_COMPOSITE2, 2, CX18_AV_COMPOSITE6 },
209 { CX18_CARD_INPUT_COMPOSITE3, 2, CX18_AV_COMPOSITE3 },
194 }, 210 },
195 .audio_inputs = { 211 .audio_inputs = {
196 { CX18_CARD_INPUT_AUD_TUNER, 212 { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 0 },
197 CX23418_AUDIO8, 0 }, 213 { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL, 0 },
198 { CX18_CARD_INPUT_LINE_IN1, 214 { CX18_CARD_INPUT_LINE_IN2, CX18_AV_AUDIO_SERIAL, 0 },
199 CX23418_AUDIO_SERIAL, 0 },
200 }, 215 },
201 .radio_input = { CX18_CARD_INPUT_AUD_TUNER, 216 .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO_SERIAL, 0 },
202 CX23418_AUDIO_SERIAL, 0 },
203 .tuners = { 217 .tuners = {
204 /* XC3028 tuner */ 218 /* XC3028 tuner */
205 { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 }, 219 { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
diff --git a/drivers/media/video/cx18/cx18-cards.h b/drivers/media/video/cx18/cx18-cards.h
index bccb67f0db16..dc2dd945d4c3 100644
--- a/drivers/media/video/cx18/cx18-cards.h
+++ b/drivers/media/video/cx18/cx18-cards.h
@@ -36,36 +36,6 @@
36#define CX18_CARD_INPUT_COMPOSITE2 5 36#define CX18_CARD_INPUT_COMPOSITE2 5
37#define CX18_CARD_INPUT_COMPOSITE3 6 37#define CX18_CARD_INPUT_COMPOSITE3 6
38 38
39enum cx34180_video_input {
40 /* Composite video inputs In1-In8 */
41 CX23418_COMPOSITE1 = 1,
42 CX23418_COMPOSITE2,
43 CX23418_COMPOSITE3,
44 CX23418_COMPOSITE4,
45 CX23418_COMPOSITE5,
46 CX23418_COMPOSITE6,
47 CX23418_COMPOSITE7,
48 CX23418_COMPOSITE8,
49
50 /* S-Video inputs consist of one luma input (In1-In4) ORed with one
51 chroma input (In5-In8) */
52 CX23418_SVIDEO_LUMA1 = 0x10,
53 CX23418_SVIDEO_LUMA2 = 0x20,
54 CX23418_SVIDEO_LUMA3 = 0x30,
55 CX23418_SVIDEO_LUMA4 = 0x40,
56 CX23418_SVIDEO_CHROMA4 = 0x400,
57 CX23418_SVIDEO_CHROMA5 = 0x500,
58 CX23418_SVIDEO_CHROMA6 = 0x600,
59 CX23418_SVIDEO_CHROMA7 = 0x700,
60 CX23418_SVIDEO_CHROMA8 = 0x800,
61
62 /* S-Video aliases for common luma/chroma combinations */
63 CX23418_SVIDEO1 = 0x510,
64 CX23418_SVIDEO2 = 0x620,
65 CX23418_SVIDEO3 = 0x730,
66 CX23418_SVIDEO4 = 0x840,
67};
68
69/* audio inputs */ 39/* audio inputs */
70#define CX18_CARD_INPUT_AUD_TUNER 1 40#define CX18_CARD_INPUT_AUD_TUNER 1
71#define CX18_CARD_INPUT_LINE_IN1 2 41#define CX18_CARD_INPUT_LINE_IN1 2
@@ -75,16 +45,6 @@ enum cx34180_video_input {
75#define CX18_CARD_MAX_AUDIO_INPUTS 3 45#define CX18_CARD_MAX_AUDIO_INPUTS 3
76#define CX18_CARD_MAX_TUNERS 2 46#define CX18_CARD_MAX_TUNERS 2
77 47
78enum cx23418_audio_input {
79 /* Audio inputs: serial or In4-In8 */
80 CX23418_AUDIO_SERIAL,
81 CX23418_AUDIO4 = 4,
82 CX23418_AUDIO5,
83 CX23418_AUDIO6,
84 CX23418_AUDIO7,
85 CX23418_AUDIO8,
86};
87
88/* V4L2 capability aliases */ 48/* V4L2 capability aliases */
89#define CX18_CAP_ENCODER (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TUNER | \ 49#define CX18_CAP_ENCODER (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TUNER | \
90 V4L2_CAP_AUDIO | V4L2_CAP_READWRITE) 50 V4L2_CAP_AUDIO | V4L2_CAP_READWRITE)
@@ -118,6 +78,13 @@ struct cx18_gpio_init { /* set initial GPIO DIR and OUT values */
118 u32 initial_value; 78 u32 initial_value;
119}; 79};
120 80
81struct cx18_gpio_i2c_slave_reset {
82 u32 active_lo_mask; /* GPIO outputs that reset i2c chips when low */
83 u32 active_hi_mask; /* GPIO outputs that reset i2c chips when high */
84 int msecs_asserted; /* time period reset must remain asserted */
85 int msecs_recovery; /* time after deassert for chips to be ready */
86};
87
121struct cx18_card_tuner { 88struct cx18_card_tuner {
122 v4l2_std_id std; /* standard for which the tuner is suitable */ 89 v4l2_std_id std; /* standard for which the tuner is suitable */
123 int tuner; /* tuner ID (from tuner.h) */ 90 int tuner; /* tuner ID (from tuner.h) */
@@ -154,7 +121,8 @@ struct cx18_card {
154 121
155 /* GPIO card-specific settings */ 122 /* GPIO card-specific settings */
156 u8 xceive_pin; /* XCeive tuner GPIO reset pin */ 123 u8 xceive_pin; /* XCeive tuner GPIO reset pin */
157 struct cx18_gpio_init gpio_init; 124 struct cx18_gpio_init gpio_init;
125 struct cx18_gpio_i2c_slave_reset gpio_i2c_slave_reset;
158 126
159 struct cx18_card_tuner tuners[CX18_CARD_MAX_TUNERS]; 127 struct cx18_card_tuner tuners[CX18_CARD_MAX_TUNERS];
160 struct cx18_card_tuner_i2c *i2c; 128 struct cx18_card_tuner_i2c *i2c;
diff --git a/drivers/media/video/cx18/cx18-dvb.c b/drivers/media/video/cx18/cx18-dvb.c
index c9744173f969..cae38985b131 100644
--- a/drivers/media/video/cx18/cx18-dvb.c
+++ b/drivers/media/video/cx18/cx18-dvb.c
@@ -69,11 +69,21 @@ static int cx18_dvb_start_feed(struct dvb_demux_feed *feed)
69 struct dvb_demux *demux = feed->demux; 69 struct dvb_demux *demux = feed->demux;
70 struct cx18_stream *stream = (struct cx18_stream *) demux->priv; 70 struct cx18_stream *stream = (struct cx18_stream *) demux->priv;
71 struct cx18 *cx = stream->cx; 71 struct cx18 *cx = stream->cx;
72 int ret = -EINVAL; 72 int ret;
73 u32 v; 73 u32 v;
74 74
75 CX18_DEBUG_INFO("Start feed: pid = 0x%x index = %d\n", 75 CX18_DEBUG_INFO("Start feed: pid = 0x%x index = %d\n",
76 feed->pid, feed->index); 76 feed->pid, feed->index);
77
78 mutex_lock(&cx->serialize_lock);
79 ret = cx18_init_on_first_open(cx);
80 mutex_unlock(&cx->serialize_lock);
81 if (ret) {
82 CX18_ERR("Failed to initialize firmware starting DVB feed\n");
83 return ret;
84 }
85 ret = -EINVAL;
86
77 switch (cx->card->type) { 87 switch (cx->card->type) {
78 case CX18_CARD_HVR_1600_ESMT: 88 case CX18_CARD_HVR_1600_ESMT:
79 case CX18_CARD_HVR_1600_SAMSUNG: 89 case CX18_CARD_HVR_1600_SAMSUNG:
@@ -101,6 +111,11 @@ static int cx18_dvb_start_feed(struct dvb_demux_feed *feed)
101 if (stream->dvb.feeding++ == 0) { 111 if (stream->dvb.feeding++ == 0) {
102 CX18_DEBUG_INFO("Starting Transport DMA\n"); 112 CX18_DEBUG_INFO("Starting Transport DMA\n");
103 ret = cx18_start_v4l2_encode_stream(stream); 113 ret = cx18_start_v4l2_encode_stream(stream);
114 if (ret < 0) {
115 CX18_DEBUG_INFO(
116 "Failed to start Transport DMA\n");
117 stream->dvb.feeding--;
118 }
104 } else 119 } else
105 ret = 0; 120 ret = 0;
106 mutex_unlock(&stream->dvb.feedlock); 121 mutex_unlock(&stream->dvb.feedlock);
diff --git a/drivers/media/video/cx18/cx18-gpio.c b/drivers/media/video/cx18/cx18-gpio.c
index ceb63653c926..b302833f6f9d 100644
--- a/drivers/media/video/cx18/cx18-gpio.c
+++ b/drivers/media/video/cx18/cx18-gpio.c
@@ -53,10 +53,34 @@ static void gpio_write(struct cx18 *cx)
53 write_reg(((dir & 0xffff) << 16) | (val & 0xffff), 53 write_reg(((dir & 0xffff) << 16) | (val & 0xffff),
54 CX18_REG_GPIO_OUT1); 54 CX18_REG_GPIO_OUT1);
55 write_reg(dir & 0xffff0000, CX18_REG_GPIO_DIR2); 55 write_reg(dir & 0xffff0000, CX18_REG_GPIO_DIR2);
56 write_reg((dir & 0xffff0000) | ((val & 0xffff0000) >> 16), 56 write_reg_sync((dir & 0xffff0000) | ((val & 0xffff0000) >> 16),
57 CX18_REG_GPIO_OUT2); 57 CX18_REG_GPIO_OUT2);
58} 58}
59 59
60void cx18_reset_i2c_slaves_gpio(struct cx18 *cx)
61{
62 const struct cx18_gpio_i2c_slave_reset *p;
63
64 p = &cx->card->gpio_i2c_slave_reset;
65
66 if ((p->active_lo_mask | p->active_hi_mask) == 0)
67 return;
68
69 /* Assuming that the masks are a subset of the bits in gpio_dir */
70
71 /* Assert */
72 cx->gpio_val =
73 (cx->gpio_val | p->active_hi_mask) & ~(p->active_lo_mask);
74 gpio_write(cx);
75 schedule_timeout_uninterruptible(msecs_to_jiffies(p->msecs_asserted));
76
77 /* Deassert */
78 cx->gpio_val =
79 (cx->gpio_val | p->active_lo_mask) & ~(p->active_hi_mask);
80 gpio_write(cx);
81 schedule_timeout_uninterruptible(msecs_to_jiffies(p->msecs_recovery));
82}
83
60void cx18_gpio_init(struct cx18 *cx) 84void cx18_gpio_init(struct cx18 *cx)
61{ 85{
62 cx->gpio_dir = cx->card->gpio_init.direction; 86 cx->gpio_dir = cx->card->gpio_init.direction;
diff --git a/drivers/media/video/cx18/cx18-gpio.h b/drivers/media/video/cx18/cx18-gpio.h
index 41bac8856b50..525c328f748a 100644
--- a/drivers/media/video/cx18/cx18-gpio.h
+++ b/drivers/media/video/cx18/cx18-gpio.h
@@ -21,4 +21,5 @@
21 */ 21 */
22 22
23void cx18_gpio_init(struct cx18 *cx); 23void cx18_gpio_init(struct cx18 *cx);
24void cx18_reset_i2c_slaves_gpio(struct cx18 *cx);
24int cx18_reset_tuner_gpio(void *dev, int cmd, int value); 25int cx18_reset_tuner_gpio(void *dev, int cmd, int value);
diff --git a/drivers/media/video/cx18/cx18-i2c.c b/drivers/media/video/cx18/cx18-i2c.c
index 1d6c51a75313..680bc4e35b79 100644
--- a/drivers/media/video/cx18/cx18-i2c.c
+++ b/drivers/media/video/cx18/cx18-i2c.c
@@ -405,6 +405,8 @@ int init_cx18_i2c(struct cx18 *cx)
405 cx18_setscl(&cx->i2c_algo_cb_data[1], 1); 405 cx18_setscl(&cx->i2c_algo_cb_data[1], 1);
406 cx18_setsda(&cx->i2c_algo_cb_data[1], 1); 406 cx18_setsda(&cx->i2c_algo_cb_data[1], 1);
407 407
408 cx18_reset_i2c_slaves_gpio(cx);
409
408 return i2c_bit_add_bus(&cx->i2c_adap[0]) || 410 return i2c_bit_add_bus(&cx->i2c_adap[0]) ||
409 i2c_bit_add_bus(&cx->i2c_adap[1]); 411 i2c_bit_add_bus(&cx->i2c_adap[1]);
410} 412}
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
index 607efdcd22f8..1da6f134888d 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -433,7 +433,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
433 int chroma = vid_input & 0xf00; 433 int chroma = vid_input & 0xf00;
434 434
435 if ((vid_input & ~0xff0) || 435 if ((vid_input & ~0xff0) ||
436 luma < CX25840_SVIDEO_LUMA1 || luma > CX25840_SVIDEO_LUMA4 || 436 luma < CX25840_SVIDEO_LUMA1 || luma > CX25840_SVIDEO_LUMA8 ||
437 chroma < CX25840_SVIDEO_CHROMA4 || chroma > CX25840_SVIDEO_CHROMA8) { 437 chroma < CX25840_SVIDEO_CHROMA4 || chroma > CX25840_SVIDEO_CHROMA8) {
438 v4l_err(client, "0x%04x is not a valid video input!\n", 438 v4l_err(client, "0x%04x is not a valid video input!\n",
439 vid_input); 439 vid_input);
diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c
index e976fc6bef7c..80c8883e54b5 100644
--- a/drivers/media/video/cx88/cx88-alsa.c
+++ b/drivers/media/video/cx88/cx88-alsa.c
@@ -332,6 +332,12 @@ static int snd_cx88_pcm_open(struct snd_pcm_substream *substream)
332 struct snd_pcm_runtime *runtime = substream->runtime; 332 struct snd_pcm_runtime *runtime = substream->runtime;
333 int err; 333 int err;
334 334
335 if (!chip) {
336 printk(KERN_ERR "BUG: cx88 can't find device struct."
337 " Can't proceed with open\n");
338 return -ENODEV;
339 }
340
335 err = snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_PERIODS); 341 err = snd_pcm_hw_constraint_pow2(runtime, 0, SNDRV_PCM_HW_PARAM_PERIODS);
336 if (err < 0) 342 if (err < 0)
337 goto _error; 343 goto _error;
diff --git a/drivers/media/video/em28xx/em28xx-audio.c b/drivers/media/video/em28xx/em28xx-audio.c
index 92b2a6db4fdc..3c006103c1eb 100644
--- a/drivers/media/video/em28xx/em28xx-audio.c
+++ b/drivers/media/video/em28xx/em28xx-audio.c
@@ -268,6 +268,12 @@ static int snd_em28xx_capture_open(struct snd_pcm_substream *substream)
268 268
269 dprintk("opening device and trying to acquire exclusive lock\n"); 269 dprintk("opening device and trying to acquire exclusive lock\n");
270 270
271 if (!dev) {
272 printk(KERN_ERR "BUG: em28xx can't find device struct."
273 " Can't proceed with open\n");
274 return -ENODEV;
275 }
276
271 /* Sets volume, mute, etc */ 277 /* Sets volume, mute, etc */
272 278
273 dev->mute = 0; 279 dev->mute = 0;
@@ -415,6 +421,12 @@ static int em28xx_audio_init(struct em28xx *dev)
415 static int devnr; 421 static int devnr;
416 int ret, err; 422 int ret, err;
417 423
424 if (dev->has_audio_class) {
425 /* This device does not support the extension (in this case
426 the device is expecting the snd-usb-audio module */
427 return 0;
428 }
429
418 printk(KERN_INFO "em28xx-audio.c: probing for em28x1 " 430 printk(KERN_INFO "em28xx-audio.c: probing for em28x1 "
419 "non standard usbaudio\n"); 431 "non standard usbaudio\n");
420 printk(KERN_INFO "em28xx-audio.c: Copyright (C) 2006 Markus " 432 printk(KERN_INFO "em28xx-audio.c: Copyright (C) 2006 Markus "
@@ -458,6 +470,12 @@ static int em28xx_audio_fini(struct em28xx *dev)
458 if (dev == NULL) 470 if (dev == NULL)
459 return 0; 471 return 0;
460 472
473 if (dev->has_audio_class) {
474 /* This device does not support the extension (in this case
475 the device is expecting the snd-usb-audio module */
476 return 0;
477 }
478
461 if (dev->adev) { 479 if (dev->adev) {
462 snd_card_free(dev->adev->sndcard); 480 snd_card_free(dev->adev->sndcard);
463 kfree(dev->adev); 481 kfree(dev->adev);
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 3e4f3c7e92e7..8cbda43727c3 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -157,6 +157,7 @@ struct em28xx_board em28xx_boards[] = {
157 .tda9887_conf = TDA9887_PRESENT, 157 .tda9887_conf = TDA9887_PRESENT,
158 .tuner_type = TUNER_XC2028, 158 .tuner_type = TUNER_XC2028,
159 .mts_firmware = 1, 159 .mts_firmware = 1,
160 .has_dvb = 1,
160 .decoder = EM28XX_TVP5150, 161 .decoder = EM28XX_TVP5150,
161 .input = { { 162 .input = { {
162 .type = EM28XX_VMUX_TELEVISION, 163 .type = EM28XX_VMUX_TELEVISION,
@@ -524,6 +525,9 @@ void em28xx_pre_card_setup(struct em28xx *dev)
524 rc = em28xx_read_reg(dev, EM28XX_R0A_CHIPID); 525 rc = em28xx_read_reg(dev, EM28XX_R0A_CHIPID);
525 if (rc > 0) { 526 if (rc > 0) {
526 switch (rc) { 527 switch (rc) {
528 case CHIP_ID_EM2860:
529 em28xx_info("chip ID is em2860\n");
530 break;
527 case CHIP_ID_EM2883: 531 case CHIP_ID_EM2883:
528 em28xx_info("chip ID is em2882/em2883\n"); 532 em28xx_info("chip ID is em2882/em2883\n");
529 dev->wait_after_write = 0; 533 dev->wait_after_write = 0;
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c
index 8cf4983f0039..0b2333ee07f8 100644
--- a/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/drivers/media/video/em28xx/em28xx-dvb.c
@@ -382,6 +382,11 @@ static int dvb_init(struct em28xx *dev)
382 int result = 0; 382 int result = 0;
383 struct em28xx_dvb *dvb; 383 struct em28xx_dvb *dvb;
384 384
385 if (!dev->has_dvb) {
386 /* This device does not support the extension */
387 return 0;
388 }
389
385 dvb = kzalloc(sizeof(struct em28xx_dvb), GFP_KERNEL); 390 dvb = kzalloc(sizeof(struct em28xx_dvb), GFP_KERNEL);
386 391
387 if (dvb == NULL) { 392 if (dvb == NULL) {
@@ -444,6 +449,11 @@ out_free:
444 449
445static int dvb_fini(struct em28xx *dev) 450static int dvb_fini(struct em28xx *dev)
446{ 451{
452 if (!dev->has_dvb) {
453 /* This device does not support the extension */
454 return 0;
455 }
456
447 if (dev->dvb) { 457 if (dev->dvb) {
448 unregister_dvb(dev->dvb); 458 unregister_dvb(dev->dvb);
449 dev->dvb = NULL; 459 dev->dvb = NULL;
diff --git a/drivers/media/video/em28xx/em28xx-reg.h b/drivers/media/video/em28xx/em28xx-reg.h
index 9058bed07953..fac1ab23f621 100644
--- a/drivers/media/video/em28xx/em28xx-reg.h
+++ b/drivers/media/video/em28xx/em28xx-reg.h
@@ -84,5 +84,6 @@
84 84
85/* FIXME: Need to be populated with the other chip ID's */ 85/* FIXME: Need to be populated with the other chip ID's */
86enum em28xx_chip_id { 86enum em28xx_chip_id {
87 CHIP_ID_EM2860 = 34,
87 CHIP_ID_EM2883 = 36, 88 CHIP_ID_EM2883 = 36,
88}; 89};
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index fb163ecd9216..285bc62bbe46 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -1848,32 +1848,28 @@ static DEFINE_MUTEX(em28xx_extension_devlist_lock);
1848 1848
1849int em28xx_register_extension(struct em28xx_ops *ops) 1849int em28xx_register_extension(struct em28xx_ops *ops)
1850{ 1850{
1851 struct em28xx *h, *dev = NULL; 1851 struct em28xx *dev = NULL;
1852
1853 list_for_each_entry(h, &em28xx_devlist, devlist)
1854 dev = h;
1855 1852
1856 mutex_lock(&em28xx_extension_devlist_lock); 1853 mutex_lock(&em28xx_extension_devlist_lock);
1857 list_add_tail(&ops->next, &em28xx_extension_devlist); 1854 list_add_tail(&ops->next, &em28xx_extension_devlist);
1858 if (dev) 1855 list_for_each_entry(dev, &em28xx_devlist, devlist) {
1859 ops->init(dev); 1856 if (dev)
1860 1857 ops->init(dev);
1858 }
1861 printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name); 1859 printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name);
1862 mutex_unlock(&em28xx_extension_devlist_lock); 1860 mutex_unlock(&em28xx_extension_devlist_lock);
1863
1864 return 0; 1861 return 0;
1865} 1862}
1866EXPORT_SYMBOL(em28xx_register_extension); 1863EXPORT_SYMBOL(em28xx_register_extension);
1867 1864
1868void em28xx_unregister_extension(struct em28xx_ops *ops) 1865void em28xx_unregister_extension(struct em28xx_ops *ops)
1869{ 1866{
1870 struct em28xx *h, *dev = NULL; 1867 struct em28xx *dev = NULL;
1871
1872 list_for_each_entry(h, &em28xx_devlist, devlist)
1873 dev = h;
1874 1868
1875 if (dev) 1869 list_for_each_entry(dev, &em28xx_devlist, devlist) {
1876 ops->fini(dev); 1870 if (dev)
1871 ops->fini(dev);
1872 }
1877 1873
1878 mutex_lock(&em28xx_extension_devlist_lock); 1874 mutex_lock(&em28xx_extension_devlist_lock);
1879 printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name); 1875 printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name);
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c
index 7cc8e9b19fb7..5ec5bb9a94d2 100644
--- a/drivers/media/video/pxa_camera.c
+++ b/drivers/media/video/pxa_camera.c
@@ -1019,12 +1019,12 @@ static int pxa_camera_probe(struct platform_device *pdev)
1019 struct pxa_camera_dev *pcdev; 1019 struct pxa_camera_dev *pcdev;
1020 struct resource *res; 1020 struct resource *res;
1021 void __iomem *base; 1021 void __iomem *base;
1022 unsigned int irq; 1022 int irq;
1023 int err = 0; 1023 int err = 0;
1024 1024
1025 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 1025 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1026 irq = platform_get_irq(pdev, 0); 1026 irq = platform_get_irq(pdev, 0);
1027 if (!res || !irq) { 1027 if (!res || irq < 0) {
1028 err = -ENODEV; 1028 err = -ENODEV;
1029 goto exit; 1029 goto exit;
1030 } 1030 }
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c
index ba3082422a01..f118de6e3672 100644
--- a/drivers/media/video/saa7134/saa7134-alsa.c
+++ b/drivers/media/video/saa7134/saa7134-alsa.c
@@ -613,9 +613,15 @@ static int snd_card_saa7134_capture_open(struct snd_pcm_substream * substream)
613 struct snd_pcm_runtime *runtime = substream->runtime; 613 struct snd_pcm_runtime *runtime = substream->runtime;
614 snd_card_saa7134_pcm_t *pcm; 614 snd_card_saa7134_pcm_t *pcm;
615 snd_card_saa7134_t *saa7134 = snd_pcm_substream_chip(substream); 615 snd_card_saa7134_t *saa7134 = snd_pcm_substream_chip(substream);
616 struct saa7134_dev *dev = saa7134->dev; 616 struct saa7134_dev *dev;
617 int amux, err; 617 int amux, err;
618 618
619 if (!saa7134) {
620 printk(KERN_ERR "BUG: saa7134 can't find device struct."
621 " Can't proceed with open\n");
622 return -ENODEV;
623 }
624 dev = saa7134->dev;
619 mutex_lock(&dev->dmasound.lock); 625 mutex_lock(&dev->dmasound.lock);
620 626
621 dev->dmasound.read_count = 0; 627 dev->dmasound.read_count = 0;
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index b111903aa322..2618cfa592e7 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -4114,11 +4114,7 @@ struct saa7134_board saa7134_boards[] = {
4114 .radio_type = UNSET, 4114 .radio_type = UNSET,
4115 .tuner_addr = ADDR_UNSET, 4115 .tuner_addr = ADDR_UNSET,
4116 .radio_addr = ADDR_UNSET, 4116 .radio_addr = ADDR_UNSET,
4117 /*
4118 TODO:
4119 .mpeg = SAA7134_MPEG_DVB, 4117 .mpeg = SAA7134_MPEG_DVB,
4120 */
4121
4122 .inputs = {{ 4118 .inputs = {{
4123 .name = name_tv, 4119 .name = name_tv,
4124 .vmux = 1, 4120 .vmux = 1,
@@ -4157,7 +4153,7 @@ struct saa7134_board saa7134_boards[] = {
4157 } }, 4153 } },
4158 .radio = { 4154 .radio = {
4159 .name = name_radio, 4155 .name = name_radio,
4160 .amux = LINE1, 4156 .amux = TV,
4161 }, 4157 },
4162 }, 4158 },
4163 [SAA7134_BOARD_AVERMEDIA_M115] = { 4159 [SAA7134_BOARD_AVERMEDIA_M115] = {
@@ -4167,6 +4163,7 @@ struct saa7134_board saa7134_boards[] = {
4167 .radio_type = UNSET, 4163 .radio_type = UNSET,
4168 .tuner_addr = ADDR_UNSET, 4164 .tuner_addr = ADDR_UNSET,
4169 .radio_addr = ADDR_UNSET, 4165 .radio_addr = ADDR_UNSET,
4166 .mpeg = SAA7134_MPEG_DVB,
4170 .inputs = {{ 4167 .inputs = {{
4171 .name = name_tv, 4168 .name = name_tv,
4172 .vmux = 1, 4169 .vmux = 1,
@@ -5351,22 +5348,21 @@ static int saa7134_xc2028_callback(struct saa7134_dev *dev,
5351{ 5348{
5352 switch (command) { 5349 switch (command) {
5353 case XC2028_TUNER_RESET: 5350 case XC2028_TUNER_RESET:
5354 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000); 5351 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
5355 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000); 5352 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
5356 mdelay(250); 5353 switch (dev->board) {
5357 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0); 5354 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5358 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0); 5355 saa7134_set_gpio(dev, 23, 0);
5359 mdelay(250); 5356 msleep(10);
5360 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000); 5357 saa7134_set_gpio(dev, 23, 1);
5361 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000); 5358 break;
5362 mdelay(250); 5359 case SAA7134_BOARD_AVERMEDIA_A16D:
5363 saa_andorl(SAA7133_ANALOG_IO_SELECT >> 2, 0x02, 0x02); 5360 saa7134_set_gpio(dev, 21, 0);
5364 saa_andorl(SAA7134_ANALOG_IN_CTRL1 >> 2, 0x81, 0x81); 5361 msleep(10);
5365 saa_andorl(SAA7134_AUDIO_CLOCK0 >> 2, 0x03187de7, 0x03187de7); 5362 saa7134_set_gpio(dev, 21, 1);
5366 saa_andorl(SAA7134_AUDIO_PLL_CTRL >> 2, 0x03, 0x03); 5363 break;
5367 saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0 >> 2, 5364 }
5368 0x0001e000, 0x0001e000); 5365 return 0;
5369 return 0;
5370 } 5366 }
5371 return -EINVAL; 5367 return -EINVAL;
5372} 5368}
@@ -5553,9 +5549,7 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5553 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000); 5549 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
5554 break; 5550 break;
5555 case SAA7134_BOARD_AVERMEDIA_CARDBUS: 5551 case SAA7134_BOARD_AVERMEDIA_CARDBUS:
5556 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5557 case SAA7134_BOARD_AVERMEDIA_M115: 5552 case SAA7134_BOARD_AVERMEDIA_M115:
5558 case SAA7134_BOARD_AVERMEDIA_A16D:
5559 /* power-down tuner chip */ 5553 /* power-down tuner chip */
5560 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0); 5554 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0);
5561 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0); 5555 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
@@ -5565,6 +5559,18 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5565 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff); 5559 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
5566 msleep(10); 5560 msleep(10);
5567 break; 5561 break;
5562 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5563 saa7134_set_gpio(dev, 23, 0);
5564 msleep(10);
5565 saa7134_set_gpio(dev, 23, 1);
5566 break;
5567 case SAA7134_BOARD_AVERMEDIA_A16D:
5568 saa7134_set_gpio(dev, 21, 0);
5569 msleep(10);
5570 saa7134_set_gpio(dev, 21, 1);
5571 msleep(1);
5572 dev->has_remote = SAA7134_REMOTE_GPIO;
5573 break;
5568 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM: 5574 case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
5569 /* power-down tuner chip */ 5575 /* power-down tuner chip */
5570 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004); 5576 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x000A8004, 0x000A8004);
@@ -5615,7 +5621,8 @@ int saa7134_board_init1(struct saa7134_dev *dev)
5615 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100); 5621 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x80040100, 0x80040100);
5616 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100); 5622 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
5617 printk("%s: %s: hybrid analog/dvb card\n" 5623 printk("%s: %s: hybrid analog/dvb card\n"
5618 "%s: Sorry, only the analog inputs are supported for now.\n", 5624 "%s: Sorry, only analog s-video and composite input "
5625 "are supported for now.\n",
5619 dev->name, card(dev).name, dev->name); 5626 dev->name, card(dev).name, dev->name);
5620 break; 5627 break;
5621 } 5628 }
@@ -5675,6 +5682,7 @@ static void saa7134_tuner_setup(struct saa7134_dev *dev)
5675 5682
5676 switch (dev->board) { 5683 switch (dev->board) {
5677 case SAA7134_BOARD_AVERMEDIA_A16D: 5684 case SAA7134_BOARD_AVERMEDIA_A16D:
5685 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
5678 ctl.demod = XC3028_FE_ZARLINK456; 5686 ctl.demod = XC3028_FE_ZARLINK456;
5679 break; 5687 break;
5680 default: 5688 default:
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index 469f93aac008..341b101b0357 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -153,12 +153,12 @@ static int mt352_aver777_init(struct dvb_frontend* fe)
153 return 0; 153 return 0;
154} 154}
155 155
156static int mt352_aver_a16d_init(struct dvb_frontend *fe) 156static int mt352_avermedia_xc3028_init(struct dvb_frontend *fe)
157{ 157{
158 static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x2d }; 158 static u8 clock_config [] = { CLOCK_CTL, 0x38, 0x2d };
159 static u8 reset [] = { RESET, 0x80 }; 159 static u8 reset [] = { RESET, 0x80 };
160 static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 }; 160 static u8 adc_ctl_1_cfg [] = { ADC_CTL_1, 0x40 };
161 static u8 agc_cfg [] = { AGC_TARGET, 0x28, 0xa0 }; 161 static u8 agc_cfg [] = { AGC_TARGET, 0xe };
162 static u8 capt_range_cfg[] = { CAPT_RANGE, 0x33 }; 162 static u8 capt_range_cfg[] = { CAPT_RANGE, 0x33 };
163 163
164 mt352_write(fe, clock_config, sizeof(clock_config)); 164 mt352_write(fe, clock_config, sizeof(clock_config));
@@ -167,12 +167,9 @@ static int mt352_aver_a16d_init(struct dvb_frontend *fe)
167 mt352_write(fe, adc_ctl_1_cfg, sizeof(adc_ctl_1_cfg)); 167 mt352_write(fe, adc_ctl_1_cfg, sizeof(adc_ctl_1_cfg));
168 mt352_write(fe, agc_cfg, sizeof(agc_cfg)); 168 mt352_write(fe, agc_cfg, sizeof(agc_cfg));
169 mt352_write(fe, capt_range_cfg, sizeof(capt_range_cfg)); 169 mt352_write(fe, capt_range_cfg, sizeof(capt_range_cfg));
170
171 return 0; 170 return 0;
172} 171}
173 172
174
175
176static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe, 173static int mt352_pinnacle_tuner_set_params(struct dvb_frontend* fe,
177 struct dvb_frontend_parameters* params) 174 struct dvb_frontend_parameters* params)
178{ 175{
@@ -215,14 +212,10 @@ static struct mt352_config avermedia_777 = {
215 .demod_init = mt352_aver777_init, 212 .demod_init = mt352_aver777_init,
216}; 213};
217 214
218static struct mt352_config avermedia_16d = { 215static struct mt352_config avermedia_xc3028_mt352_dev = {
219 .demod_address = 0xf,
220 .demod_init = mt352_aver_a16d_init,
221};
222
223static struct mt352_config avermedia_e506r_mt352_dev = {
224 .demod_address = (0x1e >> 1), 216 .demod_address = (0x1e >> 1),
225 .no_tuner = 1, 217 .no_tuner = 1,
218 .demod_init = mt352_avermedia_xc3028_init,
226}; 219};
227 220
228/* ================================================================== 221/* ==================================================================
@@ -975,9 +968,10 @@ static int dvb_init(struct saa7134_dev *dev)
975 } 968 }
976 break; 969 break;
977 case SAA7134_BOARD_AVERMEDIA_A16D: 970 case SAA7134_BOARD_AVERMEDIA_A16D:
978 dprintk("avertv A16D dvb setup\n"); 971 dprintk("AverMedia A16D dvb setup\n");
979 dev->dvb.frontend = dvb_attach(mt352_attach, &avermedia_16d, 972 dev->dvb.frontend = dvb_attach(mt352_attach,
980 &dev->i2c_adap); 973 &avermedia_xc3028_mt352_dev,
974 &dev->i2c_adap);
981 attach_xc3028 = 1; 975 attach_xc3028 = 1;
982 break; 976 break;
983 case SAA7134_BOARD_MD7134: 977 case SAA7134_BOARD_MD7134:
@@ -1091,7 +1085,8 @@ static int dvb_init(struct saa7134_dev *dev)
1091 ads_tech_duo_config.tuner_address); 1085 ads_tech_duo_config.tuner_address);
1092 goto dettach_frontend; 1086 goto dettach_frontend;
1093 } 1087 }
1094 } 1088 } else
1089 wprintk("failed to attach tda10046\n");
1095 break; 1090 break;
1096 case SAA7134_BOARD_TEVION_DVBT_220RF: 1091 case SAA7134_BOARD_TEVION_DVBT_220RF:
1097 if (configure_tda827x_fe(dev, &tevion_dvbt220rf_config, 1092 if (configure_tda827x_fe(dev, &tevion_dvbt220rf_config,
@@ -1260,11 +1255,14 @@ static int dvb_init(struct saa7134_dev *dev)
1260 goto dettach_frontend; 1255 goto dettach_frontend;
1261 break; 1256 break;
1262 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506: 1257 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
1258 dprintk("AverMedia E506R dvb setup\n");
1259 saa7134_set_gpio(dev, 25, 0);
1260 msleep(10);
1261 saa7134_set_gpio(dev, 25, 1);
1263 dev->dvb.frontend = dvb_attach(mt352_attach, 1262 dev->dvb.frontend = dvb_attach(mt352_attach,
1264 &avermedia_e506r_mt352_dev, 1263 &avermedia_xc3028_mt352_dev,
1265 &dev->i2c_adap); 1264 &dev->i2c_adap);
1266 attach_xc3028 = 1; 1265 attach_xc3028 = 1;
1267 break;
1268 case SAA7134_BOARD_MD7134_BRIDGE_2: 1266 case SAA7134_BOARD_MD7134_BRIDGE_2:
1269 dev->dvb.frontend = dvb_attach(tda10086_attach, 1267 dev->dvb.frontend = dvb_attach(tda10086_attach,
1270 &sd1878_4m, &dev->i2c_adap); 1268 &sd1878_4m, &dev->i2c_adap);
@@ -1338,7 +1336,8 @@ static int dvb_init(struct saa7134_dev *dev)
1338 return ret; 1336 return ret;
1339 1337
1340dettach_frontend: 1338dettach_frontend:
1341 dvb_frontend_detach(dev->dvb.frontend); 1339 if (dev->dvb.frontend)
1340 dvb_frontend_detach(dev->dvb.frontend);
1342 dev->dvb.frontend = NULL; 1341 dev->dvb.frontend = NULL;
1343 1342
1344 return -1; 1343 return -1;
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c
index 81431ee41842..3ae71a340822 100644
--- a/drivers/media/video/saa7134/saa7134-empress.c
+++ b/drivers/media/video/saa7134/saa7134-empress.c
@@ -110,9 +110,10 @@ static int ts_release(struct inode *inode, struct file *file)
110{ 110{
111 struct saa7134_dev *dev = file->private_data; 111 struct saa7134_dev *dev = file->private_data;
112 112
113 mutex_lock(&dev->empress_tsq.vb_lock);
114
113 videobuf_stop(&dev->empress_tsq); 115 videobuf_stop(&dev->empress_tsq);
114 videobuf_mmap_free(&dev->empress_tsq); 116 videobuf_mmap_free(&dev->empress_tsq);
115 dev->empress_users--;
116 117
117 /* stop the encoder */ 118 /* stop the encoder */
118 ts_reset_encoder(dev); 119 ts_reset_encoder(dev);
@@ -121,6 +122,10 @@ static int ts_release(struct inode *inode, struct file *file)
121 saa_writeb(SAA7134_AUDIO_MUTE_CTRL, 122 saa_writeb(SAA7134_AUDIO_MUTE_CTRL,
122 saa_readb(SAA7134_AUDIO_MUTE_CTRL) | (1 << 6)); 123 saa_readb(SAA7134_AUDIO_MUTE_CTRL) | (1 << 6));
123 124
125 dev->empress_users--;
126
127 mutex_unlock(&dev->empress_tsq.vb_lock);
128
124 return 0; 129 return 0;
125} 130}
126 131
@@ -218,8 +223,7 @@ static int empress_enum_fmt_cap(struct file *file, void *priv,
218static int empress_g_fmt_cap(struct file *file, void *priv, 223static int empress_g_fmt_cap(struct file *file, void *priv,
219 struct v4l2_format *f) 224 struct v4l2_format *f)
220{ 225{
221 struct saa7134_fh *fh = priv; 226 struct saa7134_dev *dev = file->private_data;
222 struct saa7134_dev *dev = fh->dev;
223 227
224 saa7134_i2c_call_clients(dev, VIDIOC_G_FMT, f); 228 saa7134_i2c_call_clients(dev, VIDIOC_G_FMT, f);
225 229
@@ -232,8 +236,7 @@ static int empress_g_fmt_cap(struct file *file, void *priv,
232static int empress_s_fmt_cap(struct file *file, void *priv, 236static int empress_s_fmt_cap(struct file *file, void *priv,
233 struct v4l2_format *f) 237 struct v4l2_format *f)
234{ 238{
235 struct saa7134_fh *fh = priv; 239 struct saa7134_dev *dev = file->private_data;
236 struct saa7134_dev *dev = fh->dev;
237 240
238 saa7134_i2c_call_clients(dev, VIDIOC_S_FMT, f); 241 saa7134_i2c_call_clients(dev, VIDIOC_S_FMT, f);
239 242
@@ -247,8 +250,7 @@ static int empress_s_fmt_cap(struct file *file, void *priv,
247static int empress_reqbufs(struct file *file, void *priv, 250static int empress_reqbufs(struct file *file, void *priv,
248 struct v4l2_requestbuffers *p) 251 struct v4l2_requestbuffers *p)
249{ 252{
250 struct saa7134_fh *fh = priv; 253 struct saa7134_dev *dev = file->private_data;
251 struct saa7134_dev *dev = fh->dev;
252 254
253 return videobuf_reqbufs(&dev->empress_tsq, p); 255 return videobuf_reqbufs(&dev->empress_tsq, p);
254} 256}
@@ -256,24 +258,21 @@ static int empress_reqbufs(struct file *file, void *priv,
256static int empress_querybuf(struct file *file, void *priv, 258static int empress_querybuf(struct file *file, void *priv,
257 struct v4l2_buffer *b) 259 struct v4l2_buffer *b)
258{ 260{
259 struct saa7134_fh *fh = priv; 261 struct saa7134_dev *dev = file->private_data;
260 struct saa7134_dev *dev = fh->dev;
261 262
262 return videobuf_querybuf(&dev->empress_tsq, b); 263 return videobuf_querybuf(&dev->empress_tsq, b);
263} 264}
264 265
265static int empress_qbuf(struct file *file, void *priv, struct v4l2_buffer *b) 266static int empress_qbuf(struct file *file, void *priv, struct v4l2_buffer *b)
266{ 267{
267 struct saa7134_fh *fh = priv; 268 struct saa7134_dev *dev = file->private_data;
268 struct saa7134_dev *dev = fh->dev;
269 269
270 return videobuf_qbuf(&dev->empress_tsq, b); 270 return videobuf_qbuf(&dev->empress_tsq, b);
271} 271}
272 272
273static int empress_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b) 273static int empress_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
274{ 274{
275 struct saa7134_fh *fh = priv; 275 struct saa7134_dev *dev = file->private_data;
276 struct saa7134_dev *dev = fh->dev;
277 276
278 return videobuf_dqbuf(&dev->empress_tsq, b, 277 return videobuf_dqbuf(&dev->empress_tsq, b,
279 file->f_flags & O_NONBLOCK); 278 file->f_flags & O_NONBLOCK);
@@ -282,8 +281,7 @@ static int empress_dqbuf(struct file *file, void *priv, struct v4l2_buffer *b)
282static int empress_streamon(struct file *file, void *priv, 281static int empress_streamon(struct file *file, void *priv,
283 enum v4l2_buf_type type) 282 enum v4l2_buf_type type)
284{ 283{
285 struct saa7134_fh *fh = priv; 284 struct saa7134_dev *dev = file->private_data;
286 struct saa7134_dev *dev = fh->dev;
287 285
288 return videobuf_streamon(&dev->empress_tsq); 286 return videobuf_streamon(&dev->empress_tsq);
289} 287}
@@ -291,8 +289,7 @@ static int empress_streamon(struct file *file, void *priv,
291static int empress_streamoff(struct file *file, void *priv, 289static int empress_streamoff(struct file *file, void *priv,
292 enum v4l2_buf_type type) 290 enum v4l2_buf_type type)
293{ 291{
294 struct saa7134_fh *fh = priv; 292 struct saa7134_dev *dev = file->private_data;
295 struct saa7134_dev *dev = fh->dev;
296 293
297 return videobuf_streamoff(&dev->empress_tsq); 294 return videobuf_streamoff(&dev->empress_tsq);
298} 295}
@@ -300,8 +297,7 @@ static int empress_streamoff(struct file *file, void *priv,
300static int empress_s_ext_ctrls(struct file *file, void *priv, 297static int empress_s_ext_ctrls(struct file *file, void *priv,
301 struct v4l2_ext_controls *ctrls) 298 struct v4l2_ext_controls *ctrls)
302{ 299{
303 struct saa7134_fh *fh = priv; 300 struct saa7134_dev *dev = file->private_data;
304 struct saa7134_dev *dev = fh->dev;
305 301
306 /* count == 0 is abused in saa6752hs.c, so that special 302 /* count == 0 is abused in saa6752hs.c, so that special
307 case is handled here explicitly. */ 303 case is handled here explicitly. */
@@ -320,8 +316,7 @@ static int empress_s_ext_ctrls(struct file *file, void *priv,
320static int empress_g_ext_ctrls(struct file *file, void *priv, 316static int empress_g_ext_ctrls(struct file *file, void *priv,
321 struct v4l2_ext_controls *ctrls) 317 struct v4l2_ext_controls *ctrls)
322{ 318{
323 struct saa7134_fh *fh = priv; 319 struct saa7134_dev *dev = file->private_data;
324 struct saa7134_dev *dev = fh->dev;
325 320
326 if (ctrls->ctrl_class != V4L2_CTRL_CLASS_MPEG) 321 if (ctrls->ctrl_class != V4L2_CTRL_CLASS_MPEG)
327 return -EINVAL; 322 return -EINVAL;
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c
index 919632b10aae..76e6501d238d 100644
--- a/drivers/media/video/saa7134/saa7134-input.c
+++ b/drivers/media/video/saa7134/saa7134-input.c
@@ -323,6 +323,15 @@ int saa7134_input_init1(struct saa7134_dev *dev)
323 saa_setb(SAA7134_GPIO_GPMODE1, 0x1); 323 saa_setb(SAA7134_GPIO_GPMODE1, 0x1);
324 saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1); 324 saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1);
325 break; 325 break;
326 case SAA7134_BOARD_AVERMEDIA_A16D:
327 ir_codes = ir_codes_avermedia_a16d;
328 mask_keycode = 0x02F200;
329 mask_keydown = 0x000400;
330 polling = 50; /* ms */
331 /* Without this we won't receive key up events */
332 saa_setb(SAA7134_GPIO_GPMODE1, 0x1);
333 saa_setb(SAA7134_GPIO_GPSTATUS1, 0x1);
334 break;
326 case SAA7134_BOARD_KWORLD_TERMINATOR: 335 case SAA7134_BOARD_KWORLD_TERMINATOR:
327 ir_codes = ir_codes_pixelview; 336 ir_codes = ir_codes_pixelview;
328 mask_keycode = 0x00001f; 337 mask_keycode = 0x00001f;
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c
index a1b92446c8b4..d015bfe00950 100644
--- a/drivers/media/video/soc_camera.c
+++ b/drivers/media/video/soc_camera.c
@@ -763,15 +763,6 @@ static struct device_driver ic_drv = {
763 .owner = THIS_MODULE, 763 .owner = THIS_MODULE,
764}; 764};
765 765
766/*
767 * Image capture host - this is a host device, not a bus device, so,
768 * no bus reference, no probing.
769 */
770static struct class soc_camera_host_class = {
771 .owner = THIS_MODULE,
772 .name = "camera_host",
773};
774
775static void dummy_release(struct device *dev) 766static void dummy_release(struct device *dev)
776{ 767{
777} 768}
@@ -801,7 +792,6 @@ int soc_camera_host_register(struct soc_camera_host *ici)
801 792
802 /* Number might be equal to the platform device ID */ 793 /* Number might be equal to the platform device ID */
803 sprintf(ici->dev.bus_id, "camera_host%d", ici->nr); 794 sprintf(ici->dev.bus_id, "camera_host%d", ici->nr);
804 ici->dev.class = &soc_camera_host_class;
805 795
806 mutex_lock(&list_lock); 796 mutex_lock(&list_lock);
807 list_for_each_entry(ix, &hosts, list) { 797 list_for_each_entry(ix, &hosts, list) {
@@ -1003,14 +993,9 @@ static int __init soc_camera_init(void)
1003 ret = driver_register(&ic_drv); 993 ret = driver_register(&ic_drv);
1004 if (ret) 994 if (ret)
1005 goto edrvr; 995 goto edrvr;
1006 ret = class_register(&soc_camera_host_class);
1007 if (ret)
1008 goto eclr;
1009 996
1010 return 0; 997 return 0;
1011 998
1012eclr:
1013 driver_unregister(&ic_drv);
1014edrvr: 999edrvr:
1015 bus_unregister(&soc_camera_bus_type); 1000 bus_unregister(&soc_camera_bus_type);
1016 return ret; 1001 return ret;
@@ -1018,7 +1003,6 @@ edrvr:
1018 1003
1019static void __exit soc_camera_exit(void) 1004static void __exit soc_camera_exit(void)
1020{ 1005{
1021 class_unregister(&soc_camera_host_class);
1022 driver_unregister(&ic_drv); 1006 driver_unregister(&ic_drv);
1023 bus_unregister(&soc_camera_bus_type); 1007 bus_unregister(&soc_camera_bus_type);
1024} 1008}
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c
index 31e8af0ba278..67a661cf5219 100644
--- a/drivers/media/video/videodev.c
+++ b/drivers/media/video/videodev.c
@@ -51,12 +51,51 @@
51#define VIDEO_NUM_DEVICES 256 51#define VIDEO_NUM_DEVICES 256
52#define VIDEO_NAME "video4linux" 52#define VIDEO_NAME "video4linux"
53 53
54struct std_descr {
55 v4l2_std_id std;
56 const char *descr;
57};
58
59static const struct std_descr standards[] = {
60 { V4L2_STD_NTSC, "NTSC" },
61 { V4L2_STD_NTSC_M, "NTSC-M" },
62 { V4L2_STD_NTSC_M_JP, "NTSC-M-JP" },
63 { V4L2_STD_NTSC_M_KR, "NTSC-M-KR" },
64 { V4L2_STD_NTSC_443, "NTSC-443" },
65 { V4L2_STD_PAL, "PAL" },
66 { V4L2_STD_PAL_BG, "PAL-BG" },
67 { V4L2_STD_PAL_B, "PAL-B" },
68 { V4L2_STD_PAL_B1, "PAL-B1" },
69 { V4L2_STD_PAL_G, "PAL-G" },
70 { V4L2_STD_PAL_H, "PAL-H" },
71 { V4L2_STD_PAL_I, "PAL-I" },
72 { V4L2_STD_PAL_DK, "PAL-DK" },
73 { V4L2_STD_PAL_D, "PAL-D" },
74 { V4L2_STD_PAL_D1, "PAL-D1" },
75 { V4L2_STD_PAL_K, "PAL-K" },
76 { V4L2_STD_PAL_M, "PAL-M" },
77 { V4L2_STD_PAL_N, "PAL-N" },
78 { V4L2_STD_PAL_Nc, "PAL-Nc" },
79 { V4L2_STD_PAL_60, "PAL-60" },
80 { V4L2_STD_SECAM, "SECAM" },
81 { V4L2_STD_SECAM_B, "SECAM-B" },
82 { V4L2_STD_SECAM_G, "SECAM-G" },
83 { V4L2_STD_SECAM_H, "SECAM-H" },
84 { V4L2_STD_SECAM_DK, "SECAM-DK" },
85 { V4L2_STD_SECAM_D, "SECAM-D" },
86 { V4L2_STD_SECAM_K, "SECAM-K" },
87 { V4L2_STD_SECAM_K1, "SECAM-K1" },
88 { V4L2_STD_SECAM_L, "SECAM-L" },
89 { V4L2_STD_SECAM_LC, "SECAM-Lc" },
90 { 0, "Unknown" }
91};
92
54/* video4linux standard ID conversion to standard name 93/* video4linux standard ID conversion to standard name
55 */ 94 */
56char *v4l2_norm_to_name(v4l2_std_id id) 95const char *v4l2_norm_to_name(v4l2_std_id id)
57{ 96{
58 char *name;
59 u32 myid = id; 97 u32 myid = id;
98 int i;
60 99
61 /* HACK: ppc32 architecture doesn't have __ucmpdi2 function to handle 100 /* HACK: ppc32 architecture doesn't have __ucmpdi2 function to handle
62 64 bit comparations. So, on that architecture, with some gcc 101 64 bit comparations. So, on that architecture, with some gcc
@@ -64,110 +103,17 @@ char *v4l2_norm_to_name(v4l2_std_id id)
64 */ 103 */
65 BUG_ON(myid != id); 104 BUG_ON(myid != id);
66 105
67 switch (myid) { 106 for (i = 0; standards[i].std; i++)
68 case V4L2_STD_PAL: 107 if (myid == standards[i].std)
69 name = "PAL"; 108 break;
70 break; 109 return standards[i].descr;
71 case V4L2_STD_PAL_BG:
72 name = "PAL-BG";
73 break;
74 case V4L2_STD_PAL_DK:
75 name = "PAL-DK";
76 break;
77 case V4L2_STD_PAL_B:
78 name = "PAL-B";
79 break;
80 case V4L2_STD_PAL_B1:
81 name = "PAL-B1";
82 break;
83 case V4L2_STD_PAL_G:
84 name = "PAL-G";
85 break;
86 case V4L2_STD_PAL_H:
87 name = "PAL-H";
88 break;
89 case V4L2_STD_PAL_I:
90 name = "PAL-I";
91 break;
92 case V4L2_STD_PAL_D:
93 name = "PAL-D";
94 break;
95 case V4L2_STD_PAL_D1:
96 name = "PAL-D1";
97 break;
98 case V4L2_STD_PAL_K:
99 name = "PAL-K";
100 break;
101 case V4L2_STD_PAL_M:
102 name = "PAL-M";
103 break;
104 case V4L2_STD_PAL_N:
105 name = "PAL-N";
106 break;
107 case V4L2_STD_PAL_Nc:
108 name = "PAL-Nc";
109 break;
110 case V4L2_STD_PAL_60:
111 name = "PAL-60";
112 break;
113 case V4L2_STD_NTSC:
114 name = "NTSC";
115 break;
116 case V4L2_STD_NTSC_M:
117 name = "NTSC-M";
118 break;
119 case V4L2_STD_NTSC_M_JP:
120 name = "NTSC-M-JP";
121 break;
122 case V4L2_STD_NTSC_443:
123 name = "NTSC-443";
124 break;
125 case V4L2_STD_NTSC_M_KR:
126 name = "NTSC-M-KR";
127 break;
128 case V4L2_STD_SECAM:
129 name = "SECAM";
130 break;
131 case V4L2_STD_SECAM_DK:
132 name = "SECAM-DK";
133 break;
134 case V4L2_STD_SECAM_B:
135 name = "SECAM-B";
136 break;
137 case V4L2_STD_SECAM_D:
138 name = "SECAM-D";
139 break;
140 case V4L2_STD_SECAM_G:
141 name = "SECAM-G";
142 break;
143 case V4L2_STD_SECAM_H:
144 name = "SECAM-H";
145 break;
146 case V4L2_STD_SECAM_K:
147 name = "SECAM-K";
148 break;
149 case V4L2_STD_SECAM_K1:
150 name = "SECAM-K1";
151 break;
152 case V4L2_STD_SECAM_L:
153 name = "SECAM-L";
154 break;
155 case V4L2_STD_SECAM_LC:
156 name = "SECAM-LC";
157 break;
158 default:
159 name = "Unknown";
160 break;
161 }
162
163 return name;
164} 110}
165EXPORT_SYMBOL(v4l2_norm_to_name); 111EXPORT_SYMBOL(v4l2_norm_to_name);
166 112
167/* Fill in the fields of a v4l2_standard structure according to the 113/* Fill in the fields of a v4l2_standard structure according to the
168 'id' and 'transmission' parameters. Returns negative on error. */ 114 'id' and 'transmission' parameters. Returns negative on error. */
169int v4l2_video_std_construct(struct v4l2_standard *vs, 115int v4l2_video_std_construct(struct v4l2_standard *vs,
170 int id, char *name) 116 int id, const char *name)
171{ 117{
172 u32 index = vs->index; 118 u32 index = vs->index;
173 119
@@ -1218,95 +1164,40 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
1218 case VIDIOC_ENUMSTD: 1164 case VIDIOC_ENUMSTD:
1219 { 1165 {
1220 struct v4l2_standard *p = arg; 1166 struct v4l2_standard *p = arg;
1221 v4l2_std_id id = vfd->tvnorms,curr_id=0; 1167 v4l2_std_id id = vfd->tvnorms, curr_id = 0;
1222 unsigned int index = p->index,i; 1168 unsigned int index = p->index, i, j = 0;
1223 1169 const char *descr = "";
1224 if (index<0) { 1170
1225 ret=-EINVAL; 1171 /* Return norm array in a canonical way */
1226 break; 1172 for (i = 0; i <= index && id; i++) {
1227 } 1173 /* last std value in the standards array is 0, so this
1228 1174 while always ends there since (id & 0) == 0. */
1229 /* Return norm array on a canonical way */ 1175 while ((id & standards[j].std) != standards[j].std)
1230 for (i=0;i<= index && id; i++) { 1176 j++;
1231 if ( (id & V4L2_STD_PAL) == V4L2_STD_PAL) { 1177 curr_id = standards[j].std;
1232 curr_id = V4L2_STD_PAL; 1178 descr = standards[j].descr;
1233 } else if ( (id & V4L2_STD_PAL_BG) == V4L2_STD_PAL_BG) { 1179 j++;
1234 curr_id = V4L2_STD_PAL_BG; 1180 if (curr_id == 0)
1235 } else if ( (id & V4L2_STD_PAL_DK) == V4L2_STD_PAL_DK) {
1236 curr_id = V4L2_STD_PAL_DK;
1237 } else if ( (id & V4L2_STD_PAL_B) == V4L2_STD_PAL_B) {
1238 curr_id = V4L2_STD_PAL_B;
1239 } else if ( (id & V4L2_STD_PAL_B1) == V4L2_STD_PAL_B1) {
1240 curr_id = V4L2_STD_PAL_B1;
1241 } else if ( (id & V4L2_STD_PAL_G) == V4L2_STD_PAL_G) {
1242 curr_id = V4L2_STD_PAL_G;
1243 } else if ( (id & V4L2_STD_PAL_H) == V4L2_STD_PAL_H) {
1244 curr_id = V4L2_STD_PAL_H;
1245 } else if ( (id & V4L2_STD_PAL_I) == V4L2_STD_PAL_I) {
1246 curr_id = V4L2_STD_PAL_I;
1247 } else if ( (id & V4L2_STD_PAL_D) == V4L2_STD_PAL_D) {
1248 curr_id = V4L2_STD_PAL_D;
1249 } else if ( (id & V4L2_STD_PAL_D1) == V4L2_STD_PAL_D1) {
1250 curr_id = V4L2_STD_PAL_D1;
1251 } else if ( (id & V4L2_STD_PAL_K) == V4L2_STD_PAL_K) {
1252 curr_id = V4L2_STD_PAL_K;
1253 } else if ( (id & V4L2_STD_PAL_M) == V4L2_STD_PAL_M) {
1254 curr_id = V4L2_STD_PAL_M;
1255 } else if ( (id & V4L2_STD_PAL_N) == V4L2_STD_PAL_N) {
1256 curr_id = V4L2_STD_PAL_N;
1257 } else if ( (id & V4L2_STD_PAL_Nc) == V4L2_STD_PAL_Nc) {
1258 curr_id = V4L2_STD_PAL_Nc;
1259 } else if ( (id & V4L2_STD_PAL_60) == V4L2_STD_PAL_60) {
1260 curr_id = V4L2_STD_PAL_60;
1261 } else if ( (id & V4L2_STD_NTSC) == V4L2_STD_NTSC) {
1262 curr_id = V4L2_STD_NTSC;
1263 } else if ( (id & V4L2_STD_NTSC_M) == V4L2_STD_NTSC_M) {
1264 curr_id = V4L2_STD_NTSC_M;
1265 } else if ( (id & V4L2_STD_NTSC_M_JP) == V4L2_STD_NTSC_M_JP) {
1266 curr_id = V4L2_STD_NTSC_M_JP;
1267 } else if ( (id & V4L2_STD_NTSC_443) == V4L2_STD_NTSC_443) {
1268 curr_id = V4L2_STD_NTSC_443;
1269 } else if ( (id & V4L2_STD_NTSC_M_KR) == V4L2_STD_NTSC_M_KR) {
1270 curr_id = V4L2_STD_NTSC_M_KR;
1271 } else if ( (id & V4L2_STD_SECAM) == V4L2_STD_SECAM) {
1272 curr_id = V4L2_STD_SECAM;
1273 } else if ( (id & V4L2_STD_SECAM_DK) == V4L2_STD_SECAM_DK) {
1274 curr_id = V4L2_STD_SECAM_DK;
1275 } else if ( (id & V4L2_STD_SECAM_B) == V4L2_STD_SECAM_B) {
1276 curr_id = V4L2_STD_SECAM_B;
1277 } else if ( (id & V4L2_STD_SECAM_D) == V4L2_STD_SECAM_D) {
1278 curr_id = V4L2_STD_SECAM_D;
1279 } else if ( (id & V4L2_STD_SECAM_G) == V4L2_STD_SECAM_G) {
1280 curr_id = V4L2_STD_SECAM_G;
1281 } else if ( (id & V4L2_STD_SECAM_H) == V4L2_STD_SECAM_H) {
1282 curr_id = V4L2_STD_SECAM_H;
1283 } else if ( (id & V4L2_STD_SECAM_K) == V4L2_STD_SECAM_K) {
1284 curr_id = V4L2_STD_SECAM_K;
1285 } else if ( (id & V4L2_STD_SECAM_K1) == V4L2_STD_SECAM_K1) {
1286 curr_id = V4L2_STD_SECAM_K1;
1287 } else if ( (id & V4L2_STD_SECAM_L) == V4L2_STD_SECAM_L) {
1288 curr_id = V4L2_STD_SECAM_L;
1289 } else if ( (id & V4L2_STD_SECAM_LC) == V4L2_STD_SECAM_LC) {
1290 curr_id = V4L2_STD_SECAM_LC;
1291 } else {
1292 break; 1181 break;
1293 } 1182 if (curr_id != V4L2_STD_PAL &&
1294 id &= ~curr_id; 1183 curr_id != V4L2_STD_SECAM &&
1184 curr_id != V4L2_STD_NTSC)
1185 id &= ~curr_id;
1295 } 1186 }
1296 if (i<=index) 1187 if (i <= index)
1297 return -EINVAL; 1188 return -EINVAL;
1298 1189
1299 v4l2_video_std_construct(p, curr_id,v4l2_norm_to_name(curr_id)); 1190 v4l2_video_std_construct(p, curr_id, descr);
1300 p->index = index; 1191 p->index = index;
1301 1192
1302 dbgarg (cmd, "index=%d, id=%Ld, name=%s, fps=%d/%d, " 1193 dbgarg(cmd, "index=%d, id=%Ld, name=%s, fps=%d/%d, "
1303 "framelines=%d\n", p->index, 1194 "framelines=%d\n", p->index,
1304 (unsigned long long)p->id, p->name, 1195 (unsigned long long)p->id, p->name,
1305 p->frameperiod.numerator, 1196 p->frameperiod.numerator,
1306 p->frameperiod.denominator, 1197 p->frameperiod.denominator,
1307 p->framelines); 1198 p->framelines);
1308 1199
1309 ret=0; 1200 ret = 0;
1310 break; 1201 break;
1311 } 1202 }
1312 case VIDIOC_G_STD: 1203 case VIDIOC_G_STD:
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c
index 845be1864f68..5ff9a58b6135 100644
--- a/drivers/media/video/vivi.c
+++ b/drivers/media/video/vivi.c
@@ -327,13 +327,14 @@ static void vivi_fillbuff(struct vivi_dev *dev, struct vivi_buffer *buf)
327 int hmax = buf->vb.height; 327 int hmax = buf->vb.height;
328 int wmax = buf->vb.width; 328 int wmax = buf->vb.width;
329 struct timeval ts; 329 struct timeval ts;
330 char *tmpbuf = kmalloc(wmax * 2, GFP_ATOMIC); 330 char *tmpbuf;
331 void *vbuf = videobuf_to_vmalloc(&buf->vb); 331 void *vbuf = videobuf_to_vmalloc(&buf->vb);
332 332
333 if (!tmpbuf) 333 if (!vbuf)
334 return; 334 return;
335 335
336 if (!vbuf) 336 tmpbuf = kmalloc(wmax * 2, GFP_ATOMIC);
337 if (!tmpbuf)
337 return; 338 return;
338 339
339 for (h = 0; h < hmax; h++) { 340 for (h = 0; h < hmax; h++) {
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index a0ce0b2fa03e..b5969298f3d3 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -1293,7 +1293,7 @@ static void tpacpi_input_send_radiosw(void)
1293 mutex_lock(&tpacpi_inputdev_send_mutex); 1293 mutex_lock(&tpacpi_inputdev_send_mutex);
1294 1294
1295 input_report_switch(tpacpi_inputdev, 1295 input_report_switch(tpacpi_inputdev,
1296 SW_RADIO, !!wlsw); 1296 SW_RFKILL_ALL, !!wlsw);
1297 input_sync(tpacpi_inputdev); 1297 input_sync(tpacpi_inputdev);
1298 1298
1299 mutex_unlock(&tpacpi_inputdev_send_mutex); 1299 mutex_unlock(&tpacpi_inputdev_send_mutex);
@@ -1921,6 +1921,29 @@ static struct attribute *hotkey_mask_attributes[] __initdata = {
1921 &dev_attr_hotkey_wakeup_hotunplug_complete.attr, 1921 &dev_attr_hotkey_wakeup_hotunplug_complete.attr,
1922}; 1922};
1923 1923
1924static void hotkey_exit(void)
1925{
1926#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
1927 hotkey_poll_stop_sync();
1928#endif
1929
1930 if (hotkey_dev_attributes)
1931 delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
1932
1933 kfree(hotkey_keycode_map);
1934
1935 if (tp_features.hotkey) {
1936 dbg_printk(TPACPI_DBG_EXIT,
1937 "restoring original hot key mask\n");
1938 /* no short-circuit boolean operator below! */
1939 if ((hotkey_mask_set(hotkey_orig_mask) |
1940 hotkey_status_set(hotkey_orig_status)) != 0)
1941 printk(TPACPI_ERR
1942 "failed to restore hot key mask "
1943 "to BIOS defaults\n");
1944 }
1945}
1946
1924static int __init hotkey_init(struct ibm_init_struct *iibm) 1947static int __init hotkey_init(struct ibm_init_struct *iibm)
1925{ 1948{
1926 /* Requirements for changing the default keymaps: 1949 /* Requirements for changing the default keymaps:
@@ -2060,226 +2083,220 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
2060 vdbg_printk(TPACPI_DBG_INIT, "hotkeys are %s\n", 2083 vdbg_printk(TPACPI_DBG_INIT, "hotkeys are %s\n",
2061 str_supported(tp_features.hotkey)); 2084 str_supported(tp_features.hotkey));
2062 2085
2063 if (tp_features.hotkey) { 2086 if (!tp_features.hotkey)
2064 hotkey_dev_attributes = create_attr_set(13, NULL); 2087 return 1;
2065 if (!hotkey_dev_attributes)
2066 return -ENOMEM;
2067 res = add_many_to_attr_set(hotkey_dev_attributes,
2068 hotkey_attributes,
2069 ARRAY_SIZE(hotkey_attributes));
2070 if (res)
2071 return res;
2072 2088
2073 /* mask not supported on 570, 600e/x, 770e, 770x, A21e, A2xm/p, 2089 hotkey_dev_attributes = create_attr_set(13, NULL);
2074 A30, R30, R31, T20-22, X20-21, X22-24. Detected by checking 2090 if (!hotkey_dev_attributes)
2075 for HKEY interface version 0x100 */ 2091 return -ENOMEM;
2076 if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) { 2092 res = add_many_to_attr_set(hotkey_dev_attributes,
2077 if ((hkeyv >> 8) != 1) { 2093 hotkey_attributes,
2078 printk(TPACPI_ERR "unknown version of the " 2094 ARRAY_SIZE(hotkey_attributes));
2079 "HKEY interface: 0x%x\n", hkeyv); 2095 if (res)
2080 printk(TPACPI_ERR "please report this to %s\n", 2096 goto err_exit;
2081 TPACPI_MAIL); 2097
2082 } else { 2098 /* mask not supported on 570, 600e/x, 770e, 770x, A21e, A2xm/p,
2083 /* 2099 A30, R30, R31, T20-22, X20-21, X22-24. Detected by checking
2084 * MHKV 0x100 in A31, R40, R40e, 2100 for HKEY interface version 0x100 */
2085 * T4x, X31, and later 2101 if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) {
2086 */ 2102 if ((hkeyv >> 8) != 1) {
2087 tp_features.hotkey_mask = 1; 2103 printk(TPACPI_ERR "unknown version of the "
2088 } 2104 "HKEY interface: 0x%x\n", hkeyv);
2105 printk(TPACPI_ERR "please report this to %s\n",
2106 TPACPI_MAIL);
2107 } else {
2108 /*
2109 * MHKV 0x100 in A31, R40, R40e,
2110 * T4x, X31, and later
2111 */
2112 tp_features.hotkey_mask = 1;
2089 } 2113 }
2114 }
2090 2115
2091 vdbg_printk(TPACPI_DBG_INIT, "hotkey masks are %s\n", 2116 vdbg_printk(TPACPI_DBG_INIT, "hotkey masks are %s\n",
2092 str_supported(tp_features.hotkey_mask)); 2117 str_supported(tp_features.hotkey_mask));
2093 2118
2094 if (tp_features.hotkey_mask) { 2119 if (tp_features.hotkey_mask) {
2095 if (!acpi_evalf(hkey_handle, &hotkey_all_mask, 2120 if (!acpi_evalf(hkey_handle, &hotkey_all_mask,
2096 "MHKA", "qd")) { 2121 "MHKA", "qd")) {
2097 printk(TPACPI_ERR 2122 printk(TPACPI_ERR
2098 "missing MHKA handler, " 2123 "missing MHKA handler, "
2099 "please report this to %s\n", 2124 "please report this to %s\n",
2100 TPACPI_MAIL); 2125 TPACPI_MAIL);
2101 /* FN+F12, FN+F4, FN+F3 */ 2126 /* FN+F12, FN+F4, FN+F3 */
2102 hotkey_all_mask = 0x080cU; 2127 hotkey_all_mask = 0x080cU;
2103 }
2104 } 2128 }
2129 }
2105 2130
2106 /* hotkey_source_mask *must* be zero for 2131 /* hotkey_source_mask *must* be zero for
2107 * the first hotkey_mask_get */ 2132 * the first hotkey_mask_get */
2108 res = hotkey_status_get(&hotkey_orig_status); 2133 res = hotkey_status_get(&hotkey_orig_status);
2109 if (!res && tp_features.hotkey_mask) { 2134 if (res)
2110 res = hotkey_mask_get(); 2135 goto err_exit;
2111 hotkey_orig_mask = hotkey_mask; 2136
2112 if (!res) { 2137 if (tp_features.hotkey_mask) {
2113 res = add_many_to_attr_set( 2138 res = hotkey_mask_get();
2114 hotkey_dev_attributes, 2139 if (res)
2115 hotkey_mask_attributes, 2140 goto err_exit;
2116 ARRAY_SIZE(hotkey_mask_attributes)); 2141
2117 } 2142 hotkey_orig_mask = hotkey_mask;
2118 } 2143 res = add_many_to_attr_set(
2144 hotkey_dev_attributes,
2145 hotkey_mask_attributes,
2146 ARRAY_SIZE(hotkey_mask_attributes));
2147 if (res)
2148 goto err_exit;
2149 }
2119 2150
2120#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL 2151#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
2121 if (tp_features.hotkey_mask) { 2152 if (tp_features.hotkey_mask) {
2122 hotkey_source_mask = TPACPI_HKEY_NVRAM_GOOD_MASK 2153 hotkey_source_mask = TPACPI_HKEY_NVRAM_GOOD_MASK
2123 & ~hotkey_all_mask; 2154 & ~hotkey_all_mask;
2124 } else { 2155 } else {
2125 hotkey_source_mask = TPACPI_HKEY_NVRAM_GOOD_MASK; 2156 hotkey_source_mask = TPACPI_HKEY_NVRAM_GOOD_MASK;
2126 } 2157 }
2127 2158
2128 vdbg_printk(TPACPI_DBG_INIT, 2159 vdbg_printk(TPACPI_DBG_INIT,
2129 "hotkey source mask 0x%08x, polling freq %d\n", 2160 "hotkey source mask 0x%08x, polling freq %d\n",
2130 hotkey_source_mask, hotkey_poll_freq); 2161 hotkey_source_mask, hotkey_poll_freq);
2131#endif 2162#endif
2132 2163
2133 /* Not all thinkpads have a hardware radio switch */ 2164 /* Not all thinkpads have a hardware radio switch */
2134 if (!res && acpi_evalf(hkey_handle, &status, "WLSW", "qd")) { 2165 if (acpi_evalf(hkey_handle, &status, "WLSW", "qd")) {
2135 tp_features.hotkey_wlsw = 1; 2166 tp_features.hotkey_wlsw = 1;
2136 printk(TPACPI_INFO 2167 printk(TPACPI_INFO
2137 "radio switch found; radios are %s\n", 2168 "radio switch found; radios are %s\n",
2138 enabled(status, 0)); 2169 enabled(status, 0));
2139 res = add_to_attr_set(hotkey_dev_attributes, 2170 res = add_to_attr_set(hotkey_dev_attributes,
2140 &dev_attr_hotkey_radio_sw.attr); 2171 &dev_attr_hotkey_radio_sw.attr);
2141 } 2172 }
2142 2173
2143 /* For X41t, X60t, X61t Tablets... */ 2174 /* For X41t, X60t, X61t Tablets... */
2144 if (!res && acpi_evalf(hkey_handle, &status, "MHKG", "qd")) { 2175 if (!res && acpi_evalf(hkey_handle, &status, "MHKG", "qd")) {
2145 tp_features.hotkey_tablet = 1; 2176 tp_features.hotkey_tablet = 1;
2146 printk(TPACPI_INFO 2177 printk(TPACPI_INFO
2147 "possible tablet mode switch found; " 2178 "possible tablet mode switch found; "
2148 "ThinkPad in %s mode\n", 2179 "ThinkPad in %s mode\n",
2149 (status & TP_HOTKEY_TABLET_MASK)? 2180 (status & TP_HOTKEY_TABLET_MASK)?
2150 "tablet" : "laptop"); 2181 "tablet" : "laptop");
2151 res = add_to_attr_set(hotkey_dev_attributes, 2182 res = add_to_attr_set(hotkey_dev_attributes,
2152 &dev_attr_hotkey_tablet_mode.attr); 2183 &dev_attr_hotkey_tablet_mode.attr);
2153 } 2184 }
2154 2185
2155 if (!res) 2186 if (!res)
2156 res = register_attr_set_with_sysfs( 2187 res = register_attr_set_with_sysfs(
2157 hotkey_dev_attributes, 2188 hotkey_dev_attributes,
2158 &tpacpi_pdev->dev.kobj); 2189 &tpacpi_pdev->dev.kobj);
2159 if (res) 2190 if (res)
2160 return res; 2191 goto err_exit;
2161 2192
2162 /* Set up key map */ 2193 /* Set up key map */
2163 2194
2164 hotkey_keycode_map = kmalloc(TPACPI_HOTKEY_MAP_SIZE, 2195 hotkey_keycode_map = kmalloc(TPACPI_HOTKEY_MAP_SIZE,
2165 GFP_KERNEL); 2196 GFP_KERNEL);
2166 if (!hotkey_keycode_map) { 2197 if (!hotkey_keycode_map) {
2167 printk(TPACPI_ERR 2198 printk(TPACPI_ERR
2168 "failed to allocate memory for key map\n"); 2199 "failed to allocate memory for key map\n");
2169 return -ENOMEM; 2200 res = -ENOMEM;
2170 } 2201 goto err_exit;
2202 }
2171 2203
2172 if (thinkpad_id.vendor == PCI_VENDOR_ID_LENOVO) { 2204 if (thinkpad_id.vendor == PCI_VENDOR_ID_LENOVO) {
2173 dbg_printk(TPACPI_DBG_INIT, 2205 dbg_printk(TPACPI_DBG_INIT,
2174 "using Lenovo default hot key map\n"); 2206 "using Lenovo default hot key map\n");
2175 memcpy(hotkey_keycode_map, &lenovo_keycode_map, 2207 memcpy(hotkey_keycode_map, &lenovo_keycode_map,
2176 TPACPI_HOTKEY_MAP_SIZE); 2208 TPACPI_HOTKEY_MAP_SIZE);
2209 } else {
2210 dbg_printk(TPACPI_DBG_INIT,
2211 "using IBM default hot key map\n");
2212 memcpy(hotkey_keycode_map, &ibm_keycode_map,
2213 TPACPI_HOTKEY_MAP_SIZE);
2214 }
2215
2216 set_bit(EV_KEY, tpacpi_inputdev->evbit);
2217 set_bit(EV_MSC, tpacpi_inputdev->evbit);
2218 set_bit(MSC_SCAN, tpacpi_inputdev->mscbit);
2219 tpacpi_inputdev->keycodesize = TPACPI_HOTKEY_MAP_TYPESIZE;
2220 tpacpi_inputdev->keycodemax = TPACPI_HOTKEY_MAP_LEN;
2221 tpacpi_inputdev->keycode = hotkey_keycode_map;
2222 for (i = 0; i < TPACPI_HOTKEY_MAP_LEN; i++) {
2223 if (hotkey_keycode_map[i] != KEY_RESERVED) {
2224 set_bit(hotkey_keycode_map[i],
2225 tpacpi_inputdev->keybit);
2177 } else { 2226 } else {
2178 dbg_printk(TPACPI_DBG_INIT, 2227 if (i < sizeof(hotkey_reserved_mask)*8)
2179 "using IBM default hot key map\n"); 2228 hotkey_reserved_mask |= 1 << i;
2180 memcpy(hotkey_keycode_map, &ibm_keycode_map,
2181 TPACPI_HOTKEY_MAP_SIZE);
2182 }
2183
2184 set_bit(EV_KEY, tpacpi_inputdev->evbit);
2185 set_bit(EV_MSC, tpacpi_inputdev->evbit);
2186 set_bit(MSC_SCAN, tpacpi_inputdev->mscbit);
2187 tpacpi_inputdev->keycodesize = TPACPI_HOTKEY_MAP_TYPESIZE;
2188 tpacpi_inputdev->keycodemax = TPACPI_HOTKEY_MAP_LEN;
2189 tpacpi_inputdev->keycode = hotkey_keycode_map;
2190 for (i = 0; i < TPACPI_HOTKEY_MAP_LEN; i++) {
2191 if (hotkey_keycode_map[i] != KEY_RESERVED) {
2192 set_bit(hotkey_keycode_map[i],
2193 tpacpi_inputdev->keybit);
2194 } else {
2195 if (i < sizeof(hotkey_reserved_mask)*8)
2196 hotkey_reserved_mask |= 1 << i;
2197 }
2198 }
2199
2200 if (tp_features.hotkey_wlsw) {
2201 set_bit(EV_SW, tpacpi_inputdev->evbit);
2202 set_bit(SW_RADIO, tpacpi_inputdev->swbit);
2203 }
2204 if (tp_features.hotkey_tablet) {
2205 set_bit(EV_SW, tpacpi_inputdev->evbit);
2206 set_bit(SW_TABLET_MODE, tpacpi_inputdev->swbit);
2207 } 2229 }
2230 }
2208 2231
2209 /* Do not issue duplicate brightness change events to 2232 if (tp_features.hotkey_wlsw) {
2210 * userspace */ 2233 set_bit(EV_SW, tpacpi_inputdev->evbit);
2211 if (!tp_features.bright_acpimode) 2234 set_bit(SW_RFKILL_ALL, tpacpi_inputdev->swbit);
2212 /* update bright_acpimode... */ 2235 }
2213 tpacpi_check_std_acpi_brightness_support(); 2236 if (tp_features.hotkey_tablet) {
2214 2237 set_bit(EV_SW, tpacpi_inputdev->evbit);
2215 if (tp_features.bright_acpimode) { 2238 set_bit(SW_TABLET_MODE, tpacpi_inputdev->swbit);
2216 printk(TPACPI_INFO 2239 }
2217 "This ThinkPad has standard ACPI backlight "
2218 "brightness control, supported by the ACPI "
2219 "video driver\n");
2220 printk(TPACPI_NOTICE
2221 "Disabling thinkpad-acpi brightness events "
2222 "by default...\n");
2223
2224 /* The hotkey_reserved_mask change below is not
2225 * necessary while the keys are at KEY_RESERVED in the
2226 * default map, but better safe than sorry, leave it
2227 * here as a marker of what we have to do, especially
2228 * when we finally become able to set this at runtime
2229 * on response to X.org requests */
2230 hotkey_reserved_mask |=
2231 (1 << TP_ACPI_HOTKEYSCAN_FNHOME)
2232 | (1 << TP_ACPI_HOTKEYSCAN_FNEND);
2233 }
2234 2240
2235 dbg_printk(TPACPI_DBG_INIT, 2241 /* Do not issue duplicate brightness change events to
2236 "enabling hot key handling\n"); 2242 * userspace */
2237 res = hotkey_status_set(1); 2243 if (!tp_features.bright_acpimode)
2238 if (res) 2244 /* update bright_acpimode... */
2239 return res; 2245 tpacpi_check_std_acpi_brightness_support();
2240 res = hotkey_mask_set(((hotkey_all_mask | hotkey_source_mask)
2241 & ~hotkey_reserved_mask)
2242 | hotkey_orig_mask);
2243 if (res < 0 && res != -ENXIO)
2244 return res;
2245 2246
2246 dbg_printk(TPACPI_DBG_INIT, 2247 if (tp_features.bright_acpimode) {
2247 "legacy hot key reporting over procfs %s\n", 2248 printk(TPACPI_INFO
2248 (hotkey_report_mode < 2) ? 2249 "This ThinkPad has standard ACPI backlight "
2249 "enabled" : "disabled"); 2250 "brightness control, supported by the ACPI "
2251 "video driver\n");
2252 printk(TPACPI_NOTICE
2253 "Disabling thinkpad-acpi brightness events "
2254 "by default...\n");
2255
2256 /* The hotkey_reserved_mask change below is not
2257 * necessary while the keys are at KEY_RESERVED in the
2258 * default map, but better safe than sorry, leave it
2259 * here as a marker of what we have to do, especially
2260 * when we finally become able to set this at runtime
2261 * on response to X.org requests */
2262 hotkey_reserved_mask |=
2263 (1 << TP_ACPI_HOTKEYSCAN_FNHOME)
2264 | (1 << TP_ACPI_HOTKEYSCAN_FNEND);
2265 }
2266
2267 dbg_printk(TPACPI_DBG_INIT, "enabling hot key handling\n");
2268 res = hotkey_status_set(1);
2269 if (res) {
2270 hotkey_exit();
2271 return res;
2272 }
2273 res = hotkey_mask_set(((hotkey_all_mask | hotkey_source_mask)
2274 & ~hotkey_reserved_mask)
2275 | hotkey_orig_mask);
2276 if (res < 0 && res != -ENXIO) {
2277 hotkey_exit();
2278 return res;
2279 }
2250 2280
2251 tpacpi_inputdev->open = &hotkey_inputdev_open; 2281 dbg_printk(TPACPI_DBG_INIT,
2252 tpacpi_inputdev->close = &hotkey_inputdev_close; 2282 "legacy hot key reporting over procfs %s\n",
2283 (hotkey_report_mode < 2) ?
2284 "enabled" : "disabled");
2253 2285
2254 hotkey_poll_setup_safe(1); 2286 tpacpi_inputdev->open = &hotkey_inputdev_open;
2255 tpacpi_input_send_radiosw(); 2287 tpacpi_inputdev->close = &hotkey_inputdev_close;
2256 tpacpi_input_send_tabletsw();
2257 }
2258 2288
2259 return (tp_features.hotkey)? 0 : 1; 2289 hotkey_poll_setup_safe(1);
2260} 2290 tpacpi_input_send_radiosw();
2291 tpacpi_input_send_tabletsw();
2261 2292
2262static void hotkey_exit(void) 2293 return 0;
2263{
2264#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
2265 hotkey_poll_stop_sync();
2266#endif
2267 2294
2268 if (tp_features.hotkey) { 2295err_exit:
2269 dbg_printk(TPACPI_DBG_EXIT, 2296 delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
2270 "restoring original hot key mask\n"); 2297 hotkey_dev_attributes = NULL;
2271 /* no short-circuit boolean operator below! */
2272 if ((hotkey_mask_set(hotkey_orig_mask) |
2273 hotkey_status_set(hotkey_orig_status)) != 0)
2274 printk(TPACPI_ERR
2275 "failed to restore hot key mask "
2276 "to BIOS defaults\n");
2277 }
2278 2298
2279 if (hotkey_dev_attributes) { 2299 return (res < 0)? res : 1;
2280 delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
2281 hotkey_dev_attributes = NULL;
2282 }
2283} 2300}
2284 2301
2285static void hotkey_notify(struct ibm_struct *ibm, u32 event) 2302static void hotkey_notify(struct ibm_struct *ibm, u32 event)
@@ -3319,7 +3336,7 @@ static struct tpacpi_led_classdev tpacpi_led_thinklight = {
3319 3336
3320static int __init light_init(struct ibm_init_struct *iibm) 3337static int __init light_init(struct ibm_init_struct *iibm)
3321{ 3338{
3322 int rc = 0; 3339 int rc;
3323 3340
3324 vdbg_printk(TPACPI_DBG_INIT, "initializing light subdriver\n"); 3341 vdbg_printk(TPACPI_DBG_INIT, "initializing light subdriver\n");
3325 3342
@@ -3337,20 +3354,23 @@ static int __init light_init(struct ibm_init_struct *iibm)
3337 tp_features.light_status = 3354 tp_features.light_status =
3338 acpi_evalf(ec_handle, NULL, "KBLT", "qv"); 3355 acpi_evalf(ec_handle, NULL, "KBLT", "qv");
3339 3356
3340 vdbg_printk(TPACPI_DBG_INIT, "light is %s\n", 3357 vdbg_printk(TPACPI_DBG_INIT, "light is %s, light status is %s\n",
3341 str_supported(tp_features.light)); 3358 str_supported(tp_features.light),
3359 str_supported(tp_features.light_status));
3342 3360
3343 if (tp_features.light) { 3361 if (!tp_features.light)
3344 rc = led_classdev_register(&tpacpi_pdev->dev, 3362 return 1;
3345 &tpacpi_led_thinklight.led_classdev); 3363
3346 } 3364 rc = led_classdev_register(&tpacpi_pdev->dev,
3365 &tpacpi_led_thinklight.led_classdev);
3347 3366
3348 if (rc < 0) { 3367 if (rc < 0) {
3349 tp_features.light = 0; 3368 tp_features.light = 0;
3350 tp_features.light_status = 0; 3369 tp_features.light_status = 0;
3351 } else { 3370 } else {
3352 rc = (tp_features.light)? 0 : 1; 3371 rc = 0;
3353 } 3372 }
3373
3354 return rc; 3374 return rc;
3355} 3375}
3356 3376
@@ -3833,7 +3853,7 @@ static const char * const tpacpi_led_names[TPACPI_LED_NUMLEDS] = {
3833 "tpacpi::standby", 3853 "tpacpi::standby",
3834}; 3854};
3835 3855
3836static int led_get_status(unsigned int led) 3856static int led_get_status(const unsigned int led)
3837{ 3857{
3838 int status; 3858 int status;
3839 enum led_status_t led_s; 3859 enum led_status_t led_s;
@@ -3857,41 +3877,42 @@ static int led_get_status(unsigned int led)
3857 /* not reached */ 3877 /* not reached */
3858} 3878}
3859 3879
3860static int led_set_status(unsigned int led, enum led_status_t ledstatus) 3880static int led_set_status(const unsigned int led,
3881 const enum led_status_t ledstatus)
3861{ 3882{
3862 /* off, on, blink. Index is led_status_t */ 3883 /* off, on, blink. Index is led_status_t */
3863 static const int led_sled_arg1[] = { 0, 1, 3 }; 3884 static const unsigned int led_sled_arg1[] = { 0, 1, 3 };
3864 static const int led_exp_hlbl[] = { 0, 0, 1 }; /* led# * */ 3885 static const unsigned int led_led_arg1[] = { 0, 0x80, 0xc0 };
3865 static const int led_exp_hlcl[] = { 0, 1, 1 }; /* led# * */
3866 static const int led_led_arg1[] = { 0, 0x80, 0xc0 };
3867 3886
3868 int rc = 0; 3887 int rc = 0;
3869 3888
3870 switch (led_supported) { 3889 switch (led_supported) {
3871 case TPACPI_LED_570: 3890 case TPACPI_LED_570:
3872 /* 570 */ 3891 /* 570 */
3873 led = 1 << led; 3892 if (led > 7)
3874 if (!acpi_evalf(led_handle, NULL, NULL, "vdd", 3893 return -EINVAL;
3875 led, led_sled_arg1[ledstatus])) 3894 if (!acpi_evalf(led_handle, NULL, NULL, "vdd",
3876 rc = -EIO; 3895 (1 << led), led_sled_arg1[ledstatus]))
3877 break; 3896 rc = -EIO;
3897 break;
3878 case TPACPI_LED_OLD: 3898 case TPACPI_LED_OLD:
3879 /* 600e/x, 770e, 770x, A21e, A2xm/p, T20-22, X20 */ 3899 /* 600e/x, 770e, 770x, A21e, A2xm/p, T20-22, X20 */
3880 led = 1 << led; 3900 if (led > 7)
3881 rc = ec_write(TPACPI_LED_EC_HLMS, led); 3901 return -EINVAL;
3882 if (rc >= 0) 3902 rc = ec_write(TPACPI_LED_EC_HLMS, (1 << led));
3883 rc = ec_write(TPACPI_LED_EC_HLBL, 3903 if (rc >= 0)
3884 led * led_exp_hlbl[ledstatus]); 3904 rc = ec_write(TPACPI_LED_EC_HLBL,
3885 if (rc >= 0) 3905 (ledstatus == TPACPI_LED_BLINK) << led);
3886 rc = ec_write(TPACPI_LED_EC_HLCL, 3906 if (rc >= 0)
3887 led * led_exp_hlcl[ledstatus]); 3907 rc = ec_write(TPACPI_LED_EC_HLCL,
3888 break; 3908 (ledstatus != TPACPI_LED_OFF) << led);
3909 break;
3889 case TPACPI_LED_NEW: 3910 case TPACPI_LED_NEW:
3890 /* all others */ 3911 /* all others */
3891 if (!acpi_evalf(led_handle, NULL, NULL, "vdd", 3912 if (!acpi_evalf(led_handle, NULL, NULL, "vdd",
3892 led, led_led_arg1[ledstatus])) 3913 led, led_led_arg1[ledstatus]))
3893 rc = -EIO; 3914 rc = -EIO;
3894 break; 3915 break;
3895 default: 3916 default:
3896 rc = -ENXIO; 3917 rc = -ENXIO;
3897 } 3918 }
@@ -3978,7 +3999,6 @@ static void led_exit(void)
3978 } 3999 }
3979 4000
3980 kfree(tpacpi_leds); 4001 kfree(tpacpi_leds);
3981 tpacpi_leds = NULL;
3982} 4002}
3983 4003
3984static int __init led_init(struct ibm_init_struct *iibm) 4004static int __init led_init(struct ibm_init_struct *iibm)
@@ -4802,7 +4822,6 @@ static void brightness_exit(void)
4802 vdbg_printk(TPACPI_DBG_EXIT, 4822 vdbg_printk(TPACPI_DBG_EXIT,
4803 "calling backlight_device_unregister()\n"); 4823 "calling backlight_device_unregister()\n");
4804 backlight_device_unregister(ibm_backlight_device); 4824 backlight_device_unregister(ibm_backlight_device);
4805 ibm_backlight_device = NULL;
4806 } 4825 }
4807} 4826}
4808 4827
@@ -5764,11 +5783,16 @@ static int __init fan_init(struct ibm_init_struct *iibm)
5764 fan_control_access_mode != TPACPI_FAN_WR_NONE) { 5783 fan_control_access_mode != TPACPI_FAN_WR_NONE) {
5765 rc = sysfs_create_group(&tpacpi_sensors_pdev->dev.kobj, 5784 rc = sysfs_create_group(&tpacpi_sensors_pdev->dev.kobj,
5766 &fan_attr_group); 5785 &fan_attr_group);
5767 if (!(rc < 0))
5768 rc = driver_create_file(&tpacpi_hwmon_pdriver.driver,
5769 &driver_attr_fan_watchdog);
5770 if (rc < 0) 5786 if (rc < 0)
5771 return rc; 5787 return rc;
5788
5789 rc = driver_create_file(&tpacpi_hwmon_pdriver.driver,
5790 &driver_attr_fan_watchdog);
5791 if (rc < 0) {
5792 sysfs_remove_group(&tpacpi_sensors_pdev->dev.kobj,
5793 &fan_attr_group);
5794 return rc;
5795 }
5772 return 0; 5796 return 0;
5773 } else 5797 } else
5774 return 1; 5798 return 1;
diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c
index be624a049c67..c303e7f57ab4 100644
--- a/drivers/mmc/host/wbsd.c
+++ b/drivers/mmc/host/wbsd.c
@@ -1457,17 +1457,7 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)
1457 int ret; 1457 int ret;
1458 1458
1459 /* 1459 /*
1460 * Allocate interrupt. 1460 * Set up tasklets. Must be done before requesting interrupt.
1461 */
1462
1463 ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host);
1464 if (ret)
1465 return ret;
1466
1467 host->irq = irq;
1468
1469 /*
1470 * Set up tasklets.
1471 */ 1461 */
1472 tasklet_init(&host->card_tasklet, wbsd_tasklet_card, 1462 tasklet_init(&host->card_tasklet, wbsd_tasklet_card,
1473 (unsigned long)host); 1463 (unsigned long)host);
@@ -1480,6 +1470,15 @@ static int __devinit wbsd_request_irq(struct wbsd_host *host, int irq)
1480 tasklet_init(&host->finish_tasklet, wbsd_tasklet_finish, 1470 tasklet_init(&host->finish_tasklet, wbsd_tasklet_finish,
1481 (unsigned long)host); 1471 (unsigned long)host);
1482 1472
1473 /*
1474 * Allocate interrupt.
1475 */
1476 ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host);
1477 if (ret)
1478 return ret;
1479
1480 host->irq = irq;
1481
1483 return 0; 1482 return 0;
1484} 1483}
1485 1484
diff --git a/drivers/net/7990.c b/drivers/net/7990.c
index 750a46f4bc58..ad6b8a5b6574 100644
--- a/drivers/net/7990.c
+++ b/drivers/net/7990.c
@@ -506,6 +506,7 @@ int lance_open (struct net_device *dev)
506 506
507 return res; 507 return res;
508} 508}
509EXPORT_SYMBOL_GPL(lance_open);
509 510
510int lance_close (struct net_device *dev) 511int lance_close (struct net_device *dev)
511{ 512{
@@ -521,6 +522,7 @@ int lance_close (struct net_device *dev)
521 522
522 return 0; 523 return 0;
523} 524}
525EXPORT_SYMBOL_GPL(lance_close);
524 526
525void lance_tx_timeout(struct net_device *dev) 527void lance_tx_timeout(struct net_device *dev)
526{ 528{
@@ -529,7 +531,7 @@ void lance_tx_timeout(struct net_device *dev)
529 dev->trans_start = jiffies; 531 dev->trans_start = jiffies;
530 netif_wake_queue (dev); 532 netif_wake_queue (dev);
531} 533}
532 534EXPORT_SYMBOL_GPL(lance_tx_timeout);
533 535
534int lance_start_xmit (struct sk_buff *skb, struct net_device *dev) 536int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
535{ 537{
@@ -586,6 +588,7 @@ int lance_start_xmit (struct sk_buff *skb, struct net_device *dev)
586 588
587 return 0; 589 return 0;
588} 590}
591EXPORT_SYMBOL_GPL(lance_start_xmit);
589 592
590/* taken from the depca driver via a2065.c */ 593/* taken from the depca driver via a2065.c */
591static void lance_load_multicast (struct net_device *dev) 594static void lance_load_multicast (struct net_device *dev)
@@ -654,6 +657,7 @@ void lance_set_multicast (struct net_device *dev)
654 if (!stopped) 657 if (!stopped)
655 netif_start_queue (dev); 658 netif_start_queue (dev);
656} 659}
660EXPORT_SYMBOL_GPL(lance_set_multicast);
657 661
658#ifdef CONFIG_NET_POLL_CONTROLLER 662#ifdef CONFIG_NET_POLL_CONTROLLER
659void lance_poll(struct net_device *dev) 663void lance_poll(struct net_device *dev)
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 6ddc911e7d15..3c798ae5c343 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -471,7 +471,6 @@ static int atl1_get_permanent_address(struct atl1_hw *hw)
471 memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); 471 memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN);
472 return 0; 472 return 0;
473 } 473 }
474 return 1;
475 } 474 }
476 475
477 /* see if SPI FLAGS exist ? */ 476 /* see if SPI FLAGS exist ? */
@@ -637,22 +636,6 @@ static s32 atl1_phy_leave_power_saving(struct atl1_hw *hw)
637} 636}
638 637
639/* 638/*
640 * Force the PHY into power saving mode using vendor magic.
641 */
642#ifdef CONFIG_PM
643static void atl1_phy_enter_power_saving(struct atl1_hw *hw)
644{
645 atl1_write_phy_reg(hw, MII_DBG_ADDR, 0);
646 atl1_write_phy_reg(hw, MII_DBG_DATA, 0x124E);
647 atl1_write_phy_reg(hw, MII_DBG_ADDR, 2);
648 atl1_write_phy_reg(hw, MII_DBG_DATA, 0x3000);
649 atl1_write_phy_reg(hw, MII_DBG_ADDR, 3);
650 atl1_write_phy_reg(hw, MII_DBG_DATA, 0);
651
652}
653#endif
654
655/*
656 * Resets the PHY and make all config validate 639 * Resets the PHY and make all config validate
657 * hw - Struct containing variables accessed by shared code 640 * hw - Struct containing variables accessed by shared code
658 * 641 *
@@ -2860,7 +2843,6 @@ disable_wol:
2860 ctrl |= PCIE_PHYMISC_FORCE_RCV_DET; 2843 ctrl |= PCIE_PHYMISC_FORCE_RCV_DET;
2861 iowrite32(ctrl, hw->hw_addr + REG_PCIE_PHYMISC); 2844 iowrite32(ctrl, hw->hw_addr + REG_PCIE_PHYMISC);
2862 ioread32(hw->hw_addr + REG_PCIE_PHYMISC); 2845 ioread32(hw->hw_addr + REG_PCIE_PHYMISC);
2863 atl1_phy_enter_power_saving(hw);
2864 hw->phy_configured = false; 2846 hw->phy_configured = false;
2865 pci_enable_wake(pdev, pci_choose_state(pdev, state), 0); 2847 pci_enable_wake(pdev, pci_choose_state(pdev, state), 0);
2866exit: 2848exit:
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 4b46e68183e0..367b6d462708 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -5724,14 +5724,12 @@ bnx2_reset_task(struct work_struct *work)
5724 if (!netif_running(bp->dev)) 5724 if (!netif_running(bp->dev))
5725 return; 5725 return;
5726 5726
5727 bp->in_reset_task = 1;
5728 bnx2_netif_stop(bp); 5727 bnx2_netif_stop(bp);
5729 5728
5730 bnx2_init_nic(bp); 5729 bnx2_init_nic(bp);
5731 5730
5732 atomic_set(&bp->intr_sem, 1); 5731 atomic_set(&bp->intr_sem, 1);
5733 bnx2_netif_start(bp); 5732 bnx2_netif_start(bp);
5734 bp->in_reset_task = 0;
5735} 5733}
5736 5734
5737static void 5735static void
@@ -5907,12 +5905,7 @@ bnx2_close(struct net_device *dev)
5907 struct bnx2 *bp = netdev_priv(dev); 5905 struct bnx2 *bp = netdev_priv(dev);
5908 u32 reset_code; 5906 u32 reset_code;
5909 5907
5910 /* Calling flush_scheduled_work() may deadlock because 5908 cancel_work_sync(&bp->reset_task);
5911 * linkwatch_event() may be on the workqueue and it will try to get
5912 * the rtnl_lock which we are holding.
5913 */
5914 while (bp->in_reset_task)
5915 msleep(1);
5916 5909
5917 bnx2_disable_int_sync(bp); 5910 bnx2_disable_int_sync(bp);
5918 bnx2_napi_disable(bp); 5911 bnx2_napi_disable(bp);
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index 1eaf5bb3d9c2..2377cc13bf61 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -6656,7 +6656,6 @@ struct bnx2 {
6656 int current_interval; 6656 int current_interval;
6657 struct timer_list timer; 6657 struct timer_list timer;
6658 struct work_struct reset_task; 6658 struct work_struct reset_task;
6659 int in_reset_task;
6660 6659
6661 /* Used to synchronize phy accesses. */ 6660 /* Used to synchronize phy accesses. */
6662 spinlock_t phy_lock; 6661 spinlock_t phy_lock;
diff --git a/drivers/net/bnx2x.c b/drivers/net/bnx2x.c
index 7bdb5af35951..70cba64732ca 100644
--- a/drivers/net/bnx2x.c
+++ b/drivers/net/bnx2x.c
@@ -6,7 +6,8 @@
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation. 7 * the Free Software Foundation.
8 * 8 *
9 * Written by: Eliezer Tamir <eliezert@broadcom.com> 9 * Maintained by: Eilon Greenstein <eilong@broadcom.com>
10 * Written by: Eliezer Tamir
10 * Based on code from Michael Chan's bnx2 driver 11 * Based on code from Michael Chan's bnx2 driver
11 * UDP CSUM errata workaround by Arik Gendelman 12 * UDP CSUM errata workaround by Arik Gendelman
12 * Slowpath rework by Vladislav Zolotarov 13 * Slowpath rework by Vladislav Zolotarov
@@ -74,7 +75,7 @@ static char version[] __devinitdata =
74 "Broadcom NetXtreme II 5771X 10Gigabit Ethernet Driver " 75 "Broadcom NetXtreme II 5771X 10Gigabit Ethernet Driver "
75 DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; 76 DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
76 77
77MODULE_AUTHOR("Eliezer Tamir <eliezert@broadcom.com>"); 78MODULE_AUTHOR("Eliezer Tamir");
78MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710 Driver"); 79MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710 Driver");
79MODULE_LICENSE("GPL"); 80MODULE_LICENSE("GPL");
80MODULE_VERSION(DRV_MODULE_VERSION); 81MODULE_VERSION(DRV_MODULE_VERSION);
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h
index 4f0c0d31e7c1..8e68d06510a6 100644
--- a/drivers/net/bnx2x.h
+++ b/drivers/net/bnx2x.h
@@ -6,7 +6,8 @@
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation. 7 * the Free Software Foundation.
8 * 8 *
9 * Written by: Eliezer Tamir <eliezert@broadcom.com> 9 * Maintained by: Eilon Greenstein <eilong@broadcom.com>
10 * Written by: Eliezer Tamir
10 * Based on code from Michael Chan's bnx2 driver 11 * Based on code from Michael Chan's bnx2 driver
11 */ 12 */
12 13
diff --git a/drivers/net/bnx2x_init.h b/drivers/net/bnx2x_init.h
index dcaecc53bdb1..370686eef97c 100644
--- a/drivers/net/bnx2x_init.h
+++ b/drivers/net/bnx2x_init.h
@@ -6,7 +6,8 @@
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation. 7 * the Free Software Foundation.
8 * 8 *
9 * Written by: Eliezer Tamir <eliezert@broadcom.com> 9 * Maintained by: Eilon Greenstein <eilong@broadcom.com>
10 * Written by: Eliezer Tamir
10 */ 11 */
11 12
12#ifndef BNX2X_INIT_H 13#ifndef BNX2X_INIT_H
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 287a61918739..075fd547421e 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -1766,16 +1766,20 @@ static int ehea_set_mac_addr(struct net_device *dev, void *sa)
1766 mutex_lock(&ehea_bcmc_regs.lock); 1766 mutex_lock(&ehea_bcmc_regs.lock);
1767 1767
1768 /* Deregister old MAC in pHYP */ 1768 /* Deregister old MAC in pHYP */
1769 ret = ehea_broadcast_reg_helper(port, H_DEREG_BCMC); 1769 if (port->state == EHEA_PORT_UP) {
1770 if (ret) 1770 ret = ehea_broadcast_reg_helper(port, H_DEREG_BCMC);
1771 goto out_upregs; 1771 if (ret)
1772 goto out_upregs;
1773 }
1772 1774
1773 port->mac_addr = cb0->port_mac_addr << 16; 1775 port->mac_addr = cb0->port_mac_addr << 16;
1774 1776
1775 /* Register new MAC in pHYP */ 1777 /* Register new MAC in pHYP */
1776 ret = ehea_broadcast_reg_helper(port, H_REG_BCMC); 1778 if (port->state == EHEA_PORT_UP) {
1777 if (ret) 1779 ret = ehea_broadcast_reg_helper(port, H_REG_BCMC);
1778 goto out_upregs; 1780 if (ret)
1781 goto out_upregs;
1782 }
1779 1783
1780 ret = 0; 1784 ret = 0;
1781 1785
@@ -2601,7 +2605,8 @@ static int ehea_stop(struct net_device *dev)
2601 if (netif_msg_ifdown(port)) 2605 if (netif_msg_ifdown(port))
2602 ehea_info("disabling port %s", dev->name); 2606 ehea_info("disabling port %s", dev->name);
2603 2607
2604 flush_scheduled_work(); 2608 cancel_work_sync(&port->reset_task);
2609
2605 mutex_lock(&port->port_lock); 2610 mutex_lock(&port->port_lock);
2606 netif_stop_queue(dev); 2611 netif_stop_queue(dev);
2607 port_napi_disable(port); 2612 port_napi_disable(port);
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c
index 46a90e9ec563..c05cb159c772 100644
--- a/drivers/net/enc28j60.c
+++ b/drivers/net/enc28j60.c
@@ -400,26 +400,31 @@ enc28j60_packet_write(struct enc28j60_net *priv, int len, const u8 *data)
400 mutex_unlock(&priv->lock); 400 mutex_unlock(&priv->lock);
401} 401}
402 402
403/* 403static unsigned long msec20_to_jiffies;
404 * Wait until the PHY operation is complete. 404
405 */ 405static int poll_ready(struct enc28j60_net *priv, u8 reg, u8 mask, u8 val)
406static int wait_phy_ready(struct enc28j60_net *priv)
407{ 406{
408 unsigned long timeout = jiffies + 20 * HZ / 1000; 407 unsigned long timeout = jiffies + msec20_to_jiffies;
409 int ret = 1;
410 408
411 /* 20 msec timeout read */ 409 /* 20 msec timeout read */
412 while (nolock_regb_read(priv, MISTAT) & MISTAT_BUSY) { 410 while ((nolock_regb_read(priv, reg) & mask) != val) {
413 if (time_after(jiffies, timeout)) { 411 if (time_after(jiffies, timeout)) {
414 if (netif_msg_drv(priv)) 412 if (netif_msg_drv(priv))
415 printk(KERN_DEBUG DRV_NAME 413 dev_dbg(&priv->spi->dev,
416 ": PHY ready timeout!\n"); 414 "reg %02x ready timeout!\n", reg);
417 ret = 0; 415 return -ETIMEDOUT;
418 break;
419 } 416 }
420 cpu_relax(); 417 cpu_relax();
421 } 418 }
422 return ret; 419 return 0;
420}
421
422/*
423 * Wait until the PHY operation is complete.
424 */
425static int wait_phy_ready(struct enc28j60_net *priv)
426{
427 return poll_ready(priv, MISTAT, MISTAT_BUSY, 0) ? 0 : 1;
423} 428}
424 429
425/* 430/*
@@ -594,6 +599,32 @@ static void nolock_txfifo_init(struct enc28j60_net *priv, u16 start, u16 end)
594 nolock_regw_write(priv, ETXNDL, end); 599 nolock_regw_write(priv, ETXNDL, end);
595} 600}
596 601
602/*
603 * Low power mode shrinks power consumption about 100x, so we'd like
604 * the chip to be in that mode whenever it's inactive. (However, we
605 * can't stay in lowpower mode during suspend with WOL active.)
606 */
607static void enc28j60_lowpower(struct enc28j60_net *priv, bool is_low)
608{
609 if (netif_msg_drv(priv))
610 dev_dbg(&priv->spi->dev, "%s power...\n",
611 is_low ? "low" : "high");
612
613 mutex_lock(&priv->lock);
614 if (is_low) {
615 nolock_reg_bfclr(priv, ECON1, ECON1_RXEN);
616 poll_ready(priv, ESTAT, ESTAT_RXBUSY, 0);
617 poll_ready(priv, ECON1, ECON1_TXRTS, 0);
618 /* ECON2_VRPS was set during initialization */
619 nolock_reg_bfset(priv, ECON2, ECON2_PWRSV);
620 } else {
621 nolock_reg_bfclr(priv, ECON2, ECON2_PWRSV);
622 poll_ready(priv, ESTAT, ESTAT_CLKRDY, ESTAT_CLKRDY);
623 /* caller sets ECON1_RXEN */
624 }
625 mutex_unlock(&priv->lock);
626}
627
597static int enc28j60_hw_init(struct enc28j60_net *priv) 628static int enc28j60_hw_init(struct enc28j60_net *priv)
598{ 629{
599 u8 reg; 630 u8 reg;
@@ -612,8 +643,8 @@ static int enc28j60_hw_init(struct enc28j60_net *priv)
612 priv->tx_retry_count = 0; 643 priv->tx_retry_count = 0;
613 priv->max_pk_counter = 0; 644 priv->max_pk_counter = 0;
614 priv->rxfilter = RXFILTER_NORMAL; 645 priv->rxfilter = RXFILTER_NORMAL;
615 /* enable address auto increment */ 646 /* enable address auto increment and voltage regulator powersave */
616 nolock_regb_write(priv, ECON2, ECON2_AUTOINC); 647 nolock_regb_write(priv, ECON2, ECON2_AUTOINC | ECON2_VRPS);
617 648
618 nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT); 649 nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT);
619 nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT); 650 nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT);
@@ -690,7 +721,7 @@ static int enc28j60_hw_init(struct enc28j60_net *priv)
690 721
691static void enc28j60_hw_enable(struct enc28j60_net *priv) 722static void enc28j60_hw_enable(struct enc28j60_net *priv)
692{ 723{
693 /* enable interrutps */ 724 /* enable interrupts */
694 if (netif_msg_hw(priv)) 725 if (netif_msg_hw(priv))
695 printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n", 726 printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n",
696 __FUNCTION__); 727 __FUNCTION__);
@@ -726,15 +757,12 @@ enc28j60_setlink(struct net_device *ndev, u8 autoneg, u16 speed, u8 duplex)
726 int ret = 0; 757 int ret = 0;
727 758
728 if (!priv->hw_enable) { 759 if (!priv->hw_enable) {
729 if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) { 760 /* link is in low power mode now; duplex setting
761 * will take effect on next enc28j60_hw_init().
762 */
763 if (autoneg == AUTONEG_DISABLE && speed == SPEED_10)
730 priv->full_duplex = (duplex == DUPLEX_FULL); 764 priv->full_duplex = (duplex == DUPLEX_FULL);
731 if (!enc28j60_hw_init(priv)) { 765 else {
732 if (netif_msg_drv(priv))
733 dev_err(&ndev->dev,
734 "hw_reset() failed\n");
735 ret = -EINVAL;
736 }
737 } else {
738 if (netif_msg_link(priv)) 766 if (netif_msg_link(priv))
739 dev_warn(&ndev->dev, 767 dev_warn(&ndev->dev,
740 "unsupported link setting\n"); 768 "unsupported link setting\n");
@@ -1307,7 +1335,8 @@ static int enc28j60_net_open(struct net_device *dev)
1307 } 1335 }
1308 return -EADDRNOTAVAIL; 1336 return -EADDRNOTAVAIL;
1309 } 1337 }
1310 /* Reset the hardware here */ 1338 /* Reset the hardware here (and take it out of low power mode) */
1339 enc28j60_lowpower(priv, false);
1311 enc28j60_hw_disable(priv); 1340 enc28j60_hw_disable(priv);
1312 if (!enc28j60_hw_init(priv)) { 1341 if (!enc28j60_hw_init(priv)) {
1313 if (netif_msg_ifup(priv)) 1342 if (netif_msg_ifup(priv))
@@ -1337,6 +1366,7 @@ static int enc28j60_net_close(struct net_device *dev)
1337 printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__); 1366 printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__);
1338 1367
1339 enc28j60_hw_disable(priv); 1368 enc28j60_hw_disable(priv);
1369 enc28j60_lowpower(priv, true);
1340 netif_stop_queue(dev); 1370 netif_stop_queue(dev);
1341 1371
1342 return 0; 1372 return 0;
@@ -1537,6 +1567,8 @@ static int __devinit enc28j60_probe(struct spi_device *spi)
1537 dev->watchdog_timeo = TX_TIMEOUT; 1567 dev->watchdog_timeo = TX_TIMEOUT;
1538 SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); 1568 SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops);
1539 1569
1570 enc28j60_lowpower(priv, true);
1571
1540 ret = register_netdev(dev); 1572 ret = register_netdev(dev);
1541 if (ret) { 1573 if (ret) {
1542 if (netif_msg_probe(priv)) 1574 if (netif_msg_probe(priv))
@@ -1556,7 +1588,7 @@ error_alloc:
1556 return ret; 1588 return ret;
1557} 1589}
1558 1590
1559static int enc28j60_remove(struct spi_device *spi) 1591static int __devexit enc28j60_remove(struct spi_device *spi)
1560{ 1592{
1561 struct enc28j60_net *priv = dev_get_drvdata(&spi->dev); 1593 struct enc28j60_net *priv = dev_get_drvdata(&spi->dev);
1562 1594
@@ -1573,15 +1605,16 @@ static int enc28j60_remove(struct spi_device *spi)
1573static struct spi_driver enc28j60_driver = { 1605static struct spi_driver enc28j60_driver = {
1574 .driver = { 1606 .driver = {
1575 .name = DRV_NAME, 1607 .name = DRV_NAME,
1576 .bus = &spi_bus_type,
1577 .owner = THIS_MODULE, 1608 .owner = THIS_MODULE,
1578 }, 1609 },
1579 .probe = enc28j60_probe, 1610 .probe = enc28j60_probe,
1580 .remove = __devexit_p(enc28j60_remove), 1611 .remove = __devexit_p(enc28j60_remove),
1581}; 1612};
1582 1613
1583static int __init enc28j60_init(void) 1614static int __init enc28j60_init(void)
1584{ 1615{
1616 msec20_to_jiffies = msecs_to_jiffies(20);
1617
1585 return spi_register_driver(&enc28j60_driver); 1618 return spi_register_driver(&enc28j60_driver);
1586} 1619}
1587 1620
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index 5f9c42e7a7f1..329edd9c08fc 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -78,7 +78,7 @@ module_param_array_named(mac, mpc52xx_fec_mac_addr, byte, NULL, 0);
78MODULE_PARM_DESC(mac, "six hex digits, ie. 0x1,0x2,0xc0,0x01,0xba,0xbe"); 78MODULE_PARM_DESC(mac, "six hex digits, ie. 0x1,0x2,0xc0,0x01,0xba,0xbe");
79 79
80#define MPC52xx_MESSAGES_DEFAULT ( NETIF_MSG_DRV | NETIF_MSG_PROBE | \ 80#define MPC52xx_MESSAGES_DEFAULT ( NETIF_MSG_DRV | NETIF_MSG_PROBE | \
81 NETIF_MSG_LINK | NETIF_MSG_IFDOWN | NETIF_MSG_IFDOWN ) 81 NETIF_MSG_LINK | NETIF_MSG_IFDOWN | NETIF_MSG_IFUP)
82static int debug = -1; /* the above default */ 82static int debug = -1; /* the above default */
83module_param(debug, int, 0); 83module_param(debug, int, 0);
84MODULE_PARM_DESC(debug, "debugging messages level"); 84MODULE_PARM_DESC(debug, "debugging messages level");
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 9eca97fb0a54..2cb244763292 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -3273,6 +3273,20 @@ static void nv_link_irq(struct net_device *dev)
3273 dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name); 3273 dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name);
3274} 3274}
3275 3275
3276static void nv_msi_workaround(struct fe_priv *np)
3277{
3278
3279 /* Need to toggle the msi irq mask within the ethernet device,
3280 * otherwise, future interrupts will not be detected.
3281 */
3282 if (np->msi_flags & NV_MSI_ENABLED) {
3283 u8 __iomem *base = np->base;
3284
3285 writel(0, base + NvRegMSIIrqMask);
3286 writel(NVREG_MSI_VECTOR_0_ENABLED, base + NvRegMSIIrqMask);
3287 }
3288}
3289
3276static irqreturn_t nv_nic_irq(int foo, void *data) 3290static irqreturn_t nv_nic_irq(int foo, void *data)
3277{ 3291{
3278 struct net_device *dev = (struct net_device *) data; 3292 struct net_device *dev = (struct net_device *) data;
@@ -3295,6 +3309,8 @@ static irqreturn_t nv_nic_irq(int foo, void *data)
3295 if (!(events & np->irqmask)) 3309 if (!(events & np->irqmask))
3296 break; 3310 break;
3297 3311
3312 nv_msi_workaround(np);
3313
3298 spin_lock(&np->lock); 3314 spin_lock(&np->lock);
3299 nv_tx_done(dev); 3315 nv_tx_done(dev);
3300 spin_unlock(&np->lock); 3316 spin_unlock(&np->lock);
@@ -3410,6 +3426,8 @@ static irqreturn_t nv_nic_irq_optimized(int foo, void *data)
3410 if (!(events & np->irqmask)) 3426 if (!(events & np->irqmask))
3411 break; 3427 break;
3412 3428
3429 nv_msi_workaround(np);
3430
3413 spin_lock(&np->lock); 3431 spin_lock(&np->lock);
3414 nv_tx_done_optimized(dev, TX_WORK_PER_LOOP); 3432 nv_tx_done_optimized(dev, TX_WORK_PER_LOOP);
3415 spin_unlock(&np->lock); 3433 spin_unlock(&np->lock);
@@ -3750,6 +3768,8 @@ static irqreturn_t nv_nic_irq_test(int foo, void *data)
3750 if (!(events & NVREG_IRQ_TIMER)) 3768 if (!(events & NVREG_IRQ_TIMER))
3751 return IRQ_RETVAL(0); 3769 return IRQ_RETVAL(0);
3752 3770
3771 nv_msi_workaround(np);
3772
3753 spin_lock(&np->lock); 3773 spin_lock(&np->lock);
3754 np->intr_test = 1; 3774 np->intr_test = 1;
3755 spin_unlock(&np->lock); 3775 spin_unlock(&np->lock);
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c
index dde9c7e6408a..00bc7fbb6b37 100644
--- a/drivers/net/hamradio/baycom_epp.c
+++ b/drivers/net/hamradio/baycom_epp.c
@@ -959,7 +959,7 @@ static int epp_close(struct net_device *dev)
959 unsigned char tmp[1]; 959 unsigned char tmp[1];
960 960
961 bc->work_running = 0; 961 bc->work_running = 0;
962 flush_scheduled_work(); 962 cancel_delayed_work_sync(&bc->run_work);
963 bc->stat = EPP_DCDBIT; 963 bc->stat = EPP_DCDBIT;
964 tmp[0] = 0; 964 tmp[0] = 0;
965 pp->ops->epp_write_addr(pp, tmp, 1, 0); 965 pp->ops->epp_write_addr(pp, tmp, 1, 0);
diff --git a/drivers/net/ibm_newemac/Kconfig b/drivers/net/ibm_newemac/Kconfig
index 0d3e7380bad0..70a3272ee998 100644
--- a/drivers/net/ibm_newemac/Kconfig
+++ b/drivers/net/ibm_newemac/Kconfig
@@ -1,6 +1,7 @@
1config IBM_NEW_EMAC 1config IBM_NEW_EMAC
2 tristate "IBM EMAC Ethernet support" 2 tristate "IBM EMAC Ethernet support"
3 depends on PPC_DCR && PPC_MERGE 3 depends on PPC_DCR && PPC_MERGE
4 select CRC32
4 help 5 help
5 This driver supports the IBM EMAC family of Ethernet controllers 6 This driver supports the IBM EMAC family of Ethernet controllers
6 typically found on 4xx embedded PowerPC chips, but also on the 7 typically found on 4xx embedded PowerPC chips, but also on the
diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 9b358f61ed7f..679a0826780e 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -577,12 +577,12 @@ static void ipg_nic_set_multicast_list(struct net_device *dev)
577 /* NIC to be configured in promiscuous mode. */ 577 /* NIC to be configured in promiscuous mode. */
578 receivemode = IPG_RM_RECEIVEALLFRAMES; 578 receivemode = IPG_RM_RECEIVEALLFRAMES;
579 } else if ((dev->flags & IFF_ALLMULTI) || 579 } else if ((dev->flags & IFF_ALLMULTI) ||
580 (dev->flags & IFF_MULTICAST & 580 ((dev->flags & IFF_MULTICAST) &&
581 (dev->mc_count > IPG_MULTICAST_HASHTABLE_SIZE))) { 581 (dev->mc_count > IPG_MULTICAST_HASHTABLE_SIZE))) {
582 /* NIC to be configured to receive all multicast 582 /* NIC to be configured to receive all multicast
583 * frames. */ 583 * frames. */
584 receivemode |= IPG_RM_RECEIVEMULTICAST; 584 receivemode |= IPG_RM_RECEIVEMULTICAST;
585 } else if (dev->flags & IFF_MULTICAST & (dev->mc_count > 0)) { 585 } else if ((dev->flags & IFF_MULTICAST) && (dev->mc_count > 0)) {
586 /* NIC to be configured to receive selected 586 /* NIC to be configured to receive selected
587 * multicast addresses. */ 587 * multicast addresses. */
588 receivemode |= IPG_RM_RECEIVEMULTICASTHASH; 588 receivemode |= IPG_RM_RECEIVEMULTICASTHASH;
diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig
index ce816ba9c40d..e6317557a531 100644
--- a/drivers/net/irda/Kconfig
+++ b/drivers/net/irda/Kconfig
@@ -329,6 +329,7 @@ config PXA_FICP
329config MCS_FIR 329config MCS_FIR
330 tristate "MosChip MCS7780 IrDA-USB dongle" 330 tristate "MosChip MCS7780 IrDA-USB dongle"
331 depends on IRDA && USB && EXPERIMENTAL 331 depends on IRDA && USB && EXPERIMENTAL
332 select CRC32
332 help 333 help
333 Say Y or M here if you want to build support for the MosChip 334 Say Y or M here if you want to build support for the MosChip
334 MCS7780 IrDA-USB bridge device driver. 335 MCS7780 IrDA-USB bridge device driver.
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c
index 6321b059ce13..2f38e847e2cd 100644
--- a/drivers/net/ixgbe/ixgbe_82598.c
+++ b/drivers/net/ixgbe/ixgbe_82598.c
@@ -58,8 +58,8 @@ static s32 ixgbe_reset_hw_82598(struct ixgbe_hw *hw);
58 58
59static s32 ixgbe_get_invariants_82598(struct ixgbe_hw *hw) 59static s32 ixgbe_get_invariants_82598(struct ixgbe_hw *hw)
60{ 60{
61 hw->mac.num_rx_queues = IXGBE_82598_MAX_TX_QUEUES; 61 hw->mac.num_rx_queues = IXGBE_82598_MAX_RX_QUEUES;
62 hw->mac.num_tx_queues = IXGBE_82598_MAX_RX_QUEUES; 62 hw->mac.num_tx_queues = IXGBE_82598_MAX_TX_QUEUES;
63 hw->mac.num_rx_addrs = IXGBE_82598_RAR_ENTRIES; 63 hw->mac.num_rx_addrs = IXGBE_82598_RAR_ENTRIES;
64 64
65 /* PHY ops are filled in by default properly for Fiber only */ 65 /* PHY ops are filled in by default properly for Fiber only */
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index 8cb29f5b1038..da4c4fb97064 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -776,7 +776,6 @@ struct netxen_hardware_context {
776 776
777 u8 revision_id; 777 u8 revision_id;
778 u16 board_type; 778 u16 board_type;
779 u16 max_ports;
780 struct netxen_board_info boardcfg; 779 struct netxen_board_info boardcfg;
781 u32 xg_linkup; 780 u32 xg_linkup;
782 u32 qg_linksup; 781 u32 qg_linksup;
@@ -863,6 +862,7 @@ struct netxen_adapter {
863 unsigned char mac_addr[ETH_ALEN]; 862 unsigned char mac_addr[ETH_ALEN];
864 int mtu; 863 int mtu;
865 int portnum; 864 int portnum;
865 u8 physical_port;
866 866
867 struct work_struct watchdog_task; 867 struct work_struct watchdog_task;
868 struct timer_list watchdog_timer; 868 struct timer_list watchdog_timer;
@@ -1034,7 +1034,6 @@ int netxen_rom_se(struct netxen_adapter *adapter, int addr);
1034 1034
1035/* Functions from netxen_nic_isr.c */ 1035/* Functions from netxen_nic_isr.c */
1036void netxen_initialize_adapter_sw(struct netxen_adapter *adapter); 1036void netxen_initialize_adapter_sw(struct netxen_adapter *adapter);
1037void netxen_initialize_adapter_hw(struct netxen_adapter *adapter);
1038void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr, 1037void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr,
1039 struct pci_dev **used_dev); 1038 struct pci_dev **used_dev);
1040void netxen_initialize_adapter_ops(struct netxen_adapter *adapter); 1039void netxen_initialize_adapter_ops(struct netxen_adapter *adapter);
@@ -1077,20 +1076,6 @@ static const struct netxen_brdinfo netxen_boards[] = {
1077 1076
1078#define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards) 1077#define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards)
1079 1078
1080static inline void get_brd_port_by_type(u32 type, int *ports)
1081{
1082 int i, found = 0;
1083 for (i = 0; i < NUM_SUPPORTED_BOARDS; ++i) {
1084 if (netxen_boards[i].brdtype == type) {
1085 *ports = netxen_boards[i].ports;
1086 found = 1;
1087 break;
1088 }
1089 }
1090 if (!found)
1091 *ports = 0;
1092}
1093
1094static inline void get_brd_name_by_type(u32 type, char *name) 1079static inline void get_brd_name_by_type(u32 type, char *name)
1095{ 1080{
1096 int i, found = 0; 1081 int i, found = 0;
@@ -1169,5 +1154,4 @@ extern int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr,
1169 1154
1170extern struct ethtool_ops netxen_nic_ethtool_ops; 1155extern struct ethtool_ops netxen_nic_ethtool_ops;
1171 1156
1172extern int physical_port[]; /* physical port # from virtual port.*/
1173#endif /* __NETXEN_NIC_H_ */ 1157#endif /* __NETXEN_NIC_H_ */
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c
index 6e98d830eefb..723487bf200c 100644
--- a/drivers/net/netxen/netxen_nic_ethtool.c
+++ b/drivers/net/netxen/netxen_nic_ethtool.c
@@ -369,7 +369,7 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
369 for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { 369 for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) {
370 /* GB: port specific registers */ 370 /* GB: port specific registers */
371 if (mode == 0 && i >= 19) 371 if (mode == 0 && i >= 19)
372 window = physical_port[adapter->portnum] * 372 window = adapter->physical_port *
373 NETXEN_NIC_PORT_WINDOW; 373 NETXEN_NIC_PORT_WINDOW;
374 374
375 NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode]. 375 NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode].
@@ -527,7 +527,7 @@ netxen_nic_get_pauseparam(struct net_device *dev,
527{ 527{
528 struct netxen_adapter *adapter = netdev_priv(dev); 528 struct netxen_adapter *adapter = netdev_priv(dev);
529 __u32 val; 529 __u32 val;
530 int port = physical_port[adapter->portnum]; 530 int port = adapter->physical_port;
531 531
532 if (adapter->ahw.board_type == NETXEN_NIC_GBE) { 532 if (adapter->ahw.board_type == NETXEN_NIC_GBE) {
533 if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) 533 if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS))
@@ -573,7 +573,7 @@ netxen_nic_set_pauseparam(struct net_device *dev,
573{ 573{
574 struct netxen_adapter *adapter = netdev_priv(dev); 574 struct netxen_adapter *adapter = netdev_priv(dev);
575 __u32 val; 575 __u32 val;
576 int port = physical_port[adapter->portnum]; 576 int port = adapter->physical_port;
577 /* read mode */ 577 /* read mode */
578 if (adapter->ahw.board_type == NETXEN_NIC_GBE) { 578 if (adapter->ahw.board_type == NETXEN_NIC_GBE) {
579 if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) 579 if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS))
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c
index af7356468251..c43d06b8de9b 100644
--- a/drivers/net/netxen/netxen_nic_hw.c
+++ b/drivers/net/netxen/netxen_nic_hw.c
@@ -396,11 +396,8 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter)
396 } 396 }
397 adapter->intr_scheme = readl( 397 adapter->intr_scheme = readl(
398 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_FW)); 398 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_CAPABILITIES_FW));
399 printk(KERN_NOTICE "%s: FW capabilities:0x%x\n", netxen_nic_driver_name,
400 adapter->intr_scheme);
401 adapter->msi_mode = readl( 399 adapter->msi_mode = readl(
402 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_MSI_MODE_FW)); 400 NETXEN_CRB_NORMALIZE(adapter, CRB_NIC_MSI_MODE_FW));
403 DPRINTK(INFO, "Receive Peg ready too. starting stuff\n");
404 401
405 addr = netxen_alloc(adapter->ahw.pdev, 402 addr = netxen_alloc(adapter->ahw.pdev,
406 sizeof(struct netxen_ring_ctx) + 403 sizeof(struct netxen_ring_ctx) +
@@ -408,8 +405,6 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter)
408 (dma_addr_t *) & adapter->ctx_desc_phys_addr, 405 (dma_addr_t *) & adapter->ctx_desc_phys_addr,
409 &adapter->ctx_desc_pdev); 406 &adapter->ctx_desc_pdev);
410 407
411 printk(KERN_INFO "ctx_desc_phys_addr: 0x%llx\n",
412 (unsigned long long) adapter->ctx_desc_phys_addr);
413 if (addr == NULL) { 408 if (addr == NULL) {
414 DPRINTK(ERR, "bad return from pci_alloc_consistent\n"); 409 DPRINTK(ERR, "bad return from pci_alloc_consistent\n");
415 err = -ENOMEM; 410 err = -ENOMEM;
@@ -429,8 +424,6 @@ int netxen_nic_hw_resources(struct netxen_adapter *adapter)
429 adapter->max_tx_desc_count, 424 adapter->max_tx_desc_count,
430 (dma_addr_t *) & hw->cmd_desc_phys_addr, 425 (dma_addr_t *) & hw->cmd_desc_phys_addr,
431 &adapter->ahw.cmd_desc_pdev); 426 &adapter->ahw.cmd_desc_pdev);
432 printk(KERN_INFO "cmd_desc_phys_addr: 0x%llx\n",
433 (unsigned long long) hw->cmd_desc_phys_addr);
434 427
435 if (addr == NULL) { 428 if (addr == NULL) {
436 DPRINTK(ERR, "bad return from pci_alloc_consistent\n"); 429 DPRINTK(ERR, "bad return from pci_alloc_consistent\n");
@@ -1032,15 +1025,15 @@ int netxen_nic_get_board_info(struct netxen_adapter *adapter)
1032int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu) 1025int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu)
1033{ 1026{
1034 netxen_nic_write_w0(adapter, 1027 netxen_nic_write_w0(adapter,
1035 NETXEN_NIU_GB_MAX_FRAME_SIZE( 1028 NETXEN_NIU_GB_MAX_FRAME_SIZE(adapter->physical_port),
1036 physical_port[adapter->portnum]), new_mtu); 1029 new_mtu);
1037 return 0; 1030 return 0;
1038} 1031}
1039 1032
1040int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu) 1033int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu)
1041{ 1034{
1042 new_mtu += NETXEN_NIU_HDRSIZE + NETXEN_NIU_TLRSIZE; 1035 new_mtu += NETXEN_NIU_HDRSIZE + NETXEN_NIU_TLRSIZE;
1043 if (physical_port[adapter->portnum] == 0) 1036 if (adapter->physical_port == 0)
1044 netxen_nic_write_w0(adapter, NETXEN_NIU_XGE_MAX_FRAME_SIZE, 1037 netxen_nic_write_w0(adapter, NETXEN_NIU_XGE_MAX_FRAME_SIZE,
1045 new_mtu); 1038 new_mtu);
1046 else 1039 else
@@ -1051,7 +1044,7 @@ int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu)
1051 1044
1052void netxen_nic_init_niu_gb(struct netxen_adapter *adapter) 1045void netxen_nic_init_niu_gb(struct netxen_adapter *adapter)
1053{ 1046{
1054 netxen_niu_gbe_init_port(adapter, physical_port[adapter->portnum]); 1047 netxen_niu_gbe_init_port(adapter, adapter->physical_port);
1055} 1048}
1056 1049
1057void 1050void
@@ -1127,7 +1120,6 @@ void netxen_nic_set_link_parameters(struct netxen_adapter *adapter)
1127 1120
1128void netxen_nic_flash_print(struct netxen_adapter *adapter) 1121void netxen_nic_flash_print(struct netxen_adapter *adapter)
1129{ 1122{
1130 int valid = 1;
1131 u32 fw_major = 0; 1123 u32 fw_major = 0;
1132 u32 fw_minor = 0; 1124 u32 fw_minor = 0;
1133 u32 fw_build = 0; 1125 u32 fw_build = 0;
@@ -1137,70 +1129,62 @@ void netxen_nic_flash_print(struct netxen_adapter *adapter)
1137 __le32 *ptr32; 1129 __le32 *ptr32;
1138 1130
1139 struct netxen_board_info *board_info = &(adapter->ahw.boardcfg); 1131 struct netxen_board_info *board_info = &(adapter->ahw.boardcfg);
1140 if (board_info->magic != NETXEN_BDINFO_MAGIC) { 1132
1141 printk 1133 adapter->driver_mismatch = 0;
1142 ("NetXen Unknown board config, Read 0x%x expected as 0x%x\n", 1134
1143 board_info->magic, NETXEN_BDINFO_MAGIC); 1135 ptr32 = (u32 *)&serial_num;
1144 valid = 0; 1136 addr = NETXEN_USER_START +
1145 } 1137 offsetof(struct netxen_new_user_info, serial_num);
1146 if (board_info->header_version != NETXEN_BDINFO_VERSION) { 1138 for (i = 0; i < 8; i++) {
1147 printk("NetXen Unknown board config version." 1139 if (netxen_rom_fast_read(adapter, addr, ptr32) == -1) {
1148 " Read %x, expected %x\n", 1140 printk("%s: ERROR reading %s board userarea.\n",
1149 board_info->header_version, NETXEN_BDINFO_VERSION); 1141 netxen_nic_driver_name,
1150 valid = 0; 1142 netxen_nic_driver_name);
1151 } 1143 adapter->driver_mismatch = 1;
1152 if (valid) { 1144 return;
1153 ptr32 = (u32 *)&serial_num;
1154 addr = NETXEN_USER_START +
1155 offsetof(struct netxen_new_user_info, serial_num);
1156 for (i = 0; i < 8; i++) {
1157 if (netxen_rom_fast_read(adapter, addr, ptr32) == -1) {
1158 printk("%s: ERROR reading %s board userarea.\n",
1159 netxen_nic_driver_name,
1160 netxen_nic_driver_name);
1161 return;
1162 }
1163 ptr32++;
1164 addr += sizeof(u32);
1165 } 1145 }
1146 ptr32++;
1147 addr += sizeof(u32);
1148 }
1149
1150 fw_major = readl(NETXEN_CRB_NORMALIZE(adapter,
1151 NETXEN_FW_VERSION_MAJOR));
1152 fw_minor = readl(NETXEN_CRB_NORMALIZE(adapter,
1153 NETXEN_FW_VERSION_MINOR));
1154 fw_build =
1155 readl(NETXEN_CRB_NORMALIZE(adapter, NETXEN_FW_VERSION_SUB));
1166 1156
1157 if (adapter->portnum == 0) {
1167 get_brd_name_by_type(board_info->board_type, brd_name); 1158 get_brd_name_by_type(board_info->board_type, brd_name);
1168 1159
1169 printk("NetXen %s Board S/N %s Chip id 0x%x\n", 1160 printk("NetXen %s Board S/N %s Chip id 0x%x\n",
1170 brd_name, serial_num, board_info->chip_id); 1161 brd_name, serial_num, board_info->chip_id);
1171 1162 printk("NetXen Firmware version %d.%d.%d\n", fw_major,
1172 printk("NetXen %s Board #%d, Chip id 0x%x\n", 1163 fw_minor, fw_build);
1173 board_info->board_type == 0x0b ? "XGB" : "GBE",
1174 board_info->board_num, board_info->chip_id);
1175 fw_major = readl(NETXEN_CRB_NORMALIZE(adapter,
1176 NETXEN_FW_VERSION_MAJOR));
1177 fw_minor = readl(NETXEN_CRB_NORMALIZE(adapter,
1178 NETXEN_FW_VERSION_MINOR));
1179 fw_build =
1180 readl(NETXEN_CRB_NORMALIZE(adapter, NETXEN_FW_VERSION_SUB));
1181
1182 printk("NetXen Firmware version %d.%d.%d\n", fw_major, fw_minor,
1183 fw_build);
1184 } 1164 }
1165
1185 if (fw_major != _NETXEN_NIC_LINUX_MAJOR) { 1166 if (fw_major != _NETXEN_NIC_LINUX_MAJOR) {
1186 printk(KERN_ERR "The mismatch in driver version and firmware "
1187 "version major number\n"
1188 "Driver version major number = %d \t"
1189 "Firmware version major number = %d \n",
1190 _NETXEN_NIC_LINUX_MAJOR, fw_major);
1191 adapter->driver_mismatch = 1; 1167 adapter->driver_mismatch = 1;
1192 } 1168 }
1193 if (fw_minor != _NETXEN_NIC_LINUX_MINOR && 1169 if (fw_minor != _NETXEN_NIC_LINUX_MINOR &&
1194 fw_minor != (_NETXEN_NIC_LINUX_MINOR + 1)) { 1170 fw_minor != (_NETXEN_NIC_LINUX_MINOR + 1)) {
1195 printk(KERN_ERR "The mismatch in driver version and firmware "
1196 "version minor number\n"
1197 "Driver version minor number = %d \t"
1198 "Firmware version minor number = %d \n",
1199 _NETXEN_NIC_LINUX_MINOR, fw_minor);
1200 adapter->driver_mismatch = 1; 1171 adapter->driver_mismatch = 1;
1201 } 1172 }
1202 if (adapter->driver_mismatch) 1173 if (adapter->driver_mismatch) {
1203 printk(KERN_INFO "Use the driver with version no %d.%d.xxx\n", 1174 printk(KERN_ERR "%s: driver and firmware version mismatch\n",
1204 fw_major, fw_minor); 1175 adapter->netdev->name);
1176 return;
1177 }
1178
1179 switch (adapter->ahw.board_type) {
1180 case NETXEN_NIC_GBE:
1181 dev_info(&adapter->pdev->dev, "%s: GbE port initialized\n",
1182 adapter->netdev->name);
1183 break;
1184 case NETXEN_NIC_XGBE:
1185 dev_info(&adapter->pdev->dev, "%s: XGbE port initialized\n",
1186 adapter->netdev->name);
1187 break;
1188 }
1205} 1189}
1206 1190
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c
index 45fa33e0cb90..70d1b22ced22 100644
--- a/drivers/net/netxen/netxen_nic_init.c
+++ b/drivers/net/netxen/netxen_nic_init.c
@@ -203,21 +203,6 @@ void netxen_initialize_adapter_sw(struct netxen_adapter *adapter)
203 } 203 }
204} 204}
205 205
206void netxen_initialize_adapter_hw(struct netxen_adapter *adapter)
207{
208 int ports = 0;
209 struct netxen_board_info *board_info = &(adapter->ahw.boardcfg);
210
211 if (netxen_nic_get_board_info(adapter) != 0)
212 printk("%s: Error getting board config info.\n",
213 netxen_nic_driver_name);
214 get_brd_port_by_type(board_info->board_type, &ports);
215 if (ports == 0)
216 printk(KERN_ERR "%s: Unknown board type\n",
217 netxen_nic_driver_name);
218 adapter->ahw.max_ports = ports;
219}
220
221void netxen_initialize_adapter_ops(struct netxen_adapter *adapter) 206void netxen_initialize_adapter_ops(struct netxen_adapter *adapter)
222{ 207{
223 switch (adapter->ahw.board_type) { 208 switch (adapter->ahw.board_type) {
@@ -765,18 +750,13 @@ int netxen_flash_unlock(struct netxen_adapter *adapter)
765 750
766int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose) 751int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose)
767{ 752{
768 int addr, val, status; 753 int addr, val;
769 int n, i; 754 int n, i;
770 int init_delay = 0; 755 int init_delay = 0;
771 struct crb_addr_pair *buf; 756 struct crb_addr_pair *buf;
772 u32 off; 757 u32 off;
773 758
774 /* resetall */ 759 /* resetall */
775 status = netxen_nic_get_board_info(adapter);
776 if (status)
777 printk("%s: netxen_pinit_from_rom: Error getting board info\n",
778 netxen_nic_driver_name);
779
780 netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET, 760 netxen_crb_writelit_adapter(adapter, NETXEN_ROMUSB_GLB_SW_RESET,
781 NETXEN_ROMBUS_RESET); 761 NETXEN_ROMBUS_RESET);
782 762
@@ -860,10 +840,10 @@ int netxen_pinit_from_rom(struct netxen_adapter *adapter, int verbose)
860 netxen_nic_pci_change_crbwindow(adapter, 1); 840 netxen_nic_pci_change_crbwindow(adapter, 1);
861 } 841 }
862 if (init_delay == 1) { 842 if (init_delay == 1) {
863 msleep(2000); 843 msleep(1000);
864 init_delay = 0; 844 init_delay = 0;
865 } 845 }
866 msleep(20); 846 msleep(1);
867 } 847 }
868 kfree(buf); 848 kfree(buf);
869 849
@@ -938,12 +918,28 @@ int netxen_initialize_adapter_offload(struct netxen_adapter *adapter)
938 918
939void netxen_free_adapter_offload(struct netxen_adapter *adapter) 919void netxen_free_adapter_offload(struct netxen_adapter *adapter)
940{ 920{
921 int i;
922
941 if (adapter->dummy_dma.addr) { 923 if (adapter->dummy_dma.addr) {
942 pci_free_consistent(adapter->ahw.pdev, 924 i = 100;
925 do {
926 if (dma_watchdog_shutdown_request(adapter) == 1)
927 break;
928 msleep(50);
929 if (dma_watchdog_shutdown_poll_result(adapter) == 1)
930 break;
931 } while (--i);
932
933 if (i) {
934 pci_free_consistent(adapter->ahw.pdev,
943 NETXEN_HOST_DUMMY_DMA_SIZE, 935 NETXEN_HOST_DUMMY_DMA_SIZE,
944 adapter->dummy_dma.addr, 936 adapter->dummy_dma.addr,
945 adapter->dummy_dma.phys_addr); 937 adapter->dummy_dma.phys_addr);
946 adapter->dummy_dma.addr = NULL; 938 adapter->dummy_dma.addr = NULL;
939 } else {
940 printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n",
941 adapter->netdev->name);
942 }
947 } 943 }
948} 944}
949 945
diff --git a/drivers/net/netxen/netxen_nic_isr.c b/drivers/net/netxen/netxen_nic_isr.c
index f487615f4063..96cec41f9019 100644
--- a/drivers/net/netxen/netxen_nic_isr.c
+++ b/drivers/net/netxen/netxen_nic_isr.c
@@ -145,7 +145,7 @@ static void netxen_nic_isr_other(struct netxen_adapter *adapter)
145 145
146 /* verify the offset */ 146 /* verify the offset */
147 val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE)); 147 val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE));
148 val = val >> physical_port[adapter->portnum]; 148 val = val >> adapter->physical_port;
149 if (val == adapter->ahw.qg_linksup) 149 if (val == adapter->ahw.qg_linksup)
150 return; 150 return;
151 151
@@ -199,7 +199,7 @@ void netxen_nic_xgbe_handle_phy_intr(struct netxen_adapter *adapter)
199 199
200 /* WINDOW = 1 */ 200 /* WINDOW = 1 */
201 val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE)); 201 val = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_XG_STATE));
202 val >>= (physical_port[adapter->portnum] * 8); 202 val >>= (adapter->physical_port * 8);
203 val &= 0xff; 203 val &= 0xff;
204 204
205 if (adapter->ahw.xg_linkup == 1 && val != XG_LINK_UP) { 205 if (adapter->ahw.xg_linkup == 1 && val != XG_LINK_UP) {
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 7144c255ce54..6797ed069f1f 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -70,17 +70,15 @@ static void netxen_nic_poll_controller(struct net_device *netdev);
70static irqreturn_t netxen_intr(int irq, void *data); 70static irqreturn_t netxen_intr(int irq, void *data);
71static irqreturn_t netxen_msi_intr(int irq, void *data); 71static irqreturn_t netxen_msi_intr(int irq, void *data);
72 72
73int physical_port[] = {0, 1, 2, 3};
74
75/* PCI Device ID Table */ 73/* PCI Device ID Table */
76static struct pci_device_id netxen_pci_tbl[] __devinitdata = { 74static struct pci_device_id netxen_pci_tbl[] __devinitdata = {
77 {PCI_DEVICE(0x4040, 0x0001)}, 75 {PCI_DEVICE(0x4040, 0x0001), PCI_DEVICE_CLASS(0x020000, ~0)},
78 {PCI_DEVICE(0x4040, 0x0002)}, 76 {PCI_DEVICE(0x4040, 0x0002), PCI_DEVICE_CLASS(0x020000, ~0)},
79 {PCI_DEVICE(0x4040, 0x0003)}, 77 {PCI_DEVICE(0x4040, 0x0003), PCI_DEVICE_CLASS(0x020000, ~0)},
80 {PCI_DEVICE(0x4040, 0x0004)}, 78 {PCI_DEVICE(0x4040, 0x0004), PCI_DEVICE_CLASS(0x020000, ~0)},
81 {PCI_DEVICE(0x4040, 0x0005)}, 79 {PCI_DEVICE(0x4040, 0x0005), PCI_DEVICE_CLASS(0x020000, ~0)},
82 {PCI_DEVICE(0x4040, 0x0024)}, 80 {PCI_DEVICE(0x4040, 0x0024), PCI_DEVICE_CLASS(0x020000, ~0)},
83 {PCI_DEVICE(0x4040, 0x0025)}, 81 {PCI_DEVICE(0x4040, 0x0025), PCI_DEVICE_CLASS(0x020000, ~0)},
84 {0,} 82 {0,}
85}; 83};
86 84
@@ -288,10 +286,11 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
288 int pci_func_id = PCI_FUNC(pdev->devfn); 286 int pci_func_id = PCI_FUNC(pdev->devfn);
289 DECLARE_MAC_BUF(mac); 287 DECLARE_MAC_BUF(mac);
290 288
291 printk(KERN_INFO "%s \n", netxen_nic_driver_string); 289 if (pci_func_id == 0)
290 printk(KERN_INFO "%s \n", netxen_nic_driver_string);
292 291
293 if (pdev->class != 0x020000) { 292 if (pdev->class != 0x020000) {
294 printk(KERN_ERR"NetXen function %d, class %x will not " 293 printk(KERN_DEBUG "NetXen function %d, class %x will not "
295 "be enabled.\n",pci_func_id, pdev->class); 294 "be enabled.\n",pci_func_id, pdev->class);
296 return -ENODEV; 295 return -ENODEV;
297 } 296 }
@@ -450,8 +449,12 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
450 */ 449 */
451 adapter->curr_window = 255; 450 adapter->curr_window = 255;
452 451
453 /* initialize the adapter */ 452 if (netxen_nic_get_board_info(adapter) != 0) {
454 netxen_initialize_adapter_hw(adapter); 453 printk("%s: Error getting board config info.\n",
454 netxen_nic_driver_name);
455 err = -EIO;
456 goto err_out_iounmap;
457 }
455 458
456 /* 459 /*
457 * Adapter in our case is quad port so initialize it before 460 * Adapter in our case is quad port so initialize it before
@@ -530,17 +533,15 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
530 netxen_initialize_adapter_sw(adapter); /* initialize the buffers in adapter */ 533 netxen_initialize_adapter_sw(adapter); /* initialize the buffers in adapter */
531 534
532 /* Mezz cards have PCI function 0,2,3 enabled */ 535 /* Mezz cards have PCI function 0,2,3 enabled */
533 if ((adapter->ahw.boardcfg.board_type == NETXEN_BRDTYPE_P2_SB31_10G_IMEZ) 536 switch (adapter->ahw.boardcfg.board_type) {
534 && (pci_func_id >= 2)) 537 case NETXEN_BRDTYPE_P2_SB31_10G_IMEZ:
538 case NETXEN_BRDTYPE_P2_SB31_10G_HMEZ:
539 if (pci_func_id >= 2)
535 adapter->portnum = pci_func_id - 2; 540 adapter->portnum = pci_func_id - 2;
536 541 break;
537#ifdef CONFIG_IA64 542 default:
538 if(adapter->portnum == 0) { 543 break;
539 netxen_pinit_from_rom(adapter, 0);
540 udelay(500);
541 netxen_load_firmware(adapter);
542 } 544 }
543#endif
544 545
545 init_timer(&adapter->watchdog_timer); 546 init_timer(&adapter->watchdog_timer);
546 adapter->ahw.xg_linkup = 0; 547 adapter->ahw.xg_linkup = 0;
@@ -613,11 +614,18 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
613 err = -ENODEV; 614 err = -ENODEV;
614 goto err_out_free_dev; 615 goto err_out_free_dev;
615 } 616 }
617 } else {
618 writel(0, NETXEN_CRB_NORMALIZE(adapter,
619 CRB_CMDPEG_STATE));
620 netxen_pinit_from_rom(adapter, 0);
621 msleep(1);
622 netxen_load_firmware(adapter);
623 netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE);
616 } 624 }
617 625
618 /* clear the register for future unloads/loads */ 626 /* clear the register for future unloads/loads */
619 writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc))); 627 writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc)));
620 printk(KERN_INFO "State: 0x%0x\n", 628 dev_info(&pdev->dev, "cmdpeg state: 0x%0x\n",
621 readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE))); 629 readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)));
622 630
623 /* 631 /*
@@ -639,9 +647,10 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
639 /* 647 /*
640 * See if the firmware gave us a virtual-physical port mapping. 648 * See if the firmware gave us a virtual-physical port mapping.
641 */ 649 */
650 adapter->physical_port = adapter->portnum;
642 i = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_V2P(adapter->portnum))); 651 i = readl(NETXEN_CRB_NORMALIZE(adapter, CRB_V2P(adapter->portnum)));
643 if (i != 0x55555555) 652 if (i != 0x55555555)
644 physical_port[adapter->portnum] = i; 653 adapter->physical_port = i;
645 654
646 netif_carrier_off(netdev); 655 netif_carrier_off(netdev);
647 netif_stop_queue(netdev); 656 netif_stop_queue(netdev);
@@ -654,22 +663,9 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
654 goto err_out_free_dev; 663 goto err_out_free_dev;
655 } 664 }
656 665
666 netxen_nic_flash_print(adapter);
657 pci_set_drvdata(pdev, adapter); 667 pci_set_drvdata(pdev, adapter);
658 668
659 switch (adapter->ahw.board_type) {
660 case NETXEN_NIC_GBE:
661 printk(KERN_INFO "%s: QUAD GbE board initialized\n",
662 netxen_nic_driver_name);
663 break;
664
665 case NETXEN_NIC_XGBE:
666 printk(KERN_INFO "%s: XGbE board initialized\n",
667 netxen_nic_driver_name);
668 break;
669 }
670
671 adapter->driver_mismatch = 0;
672
673 return 0; 669 return 0;
674 670
675err_out_free_dev: 671err_out_free_dev:
@@ -760,55 +756,8 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)
760 756
761 vfree(adapter->cmd_buf_arr); 757 vfree(adapter->cmd_buf_arr);
762 758
763 if (adapter->portnum == 0) { 759 if (adapter->portnum == 0)
764 if (init_firmware_done) { 760 netxen_free_adapter_offload(adapter);
765 i = 100;
766 do {
767 if (dma_watchdog_shutdown_request(adapter) == 1)
768 break;
769 msleep(100);
770 if (dma_watchdog_shutdown_poll_result(adapter) == 1)
771 break;
772 } while (--i);
773
774 if (i == 0)
775 printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n",
776 netdev->name);
777
778 /* clear the register for future unloads/loads */
779 writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc)));
780 printk(KERN_INFO "State: 0x%0x\n",
781 readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)));
782
783 /* leave the hw in the same state as reboot */
784 writel(0, NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE));
785 netxen_pinit_from_rom(adapter, 0);
786 msleep(1);
787 netxen_load_firmware(adapter);
788 netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE);
789 }
790
791 /* clear the register for future unloads/loads */
792 writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_CAM_RAM(0x1fc)));
793 printk(KERN_INFO "State: 0x%0x\n",
794 readl(NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE)));
795
796 i = 100;
797 do {
798 if (dma_watchdog_shutdown_request(adapter) == 1)
799 break;
800 msleep(100);
801 if (dma_watchdog_shutdown_poll_result(adapter) == 1)
802 break;
803 } while (--i);
804
805 if (i) {
806 netxen_free_adapter_offload(adapter);
807 } else {
808 printk(KERN_ERR "%s: dma_watchdog_shutdown failed\n",
809 netdev->name);
810 }
811 }
812 761
813 if (adapter->irq) 762 if (adapter->irq)
814 free_irq(adapter->irq, adapter); 763 free_irq(adapter->irq, adapter);
@@ -840,13 +789,15 @@ static int netxen_nic_open(struct net_device *netdev)
840 irq_handler_t handler; 789 irq_handler_t handler;
841 unsigned long flags = IRQF_SAMPLE_RANDOM; 790 unsigned long flags = IRQF_SAMPLE_RANDOM;
842 791
792 if (adapter->driver_mismatch)
793 return -EIO;
794
843 if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) { 795 if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) {
844 err = netxen_init_firmware(adapter); 796 err = netxen_init_firmware(adapter);
845 if (err != 0) { 797 if (err != 0) {
846 printk(KERN_ERR "Failed to init firmware\n"); 798 printk(KERN_ERR "Failed to init firmware\n");
847 return -EIO; 799 return -EIO;
848 } 800 }
849 netxen_nic_flash_print(adapter);
850 801
851 /* setup all the resources for the Phantom... */ 802 /* setup all the resources for the Phantom... */
852 /* this include the descriptors for rcv, tx, and status */ 803 /* this include the descriptors for rcv, tx, and status */
@@ -895,14 +846,12 @@ static int netxen_nic_open(struct net_device *netdev)
895 if (adapter->set_mtu) 846 if (adapter->set_mtu)
896 adapter->set_mtu(adapter, netdev->mtu); 847 adapter->set_mtu(adapter, netdev->mtu);
897 848
898 if (!adapter->driver_mismatch) 849 mod_timer(&adapter->watchdog_timer, jiffies);
899 mod_timer(&adapter->watchdog_timer, jiffies);
900 850
901 napi_enable(&adapter->napi); 851 napi_enable(&adapter->napi);
902 netxen_nic_enable_int(adapter); 852 netxen_nic_enable_int(adapter);
903 853
904 if (!adapter->driver_mismatch) 854 netif_start_queue(netdev);
905 netif_start_queue(netdev);
906 855
907 return 0; 856 return 0;
908} 857}
diff --git a/drivers/net/netxen/netxen_nic_niu.c b/drivers/net/netxen/netxen_nic_niu.c
index 1c852a76c80d..a3bc7cc67a6f 100644
--- a/drivers/net/netxen/netxen_nic_niu.c
+++ b/drivers/net/netxen/netxen_nic_niu.c
@@ -94,7 +94,7 @@ int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long reg,
94 long timeout = 0; 94 long timeout = 0;
95 long result = 0; 95 long result = 0;
96 long restore = 0; 96 long restore = 0;
97 long phy = physical_port[adapter->portnum]; 97 long phy = adapter->physical_port;
98 __u32 address; 98 __u32 address;
99 __u32 command; 99 __u32 command;
100 __u32 status; 100 __u32 status;
@@ -190,7 +190,7 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, long reg,
190 long timeout = 0; 190 long timeout = 0;
191 long result = 0; 191 long result = 0;
192 long restore = 0; 192 long restore = 0;
193 long phy = physical_port[adapter->portnum]; 193 long phy = adapter->physical_port;
194 __u32 address; 194 __u32 address;
195 __u32 command; 195 __u32 command;
196 __u32 status; 196 __u32 status;
@@ -456,7 +456,7 @@ int netxen_niu_gbe_init_port(struct netxen_adapter *adapter, int port)
456 456
457int netxen_niu_xg_init_port(struct netxen_adapter *adapter, int port) 457int netxen_niu_xg_init_port(struct netxen_adapter *adapter, int port)
458{ 458{
459 u32 portnum = physical_port[adapter->portnum]; 459 u32 portnum = adapter->physical_port;
460 460
461 netxen_crb_writelit_adapter(adapter, 461 netxen_crb_writelit_adapter(adapter,
462 NETXEN_NIU_XGE_CONFIG_1+(0x10000*portnum), 0x1447); 462 NETXEN_NIU_XGE_CONFIG_1+(0x10000*portnum), 0x1447);
@@ -573,7 +573,7 @@ static int netxen_niu_macaddr_get(struct netxen_adapter *adapter,
573{ 573{
574 u32 stationhigh; 574 u32 stationhigh;
575 u32 stationlow; 575 u32 stationlow;
576 int phy = physical_port[adapter->portnum]; 576 int phy = adapter->physical_port;
577 u8 val[8]; 577 u8 val[8];
578 578
579 if (addr == NULL) 579 if (addr == NULL)
@@ -604,7 +604,7 @@ int netxen_niu_macaddr_set(struct netxen_adapter *adapter,
604{ 604{
605 u8 temp[4]; 605 u8 temp[4];
606 u32 val; 606 u32 val;
607 int phy = physical_port[adapter->portnum]; 607 int phy = adapter->physical_port;
608 unsigned char mac_addr[6]; 608 unsigned char mac_addr[6];
609 int i; 609 int i;
610 DECLARE_MAC_BUF(mac); 610 DECLARE_MAC_BUF(mac);
@@ -724,7 +724,7 @@ int netxen_niu_enable_gbe_port(struct netxen_adapter *adapter,
724int netxen_niu_disable_gbe_port(struct netxen_adapter *adapter) 724int netxen_niu_disable_gbe_port(struct netxen_adapter *adapter)
725{ 725{
726 __u32 mac_cfg0; 726 __u32 mac_cfg0;
727 u32 port = physical_port[adapter->portnum]; 727 u32 port = adapter->physical_port;
728 728
729 if (port > NETXEN_NIU_MAX_GBE_PORTS) 729 if (port > NETXEN_NIU_MAX_GBE_PORTS)
730 return -EINVAL; 730 return -EINVAL;
@@ -740,7 +740,7 @@ int netxen_niu_disable_gbe_port(struct netxen_adapter *adapter)
740int netxen_niu_disable_xg_port(struct netxen_adapter *adapter) 740int netxen_niu_disable_xg_port(struct netxen_adapter *adapter)
741{ 741{
742 __u32 mac_cfg; 742 __u32 mac_cfg;
743 u32 port = physical_port[adapter->portnum]; 743 u32 port = adapter->physical_port;
744 744
745 if (port > NETXEN_NIU_MAX_XG_PORTS) 745 if (port > NETXEN_NIU_MAX_XG_PORTS)
746 return -EINVAL; 746 return -EINVAL;
@@ -757,7 +757,7 @@ int netxen_niu_set_promiscuous_mode(struct netxen_adapter *adapter,
757 netxen_niu_prom_mode_t mode) 757 netxen_niu_prom_mode_t mode)
758{ 758{
759 __u32 reg; 759 __u32 reg;
760 u32 port = physical_port[adapter->portnum]; 760 u32 port = adapter->physical_port;
761 761
762 if (port > NETXEN_NIU_MAX_GBE_PORTS) 762 if (port > NETXEN_NIU_MAX_GBE_PORTS)
763 return -EINVAL; 763 return -EINVAL;
@@ -814,7 +814,7 @@ int netxen_niu_set_promiscuous_mode(struct netxen_adapter *adapter,
814int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter, 814int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter,
815 netxen_ethernet_macaddr_t addr) 815 netxen_ethernet_macaddr_t addr)
816{ 816{
817 int phy = physical_port[adapter->portnum]; 817 int phy = adapter->physical_port;
818 u8 temp[4]; 818 u8 temp[4];
819 u32 val; 819 u32 val;
820 820
@@ -867,7 +867,7 @@ int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter,
867int netxen_niu_xg_macaddr_get(struct netxen_adapter *adapter, 867int netxen_niu_xg_macaddr_get(struct netxen_adapter *adapter,
868 netxen_ethernet_macaddr_t * addr) 868 netxen_ethernet_macaddr_t * addr)
869{ 869{
870 int phy = physical_port[adapter->portnum]; 870 int phy = adapter->physical_port;
871 u32 stationhigh; 871 u32 stationhigh;
872 u32 stationlow; 872 u32 stationlow;
873 u8 val[8]; 873 u8 val[8];
@@ -896,7 +896,7 @@ int netxen_niu_xg_set_promiscuous_mode(struct netxen_adapter *adapter,
896 netxen_niu_prom_mode_t mode) 896 netxen_niu_prom_mode_t mode)
897{ 897{
898 __u32 reg; 898 __u32 reg;
899 u32 port = physical_port[adapter->portnum]; 899 u32 port = adapter->physical_port;
900 900
901 if (port > NETXEN_NIU_MAX_XG_PORTS) 901 if (port > NETXEN_NIU_MAX_XG_PORTS)
902 return -EINVAL; 902 return -EINVAL;
diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c
index 58a26a47af29..fc6f4b8c64b3 100644
--- a/drivers/net/pppoe.c
+++ b/drivers/net/pppoe.c
@@ -341,12 +341,6 @@ static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb)
341 struct pppox_sock *relay_po; 341 struct pppox_sock *relay_po;
342 342
343 if (sk->sk_state & PPPOX_BOUND) { 343 if (sk->sk_state & PPPOX_BOUND) {
344 struct pppoe_hdr *ph = pppoe_hdr(skb);
345 int len = ntohs(ph->length);
346 skb_pull_rcsum(skb, sizeof(struct pppoe_hdr));
347 if (pskb_trim_rcsum(skb, len))
348 goto abort_kfree;
349
350 ppp_input(&po->chan, skb); 344 ppp_input(&po->chan, skb);
351 } else if (sk->sk_state & PPPOX_RELAY) { 345 } else if (sk->sk_state & PPPOX_RELAY) {
352 relay_po = get_item_by_addr(&po->pppoe_relay); 346 relay_po = get_item_by_addr(&po->pppoe_relay);
@@ -357,7 +351,6 @@ static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb)
357 if ((sk_pppox(relay_po)->sk_state & PPPOX_CONNECTED) == 0) 351 if ((sk_pppox(relay_po)->sk_state & PPPOX_CONNECTED) == 0)
358 goto abort_put; 352 goto abort_put;
359 353
360 skb_pull(skb, sizeof(struct pppoe_hdr));
361 if (!__pppoe_xmit(sk_pppox(relay_po), skb)) 354 if (!__pppoe_xmit(sk_pppox(relay_po), skb))
362 goto abort_put; 355 goto abort_put;
363 } else { 356 } else {
@@ -388,6 +381,7 @@ static int pppoe_rcv(struct sk_buff *skb,
388{ 381{
389 struct pppoe_hdr *ph; 382 struct pppoe_hdr *ph;
390 struct pppox_sock *po; 383 struct pppox_sock *po;
384 int len;
391 385
392 if (!(skb = skb_share_check(skb, GFP_ATOMIC))) 386 if (!(skb = skb_share_check(skb, GFP_ATOMIC)))
393 goto out; 387 goto out;
@@ -399,10 +393,21 @@ static int pppoe_rcv(struct sk_buff *skb,
399 goto drop; 393 goto drop;
400 394
401 ph = pppoe_hdr(skb); 395 ph = pppoe_hdr(skb);
396 len = ntohs(ph->length);
397
398 skb_pull_rcsum(skb, sizeof(*ph));
399 if (skb->len < len)
400 goto drop;
402 401
403 po = get_item(ph->sid, eth_hdr(skb)->h_source, dev->ifindex); 402 po = get_item(ph->sid, eth_hdr(skb)->h_source, dev->ifindex);
404 if (po != NULL) 403 if (!po)
405 return sk_receive_skb(sk_pppox(po), skb, 0); 404 goto drop;
405
406 if (pskb_trim_rcsum(skb, len))
407 goto drop;
408
409 return sk_receive_skb(sk_pppox(po), skb, 0);
410
406drop: 411drop:
407 kfree_skb(skb); 412 kfree_skb(skb);
408out: 413out:
@@ -427,12 +432,12 @@ static int pppoe_disc_rcv(struct sk_buff *skb,
427 if (dev_net(dev) != &init_net) 432 if (dev_net(dev) != &init_net)
428 goto abort; 433 goto abort;
429 434
430 if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
431 goto abort;
432
433 if (!(skb = skb_share_check(skb, GFP_ATOMIC))) 435 if (!(skb = skb_share_check(skb, GFP_ATOMIC)))
434 goto out; 436 goto out;
435 437
438 if (!pskb_may_pull(skb, sizeof(struct pppoe_hdr)))
439 goto abort;
440
436 ph = pppoe_hdr(skb); 441 ph = pppoe_hdr(skb);
437 if (ph->code != PADT_CODE) 442 if (ph->code != PADT_CODE)
438 goto abort; 443 goto abort;
@@ -937,12 +942,10 @@ static int pppoe_recvmsg(struct kiocb *iocb, struct socket *sock,
937 m->msg_namelen = 0; 942 m->msg_namelen = 0;
938 943
939 if (skb) { 944 if (skb) {
940 struct pppoe_hdr *ph = pppoe_hdr(skb); 945 total_len = min_t(size_t, total_len, skb->len);
941 const int len = ntohs(ph->length); 946 error = skb_copy_datagram_iovec(skb, 0, m->msg_iov, total_len);
942
943 error = memcpy_toiovec(m->msg_iov, (unsigned char *) &ph->tag[0], len);
944 if (error == 0) 947 if (error == 0)
945 error = len; 948 error = total_len;
946 } 949 }
947 950
948 kfree_skb(skb); 951 kfree_skb(skb);
diff --git a/drivers/net/pppol2tp.c b/drivers/net/pppol2tp.c
index 70cfdb46aa27..f9298827a76c 100644
--- a/drivers/net/pppol2tp.c
+++ b/drivers/net/pppol2tp.c
@@ -783,14 +783,18 @@ static int pppol2tp_recvmsg(struct kiocb *iocb, struct socket *sock,
783 err = 0; 783 err = 0;
784 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, 784 skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
785 flags & MSG_DONTWAIT, &err); 785 flags & MSG_DONTWAIT, &err);
786 if (skb) { 786 if (!skb)
787 err = memcpy_toiovec(msg->msg_iov, (unsigned char *) skb->data, 787 goto end;
788 skb->len); 788
789 if (err < 0) 789 if (len > skb->len)
790 goto do_skb_free; 790 len = skb->len;
791 err = skb->len; 791 else if (len < skb->len)
792 } 792 msg->msg_flags |= MSG_TRUNC;
793do_skb_free: 793
794 err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, len);
795 if (likely(err == 0))
796 err = len;
797
794 kfree_skb(skb); 798 kfree_skb(skb);
795end: 799end:
796 return err; 800 return err;
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 169edc154928..858b191517b3 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -733,7 +733,7 @@ static void r6040_timer(unsigned long data)
733 } 733 }
734 734
735 /* Timer active again */ 735 /* Timer active again */
736 mod_timer(&lp->timer, jiffies + round_jiffies(HZ)); 736 mod_timer(&lp->timer, round_jiffies(jiffies + HZ));
737} 737}
738 738
739/* Read/set MAC address routines */ 739/* Read/set MAC address routines */
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c
index d3f749c72d41..790db89db345 100644
--- a/drivers/net/sfc/falcon.c
+++ b/drivers/net/sfc/falcon.c
@@ -733,8 +733,10 @@ void falcon_fini_rx(struct efx_rx_queue *rx_queue)
733 continue; 733 continue;
734 break; 734 break;
735 } 735 }
736 if (rc) 736 if (rc) {
737 EFX_ERR(efx, "failed to flush rx queue %d\n", rx_queue->queue); 737 EFX_ERR(efx, "failed to flush rx queue %d\n", rx_queue->queue);
738 efx_schedule_reset(efx, RESET_TYPE_INVISIBLE);
739 }
738 740
739 /* Remove RX descriptor ring from card */ 741 /* Remove RX descriptor ring from card */
740 EFX_ZERO_OWORD(rx_desc_ptr); 742 EFX_ZERO_OWORD(rx_desc_ptr);
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 3bb60530d4d7..c8a5ef2d75f4 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -118,6 +118,7 @@ static const struct pci_device_id sky2_id_table[] = {
118 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, /* 88E8038 */ 118 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, /* 88E8038 */
119 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, /* 88E8039 */ 119 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, /* 88E8039 */
120 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4354) }, /* 88E8040 */ 120 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4354) }, /* 88E8040 */
121 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4355) }, /* 88E8040T */
121 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4356) }, /* 88EC033 */ 122 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4356) }, /* 88EC033 */
122 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4357) }, /* 88E8042 */ 123 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4357) }, /* 88E8042 */
123 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x435A) }, /* 88E8048 */ 124 { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x435A) }, /* 88E8048 */
@@ -4404,7 +4405,9 @@ static int sky2_resume(struct pci_dev *pdev)
4404 if (err) { 4405 if (err) {
4405 printk(KERN_ERR PFX "%s: could not up: %d\n", 4406 printk(KERN_ERR PFX "%s: could not up: %d\n",
4406 dev->name, err); 4407 dev->name, err);
4408 rtnl_lock();
4407 dev_close(dev); 4409 dev_close(dev);
4410 rtnl_unlock();
4408 goto out; 4411 goto out;
4409 } 4412 }
4410 } 4413 }
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 4e2800205189..e2ee91a6ae7e 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -136,7 +136,6 @@ struct smc911x_local {
136 136
137 /* work queue */ 137 /* work queue */
138 struct work_struct phy_configure; 138 struct work_struct phy_configure;
139 int work_pending;
140 139
141 int tx_throttle; 140 int tx_throttle;
142 spinlock_t lock; 141 spinlock_t lock;
@@ -960,11 +959,11 @@ static void smc911x_phy_configure(struct work_struct *work)
960 * We should not be called if phy_type is zero. 959 * We should not be called if phy_type is zero.
961 */ 960 */
962 if (lp->phy_type == 0) 961 if (lp->phy_type == 0)
963 goto smc911x_phy_configure_exit_nolock; 962 return;
964 963
965 if (smc911x_phy_reset(dev, phyaddr)) { 964 if (smc911x_phy_reset(dev, phyaddr)) {
966 printk("%s: PHY reset timed out\n", dev->name); 965 printk("%s: PHY reset timed out\n", dev->name);
967 goto smc911x_phy_configure_exit_nolock; 966 return;
968 } 967 }
969 spin_lock_irqsave(&lp->lock, flags); 968 spin_lock_irqsave(&lp->lock, flags);
970 969
@@ -1033,8 +1032,6 @@ static void smc911x_phy_configure(struct work_struct *work)
1033 1032
1034smc911x_phy_configure_exit: 1033smc911x_phy_configure_exit:
1035 spin_unlock_irqrestore(&lp->lock, flags); 1034 spin_unlock_irqrestore(&lp->lock, flags);
1036smc911x_phy_configure_exit_nolock:
1037 lp->work_pending = 0;
1038} 1035}
1039 1036
1040/* 1037/*
@@ -1356,11 +1353,8 @@ static void smc911x_timeout(struct net_device *dev)
1356 * smc911x_phy_configure() calls msleep() which calls schedule_timeout() 1353 * smc911x_phy_configure() calls msleep() which calls schedule_timeout()
1357 * which calls schedule(). Hence we use a work queue. 1354 * which calls schedule(). Hence we use a work queue.
1358 */ 1355 */
1359 if (lp->phy_type != 0) { 1356 if (lp->phy_type != 0)
1360 if (schedule_work(&lp->phy_configure)) { 1357 schedule_work(&lp->phy_configure);
1361 lp->work_pending = 1;
1362 }
1363 }
1364 1358
1365 /* We can accept TX packets again */ 1359 /* We can accept TX packets again */
1366 dev->trans_start = jiffies; 1360 dev->trans_start = jiffies;
@@ -1531,16 +1525,8 @@ static int smc911x_close(struct net_device *dev)
1531 if (lp->phy_type != 0) { 1525 if (lp->phy_type != 0) {
1532 /* We need to ensure that no calls to 1526 /* We need to ensure that no calls to
1533 * smc911x_phy_configure are pending. 1527 * smc911x_phy_configure are pending.
1534
1535 * flush_scheduled_work() cannot be called because we
1536 * are running with the netlink semaphore held (from
1537 * devinet_ioctl()) and the pending work queue
1538 * contains linkwatch_event() (scheduled by
1539 * netif_carrier_off() above). linkwatch_event() also
1540 * wants the netlink semaphore.
1541 */ 1528 */
1542 while (lp->work_pending) 1529 cancel_work_sync(&lp->phy_configure);
1543 schedule();
1544 smc911x_phy_powerdown(dev, lp->mii.phy_id); 1530 smc911x_phy_powerdown(dev, lp->mii.phy_id);
1545 } 1531 }
1546 1532
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index a188e33484e6..f2051b209da2 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -1016,15 +1016,8 @@ static void smc_phy_powerdown(struct net_device *dev)
1016 1016
1017 /* We need to ensure that no calls to smc_phy_configure are 1017 /* We need to ensure that no calls to smc_phy_configure are
1018 pending. 1018 pending.
1019
1020 flush_scheduled_work() cannot be called because we are
1021 running with the netlink semaphore held (from
1022 devinet_ioctl()) and the pending work queue contains
1023 linkwatch_event() (scheduled by netif_carrier_off()
1024 above). linkwatch_event() also wants the netlink semaphore.
1025 */ 1019 */
1026 while(lp->work_pending) 1020 cancel_work_sync(&lp->phy_configure);
1027 yield();
1028 1021
1029 bmcr = smc_phy_read(dev, phy, MII_BMCR); 1022 bmcr = smc_phy_read(dev, phy, MII_BMCR);
1030 smc_phy_write(dev, phy, MII_BMCR, bmcr | BMCR_PDOWN); 1023 smc_phy_write(dev, phy, MII_BMCR, bmcr | BMCR_PDOWN);
@@ -1161,7 +1154,6 @@ static void smc_phy_configure(struct work_struct *work)
1161smc_phy_configure_exit: 1154smc_phy_configure_exit:
1162 SMC_SELECT_BANK(lp, 2); 1155 SMC_SELECT_BANK(lp, 2);
1163 spin_unlock_irq(&lp->lock); 1156 spin_unlock_irq(&lp->lock);
1164 lp->work_pending = 0;
1165} 1157}
1166 1158
1167/* 1159/*
@@ -1389,11 +1381,8 @@ static void smc_timeout(struct net_device *dev)
1389 * smc_phy_configure() calls msleep() which calls schedule_timeout() 1381 * smc_phy_configure() calls msleep() which calls schedule_timeout()
1390 * which calls schedule(). Hence we use a work queue. 1382 * which calls schedule(). Hence we use a work queue.
1391 */ 1383 */
1392 if (lp->phy_type != 0) { 1384 if (lp->phy_type != 0)
1393 if (schedule_work(&lp->phy_configure)) { 1385 schedule_work(&lp->phy_configure);
1394 lp->work_pending = 1;
1395 }
1396 }
1397 1386
1398 /* We can accept TX packets again */ 1387 /* We can accept TX packets again */
1399 dev->trans_start = jiffies; 1388 dev->trans_start = jiffies;
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index 69e97a1cb1c4..8606818653f8 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -93,14 +93,14 @@
93#define SMC_insw(a, r, p, l) insw ((unsigned long *)((a) + (r)), p, l) 93#define SMC_insw(a, r, p, l) insw ((unsigned long *)((a) + (r)), p, l)
94# endif 94# endif
95/* check if the mac in reg is valid */ 95/* check if the mac in reg is valid */
96#define SMC_GET_MAC_ADDR(addr) \ 96#define SMC_GET_MAC_ADDR(lp, addr) \
97 do { \ 97 do { \
98 unsigned int __v; \ 98 unsigned int __v; \
99 __v = SMC_inw(ioaddr, ADDR0_REG); \ 99 __v = SMC_inw(ioaddr, ADDR0_REG(lp)); \
100 addr[0] = __v; addr[1] = __v >> 8; \ 100 addr[0] = __v; addr[1] = __v >> 8; \
101 __v = SMC_inw(ioaddr, ADDR1_REG); \ 101 __v = SMC_inw(ioaddr, ADDR1_REG(lp)); \
102 addr[2] = __v; addr[3] = __v >> 8; \ 102 addr[2] = __v; addr[3] = __v >> 8; \
103 __v = SMC_inw(ioaddr, ADDR2_REG); \ 103 __v = SMC_inw(ioaddr, ADDR2_REG(lp)); \
104 addr[4] = __v; addr[5] = __v >> 8; \ 104 addr[4] = __v; addr[5] = __v >> 8; \
105 if (*(u32 *)(&addr[0]) == 0xFFFFFFFF) { \ 105 if (*(u32 *)(&addr[0]) == 0xFFFFFFFF) { \
106 random_ether_addr(addr); \ 106 random_ether_addr(addr); \
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 07b3f77e7626..cc4bde852542 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -64,8 +64,8 @@
64 64
65#define DRV_MODULE_NAME "tg3" 65#define DRV_MODULE_NAME "tg3"
66#define PFX DRV_MODULE_NAME ": " 66#define PFX DRV_MODULE_NAME ": "
67#define DRV_MODULE_VERSION "3.92" 67#define DRV_MODULE_VERSION "3.92.1"
68#define DRV_MODULE_RELDATE "May 2, 2008" 68#define DRV_MODULE_RELDATE "June 9, 2008"
69 69
70#define TG3_DEF_MAC_MODE 0 70#define TG3_DEF_MAC_MODE 0
71#define TG3_DEF_RX_MODE 0 71#define TG3_DEF_RX_MODE 0
@@ -1295,6 +1295,21 @@ static void tg3_frob_aux_power(struct tg3 *tp)
1295 GRC_LCLCTRL_GPIO_OUTPUT0 | 1295 GRC_LCLCTRL_GPIO_OUTPUT0 |
1296 GRC_LCLCTRL_GPIO_OUTPUT1), 1296 GRC_LCLCTRL_GPIO_OUTPUT1),
1297 100); 1297 100);
1298 } else if (tp->pdev->device == PCI_DEVICE_ID_TIGON3_5761) {
1299 /* The 5761 non-e device swaps GPIO 0 and GPIO 2. */
1300 u32 grc_local_ctrl = GRC_LCLCTRL_GPIO_OE0 |
1301 GRC_LCLCTRL_GPIO_OE1 |
1302 GRC_LCLCTRL_GPIO_OE2 |
1303 GRC_LCLCTRL_GPIO_OUTPUT0 |
1304 GRC_LCLCTRL_GPIO_OUTPUT1 |
1305 tp->grc_local_ctrl;
1306 tw32_wait_f(GRC_LOCAL_CTRL, grc_local_ctrl, 100);
1307
1308 grc_local_ctrl |= GRC_LCLCTRL_GPIO_OUTPUT2;
1309 tw32_wait_f(GRC_LOCAL_CTRL, grc_local_ctrl, 100);
1310
1311 grc_local_ctrl &= ~GRC_LCLCTRL_GPIO_OUTPUT0;
1312 tw32_wait_f(GRC_LOCAL_CTRL, grc_local_ctrl, 100);
1298 } else { 1313 } else {
1299 u32 no_gpio2; 1314 u32 no_gpio2;
1300 u32 grc_local_ctrl = 0; 1315 u32 grc_local_ctrl = 0;
@@ -3168,8 +3183,7 @@ static int tg3_setup_fiber_mii_phy(struct tg3 *tp, int force_reset)
3168 err |= tg3_readphy(tp, MII_BMCR, &bmcr); 3183 err |= tg3_readphy(tp, MII_BMCR, &bmcr);
3169 3184
3170 if ((tp->link_config.autoneg == AUTONEG_ENABLE) && !force_reset && 3185 if ((tp->link_config.autoneg == AUTONEG_ENABLE) && !force_reset &&
3171 (tp->tg3_flags2 & TG3_FLG2_PARALLEL_DETECT) && 3186 (tp->tg3_flags2 & TG3_FLG2_PARALLEL_DETECT)) {
3172 tp->link_config.flowctrl == tp->link_config.active_flowctrl) {
3173 /* do nothing, just check for link up at the end */ 3187 /* do nothing, just check for link up at the end */
3174 } else if (tp->link_config.autoneg == AUTONEG_ENABLE) { 3188 } else if (tp->link_config.autoneg == AUTONEG_ENABLE) {
3175 u32 adv, new_adv; 3189 u32 adv, new_adv;
@@ -8599,7 +8613,7 @@ static int tg3_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
8599 (cmd->speed == SPEED_1000)) 8613 (cmd->speed == SPEED_1000))
8600 return -EINVAL; 8614 return -EINVAL;
8601 else if ((cmd->speed == SPEED_1000) && 8615 else if ((cmd->speed == SPEED_1000) &&
8602 (tp->tg3_flags2 & TG3_FLAG_10_100_ONLY)) 8616 (tp->tg3_flags & TG3_FLAG_10_100_ONLY))
8603 return -EINVAL; 8617 return -EINVAL;
8604 8618
8605 tg3_full_lock(tp, 0); 8619 tg3_full_lock(tp, 0);
@@ -11768,6 +11782,15 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
11768 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755) 11782 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755)
11769 tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL; 11783 tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL;
11770 11784
11785 if (tp->pdev->device == PCI_DEVICE_ID_TIGON3_5761) {
11786 /* Turn off the debug UART. */
11787 tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL;
11788 if (tp->tg3_flags2 & TG3_FLG2_IS_NIC)
11789 /* Keep VMain power. */
11790 tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_OE0 |
11791 GRC_LCLCTRL_GPIO_OUTPUT0;
11792 }
11793
11771 /* Force the chip into D0. */ 11794 /* Force the chip into D0. */
11772 err = tg3_set_power_state(tp, PCI_D0); 11795 err = tg3_set_power_state(tp, PCI_D0);
11773 if (err) { 11796 if (err) {
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index 55670b5eb611..af8d2c436efd 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -731,7 +731,7 @@ static void tulip_down (struct net_device *dev)
731 void __iomem *ioaddr = tp->base_addr; 731 void __iomem *ioaddr = tp->base_addr;
732 unsigned long flags; 732 unsigned long flags;
733 733
734 flush_scheduled_work(); 734 cancel_work_sync(&tp->media_work);
735 735
736#ifdef CONFIG_TULIP_NAPI 736#ifdef CONFIG_TULIP_NAPI
737 napi_disable(&tp->napi); 737 napi_disable(&tp->napi);
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 0ce07a339c7e..7ab94c825b57 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -313,6 +313,21 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv,
313 313
314 switch (tun->flags & TUN_TYPE_MASK) { 314 switch (tun->flags & TUN_TYPE_MASK) {
315 case TUN_TUN_DEV: 315 case TUN_TUN_DEV:
316 if (tun->flags & TUN_NO_PI) {
317 switch (skb->data[0] & 0xf0) {
318 case 0x40:
319 pi.proto = htons(ETH_P_IP);
320 break;
321 case 0x60:
322 pi.proto = htons(ETH_P_IPV6);
323 break;
324 default:
325 tun->dev->stats.rx_dropped++;
326 kfree_skb(skb);
327 return -EINVAL;
328 }
329 }
330
316 skb_reset_mac_header(skb); 331 skb_reset_mac_header(skb);
317 skb->protocol = pi.proto; 332 skb->protocol = pi.proto;
318 skb->dev = tun->dev; 333 skb->dev = tun->dev;
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 0dcfc0310264..7c66b052f55a 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -706,7 +706,7 @@ static void kaweth_kill_urbs(struct kaweth_device *kaweth)
706 usb_kill_urb(kaweth->rx_urb); 706 usb_kill_urb(kaweth->rx_urb);
707 usb_kill_urb(kaweth->tx_urb); 707 usb_kill_urb(kaweth->tx_urb);
708 708
709 flush_scheduled_work(); 709 cancel_delayed_work_sync(&kaweth->lowmem_work);
710 710
711 /* a scheduled work may have resubmitted, 711 /* a scheduled work may have resubmitted,
712 we hit them again */ 712 we hit them again */
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 5450eac9e263..4452306d5328 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -44,11 +44,15 @@ struct virtnet_info
44 /* The skb we couldn't send because buffers were full. */ 44 /* The skb we couldn't send because buffers were full. */
45 struct sk_buff *last_xmit_skb; 45 struct sk_buff *last_xmit_skb;
46 46
47 /* If we need to free in a timer, this is it. */
48 struct timer_list xmit_free_timer;
49
47 /* Number of input buffers, and max we've ever had. */ 50 /* Number of input buffers, and max we've ever had. */
48 unsigned int num, max; 51 unsigned int num, max;
49 52
50 /* For cleaning up after transmission. */ 53 /* For cleaning up after transmission. */
51 struct tasklet_struct tasklet; 54 struct tasklet_struct tasklet;
55 bool free_in_tasklet;
52 56
53 /* Receive & send queues. */ 57 /* Receive & send queues. */
54 struct sk_buff_head recv; 58 struct sk_buff_head recv;
@@ -72,7 +76,7 @@ static void skb_xmit_done(struct virtqueue *svq)
72 /* Suppress further interrupts. */ 76 /* Suppress further interrupts. */
73 svq->vq_ops->disable_cb(svq); 77 svq->vq_ops->disable_cb(svq);
74 78
75 /* We were waiting for more output buffers. */ 79 /* We were probably waiting for more output buffers. */
76 netif_wake_queue(vi->dev); 80 netif_wake_queue(vi->dev);
77 81
78 /* Make sure we re-xmit last_xmit_skb: if there are no more packets 82 /* Make sure we re-xmit last_xmit_skb: if there are no more packets
@@ -94,9 +98,7 @@ static void receive_skb(struct net_device *dev, struct sk_buff *skb,
94 BUG_ON(len > MAX_PACKET_LEN); 98 BUG_ON(len > MAX_PACKET_LEN);
95 99
96 skb_trim(skb, len); 100 skb_trim(skb, len);
97 skb->protocol = eth_type_trans(skb, dev); 101
98 pr_debug("Receiving skb proto 0x%04x len %i type %i\n",
99 ntohs(skb->protocol), skb->len, skb->pkt_type);
100 dev->stats.rx_bytes += skb->len; 102 dev->stats.rx_bytes += skb->len;
101 dev->stats.rx_packets++; 103 dev->stats.rx_packets++;
102 104
@@ -106,6 +108,10 @@ static void receive_skb(struct net_device *dev, struct sk_buff *skb,
106 goto frame_err; 108 goto frame_err;
107 } 109 }
108 110
111 skb->protocol = eth_type_trans(skb, dev);
112 pr_debug("Receiving skb proto 0x%04x len %i type %i\n",
113 ntohs(skb->protocol), skb->len, skb->pkt_type);
114
109 if (hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) { 115 if (hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) {
110 pr_debug("GSO!\n"); 116 pr_debug("GSO!\n");
111 switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) { 117 switch (hdr->gso_type & ~VIRTIO_NET_HDR_GSO_ECN) {
@@ -238,9 +244,25 @@ static void free_old_xmit_skbs(struct virtnet_info *vi)
238 } 244 }
239} 245}
240 246
247/* If the virtio transport doesn't always notify us when all in-flight packets
248 * are consumed, we fall back to using this function on a timer to free them. */
249static void xmit_free(unsigned long data)
250{
251 struct virtnet_info *vi = (void *)data;
252
253 netif_tx_lock(vi->dev);
254
255 free_old_xmit_skbs(vi);
256
257 if (!skb_queue_empty(&vi->send))
258 mod_timer(&vi->xmit_free_timer, jiffies + (HZ/10));
259
260 netif_tx_unlock(vi->dev);
261}
262
241static int xmit_skb(struct virtnet_info *vi, struct sk_buff *skb) 263static int xmit_skb(struct virtnet_info *vi, struct sk_buff *skb)
242{ 264{
243 int num; 265 int num, err;
244 struct scatterlist sg[2+MAX_SKB_FRAGS]; 266 struct scatterlist sg[2+MAX_SKB_FRAGS];
245 struct virtio_net_hdr *hdr; 267 struct virtio_net_hdr *hdr;
246 const unsigned char *dest = ((struct ethhdr *)skb->data)->h_dest; 268 const unsigned char *dest = ((struct ethhdr *)skb->data)->h_dest;
@@ -283,7 +305,11 @@ static int xmit_skb(struct virtnet_info *vi, struct sk_buff *skb)
283 vnet_hdr_to_sg(sg, skb); 305 vnet_hdr_to_sg(sg, skb);
284 num = skb_to_sgvec(skb, sg+1, 0, skb->len) + 1; 306 num = skb_to_sgvec(skb, sg+1, 0, skb->len) + 1;
285 307
286 return vi->svq->vq_ops->add_buf(vi->svq, sg, num, 0, skb); 308 err = vi->svq->vq_ops->add_buf(vi->svq, sg, num, 0, skb);
309 if (!err && !vi->free_in_tasklet)
310 mod_timer(&vi->xmit_free_timer, jiffies + (HZ/10));
311
312 return err;
287} 313}
288 314
289static void xmit_tasklet(unsigned long data) 315static void xmit_tasklet(unsigned long data)
@@ -295,6 +321,8 @@ static void xmit_tasklet(unsigned long data)
295 vi->svq->vq_ops->kick(vi->svq); 321 vi->svq->vq_ops->kick(vi->svq);
296 vi->last_xmit_skb = NULL; 322 vi->last_xmit_skb = NULL;
297 } 323 }
324 if (vi->free_in_tasklet)
325 free_old_xmit_skbs(vi);
298 netif_tx_unlock_bh(vi->dev); 326 netif_tx_unlock_bh(vi->dev);
299} 327}
300 328
@@ -435,6 +463,10 @@ static int virtnet_probe(struct virtio_device *vdev)
435 vi->vdev = vdev; 463 vi->vdev = vdev;
436 vdev->priv = vi; 464 vdev->priv = vi;
437 465
466 /* If they give us a callback when all buffers are done, we don't need
467 * the timer. */
468 vi->free_in_tasklet = virtio_has_feature(vdev,VIRTIO_F_NOTIFY_ON_EMPTY);
469
438 /* We expect two virtqueues, receive then send. */ 470 /* We expect two virtqueues, receive then send. */
439 vi->rvq = vdev->config->find_vq(vdev, 0, skb_recv_done); 471 vi->rvq = vdev->config->find_vq(vdev, 0, skb_recv_done);
440 if (IS_ERR(vi->rvq)) { 472 if (IS_ERR(vi->rvq)) {
@@ -454,6 +486,9 @@ static int virtnet_probe(struct virtio_device *vdev)
454 486
455 tasklet_init(&vi->tasklet, xmit_tasklet, (unsigned long)vi); 487 tasklet_init(&vi->tasklet, xmit_tasklet, (unsigned long)vi);
456 488
489 if (!vi->free_in_tasklet)
490 setup_timer(&vi->xmit_free_timer, xmit_free, (unsigned long)vi);
491
457 err = register_netdev(dev); 492 err = register_netdev(dev);
458 if (err) { 493 if (err) {
459 pr_debug("virtio_net: registering device failed\n"); 494 pr_debug("virtio_net: registering device failed\n");
@@ -491,6 +526,9 @@ static void virtnet_remove(struct virtio_device *vdev)
491 /* Stop all the virtqueues. */ 526 /* Stop all the virtqueues. */
492 vdev->config->reset(vdev); 527 vdev->config->reset(vdev);
493 528
529 if (!vi->free_in_tasklet)
530 del_timer_sync(&vi->xmit_free_timer);
531
494 /* Free our skbs in send and recv queues, if any. */ 532 /* Free our skbs in send and recv queues, if any. */
495 while ((skb = __skb_dequeue(&vi->recv)) != NULL) { 533 while ((skb = __skb_dequeue(&vi->recv)) != NULL) {
496 kfree_skb(skb); 534 kfree_skb(skb);
@@ -514,7 +552,7 @@ static struct virtio_device_id id_table[] = {
514static unsigned int features[] = { 552static unsigned int features[] = {
515 VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GSO, VIRTIO_NET_F_MAC, 553 VIRTIO_NET_F_CSUM, VIRTIO_NET_F_GSO, VIRTIO_NET_F_MAC,
516 VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_UFO, VIRTIO_NET_F_HOST_TSO6, 554 VIRTIO_NET_F_HOST_TSO4, VIRTIO_NET_F_HOST_UFO, VIRTIO_NET_F_HOST_TSO6,
517 VIRTIO_NET_F_HOST_ECN, 555 VIRTIO_NET_F_HOST_ECN, VIRTIO_F_NOTIFY_ON_EMPTY,
518}; 556};
519 557
520static struct virtio_driver virtio_net = { 558static struct virtio_driver virtio_net = {
diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h
index dfa4bdd5597c..d3db298c05fc 100644
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
@@ -630,7 +630,6 @@ struct b43_pio {
630 630
631/* Context information for a noise calculation (Link Quality). */ 631/* Context information for a noise calculation (Link Quality). */
632struct b43_noise_calculation { 632struct b43_noise_calculation {
633 u8 channel_at_start;
634 bool calculation_running; 633 bool calculation_running;
635 u8 nr_samples; 634 u8 nr_samples;
636 s8 samples[8][4]; 635 s8 samples[8][4];
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index 6dcbb3c87e72..e23f2f172bd7 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -795,24 +795,49 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
795{ 795{
796 struct b43_dmaring *ring; 796 struct b43_dmaring *ring;
797 int err; 797 int err;
798 int nr_slots;
799 dma_addr_t dma_test; 798 dma_addr_t dma_test;
800 799
801 ring = kzalloc(sizeof(*ring), GFP_KERNEL); 800 ring = kzalloc(sizeof(*ring), GFP_KERNEL);
802 if (!ring) 801 if (!ring)
803 goto out; 802 goto out;
804 ring->type = type;
805 803
806 nr_slots = B43_RXRING_SLOTS; 804 ring->nr_slots = B43_RXRING_SLOTS;
807 if (for_tx) 805 if (for_tx)
808 nr_slots = B43_TXRING_SLOTS; 806 ring->nr_slots = B43_TXRING_SLOTS;
809 807
810 ring->meta = kcalloc(nr_slots, sizeof(struct b43_dmadesc_meta), 808 ring->meta = kcalloc(ring->nr_slots, sizeof(struct b43_dmadesc_meta),
811 GFP_KERNEL); 809 GFP_KERNEL);
812 if (!ring->meta) 810 if (!ring->meta)
813 goto err_kfree_ring; 811 goto err_kfree_ring;
812
813 ring->type = type;
814 ring->dev = dev;
815 ring->mmio_base = b43_dmacontroller_base(type, controller_index);
816 ring->index = controller_index;
817 if (type == B43_DMA_64BIT)
818 ring->ops = &dma64_ops;
819 else
820 ring->ops = &dma32_ops;
814 if (for_tx) { 821 if (for_tx) {
815 ring->txhdr_cache = kcalloc(nr_slots, 822 ring->tx = 1;
823 ring->current_slot = -1;
824 } else {
825 if (ring->index == 0) {
826 ring->rx_buffersize = B43_DMA0_RX_BUFFERSIZE;
827 ring->frameoffset = B43_DMA0_RX_FRAMEOFFSET;
828 } else if (ring->index == 3) {
829 ring->rx_buffersize = B43_DMA3_RX_BUFFERSIZE;
830 ring->frameoffset = B43_DMA3_RX_FRAMEOFFSET;
831 } else
832 B43_WARN_ON(1);
833 }
834 spin_lock_init(&ring->lock);
835#ifdef CONFIG_B43_DEBUG
836 ring->last_injected_overflow = jiffies;
837#endif
838
839 if (for_tx) {
840 ring->txhdr_cache = kcalloc(ring->nr_slots,
816 b43_txhdr_size(dev), 841 b43_txhdr_size(dev),
817 GFP_KERNEL); 842 GFP_KERNEL);
818 if (!ring->txhdr_cache) 843 if (!ring->txhdr_cache)
@@ -828,7 +853,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
828 b43_txhdr_size(dev), 1)) { 853 b43_txhdr_size(dev), 1)) {
829 /* ugh realloc */ 854 /* ugh realloc */
830 kfree(ring->txhdr_cache); 855 kfree(ring->txhdr_cache);
831 ring->txhdr_cache = kcalloc(nr_slots, 856 ring->txhdr_cache = kcalloc(ring->nr_slots,
832 b43_txhdr_size(dev), 857 b43_txhdr_size(dev),
833 GFP_KERNEL | GFP_DMA); 858 GFP_KERNEL | GFP_DMA);
834 if (!ring->txhdr_cache) 859 if (!ring->txhdr_cache)
@@ -853,32 +878,6 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
853 DMA_TO_DEVICE); 878 DMA_TO_DEVICE);
854 } 879 }
855 880
856 ring->dev = dev;
857 ring->nr_slots = nr_slots;
858 ring->mmio_base = b43_dmacontroller_base(type, controller_index);
859 ring->index = controller_index;
860 if (type == B43_DMA_64BIT)
861 ring->ops = &dma64_ops;
862 else
863 ring->ops = &dma32_ops;
864 if (for_tx) {
865 ring->tx = 1;
866 ring->current_slot = -1;
867 } else {
868 if (ring->index == 0) {
869 ring->rx_buffersize = B43_DMA0_RX_BUFFERSIZE;
870 ring->frameoffset = B43_DMA0_RX_FRAMEOFFSET;
871 } else if (ring->index == 3) {
872 ring->rx_buffersize = B43_DMA3_RX_BUFFERSIZE;
873 ring->frameoffset = B43_DMA3_RX_FRAMEOFFSET;
874 } else
875 B43_WARN_ON(1);
876 }
877 spin_lock_init(&ring->lock);
878#ifdef CONFIG_B43_DEBUG
879 ring->last_injected_overflow = jiffies;
880#endif
881
882 err = alloc_ringmemory(ring); 881 err = alloc_ringmemory(ring);
883 if (err) 882 if (err)
884 goto err_kfree_txhdr_cache; 883 goto err_kfree_txhdr_cache;
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 6c3d9ea0a9f8..fa4b0d8b74a2 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -1145,7 +1145,6 @@ static void b43_generate_noise_sample(struct b43_wldev *dev)
1145 b43_jssi_write(dev, 0x7F7F7F7F); 1145 b43_jssi_write(dev, 0x7F7F7F7F);
1146 b43_write32(dev, B43_MMIO_MACCMD, 1146 b43_write32(dev, B43_MMIO_MACCMD,
1147 b43_read32(dev, B43_MMIO_MACCMD) | B43_MACCMD_BGNOISE); 1147 b43_read32(dev, B43_MMIO_MACCMD) | B43_MACCMD_BGNOISE);
1148 B43_WARN_ON(dev->noisecalc.channel_at_start != dev->phy.channel);
1149} 1148}
1150 1149
1151static void b43_calculate_link_quality(struct b43_wldev *dev) 1150static void b43_calculate_link_quality(struct b43_wldev *dev)
@@ -1154,7 +1153,6 @@ static void b43_calculate_link_quality(struct b43_wldev *dev)
1154 1153
1155 if (dev->noisecalc.calculation_running) 1154 if (dev->noisecalc.calculation_running)
1156 return; 1155 return;
1157 dev->noisecalc.channel_at_start = dev->phy.channel;
1158 dev->noisecalc.calculation_running = 1; 1156 dev->noisecalc.calculation_running = 1;
1159 dev->noisecalc.nr_samples = 0; 1157 dev->noisecalc.nr_samples = 0;
1160 1158
@@ -1171,9 +1169,16 @@ static void handle_irq_noise(struct b43_wldev *dev)
1171 1169
1172 /* Bottom half of Link Quality calculation. */ 1170 /* Bottom half of Link Quality calculation. */
1173 1171
1172 /* Possible race condition: It might be possible that the user
1173 * changed to a different channel in the meantime since we
1174 * started the calculation. We ignore that fact, since it's
1175 * not really that much of a problem. The background noise is
1176 * an estimation only anyway. Slightly wrong results will get damped
1177 * by the averaging of the 8 sample rounds. Additionally the
1178 * value is shortlived. So it will be replaced by the next noise
1179 * calculation round soon. */
1180
1174 B43_WARN_ON(!dev->noisecalc.calculation_running); 1181 B43_WARN_ON(!dev->noisecalc.calculation_running);
1175 if (dev->noisecalc.channel_at_start != phy->channel)
1176 goto drop_calculation;
1177 *((__le32 *)noise) = cpu_to_le32(b43_jssi_read(dev)); 1182 *((__le32 *)noise) = cpu_to_le32(b43_jssi_read(dev));
1178 if (noise[0] == 0x7F || noise[1] == 0x7F || 1183 if (noise[0] == 0x7F || noise[1] == 0x7F ||
1179 noise[2] == 0x7F || noise[3] == 0x7F) 1184 noise[2] == 0x7F || noise[3] == 0x7F)
@@ -1214,11 +1219,10 @@ static void handle_irq_noise(struct b43_wldev *dev)
1214 average -= 48; 1219 average -= 48;
1215 1220
1216 dev->stats.link_noise = average; 1221 dev->stats.link_noise = average;
1217 drop_calculation:
1218 dev->noisecalc.calculation_running = 0; 1222 dev->noisecalc.calculation_running = 0;
1219 return; 1223 return;
1220 } 1224 }
1221 generate_new: 1225generate_new:
1222 b43_generate_noise_sample(dev); 1226 b43_generate_noise_sample(dev);
1223} 1227}
1224 1228
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c
index 20d387f6658c..f7aec9309d04 100644
--- a/drivers/net/wireless/hostap/hostap_main.c
+++ b/drivers/net/wireless/hostap/hostap_main.c
@@ -682,7 +682,13 @@ static int prism2_close(struct net_device *dev)
682 netif_device_detach(dev); 682 netif_device_detach(dev);
683 } 683 }
684 684
685 flush_scheduled_work(); 685 cancel_work_sync(&local->reset_queue);
686 cancel_work_sync(&local->set_multicast_list_queue);
687 cancel_work_sync(&local->set_tim_queue);
688#ifndef PRISM2_NO_STATION_MODES
689 cancel_work_sync(&local->info_queue);
690#endif
691 cancel_work_sync(&local->comms_qual_update);
686 692
687 module_put(local->hw_module); 693 module_put(local->hw_module);
688 694
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 729336774828..6e704608947c 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -1753,6 +1753,8 @@ static int ipw_radio_kill_sw(struct ipw_priv *priv, int disable_radio)
1753 1753
1754 if (priv->workqueue) { 1754 if (priv->workqueue) {
1755 cancel_delayed_work(&priv->request_scan); 1755 cancel_delayed_work(&priv->request_scan);
1756 cancel_delayed_work(&priv->request_direct_scan);
1757 cancel_delayed_work(&priv->request_passive_scan);
1756 cancel_delayed_work(&priv->scan_event); 1758 cancel_delayed_work(&priv->scan_event);
1757 } 1759 }
1758 queue_work(priv->workqueue, &priv->down); 1760 queue_work(priv->workqueue, &priv->down);
@@ -2005,6 +2007,8 @@ static void ipw_irq_tasklet(struct ipw_priv *priv)
2005 wake_up_interruptible(&priv->wait_command_queue); 2007 wake_up_interruptible(&priv->wait_command_queue);
2006 priv->status &= ~(STATUS_ASSOCIATED | STATUS_ASSOCIATING); 2008 priv->status &= ~(STATUS_ASSOCIATED | STATUS_ASSOCIATING);
2007 cancel_delayed_work(&priv->request_scan); 2009 cancel_delayed_work(&priv->request_scan);
2010 cancel_delayed_work(&priv->request_direct_scan);
2011 cancel_delayed_work(&priv->request_passive_scan);
2008 cancel_delayed_work(&priv->scan_event); 2012 cancel_delayed_work(&priv->scan_event);
2009 schedule_work(&priv->link_down); 2013 schedule_work(&priv->link_down);
2010 queue_delayed_work(priv->workqueue, &priv->rf_kill, 2 * HZ); 2014 queue_delayed_work(priv->workqueue, &priv->rf_kill, 2 * HZ);
@@ -4712,6 +4716,12 @@ static void ipw_rx_notification(struct ipw_priv *priv,
4712 priv->status &= ~STATUS_SCAN_FORCED; 4716 priv->status &= ~STATUS_SCAN_FORCED;
4713#endif /* CONFIG_IPW2200_MONITOR */ 4717#endif /* CONFIG_IPW2200_MONITOR */
4714 4718
4719 /* Do queued direct scans first */
4720 if (priv->status & STATUS_DIRECT_SCAN_PENDING) {
4721 queue_delayed_work(priv->workqueue,
4722 &priv->request_direct_scan, 0);
4723 }
4724
4715 if (!(priv->status & (STATUS_ASSOCIATED | 4725 if (!(priv->status & (STATUS_ASSOCIATED |
4716 STATUS_ASSOCIATING | 4726 STATUS_ASSOCIATING |
4717 STATUS_ROAMING | 4727 STATUS_ROAMING |
@@ -6267,7 +6277,7 @@ static void ipw_add_scan_channels(struct ipw_priv *priv,
6267 } 6277 }
6268} 6278}
6269 6279
6270static int ipw_request_scan_helper(struct ipw_priv *priv, int type) 6280static int ipw_request_scan_helper(struct ipw_priv *priv, int type, int direct)
6271{ 6281{
6272 struct ipw_scan_request_ext scan; 6282 struct ipw_scan_request_ext scan;
6273 int err = 0, scan_type; 6283 int err = 0, scan_type;
@@ -6278,22 +6288,31 @@ static int ipw_request_scan_helper(struct ipw_priv *priv, int type)
6278 6288
6279 mutex_lock(&priv->mutex); 6289 mutex_lock(&priv->mutex);
6280 6290
6291 if (direct && (priv->direct_scan_ssid_len == 0)) {
6292 IPW_DEBUG_HC("Direct scan requested but no SSID to scan for\n");
6293 priv->status &= ~STATUS_DIRECT_SCAN_PENDING;
6294 goto done;
6295 }
6296
6281 if (priv->status & STATUS_SCANNING) { 6297 if (priv->status & STATUS_SCANNING) {
6282 IPW_DEBUG_HC("Concurrent scan requested. Ignoring.\n"); 6298 IPW_DEBUG_HC("Concurrent scan requested. Queuing.\n");
6283 priv->status |= STATUS_SCAN_PENDING; 6299 priv->status |= direct ? STATUS_DIRECT_SCAN_PENDING :
6300 STATUS_SCAN_PENDING;
6284 goto done; 6301 goto done;
6285 } 6302 }
6286 6303
6287 if (!(priv->status & STATUS_SCAN_FORCED) && 6304 if (!(priv->status & STATUS_SCAN_FORCED) &&
6288 priv->status & STATUS_SCAN_ABORTING) { 6305 priv->status & STATUS_SCAN_ABORTING) {
6289 IPW_DEBUG_HC("Scan request while abort pending. Queuing.\n"); 6306 IPW_DEBUG_HC("Scan request while abort pending. Queuing.\n");
6290 priv->status |= STATUS_SCAN_PENDING; 6307 priv->status |= direct ? STATUS_DIRECT_SCAN_PENDING :
6308 STATUS_SCAN_PENDING;
6291 goto done; 6309 goto done;
6292 } 6310 }
6293 6311
6294 if (priv->status & STATUS_RF_KILL_MASK) { 6312 if (priv->status & STATUS_RF_KILL_MASK) {
6295 IPW_DEBUG_HC("Aborting scan due to RF Kill activation\n"); 6313 IPW_DEBUG_HC("Queuing scan due to RF Kill activation\n");
6296 priv->status |= STATUS_SCAN_PENDING; 6314 priv->status |= direct ? STATUS_DIRECT_SCAN_PENDING :
6315 STATUS_SCAN_PENDING;
6297 goto done; 6316 goto done;
6298 } 6317 }
6299 6318
@@ -6321,6 +6340,7 @@ static int ipw_request_scan_helper(struct ipw_priv *priv, int type)
6321 cpu_to_le16(20); 6340 cpu_to_le16(20);
6322 6341
6323 scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = cpu_to_le16(120); 6342 scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = cpu_to_le16(120);
6343 scan.dwell_time[IPW_SCAN_ACTIVE_DIRECT_SCAN] = cpu_to_le16(20);
6324 6344
6325#ifdef CONFIG_IPW2200_MONITOR 6345#ifdef CONFIG_IPW2200_MONITOR
6326 if (priv->ieee->iw_mode == IW_MODE_MONITOR) { 6346 if (priv->ieee->iw_mode == IW_MODE_MONITOR) {
@@ -6360,13 +6380,23 @@ static int ipw_request_scan_helper(struct ipw_priv *priv, int type)
6360 cpu_to_le16(2000); 6380 cpu_to_le16(2000);
6361 } else { 6381 } else {
6362#endif /* CONFIG_IPW2200_MONITOR */ 6382#endif /* CONFIG_IPW2200_MONITOR */
6363 /* If we are roaming, then make this a directed scan for the 6383 /* Honor direct scans first, otherwise if we are roaming make
6364 * current network. Otherwise, ensure that every other scan 6384 * this a direct scan for the current network. Finally,
6365 * is a fast channel hop scan */ 6385 * ensure that every other scan is a fast channel hop scan */
6366 if ((priv->status & STATUS_ROAMING) 6386 if (direct) {
6367 || (!(priv->status & STATUS_ASSOCIATED) 6387 err = ipw_send_ssid(priv, priv->direct_scan_ssid,
6368 && (priv->config & CFG_STATIC_ESSID) 6388 priv->direct_scan_ssid_len);
6369 && (le32_to_cpu(scan.full_scan_index) % 2))) { 6389 if (err) {
6390 IPW_DEBUG_HC("Attempt to send SSID command "
6391 "failed\n");
6392 goto done;
6393 }
6394
6395 scan_type = IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN;
6396 } else if ((priv->status & STATUS_ROAMING)
6397 || (!(priv->status & STATUS_ASSOCIATED)
6398 && (priv->config & CFG_STATIC_ESSID)
6399 && (le32_to_cpu(scan.full_scan_index) % 2))) {
6370 err = ipw_send_ssid(priv, priv->essid, priv->essid_len); 6400 err = ipw_send_ssid(priv, priv->essid, priv->essid_len);
6371 if (err) { 6401 if (err) {
6372 IPW_DEBUG_HC("Attempt to send SSID command " 6402 IPW_DEBUG_HC("Attempt to send SSID command "
@@ -6391,7 +6421,12 @@ send_request:
6391 } 6421 }
6392 6422
6393 priv->status |= STATUS_SCANNING; 6423 priv->status |= STATUS_SCANNING;
6394 priv->status &= ~STATUS_SCAN_PENDING; 6424 if (direct) {
6425 priv->status &= ~STATUS_DIRECT_SCAN_PENDING;
6426 priv->direct_scan_ssid_len = 0;
6427 } else
6428 priv->status &= ~STATUS_SCAN_PENDING;
6429
6395 queue_delayed_work(priv->workqueue, &priv->scan_check, 6430 queue_delayed_work(priv->workqueue, &priv->scan_check,
6396 IPW_SCAN_CHECK_WATCHDOG); 6431 IPW_SCAN_CHECK_WATCHDOG);
6397done: 6432done:
@@ -6402,15 +6437,22 @@ done:
6402static void ipw_request_passive_scan(struct work_struct *work) 6437static void ipw_request_passive_scan(struct work_struct *work)
6403{ 6438{
6404 struct ipw_priv *priv = 6439 struct ipw_priv *priv =
6405 container_of(work, struct ipw_priv, request_passive_scan); 6440 container_of(work, struct ipw_priv, request_passive_scan.work);
6406 ipw_request_scan_helper(priv, IW_SCAN_TYPE_PASSIVE); 6441 ipw_request_scan_helper(priv, IW_SCAN_TYPE_PASSIVE, 0);
6407} 6442}
6408 6443
6409static void ipw_request_scan(struct work_struct *work) 6444static void ipw_request_scan(struct work_struct *work)
6410{ 6445{
6411 struct ipw_priv *priv = 6446 struct ipw_priv *priv =
6412 container_of(work, struct ipw_priv, request_scan.work); 6447 container_of(work, struct ipw_priv, request_scan.work);
6413 ipw_request_scan_helper(priv, IW_SCAN_TYPE_ACTIVE); 6448 ipw_request_scan_helper(priv, IW_SCAN_TYPE_ACTIVE, 0);
6449}
6450
6451static void ipw_request_direct_scan(struct work_struct *work)
6452{
6453 struct ipw_priv *priv =
6454 container_of(work, struct ipw_priv, request_direct_scan.work);
6455 ipw_request_scan_helper(priv, IW_SCAN_TYPE_ACTIVE, 1);
6414} 6456}
6415 6457
6416static void ipw_bg_abort_scan(struct work_struct *work) 6458static void ipw_bg_abort_scan(struct work_struct *work)
@@ -9477,99 +9519,38 @@ static int ipw_wx_get_retry(struct net_device *dev,
9477 return 0; 9519 return 0;
9478} 9520}
9479 9521
9480static int ipw_request_direct_scan(struct ipw_priv *priv, char *essid,
9481 int essid_len)
9482{
9483 struct ipw_scan_request_ext scan;
9484 int err = 0, scan_type;
9485
9486 if (!(priv->status & STATUS_INIT) ||
9487 (priv->status & STATUS_EXIT_PENDING))
9488 return 0;
9489
9490 mutex_lock(&priv->mutex);
9491
9492 if (priv->status & STATUS_RF_KILL_MASK) {
9493 IPW_DEBUG_HC("Aborting scan due to RF kill activation\n");
9494 priv->status |= STATUS_SCAN_PENDING;
9495 goto done;
9496 }
9497
9498 IPW_DEBUG_HC("starting request direct scan!\n");
9499
9500 if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) {
9501 /* We should not sleep here; otherwise we will block most
9502 * of the system (for instance, we hold rtnl_lock when we
9503 * get here).
9504 */
9505 err = -EAGAIN;
9506 goto done;
9507 }
9508 memset(&scan, 0, sizeof(scan));
9509
9510 if (priv->config & CFG_SPEED_SCAN)
9511 scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_SCAN] =
9512 cpu_to_le16(30);
9513 else
9514 scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_SCAN] =
9515 cpu_to_le16(20);
9516
9517 scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN] =
9518 cpu_to_le16(20);
9519 scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = cpu_to_le16(120);
9520 scan.dwell_time[IPW_SCAN_ACTIVE_DIRECT_SCAN] = cpu_to_le16(20);
9521
9522 scan.full_scan_index = cpu_to_le32(ieee80211_get_scans(priv->ieee));
9523
9524 err = ipw_send_ssid(priv, essid, essid_len);
9525 if (err) {
9526 IPW_DEBUG_HC("Attempt to send SSID command failed\n");
9527 goto done;
9528 }
9529 scan_type = IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN;
9530
9531 ipw_add_scan_channels(priv, &scan, scan_type);
9532
9533 err = ipw_send_scan_request_ext(priv, &scan);
9534 if (err) {
9535 IPW_DEBUG_HC("Sending scan command failed: %08X\n", err);
9536 goto done;
9537 }
9538
9539 priv->status |= STATUS_SCANNING;
9540
9541 done:
9542 mutex_unlock(&priv->mutex);
9543 return err;
9544}
9545
9546static int ipw_wx_set_scan(struct net_device *dev, 9522static int ipw_wx_set_scan(struct net_device *dev,
9547 struct iw_request_info *info, 9523 struct iw_request_info *info,
9548 union iwreq_data *wrqu, char *extra) 9524 union iwreq_data *wrqu, char *extra)
9549{ 9525{
9550 struct ipw_priv *priv = ieee80211_priv(dev); 9526 struct ipw_priv *priv = ieee80211_priv(dev);
9551 struct iw_scan_req *req = (struct iw_scan_req *)extra; 9527 struct iw_scan_req *req = (struct iw_scan_req *)extra;
9528 struct delayed_work *work = NULL;
9552 9529
9553 mutex_lock(&priv->mutex); 9530 mutex_lock(&priv->mutex);
9531
9554 priv->user_requested_scan = 1; 9532 priv->user_requested_scan = 1;
9555 mutex_unlock(&priv->mutex);
9556 9533
9557 if (wrqu->data.length == sizeof(struct iw_scan_req)) { 9534 if (wrqu->data.length == sizeof(struct iw_scan_req)) {
9558 if (wrqu->data.flags & IW_SCAN_THIS_ESSID) { 9535 if (wrqu->data.flags & IW_SCAN_THIS_ESSID) {
9559 ipw_request_direct_scan(priv, req->essid, 9536 int len = min((int)req->essid_len,
9560 req->essid_len); 9537 (int)sizeof(priv->direct_scan_ssid));
9561 return 0; 9538 memcpy(priv->direct_scan_ssid, req->essid, len);
9562 } 9539 priv->direct_scan_ssid_len = len;
9563 if (req->scan_type == IW_SCAN_TYPE_PASSIVE) { 9540 work = &priv->request_direct_scan;
9564 queue_work(priv->workqueue, 9541 } else if (req->scan_type == IW_SCAN_TYPE_PASSIVE) {
9565 &priv->request_passive_scan); 9542 work = &priv->request_passive_scan;
9566 return 0;
9567 } 9543 }
9544 } else {
9545 /* Normal active broadcast scan */
9546 work = &priv->request_scan;
9568 } 9547 }
9569 9548
9549 mutex_unlock(&priv->mutex);
9550
9570 IPW_DEBUG_WX("Start scan\n"); 9551 IPW_DEBUG_WX("Start scan\n");
9571 9552
9572 queue_delayed_work(priv->workqueue, &priv->request_scan, 0); 9553 queue_delayed_work(priv->workqueue, work, 0);
9573 9554
9574 return 0; 9555 return 0;
9575} 9556}
@@ -10731,6 +10712,8 @@ static void ipw_link_up(struct ipw_priv *priv)
10731 } 10712 }
10732 10713
10733 cancel_delayed_work(&priv->request_scan); 10714 cancel_delayed_work(&priv->request_scan);
10715 cancel_delayed_work(&priv->request_direct_scan);
10716 cancel_delayed_work(&priv->request_passive_scan);
10734 cancel_delayed_work(&priv->scan_event); 10717 cancel_delayed_work(&priv->scan_event);
10735 ipw_reset_stats(priv); 10718 ipw_reset_stats(priv);
10736 /* Ensure the rate is updated immediately */ 10719 /* Ensure the rate is updated immediately */
@@ -10761,6 +10744,8 @@ static void ipw_link_down(struct ipw_priv *priv)
10761 10744
10762 /* Cancel any queued work ... */ 10745 /* Cancel any queued work ... */
10763 cancel_delayed_work(&priv->request_scan); 10746 cancel_delayed_work(&priv->request_scan);
10747 cancel_delayed_work(&priv->request_direct_scan);
10748 cancel_delayed_work(&priv->request_passive_scan);
10764 cancel_delayed_work(&priv->adhoc_check); 10749 cancel_delayed_work(&priv->adhoc_check);
10765 cancel_delayed_work(&priv->gather_stats); 10750 cancel_delayed_work(&priv->gather_stats);
10766 10751
@@ -10800,8 +10785,9 @@ static int __devinit ipw_setup_deferred_work(struct ipw_priv *priv)
10800 INIT_WORK(&priv->up, ipw_bg_up); 10785 INIT_WORK(&priv->up, ipw_bg_up);
10801 INIT_WORK(&priv->down, ipw_bg_down); 10786 INIT_WORK(&priv->down, ipw_bg_down);
10802 INIT_DELAYED_WORK(&priv->request_scan, ipw_request_scan); 10787 INIT_DELAYED_WORK(&priv->request_scan, ipw_request_scan);
10788 INIT_DELAYED_WORK(&priv->request_direct_scan, ipw_request_direct_scan);
10789 INIT_DELAYED_WORK(&priv->request_passive_scan, ipw_request_passive_scan);
10803 INIT_DELAYED_WORK(&priv->scan_event, ipw_scan_event); 10790 INIT_DELAYED_WORK(&priv->scan_event, ipw_scan_event);
10804 INIT_WORK(&priv->request_passive_scan, ipw_request_passive_scan);
10805 INIT_DELAYED_WORK(&priv->gather_stats, ipw_bg_gather_stats); 10791 INIT_DELAYED_WORK(&priv->gather_stats, ipw_bg_gather_stats);
10806 INIT_WORK(&priv->abort_scan, ipw_bg_abort_scan); 10792 INIT_WORK(&priv->abort_scan, ipw_bg_abort_scan);
10807 INIT_WORK(&priv->roam, ipw_bg_roam); 10793 INIT_WORK(&priv->roam, ipw_bg_roam);
@@ -11835,6 +11821,8 @@ static void __devexit ipw_pci_remove(struct pci_dev *pdev)
11835 cancel_delayed_work(&priv->adhoc_check); 11821 cancel_delayed_work(&priv->adhoc_check);
11836 cancel_delayed_work(&priv->gather_stats); 11822 cancel_delayed_work(&priv->gather_stats);
11837 cancel_delayed_work(&priv->request_scan); 11823 cancel_delayed_work(&priv->request_scan);
11824 cancel_delayed_work(&priv->request_direct_scan);
11825 cancel_delayed_work(&priv->request_passive_scan);
11838 cancel_delayed_work(&priv->scan_event); 11826 cancel_delayed_work(&priv->scan_event);
11839 cancel_delayed_work(&priv->rf_kill); 11827 cancel_delayed_work(&priv->rf_kill);
11840 cancel_delayed_work(&priv->scan_check); 11828 cancel_delayed_work(&priv->scan_check);
diff --git a/drivers/net/wireless/ipw2200.h b/drivers/net/wireless/ipw2200.h
index cd3295b66dd6..d4ab28b73b32 100644
--- a/drivers/net/wireless/ipw2200.h
+++ b/drivers/net/wireless/ipw2200.h
@@ -1037,6 +1037,7 @@ struct ipw_cmd { /* XXX */
1037#define STATUS_DISASSOC_PENDING (1<<12) 1037#define STATUS_DISASSOC_PENDING (1<<12)
1038#define STATUS_STATE_PENDING (1<<13) 1038#define STATUS_STATE_PENDING (1<<13)
1039 1039
1040#define STATUS_DIRECT_SCAN_PENDING (1<<19)
1040#define STATUS_SCAN_PENDING (1<<20) 1041#define STATUS_SCAN_PENDING (1<<20)
1041#define STATUS_SCANNING (1<<21) 1042#define STATUS_SCANNING (1<<21)
1042#define STATUS_SCAN_ABORTING (1<<22) 1043#define STATUS_SCAN_ABORTING (1<<22)
@@ -1292,6 +1293,8 @@ struct ipw_priv {
1292 struct iw_public_data wireless_data; 1293 struct iw_public_data wireless_data;
1293 1294
1294 int user_requested_scan; 1295 int user_requested_scan;
1296 u8 direct_scan_ssid[IW_ESSID_MAX_SIZE];
1297 u8 direct_scan_ssid_len;
1295 1298
1296 struct workqueue_struct *workqueue; 1299 struct workqueue_struct *workqueue;
1297 1300
@@ -1301,8 +1304,9 @@ struct ipw_priv {
1301 struct work_struct system_config; 1304 struct work_struct system_config;
1302 struct work_struct rx_replenish; 1305 struct work_struct rx_replenish;
1303 struct delayed_work request_scan; 1306 struct delayed_work request_scan;
1307 struct delayed_work request_direct_scan;
1308 struct delayed_work request_passive_scan;
1304 struct delayed_work scan_event; 1309 struct delayed_work scan_event;
1305 struct work_struct request_passive_scan;
1306 struct work_struct adapter_restart; 1310 struct work_struct adapter_restart;
1307 struct delayed_work rf_kill; 1311 struct delayed_work rf_kill;
1308 struct work_struct up; 1312 struct work_struct up;
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-led.c b/drivers/net/wireless/iwlwifi/iwl-3945-led.c
index d200d08fb086..8b1528e52d43 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-led.c
@@ -229,14 +229,15 @@ static int iwl3945_led_register_led(struct iwl3945_priv *priv,
229 led->led_dev.brightness_set = iwl3945_led_brightness_set; 229 led->led_dev.brightness_set = iwl3945_led_brightness_set;
230 led->led_dev.default_trigger = trigger; 230 led->led_dev.default_trigger = trigger;
231 231
232 led->priv = priv;
233 led->type = type;
234
232 ret = led_classdev_register(device, &led->led_dev); 235 ret = led_classdev_register(device, &led->led_dev);
233 if (ret) { 236 if (ret) {
234 IWL_ERROR("Error: failed to register led handler.\n"); 237 IWL_ERROR("Error: failed to register led handler.\n");
235 return ret; 238 return ret;
236 } 239 }
237 240
238 led->priv = priv;
239 led->type = type;
240 led->registered = 1; 241 led->registered = 1;
241 242
242 if (set_led && led->led_on) 243 if (set_led && led->led_on)
diff --git a/drivers/net/wireless/libertas/cmd.c b/drivers/net/wireless/libertas/cmd.c
index 6328b9593877..8124fd9b1353 100644
--- a/drivers/net/wireless/libertas/cmd.c
+++ b/drivers/net/wireless/libertas/cmd.c
@@ -1842,6 +1842,9 @@ static void lbs_send_confirmsleep(struct lbs_private *priv)
1842 1842
1843 spin_lock_irqsave(&priv->driver_lock, flags); 1843 spin_lock_irqsave(&priv->driver_lock, flags);
1844 1844
1845 /* We don't get a response on the sleep-confirmation */
1846 priv->dnld_sent = DNLD_RES_RECEIVED;
1847
1845 /* If nothing to do, go back to sleep (?) */ 1848 /* If nothing to do, go back to sleep (?) */
1846 if (!__kfifo_len(priv->event_fifo) && !priv->resp_len[priv->resp_idx]) 1849 if (!__kfifo_len(priv->event_fifo) && !priv->resp_len[priv->resp_idx])
1847 priv->psstate = PS_STATE_SLEEP; 1850 priv->psstate = PS_STATE_SLEEP;
@@ -1904,12 +1907,12 @@ void lbs_ps_confirm_sleep(struct lbs_private *priv)
1904 1907
1905 lbs_deb_enter(LBS_DEB_HOST); 1908 lbs_deb_enter(LBS_DEB_HOST);
1906 1909
1910 spin_lock_irqsave(&priv->driver_lock, flags);
1907 if (priv->dnld_sent) { 1911 if (priv->dnld_sent) {
1908 allowed = 0; 1912 allowed = 0;
1909 lbs_deb_host("dnld_sent was set\n"); 1913 lbs_deb_host("dnld_sent was set\n");
1910 } 1914 }
1911 1915
1912 spin_lock_irqsave(&priv->driver_lock, flags);
1913 /* In-progress command? */ 1916 /* In-progress command? */
1914 if (priv->cur_cmd) { 1917 if (priv->cur_cmd) {
1915 allowed = 0; 1918 allowed = 0;
diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
index e1f066068590..acfc4bfcc262 100644
--- a/drivers/net/wireless/libertas/main.c
+++ b/drivers/net/wireless/libertas/main.c
@@ -732,8 +732,8 @@ static int lbs_thread(void *data)
732 lbs_deb_thread("4: currenttxskb %p, dnld_sent %d\n", 732 lbs_deb_thread("4: currenttxskb %p, dnld_sent %d\n",
733 priv->currenttxskb, priv->dnld_sent); 733 priv->currenttxskb, priv->dnld_sent);
734 734
735 spin_lock_irq(&priv->driver_lock);
736 /* Process any pending command response */ 735 /* Process any pending command response */
736 spin_lock_irq(&priv->driver_lock);
737 resp_idx = priv->resp_idx; 737 resp_idx = priv->resp_idx;
738 if (priv->resp_len[resp_idx]) { 738 if (priv->resp_len[resp_idx]) {
739 spin_unlock_irq(&priv->driver_lock); 739 spin_unlock_irq(&priv->driver_lock);
diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig
index ab1029e79884..2d611876bbe0 100644
--- a/drivers/net/wireless/rt2x00/Kconfig
+++ b/drivers/net/wireless/rt2x00/Kconfig
@@ -32,12 +32,13 @@ config RT2X00_LIB_FIRMWARE
32config RT2X00_LIB_RFKILL 32config RT2X00_LIB_RFKILL
33 boolean 33 boolean
34 depends on RT2X00_LIB 34 depends on RT2X00_LIB
35 depends on INPUT
35 select RFKILL 36 select RFKILL
36 select INPUT_POLLDEV 37 select INPUT_POLLDEV
37 38
38config RT2X00_LIB_LEDS 39config RT2X00_LIB_LEDS
39 boolean 40 boolean
40 depends on RT2X00_LIB 41 depends on RT2X00_LIB && NEW_LEDS
41 42
42config RT2400PCI 43config RT2400PCI
43 tristate "Ralink rt2400 pci/pcmcia support" 44 tristate "Ralink rt2400 pci/pcmcia support"
@@ -51,7 +52,7 @@ config RT2400PCI
51 52
52config RT2400PCI_RFKILL 53config RT2400PCI_RFKILL
53 bool "RT2400 rfkill support" 54 bool "RT2400 rfkill support"
54 depends on RT2400PCI 55 depends on RT2400PCI && INPUT
55 select RT2X00_LIB_RFKILL 56 select RT2X00_LIB_RFKILL
56 ---help--- 57 ---help---
57 This adds support for integrated rt2400 devices that feature a 58 This adds support for integrated rt2400 devices that feature a
@@ -60,7 +61,7 @@ config RT2400PCI_RFKILL
60 61
61config RT2400PCI_LEDS 62config RT2400PCI_LEDS
62 bool "RT2400 leds support" 63 bool "RT2400 leds support"
63 depends on RT2400PCI 64 depends on RT2400PCI && NEW_LEDS
64 select LEDS_CLASS 65 select LEDS_CLASS
65 select RT2X00_LIB_LEDS 66 select RT2X00_LIB_LEDS
66 ---help--- 67 ---help---
@@ -78,7 +79,7 @@ config RT2500PCI
78 79
79config RT2500PCI_RFKILL 80config RT2500PCI_RFKILL
80 bool "RT2500 rfkill support" 81 bool "RT2500 rfkill support"
81 depends on RT2500PCI 82 depends on RT2500PCI && INPUT
82 select RT2X00_LIB_RFKILL 83 select RT2X00_LIB_RFKILL
83 ---help--- 84 ---help---
84 This adds support for integrated rt2500 devices that feature a 85 This adds support for integrated rt2500 devices that feature a
@@ -87,7 +88,7 @@ config RT2500PCI_RFKILL
87 88
88config RT2500PCI_LEDS 89config RT2500PCI_LEDS
89 bool "RT2500 leds support" 90 bool "RT2500 leds support"
90 depends on RT2500PCI 91 depends on RT2500PCI && NEW_LEDS
91 select LEDS_CLASS 92 select LEDS_CLASS
92 select RT2X00_LIB_LEDS 93 select RT2X00_LIB_LEDS
93 ---help--- 94 ---help---
@@ -107,7 +108,7 @@ config RT61PCI
107 108
108config RT61PCI_RFKILL 109config RT61PCI_RFKILL
109 bool "RT61 rfkill support" 110 bool "RT61 rfkill support"
110 depends on RT61PCI 111 depends on RT61PCI && INPUT
111 select RT2X00_LIB_RFKILL 112 select RT2X00_LIB_RFKILL
112 ---help--- 113 ---help---
113 This adds support for integrated rt61 devices that feature a 114 This adds support for integrated rt61 devices that feature a
@@ -116,7 +117,7 @@ config RT61PCI_RFKILL
116 117
117config RT61PCI_LEDS 118config RT61PCI_LEDS
118 bool "RT61 leds support" 119 bool "RT61 leds support"
119 depends on RT61PCI 120 depends on RT61PCI && NEW_LEDS
120 select LEDS_CLASS 121 select LEDS_CLASS
121 select RT2X00_LIB_LEDS 122 select RT2X00_LIB_LEDS
122 ---help--- 123 ---help---
@@ -133,7 +134,7 @@ config RT2500USB
133 134
134config RT2500USB_LEDS 135config RT2500USB_LEDS
135 bool "RT2500 leds support" 136 bool "RT2500 leds support"
136 depends on RT2500USB 137 depends on RT2500USB && NEW_LEDS
137 select LEDS_CLASS 138 select LEDS_CLASS
138 select RT2X00_LIB_LEDS 139 select RT2X00_LIB_LEDS
139 ---help--- 140 ---help---
@@ -152,7 +153,7 @@ config RT73USB
152 153
153config RT73USB_LEDS 154config RT73USB_LEDS
154 bool "RT73 leds support" 155 bool "RT73 leds support"
155 depends on RT73USB 156 depends on RT73USB && NEW_LEDS
156 select LEDS_CLASS 157 select LEDS_CLASS
157 select RT2X00_LIB_LEDS 158 select RT2X00_LIB_LEDS
158 ---help--- 159 ---help---
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c
index 971af2546b59..60893de3bf8f 100644
--- a/drivers/net/wireless/rt2x00/rt2x00pci.c
+++ b/drivers/net/wireless/rt2x00/rt2x00pci.c
@@ -412,8 +412,7 @@ int rt2x00pci_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
412 if (pci_set_mwi(pci_dev)) 412 if (pci_set_mwi(pci_dev))
413 ERROR_PROBE("MWI not available.\n"); 413 ERROR_PROBE("MWI not available.\n");
414 414
415 if (pci_set_dma_mask(pci_dev, DMA_64BIT_MASK) && 415 if (pci_set_dma_mask(pci_dev, DMA_32BIT_MASK)) {
416 pci_set_dma_mask(pci_dev, DMA_32BIT_MASK)) {
417 ERROR_PROBE("PCI DMA not supported.\n"); 416 ERROR_PROBE("PCI DMA not supported.\n");
418 retval = -EIO; 417 retval = -EIO;
419 goto exit_disable_device; 418 goto exit_disable_device;
diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c
index 5a331674dcb2..e5ceae805b57 100644
--- a/drivers/net/wireless/rt2x00/rt2x00usb.c
+++ b/drivers/net/wireless/rt2x00/rt2x00usb.c
@@ -362,6 +362,12 @@ void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev)
362 } 362 }
363 } 363 }
364 364
365 /*
366 * Kill guardian urb (if required by driver).
367 */
368 if (!test_bit(DRIVER_REQUIRE_BEACON_GUARD, &rt2x00dev->flags))
369 return;
370
365 for (i = 0; i < rt2x00dev->bcn->limit; i++) { 371 for (i = 0; i < rt2x00dev->bcn->limit; i++) {
366 priv_bcn = rt2x00dev->bcn->entries[i].priv_data; 372 priv_bcn = rt2x00dev->bcn->entries[i].priv_data;
367 usb_kill_urb(priv_bcn->urb); 373 usb_kill_urb(priv_bcn->urb);
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index da19a3a91f4d..fff8386e816b 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -2131,6 +2131,7 @@ static struct usb_device_id rt73usb_device_table[] = {
2131 /* D-Link */ 2131 /* D-Link */
2132 { USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) }, 2132 { USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) },
2133 { USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) }, 2133 { USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) },
2134 { USB_DEVICE(0x07d1, 0x3c06), USB_DEVICE_DATA(&rt73usb_ops) },
2134 { USB_DEVICE(0x07d1, 0x3c07), USB_DEVICE_DATA(&rt73usb_ops) }, 2135 { USB_DEVICE(0x07d1, 0x3c07), USB_DEVICE_DATA(&rt73usb_ops) },
2135 /* Gemtek */ 2136 /* Gemtek */
2136 { USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) }, 2137 { USB_DEVICE(0x15a9, 0x0004), USB_DEVICE_DATA(&rt73usb_ops) },
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index 6424e5a2c83d..418606ac1c3b 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -719,7 +719,7 @@ int zd_mac_rx(struct ieee80211_hw *hw, const u8 *buffer, unsigned int length)
719 fc = le16_to_cpu(*((__le16 *) buffer)); 719 fc = le16_to_cpu(*((__le16 *) buffer));
720 720
721 is_qos = ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) && 721 is_qos = ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) &&
722 ((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_QOS_DATA); 722 (fc & IEEE80211_STYPE_QOS_DATA);
723 is_4addr = (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) == 723 is_4addr = (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) ==
724 (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS); 724 (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS);
725 need_padding = is_qos ^ is_4addr; 725 need_padding = is_qos ^ is_4addr;
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 72cf61ed8f96..e1637bd82b8e 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -181,7 +181,7 @@ static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev,
181 any need to change it. */ 181 any need to change it. */
182 struct mempolicy *oldpol; 182 struct mempolicy *oldpol;
183 cpumask_t oldmask = current->cpus_allowed; 183 cpumask_t oldmask = current->cpus_allowed;
184 int node = pcibus_to_node(dev->bus); 184 int node = dev_to_node(&dev->dev);
185 185
186 if (node >= 0) { 186 if (node >= 0) {
187 node_to_cpumask_ptr(nodecpumask, node); 187 node_to_cpumask_ptr(nodecpumask, node);
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 271d41cc05ab..6f3c7446c329 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -489,13 +489,13 @@ pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr,
489 * @kobj: kobject for mapping 489 * @kobj: kobject for mapping
490 * @attr: struct bin_attribute for the file being mapped 490 * @attr: struct bin_attribute for the file being mapped
491 * @vma: struct vm_area_struct passed into the mmap 491 * @vma: struct vm_area_struct passed into the mmap
492 * @write_combine: 1 for write_combine mapping
492 * 493 *
493 * Use the regular PCI mapping routines to map a PCI resource into userspace. 494 * Use the regular PCI mapping routines to map a PCI resource into userspace.
494 * FIXME: write combining? maybe automatic for prefetchable regions?
495 */ 495 */
496static int 496static int
497pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, 497pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
498 struct vm_area_struct *vma) 498 struct vm_area_struct *vma, int write_combine)
499{ 499{
500 struct pci_dev *pdev = to_pci_dev(container_of(kobj, 500 struct pci_dev *pdev = to_pci_dev(container_of(kobj,
501 struct device, kobj)); 501 struct device, kobj));
@@ -518,7 +518,21 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
518 vma->vm_pgoff += start >> PAGE_SHIFT; 518 vma->vm_pgoff += start >> PAGE_SHIFT;
519 mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io; 519 mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io;
520 520
521 return pci_mmap_page_range(pdev, vma, mmap_type, 0); 521 return pci_mmap_page_range(pdev, vma, mmap_type, write_combine);
522}
523
524static int
525pci_mmap_resource_uc(struct kobject *kobj, struct bin_attribute *attr,
526 struct vm_area_struct *vma)
527{
528 return pci_mmap_resource(kobj, attr, vma, 0);
529}
530
531static int
532pci_mmap_resource_wc(struct kobject *kobj, struct bin_attribute *attr,
533 struct vm_area_struct *vma)
534{
535 return pci_mmap_resource(kobj, attr, vma, 1);
522} 536}
523 537
524/** 538/**
@@ -541,9 +555,46 @@ pci_remove_resource_files(struct pci_dev *pdev)
541 sysfs_remove_bin_file(&pdev->dev.kobj, res_attr); 555 sysfs_remove_bin_file(&pdev->dev.kobj, res_attr);
542 kfree(res_attr); 556 kfree(res_attr);
543 } 557 }
558
559 res_attr = pdev->res_attr_wc[i];
560 if (res_attr) {
561 sysfs_remove_bin_file(&pdev->dev.kobj, res_attr);
562 kfree(res_attr);
563 }
544 } 564 }
545} 565}
546 566
567static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
568{
569 /* allocate attribute structure, piggyback attribute name */
570 int name_len = write_combine ? 13 : 10;
571 struct bin_attribute *res_attr;
572 int retval;
573
574 res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
575 if (res_attr) {
576 char *res_attr_name = (char *)(res_attr + 1);
577
578 if (write_combine) {
579 pdev->res_attr_wc[num] = res_attr;
580 sprintf(res_attr_name, "resource%d_wc", num);
581 res_attr->mmap = pci_mmap_resource_wc;
582 } else {
583 pdev->res_attr[num] = res_attr;
584 sprintf(res_attr_name, "resource%d", num);
585 res_attr->mmap = pci_mmap_resource_uc;
586 }
587 res_attr->attr.name = res_attr_name;
588 res_attr->attr.mode = S_IRUSR | S_IWUSR;
589 res_attr->size = pci_resource_len(pdev, num);
590 res_attr->private = &pdev->resource[num];
591 retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr);
592 } else
593 retval = -ENOMEM;
594
595 return retval;
596}
597
547/** 598/**
548 * pci_create_resource_files - create resource files in sysfs for @dev 599 * pci_create_resource_files - create resource files in sysfs for @dev
549 * @dev: dev in question 600 * @dev: dev in question
@@ -557,31 +608,19 @@ static int pci_create_resource_files(struct pci_dev *pdev)
557 608
558 /* Expose the PCI resources from this device as files */ 609 /* Expose the PCI resources from this device as files */
559 for (i = 0; i < PCI_ROM_RESOURCE; i++) { 610 for (i = 0; i < PCI_ROM_RESOURCE; i++) {
560 struct bin_attribute *res_attr;
561 611
562 /* skip empty resources */ 612 /* skip empty resources */
563 if (!pci_resource_len(pdev, i)) 613 if (!pci_resource_len(pdev, i))
564 continue; 614 continue;
565 615
566 /* allocate attribute structure, piggyback attribute name */ 616 retval = pci_create_attr(pdev, i, 0);
567 res_attr = kzalloc(sizeof(*res_attr) + 10, GFP_ATOMIC); 617 /* for prefetchable resources, create a WC mappable file */
568 if (res_attr) { 618 if (!retval && pdev->resource[i].flags & IORESOURCE_PREFETCH)
569 char *res_attr_name = (char *)(res_attr + 1); 619 retval = pci_create_attr(pdev, i, 1);
570 620
571 pdev->res_attr[i] = res_attr; 621 if (retval) {
572 sprintf(res_attr_name, "resource%d", i); 622 pci_remove_resource_files(pdev);
573 res_attr->attr.name = res_attr_name; 623 return retval;
574 res_attr->attr.mode = S_IRUSR | S_IWUSR;
575 res_attr->size = pci_resource_len(pdev, i);
576 res_attr->mmap = pci_mmap_resource;
577 res_attr->private = &pdev->resource[i];
578 retval = sysfs_create_bin_file(&pdev->dev.kobj, res_attr);
579 if (retval) {
580 pci_remove_resource_files(pdev);
581 return retval;
582 }
583 } else {
584 return -ENOMEM;
585 } 624 }
586 } 625 }
587 return 0; 626 return 0;
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
index 0201c8adfda7..46c791adb894 100644
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -50,15 +50,17 @@ static int irq_flags(int triggering, int polarity, int shareable)
50 flags = IORESOURCE_IRQ_HIGHEDGE; 50 flags = IORESOURCE_IRQ_HIGHEDGE;
51 } 51 }
52 52
53 if (shareable) 53 if (shareable == ACPI_SHARED)
54 flags |= IORESOURCE_IRQ_SHAREABLE; 54 flags |= IORESOURCE_IRQ_SHAREABLE;
55 55
56 return flags; 56 return flags;
57} 57}
58 58
59static void decode_irq_flags(int flag, int *triggering, int *polarity) 59static void decode_irq_flags(struct pnp_dev *dev, int flags, int *triggering,
60 int *polarity, int *shareable)
60{ 61{
61 switch (flag) { 62 switch (flags & (IORESOURCE_IRQ_LOWLEVEL | IORESOURCE_IRQ_HIGHLEVEL |
63 IORESOURCE_IRQ_LOWEDGE | IORESOURCE_IRQ_HIGHEDGE)) {
62 case IORESOURCE_IRQ_LOWLEVEL: 64 case IORESOURCE_IRQ_LOWLEVEL:
63 *triggering = ACPI_LEVEL_SENSITIVE; 65 *triggering = ACPI_LEVEL_SENSITIVE;
64 *polarity = ACPI_ACTIVE_LOW; 66 *polarity = ACPI_ACTIVE_LOW;
@@ -75,7 +77,18 @@ static void decode_irq_flags(int flag, int *triggering, int *polarity)
75 *triggering = ACPI_EDGE_SENSITIVE; 77 *triggering = ACPI_EDGE_SENSITIVE;
76 *polarity = ACPI_ACTIVE_HIGH; 78 *polarity = ACPI_ACTIVE_HIGH;
77 break; 79 break;
80 default:
81 dev_err(&dev->dev, "can't encode invalid IRQ mode %#x\n",
82 flags);
83 *triggering = ACPI_EDGE_SENSITIVE;
84 *polarity = ACPI_ACTIVE_HIGH;
85 break;
78 } 86 }
87
88 if (flags & IORESOURCE_IRQ_SHAREABLE)
89 *shareable = ACPI_SHARED;
90 else
91 *shareable = ACPI_EXCLUSIVE;
79} 92}
80 93
81static void pnpacpi_parse_allocated_irqresource(struct pnp_dev *dev, 94static void pnpacpi_parse_allocated_irqresource(struct pnp_dev *dev,
@@ -742,6 +755,9 @@ static acpi_status pnpacpi_type_resources(struct acpi_resource *res, void *data)
742 if (pnpacpi_supported_resource(res)) { 755 if (pnpacpi_supported_resource(res)) {
743 (*resource)->type = res->type; 756 (*resource)->type = res->type;
744 (*resource)->length = sizeof(struct acpi_resource); 757 (*resource)->length = sizeof(struct acpi_resource);
758 if (res->type == ACPI_RESOURCE_TYPE_IRQ)
759 (*resource)->data.irq.descriptor_length =
760 res->data.irq.descriptor_length;
745 (*resource)++; 761 (*resource)++;
746 } 762 }
747 763
@@ -788,22 +804,21 @@ static void pnpacpi_encode_irq(struct pnp_dev *dev,
788 struct resource *p) 804 struct resource *p)
789{ 805{
790 struct acpi_resource_irq *irq = &resource->data.irq; 806 struct acpi_resource_irq *irq = &resource->data.irq;
791 int triggering, polarity; 807 int triggering, polarity, shareable;
792 808
793 decode_irq_flags(p->flags & IORESOURCE_BITS, &triggering, &polarity); 809 decode_irq_flags(dev, p->flags, &triggering, &polarity, &shareable);
794 irq->triggering = triggering; 810 irq->triggering = triggering;
795 irq->polarity = polarity; 811 irq->polarity = polarity;
796 if (triggering == ACPI_EDGE_SENSITIVE) 812 irq->sharable = shareable;
797 irq->sharable = ACPI_EXCLUSIVE;
798 else
799 irq->sharable = ACPI_SHARED;
800 irq->interrupt_count = 1; 813 irq->interrupt_count = 1;
801 irq->interrupts[0] = p->start; 814 irq->interrupts[0] = p->start;
802 815
803 dev_dbg(&dev->dev, " encode irq %d %s %s %s\n", (int) p->start, 816 dev_dbg(&dev->dev, " encode irq %d %s %s %s (%d-byte descriptor)\n",
817 (int) p->start,
804 triggering == ACPI_LEVEL_SENSITIVE ? "level" : "edge", 818 triggering == ACPI_LEVEL_SENSITIVE ? "level" : "edge",
805 polarity == ACPI_ACTIVE_LOW ? "low" : "high", 819 polarity == ACPI_ACTIVE_LOW ? "low" : "high",
806 irq->sharable == ACPI_SHARED ? "shared" : "exclusive"); 820 irq->sharable == ACPI_SHARED ? "shared" : "exclusive",
821 irq->descriptor_length);
807} 822}
808 823
809static void pnpacpi_encode_ext_irq(struct pnp_dev *dev, 824static void pnpacpi_encode_ext_irq(struct pnp_dev *dev,
@@ -811,16 +826,13 @@ static void pnpacpi_encode_ext_irq(struct pnp_dev *dev,
811 struct resource *p) 826 struct resource *p)
812{ 827{
813 struct acpi_resource_extended_irq *extended_irq = &resource->data.extended_irq; 828 struct acpi_resource_extended_irq *extended_irq = &resource->data.extended_irq;
814 int triggering, polarity; 829 int triggering, polarity, shareable;
815 830
816 decode_irq_flags(p->flags & IORESOURCE_BITS, &triggering, &polarity); 831 decode_irq_flags(dev, p->flags, &triggering, &polarity, &shareable);
817 extended_irq->producer_consumer = ACPI_CONSUMER; 832 extended_irq->producer_consumer = ACPI_CONSUMER;
818 extended_irq->triggering = triggering; 833 extended_irq->triggering = triggering;
819 extended_irq->polarity = polarity; 834 extended_irq->polarity = polarity;
820 if (triggering == ACPI_EDGE_SENSITIVE) 835 extended_irq->sharable = shareable;
821 extended_irq->sharable = ACPI_EXCLUSIVE;
822 else
823 extended_irq->sharable = ACPI_SHARED;
824 extended_irq->interrupt_count = 1; 836 extended_irq->interrupt_count = 1;
825 extended_irq->interrupts[0] = p->start; 837 extended_irq->interrupts[0] = p->start;
826 838
diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
index c444d6b10c58..49215da5249b 100644
--- a/drivers/power/power_supply_sysfs.c
+++ b/drivers/power/power_supply_sysfs.c
@@ -201,7 +201,7 @@ int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env)
201 201
202 dev_dbg(dev, "uevent\n"); 202 dev_dbg(dev, "uevent\n");
203 203
204 if (!psy) { 204 if (!psy || !psy->dev) {
205 dev_dbg(dev, "No power supply yet\n"); 205 dev_dbg(dev, "No power supply yet\n");
206 return ret; 206 return ret;
207 } 207 }
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 60f8afc7a56e..4949dc4859be 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -256,6 +256,17 @@ config RTC_DRV_S35390A
256 This driver can also be built as a module. If so the module 256 This driver can also be built as a module. If so the module
257 will be called rtc-s35390a. 257 will be called rtc-s35390a.
258 258
259config RTC_DRV_FM3130
260 tristate "Ramtron FM3130"
261 help
262 If you say Y here you will get support for the
263 Ramtron FM3130 RTC chips.
264 Ramtron FM3130 is a chip with two separate devices inside,
265 RTC clock and FRAM. This driver provides only RTC functionality.
266
267 This driver can also be built as a module. If so the module
268 will be called rtc-fm3130.
269
259endif # I2C 270endif # I2C
260 271
261comment "SPI RTC drivers" 272comment "SPI RTC drivers"
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index ebe871cf16c1..b6e14d51670b 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -31,6 +31,7 @@ obj-$(CONFIG_RTC_DRV_DS1553) += rtc-ds1553.o
31obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o 31obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o
32obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds1742.o 32obj-$(CONFIG_RTC_DRV_DS1742) += rtc-ds1742.o
33obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o 33obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o
34obj-$(CONFIG_RTC_DRV_FM3130) += rtc-fm3130.o
34obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o 35obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o
35obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o 36obj-$(CONFIG_RTC_DRV_M41T80) += rtc-m41t80.o
36obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o 37obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o
@@ -41,6 +42,7 @@ obj-$(CONFIG_RTC_DRV_OMAP) += rtc-omap.o
41obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o 42obj-$(CONFIG_RTC_DRV_PCF8563) += rtc-pcf8563.o
42obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o 43obj-$(CONFIG_RTC_DRV_PCF8583) += rtc-pcf8583.o
43obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o 44obj-$(CONFIG_RTC_DRV_PL031) += rtc-pl031.o
45obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o
44obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o 46obj-$(CONFIG_RTC_DRV_R9701) += rtc-r9701.o
45obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o 47obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o
46obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o 48obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o
@@ -54,4 +56,3 @@ obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o
54obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o 56obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o
55obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o 57obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o
56obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o 58obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o
57obj-$(CONFIG_RTC_DRV_PPC) += rtc-ppc.o
diff --git a/drivers/rtc/rtc-at32ap700x.c b/drivers/rtc/rtc-at32ap700x.c
index 42244f14b41c..2ef8cdfda4a7 100644
--- a/drivers/rtc/rtc-at32ap700x.c
+++ b/drivers/rtc/rtc-at32ap700x.c
@@ -94,8 +94,11 @@ static int at32_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
94{ 94{
95 struct rtc_at32ap700x *rtc = dev_get_drvdata(dev); 95 struct rtc_at32ap700x *rtc = dev_get_drvdata(dev);
96 96
97 spin_lock_irq(&rtc->lock);
97 rtc_time_to_tm(rtc->alarm_time, &alrm->time); 98 rtc_time_to_tm(rtc->alarm_time, &alrm->time);
98 alrm->pending = rtc_readl(rtc, IMR) & RTC_BIT(IMR_TOPI) ? 1 : 0; 99 alrm->enabled = rtc_readl(rtc, IMR) & RTC_BIT(IMR_TOPI) ? 1 : 0;
100 alrm->pending = rtc_readl(rtc, ISR) & RTC_BIT(ISR_TOPI) ? 1 : 0;
101 spin_unlock_irq(&rtc->lock);
99 102
100 return 0; 103 return 0;
101} 104}
@@ -119,7 +122,7 @@ static int at32_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
119 spin_lock_irq(&rtc->lock); 122 spin_lock_irq(&rtc->lock);
120 rtc->alarm_time = alarm_unix_time; 123 rtc->alarm_time = alarm_unix_time;
121 rtc_writel(rtc, TOP, rtc->alarm_time); 124 rtc_writel(rtc, TOP, rtc->alarm_time);
122 if (alrm->pending) 125 if (alrm->enabled)
123 rtc_writel(rtc, CTRL, rtc_readl(rtc, CTRL) 126 rtc_writel(rtc, CTRL, rtc_readl(rtc, CTRL)
124 | RTC_BIT(CTRL_TOPEN)); 127 | RTC_BIT(CTRL_TOPEN));
125 else 128 else
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index d060a06ce05b..d7bb9bac71df 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -905,19 +905,7 @@ static struct pnp_driver cmos_pnp_driver = {
905 .resume = cmos_pnp_resume, 905 .resume = cmos_pnp_resume,
906}; 906};
907 907
908static int __init cmos_init(void) 908#endif /* CONFIG_PNP */
909{
910 return pnp_register_driver(&cmos_pnp_driver);
911}
912module_init(cmos_init);
913
914static void __exit cmos_exit(void)
915{
916 pnp_unregister_driver(&cmos_pnp_driver);
917}
918module_exit(cmos_exit);
919
920#else /* no PNP */
921 909
922/*----------------------------------------------------------------*/ 910/*----------------------------------------------------------------*/
923 911
@@ -958,20 +946,33 @@ static struct platform_driver cmos_platform_driver = {
958 946
959static int __init cmos_init(void) 947static int __init cmos_init(void)
960{ 948{
949#ifdef CONFIG_PNP
950 if (pnp_platform_devices)
951 return pnp_register_driver(&cmos_pnp_driver);
952 else
953 return platform_driver_probe(&cmos_platform_driver,
954 cmos_platform_probe);
955#else
961 return platform_driver_probe(&cmos_platform_driver, 956 return platform_driver_probe(&cmos_platform_driver,
962 cmos_platform_probe); 957 cmos_platform_probe);
958#endif /* CONFIG_PNP */
963} 959}
964module_init(cmos_init); 960module_init(cmos_init);
965 961
966static void __exit cmos_exit(void) 962static void __exit cmos_exit(void)
967{ 963{
964#ifdef CONFIG_PNP
965 if (pnp_platform_devices)
966 pnp_unregister_driver(&cmos_pnp_driver);
967 else
968 platform_driver_unregister(&cmos_platform_driver);
969#else
968 platform_driver_unregister(&cmos_platform_driver); 970 platform_driver_unregister(&cmos_platform_driver);
971#endif /* CONFIG_PNP */
969} 972}
970module_exit(cmos_exit); 973module_exit(cmos_exit);
971 974
972 975
973#endif /* !PNP */
974
975MODULE_AUTHOR("David Brownell"); 976MODULE_AUTHOR("David Brownell");
976MODULE_DESCRIPTION("Driver for PC-style 'CMOS' RTCs"); 977MODULE_DESCRIPTION("Driver for PC-style 'CMOS' RTCs");
977MODULE_LICENSE("GPL"); 978MODULE_LICENSE("GPL");
diff --git a/drivers/rtc/rtc-fm3130.c b/drivers/rtc/rtc-fm3130.c
new file mode 100644
index 000000000000..11644c8fca82
--- /dev/null
+++ b/drivers/rtc/rtc-fm3130.c
@@ -0,0 +1,501 @@
1/*
2 * rtc-fm3130.c - RTC driver for Ramtron FM3130 I2C chip.
3 *
4 * Copyright (C) 2008 Sergey Lapin
5 * Based on ds1307 driver by James Chapman and David Brownell
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 version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/module.h>
13#include <linux/i2c.h>
14#include <linux/rtc.h>
15#include <linux/bcd.h>
16
17#define FM3130_RTC_CONTROL (0x0)
18#define FM3130_CAL_CONTROL (0x1)
19#define FM3130_RTC_SECONDS (0x2)
20#define FM3130_RTC_MINUTES (0x3)
21#define FM3130_RTC_HOURS (0x4)
22#define FM3130_RTC_DAY (0x5)
23#define FM3130_RTC_DATE (0x6)
24#define FM3130_RTC_MONTHS (0x7)
25#define FM3130_RTC_YEARS (0x8)
26
27#define FM3130_ALARM_SECONDS (0x9)
28#define FM3130_ALARM_MINUTES (0xa)
29#define FM3130_ALARM_HOURS (0xb)
30#define FM3130_ALARM_DATE (0xc)
31#define FM3130_ALARM_MONTHS (0xd)
32#define FM3130_ALARM_WP_CONTROL (0xe)
33
34#define FM3130_CAL_CONTROL_BIT_nOSCEN (1 << 7) /* Osciallator enabled */
35#define FM3130_RTC_CONTROL_BIT_LB (1 << 7) /* Low battery */
36#define FM3130_RTC_CONTROL_BIT_AF (1 << 6) /* Alarm flag */
37#define FM3130_RTC_CONTROL_BIT_CF (1 << 5) /* Century overflow */
38#define FM3130_RTC_CONTROL_BIT_POR (1 << 4) /* Power on reset */
39#define FM3130_RTC_CONTROL_BIT_AEN (1 << 3) /* Alarm enable */
40#define FM3130_RTC_CONTROL_BIT_CAL (1 << 2) /* Calibration mode */
41#define FM3130_RTC_CONTROL_BIT_WRITE (1 << 1) /* W=1 -> write mode W=0 normal */
42#define FM3130_RTC_CONTROL_BIT_READ (1 << 0) /* R=1 -> read mode R=0 normal */
43
44#define FM3130_CLOCK_REGS 7
45#define FM3130_ALARM_REGS 5
46
47struct fm3130 {
48 u8 reg_addr_time;
49 u8 reg_addr_alarm;
50 u8 regs[15];
51 struct i2c_msg msg[4];
52 struct i2c_client *client;
53 struct rtc_device *rtc;
54 int data_valid;
55 int alarm;
56};
57static const struct i2c_device_id fm3130_id[] = {
58 { "fm3130-rtc", 0 },
59 { }
60};
61MODULE_DEVICE_TABLE(i2c, fm3130_id);
62
63#define FM3130_MODE_NORMAL 0
64#define FM3130_MODE_WRITE 1
65#define FM3130_MODE_READ 2
66
67static void fm3130_rtc_mode(struct device *dev, int mode)
68{
69 struct fm3130 *fm3130 = dev_get_drvdata(dev);
70
71 fm3130->regs[FM3130_RTC_CONTROL] =
72 i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL);
73 switch (mode) {
74 case FM3130_MODE_NORMAL:
75 fm3130->regs[FM3130_RTC_CONTROL] &=
76 ~(FM3130_RTC_CONTROL_BIT_WRITE |
77 FM3130_RTC_CONTROL_BIT_READ);
78 break;
79 case FM3130_MODE_WRITE:
80 fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_WRITE;
81 break;
82 case FM3130_MODE_READ:
83 fm3130->regs[FM3130_RTC_CONTROL] |= FM3130_RTC_CONTROL_BIT_READ;
84 break;
85 default:
86 dev_dbg(dev, "invalid mode %d\n", mode);
87 break;
88 }
89 /* Checking for alarm */
90 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) {
91 fm3130->alarm = 1;
92 fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF;
93 }
94 i2c_smbus_write_byte_data(fm3130->client,
95 FM3130_RTC_CONTROL, fm3130->regs[FM3130_RTC_CONTROL]);
96}
97
98static int fm3130_get_time(struct device *dev, struct rtc_time *t)
99{
100 struct fm3130 *fm3130 = dev_get_drvdata(dev);
101 int tmp;
102
103 if (!fm3130->data_valid) {
104 /* We have invalid data in RTC, probably due
105 to battery faults or other problems. Return EIO
106 for now, it will allow us to set data later insted
107 of error during probing which disables device */
108 return -EIO;
109 }
110 fm3130_rtc_mode(dev, FM3130_MODE_READ);
111
112 /* read the RTC date and time registers all at once */
113 tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent),
114 fm3130->msg, 2);
115 if (tmp != 2) {
116 dev_err(dev, "%s error %d\n", "read", tmp);
117 return -EIO;
118 }
119
120 fm3130_rtc_mode(dev, FM3130_MODE_NORMAL);
121
122 dev_dbg(dev, "%s: %02x %02x %02x %02x %02x %02x %02x %02x"
123 "%02x %02x %02x %02x %02x %02x %02x\n",
124 "read",
125 fm3130->regs[0], fm3130->regs[1],
126 fm3130->regs[2], fm3130->regs[3],
127 fm3130->regs[4], fm3130->regs[5],
128 fm3130->regs[6], fm3130->regs[7],
129 fm3130->regs[8], fm3130->regs[9],
130 fm3130->regs[0xa], fm3130->regs[0xb],
131 fm3130->regs[0xc], fm3130->regs[0xd],
132 fm3130->regs[0xe]);
133
134 t->tm_sec = BCD2BIN(fm3130->regs[FM3130_RTC_SECONDS] & 0x7f);
135 t->tm_min = BCD2BIN(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f);
136 tmp = fm3130->regs[FM3130_RTC_HOURS] & 0x3f;
137 t->tm_hour = BCD2BIN(tmp);
138 t->tm_wday = BCD2BIN(fm3130->regs[FM3130_RTC_DAY] & 0x07) - 1;
139 t->tm_mday = BCD2BIN(fm3130->regs[FM3130_RTC_DATE] & 0x3f);
140 tmp = fm3130->regs[FM3130_RTC_MONTHS] & 0x1f;
141 t->tm_mon = BCD2BIN(tmp) - 1;
142
143 /* assume 20YY not 19YY, and ignore CF bit */
144 t->tm_year = BCD2BIN(fm3130->regs[FM3130_RTC_YEARS]) + 100;
145
146 dev_dbg(dev, "%s secs=%d, mins=%d, "
147 "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n",
148 "read", t->tm_sec, t->tm_min,
149 t->tm_hour, t->tm_mday,
150 t->tm_mon, t->tm_year, t->tm_wday);
151
152 /* initial clock setting can be undefined */
153 return rtc_valid_tm(t);
154}
155
156
157static int fm3130_set_time(struct device *dev, struct rtc_time *t)
158{
159 struct fm3130 *fm3130 = dev_get_drvdata(dev);
160 int tmp, i;
161 u8 *buf = fm3130->regs;
162
163 dev_dbg(dev, "%s secs=%d, mins=%d, "
164 "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n",
165 "write", t->tm_sec, t->tm_min,
166 t->tm_hour, t->tm_mday,
167 t->tm_mon, t->tm_year, t->tm_wday);
168
169 /* first register addr */
170 buf[FM3130_RTC_SECONDS] = BIN2BCD(t->tm_sec);
171 buf[FM3130_RTC_MINUTES] = BIN2BCD(t->tm_min);
172 buf[FM3130_RTC_HOURS] = BIN2BCD(t->tm_hour);
173 buf[FM3130_RTC_DAY] = BIN2BCD(t->tm_wday + 1);
174 buf[FM3130_RTC_DATE] = BIN2BCD(t->tm_mday);
175 buf[FM3130_RTC_MONTHS] = BIN2BCD(t->tm_mon + 1);
176
177 /* assume 20YY not 19YY */
178 tmp = t->tm_year - 100;
179 buf[FM3130_RTC_YEARS] = BIN2BCD(tmp);
180
181 dev_dbg(dev, "%s: %02x %02x %02x %02x %02x %02x %02x"
182 "%02x %02x %02x %02x %02x %02x %02x %02x\n",
183 "write", buf[0], buf[1], buf[2], buf[3],
184 buf[4], buf[5], buf[6], buf[7],
185 buf[8], buf[9], buf[0xa], buf[0xb],
186 buf[0xc], buf[0xd], buf[0xe]);
187
188 fm3130_rtc_mode(dev, FM3130_MODE_WRITE);
189
190 /* Writing time registers, we don't support multibyte transfers */
191 for (i = 0; i < FM3130_CLOCK_REGS; i++) {
192 i2c_smbus_write_byte_data(fm3130->client,
193 FM3130_RTC_SECONDS + i,
194 fm3130->regs[FM3130_RTC_SECONDS + i]);
195 }
196
197 fm3130_rtc_mode(dev, FM3130_MODE_NORMAL);
198
199 /* We assume here that data are valid once written */
200 if (!fm3130->data_valid)
201 fm3130->data_valid = 1;
202 return 0;
203}
204
205static int fm3130_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
206{
207 struct fm3130 *fm3130 = dev_get_drvdata(dev);
208 int tmp;
209 struct rtc_time *tm = &alrm->time;
210 /* read the RTC alarm registers all at once */
211 tmp = i2c_transfer(to_i2c_adapter(fm3130->client->dev.parent),
212 &fm3130->msg[2], 2);
213 if (tmp != 2) {
214 dev_err(dev, "%s error %d\n", "read", tmp);
215 return -EIO;
216 }
217 dev_dbg(dev, "alarm read %02x %02x %02x %02x %02x\n",
218 fm3130->regs[FM3130_ALARM_SECONDS],
219 fm3130->regs[FM3130_ALARM_MINUTES],
220 fm3130->regs[FM3130_ALARM_HOURS],
221 fm3130->regs[FM3130_ALARM_DATE],
222 fm3130->regs[FM3130_ALARM_MONTHS]);
223
224
225 tm->tm_sec = BCD2BIN(fm3130->regs[FM3130_ALARM_SECONDS] & 0x7F);
226 tm->tm_min = BCD2BIN(fm3130->regs[FM3130_ALARM_MINUTES] & 0x7F);
227 tm->tm_hour = BCD2BIN(fm3130->regs[FM3130_ALARM_HOURS] & 0x3F);
228 tm->tm_mday = BCD2BIN(fm3130->regs[FM3130_ALARM_DATE] & 0x3F);
229 tm->tm_mon = BCD2BIN(fm3130->regs[FM3130_ALARM_MONTHS] & 0x1F);
230 if (tm->tm_mon > 0)
231 tm->tm_mon -= 1; /* RTC is 1-12, tm_mon is 0-11 */
232 dev_dbg(dev, "%s secs=%d, mins=%d, "
233 "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n",
234 "read alarm", tm->tm_sec, tm->tm_min,
235 tm->tm_hour, tm->tm_mday,
236 tm->tm_mon, tm->tm_year, tm->tm_wday);
237
238 return 0;
239}
240
241static int fm3130_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
242{
243 struct fm3130 *fm3130 = dev_get_drvdata(dev);
244 struct rtc_time *tm = &alrm->time;
245 int i;
246
247 dev_dbg(dev, "%s secs=%d, mins=%d, "
248 "hours=%d, mday=%d, mon=%d, year=%d, wday=%d\n",
249 "write alarm", tm->tm_sec, tm->tm_min,
250 tm->tm_hour, tm->tm_mday,
251 tm->tm_mon, tm->tm_year, tm->tm_wday);
252
253 if (tm->tm_sec != -1)
254 fm3130->regs[FM3130_ALARM_SECONDS] =
255 BIN2BCD(tm->tm_sec) | 0x80;
256
257 if (tm->tm_min != -1)
258 fm3130->regs[FM3130_ALARM_MINUTES] =
259 BIN2BCD(tm->tm_min) | 0x80;
260
261 if (tm->tm_hour != -1)
262 fm3130->regs[FM3130_ALARM_HOURS] =
263 BIN2BCD(tm->tm_hour) | 0x80;
264
265 if (tm->tm_mday != -1)
266 fm3130->regs[FM3130_ALARM_DATE] =
267 BIN2BCD(tm->tm_mday) | 0x80;
268
269 if (tm->tm_mon != -1)
270 fm3130->regs[FM3130_ALARM_MONTHS] =
271 BIN2BCD(tm->tm_mon + 1) | 0x80;
272
273 dev_dbg(dev, "alarm write %02x %02x %02x %02x %02x\n",
274 fm3130->regs[FM3130_ALARM_SECONDS],
275 fm3130->regs[FM3130_ALARM_MINUTES],
276 fm3130->regs[FM3130_ALARM_HOURS],
277 fm3130->regs[FM3130_ALARM_DATE],
278 fm3130->regs[FM3130_ALARM_MONTHS]);
279 /* Writing time registers, we don't support multibyte transfers */
280 for (i = 0; i < FM3130_ALARM_REGS; i++) {
281 i2c_smbus_write_byte_data(fm3130->client,
282 FM3130_ALARM_SECONDS + i,
283 fm3130->regs[FM3130_ALARM_SECONDS + i]);
284 }
285 fm3130->regs[FM3130_RTC_CONTROL] =
286 i2c_smbus_read_byte_data(fm3130->client, FM3130_RTC_CONTROL);
287 /* Checking for alarm */
288 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) {
289 fm3130->alarm = 1;
290 fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF;
291 }
292 if (alrm->enabled) {
293 i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL,
294 (fm3130->regs[FM3130_RTC_CONTROL] &
295 ~(FM3130_RTC_CONTROL_BIT_CAL)) |
296 FM3130_RTC_CONTROL_BIT_AEN);
297 } else {
298 i2c_smbus_write_byte_data(fm3130->client, FM3130_RTC_CONTROL,
299 fm3130->regs[FM3130_RTC_CONTROL] &
300 ~(FM3130_RTC_CONTROL_BIT_AEN));
301 }
302 return 0;
303}
304
305static const struct rtc_class_ops fm3130_rtc_ops = {
306 .read_time = fm3130_get_time,
307 .set_time = fm3130_set_time,
308 .read_alarm = fm3130_read_alarm,
309 .set_alarm = fm3130_set_alarm,
310};
311
312static struct i2c_driver fm3130_driver;
313
314static int __devinit fm3130_probe(struct i2c_client *client,
315 const struct i2c_device_id *id)
316{
317 struct fm3130 *fm3130;
318 int err = -ENODEV;
319 int tmp;
320 struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
321
322 if (!i2c_check_functionality(adapter,
323 I2C_FUNC_I2C | I2C_FUNC_SMBUS_WRITE_BYTE_DATA))
324 return -EIO;
325
326 fm3130 = kzalloc(sizeof(struct fm3130), GFP_KERNEL);
327
328 if (!fm3130)
329 return -ENOMEM;
330
331 fm3130->client = client;
332 i2c_set_clientdata(client, fm3130);
333 fm3130->reg_addr_time = FM3130_RTC_SECONDS;
334 fm3130->reg_addr_alarm = FM3130_ALARM_SECONDS;
335
336 /* Messages to read time */
337 fm3130->msg[0].addr = client->addr;
338 fm3130->msg[0].flags = 0;
339 fm3130->msg[0].len = 1;
340 fm3130->msg[0].buf = &fm3130->reg_addr_time;
341
342 fm3130->msg[1].addr = client->addr;
343 fm3130->msg[1].flags = I2C_M_RD;
344 fm3130->msg[1].len = FM3130_CLOCK_REGS;
345 fm3130->msg[1].buf = &fm3130->regs[FM3130_RTC_SECONDS];
346
347 /* Messages to read alarm */
348 fm3130->msg[2].addr = client->addr;
349 fm3130->msg[2].flags = 0;
350 fm3130->msg[2].len = 1;
351 fm3130->msg[2].buf = &fm3130->reg_addr_alarm;
352
353 fm3130->msg[3].addr = client->addr;
354 fm3130->msg[3].flags = I2C_M_RD;
355 fm3130->msg[3].len = FM3130_ALARM_REGS;
356 fm3130->msg[3].buf = &fm3130->regs[FM3130_ALARM_SECONDS];
357
358 fm3130->data_valid = 0;
359
360 tmp = i2c_transfer(adapter, fm3130->msg, 4);
361 if (tmp != 4) {
362 pr_debug("read error %d\n", tmp);
363 err = -EIO;
364 goto exit_free;
365 }
366
367 fm3130->regs[FM3130_RTC_CONTROL] =
368 i2c_smbus_read_byte_data(client, FM3130_RTC_CONTROL);
369 fm3130->regs[FM3130_CAL_CONTROL] =
370 i2c_smbus_read_byte_data(client, FM3130_CAL_CONTROL);
371
372 /* Checking for alarm */
373 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_AF) {
374 fm3130->alarm = 1;
375 fm3130->regs[FM3130_RTC_CONTROL] &= ~FM3130_RTC_CONTROL_BIT_AF;
376 }
377
378 /* Disabling calibration mode */
379 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_CAL)
380 i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL,
381 fm3130->regs[FM3130_RTC_CONTROL] &
382 ~(FM3130_RTC_CONTROL_BIT_CAL));
383 dev_warn(&client->dev, "Disabling calibration mode!\n");
384
385 /* Disabling read and write modes */
386 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_WRITE ||
387 fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_READ)
388 i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL,
389 fm3130->regs[FM3130_RTC_CONTROL] &
390 ~(FM3130_RTC_CONTROL_BIT_READ |
391 FM3130_RTC_CONTROL_BIT_WRITE));
392 dev_warn(&client->dev, "Disabling READ or WRITE mode!\n");
393
394 /* oscillator off? turn it on, so clock can tick. */
395 if (fm3130->regs[FM3130_CAL_CONTROL] & FM3130_CAL_CONTROL_BIT_nOSCEN)
396 i2c_smbus_write_byte_data(client, FM3130_CAL_CONTROL,
397 fm3130->regs[FM3130_CAL_CONTROL] &
398 ~(FM3130_CAL_CONTROL_BIT_nOSCEN));
399
400 /* oscillator fault? clear flag, and warn */
401 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_LB)
402 dev_warn(&client->dev, "Low battery!\n");
403
404 /* oscillator fault? clear flag, and warn */
405 if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_POR) {
406 i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL,
407 fm3130->regs[FM3130_RTC_CONTROL] &
408 ~FM3130_RTC_CONTROL_BIT_POR);
409 dev_warn(&client->dev, "SET TIME!\n");
410 }
411 /* ACS is controlled by alarm */
412 i2c_smbus_write_byte_data(client, FM3130_ALARM_WP_CONTROL, 0x80);
413
414 /* TODO */
415 /* TODO need to sanity check alarm */
416 tmp = fm3130->regs[FM3130_RTC_SECONDS];
417 tmp = BCD2BIN(tmp & 0x7f);
418 if (tmp > 60)
419 goto exit_bad;
420 tmp = BCD2BIN(fm3130->regs[FM3130_RTC_MINUTES] & 0x7f);
421 if (tmp > 60)
422 goto exit_bad;
423
424 tmp = BCD2BIN(fm3130->regs[FM3130_RTC_DATE] & 0x3f);
425 if (tmp == 0 || tmp > 31)
426 goto exit_bad;
427
428 tmp = BCD2BIN(fm3130->regs[FM3130_RTC_MONTHS] & 0x1f);
429 if (tmp == 0 || tmp > 12)
430 goto exit_bad;
431
432 tmp = fm3130->regs[FM3130_RTC_HOURS];
433
434 fm3130->data_valid = 1;
435
436exit_bad:
437 if (!fm3130->data_valid)
438 dev_dbg(&client->dev,
439 "%s: %02x %02x %02x %02x %02x %02x %02x %02x"
440 "%02x %02x %02x %02x %02x %02x %02x\n",
441 "bogus registers",
442 fm3130->regs[0], fm3130->regs[1],
443 fm3130->regs[2], fm3130->regs[3],
444 fm3130->regs[4], fm3130->regs[5],
445 fm3130->regs[6], fm3130->regs[7],
446 fm3130->regs[8], fm3130->regs[9],
447 fm3130->regs[0xa], fm3130->regs[0xb],
448 fm3130->regs[0xc], fm3130->regs[0xd],
449 fm3130->regs[0xe]);
450
451 /* We won't bail out here because we just got invalid data.
452 Time setting from u-boot doesn't work anyway */
453 fm3130->rtc = rtc_device_register(client->name, &client->dev,
454 &fm3130_rtc_ops, THIS_MODULE);
455 if (IS_ERR(fm3130->rtc)) {
456 err = PTR_ERR(fm3130->rtc);
457 dev_err(&client->dev,
458 "unable to register the class device\n");
459 goto exit_free;
460 }
461 return 0;
462exit_free:
463 kfree(fm3130);
464 return err;
465}
466
467static int __devexit fm3130_remove(struct i2c_client *client)
468{
469 struct fm3130 *fm3130 = i2c_get_clientdata(client);
470
471 rtc_device_unregister(fm3130->rtc);
472 kfree(fm3130);
473 return 0;
474}
475
476static struct i2c_driver fm3130_driver = {
477 .driver = {
478 .name = "rtc-fm3130",
479 .owner = THIS_MODULE,
480 },
481 .probe = fm3130_probe,
482 .remove = __devexit_p(fm3130_remove),
483 .id_table = fm3130_id,
484};
485
486static int __init fm3130_init(void)
487{
488 return i2c_add_driver(&fm3130_driver);
489}
490module_init(fm3130_init);
491
492static void __exit fm3130_exit(void)
493{
494 i2c_del_driver(&fm3130_driver);
495}
496module_exit(fm3130_exit);
497
498MODULE_DESCRIPTION("RTC driver for FM3130");
499MODULE_AUTHOR("Sergey Lapin <slapin@ossfans.org>");
500MODULE_LICENSE("GPL");
501
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c
index 62576af36f47..3e577f655b18 100644
--- a/drivers/s390/char/sclp_vt220.c
+++ b/drivers/s390/char/sclp_vt220.c
@@ -773,6 +773,7 @@ sclp_vt220_con_init(void)
773{ 773{
774 int rc; 774 int rc;
775 775
776 INIT_LIST_HEAD(&sclp_vt220_register.list);
776 if (!CONSOLE_IS_SCLP) 777 if (!CONSOLE_IS_SCLP)
777 return 0; 778 return 0;
778 rc = __sclp_vt220_init(); 779 rc = __sclp_vt220_init();
diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c
index 8246ef3ab095..42ce7915fc5d 100644
--- a/drivers/s390/char/tape_3590.c
+++ b/drivers/s390/char/tape_3590.c
@@ -1598,7 +1598,7 @@ tape_3590_setup_device(struct tape_device *device)
1598 rc = tape_3590_read_dev_chars(device, rdc_data); 1598 rc = tape_3590_read_dev_chars(device, rdc_data);
1599 if (rc) { 1599 if (rc) {
1600 DBF_LH(3, "Read device characteristics failed!\n"); 1600 DBF_LH(3, "Read device characteristics failed!\n");
1601 goto fail_kmalloc; 1601 goto fail_rdc_data;
1602 } 1602 }
1603 rc = tape_std_assign(device); 1603 rc = tape_std_assign(device);
1604 if (rc) 1604 if (rc)
diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c
index a4a5f2efea48..0bfcbbe375c4 100644
--- a/drivers/s390/cio/blacklist.c
+++ b/drivers/s390/cio/blacklist.c
@@ -97,8 +97,8 @@ static int pure_hex(char **cp, unsigned int *val, int min_digit,
97 return 0; 97 return 0;
98} 98}
99 99
100static int parse_busid(char *str, int *cssid, int *ssid, int *devno, 100static int parse_busid(char *str, unsigned int *cssid, unsigned int *ssid,
101 int msgtrigger) 101 unsigned int *devno, int msgtrigger)
102{ 102{
103 char *str_work; 103 char *str_work;
104 int val, rc, ret; 104 int val, rc, ret;
@@ -148,7 +148,7 @@ out:
148static int blacklist_parse_parameters(char *str, range_action action, 148static int blacklist_parse_parameters(char *str, range_action action,
149 int msgtrigger) 149 int msgtrigger)
150{ 150{
151 int from_cssid, to_cssid, from_ssid, to_ssid, from, to; 151 unsigned int from_cssid, to_cssid, from_ssid, to_ssid, from, to;
152 int rc, totalrc; 152 int rc, totalrc;
153 char *parm; 153 char *parm;
154 range_action ra; 154 range_action ra;
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 82c6a2d45128..b32d7eb3d81a 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -576,12 +576,14 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid)
576 err = -ENODEV; 576 err = -ENODEV;
577 goto out; 577 goto out;
578 } 578 }
579 if (cio_is_console(sch->schid)) 579 if (cio_is_console(sch->schid)) {
580 sch->opm = 0xff; 580 sch->opm = 0xff;
581 else 581 sch->isc = 1;
582 } else {
582 sch->opm = chp_get_sch_opm(sch); 583 sch->opm = chp_get_sch_opm(sch);
584 sch->isc = 3;
585 }
583 sch->lpm = sch->schib.pmcw.pam & sch->opm; 586 sch->lpm = sch->schib.pmcw.pam & sch->opm;
584 sch->isc = 3;
585 587
586 CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X " 588 CIO_MSG_EVENT(6, "Detected device %04x on subchannel 0.%x.%04X "
587 "- PIM = %02X, PAM = %02X, POM = %02X\n", 589 "- PIM = %02X, PAM = %02X, POM = %02X\n",
@@ -704,9 +706,9 @@ void wait_cons_dev(void)
704 if (!console_subchannel_in_use) 706 if (!console_subchannel_in_use)
705 return; 707 return;
706 708
707 /* disable all but isc 7 (console device) */ 709 /* disable all but isc 1 (console device) */
708 __ctl_store (save_cr6, 6, 6); 710 __ctl_store (save_cr6, 6, 6);
709 cr6 = 0x01000000; 711 cr6 = 0x40000000;
710 __ctl_load (cr6, 6, 6); 712 __ctl_load (cr6, 6, 6);
711 713
712 do { 714 do {
@@ -788,11 +790,11 @@ cio_probe_console(void)
788 } 790 }
789 791
790 /* 792 /*
791 * enable console I/O-interrupt subclass 7 793 * enable console I/O-interrupt subclass 1
792 */ 794 */
793 ctl_set_bit(6, 24); 795 ctl_set_bit(6, 30);
794 console_subchannel.isc = 7; 796 console_subchannel.isc = 1;
795 console_subchannel.schib.pmcw.isc = 7; 797 console_subchannel.schib.pmcw.isc = 1;
796 console_subchannel.schib.pmcw.intparm = 798 console_subchannel.schib.pmcw.intparm =
797 (u32)(addr_t)&console_subchannel; 799 (u32)(addr_t)&console_subchannel;
798 ret = cio_modify(&console_subchannel); 800 ret = cio_modify(&console_subchannel);
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 436bf1f6d4a6..9a71dae223e8 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -290,9 +290,6 @@ int qeth_set_large_send(struct qeth_card *card,
290 card->dev->features |= NETIF_F_TSO | NETIF_F_SG | 290 card->dev->features |= NETIF_F_TSO | NETIF_F_SG |
291 NETIF_F_HW_CSUM; 291 NETIF_F_HW_CSUM;
292 } else { 292 } else {
293 PRINT_WARN("TSO not supported on %s. "
294 "large_send set to 'no'.\n",
295 card->dev->name);
296 card->dev->features &= ~(NETIF_F_TSO | NETIF_F_SG | 293 card->dev->features &= ~(NETIF_F_TSO | NETIF_F_SG |
297 NETIF_F_HW_CSUM); 294 NETIF_F_HW_CSUM);
298 card->options.large_send = QETH_LARGE_SEND_NO; 295 card->options.large_send = QETH_LARGE_SEND_NO;
@@ -1407,12 +1404,6 @@ static void qeth_init_func_level(struct qeth_card *card)
1407 } 1404 }
1408} 1405}
1409 1406
1410static inline __u16 qeth_raw_devno_from_bus_id(char *id)
1411{
1412 id += (strlen(id) - 4);
1413 return (__u16) simple_strtoul(id, &id, 16);
1414}
1415
1416static int qeth_idx_activate_get_answer(struct qeth_channel *channel, 1407static int qeth_idx_activate_get_answer(struct qeth_channel *channel,
1417 void (*idx_reply_cb)(struct qeth_channel *, 1408 void (*idx_reply_cb)(struct qeth_channel *,
1418 struct qeth_cmd_buffer *)) 1409 struct qeth_cmd_buffer *))
@@ -1439,7 +1430,7 @@ static int qeth_idx_activate_get_answer(struct qeth_channel *channel,
1439 spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags); 1430 spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags);
1440 1431
1441 if (rc) { 1432 if (rc) {
1442 PRINT_ERR("Error2 in activating channel rc=%d\n", rc); 1433 QETH_DBF_MESSAGE(2, "Error2 in activating channel rc=%d\n", rc);
1443 QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc); 1434 QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc);
1444 atomic_set(&channel->irq_pending, 0); 1435 atomic_set(&channel->irq_pending, 0);
1445 wake_up(&card->wait_q); 1436 wake_up(&card->wait_q);
@@ -1468,6 +1459,7 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel,
1468 __u16 temp; 1459 __u16 temp;
1469 __u8 tmp; 1460 __u8 tmp;
1470 int rc; 1461 int rc;
1462 struct ccw_dev_id temp_devid;
1471 1463
1472 card = CARD_FROM_CDEV(channel->ccwdev); 1464 card = CARD_FROM_CDEV(channel->ccwdev);
1473 1465
@@ -1494,8 +1486,8 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel,
1494 &card->token.issuer_rm_w, QETH_MPC_TOKEN_LENGTH); 1486 &card->token.issuer_rm_w, QETH_MPC_TOKEN_LENGTH);
1495 memcpy(QETH_IDX_ACT_FUNC_LEVEL(iob->data), 1487 memcpy(QETH_IDX_ACT_FUNC_LEVEL(iob->data),
1496 &card->info.func_level, sizeof(__u16)); 1488 &card->info.func_level, sizeof(__u16));
1497 temp = qeth_raw_devno_from_bus_id(CARD_DDEV_ID(card)); 1489 ccw_device_get_id(CARD_DDEV(card), &temp_devid);
1498 memcpy(QETH_IDX_ACT_QDIO_DEV_CUA(iob->data), &temp, 2); 1490 memcpy(QETH_IDX_ACT_QDIO_DEV_CUA(iob->data), &temp_devid.devno, 2);
1499 temp = (card->info.cula << 8) + card->info.unit_addr2; 1491 temp = (card->info.cula << 8) + card->info.unit_addr2;
1500 memcpy(QETH_IDX_ACT_QDIO_DEV_REALADDR(iob->data), &temp, 2); 1492 memcpy(QETH_IDX_ACT_QDIO_DEV_REALADDR(iob->data), &temp, 2);
1501 1493
@@ -1508,7 +1500,8 @@ static int qeth_idx_activate_channel(struct qeth_channel *channel,
1508 spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags); 1500 spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags);
1509 1501
1510 if (rc) { 1502 if (rc) {
1511 PRINT_ERR("Error1 in activating channel. rc=%d\n", rc); 1503 QETH_DBF_MESSAGE(2, "Error1 in activating channel. rc=%d\n",
1504 rc);
1512 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc); 1505 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
1513 atomic_set(&channel->irq_pending, 0); 1506 atomic_set(&channel->irq_pending, 0);
1514 wake_up(&card->wait_q); 1507 wake_up(&card->wait_q);
@@ -1658,7 +1651,6 @@ int qeth_send_control_data(struct qeth_card *card, int len,
1658 1651
1659 reply = qeth_alloc_reply(card); 1652 reply = qeth_alloc_reply(card);
1660 if (!reply) { 1653 if (!reply) {
1661 PRINT_WARN("Could not alloc qeth_reply!\n");
1662 return -ENOMEM; 1654 return -ENOMEM;
1663 } 1655 }
1664 reply->callback = reply_cb; 1656 reply->callback = reply_cb;
@@ -2612,15 +2604,9 @@ void qeth_queue_input_buffer(struct qeth_card *card, int index)
2612 if (newcount < count) { 2604 if (newcount < count) {
2613 /* we are in memory shortage so we switch back to 2605 /* we are in memory shortage so we switch back to
2614 traditional skb allocation and drop packages */ 2606 traditional skb allocation and drop packages */
2615 if (!atomic_read(&card->force_alloc_skb) &&
2616 net_ratelimit())
2617 PRINT_WARN("Switch to alloc skb\n");
2618 atomic_set(&card->force_alloc_skb, 3); 2607 atomic_set(&card->force_alloc_skb, 3);
2619 count = newcount; 2608 count = newcount;
2620 } else { 2609 } else {
2621 if ((atomic_read(&card->force_alloc_skb) == 1) &&
2622 net_ratelimit())
2623 PRINT_WARN("Switch to sg\n");
2624 atomic_add_unless(&card->force_alloc_skb, -1, 0); 2610 atomic_add_unless(&card->force_alloc_skb, -1, 0);
2625 } 2611 }
2626 2612
@@ -3034,7 +3020,7 @@ int qeth_get_elements_no(struct qeth_card *card, void *hdr,
3034 elements_needed = 1 + (((((unsigned long) hdr) % PAGE_SIZE) 3020 elements_needed = 1 + (((((unsigned long) hdr) % PAGE_SIZE)
3035 + skb->len) >> PAGE_SHIFT); 3021 + skb->len) >> PAGE_SHIFT);
3036 if ((elements_needed + elems) > QETH_MAX_BUFFER_ELEMENTS(card)) { 3022 if ((elements_needed + elems) > QETH_MAX_BUFFER_ELEMENTS(card)) {
3037 PRINT_ERR("Invalid size of IP packet " 3023 QETH_DBF_MESSAGE(2, "Invalid size of IP packet "
3038 "(Number=%d / Length=%d). Discarded.\n", 3024 "(Number=%d / Length=%d). Discarded.\n",
3039 (elements_needed+elems), skb->len); 3025 (elements_needed+elems), skb->len);
3040 return 0; 3026 return 0;
@@ -3247,8 +3233,6 @@ int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue,
3247 * free buffers) to handle eddp context */ 3233 * free buffers) to handle eddp context */
3248 if (qeth_eddp_check_buffers_for_context(queue, ctx) 3234 if (qeth_eddp_check_buffers_for_context(queue, ctx)
3249 < 0) { 3235 < 0) {
3250 if (net_ratelimit())
3251 PRINT_WARN("eddp tx_dropped 1\n");
3252 rc = -EBUSY; 3236 rc = -EBUSY;
3253 goto out; 3237 goto out;
3254 } 3238 }
@@ -3260,7 +3244,6 @@ int qeth_do_send_packet(struct qeth_card *card, struct qeth_qdio_out_q *queue,
3260 tmp = qeth_eddp_fill_buffer(queue, ctx, 3244 tmp = qeth_eddp_fill_buffer(queue, ctx,
3261 queue->next_buf_to_fill); 3245 queue->next_buf_to_fill);
3262 if (tmp < 0) { 3246 if (tmp < 0) {
3263 PRINT_ERR("eddp tx_dropped 2\n");
3264 rc = -EBUSY; 3247 rc = -EBUSY;
3265 goto out; 3248 goto out;
3266 } 3249 }
@@ -3602,8 +3585,6 @@ int qeth_snmp_command(struct qeth_card *card, char __user *udata)
3602 3585
3603 if ((!qeth_adp_supported(card, IPA_SETADP_SET_SNMP_CONTROL)) && 3586 if ((!qeth_adp_supported(card, IPA_SETADP_SET_SNMP_CONTROL)) &&
3604 (!card->options.layer2)) { 3587 (!card->options.layer2)) {
3605 PRINT_WARN("SNMP Query MIBS not supported "
3606 "on %s!\n", QETH_CARD_IFNAME(card));
3607 return -EOPNOTSUPP; 3588 return -EOPNOTSUPP;
3608 } 3589 }
3609 /* skip 4 bytes (data_len struct member) to get req_len */ 3590 /* skip 4 bytes (data_len struct member) to get req_len */
@@ -3634,7 +3615,7 @@ int qeth_snmp_command(struct qeth_card *card, char __user *udata)
3634 rc = qeth_send_ipa_snmp_cmd(card, iob, QETH_SETADP_BASE_LEN + req_len, 3615 rc = qeth_send_ipa_snmp_cmd(card, iob, QETH_SETADP_BASE_LEN + req_len,
3635 qeth_snmp_command_cb, (void *)&qinfo); 3616 qeth_snmp_command_cb, (void *)&qinfo);
3636 if (rc) 3617 if (rc)
3637 PRINT_WARN("SNMP command failed on %s: (0x%x)\n", 3618 QETH_DBF_MESSAGE(2, "SNMP command failed on %s: (0x%x)\n",
3638 QETH_CARD_IFNAME(card), rc); 3619 QETH_CARD_IFNAME(card), rc);
3639 else { 3620 else {
3640 if (copy_to_user(udata, qinfo.udata, qinfo.udata_len)) 3621 if (copy_to_user(udata, qinfo.udata, qinfo.udata_len))
@@ -3807,8 +3788,8 @@ retry:
3807 if (mpno) 3788 if (mpno)
3808 mpno = min(mpno - 1, QETH_MAX_PORTNO); 3789 mpno = min(mpno - 1, QETH_MAX_PORTNO);
3809 if (card->info.portno > mpno) { 3790 if (card->info.portno > mpno) {
3810 PRINT_ERR("Device %s does not offer port number %d \n.", 3791 QETH_DBF_MESSAGE(2, "Device %s does not offer port number %d"
3811 CARD_BUS_ID(card), card->info.portno); 3792 "\n.", CARD_BUS_ID(card), card->info.portno);
3812 rc = -ENODEV; 3793 rc = -ENODEV;
3813 goto out; 3794 goto out;
3814 } 3795 }
@@ -3985,8 +3966,6 @@ struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card,
3985 return skb; 3966 return skb;
3986no_mem: 3967no_mem:
3987 if (net_ratelimit()) { 3968 if (net_ratelimit()) {
3988 PRINT_WARN("No memory for packet received on %s.\n",
3989 QETH_CARD_IFNAME(card));
3990 QETH_DBF_TEXT(TRACE, 2, "noskbmem"); 3969 QETH_DBF_TEXT(TRACE, 2, "noskbmem");
3991 QETH_DBF_TEXT_(TRACE, 2, "%s", CARD_BUS_ID(card)); 3970 QETH_DBF_TEXT_(TRACE, 2, "%s", CARD_BUS_ID(card));
3992 } 3971 }
@@ -4004,15 +3983,17 @@ static void qeth_unregister_dbf_views(void)
4004 } 3983 }
4005} 3984}
4006 3985
4007void qeth_dbf_longtext(enum qeth_dbf_names dbf_nix, int level, char *text, ...) 3986void qeth_dbf_longtext(enum qeth_dbf_names dbf_nix, int level, char *fmt, ...)
4008{ 3987{
4009 char dbf_txt_buf[32]; 3988 char dbf_txt_buf[32];
3989 va_list args;
4010 3990
4011 if (level > (qeth_dbf[dbf_nix].id)->level) 3991 if (level > (qeth_dbf[dbf_nix].id)->level)
4012 return; 3992 return;
4013 snprintf(dbf_txt_buf, sizeof(dbf_txt_buf), text); 3993 va_start(args, fmt);
3994 vsnprintf(dbf_txt_buf, sizeof(dbf_txt_buf), fmt, args);
3995 va_end(args);
4014 debug_text_event(qeth_dbf[dbf_nix].id, level, dbf_txt_buf); 3996 debug_text_event(qeth_dbf[dbf_nix].id, level, dbf_txt_buf);
4015
4016} 3997}
4017EXPORT_SYMBOL_GPL(qeth_dbf_longtext); 3998EXPORT_SYMBOL_GPL(qeth_dbf_longtext);
4018 3999
diff --git a/drivers/s390/net/qeth_core_offl.c b/drivers/s390/net/qeth_core_offl.c
index 822df8362856..452874e89740 100644
--- a/drivers/s390/net/qeth_core_offl.c
+++ b/drivers/s390/net/qeth_core_offl.c
@@ -122,8 +122,8 @@ int qeth_eddp_fill_buffer(struct qeth_qdio_out_q *queue,
122 if (element == 0) 122 if (element == 0)
123 return -EBUSY; 123 return -EBUSY;
124 else { 124 else {
125 PRINT_WARN("could only partially fill eddp " 125 QETH_DBF_MESSAGE(2, "could only partially fill"
126 "buffer!\n"); 126 "eddp buffer!\n");
127 goto out; 127 goto out;
128 } 128 }
129 } 129 }
@@ -143,8 +143,6 @@ int qeth_eddp_fill_buffer(struct qeth_qdio_out_q *queue,
143 if (must_refcnt) { 143 if (must_refcnt) {
144 must_refcnt = 0; 144 must_refcnt = 0;
145 if (qeth_eddp_buf_ref_context(buf, ctx)) { 145 if (qeth_eddp_buf_ref_context(buf, ctx)) {
146 PRINT_WARN("no memory to create eddp context "
147 "reference\n");
148 goto out_check; 146 goto out_check;
149 } 147 }
150 } 148 }
diff --git a/drivers/s390/net/qeth_core_sys.c b/drivers/s390/net/qeth_core_sys.c
index 08a50f057284..c26e842ad905 100644
--- a/drivers/s390/net/qeth_core_sys.c
+++ b/drivers/s390/net/qeth_core_sys.c
@@ -129,7 +129,6 @@ static ssize_t qeth_dev_portno_store(struct device *dev,
129 129
130 portno = simple_strtoul(buf, &tmp, 16); 130 portno = simple_strtoul(buf, &tmp, 16);
131 if (portno > QETH_MAX_PORTNO) { 131 if (portno > QETH_MAX_PORTNO) {
132 PRINT_WARN("portno 0x%X is out of range\n", portno);
133 return -EINVAL; 132 return -EINVAL;
134 } 133 }
135 134
@@ -223,8 +222,6 @@ static ssize_t qeth_dev_prioqing_store(struct device *dev,
223 * if though we have to permit priority queueing 222 * if though we have to permit priority queueing
224 */ 223 */
225 if (card->qdio.no_out_queues == 1) { 224 if (card->qdio.no_out_queues == 1) {
226 PRINT_WARN("Priority queueing disabled due "
227 "to hardware limitations!\n");
228 card->qdio.do_prio_queueing = QETH_PRIOQ_DEFAULT; 225 card->qdio.do_prio_queueing = QETH_PRIOQ_DEFAULT;
229 return -EPERM; 226 return -EPERM;
230 } 227 }
@@ -250,7 +247,6 @@ static ssize_t qeth_dev_prioqing_store(struct device *dev,
250 card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING; 247 card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
251 card->qdio.default_out_queue = QETH_DEFAULT_QUEUE; 248 card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
252 } else { 249 } else {
253 PRINT_WARN("Unknown queueing type '%s'\n", tmp);
254 return -EINVAL; 250 return -EINVAL;
255 } 251 }
256 return count; 252 return count;
@@ -291,9 +287,6 @@ static ssize_t qeth_dev_bufcnt_store(struct device *dev,
291 ((cnt > QETH_IN_BUF_COUNT_MAX) ? QETH_IN_BUF_COUNT_MAX : cnt); 287 ((cnt > QETH_IN_BUF_COUNT_MAX) ? QETH_IN_BUF_COUNT_MAX : cnt);
292 if (old_cnt != cnt) { 288 if (old_cnt != cnt) {
293 rc = qeth_realloc_buffer_pool(card, cnt); 289 rc = qeth_realloc_buffer_pool(card, cnt);
294 if (rc)
295 PRINT_WARN("Error (%d) while setting "
296 "buffer count.\n", rc);
297 } 290 }
298 return count; 291 return count;
299} 292}
@@ -355,7 +348,6 @@ static ssize_t qeth_dev_performance_stats_store(struct device *dev,
355 card->perf_stats.initial_rx_packets = card->stats.rx_packets; 348 card->perf_stats.initial_rx_packets = card->stats.rx_packets;
356 card->perf_stats.initial_tx_packets = card->stats.tx_packets; 349 card->perf_stats.initial_tx_packets = card->stats.tx_packets;
357 } else { 350 } else {
358 PRINT_WARN("performance_stats: write 0 or 1 to this file!\n");
359 return -EINVAL; 351 return -EINVAL;
360 } 352 }
361 return count; 353 return count;
@@ -399,7 +391,6 @@ static ssize_t qeth_dev_layer2_store(struct device *dev,
399 newdis = QETH_DISCIPLINE_LAYER2; 391 newdis = QETH_DISCIPLINE_LAYER2;
400 break; 392 break;
401 default: 393 default:
402 PRINT_WARN("layer2: write 0 or 1 to this file!\n");
403 return -EINVAL; 394 return -EINVAL;
404 } 395 }
405 396
@@ -463,7 +454,6 @@ static ssize_t qeth_dev_large_send_store(struct device *dev,
463 } else if (!strcmp(tmp, "TSO")) { 454 } else if (!strcmp(tmp, "TSO")) {
464 type = QETH_LARGE_SEND_TSO; 455 type = QETH_LARGE_SEND_TSO;
465 } else { 456 } else {
466 PRINT_WARN("large_send: invalid mode %s!\n", tmp);
467 return -EINVAL; 457 return -EINVAL;
468 } 458 }
469 if (card->options.large_send == type) 459 if (card->options.large_send == type)
@@ -503,8 +493,6 @@ static ssize_t qeth_dev_blkt_store(struct qeth_card *card,
503 if (i <= max_value) { 493 if (i <= max_value) {
504 *value = i; 494 *value = i;
505 } else { 495 } else {
506 PRINT_WARN("blkt total time: write values between"
507 " 0 and %d to this file!\n", max_value);
508 return -EINVAL; 496 return -EINVAL;
509 } 497 }
510 return count; 498 return count;
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 86ec50ddae13..f682f7b14480 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -101,19 +101,16 @@ static struct net_device *qeth_l2_netdev_by_devno(unsigned char *read_dev_no)
101{ 101{
102 struct qeth_card *card; 102 struct qeth_card *card;
103 struct net_device *ndev; 103 struct net_device *ndev;
104 unsigned char *readno; 104 __u16 temp_dev_no;
105 __u16 temp_dev_no, card_dev_no;
106 char *endp;
107 unsigned long flags; 105 unsigned long flags;
106 struct ccw_dev_id read_devid;
108 107
109 ndev = NULL; 108 ndev = NULL;
110 memcpy(&temp_dev_no, read_dev_no, 2); 109 memcpy(&temp_dev_no, read_dev_no, 2);
111 read_lock_irqsave(&qeth_core_card_list.rwlock, flags); 110 read_lock_irqsave(&qeth_core_card_list.rwlock, flags);
112 list_for_each_entry(card, &qeth_core_card_list.list, list) { 111 list_for_each_entry(card, &qeth_core_card_list.list, list) {
113 readno = CARD_RDEV_ID(card); 112 ccw_device_get_id(CARD_RDEV(card), &read_devid);
114 readno += (strlen(readno) - 4); 113 if (read_devid.devno == temp_dev_no) {
115 card_dev_no = simple_strtoul(readno, &endp, 16);
116 if (card_dev_no == temp_dev_no) {
117 ndev = card->dev; 114 ndev = card->dev;
118 break; 115 break;
119 } 116 }
@@ -134,14 +131,14 @@ static int qeth_l2_send_setgroupmac_cb(struct qeth_card *card,
134 mac = &cmd->data.setdelmac.mac[0]; 131 mac = &cmd->data.setdelmac.mac[0];
135 /* MAC already registered, needed in couple/uncouple case */ 132 /* MAC already registered, needed in couple/uncouple case */
136 if (cmd->hdr.return_code == 0x2005) { 133 if (cmd->hdr.return_code == 0x2005) {
137 PRINT_WARN("Group MAC %02x:%02x:%02x:%02x:%02x:%02x " \ 134 QETH_DBF_MESSAGE(2, "Group MAC %02x:%02x:%02x:%02x:%02x:%02x "
138 "already existing on %s \n", 135 "already existing on %s \n",
139 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], 136 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5],
140 QETH_CARD_IFNAME(card)); 137 QETH_CARD_IFNAME(card));
141 cmd->hdr.return_code = 0; 138 cmd->hdr.return_code = 0;
142 } 139 }
143 if (cmd->hdr.return_code) 140 if (cmd->hdr.return_code)
144 PRINT_ERR("Could not set group MAC " \ 141 QETH_DBF_MESSAGE(2, "Could not set group MAC "
145 "%02x:%02x:%02x:%02x:%02x:%02x on %s: %x\n", 142 "%02x:%02x:%02x:%02x:%02x:%02x on %s: %x\n",
146 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], 143 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5],
147 QETH_CARD_IFNAME(card), cmd->hdr.return_code); 144 QETH_CARD_IFNAME(card), cmd->hdr.return_code);
@@ -166,7 +163,7 @@ static int qeth_l2_send_delgroupmac_cb(struct qeth_card *card,
166 cmd = (struct qeth_ipa_cmd *) data; 163 cmd = (struct qeth_ipa_cmd *) data;
167 mac = &cmd->data.setdelmac.mac[0]; 164 mac = &cmd->data.setdelmac.mac[0];
168 if (cmd->hdr.return_code) 165 if (cmd->hdr.return_code)
169 PRINT_ERR("Could not delete group MAC " \ 166 QETH_DBF_MESSAGE(2, "Could not delete group MAC "
170 "%02x:%02x:%02x:%02x:%02x:%02x on %s: %x\n", 167 "%02x:%02x:%02x:%02x:%02x:%02x on %s: %x\n",
171 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], 168 mac[0], mac[1], mac[2], mac[3], mac[4], mac[5],
172 QETH_CARD_IFNAME(card), cmd->hdr.return_code); 169 QETH_CARD_IFNAME(card), cmd->hdr.return_code);
@@ -186,10 +183,8 @@ static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac)
186 183
187 mc = kmalloc(sizeof(struct qeth_mc_mac), GFP_ATOMIC); 184 mc = kmalloc(sizeof(struct qeth_mc_mac), GFP_ATOMIC);
188 185
189 if (!mc) { 186 if (!mc)
190 PRINT_ERR("no mem vor mc mac address\n");
191 return; 187 return;
192 }
193 188
194 memcpy(mc->mc_addr, mac, OSA_ADDR_LEN); 189 memcpy(mc->mc_addr, mac, OSA_ADDR_LEN);
195 mc->mc_addrlen = OSA_ADDR_LEN; 190 mc->mc_addrlen = OSA_ADDR_LEN;
@@ -280,7 +275,7 @@ static int qeth_l2_send_setdelvlan_cb(struct qeth_card *card,
280 QETH_DBF_TEXT(TRACE, 2, "L2sdvcb"); 275 QETH_DBF_TEXT(TRACE, 2, "L2sdvcb");
281 cmd = (struct qeth_ipa_cmd *) data; 276 cmd = (struct qeth_ipa_cmd *) data;
282 if (cmd->hdr.return_code) { 277 if (cmd->hdr.return_code) {
283 PRINT_ERR("Error in processing VLAN %i on %s: 0x%x. " 278 QETH_DBF_MESSAGE(2, "Error in processing VLAN %i on %s: 0x%x. "
284 "Continuing\n", cmd->data.setdelvlan.vlan_id, 279 "Continuing\n", cmd->data.setdelvlan.vlan_id,
285 QETH_CARD_IFNAME(card), cmd->hdr.return_code); 280 QETH_CARD_IFNAME(card), cmd->hdr.return_code);
286 QETH_DBF_TEXT_(TRACE, 2, "L2VL%4x", cmd->hdr.command); 281 QETH_DBF_TEXT_(TRACE, 2, "L2VL%4x", cmd->hdr.command);
@@ -333,8 +328,6 @@ static void qeth_l2_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
333 spin_lock_bh(&card->vlanlock); 328 spin_lock_bh(&card->vlanlock);
334 list_add_tail(&id->list, &card->vid_list); 329 list_add_tail(&id->list, &card->vid_list);
335 spin_unlock_bh(&card->vlanlock); 330 spin_unlock_bh(&card->vlanlock);
336 } else {
337 PRINT_ERR("no memory for vid\n");
338 } 331 }
339} 332}
340 333
@@ -550,16 +543,15 @@ static int qeth_l2_request_initial_mac(struct qeth_card *card)
550 543
551 rc = qeth_query_setadapterparms(card); 544 rc = qeth_query_setadapterparms(card);
552 if (rc) { 545 if (rc) {
553 PRINT_WARN("could not query adapter parameters on device %s: " 546 QETH_DBF_MESSAGE(2, "could not query adapter parameters on "
554 "x%x\n", CARD_BUS_ID(card), rc); 547 "device %s: x%x\n", CARD_BUS_ID(card), rc);
555 } 548 }
556 549
557 if (card->info.guestlan) { 550 if (card->info.guestlan) {
558 rc = qeth_setadpparms_change_macaddr(card); 551 rc = qeth_setadpparms_change_macaddr(card);
559 if (rc) { 552 if (rc) {
560 PRINT_WARN("couldn't get MAC address on " 553 QETH_DBF_MESSAGE(2, "couldn't get MAC address on "
561 "device %s: x%x\n", 554 "device %s: x%x\n", CARD_BUS_ID(card), rc);
562 CARD_BUS_ID(card), rc);
563 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc); 555 QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
564 return rc; 556 return rc;
565 } 557 }
@@ -585,8 +577,6 @@ static int qeth_l2_set_mac_address(struct net_device *dev, void *p)
585 } 577 }
586 578
587 if (card->info.type == QETH_CARD_TYPE_OSN) { 579 if (card->info.type == QETH_CARD_TYPE_OSN) {
588 PRINT_WARN("Setting MAC address on %s is not supported.\n",
589 dev->name);
590 QETH_DBF_TEXT(TRACE, 3, "setmcOSN"); 580 QETH_DBF_TEXT(TRACE, 3, "setmcOSN");
591 return -EOPNOTSUPP; 581 return -EOPNOTSUPP;
592 } 582 }
@@ -666,7 +656,7 @@ static int qeth_l2_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
666 ctx = qeth_eddp_create_context(card, new_skb, hdr, 656 ctx = qeth_eddp_create_context(card, new_skb, hdr,
667 skb->sk->sk_protocol); 657 skb->sk->sk_protocol);
668 if (ctx == NULL) { 658 if (ctx == NULL) {
669 PRINT_WARN("could not create eddp context\n"); 659 QETH_DBF_MESSAGE(2, "could not create eddp context\n");
670 goto tx_drop; 660 goto tx_drop;
671 } 661 }
672 } else { 662 } else {
@@ -731,6 +721,7 @@ tx_drop:
731 if ((new_skb != skb) && new_skb) 721 if ((new_skb != skb) && new_skb)
732 dev_kfree_skb_any(new_skb); 722 dev_kfree_skb_any(new_skb);
733 dev_kfree_skb_any(skb); 723 dev_kfree_skb_any(skb);
724 netif_wake_queue(dev);
734 return NETDEV_TX_OK; 725 return NETDEV_TX_OK;
735} 726}
736 727
@@ -1155,7 +1146,7 @@ static int qeth_osn_send_control_data(struct qeth_card *card, int len,
1155 (addr_t) iob, 0, 0); 1146 (addr_t) iob, 0, 0);
1156 spin_unlock_irqrestore(get_ccwdev_lock(card->write.ccwdev), flags); 1147 spin_unlock_irqrestore(get_ccwdev_lock(card->write.ccwdev), flags);
1157 if (rc) { 1148 if (rc) {
1158 PRINT_WARN("qeth_osn_send_control_data: " 1149 QETH_DBF_MESSAGE(2, "qeth_osn_send_control_data: "
1159 "ccw_device_start rc = %i\n", rc); 1150 "ccw_device_start rc = %i\n", rc);
1160 QETH_DBF_TEXT_(TRACE, 2, " err%d", rc); 1151 QETH_DBF_TEXT_(TRACE, 2, " err%d", rc);
1161 qeth_release_buffer(iob->channel, iob); 1152 qeth_release_buffer(iob->channel, iob);
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 94a8ead64ed4..999552c83bbe 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -311,7 +311,6 @@ static struct qeth_ipaddr *qeth_l3_get_addr_buffer(
311 311
312 addr = kzalloc(sizeof(struct qeth_ipaddr), GFP_ATOMIC); 312 addr = kzalloc(sizeof(struct qeth_ipaddr), GFP_ATOMIC);
313 if (addr == NULL) { 313 if (addr == NULL) {
314 PRINT_WARN("Not enough memory to add address\n");
315 return NULL; 314 return NULL;
316 } 315 }
317 addr->type = QETH_IP_TYPE_NORMAL; 316 addr->type = QETH_IP_TYPE_NORMAL;
@@ -649,15 +648,6 @@ static void qeth_l3_correct_routing_type(struct qeth_card *card,
649 } 648 }
650 } 649 }
651out_inval: 650out_inval:
652 PRINT_WARN("Routing type '%s' not supported for interface %s.\n"
653 "Router status set to 'no router'.\n",
654 ((*type == PRIMARY_ROUTER)? "primary router" :
655 (*type == SECONDARY_ROUTER)? "secondary router" :
656 (*type == PRIMARY_CONNECTOR)? "primary connector" :
657 (*type == SECONDARY_CONNECTOR)? "secondary connector" :
658 (*type == MULTICAST_ROUTER)? "multicast router" :
659 "unknown"),
660 card->dev->name);
661 *type = NO_ROUTER; 651 *type = NO_ROUTER;
662} 652}
663 653
@@ -674,9 +664,9 @@ int qeth_l3_setrouting_v4(struct qeth_card *card)
674 QETH_PROT_IPV4); 664 QETH_PROT_IPV4);
675 if (rc) { 665 if (rc) {
676 card->options.route4.type = NO_ROUTER; 666 card->options.route4.type = NO_ROUTER;
677 PRINT_WARN("Error (0x%04x) while setting routing type on %s. " 667 QETH_DBF_MESSAGE(2, "Error (0x%04x) while setting routing type"
678 "Type set to 'no router'.\n", 668 " on %s. Type set to 'no router'.\n", rc,
679 rc, QETH_CARD_IFNAME(card)); 669 QETH_CARD_IFNAME(card));
680 } 670 }
681 return rc; 671 return rc;
682} 672}
@@ -697,9 +687,9 @@ int qeth_l3_setrouting_v6(struct qeth_card *card)
697 QETH_PROT_IPV6); 687 QETH_PROT_IPV6);
698 if (rc) { 688 if (rc) {
699 card->options.route6.type = NO_ROUTER; 689 card->options.route6.type = NO_ROUTER;
700 PRINT_WARN("Error (0x%04x) while setting routing type on %s. " 690 QETH_DBF_MESSAGE(2, "Error (0x%04x) while setting routing type"
701 "Type set to 'no router'.\n", 691 " on %s. Type set to 'no router'.\n", rc,
702 rc, QETH_CARD_IFNAME(card)); 692 QETH_CARD_IFNAME(card));
703 } 693 }
704#endif 694#endif
705 return rc; 695 return rc;
@@ -737,7 +727,6 @@ int qeth_l3_add_ipato_entry(struct qeth_card *card,
737 if (!memcmp(ipatoe->addr, new->addr, 727 if (!memcmp(ipatoe->addr, new->addr,
738 (ipatoe->proto == QETH_PROT_IPV4)? 4:16) && 728 (ipatoe->proto == QETH_PROT_IPV4)? 4:16) &&
739 (ipatoe->mask_bits == new->mask_bits)) { 729 (ipatoe->mask_bits == new->mask_bits)) {
740 PRINT_WARN("ipato entry already exists!\n");
741 rc = -EEXIST; 730 rc = -EEXIST;
742 break; 731 break;
743 } 732 }
@@ -802,7 +791,6 @@ int qeth_l3_add_vipa(struct qeth_card *card, enum qeth_prot_versions proto,
802 rc = -EEXIST; 791 rc = -EEXIST;
803 spin_unlock_irqrestore(&card->ip_lock, flags); 792 spin_unlock_irqrestore(&card->ip_lock, flags);
804 if (rc) { 793 if (rc) {
805 PRINT_WARN("Cannot add VIPA. Address already exists!\n");
806 return rc; 794 return rc;
807 } 795 }
808 if (!qeth_l3_add_ip(card, ipaddr)) 796 if (!qeth_l3_add_ip(card, ipaddr))
@@ -867,7 +855,6 @@ int qeth_l3_add_rxip(struct qeth_card *card, enum qeth_prot_versions proto,
867 rc = -EEXIST; 855 rc = -EEXIST;
868 spin_unlock_irqrestore(&card->ip_lock, flags); 856 spin_unlock_irqrestore(&card->ip_lock, flags);
869 if (rc) { 857 if (rc) {
870 PRINT_WARN("Cannot add RXIP. Address already exists!\n");
871 return rc; 858 return rc;
872 } 859 }
873 if (!qeth_l3_add_ip(card, ipaddr)) 860 if (!qeth_l3_add_ip(card, ipaddr))
@@ -1020,23 +1007,23 @@ static int qeth_l3_setadapter_hstr(struct qeth_card *card)
1020 IPA_SETADP_SET_BROADCAST_MODE, 1007 IPA_SETADP_SET_BROADCAST_MODE,
1021 card->options.broadcast_mode); 1008 card->options.broadcast_mode);
1022 if (rc) 1009 if (rc)
1023 PRINT_WARN("couldn't set broadcast mode on " 1010 QETH_DBF_MESSAGE(2, "couldn't set broadcast mode on "
1024 "device %s: x%x\n", 1011 "device %s: x%x\n",
1025 CARD_BUS_ID(card), rc); 1012 CARD_BUS_ID(card), rc);
1026 rc = qeth_l3_send_setadp_mode(card, 1013 rc = qeth_l3_send_setadp_mode(card,
1027 IPA_SETADP_ALTER_MAC_ADDRESS, 1014 IPA_SETADP_ALTER_MAC_ADDRESS,
1028 card->options.macaddr_mode); 1015 card->options.macaddr_mode);
1029 if (rc) 1016 if (rc)
1030 PRINT_WARN("couldn't set macaddr mode on " 1017 QETH_DBF_MESSAGE(2, "couldn't set macaddr mode on "
1031 "device %s: x%x\n", CARD_BUS_ID(card), rc); 1018 "device %s: x%x\n", CARD_BUS_ID(card), rc);
1032 return rc; 1019 return rc;
1033 } 1020 }
1034 if (card->options.broadcast_mode == QETH_TR_BROADCAST_LOCAL) 1021 if (card->options.broadcast_mode == QETH_TR_BROADCAST_LOCAL)
1035 PRINT_WARN("set adapter parameters not available " 1022 QETH_DBF_MESSAGE(2, "set adapter parameters not available "
1036 "to set broadcast mode, using ALLRINGS " 1023 "to set broadcast mode, using ALLRINGS "
1037 "on device %s:\n", CARD_BUS_ID(card)); 1024 "on device %s:\n", CARD_BUS_ID(card));
1038 if (card->options.macaddr_mode == QETH_TR_MACADDR_CANONICAL) 1025 if (card->options.macaddr_mode == QETH_TR_MACADDR_CANONICAL)
1039 PRINT_WARN("set adapter parameters not available " 1026 QETH_DBF_MESSAGE(2, "set adapter parameters not available "
1040 "to set macaddr mode, using NONCANONICAL " 1027 "to set macaddr mode, using NONCANONICAL "
1041 "on device %s:\n", CARD_BUS_ID(card)); 1028 "on device %s:\n", CARD_BUS_ID(card));
1042 return 0; 1029 return 0;
@@ -2070,7 +2057,7 @@ static struct qeth_card *qeth_l3_get_card_from_dev(struct net_device *dev)
2070 card = netdev_priv(dev); 2057 card = netdev_priv(dev);
2071 else if (rc == QETH_VLAN_CARD) 2058 else if (rc == QETH_VLAN_CARD)
2072 card = netdev_priv(vlan_dev_info(dev)->real_dev); 2059 card = netdev_priv(vlan_dev_info(dev)->real_dev);
2073 if (card->options.layer2) 2060 if (card && card->options.layer2)
2074 card = NULL; 2061 card = NULL;
2075 QETH_DBF_TEXT_(TRACE, 4, "%d", rc); 2062 QETH_DBF_TEXT_(TRACE, 4, "%d", rc);
2076 return card ; 2063 return card ;
@@ -2182,8 +2169,6 @@ static int qeth_l3_arp_set_no_entries(struct qeth_card *card, int no_entries)
2182 if (card->info.guestlan) 2169 if (card->info.guestlan)
2183 return -EOPNOTSUPP; 2170 return -EOPNOTSUPP;
2184 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 2171 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
2185 PRINT_WARN("ARP processing not supported "
2186 "on %s!\n", QETH_CARD_IFNAME(card));
2187 return -EOPNOTSUPP; 2172 return -EOPNOTSUPP;
2188 } 2173 }
2189 rc = qeth_l3_send_simple_setassparms(card, IPA_ARP_PROCESSING, 2174 rc = qeth_l3_send_simple_setassparms(card, IPA_ARP_PROCESSING,
@@ -2191,8 +2176,8 @@ static int qeth_l3_arp_set_no_entries(struct qeth_card *card, int no_entries)
2191 no_entries); 2176 no_entries);
2192 if (rc) { 2177 if (rc) {
2193 tmp = rc; 2178 tmp = rc;
2194 PRINT_WARN("Could not set number of ARP entries on %s: " 2179 QETH_DBF_MESSAGE(2, "Could not set number of ARP entries on "
2195 "%s (0x%x/%d)\n", QETH_CARD_IFNAME(card), 2180 "%s: %s (0x%x/%d)\n", QETH_CARD_IFNAME(card),
2196 qeth_l3_arp_get_error_cause(&rc), tmp, tmp); 2181 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2197 } 2182 }
2198 return rc; 2183 return rc;
@@ -2260,9 +2245,6 @@ static int qeth_l3_arp_query_cb(struct qeth_card *card,
2260 qdata->no_entries * uentry_size){ 2245 qdata->no_entries * uentry_size){
2261 QETH_DBF_TEXT_(TRACE, 4, "qaer3%i", -ENOMEM); 2246 QETH_DBF_TEXT_(TRACE, 4, "qaer3%i", -ENOMEM);
2262 cmd->hdr.return_code = -ENOMEM; 2247 cmd->hdr.return_code = -ENOMEM;
2263 PRINT_WARN("query ARP user space buffer is too small for "
2264 "the returned number of ARP entries. "
2265 "Aborting query!\n");
2266 goto out_error; 2248 goto out_error;
2267 } 2249 }
2268 QETH_DBF_TEXT_(TRACE, 4, "anore%i", 2250 QETH_DBF_TEXT_(TRACE, 4, "anore%i",
@@ -2324,8 +2306,6 @@ static int qeth_l3_arp_query(struct qeth_card *card, char __user *udata)
2324 2306
2325 if (!qeth_is_supported(card,/*IPA_QUERY_ARP_ADDR_INFO*/ 2307 if (!qeth_is_supported(card,/*IPA_QUERY_ARP_ADDR_INFO*/
2326 IPA_ARP_PROCESSING)) { 2308 IPA_ARP_PROCESSING)) {
2327 PRINT_WARN("ARP processing not supported "
2328 "on %s!\n", QETH_CARD_IFNAME(card));
2329 return -EOPNOTSUPP; 2309 return -EOPNOTSUPP;
2330 } 2310 }
2331 /* get size of userspace buffer and mask_bits -> 6 bytes */ 2311 /* get size of userspace buffer and mask_bits -> 6 bytes */
@@ -2344,7 +2324,7 @@ static int qeth_l3_arp_query(struct qeth_card *card, char __user *udata)
2344 qeth_l3_arp_query_cb, (void *)&qinfo); 2324 qeth_l3_arp_query_cb, (void *)&qinfo);
2345 if (rc) { 2325 if (rc) {
2346 tmp = rc; 2326 tmp = rc;
2347 PRINT_WARN("Error while querying ARP cache on %s: %s " 2327 QETH_DBF_MESSAGE(2, "Error while querying ARP cache on %s: %s "
2348 "(0x%x/%d)\n", QETH_CARD_IFNAME(card), 2328 "(0x%x/%d)\n", QETH_CARD_IFNAME(card),
2349 qeth_l3_arp_get_error_cause(&rc), tmp, tmp); 2329 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2350 if (copy_to_user(udata, qinfo.udata, 4)) 2330 if (copy_to_user(udata, qinfo.udata, 4))
@@ -2375,8 +2355,6 @@ static int qeth_l3_arp_add_entry(struct qeth_card *card,
2375 if (card->info.guestlan) 2355 if (card->info.guestlan)
2376 return -EOPNOTSUPP; 2356 return -EOPNOTSUPP;
2377 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 2357 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
2378 PRINT_WARN("ARP processing not supported "
2379 "on %s!\n", QETH_CARD_IFNAME(card));
2380 return -EOPNOTSUPP; 2358 return -EOPNOTSUPP;
2381 } 2359 }
2382 2360
@@ -2391,10 +2369,9 @@ static int qeth_l3_arp_add_entry(struct qeth_card *card,
2391 if (rc) { 2369 if (rc) {
2392 tmp = rc; 2370 tmp = rc;
2393 qeth_l3_ipaddr4_to_string((u8 *)entry->ipaddr, buf); 2371 qeth_l3_ipaddr4_to_string((u8 *)entry->ipaddr, buf);
2394 PRINT_WARN("Could not add ARP entry for address %s on %s: " 2372 QETH_DBF_MESSAGE(2, "Could not add ARP entry for address %s "
2395 "%s (0x%x/%d)\n", 2373 "on %s: %s (0x%x/%d)\n", buf, QETH_CARD_IFNAME(card),
2396 buf, QETH_CARD_IFNAME(card), 2374 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2397 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2398 } 2375 }
2399 return rc; 2376 return rc;
2400} 2377}
@@ -2417,8 +2394,6 @@ static int qeth_l3_arp_remove_entry(struct qeth_card *card,
2417 if (card->info.guestlan) 2394 if (card->info.guestlan)
2418 return -EOPNOTSUPP; 2395 return -EOPNOTSUPP;
2419 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 2396 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
2420 PRINT_WARN("ARP processing not supported "
2421 "on %s!\n", QETH_CARD_IFNAME(card));
2422 return -EOPNOTSUPP; 2397 return -EOPNOTSUPP;
2423 } 2398 }
2424 memcpy(buf, entry, 12); 2399 memcpy(buf, entry, 12);
@@ -2433,10 +2408,9 @@ static int qeth_l3_arp_remove_entry(struct qeth_card *card,
2433 tmp = rc; 2408 tmp = rc;
2434 memset(buf, 0, 16); 2409 memset(buf, 0, 16);
2435 qeth_l3_ipaddr4_to_string((u8 *)entry->ipaddr, buf); 2410 qeth_l3_ipaddr4_to_string((u8 *)entry->ipaddr, buf);
2436 PRINT_WARN("Could not delete ARP entry for address %s on %s: " 2411 QETH_DBF_MESSAGE(2, "Could not delete ARP entry for address %s"
2437 "%s (0x%x/%d)\n", 2412 " on %s: %s (0x%x/%d)\n", buf, QETH_CARD_IFNAME(card),
2438 buf, QETH_CARD_IFNAME(card), 2413 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2439 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2440 } 2414 }
2441 return rc; 2415 return rc;
2442} 2416}
@@ -2456,16 +2430,14 @@ static int qeth_l3_arp_flush_cache(struct qeth_card *card)
2456 if (card->info.guestlan || (card->info.type == QETH_CARD_TYPE_IQD)) 2430 if (card->info.guestlan || (card->info.type == QETH_CARD_TYPE_IQD))
2457 return -EOPNOTSUPP; 2431 return -EOPNOTSUPP;
2458 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) { 2432 if (!qeth_is_supported(card, IPA_ARP_PROCESSING)) {
2459 PRINT_WARN("ARP processing not supported "
2460 "on %s!\n", QETH_CARD_IFNAME(card));
2461 return -EOPNOTSUPP; 2433 return -EOPNOTSUPP;
2462 } 2434 }
2463 rc = qeth_l3_send_simple_setassparms(card, IPA_ARP_PROCESSING, 2435 rc = qeth_l3_send_simple_setassparms(card, IPA_ARP_PROCESSING,
2464 IPA_CMD_ASS_ARP_FLUSH_CACHE, 0); 2436 IPA_CMD_ASS_ARP_FLUSH_CACHE, 0);
2465 if (rc) { 2437 if (rc) {
2466 tmp = rc; 2438 tmp = rc;
2467 PRINT_WARN("Could not flush ARP cache on %s: %s (0x%x/%d)\n", 2439 QETH_DBF_MESSAGE(2, "Could not flush ARP cache on %s: %s "
2468 QETH_CARD_IFNAME(card), 2440 "(0x%x/%d)\n", QETH_CARD_IFNAME(card),
2469 qeth_l3_arp_get_error_cause(&rc), tmp, tmp); 2441 qeth_l3_arp_get_error_cause(&rc), tmp, tmp);
2470 } 2442 }
2471 return rc; 2443 return rc;
@@ -2724,7 +2696,7 @@ static int qeth_l3_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
2724 ctx = qeth_eddp_create_context(card, new_skb, hdr, 2696 ctx = qeth_eddp_create_context(card, new_skb, hdr,
2725 skb->sk->sk_protocol); 2697 skb->sk->sk_protocol);
2726 if (ctx == NULL) { 2698 if (ctx == NULL) {
2727 PRINT_WARN("could not create eddp context\n"); 2699 QETH_DBF_MESSAGE(2, "could not create eddp context\n");
2728 goto tx_drop; 2700 goto tx_drop;
2729 } 2701 }
2730 } else { 2702 } else {
@@ -2792,6 +2764,7 @@ tx_drop:
2792 if ((new_skb != skb) && new_skb) 2764 if ((new_skb != skb) && new_skb)
2793 dev_kfree_skb_any(new_skb); 2765 dev_kfree_skb_any(new_skb);
2794 dev_kfree_skb_any(skb); 2766 dev_kfree_skb_any(skb);
2767 netif_wake_queue(dev);
2795 return NETDEV_TX_OK; 2768 return NETDEV_TX_OK;
2796} 2769}
2797 2770
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c
index 08f51fd902c4..ac1993708ae9 100644
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -85,7 +85,6 @@ static ssize_t qeth_l3_dev_route_store(struct qeth_card *card,
85 } else if (!strcmp(tmp, "multicast_router")) { 85 } else if (!strcmp(tmp, "multicast_router")) {
86 route->type = MULTICAST_ROUTER; 86 route->type = MULTICAST_ROUTER;
87 } else { 87 } else {
88 PRINT_WARN("Invalid routing type '%s'.\n", tmp);
89 return -EINVAL; 88 return -EINVAL;
90 } 89 }
91 if (((card->state == CARD_STATE_SOFTSETUP) || 90 if (((card->state == CARD_STATE_SOFTSETUP) ||
@@ -137,9 +136,6 @@ static ssize_t qeth_l3_dev_route6_store(struct device *dev,
137 return -EINVAL; 136 return -EINVAL;
138 137
139 if (!qeth_is_supported(card, IPA_IPV6)) { 138 if (!qeth_is_supported(card, IPA_IPV6)) {
140 PRINT_WARN("IPv6 not supported for interface %s.\n"
141 "Routing status no changed.\n",
142 QETH_CARD_IFNAME(card));
143 return -ENOTSUPP; 139 return -ENOTSUPP;
144 } 140 }
145 141
@@ -179,7 +175,6 @@ static ssize_t qeth_l3_dev_fake_broadcast_store(struct device *dev,
179 if ((i == 0) || (i == 1)) 175 if ((i == 0) || (i == 1))
180 card->options.fake_broadcast = i; 176 card->options.fake_broadcast = i;
181 else { 177 else {
182 PRINT_WARN("fake_broadcast: write 0 or 1 to this file!\n");
183 return -EINVAL; 178 return -EINVAL;
184 } 179 }
185 return count; 180 return count;
@@ -220,7 +215,6 @@ static ssize_t qeth_l3_dev_broadcast_mode_store(struct device *dev,
220 215
221 if (!((card->info.link_type == QETH_LINK_TYPE_HSTR) || 216 if (!((card->info.link_type == QETH_LINK_TYPE_HSTR) ||
222 (card->info.link_type == QETH_LINK_TYPE_LANE_TR))) { 217 (card->info.link_type == QETH_LINK_TYPE_LANE_TR))) {
223 PRINT_WARN("Device is not a tokenring device!\n");
224 return -EINVAL; 218 return -EINVAL;
225 } 219 }
226 220
@@ -233,8 +227,6 @@ static ssize_t qeth_l3_dev_broadcast_mode_store(struct device *dev,
233 card->options.broadcast_mode = QETH_TR_BROADCAST_ALLRINGS; 227 card->options.broadcast_mode = QETH_TR_BROADCAST_ALLRINGS;
234 return count; 228 return count;
235 } else { 229 } else {
236 PRINT_WARN("broadcast_mode: invalid mode %s!\n",
237 tmp);
238 return -EINVAL; 230 return -EINVAL;
239 } 231 }
240 return count; 232 return count;
@@ -275,7 +267,6 @@ static ssize_t qeth_l3_dev_canonical_macaddr_store(struct device *dev,
275 267
276 if (!((card->info.link_type == QETH_LINK_TYPE_HSTR) || 268 if (!((card->info.link_type == QETH_LINK_TYPE_HSTR) ||
277 (card->info.link_type == QETH_LINK_TYPE_LANE_TR))) { 269 (card->info.link_type == QETH_LINK_TYPE_LANE_TR))) {
278 PRINT_WARN("Device is not a tokenring device!\n");
279 return -EINVAL; 270 return -EINVAL;
280 } 271 }
281 272
@@ -285,7 +276,6 @@ static ssize_t qeth_l3_dev_canonical_macaddr_store(struct device *dev,
285 QETH_TR_MACADDR_CANONICAL : 276 QETH_TR_MACADDR_CANONICAL :
286 QETH_TR_MACADDR_NONCANONICAL; 277 QETH_TR_MACADDR_NONCANONICAL;
287 else { 278 else {
288 PRINT_WARN("canonical_macaddr: write 0 or 1 to this file!\n");
289 return -EINVAL; 279 return -EINVAL;
290 } 280 }
291 return count; 281 return count;
@@ -327,7 +317,6 @@ static ssize_t qeth_l3_dev_checksum_store(struct device *dev,
327 else if (!strcmp(tmp, "no_checksumming")) 317 else if (!strcmp(tmp, "no_checksumming"))
328 card->options.checksum_type = NO_CHECKSUMMING; 318 card->options.checksum_type = NO_CHECKSUMMING;
329 else { 319 else {
330 PRINT_WARN("Unknown checksumming type '%s'\n", tmp);
331 return -EINVAL; 320 return -EINVAL;
332 } 321 }
333 return count; 322 return count;
@@ -382,8 +371,6 @@ static ssize_t qeth_l3_dev_ipato_enable_store(struct device *dev,
382 } else if (!strcmp(tmp, "0")) { 371 } else if (!strcmp(tmp, "0")) {
383 card->ipato.enabled = 0; 372 card->ipato.enabled = 0;
384 } else { 373 } else {
385 PRINT_WARN("ipato_enable: write 0, 1 or 'toggle' to "
386 "this file\n");
387 return -EINVAL; 374 return -EINVAL;
388 } 375 }
389 return count; 376 return count;
@@ -422,8 +409,6 @@ static ssize_t qeth_l3_dev_ipato_invert4_store(struct device *dev,
422 } else if (!strcmp(tmp, "0")) { 409 } else if (!strcmp(tmp, "0")) {
423 card->ipato.invert4 = 0; 410 card->ipato.invert4 = 0;
424 } else { 411 } else {
425 PRINT_WARN("ipato_invert4: write 0, 1 or 'toggle' to "
426 "this file\n");
427 return -EINVAL; 412 return -EINVAL;
428 } 413 }
429 return count; 414 return count;
@@ -486,13 +471,10 @@ static int qeth_l3_parse_ipatoe(const char *buf, enum qeth_prot_versions proto,
486 /* get address string */ 471 /* get address string */
487 end = strchr(start, '/'); 472 end = strchr(start, '/');
488 if (!end || (end - start >= 40)) { 473 if (!end || (end - start >= 40)) {
489 PRINT_WARN("Invalid format for ipato_addx/delx. "
490 "Use <ip addr>/<mask bits>\n");
491 return -EINVAL; 474 return -EINVAL;
492 } 475 }
493 strncpy(buffer, start, end - start); 476 strncpy(buffer, start, end - start);
494 if (qeth_l3_string_to_ipaddr(buffer, proto, addr)) { 477 if (qeth_l3_string_to_ipaddr(buffer, proto, addr)) {
495 PRINT_WARN("Invalid IP address format!\n");
496 return -EINVAL; 478 return -EINVAL;
497 } 479 }
498 start = end + 1; 480 start = end + 1;
@@ -500,7 +482,6 @@ static int qeth_l3_parse_ipatoe(const char *buf, enum qeth_prot_versions proto,
500 if (!strlen(start) || 482 if (!strlen(start) ||
501 (tmp == start) || 483 (tmp == start) ||
502 (*mask_bits > ((proto == QETH_PROT_IPV4) ? 32 : 128))) { 484 (*mask_bits > ((proto == QETH_PROT_IPV4) ? 32 : 128))) {
503 PRINT_WARN("Invalid mask bits for ipato_addx/delx !\n");
504 return -EINVAL; 485 return -EINVAL;
505 } 486 }
506 return 0; 487 return 0;
@@ -520,7 +501,6 @@ static ssize_t qeth_l3_dev_ipato_add_store(const char *buf, size_t count,
520 501
521 ipatoe = kzalloc(sizeof(struct qeth_ipato_entry), GFP_KERNEL); 502 ipatoe = kzalloc(sizeof(struct qeth_ipato_entry), GFP_KERNEL);
522 if (!ipatoe) { 503 if (!ipatoe) {
523 PRINT_WARN("No memory to allocate ipato entry\n");
524 return -ENOMEM; 504 return -ENOMEM;
525 } 505 }
526 ipatoe->proto = proto; 506 ipatoe->proto = proto;
@@ -609,8 +589,6 @@ static ssize_t qeth_l3_dev_ipato_invert6_store(struct device *dev,
609 } else if (!strcmp(tmp, "0")) { 589 } else if (!strcmp(tmp, "0")) {
610 card->ipato.invert6 = 0; 590 card->ipato.invert6 = 0;
611 } else { 591 } else {
612 PRINT_WARN("ipato_invert6: write 0, 1 or 'toggle' to "
613 "this file\n");
614 return -EINVAL; 592 return -EINVAL;
615 } 593 }
616 return count; 594 return count;
@@ -724,7 +702,6 @@ static int qeth_l3_parse_vipae(const char *buf, enum qeth_prot_versions proto,
724 u8 *addr) 702 u8 *addr)
725{ 703{
726 if (qeth_l3_string_to_ipaddr(buf, proto, addr)) { 704 if (qeth_l3_string_to_ipaddr(buf, proto, addr)) {
727 PRINT_WARN("Invalid IP address format!\n");
728 return -EINVAL; 705 return -EINVAL;
729 } 706 }
730 return 0; 707 return 0;
@@ -891,7 +868,6 @@ static int qeth_l3_parse_rxipe(const char *buf, enum qeth_prot_versions proto,
891 u8 *addr) 868 u8 *addr)
892{ 869{
893 if (qeth_l3_string_to_ipaddr(buf, proto, addr)) { 870 if (qeth_l3_string_to_ipaddr(buf, proto, addr)) {
894 PRINT_WARN("Invalid IP address format!\n");
895 return -EINVAL; 871 return -EINVAL;
896 } 872 }
897 return 0; 873 return 0;
diff --git a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c
index 5080f343ad74..5bfbe7659830 100644
--- a/drivers/s390/s390mach.c
+++ b/drivers/s390/s390mach.c
@@ -207,6 +207,7 @@ s390_handle_mcck(void)
207 do_exit(SIGSEGV); 207 do_exit(SIGSEGV);
208 } 208 }
209} 209}
210EXPORT_SYMBOL_GPL(s390_handle_mcck);
210 211
211/* 212/*
212 * returns 0 if all registers could be validated 213 * returns 0 if all registers could be validated
diff --git a/drivers/scsi/dpt/dptsig.h b/drivers/scsi/dpt/dptsig.h
index 72c8992fdf21..a6644b332b53 100644
--- a/drivers/scsi/dpt/dptsig.h
+++ b/drivers/scsi/dpt/dptsig.h
@@ -85,7 +85,7 @@ typedef unsigned int sigINT;
85/* ------------------------------------------------------------------ */ 85/* ------------------------------------------------------------------ */
86/* What type of processor the file is meant to run on. */ 86/* What type of processor the file is meant to run on. */
87/* This will let us know whether to read sigWORDs as high/low or low/high. */ 87/* This will let us know whether to read sigWORDs as high/low or low/high. */
88#define PROC_INTEL 0x00 /* Intel 80x86 */ 88#define PROC_INTEL 0x00 /* Intel 80x86/ia64 */
89#define PROC_MOTOROLA 0x01 /* Motorola 68K */ 89#define PROC_MOTOROLA 0x01 /* Motorola 68K */
90#define PROC_MIPS4000 0x02 /* MIPS RISC 4000 */ 90#define PROC_MIPS4000 0x02 /* MIPS RISC 4000 */
91#define PROC_ALPHA 0x03 /* DEC Alpha */ 91#define PROC_ALPHA 0x03 /* DEC Alpha */
@@ -104,6 +104,7 @@ typedef unsigned int sigINT;
104#define PROC_486 0x08 /* Intel 80486 */ 104#define PROC_486 0x08 /* Intel 80486 */
105#define PROC_PENTIUM 0x10 /* Intel 586 aka P5 aka Pentium */ 105#define PROC_PENTIUM 0x10 /* Intel 586 aka P5 aka Pentium */
106#define PROC_SEXIUM 0x20 /* Intel 686 aka P6 aka Pentium Pro or MMX */ 106#define PROC_SEXIUM 0x20 /* Intel 686 aka P6 aka Pentium Pro or MMX */
107#define PROC_IA64 0x40 /* Intel IA64 processor */
107 108
108/* PROC_i960: */ 109/* PROC_i960: */
109#define PROC_960RX 0x01 /* Intel 80960RC/RD */ 110#define PROC_960RX 0x01 /* Intel 80960RC/RD */
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index 3690360d7a79..c6457bfc8a49 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -456,6 +456,10 @@ static int __scsi_host_match(struct device *dev, void *data)
456 * 456 *
457 * Return value: 457 * Return value:
458 * A pointer to located Scsi_Host or NULL. 458 * A pointer to located Scsi_Host or NULL.
459 *
460 * The caller must do a scsi_host_put() to drop the reference
461 * that scsi_host_get() took. The put_device() below dropped
462 * the reference from class_find_device().
459 **/ 463 **/
460struct Scsi_Host *scsi_host_lookup(unsigned short hostnum) 464struct Scsi_Host *scsi_host_lookup(unsigned short hostnum)
461{ 465{
@@ -463,9 +467,10 @@ struct Scsi_Host *scsi_host_lookup(unsigned short hostnum)
463 struct Scsi_Host *shost = ERR_PTR(-ENXIO); 467 struct Scsi_Host *shost = ERR_PTR(-ENXIO);
464 468
465 cdev = class_find_device(&shost_class, &hostnum, __scsi_host_match); 469 cdev = class_find_device(&shost_class, &hostnum, __scsi_host_match);
466 if (cdev) 470 if (cdev) {
467 shost = scsi_host_get(class_to_shost(cdev)); 471 shost = scsi_host_get(class_to_shost(cdev));
468 472 put_device(cdev);
473 }
469 return shost; 474 return shost;
470} 475}
471EXPORT_SYMBOL(scsi_host_lookup); 476EXPORT_SYMBOL(scsi_host_lookup);
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 7ee86d4a7618..c82df8bd4d89 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -178,6 +178,9 @@ int sr_test_unit_ready(struct scsi_device *sdev, struct scsi_sense_hdr *sshdr)
178 the_result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 178 the_result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL,
179 0, sshdr, SR_TIMEOUT, 179 0, sshdr, SR_TIMEOUT,
180 retries--); 180 retries--);
181 if (scsi_sense_valid(sshdr) &&
182 sshdr->sense_key == UNIT_ATTENTION)
183 sdev->changed = 1;
181 184
182 } while (retries > 0 && 185 } while (retries > 0 &&
183 (!scsi_status_is_good(the_result) || 186 (!scsi_status_is_good(the_result) ||
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index d6b4ead693b7..fd9bb777df28 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -49,6 +49,7 @@
49#define DMA_RX_YCOUNT (PAGE_SIZE / DMA_RX_XCOUNT) 49#define DMA_RX_YCOUNT (PAGE_SIZE / DMA_RX_XCOUNT)
50 50
51#define DMA_RX_FLUSH_JIFFIES (HZ / 50) 51#define DMA_RX_FLUSH_JIFFIES (HZ / 50)
52#define CTS_CHECK_JIFFIES (HZ / 50)
52 53
53#ifdef CONFIG_SERIAL_BFIN_DMA 54#ifdef CONFIG_SERIAL_BFIN_DMA
54static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart); 55static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart);
@@ -290,11 +291,6 @@ static void bfin_serial_tx_chars(struct bfin_serial_port *uart)
290{ 291{
291 struct circ_buf *xmit = &uart->port.info->xmit; 292 struct circ_buf *xmit = &uart->port.info->xmit;
292 293
293 if (uart->port.x_char) {
294 UART_PUT_CHAR(uart, uart->port.x_char);
295 uart->port.icount.tx++;
296 uart->port.x_char = 0;
297 }
298 /* 294 /*
299 * Check the modem control lines before 295 * Check the modem control lines before
300 * transmitting anything. 296 * transmitting anything.
@@ -306,6 +302,12 @@ static void bfin_serial_tx_chars(struct bfin_serial_port *uart)
306 return; 302 return;
307 } 303 }
308 304
305 if (uart->port.x_char) {
306 UART_PUT_CHAR(uart, uart->port.x_char);
307 uart->port.icount.tx++;
308 uart->port.x_char = 0;
309 }
310
309 while ((UART_GET_LSR(uart) & THRE) && xmit->tail != xmit->head) { 311 while ((UART_GET_LSR(uart) & THRE) && xmit->tail != xmit->head) {
310 UART_PUT_CHAR(uart, xmit->buf[xmit->tail]); 312 UART_PUT_CHAR(uart, xmit->buf[xmit->tail]);
311 xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1); 313 xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
@@ -345,15 +347,6 @@ static irqreturn_t bfin_serial_tx_int(int irq, void *dev_id)
345} 347}
346#endif 348#endif
347 349
348#ifdef CONFIG_SERIAL_BFIN_CTSRTS
349static void bfin_serial_do_work(struct work_struct *work)
350{
351 struct bfin_serial_port *uart = container_of(work, struct bfin_serial_port, cts_workqueue);
352
353 bfin_serial_mctrl_check(uart);
354}
355#endif
356
357#ifdef CONFIG_SERIAL_BFIN_DMA 350#ifdef CONFIG_SERIAL_BFIN_DMA
358static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart) 351static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart)
359{ 352{
@@ -361,6 +354,12 @@ static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart)
361 354
362 uart->tx_done = 0; 355 uart->tx_done = 0;
363 356
357 /*
358 * Check the modem control lines before
359 * transmitting anything.
360 */
361 bfin_serial_mctrl_check(uart);
362
364 if (uart_circ_empty(xmit) || uart_tx_stopped(&uart->port)) { 363 if (uart_circ_empty(xmit) || uart_tx_stopped(&uart->port)) {
365 uart->tx_count = 0; 364 uart->tx_count = 0;
366 uart->tx_done = 1; 365 uart->tx_done = 1;
@@ -373,12 +372,6 @@ static void bfin_serial_dma_tx_chars(struct bfin_serial_port *uart)
373 uart->port.x_char = 0; 372 uart->port.x_char = 0;
374 } 373 }
375 374
376 /*
377 * Check the modem control lines before
378 * transmitting anything.
379 */
380 bfin_serial_mctrl_check(uart);
381
382 uart->tx_count = CIRC_CNT(xmit->head, xmit->tail, UART_XMIT_SIZE); 375 uart->tx_count = CIRC_CNT(xmit->head, xmit->tail, UART_XMIT_SIZE);
383 if (uart->tx_count > (UART_XMIT_SIZE - xmit->tail)) 376 if (uart->tx_count > (UART_XMIT_SIZE - xmit->tail))
384 uart->tx_count = UART_XMIT_SIZE - xmit->tail; 377 uart->tx_count = UART_XMIT_SIZE - xmit->tail;
@@ -530,11 +523,7 @@ static unsigned int bfin_serial_get_mctrl(struct uart_port *port)
530 if (uart->cts_pin < 0) 523 if (uart->cts_pin < 0)
531 return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR; 524 return TIOCM_CTS | TIOCM_DSR | TIOCM_CAR;
532 525
533# ifdef BF54x 526 if (UART_GET_CTS(uart))
534 if (UART_GET_MSR(uart) & CTS)
535# else
536 if (gpio_get_value(uart->cts_pin))
537# endif
538 return TIOCM_DSR | TIOCM_CAR; 527 return TIOCM_DSR | TIOCM_CAR;
539 else 528 else
540#endif 529#endif
@@ -549,17 +538,9 @@ static void bfin_serial_set_mctrl(struct uart_port *port, unsigned int mctrl)
549 return; 538 return;
550 539
551 if (mctrl & TIOCM_RTS) 540 if (mctrl & TIOCM_RTS)
552# ifdef BF54x 541 UART_CLEAR_RTS(uart);
553 UART_PUT_MCR(uart, UART_GET_MCR(uart) & ~MRTS);
554# else
555 gpio_set_value(uart->rts_pin, 0);
556# endif
557 else 542 else
558# ifdef BF54x 543 UART_SET_RTS(uart);
559 UART_PUT_MCR(uart, UART_GET_MCR(uart) | MRTS);
560# else
561 gpio_set_value(uart->rts_pin, 1);
562# endif
563#endif 544#endif
564} 545}
565 546
@@ -577,7 +558,10 @@ static void bfin_serial_mctrl_check(struct bfin_serial_port *uart)
577 uart_handle_cts_change(&uart->port, status & TIOCM_CTS); 558 uart_handle_cts_change(&uart->port, status & TIOCM_CTS);
578 if (!(status & TIOCM_CTS)) { 559 if (!(status & TIOCM_CTS)) {
579 tty->hw_stopped = 1; 560 tty->hw_stopped = 1;
580 schedule_work(&uart->cts_workqueue); 561 uart->cts_timer.data = (unsigned long)(uart);
562 uart->cts_timer.function = (void *)bfin_serial_mctrl_check;
563 uart->cts_timer.expires = jiffies + CTS_CHECK_JIFFIES;
564 add_timer(&(uart->cts_timer));
581 } else { 565 } else {
582 tty->hw_stopped = 0; 566 tty->hw_stopped = 0;
583 } 567 }
@@ -752,11 +736,7 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
752 736
753 /* Disable UART */ 737 /* Disable UART */
754 ier = UART_GET_IER(uart); 738 ier = UART_GET_IER(uart);
755#ifdef CONFIG_BF54x 739 UART_DISABLE_INTS(uart);
756 UART_CLEAR_IER(uart, 0xF);
757#else
758 UART_PUT_IER(uart, 0);
759#endif
760 740
761 /* Set DLAB in LCR to Access DLL and DLH */ 741 /* Set DLAB in LCR to Access DLL and DLH */
762 UART_SET_DLAB(uart); 742 UART_SET_DLAB(uart);
@@ -771,11 +751,7 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
771 UART_PUT_LCR(uart, lcr); 751 UART_PUT_LCR(uart, lcr);
772 752
773 /* Enable UART */ 753 /* Enable UART */
774#ifdef CONFIG_BF54x 754 UART_ENABLE_INTS(uart, ier);
775 UART_SET_IER(uart, ier);
776#else
777 UART_PUT_IER(uart, ier);
778#endif
779 755
780 val = UART_GET_GCTL(uart); 756 val = UART_GET_GCTL(uart);
781 val |= UCEN; 757 val |= UCEN;
@@ -833,15 +809,15 @@ bfin_serial_verify_port(struct uart_port *port, struct serial_struct *ser)
833 * Enable the IrDA function if tty->ldisc.num is N_IRDA. 809 * Enable the IrDA function if tty->ldisc.num is N_IRDA.
834 * In other cases, disable IrDA function. 810 * In other cases, disable IrDA function.
835 */ 811 */
836static void bfin_set_ldisc(struct tty_struct *tty) 812static void bfin_serial_set_ldisc(struct uart_port *port)
837{ 813{
838 int line = tty->index; 814 int line = port->line;
839 unsigned short val; 815 unsigned short val;
840 816
841 if (line >= tty->driver->num) 817 if (line >= port->info->tty->driver->num)
842 return; 818 return;
843 819
844 switch (tty->ldisc.num) { 820 switch (port->info->tty->ldisc.num) {
845 case N_IRDA: 821 case N_IRDA:
846 val = UART_GET_GCTL(&bfin_serial_ports[line]); 822 val = UART_GET_GCTL(&bfin_serial_ports[line]);
847 val |= (IREN | RPOLC); 823 val |= (IREN | RPOLC);
@@ -866,6 +842,7 @@ static struct uart_ops bfin_serial_pops = {
866 .startup = bfin_serial_startup, 842 .startup = bfin_serial_startup,
867 .shutdown = bfin_serial_shutdown, 843 .shutdown = bfin_serial_shutdown,
868 .set_termios = bfin_serial_set_termios, 844 .set_termios = bfin_serial_set_termios,
845 .set_ldisc = bfin_serial_set_ldisc,
869 .type = bfin_serial_type, 846 .type = bfin_serial_type,
870 .release_port = bfin_serial_release_port, 847 .release_port = bfin_serial_release_port,
871 .request_port = bfin_serial_request_port, 848 .request_port = bfin_serial_request_port,
@@ -904,7 +881,7 @@ static void __init bfin_serial_init_ports(void)
904 init_timer(&(bfin_serial_ports[i].rx_dma_timer)); 881 init_timer(&(bfin_serial_ports[i].rx_dma_timer));
905#endif 882#endif
906#ifdef CONFIG_SERIAL_BFIN_CTSRTS 883#ifdef CONFIG_SERIAL_BFIN_CTSRTS
907 INIT_WORK(&bfin_serial_ports[i].cts_workqueue, bfin_serial_do_work); 884 init_timer(&(bfin_serial_ports[i].cts_timer));
908 bfin_serial_ports[i].cts_pin = 885 bfin_serial_ports[i].cts_pin =
909 bfin_serial_resource[i].uart_cts_pin; 886 bfin_serial_resource[i].uart_cts_pin;
910 bfin_serial_ports[i].rts_pin = 887 bfin_serial_ports[i].rts_pin =
@@ -1206,7 +1183,6 @@ static int __init bfin_serial_init(void)
1206 1183
1207 ret = uart_register_driver(&bfin_serial_reg); 1184 ret = uart_register_driver(&bfin_serial_reg);
1208 if (ret == 0) { 1185 if (ret == 0) {
1209 bfin_serial_reg.tty_driver->set_ldisc = bfin_set_ldisc;
1210 ret = platform_driver_register(&bfin_serial_driver); 1186 ret = platform_driver_register(&bfin_serial_driver);
1211 if (ret) { 1187 if (ret) {
1212 pr_debug("uart register failed\n"); 1188 pr_debug("uart register failed\n");
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index 7cf8851286b5..d184f2aea78d 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -1168,15 +1168,21 @@ EXPORT_SYMBOL(ssb_dma_translation);
1168int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask) 1168int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask)
1169{ 1169{
1170 struct device *dma_dev = ssb_dev->dma_dev; 1170 struct device *dma_dev = ssb_dev->dma_dev;
1171 int err = 0;
1171 1172
1172#ifdef CONFIG_SSB_PCIHOST 1173#ifdef CONFIG_SSB_PCIHOST
1173 if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI) 1174 if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI) {
1174 return dma_set_mask(dma_dev, mask); 1175 err = pci_set_dma_mask(ssb_dev->bus->host_pci, mask);
1176 if (err)
1177 return err;
1178 err = pci_set_consistent_dma_mask(ssb_dev->bus->host_pci, mask);
1179 return err;
1180 }
1175#endif 1181#endif
1176 dma_dev->coherent_dma_mask = mask; 1182 dma_dev->coherent_dma_mask = mask;
1177 dma_dev->dma_mask = &dma_dev->coherent_dma_mask; 1183 dma_dev->dma_mask = &dma_dev->coherent_dma_mask;
1178 1184
1179 return 0; 1185 return err;
1180} 1186}
1181EXPORT_SYMBOL(ssb_dma_set_mask); 1187EXPORT_SYMBOL(ssb_dma_set_mask);
1182 1188
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index 4b628526df09..a86e952ed4ca 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -12,3 +12,12 @@ menuconfig THERMAL
12 cooling devices. 12 cooling devices.
13 All platforms with ACPI thermal support can use this driver. 13 All platforms with ACPI thermal support can use this driver.
14 If you want this support, you should say Y or M here. 14 If you want this support, you should say Y or M here.
15
16config THERMAL_HWMON
17 bool "Hardware monitoring support"
18 depends on HWMON=y || HWMON=THERMAL
19 help
20 The generic thermal sysfs driver's hardware monitoring support
21 requires a 2.10.7/3.0.2 or later lm-sensors userspace.
22
23 Say Y if your user-space is new enough.
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 6098787341f3..fe07462d5947 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -295,8 +295,8 @@ thermal_cooling_device_trip_point_show(struct device *dev,
295 295
296/* Device management */ 296/* Device management */
297 297
298#if defined(CONFIG_HWMON) || \ 298#if defined(CONFIG_THERMAL_HWMON)
299 (defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE)) 299
300/* hwmon sys I/F */ 300/* hwmon sys I/F */
301#include <linux/hwmon.h> 301#include <linux/hwmon.h>
302static LIST_HEAD(thermal_hwmon_list); 302static LIST_HEAD(thermal_hwmon_list);
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 8eb4da332f56..94789be54ca3 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -644,6 +644,48 @@ static void hub_stop(struct usb_hub *hub)
644 644
645#ifdef CONFIG_PM 645#ifdef CONFIG_PM
646 646
647/* Try to identify which devices need USB-PERSIST handling */
648static int persistent_device(struct usb_device *udev)
649{
650 int i;
651 int retval;
652 struct usb_host_config *actconfig;
653
654 /* Explicitly not marked persistent? */
655 if (!udev->persist_enabled)
656 return 0;
657
658 /* No active config? */
659 actconfig = udev->actconfig;
660 if (!actconfig)
661 return 0;
662
663 /* FIXME! We should check whether it's open here or not! */
664
665 /*
666 * Check that all the interface drivers have a
667 * 'reset_resume' entrypoint
668 */
669 retval = 0;
670 for (i = 0; i < actconfig->desc.bNumInterfaces; i++) {
671 struct usb_interface *intf;
672 struct usb_driver *driver;
673
674 intf = actconfig->interface[i];
675 if (!intf->dev.driver)
676 continue;
677 driver = to_usb_driver(intf->dev.driver);
678 if (!driver->reset_resume)
679 return 0;
680 /*
681 * We have at least one driver, and that one
682 * has a reset_resume method.
683 */
684 retval = 1;
685 }
686 return retval;
687}
688
647static void hub_restart(struct usb_hub *hub, int type) 689static void hub_restart(struct usb_hub *hub, int type)
648{ 690{
649 struct usb_device *hdev = hub->hdev; 691 struct usb_device *hdev = hub->hdev;
@@ -689,8 +731,8 @@ static void hub_restart(struct usb_hub *hub, int type)
689 * turn off the various status changes to prevent 731 * turn off the various status changes to prevent
690 * khubd from disconnecting it later. 732 * khubd from disconnecting it later.
691 */ 733 */
692 if (udev->persist_enabled && status == 0 && 734 if (status == 0 && !(portstatus & USB_PORT_STAT_ENABLE) &&
693 !(portstatus & USB_PORT_STAT_ENABLE)) { 735 persistent_device(udev)) {
694 if (portchange & USB_PORT_STAT_C_ENABLE) 736 if (portchange & USB_PORT_STAT_C_ENABLE)
695 clear_port_feature(hub->hdev, port1, 737 clear_port_feature(hub->hdev, port1,
696 USB_PORT_FEAT_C_ENABLE); 738 USB_PORT_FEAT_C_ENABLE);
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 3da1ab4b389d..c070b34b669d 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -47,6 +47,9 @@ static const struct usb_device_id usb_quirk_list[] = {
47 /* Edirol SD-20 */ 47 /* Edirol SD-20 */
48 { USB_DEVICE(0x0582, 0x0027), .driver_info = USB_QUIRK_RESET_RESUME }, 48 { USB_DEVICE(0x0582, 0x0027), .driver_info = USB_QUIRK_RESET_RESUME },
49 49
50 /* appletouch */
51 { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME },
52
50 /* Avision AV600U */ 53 /* Avision AV600U */
51 { USB_DEVICE(0x0638, 0x0a13), .driver_info = 54 { USB_DEVICE(0x0638, 0x0a13), .driver_info =
52 USB_QUIRK_STRING_FETCH_255 }, 55 USB_QUIRK_STRING_FETCH_255 },
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 1ef6df395e0c..228797e54f9c 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -300,8 +300,8 @@ config USB_R8A66597_HCD
300 module will be called r8a66597-hcd. 300 module will be called r8a66597-hcd.
301 301
302config SUPERH_ON_CHIP_R8A66597 302config SUPERH_ON_CHIP_R8A66597
303 boolean "Enable SuperH on-chip USB like the R8A66597" 303 boolean "Enable SuperH on-chip R8A66597 USB"
304 depends on USB_R8A66597_HCD && CPU_SUBTYPE_SH7366 304 depends on USB_R8A66597_HCD && (CPU_SUBTYPE_SH7366 || CPU_SUBTYPE_SH7723)
305 help 305 help
306 Renesas SuperH processor has USB like the R8A66597. 306 This driver enables support for the on-chip R8A66597 in the
307 This driver supported processor is SH7366. 307 SH7366 and SH7723 processors.
diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c
index c9cec8738261..65aa5ecf569a 100644
--- a/drivers/usb/host/isp1760-hcd.c
+++ b/drivers/usb/host/isp1760-hcd.c
@@ -2207,14 +2207,14 @@ struct usb_hcd *isp1760_register(u64 res_start, u64 res_len, int irq,
2207 goto err_put; 2207 goto err_put;
2208 } 2208 }
2209 2209
2210 ret = usb_add_hcd(hcd, irq, irqflags);
2211 if (ret)
2212 goto err_unmap;
2213
2214 hcd->irq = irq; 2210 hcd->irq = irq;
2215 hcd->rsrc_start = res_start; 2211 hcd->rsrc_start = res_start;
2216 hcd->rsrc_len = res_len; 2212 hcd->rsrc_len = res_len;
2217 2213
2214 ret = usb_add_hcd(hcd, irq, irqflags);
2215 if (ret)
2216 goto err_unmap;
2217
2218 return hcd; 2218 return hcd;
2219 2219
2220err_unmap: 2220err_unmap:
diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig
index eb6c06979f3b..001789c9a11a 100644
--- a/drivers/usb/misc/Kconfig
+++ b/drivers/usb/misc/Kconfig
@@ -272,6 +272,7 @@ config USB_TEST
272config USB_ISIGHTFW 272config USB_ISIGHTFW
273 tristate "iSight firmware loading support" 273 tristate "iSight firmware loading support"
274 depends on USB 274 depends on USB
275 select FW_LOADER
275 help 276 help
276 This driver loads firmware for USB Apple iSight cameras, allowing 277 This driver loads firmware for USB Apple iSight cameras, allowing
277 them to be driven by the USB video class driver available at 278 them to be driven by the USB video class driver available at
diff --git a/drivers/usb/misc/isight_firmware.c b/drivers/usb/misc/isight_firmware.c
index 390e04885536..9f30aa1f8a5d 100644
--- a/drivers/usb/misc/isight_firmware.c
+++ b/drivers/usb/misc/isight_firmware.c
@@ -39,9 +39,12 @@ static int isight_firmware_load(struct usb_interface *intf,
39 struct usb_device *dev = interface_to_usbdev(intf); 39 struct usb_device *dev = interface_to_usbdev(intf);
40 int llen, len, req, ret = 0; 40 int llen, len, req, ret = 0;
41 const struct firmware *firmware; 41 const struct firmware *firmware;
42 unsigned char *buf; 42 unsigned char *buf = kmalloc(50, GFP_KERNEL);
43 unsigned char data[4]; 43 unsigned char data[4];
44 char *ptr; 44 u8 *ptr;
45
46 if (!buf)
47 return -ENOMEM;
45 48
46 if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) { 49 if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) {
47 printk(KERN_ERR "Unable to load isight firmware\n"); 50 printk(KERN_ERR "Unable to load isight firmware\n");
@@ -59,7 +62,7 @@ static int isight_firmware_load(struct usb_interface *intf,
59 goto out; 62 goto out;
60 } 63 }
61 64
62 while (1) { 65 while (ptr+4 <= firmware->data+firmware->size) {
63 memcpy(data, ptr, 4); 66 memcpy(data, ptr, 4);
64 len = (data[0] << 8 | data[1]); 67 len = (data[0] << 8 | data[1]);
65 req = (data[2] << 8 | data[3]); 68 req = (data[2] << 8 | data[3]);
@@ -71,10 +74,14 @@ static int isight_firmware_load(struct usb_interface *intf,
71 continue; 74 continue;
72 75
73 for (; len > 0; req += 50) { 76 for (; len > 0; req += 50) {
74 llen = len > 50 ? 50 : len; 77 llen = min(len, 50);
75 len -= llen; 78 len -= llen;
76 79 if (ptr+llen > firmware->data+firmware->size) {
77 buf = kmalloc(llen, GFP_KERNEL); 80 printk(KERN_ERR
81 "Malformed isight firmware");
82 ret = -ENODEV;
83 goto out;
84 }
78 memcpy(buf, ptr, llen); 85 memcpy(buf, ptr, llen);
79 86
80 ptr += llen; 87 ptr += llen;
@@ -89,16 +96,18 @@ static int isight_firmware_load(struct usb_interface *intf,
89 goto out; 96 goto out;
90 } 97 }
91 98
92 kfree(buf);
93 } 99 }
94 } 100 }
101
95 if (usb_control_msg 102 if (usb_control_msg
96 (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\0", 1, 103 (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\0", 1,
97 300) != 1) { 104 300) != 1) {
98 printk(KERN_ERR "isight firmware loading completion failed\n"); 105 printk(KERN_ERR "isight firmware loading completion failed\n");
99 ret = -ENODEV; 106 ret = -ENODEV;
100 } 107 }
108
101out: 109out:
110 kfree(buf);
102 release_firmware(firmware); 111 release_firmware(firmware);
103 return ret; 112 return ret;
104} 113}
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index 35ac9d956b3d..c14b2435d23e 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -2432,9 +2432,9 @@ static int cirrusfb_pci_register(struct pci_dev *pdev,
2432 info->screen_size = board_size; 2432 info->screen_size = board_size;
2433 cinfo->unmap = cirrusfb_pci_unmap; 2433 cinfo->unmap = cirrusfb_pci_unmap;
2434 2434
2435 printk(KERN_INFO " RAM (%lu kB) at 0xx%lx, ", 2435 printk(KERN_INFO "RAM (%lu kB) at 0x%lx, Cirrus "
2436 info->screen_size >> 10, board_addr); 2436 "Logic chipset on PCI bus\n",
2437 printk(KERN_INFO "Cirrus Logic chipset on PCI bus\n"); 2437 info->screen_size >> 10, board_addr);
2438 pci_set_drvdata(pdev, info); 2438 pci_set_drvdata(pdev, info);
2439 2439
2440 ret = cirrusfb_register(info); 2440 ret = cirrusfb_register(info);
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index b50bb03cb5ab..0a2785361ca3 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c
@@ -1320,7 +1320,7 @@ static void free_irq_local(int irq)
1320 * Power management hooks. Note that we won't be called from IRQ context, 1320 * Power management hooks. Note that we won't be called from IRQ context,
1321 * unlike the blank functions above, so we may sleep. 1321 * unlike the blank functions above, so we may sleep.
1322 */ 1322 */
1323static int fsl_diu_suspend(struct of_device *dev, pm_message_t state) 1323static int fsl_diu_suspend(struct of_device *ofdev, pm_message_t state)
1324{ 1324{
1325 struct fsl_diu_data *machine_data; 1325 struct fsl_diu_data *machine_data;
1326 1326
@@ -1330,7 +1330,7 @@ static int fsl_diu_suspend(struct of_device *dev, pm_message_t state)
1330 return 0; 1330 return 0;
1331} 1331}
1332 1332
1333static int fsl_diu_resume(struct of_device *dev) 1333static int fsl_diu_resume(struct of_device *ofdev)
1334{ 1334{
1335 struct fsl_diu_data *machine_data; 1335 struct fsl_diu_data *machine_data;
1336 1336
diff --git a/drivers/video/hgafb.c b/drivers/video/hgafb.c
index fb9e67228543..c18880d9db1f 100644
--- a/drivers/video/hgafb.c
+++ b/drivers/video/hgafb.c
@@ -279,7 +279,7 @@ static void hga_blank(int blank_mode)
279 279
280static int __init hga_card_detect(void) 280static int __init hga_card_detect(void)
281{ 281{
282 int count=0; 282 int count = 0;
283 void __iomem *p, *q; 283 void __iomem *p, *q;
284 unsigned short p_save, q_save; 284 unsigned short p_save, q_save;
285 285
@@ -303,20 +303,18 @@ static int __init hga_card_detect(void)
303 writew(0x55aa, p); if (readw(p) == 0x55aa) count++; 303 writew(0x55aa, p); if (readw(p) == 0x55aa) count++;
304 writew(p_save, p); 304 writew(p_save, p);
305 305
306 if (count != 2) { 306 if (count != 2)
307 return 0; 307 goto error;
308 }
309 308
310 /* Ok, there is definitely a card registering at the correct 309 /* Ok, there is definitely a card registering at the correct
311 * memory location, so now we do an I/O port test. 310 * memory location, so now we do an I/O port test.
312 */ 311 */
313 312
314 if (!test_hga_b(0x66, 0x0f)) { /* cursor low register */ 313 if (!test_hga_b(0x66, 0x0f)) /* cursor low register */
315 return 0; 314 goto error;
316 } 315
317 if (!test_hga_b(0x99, 0x0f)) { /* cursor low register */ 316 if (!test_hga_b(0x99, 0x0f)) /* cursor low register */
318 return 0; 317 goto error;
319 }
320 318
321 /* See if the card is a Hercules, by checking whether the vsync 319 /* See if the card is a Hercules, by checking whether the vsync
322 * bit of the status register is changing. This test lasts for 320 * bit of the status register is changing. This test lasts for
@@ -331,7 +329,7 @@ static int __init hga_card_detect(void)
331 } 329 }
332 330
333 if (p_save == q_save) 331 if (p_save == q_save)
334 return 0; 332 goto error;
335 333
336 switch (inb_p(HGA_STATUS_PORT) & 0x70) { 334 switch (inb_p(HGA_STATUS_PORT) & 0x70) {
337 case 0x10: 335 case 0x10:
@@ -348,6 +346,12 @@ static int __init hga_card_detect(void)
348 break; 346 break;
349 } 347 }
350 return 1; 348 return 1;
349error:
350 if (release_io_ports)
351 release_region(0x3b0, 12);
352 if (release_io_port)
353 release_region(0x3bf, 1);
354 return 0;
351} 355}
352 356
353/** 357/**
diff --git a/drivers/video/leo.c b/drivers/video/leo.c
index 8bc46e930340..13fea61d6ae4 100644
--- a/drivers/video/leo.c
+++ b/drivers/video/leo.c
@@ -17,8 +17,8 @@
17#include <linux/fb.h> 17#include <linux/fb.h>
18#include <linux/mm.h> 18#include <linux/mm.h>
19#include <linux/of_device.h> 19#include <linux/of_device.h>
20#include <linux/io.h>
20 21
21#include <asm/io.h>
22#include <asm/fbio.h> 22#include <asm/fbio.h>
23 23
24#include "sbuslib.h" 24#include "sbuslib.h"
@@ -33,7 +33,6 @@ static int leo_blank(int, struct fb_info *);
33 33
34static int leo_mmap(struct fb_info *, struct vm_area_struct *); 34static int leo_mmap(struct fb_info *, struct vm_area_struct *);
35static int leo_ioctl(struct fb_info *, unsigned int, unsigned long); 35static int leo_ioctl(struct fb_info *, unsigned int, unsigned long);
36static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
37 36
38/* 37/*
39 * Frame buffer operations 38 * Frame buffer operations
@@ -43,7 +42,6 @@ static struct fb_ops leo_ops = {
43 .owner = THIS_MODULE, 42 .owner = THIS_MODULE,
44 .fb_setcolreg = leo_setcolreg, 43 .fb_setcolreg = leo_setcolreg,
45 .fb_blank = leo_blank, 44 .fb_blank = leo_blank,
46 .fb_pan_display = leo_pan_display,
47 .fb_fillrect = cfb_fillrect, 45 .fb_fillrect = cfb_fillrect,
48 .fb_copyarea = cfb_copyarea, 46 .fb_copyarea = cfb_copyarea,
49 .fb_imageblit = cfb_imageblit, 47 .fb_imageblit = cfb_imageblit,
@@ -78,7 +76,7 @@ static struct fb_ops leo_ops = {
78#define LEO_CUR_TYPE_CMAP 0x00000050 76#define LEO_CUR_TYPE_CMAP 0x00000050
79 77
80struct leo_cursor { 78struct leo_cursor {
81 u8 xxx0[16]; 79 u8 xxx0[16];
82 u32 cur_type; 80 u32 cur_type;
83 u32 cur_misc; 81 u32 cur_misc;
84 u32 cur_cursxy; 82 u32 cur_cursxy;
@@ -105,7 +103,7 @@ struct leo_lx_krn {
105 103
106struct leo_lc_ss0_krn { 104struct leo_lc_ss0_krn {
107 u32 misc; 105 u32 misc;
108 u8 xxx0[0x800-4]; 106 u8 xxx0[0x800-4];
109 u32 rev; 107 u32 rev;
110}; 108};
111 109
@@ -116,7 +114,7 @@ struct leo_lc_ss0_usr {
116 u32 fontt; 114 u32 fontt;
117 u32 extent; 115 u32 extent;
118 u32 src; 116 u32 src;
119 u32 dst; 117 u32 dst;
120 u32 copy; 118 u32 copy;
121 u32 fill; 119 u32 fill;
122}; 120};
@@ -129,8 +127,8 @@ struct leo_lc_ss1_usr {
129 u8 unknown; 127 u8 unknown;
130}; 128};
131 129
132struct leo_ld { 130struct leo_ld_ss0 {
133 u8 xxx0[0xe00]; 131 u8 xxx0[0xe00];
134 u32 csr; 132 u32 csr;
135 u32 wid; 133 u32 wid;
136 u32 wmask; 134 u32 wmask;
@@ -144,13 +142,13 @@ struct leo_ld {
144 u32 src; /* Copy/Scroll (SS0 only) */ 142 u32 src; /* Copy/Scroll (SS0 only) */
145 u32 dst; /* Copy/Scroll/Fill (SS0 only) */ 143 u32 dst; /* Copy/Scroll/Fill (SS0 only) */
146 u32 extent; /* Copy/Scroll/Fill size (SS0 only) */ 144 u32 extent; /* Copy/Scroll/Fill size (SS0 only) */
147 u32 xxx1[3]; 145 u32 xxx1[3];
148 u32 setsem; /* SS1 only */ 146 u32 setsem; /* SS1 only */
149 u32 clrsem; /* SS1 only */ 147 u32 clrsem; /* SS1 only */
150 u32 clrpick; /* SS1 only */ 148 u32 clrpick; /* SS1 only */
151 u32 clrdat; /* SS1 only */ 149 u32 clrdat; /* SS1 only */
152 u32 alpha; /* SS1 only */ 150 u32 alpha; /* SS1 only */
153 u8 xxx2[0x2c]; 151 u8 xxx2[0x2c];
154 u32 winbg; 152 u32 winbg;
155 u32 planemask; 153 u32 planemask;
156 u32 rop; 154 u32 rop;
@@ -199,11 +197,12 @@ struct leo_par {
199static void leo_wait(struct leo_lx_krn __iomem *lx_krn) 197static void leo_wait(struct leo_lx_krn __iomem *lx_krn)
200{ 198{
201 int i; 199 int i;
202 200
203 for (i = 0; 201 for (i = 0;
204 (sbus_readl(&lx_krn->krn_csr) & LEO_KRN_CSR_PROGRESS) && i < 300000; 202 (sbus_readl(&lx_krn->krn_csr) & LEO_KRN_CSR_PROGRESS) &&
203 i < 300000;
205 i++) 204 i++)
206 udelay (1); /* Busy wait at most 0.3 sec */ 205 udelay(1); /* Busy wait at most 0.3 sec */
207 return; 206 return;
208} 207}
209 208
@@ -221,7 +220,7 @@ static int leo_setcolreg(unsigned regno,
221 unsigned transp, struct fb_info *info) 220 unsigned transp, struct fb_info *info)
222{ 221{
223 struct leo_par *par = (struct leo_par *) info->par; 222 struct leo_par *par = (struct leo_par *) info->par;
224 struct leo_lx_krn __iomem *lx_krn = par->lx_krn; 223 struct leo_lx_krn __iomem *lx_krn = par->lx_krn;
225 unsigned long flags; 224 unsigned long flags;
226 u32 val; 225 u32 val;
227 int i; 226 int i;
@@ -408,7 +407,7 @@ static void leo_wid_put(struct fb_info *info, struct fb_wid_list *wl)
408 leo_wait(lx_krn); 407 leo_wait(lx_krn);
409 408
410 for (i = 0, wi = wl->wl_list; i < wl->wl_count; i++, wi++) { 409 for (i = 0, wi = wl->wl_list; i < wl->wl_count; i++, wi++) {
411 switch(wi->wi_type) { 410 switch (wi->wi_type) {
412 case FB_WID_DBL_8: 411 case FB_WID_DBL_8:
413 j = (wi->wi_index & 0xf) + 0x40; 412 j = (wi->wi_index & 0xf) + 0x40;
414 break; 413 break;
@@ -453,13 +452,12 @@ static void leo_init_wids(struct fb_info *info)
453 wi.wi_index = 1; 452 wi.wi_index = 1;
454 wi.wi_values [0] = 0x30; 453 wi.wi_values [0] = 0x30;
455 leo_wid_put(info, &wl); 454 leo_wid_put(info, &wl);
456
457} 455}
458 456
459static void leo_switch_from_graph(struct fb_info *info) 457static void leo_switch_from_graph(struct fb_info *info)
460{ 458{
461 struct leo_par *par = (struct leo_par *) info->par; 459 struct leo_par *par = (struct leo_par *) info->par;
462 struct leo_ld __iomem *ss = (struct leo_ld __iomem *) par->ld_ss0; 460 struct leo_ld_ss0 __iomem *ss = par->ld_ss0;
463 unsigned long flags; 461 unsigned long flags;
464 u32 val; 462 u32 val;
465 463
@@ -485,19 +483,13 @@ static void leo_switch_from_graph(struct fb_info *info)
485 val = sbus_readl(&par->lc_ss0_usr->csr); 483 val = sbus_readl(&par->lc_ss0_usr->csr);
486 } while (val & 0x20000000); 484 } while (val & 0x20000000);
487 485
488 spin_unlock_irqrestore(&par->lock, flags); 486 /* setup screen buffer for cfb_* functions */
489} 487 sbus_writel(1, &ss->wid);
490 488 sbus_writel(0x00ffffff, &ss->planemask);
491static int leo_pan_display(struct fb_var_screeninfo *var, struct fb_info *info) 489 sbus_writel(0x310b90, &ss->rop);
492{ 490 sbus_writel(0, &par->lc_ss0_usr->addrspace);
493 /* We just use this to catch switches out of
494 * graphics mode.
495 */
496 leo_switch_from_graph(info);
497 491
498 if (var->xoffset || var->yoffset || var->vmode) 492 spin_unlock_irqrestore(&par->lock, flags);
499 return -EINVAL;
500 return 0;
501} 493}
502 494
503static void leo_init_hw(struct fb_info *info) 495static void leo_init_hw(struct fb_info *info)
@@ -542,7 +534,8 @@ static void leo_unmap_regs(struct of_device *op, struct fb_info *info,
542 of_iounmap(&op->resource[0], info->screen_base, 0x800000); 534 of_iounmap(&op->resource[0], info->screen_base, 0x800000);
543} 535}
544 536
545static int __devinit leo_probe(struct of_device *op, const struct of_device_id *match) 537static int __devinit leo_probe(struct of_device *op,
538 const struct of_device_id *match)
546{ 539{
547 struct device_node *dp = op->node; 540 struct device_node *dp = op->node;
548 struct fb_info *info; 541 struct fb_info *info;
@@ -594,8 +587,9 @@ static int __devinit leo_probe(struct of_device *op, const struct of_device_id *
594 !info->screen_base) 587 !info->screen_base)
595 goto out_unmap_regs; 588 goto out_unmap_regs;
596 589
597 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN; 590 info->flags = FBINFO_DEFAULT;
598 info->fbops = &leo_ops; 591 info->fbops = &leo_ops;
592 info->pseudo_palette = par->clut_data;
599 593
600 leo_init_wids(info); 594 leo_init_wids(info);
601 leo_init_hw(info); 595 leo_init_hw(info);
@@ -649,7 +643,7 @@ static int __devexit leo_remove(struct of_device *op)
649 643
650static struct of_device_id leo_match[] = { 644static struct of_device_id leo_match[] = {
651 { 645 {
652 .name = "leo", 646 .name = "SUNW,leo",
653 }, 647 },
654 {}, 648 {},
655}; 649};
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 274bc93ab7d8..7dcda187d9ba 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -573,8 +573,8 @@ static int setup_frame_dma(struct pxafb_info *fbi, int dma, int pal,
573 dma_desc->fdadr = fbi->dma_buff_phys + dma_desc_off; 573 dma_desc->fdadr = fbi->dma_buff_phys + dma_desc_off;
574 fbi->fdadr[dma] = fbi->dma_buff_phys + dma_desc_off; 574 fbi->fdadr[dma] = fbi->dma_buff_phys + dma_desc_off;
575 } else { 575 } else {
576 pal_desc = &fbi->dma_buff->pal_desc[dma]; 576 pal_desc = &fbi->dma_buff->pal_desc[pal];
577 pal_desc_off = offsetof(struct pxafb_dma_buff, dma_desc[pal]); 577 pal_desc_off = offsetof(struct pxafb_dma_buff, pal_desc[pal]);
578 578
579 pal_desc->fsadr = fbi->dma_buff_phys + pal * PALETTE_SIZE; 579 pal_desc->fsadr = fbi->dma_buff_phys + pal * PALETTE_SIZE;
580 pal_desc->fidr = 0; 580 pal_desc->fidr = 0;
@@ -1276,6 +1276,8 @@ static int __init pxafb_map_video_memory(struct pxafb_info *fbi)
1276 fbi->dma_buff_phys = fbi->map_dma; 1276 fbi->dma_buff_phys = fbi->map_dma;
1277 fbi->palette_cpu = (u16 *) fbi->dma_buff->palette; 1277 fbi->palette_cpu = (u16 *) fbi->dma_buff->palette;
1278 1278
1279 pr_debug("pxafb: palette_mem_size = 0x%08lx\n", fbi->palette_size*sizeof(u16));
1280
1279#ifdef CONFIG_FB_PXA_SMARTPANEL 1281#ifdef CONFIG_FB_PXA_SMARTPANEL
1280 fbi->smart_cmds = (uint16_t *) fbi->dma_buff->cmd_buff; 1282 fbi->smart_cmds = (uint16_t *) fbi->dma_buff->cmd_buff;
1281 fbi->n_smart_cmds = 0; 1283 fbi->n_smart_cmds = 0;
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index 0f3c2bb7bf35..7084e7e146c0 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -124,9 +124,9 @@ static int virtio_dev_probe(struct device *_d)
124 if (err) 124 if (err)
125 add_status(dev, VIRTIO_CONFIG_S_FAILED); 125 add_status(dev, VIRTIO_CONFIG_S_FAILED);
126 else { 126 else {
127 add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
128 /* They should never have set feature bits beyond 32 */ 127 /* They should never have set feature bits beyond 32 */
129 dev->config->set_features(dev, dev->features[0]); 128 dev->config->set_features(dev, dev->features[0]);
129 add_status(dev, VIRTIO_CONFIG_S_DRIVER_OK);
130 } 130 }
131 return err; 131 return err;
132} 132}
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index 6a63535fc04d..eaa3f2a79ff5 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -140,49 +140,53 @@ static struct pci_device_id hpwdt_devices[] = {
140}; 140};
141MODULE_DEVICE_TABLE(pci, hpwdt_devices); 141MODULE_DEVICE_TABLE(pci, hpwdt_devices);
142 142
143extern asmlinkage void asminline_call(struct cmn_registers *pi86Regs, unsigned long *pRomEntry);
144
143#ifndef CONFIG_X86_64 145#ifndef CONFIG_X86_64
144/* --32 Bit Bios------------------------------------------------------------ */ 146/* --32 Bit Bios------------------------------------------------------------ */
145 147
146#define HPWDT_ARCH 32 148#define HPWDT_ARCH 32
147 149
148static void asminline_call(struct cmn_registers *pi86Regs, 150asm(".text \n\t"
149 unsigned long *pRomEntry) 151 ".align 4 \n"
150{ 152 "asminline_call: \n\t"
151 asm("pushl %ebp \n\t" 153 "pushl %ebp \n\t"
152 "movl %esp, %ebp \n\t" 154 "movl %esp, %ebp \n\t"
153 "pusha \n\t" 155 "pusha \n\t"
154 "pushf \n\t" 156 "pushf \n\t"
155 "push %es \n\t" 157 "push %es \n\t"
156 "push %ds \n\t" 158 "push %ds \n\t"
157 "pop %es \n\t" 159 "pop %es \n\t"
158 "movl 8(%ebp),%eax \n\t" 160 "movl 8(%ebp),%eax \n\t"
159 "movl 4(%eax),%ebx \n\t" 161 "movl 4(%eax),%ebx \n\t"
160 "movl 8(%eax),%ecx \n\t" 162 "movl 8(%eax),%ecx \n\t"
161 "movl 12(%eax),%edx \n\t" 163 "movl 12(%eax),%edx \n\t"
162 "movl 16(%eax),%esi \n\t" 164 "movl 16(%eax),%esi \n\t"
163 "movl 20(%eax),%edi \n\t" 165 "movl 20(%eax),%edi \n\t"
164 "movl (%eax),%eax \n\t" 166 "movl (%eax),%eax \n\t"
165 "push %cs \n\t" 167 "push %cs \n\t"
166 "call *12(%ebp) \n\t" 168 "call *12(%ebp) \n\t"
167 "pushf \n\t" 169 "pushf \n\t"
168 "pushl %eax \n\t" 170 "pushl %eax \n\t"
169 "movl 8(%ebp),%eax \n\t" 171 "movl 8(%ebp),%eax \n\t"
170 "movl %ebx,4(%eax) \n\t" 172 "movl %ebx,4(%eax) \n\t"
171 "movl %ecx,8(%eax) \n\t" 173 "movl %ecx,8(%eax) \n\t"
172 "movl %edx,12(%eax) \n\t" 174 "movl %edx,12(%eax) \n\t"
173 "movl %esi,16(%eax) \n\t" 175 "movl %esi,16(%eax) \n\t"
174 "movl %edi,20(%eax) \n\t" 176 "movl %edi,20(%eax) \n\t"
175 "movw %ds,24(%eax) \n\t" 177 "movw %ds,24(%eax) \n\t"
176 "movw %es,26(%eax) \n\t" 178 "movw %es,26(%eax) \n\t"
177 "popl %ebx \n\t" 179 "popl %ebx \n\t"
178 "movl %ebx,(%eax) \n\t" 180 "movl %ebx,(%eax) \n\t"
179 "popl %ebx \n\t" 181 "popl %ebx \n\t"
180 "movl %ebx,28(%eax) \n\t" 182 "movl %ebx,28(%eax) \n\t"
181 "pop %es \n\t" 183 "pop %es \n\t"
182 "popf \n\t" 184 "popf \n\t"
183 "popa \n\t" 185 "popa \n\t"
184 "leave \n\t" "ret"); 186 "leave \n\t"
185} 187 "ret \n\t"
188 ".previous");
189
186 190
187/* 191/*
188 * cru_detect 192 * cru_detect
@@ -333,43 +337,44 @@ static int __devinit detect_cru_service(void)
333 337
334#define HPWDT_ARCH 64 338#define HPWDT_ARCH 64
335 339
336static void asminline_call(struct cmn_registers *pi86Regs, 340asm(".text \n\t"
337 unsigned long *pRomEntry) 341 ".align 4 \n"
338{ 342 "asminline_call: \n\t"
339 asm("pushq %rbp \n\t" 343 "pushq %rbp \n\t"
340 "movq %rsp, %rbp \n\t" 344 "movq %rsp, %rbp \n\t"
341 "pushq %rax \n\t" 345 "pushq %rax \n\t"
342 "pushq %rbx \n\t" 346 "pushq %rbx \n\t"
343 "pushq %rdx \n\t" 347 "pushq %rdx \n\t"
344 "pushq %r12 \n\t" 348 "pushq %r12 \n\t"
345 "pushq %r9 \n\t" 349 "pushq %r9 \n\t"
346 "movq %rsi, %r12 \n\t" 350 "movq %rsi, %r12 \n\t"
347 "movq %rdi, %r9 \n\t" 351 "movq %rdi, %r9 \n\t"
348 "movl 4(%r9),%ebx \n\t" 352 "movl 4(%r9),%ebx \n\t"
349 "movl 8(%r9),%ecx \n\t" 353 "movl 8(%r9),%ecx \n\t"
350 "movl 12(%r9),%edx \n\t" 354 "movl 12(%r9),%edx \n\t"
351 "movl 16(%r9),%esi \n\t" 355 "movl 16(%r9),%esi \n\t"
352 "movl 20(%r9),%edi \n\t" 356 "movl 20(%r9),%edi \n\t"
353 "movl (%r9),%eax \n\t" 357 "movl (%r9),%eax \n\t"
354 "call *%r12 \n\t" 358 "call *%r12 \n\t"
355 "pushfq \n\t" 359 "pushfq \n\t"
356 "popq %r12 \n\t" 360 "popq %r12 \n\t"
357 "popfq \n\t" 361 "popfq \n\t"
358 "movl %eax, (%r9) \n\t" 362 "movl %eax, (%r9) \n\t"
359 "movl %ebx, 4(%r9) \n\t" 363 "movl %ebx, 4(%r9) \n\t"
360 "movl %ecx, 8(%r9) \n\t" 364 "movl %ecx, 8(%r9) \n\t"
361 "movl %edx, 12(%r9) \n\t" 365 "movl %edx, 12(%r9) \n\t"
362 "movl %esi, 16(%r9) \n\t" 366 "movl %esi, 16(%r9) \n\t"
363 "movl %edi, 20(%r9) \n\t" 367 "movl %edi, 20(%r9) \n\t"
364 "movq %r12, %rax \n\t" 368 "movq %r12, %rax \n\t"
365 "movl %eax, 28(%r9) \n\t" 369 "movl %eax, 28(%r9) \n\t"
366 "popq %r9 \n\t" 370 "popq %r9 \n\t"
367 "popq %r12 \n\t" 371 "popq %r12 \n\t"
368 "popq %rdx \n\t" 372 "popq %rdx \n\t"
369 "popq %rbx \n\t" 373 "popq %rbx \n\t"
370 "popq %rax \n\t" 374 "popq %rax \n\t"
371 "leave \n\t" "ret"); 375 "leave \n\t"
372} 376 "ret \n\t"
377 ".previous");
373 378
374/* 379/*
375 * dmi_find_cru 380 * dmi_find_cru
@@ -418,20 +423,23 @@ static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
418 static unsigned long rom_pl; 423 static unsigned long rom_pl;
419 static int die_nmi_called; 424 static int die_nmi_called;
420 425
421 if (ulReason == DIE_NMI || ulReason == DIE_NMI_IPI) { 426 if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI)
422 spin_lock_irqsave(&rom_lock, rom_pl); 427 return NOTIFY_OK;
423 if (!die_nmi_called) 428
424 asminline_call(&cmn_regs, cru_rom_addr); 429 spin_lock_irqsave(&rom_lock, rom_pl);
425 die_nmi_called = 1; 430 if (!die_nmi_called)
426 spin_unlock_irqrestore(&rom_lock, rom_pl); 431 asminline_call(&cmn_regs, cru_rom_addr);
427 if (cmn_regs.u1.ral != 0) { 432 die_nmi_called = 1;
428 panic("An NMI occurred, please see the Integrated " 433 spin_unlock_irqrestore(&rom_lock, rom_pl);
429 "Management Log for details.\n"); 434 if (cmn_regs.u1.ral == 0) {
430 } 435 printk(KERN_WARNING "hpwdt: An NMI occurred, "
436 "but unable to determine source.\n");
437 } else {
438 panic("An NMI occurred, please see the Integrated "
439 "Management Log for details.\n");
431 } 440 }
432 441
433 die_nmi_called = 0; 442 return NOTIFY_STOP;
434 return NOTIFY_DONE;
435} 443}
436 444
437/* 445/*
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 4f0f22b020ea..76e5b7386af9 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -529,7 +529,7 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
529 529
530#ifndef CONFIG_X86 /* No need for a barrier -- XCHG is a barrier on x86. */ 530#ifndef CONFIG_X86 /* No need for a barrier -- XCHG is a barrier on x86. */
531 /* Clear master flag /before/ clearing selector flag. */ 531 /* Clear master flag /before/ clearing selector flag. */
532 rmb(); 532 wmb();
533#endif 533#endif
534 pending_words = xchg(&vcpu_info->evtchn_pending_sel, 0); 534 pending_words = xchg(&vcpu_info->evtchn_pending_sel, 0);
535 while (pending_words != 0) { 535 while (pending_words != 0) {
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 0fa95b198e6e..d48ff5f370f4 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -16,7 +16,6 @@
16#include <linux/time.h> 16#include <linux/time.h>
17#include <linux/mm.h> 17#include <linux/mm.h>
18#include <linux/mman.h> 18#include <linux/mman.h>
19#include <linux/a.out.h>
20#include <linux/errno.h> 19#include <linux/errno.h>
21#include <linux/signal.h> 20#include <linux/signal.h>
22#include <linux/binfmts.h> 21#include <linux/binfmts.h>
@@ -548,7 +547,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
548 struct { 547 struct {
549 struct elfhdr elf_ex; 548 struct elfhdr elf_ex;
550 struct elfhdr interp_elf_ex; 549 struct elfhdr interp_elf_ex;
551 struct exec interp_ex;
552 } *loc; 550 } *loc;
553 551
554 loc = kmalloc(sizeof(*loc), GFP_KERNEL); 552 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
@@ -680,7 +678,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
680 } 678 }
681 679
682 /* Get the exec headers */ 680 /* Get the exec headers */
683 loc->interp_ex = *((struct exec *)bprm->buf);
684 loc->interp_elf_ex = *((struct elfhdr *)bprm->buf); 681 loc->interp_elf_ex = *((struct elfhdr *)bprm->buf);
685 break; 682 break;
686 } 683 }
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 470c10ceb0fb..10d8a0aa871a 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -931,8 +931,16 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part)
931 struct gendisk *disk; 931 struct gendisk *disk;
932 int ret; 932 int ret;
933 int part; 933 int part;
934 int perm = 0;
934 935
935 ret = devcgroup_inode_permission(bdev->bd_inode, file->f_mode); 936 if (file->f_mode & FMODE_READ)
937 perm |= MAY_READ;
938 if (file->f_mode & FMODE_WRITE)
939 perm |= MAY_WRITE;
940 /*
941 * hooks: /n/, see "layering violations".
942 */
943 ret = devcgroup_inode_permission(bdev->bd_inode, perm);
936 if (ret != 0) 944 if (ret != 0)
937 return ret; 945 return ret;
938 946
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index 28e3d5c5fcac..1f3465201fdf 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -2,6 +2,11 @@ Version 1.53
2------------ 2------------
3DFS support added (Microsoft Distributed File System client support needed 3DFS support added (Microsoft Distributed File System client support needed
4for referrals which enable a hierarchical name space among servers). 4for referrals which enable a hierarchical name space among servers).
5Disable temporary caching of mode bits to servers which do not support
6storing of mode (e.g. Windows servers, when client mounts without cifsacl
7mount option) and add new "dynperm" mount option to enable temporary caching
8of mode (enable old behavior). Fix hang on mount caused when server crashes
9tcp session during negotiate protocol.
5 10
6Version 1.52 11Version 1.52
7------------ 12------------
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 5df93fd6303f..86b4d5f405ae 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -97,9 +97,6 @@ cifs_read_super(struct super_block *sb, void *data,
97{ 97{
98 struct inode *inode; 98 struct inode *inode;
99 struct cifs_sb_info *cifs_sb; 99 struct cifs_sb_info *cifs_sb;
100#ifdef CONFIG_CIFS_DFS_UPCALL
101 int len;
102#endif
103 int rc = 0; 100 int rc = 0;
104 101
105 /* BB should we make this contingent on mount parm? */ 102 /* BB should we make this contingent on mount parm? */
@@ -117,15 +114,17 @@ cifs_read_super(struct super_block *sb, void *data,
117 * complex operation (mount), and in case of fail 114 * complex operation (mount), and in case of fail
118 * just exit instead of doing mount and attempting 115 * just exit instead of doing mount and attempting
119 * undo it if this copy fails?*/ 116 * undo it if this copy fails?*/
120 len = strlen(data); 117 if (data) {
121 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL); 118 int len = strlen(data);
122 if (cifs_sb->mountdata == NULL) { 119 cifs_sb->mountdata = kzalloc(len + 1, GFP_KERNEL);
123 kfree(sb->s_fs_info); 120 if (cifs_sb->mountdata == NULL) {
124 sb->s_fs_info = NULL; 121 kfree(sb->s_fs_info);
125 return -ENOMEM; 122 sb->s_fs_info = NULL;
123 return -ENOMEM;
124 }
125 strncpy(cifs_sb->mountdata, data, len + 1);
126 cifs_sb->mountdata[len] = '\0';
126 } 127 }
127 strncpy(cifs_sb->mountdata, data, len + 1);
128 cifs_sb->mountdata[len] = '\0';
129#endif 128#endif
130 129
131 rc = cifs_mount(sb, cifs_sb, data, devname); 130 rc = cifs_mount(sb, cifs_sb, data, devname);
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 08914053242b..9cfcf326ead3 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -333,7 +333,6 @@ struct cifsFileInfo {
333 bool messageMode:1; /* for pipes: message vs byte mode */ 333 bool messageMode:1; /* for pipes: message vs byte mode */
334 atomic_t wrtPending; /* handle in use - defer close */ 334 atomic_t wrtPending; /* handle in use - defer close */
335 struct semaphore fh_sem; /* prevents reopen race after dead ses*/ 335 struct semaphore fh_sem; /* prevents reopen race after dead ses*/
336 char *search_resume_name; /* BB removeme BB */
337 struct cifs_search_info srch_inf; 336 struct cifs_search_info srch_inf;
338}; 337};
339 338
@@ -626,7 +625,7 @@ GLOBAL_EXTERN atomic_t tcpSesAllocCount;
626GLOBAL_EXTERN atomic_t tcpSesReconnectCount; 625GLOBAL_EXTERN atomic_t tcpSesReconnectCount;
627GLOBAL_EXTERN atomic_t tconInfoReconnectCount; 626GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
628 627
629/* Various Debug counters to remove someday (BB) */ 628/* Various Debug counters */
630GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */ 629GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
631#ifdef CONFIG_CIFS_STATS2 630#ifdef CONFIG_CIFS_STATS2
632GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */ 631GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */
diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h
index 65d58b4e6a61..0f327c224da3 100644
--- a/fs/cifs/cifspdu.h
+++ b/fs/cifs/cifspdu.h
@@ -79,6 +79,19 @@
79#define TRANS2_GET_DFS_REFERRAL 0x10 79#define TRANS2_GET_DFS_REFERRAL 0x10
80#define TRANS2_REPORT_DFS_INCOSISTENCY 0x11 80#define TRANS2_REPORT_DFS_INCOSISTENCY 0x11
81 81
82/* SMB Transact (Named Pipe) subcommand codes */
83#define TRANS_SET_NMPIPE_STATE 0x0001
84#define TRANS_RAW_READ_NMPIPE 0x0011
85#define TRANS_QUERY_NMPIPE_STATE 0x0021
86#define TRANS_QUERY_NMPIPE_INFO 0x0022
87#define TRANS_PEEK_NMPIPE 0x0023
88#define TRANS_TRANSACT_NMPIPE 0x0026
89#define TRANS_RAW_WRITE_NMPIPE 0x0031
90#define TRANS_READ_NMPIPE 0x0036
91#define TRANS_WRITE_NMPIPE 0x0037
92#define TRANS_WAIT_NMPIPE 0x0053
93#define TRANS_CALL_NMPIPE 0x0054
94
82/* NT Transact subcommand codes */ 95/* NT Transact subcommand codes */
83#define NT_TRANSACT_CREATE 0x01 96#define NT_TRANSACT_CREATE 0x01
84#define NT_TRANSACT_IOCTL 0x02 97#define NT_TRANSACT_IOCTL 0x02
@@ -328,12 +341,13 @@
328#define CREATE_COMPLETE_IF_OPLK 0x00000100 /* should be zero */ 341#define CREATE_COMPLETE_IF_OPLK 0x00000100 /* should be zero */
329#define CREATE_NO_EA_KNOWLEDGE 0x00000200 342#define CREATE_NO_EA_KNOWLEDGE 0x00000200
330#define CREATE_EIGHT_DOT_THREE 0x00000400 /* doc says this is obsolete 343#define CREATE_EIGHT_DOT_THREE 0x00000400 /* doc says this is obsolete
331 open for recovery flag - should 344 "open for recovery" flag - should
332 be zero */ 345 be zero in any case */
346#define CREATE_OPEN_FOR_RECOVERY 0x00000400
333#define CREATE_RANDOM_ACCESS 0x00000800 347#define CREATE_RANDOM_ACCESS 0x00000800
334#define CREATE_DELETE_ON_CLOSE 0x00001000 348#define CREATE_DELETE_ON_CLOSE 0x00001000
335#define CREATE_OPEN_BY_ID 0x00002000 349#define CREATE_OPEN_BY_ID 0x00002000
336#define CREATE_OPEN_BACKUP_INTN 0x00004000 350#define CREATE_OPEN_BACKUP_INTENT 0x00004000
337#define CREATE_NO_COMPRESSION 0x00008000 351#define CREATE_NO_COMPRESSION 0x00008000
338#define CREATE_RESERVE_OPFILTER 0x00100000 /* should be zero */ 352#define CREATE_RESERVE_OPFILTER 0x00100000 /* should be zero */
339#define OPEN_REPARSE_POINT 0x00200000 353#define OPEN_REPARSE_POINT 0x00200000
@@ -722,7 +736,6 @@ typedef struct smb_com_tconx_rsp_ext {
722#define SMB_CSC_CACHE_AUTO_REINT 0x0004 736#define SMB_CSC_CACHE_AUTO_REINT 0x0004
723#define SMB_CSC_CACHE_VDO 0x0008 737#define SMB_CSC_CACHE_VDO 0x0008
724#define SMB_CSC_NO_CACHING 0x000C 738#define SMB_CSC_NO_CACHING 0x000C
725
726#define SMB_UNIQUE_FILE_NAME 0x0010 739#define SMB_UNIQUE_FILE_NAME 0x0010
727#define SMB_EXTENDED_SIGNATURES 0x0020 740#define SMB_EXTENDED_SIGNATURES 0x0020
728 741
@@ -806,7 +819,7 @@ typedef struct smb_com_findclose_req {
806#define ICOUNT_MASK 0x00FF 819#define ICOUNT_MASK 0x00FF
807#define PIPE_READ_MODE 0x0100 820#define PIPE_READ_MODE 0x0100
808#define NAMED_PIPE_TYPE 0x0400 821#define NAMED_PIPE_TYPE 0x0400
809#define PIPE_END_POINT 0x0800 822#define PIPE_END_POINT 0x4000
810#define BLOCKING_NAMED_PIPE 0x8000 823#define BLOCKING_NAMED_PIPE 0x8000
811 824
812typedef struct smb_com_open_req { /* also handles create */ 825typedef struct smb_com_open_req { /* also handles create */
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index fb655b4593c6..4511b708f0f3 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -1728,7 +1728,7 @@ CIFSSMBLock(const int xid, struct cifsTconInfo *tcon,
1728{ 1728{
1729 int rc = 0; 1729 int rc = 0;
1730 LOCK_REQ *pSMB = NULL; 1730 LOCK_REQ *pSMB = NULL;
1731 LOCK_RSP *pSMBr = NULL; 1731/* LOCK_RSP *pSMBr = NULL; */ /* No response data other than rc to parse */
1732 int bytes_returned; 1732 int bytes_returned;
1733 int timeout = 0; 1733 int timeout = 0;
1734 __u16 count; 1734 __u16 count;
@@ -1739,8 +1739,6 @@ CIFSSMBLock(const int xid, struct cifsTconInfo *tcon,
1739 if (rc) 1739 if (rc)
1740 return rc; 1740 return rc;
1741 1741
1742 pSMBr = (LOCK_RSP *)pSMB; /* BB removeme BB */
1743
1744 if (lockType == LOCKING_ANDX_OPLOCK_RELEASE) { 1742 if (lockType == LOCKING_ANDX_OPLOCK_RELEASE) {
1745 timeout = CIFS_ASYNC_OP; /* no response expected */ 1743 timeout = CIFS_ASYNC_OP; /* no response expected */
1746 pSMB->Timeout = 0; 1744 pSMB->Timeout = 0;
@@ -1774,7 +1772,7 @@ CIFSSMBLock(const int xid, struct cifsTconInfo *tcon,
1774 1772
1775 if (waitFlag) { 1773 if (waitFlag) {
1776 rc = SendReceiveBlockingLock(xid, tcon, (struct smb_hdr *) pSMB, 1774 rc = SendReceiveBlockingLock(xid, tcon, (struct smb_hdr *) pSMB,
1777 (struct smb_hdr *) pSMBr, &bytes_returned); 1775 (struct smb_hdr *) pSMB, &bytes_returned);
1778 cifs_small_buf_release(pSMB); 1776 cifs_small_buf_release(pSMB);
1779 } else { 1777 } else {
1780 rc = SendReceiveNoRsp(xid, tcon->ses, (struct smb_hdr *)pSMB, 1778 rc = SendReceiveNoRsp(xid, tcon->ses, (struct smb_hdr *)pSMB,
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 023434f72c15..e8fa46c7cff2 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -653,6 +653,7 @@ multi_t2_fnd:
653 spin_lock(&GlobalMid_Lock); 653 spin_lock(&GlobalMid_Lock);
654 server->tcpStatus = CifsExiting; 654 server->tcpStatus = CifsExiting;
655 spin_unlock(&GlobalMid_Lock); 655 spin_unlock(&GlobalMid_Lock);
656 wake_up_all(&server->response_q);
656 657
657 /* don't exit until kthread_stop is called */ 658 /* don't exit until kthread_stop is called */
658 set_current_state(TASK_UNINTERRUPTIBLE); 659 set_current_state(TASK_UNINTERRUPTIBLE);
@@ -2120,6 +2121,10 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2120 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO; 2121 cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
2121 } 2122 }
2122 2123
2124 if ((volume_info.cifs_acl) && (volume_info.dynperm))
2125 cERROR(1, ("mount option dynperm ignored if cifsacl "
2126 "mount option supported"));
2127
2123 tcon = 2128 tcon =
2124 find_unc(sin_server.sin_addr.s_addr, volume_info.UNC, 2129 find_unc(sin_server.sin_addr.s_addr, volume_info.UNC,
2125 volume_info.username); 2130 volume_info.username);
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index f0b5b5f3dd2e..fb69c1fa85c9 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -260,7 +260,9 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
260 buf, inode->i_sb, xid, 260 buf, inode->i_sb, xid,
261 &fileHandle); 261 &fileHandle);
262 if (newinode) { 262 if (newinode) {
263 newinode->i_mode = mode; 263 if (cifs_sb->mnt_cifs_flags &
264 CIFS_MOUNT_DYNPERM)
265 newinode->i_mode = mode;
264 if ((oplock & CIFS_CREATE_ACTION) && 266 if ((oplock & CIFS_CREATE_ACTION) &&
265 (cifs_sb->mnt_cifs_flags & 267 (cifs_sb->mnt_cifs_flags &
266 CIFS_MOUNT_SET_UID)) { 268 CIFS_MOUNT_SET_UID)) {
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 8636cec2642c..0aac824371a5 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -546,7 +546,6 @@ int cifs_close(struct inode *inode, struct file *file)
546 msleep(timeout); 546 msleep(timeout);
547 timeout *= 8; 547 timeout *= 8;
548 } 548 }
549 kfree(pSMBFile->search_resume_name);
550 kfree(file->private_data); 549 kfree(file->private_data);
551 file->private_data = NULL; 550 file->private_data = NULL;
552 } else 551 } else
@@ -605,12 +604,6 @@ int cifs_closedir(struct inode *inode, struct file *file)
605 else 604 else
606 cifs_buf_release(ptmp); 605 cifs_buf_release(ptmp);
607 } 606 }
608 ptmp = pCFileStruct->search_resume_name;
609 if (ptmp) {
610 cFYI(1, ("closedir free resume name"));
611 pCFileStruct->search_resume_name = NULL;
612 kfree(ptmp);
613 }
614 kfree(file->private_data); 607 kfree(file->private_data);
615 file->private_data = NULL; 608 file->private_data = NULL;
616 } 609 }
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 129dbfe4dca7..722be543ceec 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -418,6 +418,7 @@ int cifs_get_inode_info(struct inode **pinode,
418 char *buf = NULL; 418 char *buf = NULL;
419 bool adjustTZ = false; 419 bool adjustTZ = false;
420 bool is_dfs_referral = false; 420 bool is_dfs_referral = false;
421 umode_t default_mode;
421 422
422 pTcon = cifs_sb->tcon; 423 pTcon = cifs_sb->tcon;
423 cFYI(1, ("Getting info on %s", full_path)); 424 cFYI(1, ("Getting info on %s", full_path));
@@ -530,47 +531,42 @@ int cifs_get_inode_info(struct inode **pinode,
530 inode->i_mtime.tv_sec += pTcon->ses->server->timeAdj; 531 inode->i_mtime.tv_sec += pTcon->ses->server->timeAdj;
531 } 532 }
532 533
533 /* set default mode. will override for dirs below */ 534 /* get default inode mode */
534 if (atomic_read(&cifsInfo->inUse) == 0) 535 if (attr & ATTR_DIRECTORY)
535 /* new inode, can safely set these fields */ 536 default_mode = cifs_sb->mnt_dir_mode;
536 inode->i_mode = cifs_sb->mnt_file_mode; 537 else
537 else /* since we set the inode type below we need to mask off 538 default_mode = cifs_sb->mnt_file_mode;
538 to avoid strange results if type changes and both 539
539 get orred in */ 540 /* set permission bits */
540 inode->i_mode &= ~S_IFMT; 541 if (atomic_read(&cifsInfo->inUse) == 0 ||
541/* if (attr & ATTR_REPARSE) */ 542 (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) == 0)
542 /* We no longer handle these as symlinks because we could not 543 inode->i_mode = default_mode;
543 follow them due to the absolute path with drive letter */ 544 else {
544 if (attr & ATTR_DIRECTORY) { 545 /* just reenable write bits if !ATTR_READONLY */
545 /* override default perms since we do not do byte range locking 546 if ((inode->i_mode & S_IWUGO) == 0 &&
546 on dirs */ 547 (attr & ATTR_READONLY) == 0)
547 inode->i_mode = cifs_sb->mnt_dir_mode; 548 inode->i_mode |= (S_IWUGO & default_mode);
548 inode->i_mode |= S_IFDIR; 549 inode->i_mode &= ~S_IFMT;
549 } else if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) && 550 }
550 (cifsInfo->cifsAttrs & ATTR_SYSTEM) && 551 /* clear write bits if ATTR_READONLY is set */
551 /* No need to le64 convert size of zero */ 552 if (attr & ATTR_READONLY)
552 (pfindData->EndOfFile == 0)) { 553 inode->i_mode &= ~S_IWUGO;
553 inode->i_mode = cifs_sb->mnt_file_mode; 554
554 inode->i_mode |= S_IFIFO; 555 /* set inode type */
555/* BB Finish for SFU style symlinks and devices */ 556 if ((attr & ATTR_SYSTEM) &&
556 } else if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) && 557 (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)) {
557 (cifsInfo->cifsAttrs & ATTR_SYSTEM)) { 558 /* no need to fix endianness on 0 */
558 if (decode_sfu_inode(inode, le64_to_cpu(pfindData->EndOfFile), 559 if (pfindData->EndOfFile == 0)
559 full_path, cifs_sb, xid)) 560 inode->i_mode |= S_IFIFO;
560 cFYI(1, ("Unrecognized sfu inode type")); 561 else if (decode_sfu_inode(inode,
561 562 le64_to_cpu(pfindData->EndOfFile),
562 cFYI(1, ("sfu mode 0%o", inode->i_mode)); 563 full_path, cifs_sb, xid))
564 cFYI(1, ("unknown SFU file type\n"));
563 } else { 565 } else {
564 inode->i_mode |= S_IFREG; 566 if (attr & ATTR_DIRECTORY)
565 /* treat dos attribute of read-only as read-only mode eg 555 */ 567 inode->i_mode |= S_IFDIR;
566 if (cifsInfo->cifsAttrs & ATTR_READONLY) 568 else
567 inode->i_mode &= ~(S_IWUGO); 569 inode->i_mode |= S_IFREG;
568 else if ((inode->i_mode & S_IWUGO) == 0)
569 /* the ATTR_READONLY flag may have been */
570 /* changed on server -- set any w bits */
571 /* allowed by mnt_file_mode */
572 inode->i_mode |= (S_IWUGO & cifs_sb->mnt_file_mode);
573 /* BB add code to validate if device or weird share or device type? */
574 } 570 }
575 571
576 spin_lock(&inode->i_lock); 572 spin_lock(&inode->i_lock);
@@ -1019,8 +1015,11 @@ mkdir_get_info:
1019 CIFS_MOUNT_MAP_SPECIAL_CHR); 1015 CIFS_MOUNT_MAP_SPECIAL_CHR);
1020 } 1016 }
1021 if (direntry->d_inode) { 1017 if (direntry->d_inode) {
1022 direntry->d_inode->i_mode = mode; 1018 if (cifs_sb->mnt_cifs_flags &
1023 direntry->d_inode->i_mode |= S_IFDIR; 1019 CIFS_MOUNT_DYNPERM)
1020 direntry->d_inode->i_mode =
1021 (mode | S_IFDIR);
1022
1024 if (cifs_sb->mnt_cifs_flags & 1023 if (cifs_sb->mnt_cifs_flags &
1025 CIFS_MOUNT_SET_UID) { 1024 CIFS_MOUNT_SET_UID) {
1026 direntry->d_inode->i_uid = 1025 direntry->d_inode->i_uid =
@@ -1547,13 +1546,26 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
1547 } else 1546 } else
1548 goto cifs_setattr_exit; 1547 goto cifs_setattr_exit;
1549 } 1548 }
1550 if (attrs->ia_valid & ATTR_UID) { 1549
1551 cFYI(1, ("UID changed to %d", attrs->ia_uid)); 1550 /*
1552 uid = attrs->ia_uid; 1551 * Without unix extensions we can't send ownership changes to the
1553 } 1552 * server, so silently ignore them. This is consistent with how
1554 if (attrs->ia_valid & ATTR_GID) { 1553 * local DOS/Windows filesystems behave (VFAT, NTFS, etc). With
1555 cFYI(1, ("GID changed to %d", attrs->ia_gid)); 1554 * CIFSACL support + proper Windows to Unix idmapping, we may be
1556 gid = attrs->ia_gid; 1555 * able to support this in the future.
1556 */
1557 if (!pTcon->unix_ext &&
1558 !(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID)) {
1559 attrs->ia_valid &= ~(ATTR_UID | ATTR_GID);
1560 } else {
1561 if (attrs->ia_valid & ATTR_UID) {
1562 cFYI(1, ("UID changed to %d", attrs->ia_uid));
1563 uid = attrs->ia_uid;
1564 }
1565 if (attrs->ia_valid & ATTR_GID) {
1566 cFYI(1, ("GID changed to %d", attrs->ia_gid));
1567 gid = attrs->ia_gid;
1568 }
1557 } 1569 }
1558 1570
1559 time_buf.Attributes = 0; 1571 time_buf.Attributes = 0;
@@ -1563,7 +1575,7 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
1563 attrs->ia_valid &= ~ATTR_MODE; 1575 attrs->ia_valid &= ~ATTR_MODE;
1564 1576
1565 if (attrs->ia_valid & ATTR_MODE) { 1577 if (attrs->ia_valid & ATTR_MODE) {
1566 cFYI(1, ("Mode changed to 0x%x", attrs->ia_mode)); 1578 cFYI(1, ("Mode changed to 0%o", attrs->ia_mode));
1567 mode = attrs->ia_mode; 1579 mode = attrs->ia_mode;
1568 } 1580 }
1569 1581
@@ -1578,18 +1590,18 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
1578#ifdef CONFIG_CIFS_EXPERIMENTAL 1590#ifdef CONFIG_CIFS_EXPERIMENTAL
1579 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL) 1591 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL)
1580 rc = mode_to_acl(inode, full_path, mode); 1592 rc = mode_to_acl(inode, full_path, mode);
1581 else if ((mode & S_IWUGO) == 0) { 1593 else
1582#else
1583 if ((mode & S_IWUGO) == 0) {
1584#endif 1594#endif
1585 /* not writeable */ 1595 if (((mode & S_IWUGO) == 0) &&
1586 if ((cifsInode->cifsAttrs & ATTR_READONLY) == 0) { 1596 (cifsInode->cifsAttrs & ATTR_READONLY) == 0) {
1587 set_dosattr = true; 1597 set_dosattr = true;
1588 time_buf.Attributes = 1598 time_buf.Attributes = cpu_to_le32(cifsInode->cifsAttrs |
1589 cpu_to_le32(cifsInode->cifsAttrs | 1599 ATTR_READONLY);
1590 ATTR_READONLY); 1600 /* fix up mode if we're not using dynperm */
1591 } 1601 if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) == 0)
1592 } else if (cifsInode->cifsAttrs & ATTR_READONLY) { 1602 attrs->ia_mode = inode->i_mode & ~S_IWUGO;
1603 } else if ((mode & S_IWUGO) &&
1604 (cifsInode->cifsAttrs & ATTR_READONLY)) {
1593 /* If file is readonly on server, we would 1605 /* If file is readonly on server, we would
1594 not be able to write to it - so if any write 1606 not be able to write to it - so if any write
1595 bit is enabled for user or group or other we 1607 bit is enabled for user or group or other we
@@ -1600,6 +1612,20 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
1600 /* Windows ignores set to zero */ 1612 /* Windows ignores set to zero */
1601 if (time_buf.Attributes == 0) 1613 if (time_buf.Attributes == 0)
1602 time_buf.Attributes |= cpu_to_le32(ATTR_NORMAL); 1614 time_buf.Attributes |= cpu_to_le32(ATTR_NORMAL);
1615
1616 /* reset local inode permissions to normal */
1617 if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)) {
1618 attrs->ia_mode &= ~(S_IALLUGO);
1619 if (S_ISDIR(inode->i_mode))
1620 attrs->ia_mode |=
1621 cifs_sb->mnt_dir_mode;
1622 else
1623 attrs->ia_mode |=
1624 cifs_sb->mnt_file_mode;
1625 }
1626 } else if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM)) {
1627 /* ignore mode change - ATTR_READONLY hasn't changed */
1628 attrs->ia_valid &= ~ATTR_MODE;
1603 } 1629 }
1604 } 1630 }
1605 1631
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index 1d69b8014e0b..4b17f8fe3157 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -519,8 +519,7 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv)
519 pnotify = (struct file_notify_information *) 519 pnotify = (struct file_notify_information *)
520 ((char *)&pSMBr->hdr.Protocol + data_offset); 520 ((char *)&pSMBr->hdr.Protocol + data_offset);
521 cFYI(1, ("dnotify on %s Action: 0x%x", 521 cFYI(1, ("dnotify on %s Action: 0x%x",
522 pnotify->FileName, 522 pnotify->FileName, pnotify->Action));
523 pnotify->Action)); /* BB removeme BB */
524 /* cifs_dump_mem("Rcvd notify Data: ",buf, 523 /* cifs_dump_mem("Rcvd notify Data: ",buf,
525 sizeof(struct smb_hdr)+60); */ 524 sizeof(struct smb_hdr)+60); */
526 return true; 525 return true;
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
index 713c25110197..83f306954883 100644
--- a/fs/cifs/readdir.c
+++ b/fs/cifs/readdir.c
@@ -132,6 +132,7 @@ static void fill_in_inode(struct inode *tmp_inode, int new_buf_type,
132 __u32 attr; 132 __u32 attr;
133 __u64 allocation_size; 133 __u64 allocation_size;
134 __u64 end_of_file; 134 __u64 end_of_file;
135 umode_t default_mode;
135 136
136 /* save mtime and size */ 137 /* save mtime and size */
137 local_mtime = tmp_inode->i_mtime; 138 local_mtime = tmp_inode->i_mtime;
@@ -187,48 +188,54 @@ static void fill_in_inode(struct inode *tmp_inode, int new_buf_type,
187 if (atomic_read(&cifsInfo->inUse) == 0) { 188 if (atomic_read(&cifsInfo->inUse) == 0) {
188 tmp_inode->i_uid = cifs_sb->mnt_uid; 189 tmp_inode->i_uid = cifs_sb->mnt_uid;
189 tmp_inode->i_gid = cifs_sb->mnt_gid; 190 tmp_inode->i_gid = cifs_sb->mnt_gid;
190 /* set default mode. will override for dirs below */ 191 }
191 tmp_inode->i_mode = cifs_sb->mnt_file_mode; 192
192 } else { 193 if (attr & ATTR_DIRECTORY)
193 /* mask off the type bits since it gets set 194 default_mode = cifs_sb->mnt_dir_mode;
194 below and we do not want to get two type 195 else
195 bits set */ 196 default_mode = cifs_sb->mnt_file_mode;
197
198 /* set initial permissions */
199 if ((atomic_read(&cifsInfo->inUse) == 0) ||
200 (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DYNPERM) == 0)
201 tmp_inode->i_mode = default_mode;
202 else {
203 /* just reenable write bits if !ATTR_READONLY */
204 if ((tmp_inode->i_mode & S_IWUGO) == 0 &&
205 (attr & ATTR_READONLY) == 0)
206 tmp_inode->i_mode |= (S_IWUGO & default_mode);
207
196 tmp_inode->i_mode &= ~S_IFMT; 208 tmp_inode->i_mode &= ~S_IFMT;
197 } 209 }
198 210
199 if (attr & ATTR_DIRECTORY) { 211 /* clear write bits if ATTR_READONLY is set */
200 *pobject_type = DT_DIR; 212 if (attr & ATTR_READONLY)
201 /* override default perms since we do not lock dirs */ 213 tmp_inode->i_mode &= ~S_IWUGO;
202 if (atomic_read(&cifsInfo->inUse) == 0) 214
203 tmp_inode->i_mode = cifs_sb->mnt_dir_mode; 215 /* set inode type */
204 tmp_inode->i_mode |= S_IFDIR; 216 if ((attr & ATTR_SYSTEM) &&
205 } else if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL) && 217 (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL)) {
206 (attr & ATTR_SYSTEM)) {
207 if (end_of_file == 0) { 218 if (end_of_file == 0) {
208 *pobject_type = DT_FIFO;
209 tmp_inode->i_mode |= S_IFIFO; 219 tmp_inode->i_mode |= S_IFIFO;
220 *pobject_type = DT_FIFO;
210 } else { 221 } else {
211 /* rather than get the type here, we mark the 222 /*
212 inode as needing revalidate and get the real type 223 * trying to get the type can be slow, so just call
213 (blk vs chr vs. symlink) later ie in lookup */ 224 * this a regular file for now, and mark for reval
214 *pobject_type = DT_REG; 225 */
215 tmp_inode->i_mode |= S_IFREG; 226 tmp_inode->i_mode |= S_IFREG;
227 *pobject_type = DT_REG;
216 cifsInfo->time = 0; 228 cifsInfo->time = 0;
217 } 229 }
218/* we no longer mark these because we could not follow them */
219/* } else if (attr & ATTR_REPARSE) {
220 *pobject_type = DT_LNK;
221 tmp_inode->i_mode |= S_IFLNK; */
222 } else { 230 } else {
223 *pobject_type = DT_REG; 231 if (attr & ATTR_DIRECTORY) {
224 tmp_inode->i_mode |= S_IFREG; 232 tmp_inode->i_mode |= S_IFDIR;
225 if (attr & ATTR_READONLY) 233 *pobject_type = DT_DIR;
226 tmp_inode->i_mode &= ~(S_IWUGO); 234 } else {
227 else if ((tmp_inode->i_mode & S_IWUGO) == 0) 235 tmp_inode->i_mode |= S_IFREG;
228 /* the ATTR_READONLY flag may have been changed on */ 236 *pobject_type = DT_REG;
229 /* server -- set any w bits allowed by mnt_file_mode */ 237 }
230 tmp_inode->i_mode |= (S_IWUGO & cifs_sb->mnt_file_mode); 238 }
231 } /* could add code here - to validate if device or weird share type? */
232 239
233 /* can not fill in nlink here as in qpathinfo version and Unx search */ 240 /* can not fill in nlink here as in qpathinfo version and Unx search */
234 if (atomic_read(&cifsInfo->inUse) == 0) 241 if (atomic_read(&cifsInfo->inUse) == 0)
@@ -675,8 +682,6 @@ static int find_cifs_entry(const int xid, struct cifsTconInfo *pTcon,
675 cifsFile->invalidHandle = true; 682 cifsFile->invalidHandle = true;
676 CIFSFindClose(xid, pTcon, cifsFile->netfid); 683 CIFSFindClose(xid, pTcon, cifsFile->netfid);
677 } 684 }
678 kfree(cifsFile->search_resume_name);
679 cifsFile->search_resume_name = NULL;
680 if (cifsFile->srch_inf.ntwrk_buf_start) { 685 if (cifsFile->srch_inf.ntwrk_buf_start) {
681 cFYI(1, ("freeing SMB ff cache buf on search rewind")); 686 cFYI(1, ("freeing SMB ff cache buf on search rewind"));
682 if (cifsFile->srch_inf.smallBuf) 687 if (cifsFile->srch_inf.smallBuf)
@@ -1043,9 +1048,7 @@ int cifs_readdir(struct file *file, void *direntry, filldir_t filldir)
1043 } /* else { 1048 } /* else {
1044 cifsFile->invalidHandle = true; 1049 cifsFile->invalidHandle = true;
1045 CIFSFindClose(xid, pTcon, cifsFile->netfid); 1050 CIFSFindClose(xid, pTcon, cifsFile->netfid);
1046 } 1051 } */
1047 kfree(cifsFile->search_resume_name);
1048 cifsFile->search_resume_name = NULL; */
1049 1052
1050 rc = find_cifs_entry(xid, pTcon, file, 1053 rc = find_cifs_entry(xid, pTcon, file,
1051 &current_entry, &num_to_fill); 1054 &current_entry, &num_to_fill);
diff --git a/fs/dcache.c b/fs/dcache.c
index 3ee588d5f585..6068c25b393c 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -17,6 +17,7 @@
17#include <linux/syscalls.h> 17#include <linux/syscalls.h>
18#include <linux/string.h> 18#include <linux/string.h>
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <linux/fdtable.h>
20#include <linux/fs.h> 21#include <linux/fs.h>
21#include <linux/fsnotify.h> 22#include <linux/fsnotify.h>
22#include <linux/slab.h> 23#include <linux/slab.h>
@@ -106,9 +107,10 @@ static void dentry_lru_remove(struct dentry *dentry)
106/* 107/*
107 * Release the dentry's inode, using the filesystem 108 * Release the dentry's inode, using the filesystem
108 * d_iput() operation if defined. 109 * d_iput() operation if defined.
109 * Called with dcache_lock and per dentry lock held, drops both.
110 */ 110 */
111static void dentry_iput(struct dentry * dentry) 111static void dentry_iput(struct dentry * dentry)
112 __releases(dentry->d_lock)
113 __releases(dcache_lock)
112{ 114{
113 struct inode *inode = dentry->d_inode; 115 struct inode *inode = dentry->d_inode;
114 if (inode) { 116 if (inode) {
@@ -132,12 +134,13 @@ static void dentry_iput(struct dentry * dentry)
132 * d_kill - kill dentry and return parent 134 * d_kill - kill dentry and return parent
133 * @dentry: dentry to kill 135 * @dentry: dentry to kill
134 * 136 *
135 * Called with dcache_lock and d_lock, releases both. The dentry must 137 * The dentry must already be unhashed and removed from the LRU.
136 * already be unhashed and removed from the LRU.
137 * 138 *
138 * If this is the root of the dentry tree, return NULL. 139 * If this is the root of the dentry tree, return NULL.
139 */ 140 */
140static struct dentry *d_kill(struct dentry *dentry) 141static struct dentry *d_kill(struct dentry *dentry)
142 __releases(dentry->d_lock)
143 __releases(dcache_lock)
141{ 144{
142 struct dentry *parent; 145 struct dentry *parent;
143 146
@@ -383,11 +386,11 @@ restart:
383 * Try to prune ancestors as well. This is necessary to prevent 386 * Try to prune ancestors as well. This is necessary to prevent
384 * quadratic behavior of shrink_dcache_parent(), but is also expected 387 * quadratic behavior of shrink_dcache_parent(), but is also expected
385 * to be beneficial in reducing dentry cache fragmentation. 388 * to be beneficial in reducing dentry cache fragmentation.
386 *
387 * Called with dcache_lock, drops it and then regains.
388 * Called with dentry->d_lock held, drops it.
389 */ 389 */
390static void prune_one_dentry(struct dentry * dentry) 390static void prune_one_dentry(struct dentry * dentry)
391 __releases(dentry->d_lock)
392 __releases(dcache_lock)
393 __acquires(dcache_lock)
391{ 394{
392 __d_drop(dentry); 395 __d_drop(dentry);
393 dentry = d_kill(dentry); 396 dentry = d_kill(dentry);
@@ -1604,10 +1607,9 @@ static int d_isparent(struct dentry *p1, struct dentry *p2)
1604 * 1607 *
1605 * Note: If ever the locking in lock_rename() changes, then please 1608 * Note: If ever the locking in lock_rename() changes, then please
1606 * remember to update this too... 1609 * remember to update this too...
1607 *
1608 * On return, dcache_lock will have been unlocked.
1609 */ 1610 */
1610static struct dentry *__d_unalias(struct dentry *dentry, struct dentry *alias) 1611static struct dentry *__d_unalias(struct dentry *dentry, struct dentry *alias)
1612 __releases(dcache_lock)
1611{ 1613{
1612 struct mutex *m1 = NULL, *m2 = NULL; 1614 struct mutex *m1 = NULL, *m2 = NULL;
1613 struct dentry *ret; 1615 struct dentry *ret;
@@ -1743,11 +1745,9 @@ out_nolock:
1743shouldnt_be_hashed: 1745shouldnt_be_hashed:
1744 spin_unlock(&dcache_lock); 1746 spin_unlock(&dcache_lock);
1745 BUG(); 1747 BUG();
1746 goto shouldnt_be_hashed;
1747} 1748}
1748 1749
1749static int prepend(char **buffer, int *buflen, const char *str, 1750static int prepend(char **buffer, int *buflen, const char *str, int namelen)
1750 int namelen)
1751{ 1751{
1752 *buflen -= namelen; 1752 *buflen -= namelen;
1753 if (*buflen < 0) 1753 if (*buflen < 0)
@@ -1757,8 +1757,13 @@ static int prepend(char **buffer, int *buflen, const char *str,
1757 return 0; 1757 return 0;
1758} 1758}
1759 1759
1760static int prepend_name(char **buffer, int *buflen, struct qstr *name)
1761{
1762 return prepend(buffer, buflen, name->name, name->len);
1763}
1764
1760/** 1765/**
1761 * d_path - return the path of a dentry 1766 * __d_path - return the path of a dentry
1762 * @path: the dentry/vfsmount to report 1767 * @path: the dentry/vfsmount to report
1763 * @root: root vfsmnt/dentry (may be modified by this function) 1768 * @root: root vfsmnt/dentry (may be modified by this function)
1764 * @buffer: buffer to return value in 1769 * @buffer: buffer to return value in
@@ -1779,9 +1784,10 @@ char *__d_path(const struct path *path, struct path *root,
1779{ 1784{
1780 struct dentry *dentry = path->dentry; 1785 struct dentry *dentry = path->dentry;
1781 struct vfsmount *vfsmnt = path->mnt; 1786 struct vfsmount *vfsmnt = path->mnt;
1782 char * end = buffer+buflen; 1787 char *end = buffer + buflen;
1783 char * retval; 1788 char *retval;
1784 1789
1790 spin_lock(&vfsmount_lock);
1785 prepend(&end, &buflen, "\0", 1); 1791 prepend(&end, &buflen, "\0", 1);
1786 if (!IS_ROOT(dentry) && d_unhashed(dentry) && 1792 if (!IS_ROOT(dentry) && d_unhashed(dentry) &&
1787 (prepend(&end, &buflen, " (deleted)", 10) != 0)) 1793 (prepend(&end, &buflen, " (deleted)", 10) != 0))
@@ -1800,38 +1806,37 @@ char *__d_path(const struct path *path, struct path *root,
1800 break; 1806 break;
1801 if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) { 1807 if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
1802 /* Global root? */ 1808 /* Global root? */
1803 spin_lock(&vfsmount_lock);
1804 if (vfsmnt->mnt_parent == vfsmnt) { 1809 if (vfsmnt->mnt_parent == vfsmnt) {
1805 spin_unlock(&vfsmount_lock);
1806 goto global_root; 1810 goto global_root;
1807 } 1811 }
1808 dentry = vfsmnt->mnt_mountpoint; 1812 dentry = vfsmnt->mnt_mountpoint;
1809 vfsmnt = vfsmnt->mnt_parent; 1813 vfsmnt = vfsmnt->mnt_parent;
1810 spin_unlock(&vfsmount_lock);
1811 continue; 1814 continue;
1812 } 1815 }
1813 parent = dentry->d_parent; 1816 parent = dentry->d_parent;
1814 prefetch(parent); 1817 prefetch(parent);
1815 if ((prepend(&end, &buflen, dentry->d_name.name, 1818 if ((prepend_name(&end, &buflen, &dentry->d_name) != 0) ||
1816 dentry->d_name.len) != 0) ||
1817 (prepend(&end, &buflen, "/", 1) != 0)) 1819 (prepend(&end, &buflen, "/", 1) != 0))
1818 goto Elong; 1820 goto Elong;
1819 retval = end; 1821 retval = end;
1820 dentry = parent; 1822 dentry = parent;
1821 } 1823 }
1822 1824
1825out:
1826 spin_unlock(&vfsmount_lock);
1823 return retval; 1827 return retval;
1824 1828
1825global_root: 1829global_root:
1826 retval += 1; /* hit the slash */ 1830 retval += 1; /* hit the slash */
1827 if (prepend(&retval, &buflen, dentry->d_name.name, 1831 if (prepend_name(&retval, &buflen, &dentry->d_name) != 0)
1828 dentry->d_name.len) != 0)
1829 goto Elong; 1832 goto Elong;
1830 root->mnt = vfsmnt; 1833 root->mnt = vfsmnt;
1831 root->dentry = dentry; 1834 root->dentry = dentry;
1832 return retval; 1835 goto out;
1836
1833Elong: 1837Elong:
1834 return ERR_PTR(-ENAMETOOLONG); 1838 retval = ERR_PTR(-ENAMETOOLONG);
1839 goto out;
1835} 1840}
1836 1841
1837/** 1842/**
@@ -1845,9 +1850,9 @@ Elong:
1845 * 1850 *
1846 * Returns the buffer or an error code if the path was too long. 1851 * Returns the buffer or an error code if the path was too long.
1847 * 1852 *
1848 * "buflen" should be positive. Caller holds the dcache_lock. 1853 * "buflen" should be positive.
1849 */ 1854 */
1850char *d_path(struct path *path, char *buf, int buflen) 1855char *d_path(const struct path *path, char *buf, int buflen)
1851{ 1856{
1852 char *res; 1857 char *res;
1853 struct path root; 1858 struct path root;
@@ -1915,16 +1920,11 @@ char *dentry_path(struct dentry *dentry, char *buf, int buflen)
1915 retval = end-1; 1920 retval = end-1;
1916 *retval = '/'; 1921 *retval = '/';
1917 1922
1918 for (;;) { 1923 while (!IS_ROOT(dentry)) {
1919 struct dentry *parent; 1924 struct dentry *parent = dentry->d_parent;
1920 if (IS_ROOT(dentry))
1921 break;
1922 1925
1923 parent = dentry->d_parent;
1924 prefetch(parent); 1926 prefetch(parent);
1925 1927 if ((prepend_name(&end, &buflen, &dentry->d_name) != 0) ||
1926 if ((prepend(&end, &buflen, dentry->d_name.name,
1927 dentry->d_name.len) != 0) ||
1928 (prepend(&end, &buflen, "/", 1) != 0)) 1928 (prepend(&end, &buflen, "/", 1) != 0))
1929 goto Elong; 1929 goto Elong;
1930 1930
@@ -1975,7 +1975,7 @@ asmlinkage long sys_getcwd(char __user *buf, unsigned long size)
1975 error = -ENOENT; 1975 error = -ENOENT;
1976 /* Has the current directory has been unlinked? */ 1976 /* Has the current directory has been unlinked? */
1977 spin_lock(&dcache_lock); 1977 spin_lock(&dcache_lock);
1978 if (pwd.dentry->d_parent == pwd.dentry || !d_unhashed(pwd.dentry)) { 1978 if (IS_ROOT(pwd.dentry) || !d_unhashed(pwd.dentry)) {
1979 unsigned long len; 1979 unsigned long len;
1980 struct path tmp = root; 1980 struct path tmp = root;
1981 char * cwd; 1981 char * cwd;
diff --git a/fs/exec.c b/fs/exec.c
index 9448f1b50b4a..da94a6f05df3 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -26,7 +26,6 @@
26#include <linux/file.h> 26#include <linux/file.h>
27#include <linux/fdtable.h> 27#include <linux/fdtable.h>
28#include <linux/mman.h> 28#include <linux/mman.h>
29#include <linux/a.out.h>
30#include <linux/stat.h> 29#include <linux/stat.h>
31#include <linux/fcntl.h> 30#include <linux/fcntl.h>
32#include <linux/smp_lock.h> 31#include <linux/smp_lock.h>
@@ -61,6 +60,11 @@
61#include <linux/kmod.h> 60#include <linux/kmod.h>
62#endif 61#endif
63 62
63#ifdef __alpha__
64/* for /sbin/loader handling in search_binary_handler() */
65#include <linux/a.out.h>
66#endif
67
64int core_uses_pid; 68int core_uses_pid;
65char core_pattern[CORENAME_MAX_SIZE] = "core"; 69char core_pattern[CORENAME_MAX_SIZE] = "core";
66int suid_dumpable = 0; 70int suid_dumpable = 0;
@@ -1155,7 +1159,7 @@ int search_binary_handler(struct linux_binprm *bprm,struct pt_regs *regs)
1155{ 1159{
1156 int try,retval; 1160 int try,retval;
1157 struct linux_binfmt *fmt; 1161 struct linux_binfmt *fmt;
1158#if defined(__alpha__) && defined(CONFIG_ARCH_SUPPORTS_AOUT) 1162#ifdef __alpha__
1159 /* handle /sbin/loader.. */ 1163 /* handle /sbin/loader.. */
1160 { 1164 {
1161 struct exec * eh = (struct exec *) bprm->buf; 1165 struct exec * eh = (struct exec *) bprm->buf;
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
index 30494c5da843..9cc80b9cc8d8 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -43,6 +43,46 @@ void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr,
43 43
44} 44}
45 45
46static int ext4_block_in_group(struct super_block *sb, ext4_fsblk_t block,
47 ext4_group_t block_group)
48{
49 ext4_group_t actual_group;
50 ext4_get_group_no_and_offset(sb, block, &actual_group, 0);
51 if (actual_group == block_group)
52 return 1;
53 return 0;
54}
55
56static int ext4_group_used_meta_blocks(struct super_block *sb,
57 ext4_group_t block_group)
58{
59 ext4_fsblk_t tmp;
60 struct ext4_sb_info *sbi = EXT4_SB(sb);
61 /* block bitmap, inode bitmap, and inode table blocks */
62 int used_blocks = sbi->s_itb_per_group + 2;
63
64 if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_FLEX_BG)) {
65 struct ext4_group_desc *gdp;
66 struct buffer_head *bh;
67
68 gdp = ext4_get_group_desc(sb, block_group, &bh);
69 if (!ext4_block_in_group(sb, ext4_block_bitmap(sb, gdp),
70 block_group))
71 used_blocks--;
72
73 if (!ext4_block_in_group(sb, ext4_inode_bitmap(sb, gdp),
74 block_group))
75 used_blocks--;
76
77 tmp = ext4_inode_table(sb, gdp);
78 for (; tmp < ext4_inode_table(sb, gdp) +
79 sbi->s_itb_per_group; tmp++) {
80 if (!ext4_block_in_group(sb, tmp, block_group))
81 used_blocks -= 1;
82 }
83 }
84 return used_blocks;
85}
46/* Initializes an uninitialized block bitmap if given, and returns the 86/* Initializes an uninitialized block bitmap if given, and returns the
47 * number of blocks free in the group. */ 87 * number of blocks free in the group. */
48unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh, 88unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
@@ -105,20 +145,34 @@ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
105 free_blocks = group_blocks - bit_max; 145 free_blocks = group_blocks - bit_max;
106 146
107 if (bh) { 147 if (bh) {
108 ext4_fsblk_t start; 148 ext4_fsblk_t start, tmp;
149 int flex_bg = 0;
109 150
110 for (bit = 0; bit < bit_max; bit++) 151 for (bit = 0; bit < bit_max; bit++)
111 ext4_set_bit(bit, bh->b_data); 152 ext4_set_bit(bit, bh->b_data);
112 153
113 start = ext4_group_first_block_no(sb, block_group); 154 start = ext4_group_first_block_no(sb, block_group);
114 155
115 /* Set bits for block and inode bitmaps, and inode table */ 156 if (EXT4_HAS_INCOMPAT_FEATURE(sb,
116 ext4_set_bit(ext4_block_bitmap(sb, gdp) - start, bh->b_data); 157 EXT4_FEATURE_INCOMPAT_FLEX_BG))
117 ext4_set_bit(ext4_inode_bitmap(sb, gdp) - start, bh->b_data); 158 flex_bg = 1;
118 for (bit = (ext4_inode_table(sb, gdp) - start),
119 bit_max = bit + sbi->s_itb_per_group; bit < bit_max; bit++)
120 ext4_set_bit(bit, bh->b_data);
121 159
160 /* Set bits for block and inode bitmaps, and inode table */
161 tmp = ext4_block_bitmap(sb, gdp);
162 if (!flex_bg || ext4_block_in_group(sb, tmp, block_group))
163 ext4_set_bit(tmp - start, bh->b_data);
164
165 tmp = ext4_inode_bitmap(sb, gdp);
166 if (!flex_bg || ext4_block_in_group(sb, tmp, block_group))
167 ext4_set_bit(tmp - start, bh->b_data);
168
169 tmp = ext4_inode_table(sb, gdp);
170 for (; tmp < ext4_inode_table(sb, gdp) +
171 sbi->s_itb_per_group; tmp++) {
172 if (!flex_bg ||
173 ext4_block_in_group(sb, tmp, block_group))
174 ext4_set_bit(tmp - start, bh->b_data);
175 }
122 /* 176 /*
123 * Also if the number of blocks within the group is 177 * Also if the number of blocks within the group is
124 * less than the blocksize * 8 ( which is the size 178 * less than the blocksize * 8 ( which is the size
@@ -126,8 +180,7 @@ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
126 */ 180 */
127 mark_bitmap_end(group_blocks, sb->s_blocksize * 8, bh->b_data); 181 mark_bitmap_end(group_blocks, sb->s_blocksize * 8, bh->b_data);
128 } 182 }
129 183 return free_blocks - ext4_group_used_meta_blocks(sb, block_group);
130 return free_blocks - sbi->s_itb_per_group - 2;
131} 184}
132 185
133 186
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 873ad9b3418c..c9900aade150 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2745,8 +2745,6 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
2745 sbi = EXT4_SB(sb); 2745 sbi = EXT4_SB(sb);
2746 es = sbi->s_es; 2746 es = sbi->s_es;
2747 2747
2748 ext4_debug("using block group %lu(%d)\n", ac->ac_b_ex.fe_group,
2749 gdp->bg_free_blocks_count);
2750 2748
2751 err = -EIO; 2749 err = -EIO;
2752 bitmap_bh = read_block_bitmap(sb, ac->ac_b_ex.fe_group); 2750 bitmap_bh = read_block_bitmap(sb, ac->ac_b_ex.fe_group);
@@ -2762,6 +2760,9 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac,
2762 if (!gdp) 2760 if (!gdp)
2763 goto out_err; 2761 goto out_err;
2764 2762
2763 ext4_debug("using block group %lu(%d)\n", ac->ac_b_ex.fe_group,
2764 gdp->bg_free_blocks_count);
2765
2765 err = ext4_journal_get_write_access(handle, gdp_bh); 2766 err = ext4_journal_get_write_access(handle, gdp_bh);
2766 if (err) 2767 if (err)
2767 goto out_err; 2768 goto out_err;
@@ -3094,8 +3095,7 @@ static void ext4_mb_use_inode_pa(struct ext4_allocation_context *ac,
3094static void ext4_mb_use_group_pa(struct ext4_allocation_context *ac, 3095static void ext4_mb_use_group_pa(struct ext4_allocation_context *ac,
3095 struct ext4_prealloc_space *pa) 3096 struct ext4_prealloc_space *pa)
3096{ 3097{
3097 unsigned len = ac->ac_o_ex.fe_len; 3098 unsigned int len = ac->ac_o_ex.fe_len;
3098
3099 ext4_get_group_no_and_offset(ac->ac_sb, pa->pa_pstart, 3099 ext4_get_group_no_and_offset(ac->ac_sb, pa->pa_pstart,
3100 &ac->ac_b_ex.fe_group, 3100 &ac->ac_b_ex.fe_group,
3101 &ac->ac_b_ex.fe_start); 3101 &ac->ac_b_ex.fe_start);
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 9f086a6a472b..9ff7b1c04239 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -563,7 +563,8 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode,
563 } 563 }
564 564
565 blk = EXT4_SB(sb)->s_sbh->b_blocknr + 1 + EXT4_SB(sb)->s_gdb_count; 565 blk = EXT4_SB(sb)->s_sbh->b_blocknr + 1 + EXT4_SB(sb)->s_gdb_count;
566 data = (__le32 *)dind->b_data + EXT4_SB(sb)->s_gdb_count; 566 data = (__le32 *)dind->b_data + (EXT4_SB(sb)->s_gdb_count %
567 EXT4_ADDR_PER_BLOCK(sb));
567 end = (__le32 *)dind->b_data + EXT4_ADDR_PER_BLOCK(sb); 568 end = (__le32 *)dind->b_data + EXT4_ADDR_PER_BLOCK(sb);
568 569
569 /* Get each reserved primary GDT block and verify it holds backups */ 570 /* Get each reserved primary GDT block and verify it holds backups */
@@ -854,7 +855,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
854 */ 855 */
855 856
856 /* Update group descriptor block for new group */ 857 /* Update group descriptor block for new group */
857 gdp = (struct ext4_group_desc *)primary->b_data + gdb_off; 858 gdp = (struct ext4_group_desc *)((char *)primary->b_data +
859 gdb_off * EXT4_DESC_SIZE(sb));
858 860
859 ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */ 861 ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */
860 ext4_inode_bitmap_set(sb, gdp, input->inode_bitmap); /* LV FIXME */ 862 ext4_inode_bitmap_set(sb, gdp, input->inode_bitmap); /* LV FIXME */
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 09d9359c8055..cb96f127c366 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -671,6 +671,7 @@ static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs)
671 unsigned long def_mount_opts; 671 unsigned long def_mount_opts;
672 struct super_block *sb = vfs->mnt_sb; 672 struct super_block *sb = vfs->mnt_sb;
673 struct ext4_sb_info *sbi = EXT4_SB(sb); 673 struct ext4_sb_info *sbi = EXT4_SB(sb);
674 journal_t *journal = sbi->s_journal;
674 struct ext4_super_block *es = sbi->s_es; 675 struct ext4_super_block *es = sbi->s_es;
675 676
676 def_mount_opts = le32_to_cpu(es->s_default_mount_opts); 677 def_mount_opts = le32_to_cpu(es->s_default_mount_opts);
@@ -729,8 +730,15 @@ static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs)
729 seq_printf(seq, ",commit=%u", 730 seq_printf(seq, ",commit=%u",
730 (unsigned) (sbi->s_commit_interval / HZ)); 731 (unsigned) (sbi->s_commit_interval / HZ));
731 } 732 }
732 if (test_opt(sb, BARRIER)) 733 /*
733 seq_puts(seq, ",barrier=1"); 734 * We're changing the default of barrier mount option, so
735 * let's always display its mount state so it's clear what its
736 * status is.
737 */
738 seq_puts(seq, ",barrier=");
739 seq_puts(seq, test_opt(sb, BARRIER) ? "1" : "0");
740 if (test_opt(sb, JOURNAL_ASYNC_COMMIT))
741 seq_puts(seq, ",journal_async_commit");
734 if (test_opt(sb, NOBH)) 742 if (test_opt(sb, NOBH))
735 seq_puts(seq, ",nobh"); 743 seq_puts(seq, ",nobh");
736 if (!test_opt(sb, EXTENTS)) 744 if (!test_opt(sb, EXTENTS))
@@ -1907,6 +1915,7 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent)
1907 sbi->s_resgid = le16_to_cpu(es->s_def_resgid); 1915 sbi->s_resgid = le16_to_cpu(es->s_def_resgid);
1908 1916
1909 set_opt(sbi->s_mount_opt, RESERVATION); 1917 set_opt(sbi->s_mount_opt, RESERVATION);
1918 set_opt(sbi->s_mount_opt, BARRIER);
1910 1919
1911 /* 1920 /*
1912 * turn on extents feature by default in ext4 filesystem 1921 * turn on extents feature by default in ext4 filesystem
@@ -2189,6 +2198,29 @@ static int ext4_fill_super (struct super_block *sb, void *data, int silent)
2189 EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_HAS_JOURNAL)) { 2198 EXT4_HAS_COMPAT_FEATURE(sb, EXT4_FEATURE_COMPAT_HAS_JOURNAL)) {
2190 if (ext4_load_journal(sb, es, journal_devnum)) 2199 if (ext4_load_journal(sb, es, journal_devnum))
2191 goto failed_mount3; 2200 goto failed_mount3;
2201 if (!(sb->s_flags & MS_RDONLY) &&
2202 EXT4_SB(sb)->s_journal->j_failed_commit) {
2203 printk(KERN_CRIT "EXT4-fs error (device %s): "
2204 "ext4_fill_super: Journal transaction "
2205 "%u is corrupt\n", sb->s_id,
2206 EXT4_SB(sb)->s_journal->j_failed_commit);
2207 if (test_opt (sb, ERRORS_RO)) {
2208 printk (KERN_CRIT
2209 "Mounting filesystem read-only\n");
2210 sb->s_flags |= MS_RDONLY;
2211 EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS;
2212 es->s_state |= cpu_to_le16(EXT4_ERROR_FS);
2213 }
2214 if (test_opt(sb, ERRORS_PANIC)) {
2215 EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS;
2216 es->s_state |= cpu_to_le16(EXT4_ERROR_FS);
2217 ext4_commit_super(sb, es, 1);
2218 printk(KERN_CRIT
2219 "EXT4-fs (device %s): mount failed\n",
2220 sb->s_id);
2221 goto failed_mount4;
2222 }
2223 }
2192 } else if (journal_inum) { 2224 } else if (journal_inum) {
2193 if (ext4_create_journal(sb, es, journal_inum)) 2225 if (ext4_create_journal(sb, es, journal_inum))
2194 goto failed_mount3; 2226 goto failed_mount3;
diff --git a/fs/fat/file.c b/fs/fat/file.c
index 27cc1164ec36..771326b8047e 100644
--- a/fs/fat/file.c
+++ b/fs/fat/file.c
@@ -257,26 +257,34 @@ int fat_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
257} 257}
258EXPORT_SYMBOL_GPL(fat_getattr); 258EXPORT_SYMBOL_GPL(fat_getattr);
259 259
260static int fat_check_mode(const struct msdos_sb_info *sbi, struct inode *inode, 260static int fat_sanitize_mode(const struct msdos_sb_info *sbi,
261 mode_t mode) 261 struct inode *inode, umode_t *mode_ptr)
262{ 262{
263 mode_t mask, req = mode & ~S_IFMT; 263 mode_t mask, perm;
264 264
265 if (S_ISREG(mode)) 265 /*
266 * Note, the basic check is already done by a caller of
267 * (attr->ia_mode & ~MSDOS_VALID_MODE)
268 */
269
270 if (S_ISREG(inode->i_mode))
266 mask = sbi->options.fs_fmask; 271 mask = sbi->options.fs_fmask;
267 else 272 else
268 mask = sbi->options.fs_dmask; 273 mask = sbi->options.fs_dmask;
269 274
275 perm = *mode_ptr & ~(S_IFMT | mask);
276
270 /* 277 /*
271 * Of the r and x bits, all (subject to umask) must be present. Of the 278 * Of the r and x bits, all (subject to umask) must be present. Of the
272 * w bits, either all (subject to umask) or none must be present. 279 * w bits, either all (subject to umask) or none must be present.
273 */ 280 */
274 req &= ~mask; 281 if ((perm & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO)))
275 if ((req & (S_IRUGO | S_IXUGO)) != (inode->i_mode & (S_IRUGO|S_IXUGO)))
276 return -EPERM; 282 return -EPERM;
277 if ((req & S_IWUGO) && ((req & S_IWUGO) != (S_IWUGO & ~mask))) 283 if ((perm & S_IWUGO) && ((perm & S_IWUGO) != (S_IWUGO & ~mask)))
278 return -EPERM; 284 return -EPERM;
279 285
286 *mode_ptr &= S_IFMT | perm;
287
280 return 0; 288 return 0;
281} 289}
282 290
@@ -299,7 +307,7 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr)
299{ 307{
300 struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb); 308 struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb);
301 struct inode *inode = dentry->d_inode; 309 struct inode *inode = dentry->d_inode;
302 int mask, error = 0; 310 int error = 0;
303 unsigned int ia_valid; 311 unsigned int ia_valid;
304 312
305 lock_kernel(); 313 lock_kernel();
@@ -332,12 +340,13 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr)
332 error = 0; 340 error = 0;
333 goto out; 341 goto out;
334 } 342 }
343
335 if (((attr->ia_valid & ATTR_UID) && 344 if (((attr->ia_valid & ATTR_UID) &&
336 (attr->ia_uid != sbi->options.fs_uid)) || 345 (attr->ia_uid != sbi->options.fs_uid)) ||
337 ((attr->ia_valid & ATTR_GID) && 346 ((attr->ia_valid & ATTR_GID) &&
338 (attr->ia_gid != sbi->options.fs_gid)) || 347 (attr->ia_gid != sbi->options.fs_gid)) ||
339 ((attr->ia_valid & ATTR_MODE) && 348 ((attr->ia_valid & ATTR_MODE) &&
340 fat_check_mode(sbi, inode, attr->ia_mode) < 0)) 349 (attr->ia_mode & ~MSDOS_VALID_MODE)))
341 error = -EPERM; 350 error = -EPERM;
342 351
343 if (error) { 352 if (error) {
@@ -346,15 +355,16 @@ int fat_setattr(struct dentry *dentry, struct iattr *attr)
346 goto out; 355 goto out;
347 } 356 }
348 357
349 error = inode_setattr(inode, attr); 358 /*
350 if (error) 359 * We don't return -EPERM here. Yes, strange, but this is too
351 goto out; 360 * old behavior.
361 */
362 if (attr->ia_valid & ATTR_MODE) {
363 if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
364 attr->ia_valid &= ~ATTR_MODE;
365 }
352 366
353 if (S_ISDIR(inode->i_mode)) 367 error = inode_setattr(inode, attr);
354 mask = sbi->options.fs_dmask;
355 else
356 mask = sbi->options.fs_fmask;
357 inode->i_mode &= S_IFMT | (S_IRWXUGO & ~mask);
358out: 368out:
359 unlock_kernel(); 369 unlock_kernel();
360 return error; 370 return error;
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 43e99513334a..3141690558c8 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -591,7 +591,7 @@ static void process_init_reply(struct fuse_conn *fc, struct fuse_req *req)
591 fc->bdi.ra_pages = min(fc->bdi.ra_pages, ra_pages); 591 fc->bdi.ra_pages = min(fc->bdi.ra_pages, ra_pages);
592 fc->minor = arg->minor; 592 fc->minor = arg->minor;
593 fc->max_write = arg->minor < 5 ? 4096 : arg->max_write; 593 fc->max_write = arg->minor < 5 ? 4096 : arg->max_write;
594 fc->max_write = min_t(unsigned, 4096, fc->max_write); 594 fc->max_write = max_t(unsigned, 4096, fc->max_write);
595 fc->conn_init = 1; 595 fc->conn_init = 1;
596 } 596 }
597 fuse_put_request(fc, req); 597 fuse_put_request(fc, req);
@@ -667,7 +667,7 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
667 fc->flags = d.flags; 667 fc->flags = d.flags;
668 fc->user_id = d.user_id; 668 fc->user_id = d.user_id;
669 fc->group_id = d.group_id; 669 fc->group_id = d.group_id;
670 fc->max_read = min_t(unsigned, 4096, d.max_read); 670 fc->max_read = max_t(unsigned, 4096, d.max_read);
671 671
672 /* Used by get_root_inode() */ 672 /* Used by get_root_inode() */
673 sb->s_fs_info = fc; 673 sb->s_fs_info = fc;
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index c19184f2e70e..bec76b1c2bb0 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -246,15 +246,11 @@ static void find_metapath(const struct gfs2_sbd *sdp, u64 block,
246 246
247} 247}
248 248
249static inline unsigned int zero_metapath_length(const struct metapath *mp, 249static inline unsigned int metapath_branch_start(const struct metapath *mp)
250 unsigned height)
251{ 250{
252 unsigned int i; 251 if (mp->mp_list[0] == 0)
253 for (i = 0; i < height - 1; i++) { 252 return 2;
254 if (mp->mp_list[i] != 0) 253 return 1;
255 return i;
256 }
257 return height;
258} 254}
259 255
260/** 256/**
@@ -436,7 +432,7 @@ static int gfs2_bmap_alloc(struct inode *inode, const sector_t lblock,
436 struct gfs2_sbd *sdp = GFS2_SB(inode); 432 struct gfs2_sbd *sdp = GFS2_SB(inode);
437 struct buffer_head *dibh = mp->mp_bh[0]; 433 struct buffer_head *dibh = mp->mp_bh[0];
438 u64 bn, dblock = 0; 434 u64 bn, dblock = 0;
439 unsigned n, i, blks, alloced = 0, iblks = 0, zmpl = 0; 435 unsigned n, i, blks, alloced = 0, iblks = 0, branch_start = 0;
440 unsigned dblks = 0; 436 unsigned dblks = 0;
441 unsigned ptrs_per_blk; 437 unsigned ptrs_per_blk;
442 const unsigned end_of_metadata = height - 1; 438 const unsigned end_of_metadata = height - 1;
@@ -471,9 +467,8 @@ static int gfs2_bmap_alloc(struct inode *inode, const sector_t lblock,
471 /* Building up tree height */ 467 /* Building up tree height */
472 state = ALLOC_GROW_HEIGHT; 468 state = ALLOC_GROW_HEIGHT;
473 iblks = height - ip->i_height; 469 iblks = height - ip->i_height;
474 zmpl = zero_metapath_length(mp, height); 470 branch_start = metapath_branch_start(mp);
475 iblks -= zmpl; 471 iblks += (height - branch_start);
476 iblks += height;
477 } 472 }
478 } 473 }
479 474
@@ -509,13 +504,13 @@ static int gfs2_bmap_alloc(struct inode *inode, const sector_t lblock,
509 sizeof(struct gfs2_meta_header)); 504 sizeof(struct gfs2_meta_header));
510 *ptr = zero_bn; 505 *ptr = zero_bn;
511 state = ALLOC_GROW_DEPTH; 506 state = ALLOC_GROW_DEPTH;
512 for(i = zmpl; i < height; i++) { 507 for(i = branch_start; i < height; i++) {
513 if (mp->mp_bh[i] == NULL) 508 if (mp->mp_bh[i] == NULL)
514 break; 509 break;
515 brelse(mp->mp_bh[i]); 510 brelse(mp->mp_bh[i]);
516 mp->mp_bh[i] = NULL; 511 mp->mp_bh[i] = NULL;
517 } 512 }
518 i = zmpl; 513 i = branch_start;
519 } 514 }
520 if (n == 0) 515 if (n == 0)
521 break; 516 break;
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 6387523a3153..3401628d742b 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -195,7 +195,7 @@ ulong_aligned:
195 depending on architecture. I've experimented with several ways 195 depending on architecture. I've experimented with several ways
196 of writing this section such as using an else before the goto 196 of writing this section such as using an else before the goto
197 but this one seems to be the fastest. */ 197 but this one seems to be the fastest. */
198 while ((unsigned char *)plong < end - 1) { 198 while ((unsigned char *)plong < end - sizeof(unsigned long)) {
199 prefetch(plong + 1); 199 prefetch(plong + 1);
200 if (((*plong) & LBITMASK) != lskipval) 200 if (((*plong) & LBITMASK) != lskipval)
201 break; 201 break;
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 4d99685fdce4..a2ed72f7ceee 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -168,6 +168,7 @@ static int journal_submit_commit_record(journal_t *journal,
168 spin_unlock(&journal->j_state_lock); 168 spin_unlock(&journal->j_state_lock);
169 169
170 /* And try again, without the barrier */ 170 /* And try again, without the barrier */
171 lock_buffer(bh);
171 set_buffer_uptodate(bh); 172 set_buffer_uptodate(bh);
172 set_buffer_dirty(bh); 173 set_buffer_dirty(bh);
173 ret = submit_bh(WRITE, bh); 174 ret = submit_bh(WRITE, bh);
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index 5d0405a9e7ca..058f50f65b76 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -344,6 +344,7 @@ static int calc_chksums(journal_t *journal, struct buffer_head *bh,
344 *crc32_sum = crc32_be(*crc32_sum, (void *)obh->b_data, 344 *crc32_sum = crc32_be(*crc32_sum, (void *)obh->b_data,
345 obh->b_size); 345 obh->b_size);
346 } 346 }
347 put_bh(obh);
347 } 348 }
348 return 0; 349 return 0;
349} 350}
@@ -610,9 +611,8 @@ static int do_one_pass(journal_t *journal,
610 chksum_err = chksum_seen = 0; 611 chksum_err = chksum_seen = 0;
611 612
612 if (info->end_transaction) { 613 if (info->end_transaction) {
613 printk(KERN_ERR "JBD: Transaction %u " 614 journal->j_failed_commit =
614 "found to be corrupt.\n", 615 info->end_transaction;
615 next_commit_ID - 1);
616 brelse(bh); 616 brelse(bh);
617 break; 617 break;
618 } 618 }
@@ -643,10 +643,8 @@ static int do_one_pass(journal_t *journal,
643 643
644 if (!JBD2_HAS_INCOMPAT_FEATURE(journal, 644 if (!JBD2_HAS_INCOMPAT_FEATURE(journal,
645 JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)){ 645 JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)){
646 printk(KERN_ERR 646 journal->j_failed_commit =
647 "JBD: Transaction %u " 647 next_commit_ID;
648 "found to be corrupt.\n",
649 next_commit_ID);
650 brelse(bh); 648 brelse(bh);
651 break; 649 break;
652 } 650 }
diff --git a/fs/locks.c b/fs/locks.c
index 11dbf08651b7..dce8c747371c 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -561,9 +561,6 @@ static void locks_insert_lock(struct file_lock **pos, struct file_lock *fl)
561 /* insert into file's list */ 561 /* insert into file's list */
562 fl->fl_next = *pos; 562 fl->fl_next = *pos;
563 *pos = fl; 563 *pos = fl;
564
565 if (fl->fl_ops && fl->fl_ops->fl_insert)
566 fl->fl_ops->fl_insert(fl);
567} 564}
568 565
569/* 566/*
@@ -586,9 +583,6 @@ static void locks_delete_lock(struct file_lock **thisfl_p)
586 fl->fl_fasync = NULL; 583 fl->fl_fasync = NULL;
587 } 584 }
588 585
589 if (fl->fl_ops && fl->fl_ops->fl_remove)
590 fl->fl_ops->fl_remove(fl);
591
592 if (fl->fl_nspid) { 586 if (fl->fl_nspid) {
593 put_pid(fl->fl_nspid); 587 put_pid(fl->fl_nspid);
594 fl->fl_nspid = NULL; 588 fl->fl_nspid = NULL;
diff --git a/fs/namei.c b/fs/namei.c
index c7e43536c49a..01e67dddcc3d 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -581,15 +581,13 @@ static __always_inline int link_path_walk(const char *name, struct nameidata *nd
581 int result; 581 int result;
582 582
583 /* make sure the stuff we saved doesn't go away */ 583 /* make sure the stuff we saved doesn't go away */
584 dget(save.dentry); 584 path_get(&save);
585 mntget(save.mnt);
586 585
587 result = __link_path_walk(name, nd); 586 result = __link_path_walk(name, nd);
588 if (result == -ESTALE) { 587 if (result == -ESTALE) {
589 /* nd->path had been dropped */ 588 /* nd->path had been dropped */
590 nd->path = save; 589 nd->path = save;
591 dget(nd->path.dentry); 590 path_get(&nd->path);
592 mntget(nd->path.mnt);
593 nd->flags |= LOOKUP_REVAL; 591 nd->flags |= LOOKUP_REVAL;
594 result = __link_path_walk(name, nd); 592 result = __link_path_walk(name, nd);
595 } 593 }
@@ -1216,8 +1214,9 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
1216 nd->flags = flags; 1214 nd->flags = flags;
1217 nd->depth = 0; 1215 nd->depth = 0;
1218 1216
1219 nd->path.mnt = mntget(mnt); 1217 nd->path.dentry = dentry;
1220 nd->path.dentry = dget(dentry); 1218 nd->path.mnt = mnt;
1219 path_get(&nd->path);
1221 1220
1222 retval = path_walk(name, nd); 1221 retval = path_walk(name, nd);
1223 if (unlikely(!retval && !audit_dummy_context() && nd->path.dentry && 1222 if (unlikely(!retval && !audit_dummy_context() && nd->path.dentry &&
@@ -2857,16 +2856,17 @@ int generic_readlink(struct dentry *dentry, char __user *buffer, int buflen)
2857{ 2856{
2858 struct nameidata nd; 2857 struct nameidata nd;
2859 void *cookie; 2858 void *cookie;
2859 int res;
2860 2860
2861 nd.depth = 0; 2861 nd.depth = 0;
2862 cookie = dentry->d_inode->i_op->follow_link(dentry, &nd); 2862 cookie = dentry->d_inode->i_op->follow_link(dentry, &nd);
2863 if (!IS_ERR(cookie)) { 2863 if (IS_ERR(cookie))
2864 int res = vfs_readlink(dentry, buffer, buflen, nd_get_link(&nd)); 2864 return PTR_ERR(cookie);
2865 if (dentry->d_inode->i_op->put_link) 2865
2866 dentry->d_inode->i_op->put_link(dentry, &nd, cookie); 2866 res = vfs_readlink(dentry, buffer, buflen, nd_get_link(&nd));
2867 cookie = ERR_PTR(res); 2867 if (dentry->d_inode->i_op->put_link)
2868 } 2868 dentry->d_inode->i_op->put_link(dentry, &nd, cookie);
2869 return PTR_ERR(cookie); 2869 return res;
2870} 2870}
2871 2871
2872int vfs_follow_link(struct nameidata *nd, const char *link) 2872int vfs_follow_link(struct nameidata *nd, const char *link)
diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c
index 49c7cd0502cc..779d2eb649c5 100644
--- a/fs/nfs/mount_clnt.c
+++ b/fs/nfs/mount_clnt.c
@@ -130,10 +130,11 @@ static int xdr_decode_fhstatus3(struct rpc_rqst *req, __be32 *p,
130 struct mnt_fhstatus *res) 130 struct mnt_fhstatus *res)
131{ 131{
132 struct nfs_fh *fh = res->fh; 132 struct nfs_fh *fh = res->fh;
133 unsigned size;
133 134
134 if ((res->status = ntohl(*p++)) == 0) { 135 if ((res->status = ntohl(*p++)) == 0) {
135 int size = ntohl(*p++); 136 size = ntohl(*p++);
136 if (size <= NFS3_FHSIZE) { 137 if (size <= NFS3_FHSIZE && size != 0) {
137 fh->size = size; 138 fh->size = size;
138 memcpy(fh->data, p, size); 139 memcpy(fh->data, p, size);
139 } else 140 } else
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 2a4a024a4e7b..614efeed5437 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1216,8 +1216,6 @@ static int nfs_validate_mount_data(void *options,
1216{ 1216{
1217 struct nfs_mount_data *data = (struct nfs_mount_data *)options; 1217 struct nfs_mount_data *data = (struct nfs_mount_data *)options;
1218 1218
1219 memset(args, 0, sizeof(*args));
1220
1221 if (data == NULL) 1219 if (data == NULL)
1222 goto out_no_data; 1220 goto out_no_data;
1223 1221
@@ -1251,13 +1249,13 @@ static int nfs_validate_mount_data(void *options,
1251 case 5: 1249 case 5:
1252 memset(data->context, 0, sizeof(data->context)); 1250 memset(data->context, 0, sizeof(data->context));
1253 case 6: 1251 case 6:
1254 if (data->flags & NFS_MOUNT_VER3) 1252 if (data->flags & NFS_MOUNT_VER3) {
1253 if (data->root.size > NFS3_FHSIZE || data->root.size == 0)
1254 goto out_invalid_fh;
1255 mntfh->size = data->root.size; 1255 mntfh->size = data->root.size;
1256 else 1256 } else
1257 mntfh->size = NFS2_FHSIZE; 1257 mntfh->size = NFS2_FHSIZE;
1258 1258
1259 if (mntfh->size > sizeof(mntfh->data))
1260 goto out_invalid_fh;
1261 1259
1262 memcpy(mntfh->data, data->root.data, mntfh->size); 1260 memcpy(mntfh->data, data->root.data, mntfh->size);
1263 if (mntfh->size < sizeof(mntfh->data)) 1261 if (mntfh->size < sizeof(mntfh->data))
@@ -1585,24 +1583,29 @@ static int nfs_get_sb(struct file_system_type *fs_type,
1585{ 1583{
1586 struct nfs_server *server = NULL; 1584 struct nfs_server *server = NULL;
1587 struct super_block *s; 1585 struct super_block *s;
1588 struct nfs_fh mntfh; 1586 struct nfs_parsed_mount_data *data;
1589 struct nfs_parsed_mount_data data; 1587 struct nfs_fh *mntfh;
1590 struct dentry *mntroot; 1588 struct dentry *mntroot;
1591 int (*compare_super)(struct super_block *, void *) = nfs_compare_super; 1589 int (*compare_super)(struct super_block *, void *) = nfs_compare_super;
1592 struct nfs_sb_mountdata sb_mntdata = { 1590 struct nfs_sb_mountdata sb_mntdata = {
1593 .mntflags = flags, 1591 .mntflags = flags,
1594 }; 1592 };
1595 int error; 1593 int error = -ENOMEM;
1594
1595 data = kzalloc(sizeof(*data), GFP_KERNEL);
1596 mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL);
1597 if (data == NULL || mntfh == NULL)
1598 goto out_free_fh;
1596 1599
1597 security_init_mnt_opts(&data.lsm_opts); 1600 security_init_mnt_opts(&data->lsm_opts);
1598 1601
1599 /* Validate the mount data */ 1602 /* Validate the mount data */
1600 error = nfs_validate_mount_data(raw_data, &data, &mntfh, dev_name); 1603 error = nfs_validate_mount_data(raw_data, data, mntfh, dev_name);
1601 if (error < 0) 1604 if (error < 0)
1602 goto out; 1605 goto out;
1603 1606
1604 /* Get a volume representation */ 1607 /* Get a volume representation */
1605 server = nfs_create_server(&data, &mntfh); 1608 server = nfs_create_server(data, mntfh);
1606 if (IS_ERR(server)) { 1609 if (IS_ERR(server)) {
1607 error = PTR_ERR(server); 1610 error = PTR_ERR(server);
1608 goto out; 1611 goto out;
@@ -1630,16 +1633,16 @@ static int nfs_get_sb(struct file_system_type *fs_type,
1630 1633
1631 if (!s->s_root) { 1634 if (!s->s_root) {
1632 /* initial superblock/root creation */ 1635 /* initial superblock/root creation */
1633 nfs_fill_super(s, &data); 1636 nfs_fill_super(s, data);
1634 } 1637 }
1635 1638
1636 mntroot = nfs_get_root(s, &mntfh); 1639 mntroot = nfs_get_root(s, mntfh);
1637 if (IS_ERR(mntroot)) { 1640 if (IS_ERR(mntroot)) {
1638 error = PTR_ERR(mntroot); 1641 error = PTR_ERR(mntroot);
1639 goto error_splat_super; 1642 goto error_splat_super;
1640 } 1643 }
1641 1644
1642 error = security_sb_set_mnt_opts(s, &data.lsm_opts); 1645 error = security_sb_set_mnt_opts(s, &data->lsm_opts);
1643 if (error) 1646 if (error)
1644 goto error_splat_root; 1647 goto error_splat_root;
1645 1648
@@ -1649,9 +1652,12 @@ static int nfs_get_sb(struct file_system_type *fs_type,
1649 error = 0; 1652 error = 0;
1650 1653
1651out: 1654out:
1652 kfree(data.nfs_server.hostname); 1655 kfree(data->nfs_server.hostname);
1653 kfree(data.mount_server.hostname); 1656 kfree(data->mount_server.hostname);
1654 security_free_mnt_opts(&data.lsm_opts); 1657 security_free_mnt_opts(&data->lsm_opts);
1658out_free_fh:
1659 kfree(mntfh);
1660 kfree(data);
1655 return error; 1661 return error;
1656 1662
1657out_err_nosb: 1663out_err_nosb:
@@ -1800,8 +1806,6 @@ static int nfs4_validate_mount_data(void *options,
1800 struct nfs4_mount_data *data = (struct nfs4_mount_data *)options; 1806 struct nfs4_mount_data *data = (struct nfs4_mount_data *)options;
1801 char *c; 1807 char *c;
1802 1808
1803 memset(args, 0, sizeof(*args));
1804
1805 if (data == NULL) 1809 if (data == NULL)
1806 goto out_no_data; 1810 goto out_no_data;
1807 1811
@@ -1959,26 +1963,31 @@ out_no_client_address:
1959static int nfs4_get_sb(struct file_system_type *fs_type, 1963static int nfs4_get_sb(struct file_system_type *fs_type,
1960 int flags, const char *dev_name, void *raw_data, struct vfsmount *mnt) 1964 int flags, const char *dev_name, void *raw_data, struct vfsmount *mnt)
1961{ 1965{
1962 struct nfs_parsed_mount_data data; 1966 struct nfs_parsed_mount_data *data;
1963 struct super_block *s; 1967 struct super_block *s;
1964 struct nfs_server *server; 1968 struct nfs_server *server;
1965 struct nfs_fh mntfh; 1969 struct nfs_fh *mntfh;
1966 struct dentry *mntroot; 1970 struct dentry *mntroot;
1967 int (*compare_super)(struct super_block *, void *) = nfs_compare_super; 1971 int (*compare_super)(struct super_block *, void *) = nfs_compare_super;
1968 struct nfs_sb_mountdata sb_mntdata = { 1972 struct nfs_sb_mountdata sb_mntdata = {
1969 .mntflags = flags, 1973 .mntflags = flags,
1970 }; 1974 };
1971 int error; 1975 int error = -ENOMEM;
1972 1976
1973 security_init_mnt_opts(&data.lsm_opts); 1977 data = kzalloc(sizeof(*data), GFP_KERNEL);
1978 mntfh = kzalloc(sizeof(*mntfh), GFP_KERNEL);
1979 if (data == NULL || mntfh == NULL)
1980 goto out_free_fh;
1981
1982 security_init_mnt_opts(&data->lsm_opts);
1974 1983
1975 /* Validate the mount data */ 1984 /* Validate the mount data */
1976 error = nfs4_validate_mount_data(raw_data, &data, dev_name); 1985 error = nfs4_validate_mount_data(raw_data, data, dev_name);
1977 if (error < 0) 1986 if (error < 0)
1978 goto out; 1987 goto out;
1979 1988
1980 /* Get a volume representation */ 1989 /* Get a volume representation */
1981 server = nfs4_create_server(&data, &mntfh); 1990 server = nfs4_create_server(data, mntfh);
1982 if (IS_ERR(server)) { 1991 if (IS_ERR(server)) {
1983 error = PTR_ERR(server); 1992 error = PTR_ERR(server);
1984 goto out; 1993 goto out;
@@ -2009,13 +2018,13 @@ static int nfs4_get_sb(struct file_system_type *fs_type,
2009 nfs4_fill_super(s); 2018 nfs4_fill_super(s);
2010 } 2019 }
2011 2020
2012 mntroot = nfs4_get_root(s, &mntfh); 2021 mntroot = nfs4_get_root(s, mntfh);
2013 if (IS_ERR(mntroot)) { 2022 if (IS_ERR(mntroot)) {
2014 error = PTR_ERR(mntroot); 2023 error = PTR_ERR(mntroot);
2015 goto error_splat_super; 2024 goto error_splat_super;
2016 } 2025 }
2017 2026
2018 error = security_sb_set_mnt_opts(s, &data.lsm_opts); 2027 error = security_sb_set_mnt_opts(s, &data->lsm_opts);
2019 if (error) 2028 if (error)
2020 goto error_splat_root; 2029 goto error_splat_root;
2021 2030
@@ -2025,10 +2034,13 @@ static int nfs4_get_sb(struct file_system_type *fs_type,
2025 error = 0; 2034 error = 0;
2026 2035
2027out: 2036out:
2028 kfree(data.client_address); 2037 kfree(data->client_address);
2029 kfree(data.nfs_server.export_path); 2038 kfree(data->nfs_server.export_path);
2030 kfree(data.nfs_server.hostname); 2039 kfree(data->nfs_server.hostname);
2031 security_free_mnt_opts(&data.lsm_opts); 2040 security_free_mnt_opts(&data->lsm_opts);
2041out_free_fh:
2042 kfree(mntfh);
2043 kfree(data);
2032 return error; 2044 return error;
2033 2045
2034out_free: 2046out_free:
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 6d8ace3e3259..f333848fd3be 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -739,12 +739,13 @@ int nfs_updatepage(struct file *file, struct page *page,
739 } 739 }
740 740
741 status = nfs_writepage_setup(ctx, page, offset, count); 741 status = nfs_writepage_setup(ctx, page, offset, count);
742 __set_page_dirty_nobuffers(page); 742 if (status < 0)
743 nfs_set_pageerror(page);
744 else
745 __set_page_dirty_nobuffers(page);
743 746
744 dprintk("NFS: nfs_updatepage returns %d (isize %Ld)\n", 747 dprintk("NFS: nfs_updatepage returns %d (isize %Ld)\n",
745 status, (long long)i_size_read(inode)); 748 status, (long long)i_size_read(inode));
746 if (status < 0)
747 nfs_set_pageerror(page);
748 return status; 749 return status;
749} 750}
750 751
diff --git a/fs/ocfs2/cluster/nodemanager.c b/fs/ocfs2/cluster/nodemanager.c
index cf9401e8cd0b..cfdb08b484ed 100644
--- a/fs/ocfs2/cluster/nodemanager.c
+++ b/fs/ocfs2/cluster/nodemanager.c
@@ -21,7 +21,6 @@
21 21
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/sysctl.h>
25#include <linux/configfs.h> 24#include <linux/configfs.h>
26 25
27#include "tcp.h" 26#include "tcp.h"
@@ -36,65 +35,6 @@
36 * cluster references throughout where nodes are looked up */ 35 * cluster references throughout where nodes are looked up */
37struct o2nm_cluster *o2nm_single_cluster = NULL; 36struct o2nm_cluster *o2nm_single_cluster = NULL;
38 37
39#define OCFS2_MAX_HB_CTL_PATH 256
40static char ocfs2_hb_ctl_path[OCFS2_MAX_HB_CTL_PATH] = "/sbin/ocfs2_hb_ctl";
41
42static ctl_table ocfs2_nm_table[] = {
43 {
44 .ctl_name = 1,
45 .procname = "hb_ctl_path",
46 .data = ocfs2_hb_ctl_path,
47 .maxlen = OCFS2_MAX_HB_CTL_PATH,
48 .mode = 0644,
49 .proc_handler = &proc_dostring,
50 .strategy = &sysctl_string,
51 },
52 { .ctl_name = 0 }
53};
54
55static ctl_table ocfs2_mod_table[] = {
56 {
57 .ctl_name = FS_OCFS2_NM,
58 .procname = "nm",
59 .data = NULL,
60 .maxlen = 0,
61 .mode = 0555,
62 .child = ocfs2_nm_table
63 },
64 { .ctl_name = 0}
65};
66
67static ctl_table ocfs2_kern_table[] = {
68 {
69 .ctl_name = FS_OCFS2,
70 .procname = "ocfs2",
71 .data = NULL,
72 .maxlen = 0,
73 .mode = 0555,
74 .child = ocfs2_mod_table
75 },
76 { .ctl_name = 0}
77};
78
79static ctl_table ocfs2_root_table[] = {
80 {
81 .ctl_name = CTL_FS,
82 .procname = "fs",
83 .data = NULL,
84 .maxlen = 0,
85 .mode = 0555,
86 .child = ocfs2_kern_table
87 },
88 { .ctl_name = 0 }
89};
90
91static struct ctl_table_header *ocfs2_table_header = NULL;
92
93const char *o2nm_get_hb_ctl_path(void)
94{
95 return ocfs2_hb_ctl_path;
96}
97EXPORT_SYMBOL_GPL(o2nm_get_hb_ctl_path);
98 38
99struct o2nm_node *o2nm_get_node_by_num(u8 node_num) 39struct o2nm_node *o2nm_get_node_by_num(u8 node_num)
100{ 40{
@@ -941,9 +881,6 @@ void o2nm_undepend_this_node(void)
941 881
942static void __exit exit_o2nm(void) 882static void __exit exit_o2nm(void)
943{ 883{
944 if (ocfs2_table_header)
945 unregister_sysctl_table(ocfs2_table_header);
946
947 /* XXX sync with hb callbacks and shut down hb? */ 884 /* XXX sync with hb callbacks and shut down hb? */
948 o2net_unregister_hb_callbacks(); 885 o2net_unregister_hb_callbacks();
949 configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); 886 configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys);
@@ -964,16 +901,9 @@ static int __init init_o2nm(void)
964 if (ret) 901 if (ret)
965 goto out; 902 goto out;
966 903
967 ocfs2_table_header = register_sysctl_table(ocfs2_root_table);
968 if (!ocfs2_table_header) {
969 printk(KERN_ERR "nodemanager: unable to register sysctl\n");
970 ret = -ENOMEM; /* or something. */
971 goto out_o2net;
972 }
973
974 ret = o2net_register_hb_callbacks(); 904 ret = o2net_register_hb_callbacks();
975 if (ret) 905 if (ret)
976 goto out_sysctl; 906 goto out_o2net;
977 907
978 config_group_init(&o2nm_cluster_group.cs_subsys.su_group); 908 config_group_init(&o2nm_cluster_group.cs_subsys.su_group);
979 mutex_init(&o2nm_cluster_group.cs_subsys.su_mutex); 909 mutex_init(&o2nm_cluster_group.cs_subsys.su_mutex);
@@ -990,8 +920,6 @@ static int __init init_o2nm(void)
990 configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys); 920 configfs_unregister_subsystem(&o2nm_cluster_group.cs_subsys);
991out_callbacks: 921out_callbacks:
992 o2net_unregister_hb_callbacks(); 922 o2net_unregister_hb_callbacks();
993out_sysctl:
994 unregister_sysctl_table(ocfs2_table_header);
995out_o2net: 923out_o2net:
996 o2net_exit(); 924 o2net_exit();
997out: 925out:
diff --git a/fs/ocfs2/cluster/nodemanager.h b/fs/ocfs2/cluster/nodemanager.h
index 7c860361b8dd..c992ea0da4ad 100644
--- a/fs/ocfs2/cluster/nodemanager.h
+++ b/fs/ocfs2/cluster/nodemanager.h
@@ -33,10 +33,6 @@
33#include <linux/configfs.h> 33#include <linux/configfs.h>
34#include <linux/rbtree.h> 34#include <linux/rbtree.h>
35 35
36#define FS_OCFS2_NM 1
37
38const char *o2nm_get_hb_ctl_path(void);
39
40struct o2nm_node { 36struct o2nm_node {
41 spinlock_t nd_lock; 37 spinlock_t nd_lock;
42 struct config_item nd_item; 38 struct config_item nd_item;
diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c
index bbd1667aa7d3..fcd120f1493a 100644
--- a/fs/ocfs2/stack_o2cb.c
+++ b/fs/ocfs2/stack_o2cb.c
@@ -317,8 +317,7 @@ out:
317 return rc; 317 return rc;
318} 318}
319 319
320static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn, 320static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn)
321 int hangup_pending)
322{ 321{
323 struct dlm_ctxt *dlm = conn->cc_lockspace; 322 struct dlm_ctxt *dlm = conn->cc_lockspace;
324 struct o2dlm_private *priv = conn->cc_private; 323 struct o2dlm_private *priv = conn->cc_private;
@@ -333,43 +332,6 @@ static int o2cb_cluster_disconnect(struct ocfs2_cluster_connection *conn,
333 return 0; 332 return 0;
334} 333}
335 334
336static void o2hb_stop(const char *group)
337{
338 int ret;
339 char *argv[5], *envp[3];
340
341 argv[0] = (char *)o2nm_get_hb_ctl_path();
342 argv[1] = "-K";
343 argv[2] = "-u";
344 argv[3] = (char *)group;
345 argv[4] = NULL;
346
347 mlog(0, "Run: %s %s %s %s\n", argv[0], argv[1], argv[2], argv[3]);
348
349 /* minimal command environment taken from cpu_run_sbin_hotplug */
350 envp[0] = "HOME=/";
351 envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
352 envp[2] = NULL;
353
354 ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
355 if (ret < 0)
356 mlog_errno(ret);
357}
358
359/*
360 * Hangup is a hack for tools compatibility. Older ocfs2-tools software
361 * expects the filesystem to call "ocfs2_hb_ctl" during unmount. This
362 * happens regardless of whether the DLM got started, so we can't do it
363 * in ocfs2_cluster_disconnect(). We bring the o2hb_stop() function into
364 * the glue and provide a "hangup" API for super.c to call.
365 *
366 * Other stacks will eventually provide a NULL ->hangup() pointer.
367 */
368static void o2cb_cluster_hangup(const char *group, int grouplen)
369{
370 o2hb_stop(group);
371}
372
373static int o2cb_cluster_this_node(unsigned int *node) 335static int o2cb_cluster_this_node(unsigned int *node)
374{ 336{
375 int node_num; 337 int node_num;
@@ -388,7 +350,6 @@ static int o2cb_cluster_this_node(unsigned int *node)
388static struct ocfs2_stack_operations o2cb_stack_ops = { 350static struct ocfs2_stack_operations o2cb_stack_ops = {
389 .connect = o2cb_cluster_connect, 351 .connect = o2cb_cluster_connect,
390 .disconnect = o2cb_cluster_disconnect, 352 .disconnect = o2cb_cluster_disconnect,
391 .hangup = o2cb_cluster_hangup,
392 .this_node = o2cb_cluster_this_node, 353 .this_node = o2cb_cluster_this_node,
393 .dlm_lock = o2cb_dlm_lock, 354 .dlm_lock = o2cb_dlm_lock,
394 .dlm_unlock = o2cb_dlm_unlock, 355 .dlm_unlock = o2cb_dlm_unlock,
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c
index 6b97d11f6bf8..c021280dd462 100644
--- a/fs/ocfs2/stack_user.c
+++ b/fs/ocfs2/stack_user.c
@@ -816,8 +816,7 @@ out:
816 return rc; 816 return rc;
817} 817}
818 818
819static int user_cluster_disconnect(struct ocfs2_cluster_connection *conn, 819static int user_cluster_disconnect(struct ocfs2_cluster_connection *conn)
820 int hangup_pending)
821{ 820{
822 dlm_release_lockspace(conn->cc_lockspace, 2); 821 dlm_release_lockspace(conn->cc_lockspace, 2);
823 conn->cc_lockspace = NULL; 822 conn->cc_lockspace = NULL;
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index 119f60cea9cc..10e149ae5e3a 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -26,6 +26,7 @@
26#include <linux/fs.h> 26#include <linux/fs.h>
27#include <linux/kobject.h> 27#include <linux/kobject.h>
28#include <linux/sysfs.h> 28#include <linux/sysfs.h>
29#include <linux/sysctl.h>
29 30
30#include "ocfs2_fs.h" 31#include "ocfs2_fs.h"
31 32
@@ -33,11 +34,13 @@
33 34
34#define OCFS2_STACK_PLUGIN_O2CB "o2cb" 35#define OCFS2_STACK_PLUGIN_O2CB "o2cb"
35#define OCFS2_STACK_PLUGIN_USER "user" 36#define OCFS2_STACK_PLUGIN_USER "user"
37#define OCFS2_MAX_HB_CTL_PATH 256
36 38
37static struct ocfs2_locking_protocol *lproto; 39static struct ocfs2_locking_protocol *lproto;
38static DEFINE_SPINLOCK(ocfs2_stack_lock); 40static DEFINE_SPINLOCK(ocfs2_stack_lock);
39static LIST_HEAD(ocfs2_stack_list); 41static LIST_HEAD(ocfs2_stack_list);
40static char cluster_stack_name[OCFS2_STACK_LABEL_LEN + 1]; 42static char cluster_stack_name[OCFS2_STACK_LABEL_LEN + 1];
43static char ocfs2_hb_ctl_path[OCFS2_MAX_HB_CTL_PATH] = "/sbin/ocfs2_hb_ctl";
41 44
42/* 45/*
43 * The stack currently in use. If not null, active_stack->sp_count > 0, 46 * The stack currently in use. If not null, active_stack->sp_count > 0,
@@ -349,7 +352,7 @@ int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn,
349 352
350 BUG_ON(conn == NULL); 353 BUG_ON(conn == NULL);
351 354
352 ret = active_stack->sp_ops->disconnect(conn, hangup_pending); 355 ret = active_stack->sp_ops->disconnect(conn);
353 356
354 /* XXX Should we free it anyway? */ 357 /* XXX Should we free it anyway? */
355 if (!ret) { 358 if (!ret) {
@@ -362,13 +365,48 @@ int ocfs2_cluster_disconnect(struct ocfs2_cluster_connection *conn,
362} 365}
363EXPORT_SYMBOL_GPL(ocfs2_cluster_disconnect); 366EXPORT_SYMBOL_GPL(ocfs2_cluster_disconnect);
364 367
368/*
369 * Leave the group for this filesystem. This is executed by a userspace
370 * program (stored in ocfs2_hb_ctl_path).
371 */
372static void ocfs2_leave_group(const char *group)
373{
374 int ret;
375 char *argv[5], *envp[3];
376
377 argv[0] = ocfs2_hb_ctl_path;
378 argv[1] = "-K";
379 argv[2] = "-u";
380 argv[3] = (char *)group;
381 argv[4] = NULL;
382
383 /* minimal command environment taken from cpu_run_sbin_hotplug */
384 envp[0] = "HOME=/";
385 envp[1] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
386 envp[2] = NULL;
387
388 ret = call_usermodehelper(argv[0], argv, envp, UMH_WAIT_PROC);
389 if (ret < 0) {
390 printk(KERN_ERR
391 "ocfs2: Error %d running user helper "
392 "\"%s %s %s %s\"\n",
393 ret, argv[0], argv[1], argv[2], argv[3]);
394 }
395}
396
397/*
398 * Hangup is a required post-umount. ocfs2-tools software expects the
399 * filesystem to call "ocfs2_hb_ctl" during unmount. This happens
400 * regardless of whether the DLM got started, so we can't do it
401 * in ocfs2_cluster_disconnect(). The ocfs2_leave_group() function does
402 * the actual work.
403 */
365void ocfs2_cluster_hangup(const char *group, int grouplen) 404void ocfs2_cluster_hangup(const char *group, int grouplen)
366{ 405{
367 BUG_ON(group == NULL); 406 BUG_ON(group == NULL);
368 BUG_ON(group[grouplen] != '\0'); 407 BUG_ON(group[grouplen] != '\0');
369 408
370 if (active_stack->sp_ops->hangup) 409 ocfs2_leave_group(group);
371 active_stack->sp_ops->hangup(group, grouplen);
372 410
373 /* cluster_disconnect() was called with hangup_pending==1 */ 411 /* cluster_disconnect() was called with hangup_pending==1 */
374 ocfs2_stack_driver_put(); 412 ocfs2_stack_driver_put();
@@ -548,10 +586,83 @@ error:
548 return ret; 586 return ret;
549} 587}
550 588
589/*
590 * Sysctl bits
591 *
592 * The sysctl lives at /proc/sys/fs/ocfs2/nm/hb_ctl_path. The 'nm' doesn't
593 * make as much sense in a multiple cluster stack world, but it's safer
594 * and easier to preserve the name.
595 */
596
597#define FS_OCFS2_NM 1
598
599static ctl_table ocfs2_nm_table[] = {
600 {
601 .ctl_name = 1,
602 .procname = "hb_ctl_path",
603 .data = ocfs2_hb_ctl_path,
604 .maxlen = OCFS2_MAX_HB_CTL_PATH,
605 .mode = 0644,
606 .proc_handler = &proc_dostring,
607 .strategy = &sysctl_string,
608 },
609 { .ctl_name = 0 }
610};
611
612static ctl_table ocfs2_mod_table[] = {
613 {
614 .ctl_name = FS_OCFS2_NM,
615 .procname = "nm",
616 .data = NULL,
617 .maxlen = 0,
618 .mode = 0555,
619 .child = ocfs2_nm_table
620 },
621 { .ctl_name = 0}
622};
623
624static ctl_table ocfs2_kern_table[] = {
625 {
626 .ctl_name = FS_OCFS2,
627 .procname = "ocfs2",
628 .data = NULL,
629 .maxlen = 0,
630 .mode = 0555,
631 .child = ocfs2_mod_table
632 },
633 { .ctl_name = 0}
634};
635
636static ctl_table ocfs2_root_table[] = {
637 {
638 .ctl_name = CTL_FS,
639 .procname = "fs",
640 .data = NULL,
641 .maxlen = 0,
642 .mode = 0555,
643 .child = ocfs2_kern_table
644 },
645 { .ctl_name = 0 }
646};
647
648static struct ctl_table_header *ocfs2_table_header = NULL;
649
650
651/*
652 * Initialization
653 */
654
551static int __init ocfs2_stack_glue_init(void) 655static int __init ocfs2_stack_glue_init(void)
552{ 656{
553 strcpy(cluster_stack_name, OCFS2_STACK_PLUGIN_O2CB); 657 strcpy(cluster_stack_name, OCFS2_STACK_PLUGIN_O2CB);
554 658
659 ocfs2_table_header = register_sysctl_table(ocfs2_root_table);
660 if (!ocfs2_table_header) {
661 printk(KERN_ERR
662 "ocfs2 stack glue: unable to register sysctl\n");
663 return -ENOMEM; /* or something. */
664 }
665
555 return ocfs2_sysfs_init(); 666 return ocfs2_sysfs_init();
556} 667}
557 668
@@ -559,6 +670,8 @@ static void __exit ocfs2_stack_glue_exit(void)
559{ 670{
560 lproto = NULL; 671 lproto = NULL;
561 ocfs2_sysfs_exit(); 672 ocfs2_sysfs_exit();
673 if (ocfs2_table_header)
674 unregister_sysctl_table(ocfs2_table_header);
562} 675}
563 676
564MODULE_AUTHOR("Oracle"); 677MODULE_AUTHOR("Oracle");
diff --git a/fs/ocfs2/stackglue.h b/fs/ocfs2/stackglue.h
index 005e4f170e0f..db56281dd1be 100644
--- a/fs/ocfs2/stackglue.h
+++ b/fs/ocfs2/stackglue.h
@@ -134,22 +134,10 @@ struct ocfs2_stack_operations {
134 * be freed. Thus, a stack must not return from ->disconnect() 134 * be freed. Thus, a stack must not return from ->disconnect()
135 * until it will no longer reference the conn pointer. 135 * until it will no longer reference the conn pointer.
136 * 136 *
137 * If hangup_pending is zero, ocfs2_cluster_disconnect() will also 137 * Once this call returns, the stack glue will be dropping this
138 * be dropping the reference on the module. 138 * connection's reference on the module.
139 */ 139 */
140 int (*disconnect)(struct ocfs2_cluster_connection *conn, 140 int (*disconnect)(struct ocfs2_cluster_connection *conn);
141 int hangup_pending);
142
143 /*
144 * ocfs2_cluster_hangup() exists for compatibility with older
145 * ocfs2 tools. Only the classic stack really needs it. As such
146 * ->hangup() is not required of all stacks. See the comment by
147 * ocfs2_cluster_hangup() for more details.
148 *
149 * Note that ocfs2_cluster_hangup() can only be called if
150 * hangup_pending was passed to ocfs2_cluster_disconnect().
151 */
152 void (*hangup)(const char *group, int grouplen);
153 141
154 /* 142 /*
155 * ->this_node() returns the cluster's unique identifier for the 143 * ->this_node() returns the cluster's unique identifier for the
@@ -258,4 +246,5 @@ void ocfs2_stack_glue_set_locking_protocol(struct ocfs2_locking_protocol *proto)
258/* Used by stack plugins */ 246/* Used by stack plugins */
259int ocfs2_stack_glue_register(struct ocfs2_stack_plugin *plugin); 247int ocfs2_stack_glue_register(struct ocfs2_stack_plugin *plugin);
260void ocfs2_stack_glue_unregister(struct ocfs2_stack_plugin *plugin); 248void ocfs2_stack_glue_unregister(struct ocfs2_stack_plugin *plugin);
249
261#endif /* STACKGLUE_H */ 250#endif /* STACKGLUE_H */
diff --git a/fs/pipe.c b/fs/pipe.c
index ec228bc9f882..700f4e0d9572 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -1003,8 +1003,7 @@ struct file *create_write_pipe(void)
1003void free_write_pipe(struct file *f) 1003void free_write_pipe(struct file *f)
1004{ 1004{
1005 free_pipe_info(f->f_dentry->d_inode); 1005 free_pipe_info(f->f_dentry->d_inode);
1006 dput(f->f_path.dentry); 1006 path_put(&f->f_path);
1007 mntput(f->f_path.mnt);
1008 put_filp(f); 1007 put_filp(f);
1009} 1008}
1010 1009
@@ -1015,8 +1014,8 @@ struct file *create_read_pipe(struct file *wrf)
1015 return ERR_PTR(-ENFILE); 1014 return ERR_PTR(-ENFILE);
1016 1015
1017 /* Grab pipe from the writer */ 1016 /* Grab pipe from the writer */
1018 f->f_path.mnt = mntget(wrf->f_path.mnt); 1017 f->f_path = wrf->f_path;
1019 f->f_path.dentry = dget(wrf->f_path.dentry); 1018 path_get(&wrf->f_path);
1020 f->f_mapping = wrf->f_path.dentry->d_inode->i_mapping; 1019 f->f_mapping = wrf->f_path.dentry->d_inode->i_mapping;
1021 1020
1022 f->f_pos = 0; 1021 f->f_pos = 0;
@@ -1068,8 +1067,7 @@ int do_pipe(int *fd)
1068 err_fdr: 1067 err_fdr:
1069 put_unused_fd(fdr); 1068 put_unused_fd(fdr);
1070 err_read_pipe: 1069 err_read_pipe:
1071 dput(fr->f_dentry); 1070 path_put(&fr->f_path);
1072 mntput(fr->f_vfsmnt);
1073 put_filp(fr); 1071 put_filp(fr);
1074 err_write_pipe: 1072 err_write_pipe:
1075 free_write_pipe(fw); 1073 free_write_pipe(fw);
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
index 17403629e330..ab8ccc9d14ff 100644
--- a/fs/proc/task_mmu.c
+++ b/fs/proc/task_mmu.c
@@ -315,9 +315,9 @@ struct mem_size_stats {
315}; 315};
316 316
317static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, 317static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
318 void *private) 318 struct mm_walk *walk)
319{ 319{
320 struct mem_size_stats *mss = private; 320 struct mem_size_stats *mss = walk->private;
321 struct vm_area_struct *vma = mss->vma; 321 struct vm_area_struct *vma = mss->vma;
322 pte_t *pte, ptent; 322 pte_t *pte, ptent;
323 spinlock_t *ptl; 323 spinlock_t *ptl;
@@ -365,19 +365,21 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
365 return 0; 365 return 0;
366} 366}
367 367
368static struct mm_walk smaps_walk = { .pmd_entry = smaps_pte_range };
369
370static int show_smap(struct seq_file *m, void *v) 368static int show_smap(struct seq_file *m, void *v)
371{ 369{
372 struct vm_area_struct *vma = v; 370 struct vm_area_struct *vma = v;
373 struct mem_size_stats mss; 371 struct mem_size_stats mss;
374 int ret; 372 int ret;
373 struct mm_walk smaps_walk = {
374 .pmd_entry = smaps_pte_range,
375 .mm = vma->vm_mm,
376 .private = &mss,
377 };
375 378
376 memset(&mss, 0, sizeof mss); 379 memset(&mss, 0, sizeof mss);
377 mss.vma = vma; 380 mss.vma = vma;
378 if (vma->vm_mm && !is_vm_hugetlb_page(vma)) 381 if (vma->vm_mm && !is_vm_hugetlb_page(vma))
379 walk_page_range(vma->vm_mm, vma->vm_start, vma->vm_end, 382 walk_page_range(vma->vm_start, vma->vm_end, &smaps_walk);
380 &smaps_walk, &mss);
381 383
382 ret = show_map(m, v); 384 ret = show_map(m, v);
383 if (ret) 385 if (ret)
@@ -426,9 +428,9 @@ const struct file_operations proc_smaps_operations = {
426}; 428};
427 429
428static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, 430static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
429 unsigned long end, void *private) 431 unsigned long end, struct mm_walk *walk)
430{ 432{
431 struct vm_area_struct *vma = private; 433 struct vm_area_struct *vma = walk->private;
432 pte_t *pte, ptent; 434 pte_t *pte, ptent;
433 spinlock_t *ptl; 435 spinlock_t *ptl;
434 struct page *page; 436 struct page *page;
@@ -452,8 +454,6 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
452 return 0; 454 return 0;
453} 455}
454 456
455static struct mm_walk clear_refs_walk = { .pmd_entry = clear_refs_pte_range };
456
457static ssize_t clear_refs_write(struct file *file, const char __user *buf, 457static ssize_t clear_refs_write(struct file *file, const char __user *buf,
458 size_t count, loff_t *ppos) 458 size_t count, loff_t *ppos)
459{ 459{
@@ -476,11 +476,17 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf,
476 return -ESRCH; 476 return -ESRCH;
477 mm = get_task_mm(task); 477 mm = get_task_mm(task);
478 if (mm) { 478 if (mm) {
479 static struct mm_walk clear_refs_walk;
480 memset(&clear_refs_walk, 0, sizeof(clear_refs_walk));
481 clear_refs_walk.pmd_entry = clear_refs_pte_range;
482 clear_refs_walk.mm = mm;
479 down_read(&mm->mmap_sem); 483 down_read(&mm->mmap_sem);
480 for (vma = mm->mmap; vma; vma = vma->vm_next) 484 for (vma = mm->mmap; vma; vma = vma->vm_next) {
485 clear_refs_walk.private = vma;
481 if (!is_vm_hugetlb_page(vma)) 486 if (!is_vm_hugetlb_page(vma))
482 walk_page_range(mm, vma->vm_start, vma->vm_end, 487 walk_page_range(vma->vm_start, vma->vm_end,
483 &clear_refs_walk, vma); 488 &clear_refs_walk);
489 }
484 flush_tlb_mm(mm); 490 flush_tlb_mm(mm);
485 up_read(&mm->mmap_sem); 491 up_read(&mm->mmap_sem);
486 mmput(mm); 492 mmput(mm);
@@ -528,9 +534,9 @@ static int add_to_pagemap(unsigned long addr, u64 pfn,
528} 534}
529 535
530static int pagemap_pte_hole(unsigned long start, unsigned long end, 536static int pagemap_pte_hole(unsigned long start, unsigned long end,
531 void *private) 537 struct mm_walk *walk)
532{ 538{
533 struct pagemapread *pm = private; 539 struct pagemapread *pm = walk->private;
534 unsigned long addr; 540 unsigned long addr;
535 int err = 0; 541 int err = 0;
536 for (addr = start; addr < end; addr += PAGE_SIZE) { 542 for (addr = start; addr < end; addr += PAGE_SIZE) {
@@ -547,24 +553,45 @@ static u64 swap_pte_to_pagemap_entry(pte_t pte)
547 return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT); 553 return swp_type(e) | (swp_offset(e) << MAX_SWAPFILES_SHIFT);
548} 554}
549 555
556static unsigned long pte_to_pagemap_entry(pte_t pte)
557{
558 unsigned long pme = 0;
559 if (is_swap_pte(pte))
560 pme = PM_PFRAME(swap_pte_to_pagemap_entry(pte))
561 | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP;
562 else if (pte_present(pte))
563 pme = PM_PFRAME(pte_pfn(pte))
564 | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT;
565 return pme;
566}
567
550static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, 568static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
551 void *private) 569 struct mm_walk *walk)
552{ 570{
553 struct pagemapread *pm = private; 571 struct vm_area_struct *vma;
572 struct pagemapread *pm = walk->private;
554 pte_t *pte; 573 pte_t *pte;
555 int err = 0; 574 int err = 0;
556 575
576 /* find the first VMA at or above 'addr' */
577 vma = find_vma(walk->mm, addr);
557 for (; addr != end; addr += PAGE_SIZE) { 578 for (; addr != end; addr += PAGE_SIZE) {
558 u64 pfn = PM_NOT_PRESENT; 579 u64 pfn = PM_NOT_PRESENT;
559 pte = pte_offset_map(pmd, addr); 580
560 if (is_swap_pte(*pte)) 581 /* check to see if we've left 'vma' behind
561 pfn = PM_PFRAME(swap_pte_to_pagemap_entry(*pte)) 582 * and need a new, higher one */
562 | PM_PSHIFT(PAGE_SHIFT) | PM_SWAP; 583 if (vma && (addr >= vma->vm_end))
563 else if (pte_present(*pte)) 584 vma = find_vma(walk->mm, addr);
564 pfn = PM_PFRAME(pte_pfn(*pte)) 585
565 | PM_PSHIFT(PAGE_SHIFT) | PM_PRESENT; 586 /* check that 'vma' actually covers this address,
566 /* unmap so we're not in atomic when we copy to userspace */ 587 * and that it isn't a huge page vma */
567 pte_unmap(pte); 588 if (vma && (vma->vm_start <= addr) &&
589 !is_vm_hugetlb_page(vma)) {
590 pte = pte_offset_map(pmd, addr);
591 pfn = pte_to_pagemap_entry(*pte);
592 /* unmap before userspace copy */
593 pte_unmap(pte);
594 }
568 err = add_to_pagemap(addr, pfn, pm); 595 err = add_to_pagemap(addr, pfn, pm);
569 if (err) 596 if (err)
570 return err; 597 return err;
@@ -675,8 +702,8 @@ static ssize_t pagemap_read(struct file *file, char __user *buf,
675 * user buffer is tracked in "pm", and the walk 702 * user buffer is tracked in "pm", and the walk
676 * will stop when we hit the end of the buffer. 703 * will stop when we hit the end of the buffer.
677 */ 704 */
678 ret = walk_page_range(mm, start_vaddr, end_vaddr, 705 ret = walk_page_range(start_vaddr, end_vaddr,
679 &pagemap_walk, &pm); 706 &pagemap_walk);
680 if (ret == PM_END_OF_BUFFER) 707 if (ret == PM_END_OF_BUFFER)
681 ret = 0; 708 ret = 0;
682 /* don't need mmap_sem for these, but this looks cleaner */ 709 /* don't need mmap_sem for these, but this looks cleaner */
diff --git a/fs/select.c b/fs/select.c
index 8dda969614a9..da0e88201c3a 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -249,7 +249,6 @@ int do_select(int n, fd_set_bits *fds, s64 *timeout)
249 retval++; 249 retval++;
250 } 250 }
251 } 251 }
252 cond_resched();
253 } 252 }
254 if (res_in) 253 if (res_in)
255 *rinp = res_in; 254 *rinp = res_in;
@@ -257,6 +256,7 @@ int do_select(int n, fd_set_bits *fds, s64 *timeout)
257 *routp = res_out; 256 *routp = res_out;
258 if (res_ex) 257 if (res_ex)
259 *rexp = res_ex; 258 *rexp = res_ex;
259 cond_resched();
260 } 260 }
261 wait = NULL; 261 wait = NULL;
262 if (retval || !*timeout || signal_pending(current)) 262 if (retval || !*timeout || signal_pending(current))
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 7a5f69be6ac2..44cc702f96cc 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -682,38 +682,26 @@ static int udf_vrs(struct super_block *sb, int silent)
682/* 682/*
683 * Check whether there is an anchor block in the given block 683 * Check whether there is an anchor block in the given block
684 */ 684 */
685static int udf_check_anchor_block(struct super_block *sb, sector_t block, 685static int udf_check_anchor_block(struct super_block *sb, sector_t block)
686 bool varconv)
687{ 686{
688 struct buffer_head *bh = NULL; 687 struct buffer_head *bh;
689 tag *t;
690 uint16_t ident; 688 uint16_t ident;
691 uint32_t location;
692 689
693 if (varconv) { 690 if (UDF_QUERY_FLAG(sb, UDF_FLAG_VARCONV) &&
694 if (udf_fixed_to_variable(block) >= 691 udf_fixed_to_variable(block) >=
695 sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits) 692 sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits)
696 return 0; 693 return 0;
697 bh = sb_bread(sb, udf_fixed_to_variable(block));
698 }
699 else
700 bh = sb_bread(sb, block);
701 694
695 bh = udf_read_tagged(sb, block, block, &ident);
702 if (!bh) 696 if (!bh)
703 return 0; 697 return 0;
704
705 t = (tag *)bh->b_data;
706 ident = le16_to_cpu(t->tagIdent);
707 location = le32_to_cpu(t->tagLocation);
708 brelse(bh); 698 brelse(bh);
709 if (ident != TAG_IDENT_AVDP) 699
710 return 0; 700 return ident == TAG_IDENT_AVDP;
711 return location == block;
712} 701}
713 702
714/* Search for an anchor volume descriptor pointer */ 703/* Search for an anchor volume descriptor pointer */
715static sector_t udf_scan_anchors(struct super_block *sb, bool varconv, 704static sector_t udf_scan_anchors(struct super_block *sb, sector_t lastblock)
716 sector_t lastblock)
717{ 705{
718 sector_t last[6]; 706 sector_t last[6];
719 int i; 707 int i;
@@ -739,7 +727,7 @@ static sector_t udf_scan_anchors(struct super_block *sb, bool varconv,
739 sb->s_blocksize_bits) 727 sb->s_blocksize_bits)
740 continue; 728 continue;
741 729
742 if (udf_check_anchor_block(sb, last[i], varconv)) { 730 if (udf_check_anchor_block(sb, last[i])) {
743 sbi->s_anchor[0] = last[i]; 731 sbi->s_anchor[0] = last[i];
744 sbi->s_anchor[1] = last[i] - 256; 732 sbi->s_anchor[1] = last[i] - 256;
745 return last[i]; 733 return last[i];
@@ -748,17 +736,17 @@ static sector_t udf_scan_anchors(struct super_block *sb, bool varconv,
748 if (last[i] < 256) 736 if (last[i] < 256)
749 continue; 737 continue;
750 738
751 if (udf_check_anchor_block(sb, last[i] - 256, varconv)) { 739 if (udf_check_anchor_block(sb, last[i] - 256)) {
752 sbi->s_anchor[1] = last[i] - 256; 740 sbi->s_anchor[1] = last[i] - 256;
753 return last[i]; 741 return last[i];
754 } 742 }
755 } 743 }
756 744
757 if (udf_check_anchor_block(sb, sbi->s_session + 256, varconv)) { 745 if (udf_check_anchor_block(sb, sbi->s_session + 256)) {
758 sbi->s_anchor[0] = sbi->s_session + 256; 746 sbi->s_anchor[0] = sbi->s_session + 256;
759 return last[0]; 747 return last[0];
760 } 748 }
761 if (udf_check_anchor_block(sb, sbi->s_session + 512, varconv)) { 749 if (udf_check_anchor_block(sb, sbi->s_session + 512)) {
762 sbi->s_anchor[0] = sbi->s_session + 512; 750 sbi->s_anchor[0] = sbi->s_session + 512;
763 return last[0]; 751 return last[0];
764 } 752 }
@@ -780,23 +768,24 @@ static void udf_find_anchor(struct super_block *sb)
780 int i; 768 int i;
781 struct udf_sb_info *sbi = UDF_SB(sb); 769 struct udf_sb_info *sbi = UDF_SB(sb);
782 770
783 lastblock = udf_scan_anchors(sb, 0, sbi->s_last_block); 771 lastblock = udf_scan_anchors(sb, sbi->s_last_block);
784 if (lastblock) 772 if (lastblock)
785 goto check_anchor; 773 goto check_anchor;
786 774
787 /* No anchor found? Try VARCONV conversion of block numbers */ 775 /* No anchor found? Try VARCONV conversion of block numbers */
776 UDF_SET_FLAG(sb, UDF_FLAG_VARCONV);
788 /* Firstly, we try to not convert number of the last block */ 777 /* Firstly, we try to not convert number of the last block */
789 lastblock = udf_scan_anchors(sb, 1, 778 lastblock = udf_scan_anchors(sb,
790 udf_variable_to_fixed(sbi->s_last_block)); 779 udf_variable_to_fixed(sbi->s_last_block));
791 if (lastblock) { 780 if (lastblock)
792 UDF_SET_FLAG(sb, UDF_FLAG_VARCONV);
793 goto check_anchor; 781 goto check_anchor;
794 }
795 782
796 /* Secondly, we try with converted number of the last block */ 783 /* Secondly, we try with converted number of the last block */
797 lastblock = udf_scan_anchors(sb, 1, sbi->s_last_block); 784 lastblock = udf_scan_anchors(sb, sbi->s_last_block);
798 if (lastblock) 785 if (!lastblock) {
799 UDF_SET_FLAG(sb, UDF_FLAG_VARCONV); 786 /* VARCONV didn't help. Clear it. */
787 UDF_CLEAR_FLAG(sb, UDF_FLAG_VARCONV);
788 }
800 789
801check_anchor: 790check_anchor:
802 /* 791 /*
diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h
index 8fa9c2d70911..8ec865de5f13 100644
--- a/fs/udf/udfdecl.h
+++ b/fs/udf/udfdecl.h
@@ -16,7 +16,7 @@
16#define UDF_PREALLOCATE 16#define UDF_PREALLOCATE
17#define UDF_DEFAULT_PREALLOC_BLOCKS 8 17#define UDF_DEFAULT_PREALLOC_BLOCKS 8
18 18
19#define UDFFS_DEBUG 19#undef UDFFS_DEBUG
20 20
21#ifdef UDFFS_DEBUG 21#ifdef UDFFS_DEBUG
22#define udf_debug(f, a...) \ 22#define udf_debug(f, a...) \
diff --git a/fs/utimes.c b/fs/utimes.c
index af059d5cb485..b6b664e7145e 100644
--- a/fs/utimes.c
+++ b/fs/utimes.c
@@ -40,14 +40,9 @@ asmlinkage long sys_utime(char __user *filename, struct utimbuf __user *times)
40 40
41#endif 41#endif
42 42
43static bool nsec_special(long nsec)
44{
45 return nsec == UTIME_OMIT || nsec == UTIME_NOW;
46}
47
48static bool nsec_valid(long nsec) 43static bool nsec_valid(long nsec)
49{ 44{
50 if (nsec_special(nsec)) 45 if (nsec == UTIME_OMIT || nsec == UTIME_NOW)
51 return true; 46 return true;
52 47
53 return nsec >= 0 && nsec <= 999999999; 48 return nsec >= 0 && nsec <= 999999999;
@@ -102,7 +97,11 @@ long do_utimes(int dfd, char __user *filename, struct timespec *times, int flags
102 if (error) 97 if (error)
103 goto dput_and_out; 98 goto dput_and_out;
104 99
105 /* Don't worry, the checks are done in inode_change_ok() */ 100 if (times && times[0].tv_nsec == UTIME_NOW &&
101 times[1].tv_nsec == UTIME_NOW)
102 times = NULL;
103
104 /* In most cases, the checks are done in inode_change_ok() */
106 newattrs.ia_valid = ATTR_CTIME | ATTR_MTIME | ATTR_ATIME; 105 newattrs.ia_valid = ATTR_CTIME | ATTR_MTIME | ATTR_ATIME;
107 if (times) { 106 if (times) {
108 error = -EPERM; 107 error = -EPERM;
@@ -124,28 +123,34 @@ long do_utimes(int dfd, char __user *filename, struct timespec *times, int flags
124 newattrs.ia_mtime.tv_nsec = times[1].tv_nsec; 123 newattrs.ia_mtime.tv_nsec = times[1].tv_nsec;
125 newattrs.ia_valid |= ATTR_MTIME_SET; 124 newattrs.ia_valid |= ATTR_MTIME_SET;
126 } 125 }
127 }
128 126
129 /* 127 /*
130 * If times is NULL or both times are either UTIME_OMIT or 128 * For the UTIME_OMIT/UTIME_NOW and UTIME_NOW/UTIME_OMIT
131 * UTIME_NOW, then need to check permissions, because 129 * cases, we need to make an extra check that is not done by
132 * inode_change_ok() won't do it. 130 * inode_change_ok().
133 */ 131 */
134 if (!times || (nsec_special(times[0].tv_nsec) && 132 if (((times[0].tv_nsec == UTIME_NOW &&
135 nsec_special(times[1].tv_nsec))) { 133 times[1].tv_nsec == UTIME_OMIT)
134 ||
135 (times[0].tv_nsec == UTIME_OMIT &&
136 times[1].tv_nsec == UTIME_NOW))
137 && !is_owner_or_cap(inode))
138 goto mnt_drop_write_and_out;
139 } else {
140
141 /*
142 * If times is NULL (or both times are UTIME_NOW),
143 * then we need to check permissions, because
144 * inode_change_ok() won't do it.
145 */
136 error = -EACCES; 146 error = -EACCES;
137 if (IS_IMMUTABLE(inode)) 147 if (IS_IMMUTABLE(inode))
138 goto mnt_drop_write_and_out; 148 goto mnt_drop_write_and_out;
139 149
140 if (!is_owner_or_cap(inode)) { 150 if (!is_owner_or_cap(inode)) {
141 if (f) { 151 error = permission(inode, MAY_WRITE, NULL);
142 if (!(f->f_mode & FMODE_WRITE)) 152 if (error)
143 goto mnt_drop_write_and_out; 153 goto mnt_drop_write_and_out;
144 } else {
145 error = vfs_permission(&nd, MAY_WRITE);
146 if (error)
147 goto mnt_drop_write_and_out;
148 }
149 } 154 }
150 } 155 }
151 mutex_lock(&inode->i_mutex); 156 mutex_lock(&inode->i_mutex);
@@ -169,14 +174,6 @@ asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __
169 if (utimes) { 174 if (utimes) {
170 if (copy_from_user(&tstimes, utimes, sizeof(tstimes))) 175 if (copy_from_user(&tstimes, utimes, sizeof(tstimes)))
171 return -EFAULT; 176 return -EFAULT;
172 if ((tstimes[0].tv_nsec == UTIME_OMIT ||
173 tstimes[0].tv_nsec == UTIME_NOW) &&
174 tstimes[0].tv_sec != 0)
175 return -EINVAL;
176 if ((tstimes[1].tv_nsec == UTIME_OMIT ||
177 tstimes[1].tv_nsec == UTIME_NOW) &&
178 tstimes[1].tv_sec != 0)
179 return -EINVAL;
180 177
181 /* Nothing to do, we must not even check the path. */ 178 /* Nothing to do, we must not even check the path. */
182 if (tstimes[0].tv_nsec == UTIME_OMIT && 179 if (tstimes[0].tv_nsec == UTIME_OMIT &&
diff --git a/include/acpi/processor.h b/include/acpi/processor.h
index 06480bcabfdc..06ebb6ef72aa 100644
--- a/include/acpi/processor.h
+++ b/include/acpi/processor.h
@@ -319,6 +319,7 @@ static inline int acpi_processor_ppc_has_changed(struct acpi_processor *pr)
319#endif /* CONFIG_CPU_FREQ */ 319#endif /* CONFIG_CPU_FREQ */
320 320
321/* in processor_throttling.c */ 321/* in processor_throttling.c */
322int acpi_processor_tstate_has_changed(struct acpi_processor *pr);
322int acpi_processor_get_throttling_info(struct acpi_processor *pr); 323int acpi_processor_get_throttling_info(struct acpi_processor *pr);
323extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state); 324extern int acpi_processor_set_throttling(struct acpi_processor *pr, int state);
324extern struct file_operations acpi_processor_throttling_fops; 325extern struct file_operations acpi_processor_throttling_fops;
diff --git a/include/asm-alpha/core_mcpcia.h b/include/asm-alpha/core_mcpcia.h
index 525b4f6a7ace..acf55b483472 100644
--- a/include/asm-alpha/core_mcpcia.h
+++ b/include/asm-alpha/core_mcpcia.h
@@ -261,7 +261,7 @@ struct el_MCPCIA_uncorrected_frame_mcheck {
261 } 261 }
262#endif 262#endif
263 263
264static inline int __mcpcia_is_mmio(unsigned long addr) 264extern inline int __mcpcia_is_mmio(unsigned long addr)
265{ 265{
266 return (addr & 0x80000000UL) == 0; 266 return (addr & 0x80000000UL) == 0;
267} 267}
diff --git a/include/asm-alpha/core_t2.h b/include/asm-alpha/core_t2.h
index 90e6b5d6c214..46bfff58f670 100644
--- a/include/asm-alpha/core_t2.h
+++ b/include/asm-alpha/core_t2.h
@@ -356,13 +356,13 @@ struct el_t2_frame_corrected {
356#define vip volatile int * 356#define vip volatile int *
357#define vuip volatile unsigned int * 357#define vuip volatile unsigned int *
358 358
359static inline u8 t2_inb(unsigned long addr) 359extern inline u8 t2_inb(unsigned long addr)
360{ 360{
361 long result = *(vip) ((addr << 5) + T2_IO + 0x00); 361 long result = *(vip) ((addr << 5) + T2_IO + 0x00);
362 return __kernel_extbl(result, addr & 3); 362 return __kernel_extbl(result, addr & 3);
363} 363}
364 364
365static inline void t2_outb(u8 b, unsigned long addr) 365extern inline void t2_outb(u8 b, unsigned long addr)
366{ 366{
367 unsigned long w; 367 unsigned long w;
368 368
@@ -371,13 +371,13 @@ static inline void t2_outb(u8 b, unsigned long addr)
371 mb(); 371 mb();
372} 372}
373 373
374static inline u16 t2_inw(unsigned long addr) 374extern inline u16 t2_inw(unsigned long addr)
375{ 375{
376 long result = *(vip) ((addr << 5) + T2_IO + 0x08); 376 long result = *(vip) ((addr << 5) + T2_IO + 0x08);
377 return __kernel_extwl(result, addr & 3); 377 return __kernel_extwl(result, addr & 3);
378} 378}
379 379
380static inline void t2_outw(u16 b, unsigned long addr) 380extern inline void t2_outw(u16 b, unsigned long addr)
381{ 381{
382 unsigned long w; 382 unsigned long w;
383 383
@@ -386,12 +386,12 @@ static inline void t2_outw(u16 b, unsigned long addr)
386 mb(); 386 mb();
387} 387}
388 388
389static inline u32 t2_inl(unsigned long addr) 389extern inline u32 t2_inl(unsigned long addr)
390{ 390{
391 return *(vuip) ((addr << 5) + T2_IO + 0x18); 391 return *(vuip) ((addr << 5) + T2_IO + 0x18);
392} 392}
393 393
394static inline void t2_outl(u32 b, unsigned long addr) 394extern inline void t2_outl(u32 b, unsigned long addr)
395{ 395{
396 *(vuip) ((addr << 5) + T2_IO + 0x18) = b; 396 *(vuip) ((addr << 5) + T2_IO + 0x18) = b;
397 mb(); 397 mb();
@@ -435,7 +435,7 @@ static inline void t2_outl(u32 b, unsigned long addr)
435 set_hae(msb); \ 435 set_hae(msb); \
436} 436}
437 437
438static DEFINE_SPINLOCK(t2_hae_lock); 438extern spinlock_t t2_hae_lock;
439 439
440/* 440/*
441 * NOTE: take T2_DENSE_MEM off in each readX/writeX routine, since 441 * NOTE: take T2_DENSE_MEM off in each readX/writeX routine, since
diff --git a/include/asm-alpha/io.h b/include/asm-alpha/io.h
index 38f18cf18c9d..e971ab000f95 100644
--- a/include/asm-alpha/io.h
+++ b/include/asm-alpha/io.h
@@ -35,7 +35,7 @@
35 * register not being up-to-date with respect to the hardware 35 * register not being up-to-date with respect to the hardware
36 * value. 36 * value.
37 */ 37 */
38static inline void __set_hae(unsigned long new_hae) 38extern inline void __set_hae(unsigned long new_hae)
39{ 39{
40 unsigned long flags; 40 unsigned long flags;
41 local_irq_save(flags); 41 local_irq_save(flags);
@@ -49,7 +49,7 @@ static inline void __set_hae(unsigned long new_hae)
49 local_irq_restore(flags); 49 local_irq_restore(flags);
50} 50}
51 51
52static inline void set_hae(unsigned long new_hae) 52extern inline void set_hae(unsigned long new_hae)
53{ 53{
54 if (new_hae != alpha_mv.hae_cache) 54 if (new_hae != alpha_mv.hae_cache)
55 __set_hae(new_hae); 55 __set_hae(new_hae);
@@ -176,7 +176,7 @@ REMAP2(u64, writeq, volatile)
176#undef REMAP1 176#undef REMAP1
177#undef REMAP2 177#undef REMAP2
178 178
179static inline void __iomem *generic_ioportmap(unsigned long a) 179extern inline void __iomem *generic_ioportmap(unsigned long a)
180{ 180{
181 return alpha_mv.mv_ioportmap(a); 181 return alpha_mv.mv_ioportmap(a);
182} 182}
diff --git a/include/asm-alpha/mmu_context.h b/include/asm-alpha/mmu_context.h
index 6a5be1f7debf..86c08a02d239 100644
--- a/include/asm-alpha/mmu_context.h
+++ b/include/asm-alpha/mmu_context.h
@@ -23,7 +23,7 @@
23#endif 23#endif
24 24
25 25
26extern inline unsigned long 26static inline unsigned long
27__reload_thread(struct pcb_struct *pcb) 27__reload_thread(struct pcb_struct *pcb)
28{ 28{
29 register unsigned long a0 __asm__("$16"); 29 register unsigned long a0 __asm__("$16");
@@ -114,7 +114,7 @@ extern unsigned long last_asn;
114#define __MMU_EXTERN_INLINE 114#define __MMU_EXTERN_INLINE
115#endif 115#endif
116 116
117static inline unsigned long 117extern inline unsigned long
118__get_new_mm_context(struct mm_struct *mm, long cpu) 118__get_new_mm_context(struct mm_struct *mm, long cpu)
119{ 119{
120 unsigned long asn = cpu_last_asn(cpu); 120 unsigned long asn = cpu_last_asn(cpu);
@@ -226,7 +226,7 @@ ev4_activate_mm(struct mm_struct *prev_mm, struct mm_struct *next_mm)
226# endif 226# endif
227#endif 227#endif
228 228
229extern inline int 229static inline int
230init_new_context(struct task_struct *tsk, struct mm_struct *mm) 230init_new_context(struct task_struct *tsk, struct mm_struct *mm)
231{ 231{
232 int i; 232 int i;
diff --git a/include/asm-alpha/percpu.h b/include/asm-alpha/percpu.h
index 48348fe34c19..3495e8e00d70 100644
--- a/include/asm-alpha/percpu.h
+++ b/include/asm-alpha/percpu.h
@@ -1,6 +1,78 @@
1#ifndef __ALPHA_PERCPU_H 1#ifndef __ALPHA_PERCPU_H
2#define __ALPHA_PERCPU_H 2#define __ALPHA_PERCPU_H
3#include <linux/compiler.h>
4#include <linux/threads.h>
3 5
4#include <asm-generic/percpu.h> 6/*
7 * Determine the real variable name from the name visible in the
8 * kernel sources.
9 */
10#define per_cpu_var(var) per_cpu__##var
11
12#ifdef CONFIG_SMP
13
14/*
15 * per_cpu_offset() is the offset that has to be added to a
16 * percpu variable to get to the instance for a certain processor.
17 */
18extern unsigned long __per_cpu_offset[NR_CPUS];
19
20#define per_cpu_offset(x) (__per_cpu_offset[x])
21
22#define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
23#ifdef CONFIG_DEBUG_PREEMPT
24#define my_cpu_offset per_cpu_offset(smp_processor_id())
25#else
26#define my_cpu_offset __my_cpu_offset
27#endif
28
29#ifndef MODULE
30#define SHIFT_PERCPU_PTR(var, offset) RELOC_HIDE(&per_cpu_var(var), (offset))
31#define PER_CPU_ATTRIBUTES
32#else
33/*
34 * To calculate addresses of locally defined variables, GCC uses 32-bit
35 * displacement from the GP. Which doesn't work for per cpu variables in
36 * modules, as an offset to the kernel per cpu area is way above 4G.
37 *
38 * This forces allocation of a GOT entry for per cpu variable using
39 * ldq instruction with a 'literal' relocation.
40 */
41#define SHIFT_PERCPU_PTR(var, offset) ({ \
42 extern int simple_identifier_##var(void); \
43 unsigned long __ptr, tmp_gp; \
44 asm ( "br %1, 1f \n\
45 1: ldgp %1, 0(%1) \n\
46 ldq %0, per_cpu__" #var"(%1)\t!literal" \
47 : "=&r"(__ptr), "=&r"(tmp_gp)); \
48 (typeof(&per_cpu_var(var)))(__ptr + (offset)); })
49
50#define PER_CPU_ATTRIBUTES __used
51
52#endif /* MODULE */
53
54/*
55 * A percpu variable may point to a discarded regions. The following are
56 * established ways to produce a usable pointer from the percpu variable
57 * offset.
58 */
59#define per_cpu(var, cpu) \
60 (*SHIFT_PERCPU_PTR(var, per_cpu_offset(cpu)))
61#define __get_cpu_var(var) \
62 (*SHIFT_PERCPU_PTR(var, my_cpu_offset))
63#define __raw_get_cpu_var(var) \
64 (*SHIFT_PERCPU_PTR(var, __my_cpu_offset))
65
66#else /* ! SMP */
67
68#define per_cpu(var, cpu) (*((void)(cpu), &per_cpu_var(var)))
69#define __get_cpu_var(var) per_cpu_var(var)
70#define __raw_get_cpu_var(var) per_cpu_var(var)
71
72#define PER_CPU_ATTRIBUTES
73
74#endif /* SMP */
75
76#define DECLARE_PER_CPU(type, name) extern __typeof__(type) per_cpu_var(name)
5 77
6#endif /* __ALPHA_PERCPU_H */ 78#endif /* __ALPHA_PERCPU_H */
diff --git a/include/asm-alpha/system.h b/include/asm-alpha/system.h
index ed221d6408fc..afe20fa58c99 100644
--- a/include/asm-alpha/system.h
+++ b/include/asm-alpha/system.h
@@ -184,7 +184,7 @@ enum amask_enum {
184 __amask; }) 184 __amask; })
185 185
186#define __CALL_PAL_R0(NAME, TYPE) \ 186#define __CALL_PAL_R0(NAME, TYPE) \
187static inline TYPE NAME(void) \ 187extern inline TYPE NAME(void) \
188{ \ 188{ \
189 register TYPE __r0 __asm__("$0"); \ 189 register TYPE __r0 __asm__("$0"); \
190 __asm__ __volatile__( \ 190 __asm__ __volatile__( \
@@ -196,7 +196,7 @@ static inline TYPE NAME(void) \
196} 196}
197 197
198#define __CALL_PAL_W1(NAME, TYPE0) \ 198#define __CALL_PAL_W1(NAME, TYPE0) \
199static inline void NAME(TYPE0 arg0) \ 199extern inline void NAME(TYPE0 arg0) \
200{ \ 200{ \
201 register TYPE0 __r16 __asm__("$16") = arg0; \ 201 register TYPE0 __r16 __asm__("$16") = arg0; \
202 __asm__ __volatile__( \ 202 __asm__ __volatile__( \
@@ -207,7 +207,7 @@ static inline void NAME(TYPE0 arg0) \
207} 207}
208 208
209#define __CALL_PAL_W2(NAME, TYPE0, TYPE1) \ 209#define __CALL_PAL_W2(NAME, TYPE0, TYPE1) \
210static inline void NAME(TYPE0 arg0, TYPE1 arg1) \ 210extern inline void NAME(TYPE0 arg0, TYPE1 arg1) \
211{ \ 211{ \
212 register TYPE0 __r16 __asm__("$16") = arg0; \ 212 register TYPE0 __r16 __asm__("$16") = arg0; \
213 register TYPE1 __r17 __asm__("$17") = arg1; \ 213 register TYPE1 __r17 __asm__("$17") = arg1; \
@@ -219,7 +219,7 @@ static inline void NAME(TYPE0 arg0, TYPE1 arg1) \
219} 219}
220 220
221#define __CALL_PAL_RW1(NAME, RTYPE, TYPE0) \ 221#define __CALL_PAL_RW1(NAME, RTYPE, TYPE0) \
222static inline RTYPE NAME(TYPE0 arg0) \ 222extern inline RTYPE NAME(TYPE0 arg0) \
223{ \ 223{ \
224 register RTYPE __r0 __asm__("$0"); \ 224 register RTYPE __r0 __asm__("$0"); \
225 register TYPE0 __r16 __asm__("$16") = arg0; \ 225 register TYPE0 __r16 __asm__("$16") = arg0; \
@@ -232,7 +232,7 @@ static inline RTYPE NAME(TYPE0 arg0) \
232} 232}
233 233
234#define __CALL_PAL_RW2(NAME, RTYPE, TYPE0, TYPE1) \ 234#define __CALL_PAL_RW2(NAME, RTYPE, TYPE0, TYPE1) \
235static inline RTYPE NAME(TYPE0 arg0, TYPE1 arg1) \ 235extern inline RTYPE NAME(TYPE0 arg0, TYPE1 arg1) \
236{ \ 236{ \
237 register RTYPE __r0 __asm__("$0"); \ 237 register RTYPE __r0 __asm__("$0"); \
238 register TYPE0 __r16 __asm__("$16") = arg0; \ 238 register TYPE0 __r16 __asm__("$16") = arg0; \
diff --git a/include/asm-alpha/vga.h b/include/asm-alpha/vga.h
index e8df1e7aae6b..c00106bac521 100644
--- a/include/asm-alpha/vga.h
+++ b/include/asm-alpha/vga.h
@@ -13,7 +13,7 @@
13#define VT_BUF_HAVE_MEMSETW 13#define VT_BUF_HAVE_MEMSETW
14#define VT_BUF_HAVE_MEMCPYW 14#define VT_BUF_HAVE_MEMCPYW
15 15
16extern inline void scr_writew(u16 val, volatile u16 *addr) 16static inline void scr_writew(u16 val, volatile u16 *addr)
17{ 17{
18 if (__is_ioaddr(addr)) 18 if (__is_ioaddr(addr))
19 __raw_writew(val, (volatile u16 __iomem *) addr); 19 __raw_writew(val, (volatile u16 __iomem *) addr);
@@ -21,7 +21,7 @@ extern inline void scr_writew(u16 val, volatile u16 *addr)
21 *addr = val; 21 *addr = val;
22} 22}
23 23
24extern inline u16 scr_readw(volatile const u16 *addr) 24static inline u16 scr_readw(volatile const u16 *addr)
25{ 25{
26 if (__is_ioaddr(addr)) 26 if (__is_ioaddr(addr))
27 return __raw_readw((volatile const u16 __iomem *) addr); 27 return __raw_readw((volatile const u16 __iomem *) addr);
@@ -29,7 +29,7 @@ extern inline u16 scr_readw(volatile const u16 *addr)
29 return *addr; 29 return *addr;
30} 30}
31 31
32extern inline void scr_memsetw(u16 *s, u16 c, unsigned int count) 32static inline void scr_memsetw(u16 *s, u16 c, unsigned int count)
33{ 33{
34 if (__is_ioaddr(s)) 34 if (__is_ioaddr(s))
35 memsetw_io((u16 __iomem *) s, c, count); 35 memsetw_io((u16 __iomem *) s, c, count);
diff --git a/include/asm-arm/arch-pxa/regs-lcd.h b/include/asm-arm/arch-pxa/regs-lcd.h
index f762493f5141..3ba464c913a5 100644
--- a/include/asm-arm/arch-pxa/regs-lcd.h
+++ b/include/asm-arm/arch-pxa/regs-lcd.h
@@ -1,5 +1,8 @@
1#ifndef __ASM_ARCH_REGS_LCD_H 1#ifndef __ASM_ARCH_REGS_LCD_H
2#define __ASM_ARCH_REGS_LCD_H 2#define __ASM_ARCH_REGS_LCD_H
3
4#include <asm/arch/bitfield.h>
5
3/* 6/*
4 * LCD Controller Registers and Bits Definitions 7 * LCD Controller Registers and Bits Definitions
5 */ 8 */
@@ -69,7 +72,7 @@
69#define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */ 72#define LCCR0_QDM (1 << 11) /* LCD Quick Disable mask */
70#define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */ 73#define LCCR0_PDD (0xff << 12) /* Palette DMA request delay */
71#define LCCR0_PDD_S 12 74#define LCCR0_PDD_S 12
72#define LCCR0_BM (1 << 20) /* Branch mask */ 75#define LCCR0_BM (1 << 20) /* Branch mask */
73#define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */ 76#define LCCR0_OUM (1 << 21) /* Output FIFO underrun mask */
74#define LCCR0_LCDT (1 << 22) /* LCD panel type */ 77#define LCCR0_LCDT (1 << 22) /* LCD panel type */
75#define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */ 78#define LCCR0_RDSTM (1 << 23) /* Read status interrupt mask */
diff --git a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
index 26e3c8076b4e..2526b6ed6faa 100644
--- a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
@@ -53,6 +53,12 @@
53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0) 53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0)
54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0) 54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0)
55 55
56#define UART_GET_CTS(x) gpio_get_value(x->cts_pin)
57#define UART_SET_RTS(x) gpio_set_value(x->rts_pin, 1)
58#define UART_CLEAR_RTS(x) gpio_set_value(x->rts_pin, 0)
59#define UART_ENABLE_INTS(x, v) UART_PUT_IER(x, v)
60#define UART_DISABLE_INTS(x) UART_PUT_IER(x, 0)
61
56#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) 62#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS)
57# define CONFIG_SERIAL_BFIN_CTSRTS 63# define CONFIG_SERIAL_BFIN_CTSRTS
58 64
@@ -90,7 +96,7 @@ struct bfin_serial_port {
90 struct work_struct tx_dma_workqueue; 96 struct work_struct tx_dma_workqueue;
91#endif 97#endif
92#ifdef CONFIG_SERIAL_BFIN_CTSRTS 98#ifdef CONFIG_SERIAL_BFIN_CTSRTS
93 struct work_struct cts_workqueue; 99 struct timer_list cts_timer;
94 int cts_pin; 100 int cts_pin;
95 int rts_pin; 101 int rts_pin;
96#endif 102#endif
diff --git a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
index d016603b6615..ebf592b59aab 100644
--- a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
@@ -53,6 +53,12 @@
53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0) 53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0)
54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0) 54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0)
55 55
56#define UART_GET_CTS(x) gpio_get_value(x->cts_pin)
57#define UART_SET_RTS(x) gpio_set_value(x->rts_pin, 1)
58#define UART_CLEAR_RTS(x) gpio_set_value(x->rts_pin, 0)
59#define UART_ENABLE_INTS(x, v) UART_PUT_IER(x, v)
60#define UART_DISABLE_INTS(x) UART_PUT_IER(x, 0)
61
56#ifdef CONFIG_BFIN_UART0_CTSRTS 62#ifdef CONFIG_BFIN_UART0_CTSRTS
57# define CONFIG_SERIAL_BFIN_CTSRTS 63# define CONFIG_SERIAL_BFIN_CTSRTS
58# ifndef CONFIG_UART0_CTS_PIN 64# ifndef CONFIG_UART0_CTS_PIN
@@ -82,7 +88,7 @@ struct bfin_serial_port {
82# endif 88# endif
83#endif 89#endif
84#ifdef CONFIG_SERIAL_BFIN_CTSRTS 90#ifdef CONFIG_SERIAL_BFIN_CTSRTS
85 struct work_struct cts_workqueue; 91 struct timer_list cts_timer;
86 int cts_pin; 92 int cts_pin;
87 int rts_pin; 93 int rts_pin;
88#endif 94#endif
diff --git a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
index f79d1a0e9129..1bf56ffa22f9 100644
--- a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
@@ -53,6 +53,12 @@
53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0) 53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0)
54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0) 54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0)
55 55
56#define UART_GET_CTS(x) gpio_get_value(x->cts_pin)
57#define UART_SET_RTS(x) gpio_set_value(x->rts_pin, 1)
58#define UART_CLEAR_RTS(x) gpio_set_value(x->rts_pin, 0)
59#define UART_ENABLE_INTS(x, v) UART_PUT_IER(x, v)
60#define UART_DISABLE_INTS(x) UART_PUT_IER(x, 0)
61
56#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) 62#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS)
57# define CONFIG_SERIAL_BFIN_CTSRTS 63# define CONFIG_SERIAL_BFIN_CTSRTS
58 64
@@ -90,7 +96,7 @@ struct bfin_serial_port {
90 struct work_struct tx_dma_workqueue; 96 struct work_struct tx_dma_workqueue;
91#endif 97#endif
92#ifdef CONFIG_SERIAL_BFIN_CTSRTS 98#ifdef CONFIG_SERIAL_BFIN_CTSRTS
93 struct work_struct cts_workqueue; 99 struct timer_list cts_timer;
94 int cts_pin; 100 int cts_pin;
95 int rts_pin; 101 int rts_pin;
96#endif 102#endif
diff --git a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
index 5eb46a77d919..5e29446a8e03 100644
--- a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
@@ -57,6 +57,12 @@
57#define UART_SET_DLAB(uart) /* MMRs not muxed on BF54x */ 57#define UART_SET_DLAB(uart) /* MMRs not muxed on BF54x */
58#define UART_CLEAR_DLAB(uart) /* MMRs not muxed on BF54x */ 58#define UART_CLEAR_DLAB(uart) /* MMRs not muxed on BF54x */
59 59
60#define UART_GET_CTS(x) (UART_GET_MSR(x) & CTS)
61#define UART_SET_RTS(x) (UART_PUT_MCR(x, UART_GET_MCR(x) | MRTS))
62#define UART_CLEAR_RTS(x) (UART_PUT_MCR(x, UART_GET_MCR(x) & ~MRTS))
63#define UART_ENABLE_INTS(x, v) UART_SET_IER(x, v)
64#define UART_DISABLE_INTS(x) UART_CLEAR_IER(x, 0xF)
65
60#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS) 66#if defined(CONFIG_BFIN_UART0_CTSRTS) || defined(CONFIG_BFIN_UART1_CTSRTS)
61# define CONFIG_SERIAL_BFIN_CTSRTS 67# define CONFIG_SERIAL_BFIN_CTSRTS
62 68
@@ -93,7 +99,7 @@ struct bfin_serial_port {
93 struct work_struct tx_dma_workqueue; 99 struct work_struct tx_dma_workqueue;
94#endif 100#endif
95#ifdef CONFIG_SERIAL_BFIN_CTSRTS 101#ifdef CONFIG_SERIAL_BFIN_CTSRTS
96 struct work_struct cts_workqueue; 102 struct timer_list cts_timer;
97 int cts_pin; 103 int cts_pin;
98 int rts_pin; 104 int rts_pin;
99#endif 105#endif
@@ -181,7 +187,7 @@ static void bfin_serial_hw_init(struct bfin_serial_port *uart)
181 187
182#ifdef CONFIG_BFIN_UART1_CTSRTS 188#ifdef CONFIG_BFIN_UART1_CTSRTS
183 peripheral_request(P_UART1_RTS, DRIVER_NAME); 189 peripheral_request(P_UART1_RTS, DRIVER_NAME);
184 peripheral_request(P_UART1_CTS DRIVER_NAME); 190 peripheral_request(P_UART1_CTS, DRIVER_NAME);
185#endif 191#endif
186#endif 192#endif
187 193
@@ -196,7 +202,7 @@ static void bfin_serial_hw_init(struct bfin_serial_port *uart)
196 202
197#ifdef CONFIG_BFIN_UART3_CTSRTS 203#ifdef CONFIG_BFIN_UART3_CTSRTS
198 peripheral_request(P_UART3_RTS, DRIVER_NAME); 204 peripheral_request(P_UART3_RTS, DRIVER_NAME);
199 peripheral_request(P_UART3_CTS DRIVER_NAME); 205 peripheral_request(P_UART3_CTS, DRIVER_NAME);
200#endif 206#endif
201#endif 207#endif
202 SSYNC(); 208 SSYNC();
diff --git a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
index 7a9628769296..8aa02780e642 100644
--- a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
@@ -53,6 +53,12 @@
53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0) 53#define UART_SET_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) | DLAB); SSYNC(); } while (0)
54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0) 54#define UART_CLEAR_DLAB(uart) do { UART_PUT_LCR(uart, UART_GET_LCR(uart) & ~DLAB); SSYNC(); } while (0)
55 55
56#define UART_GET_CTS(x) gpio_get_value(x->cts_pin)
57#define UART_SET_RTS(x) gpio_set_value(x->rts_pin, 1)
58#define UART_CLEAR_RTS(x) gpio_set_value(x->rts_pin, 0)
59#define UART_ENABLE_INTS(x, v) UART_PUT_IER(x, v)
60#define UART_DISABLE_INTS(x) UART_PUT_IER(x, 0)
61
56#ifdef CONFIG_BFIN_UART0_CTSRTS 62#ifdef CONFIG_BFIN_UART0_CTSRTS
57# define CONFIG_SERIAL_BFIN_CTSRTS 63# define CONFIG_SERIAL_BFIN_CTSRTS
58# ifndef CONFIG_UART0_CTS_PIN 64# ifndef CONFIG_UART0_CTS_PIN
@@ -82,7 +88,7 @@ struct bfin_serial_port {
82# endif 88# endif
83#endif 89#endif
84#ifdef CONFIG_SERIAL_BFIN_CTSRTS 90#ifdef CONFIG_SERIAL_BFIN_CTSRTS
85 struct work_struct cts_workqueue; 91 struct timer_list cts_timer;
86 int cts_pin; 92 int cts_pin;
87 int rts_pin; 93 int rts_pin;
88#endif 94#endif
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm
index 92a6d91d0c1a..7cd25b8e7c9a 100644
--- a/include/asm-generic/Kbuild.asm
+++ b/include/asm-generic/Kbuild.asm
@@ -1,6 +1,6 @@
1header-y += kvm.h 1header-y += kvm.h
2 2
3ifeq ($(wildcard include/asm-$(SRCARCH)/a.out.h),include/asm-$(SRCARCH)/a.out.h) 3ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
4unifdef-y += a.out.h 4unifdef-y += a.out.h
5endif 5endif
6unifdef-y += auxvec.h 6unifdef-y += auxvec.h
diff --git a/include/asm-ia64/sn/simulator.h b/include/asm-ia64/sn/simulator.h
index c3fd3eb25768..c2611f6cfe33 100644
--- a/include/asm-ia64/sn/simulator.h
+++ b/include/asm-ia64/sn/simulator.h
@@ -8,7 +8,7 @@
8#ifndef _ASM_IA64_SN_SIMULATOR_H 8#ifndef _ASM_IA64_SN_SIMULATOR_H
9#define _ASM_IA64_SN_SIMULATOR_H 9#define _ASM_IA64_SN_SIMULATOR_H
10 10
11 11#if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_SGI_SN2) || defined(CONFIG_IA64_SGI_UV)
12#define SNMAGIC 0xaeeeeeee8badbeefL 12#define SNMAGIC 0xaeeeeeee8badbeefL
13#define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;}) 13#define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;})
14 14
@@ -16,5 +16,10 @@
16#define IS_RUNNING_ON_SIMULATOR() (sn_prom_type) 16#define IS_RUNNING_ON_SIMULATOR() (sn_prom_type)
17#define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2) 17#define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2)
18extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */ 18extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */
19#else
20#define IS_MEDUSA() 0
21#define SIMULATOR_SLEEP()
22#define IS_RUNNING_ON_SIMULATOR() 0
23#endif
19 24
20#endif /* _ASM_IA64_SN_SIMULATOR_H */ 25#endif /* _ASM_IA64_SN_SIMULATOR_H */
diff --git a/include/asm-m68k/bitops.h b/include/asm-m68k/bitops.h
index 83d1f286230b..3e8106442d5a 100644
--- a/include/asm-m68k/bitops.h
+++ b/include/asm-m68k/bitops.h
@@ -410,8 +410,49 @@ static inline int ext2_find_next_zero_bit(const void *vaddr, unsigned size,
410 res = ext2_find_first_zero_bit (p, size - 32 * (p - addr)); 410 res = ext2_find_first_zero_bit (p, size - 32 * (p - addr));
411 return (p - addr) * 32 + res; 411 return (p - addr) * 32 + res;
412} 412}
413#define ext2_find_next_bit(addr, size, off) \ 413
414 generic_find_next_le_bit((unsigned long *)(addr), (size), (off)) 414static inline int ext2_find_first_bit(const void *vaddr, unsigned size)
415{
416 const unsigned long *p = vaddr, *addr = vaddr;
417 int res;
418
419 if (!size)
420 return 0;
421
422 size = (size >> 5) + ((size & 31) > 0);
423 while (*p++ == 0UL) {
424 if (--size == 0)
425 return (p - addr) << 5;
426 }
427
428 --p;
429 for (res = 0; res < 32; res++)
430 if (ext2_test_bit(res, p))
431 break;
432 return (p - addr) * 32 + res;
433}
434
435static inline int ext2_find_next_bit(const void *vaddr, unsigned size,
436 unsigned offset)
437{
438 const unsigned long *addr = vaddr;
439 const unsigned long *p = addr + (offset >> 5);
440 int bit = offset & 31UL, res;
441
442 if (offset >= size)
443 return size;
444
445 if (bit) {
446 /* Look for one in first longword */
447 for (res = bit; res < 32; res++)
448 if (ext2_test_bit(res, p))
449 return (p - addr) * 32 + res;
450 p++;
451 }
452 /* No set bit yet, search remaining full bytes for a set bit */
453 res = ext2_find_first_bit(p, size - 32 * (p - addr));
454 return (p - addr) * 32 + res;
455}
415 456
416#endif /* __KERNEL__ */ 457#endif /* __KERNEL__ */
417 458
diff --git a/include/asm-mips/cpu-info.h b/include/asm-mips/cpu-info.h
index 0c5a358863f3..2de73dbb2e9e 100644
--- a/include/asm-mips/cpu-info.h
+++ b/include/asm-mips/cpu-info.h
@@ -56,7 +56,7 @@ struct cpuinfo_mips {
56 struct cache_desc tcache; /* Tertiary/split secondary cache */ 56 struct cache_desc tcache; /* Tertiary/split secondary cache */
57 int srsets; /* Shadow register sets */ 57 int srsets; /* Shadow register sets */
58 int core; /* physical core number */ 58 int core; /* physical core number */
59#if defined(CONFIG_MIPS_MT_SMTC) 59#if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC)
60 /* 60 /*
61 * In the MIPS MT "SMTC" model, each TC is considered 61 * In the MIPS MT "SMTC" model, each TC is considered
62 * to be a "CPU" for the purposes of scheduling, but 62 * to be a "CPU" for the purposes of scheduling, but
@@ -64,7 +64,7 @@ struct cpuinfo_mips {
64 * to all TCs within the same VPE. 64 * to all TCs within the same VPE.
65 */ 65 */
66 int vpe_id; /* Virtual Processor number */ 66 int vpe_id; /* Virtual Processor number */
67#endif /* CONFIG_MIPS_MT */ 67#endif
68#ifdef CONFIG_MIPS_MT_SMTC 68#ifdef CONFIG_MIPS_MT_SMTC
69 int tc_id; /* Thread Context number */ 69 int tc_id; /* Thread Context number */
70#endif 70#endif
diff --git a/include/asm-mips/gic.h b/include/asm-mips/gic.h
index 3a492f225f00..954807d9d66a 100644
--- a/include/asm-mips/gic.h
+++ b/include/asm-mips/gic.h
@@ -24,8 +24,8 @@
24 24
25#define MSK(n) ((1 << (n)) - 1) 25#define MSK(n) ((1 << (n)) - 1)
26#define REG32(addr) (*(volatile unsigned int *) (addr)) 26#define REG32(addr) (*(volatile unsigned int *) (addr))
27#define REG(base, offs) REG32((unsigned int)(base) + offs##_##OFS) 27#define REG(base, offs) REG32((unsigned long)(base) + offs##_##OFS)
28#define REGP(base, phys) REG32((unsigned int)(base) + (phys)) 28#define REGP(base, phys) REG32((unsigned long)(base) + (phys))
29 29
30/* Accessors */ 30/* Accessors */
31#define GIC_REG(segment, offset) \ 31#define GIC_REG(segment, offset) \
diff --git a/include/asm-mips/lasat/serial.h b/include/asm-mips/lasat/serial.h
index bafe68b10614..1c37d70579b8 100644
--- a/include/asm-mips/lasat/serial.h
+++ b/include/asm-mips/lasat/serial.h
@@ -4,10 +4,10 @@
4#define LASAT_BASE_BAUD_100 (7372800 / 16) 4#define LASAT_BASE_BAUD_100 (7372800 / 16)
5#define LASAT_UART_REGS_BASE_100 0x1c8b0000 5#define LASAT_UART_REGS_BASE_100 0x1c8b0000
6#define LASAT_UART_REGS_SHIFT_100 2 6#define LASAT_UART_REGS_SHIFT_100 2
7#define LASATINT_UART_100 8 7#define LASATINT_UART_100 16
8 8
9/* * LASAT 200 boards serial configuration */ 9/* * LASAT 200 boards serial configuration */
10#define LASAT_BASE_BAUD_200 (100000000 / 16 / 12) 10#define LASAT_BASE_BAUD_200 (100000000 / 16 / 12)
11#define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300) 11#define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300)
12#define LASAT_UART_REGS_SHIFT_200 3 12#define LASAT_UART_REGS_SHIFT_200 3
13#define LASATINT_UART_200 13 13#define LASATINT_UART_200 21
diff --git a/include/asm-mips/mach-au1x00/au1000.h b/include/asm-mips/mach-au1x00/au1000.h
index 1b5064dac007..0d302bad4492 100644
--- a/include/asm-mips/mach-au1x00/au1000.h
+++ b/include/asm-mips/mach-au1x00/au1000.h
@@ -615,6 +615,7 @@ enum soc_au1500_ints {
615 AU1000_RTC_MATCH1_INT, 615 AU1000_RTC_MATCH1_INT,
616 AU1000_RTC_MATCH2_INT, 616 AU1000_RTC_MATCH2_INT,
617 AU1500_PCI_ERR_INT, 617 AU1500_PCI_ERR_INT,
618 AU1500_RESERVED_INT,
618 AU1000_USB_DEV_REQ_INT, 619 AU1000_USB_DEV_REQ_INT,
619 AU1000_USB_DEV_SUS_INT, 620 AU1000_USB_DEV_SUS_INT,
620 AU1000_USB_HOST_INT, 621 AU1000_USB_HOST_INT,
diff --git a/include/asm-mips/pgtable-bits.h b/include/asm-mips/pgtable-bits.h
index 60e2f9338fcd..51b34a48c84a 100644
--- a/include/asm-mips/pgtable-bits.h
+++ b/include/asm-mips/pgtable-bits.h
@@ -134,6 +134,4 @@
134 134
135#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK) 135#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK)
136 136
137#define CONF_CM_DEFAULT (PAGE_CACHABLE_DEFAULT>>_CACHE_SHIFT)
138
139#endif /* _ASM_PGTABLE_BITS_H */ 137#endif /* _ASM_PGTABLE_BITS_H */
diff --git a/include/asm-parisc/checksum.h b/include/asm-parisc/checksum.h
index cc3ec1bd8919..e9639ccc3fce 100644
--- a/include/asm-parisc/checksum.h
+++ b/include/asm-parisc/checksum.h
@@ -65,7 +65,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
65"2:\n" 65"2:\n"
66 : "=r" (sum), "=r" (iph), "=r" (ihl) 66 : "=r" (sum), "=r" (iph), "=r" (ihl)
67 : "1" (iph), "2" (ihl) 67 : "1" (iph), "2" (ihl)
68 : "r19", "r20", "r21" ); 68 : "r19", "r20", "r21", "memory");
69 69
70 return (__force __sum16)sum; 70 return (__force __sum16)sum;
71} 71}
diff --git a/include/asm-powerpc/Kbuild b/include/asm-powerpc/Kbuild
index 7381916dfcbb..bca352e033c3 100644
--- a/include/asm-powerpc/Kbuild
+++ b/include/asm-powerpc/Kbuild
@@ -1,6 +1,5 @@
1include include/asm-generic/Kbuild.asm 1include include/asm-generic/Kbuild.asm
2 2
3header-y += a.out.h
4header-y += auxvec.h 3header-y += auxvec.h
5header-y += ioctls.h 4header-y += ioctls.h
6header-y += mman.h 5header-y += mman.h
diff --git a/include/asm-powerpc/kvm_ppc.h b/include/asm-powerpc/kvm_ppc.h
index b35a7e3ef978..5a21115228af 100644
--- a/include/asm-powerpc/kvm_ppc.h
+++ b/include/asm-powerpc/kvm_ppc.h
@@ -57,6 +57,7 @@ extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu,
57 57
58extern int kvmppc_emulate_instruction(struct kvm_run *run, 58extern int kvmppc_emulate_instruction(struct kvm_run *run,
59 struct kvm_vcpu *vcpu); 59 struct kvm_vcpu *vcpu);
60extern int kvmppc_emulate_mmio(struct kvm_run *run, struct kvm_vcpu *vcpu);
60 61
61extern void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn, 62extern void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 gvaddr, gfn_t gfn,
62 u64 asid, u32 flags); 63 u64 asid, u32 flags);
diff --git a/include/asm-powerpc/mediabay.h b/include/asm-powerpc/mediabay.h
index df111c362a7f..b2efb3325808 100644
--- a/include/asm-powerpc/mediabay.h
+++ b/include/asm-powerpc/mediabay.h
@@ -17,8 +17,6 @@
17#define MB_POWER 6 /* media bay contains a Power device (???) */ 17#define MB_POWER 6 /* media bay contains a Power device (???) */
18#define MB_NO 7 /* media bay contains nothing */ 18#define MB_NO 7 /* media bay contains nothing */
19 19
20int check_media_bay(struct device_node *which_bay, int what);
21
22/* Number of bays in the machine or 0 */ 20/* Number of bays in the machine or 0 */
23extern int media_bay_count; 21extern int media_bay_count;
24 22
@@ -29,6 +27,16 @@ int check_media_bay_by_base(unsigned long base, int what);
29/* called by IDE PMAC host driver to register IDE controller for media bay */ 27/* called by IDE PMAC host driver to register IDE controller for media bay */
30int media_bay_set_ide_infos(struct device_node *which_bay, unsigned long base, 28int media_bay_set_ide_infos(struct device_node *which_bay, unsigned long base,
31 int irq, ide_hwif_t *hwif); 29 int irq, ide_hwif_t *hwif);
30
31int check_media_bay(struct device_node *which_bay, int what);
32
33#else
34
35static inline int check_media_bay(struct device_node *which_bay, int what)
36{
37 return -ENODEV;
38}
39
32#endif 40#endif
33 41
34#endif /* __KERNEL__ */ 42#endif /* __KERNEL__ */
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
index 6abead6e681a..99348c1f4cab 100644
--- a/include/asm-powerpc/spu.h
+++ b/include/asm-powerpc/spu.h
@@ -131,7 +131,6 @@ struct spu {
131 u64 flags; 131 u64 flags;
132 u64 class_0_pending; 132 u64 class_0_pending;
133 u64 class_0_dar; 133 u64 class_0_dar;
134 u64 class_0_dsisr;
135 u64 class_1_dar; 134 u64 class_1_dar;
136 u64 class_1_dsisr; 135 u64 class_1_dsisr;
137 size_t ls_size; 136 size_t ls_size;
diff --git a/include/asm-powerpc/spu_csa.h b/include/asm-powerpc/spu_csa.h
index 129ec148d451..a40fd491250c 100644
--- a/include/asm-powerpc/spu_csa.h
+++ b/include/asm-powerpc/spu_csa.h
@@ -254,7 +254,7 @@ struct spu_state {
254 u64 spu_chnldata_RW[32]; 254 u64 spu_chnldata_RW[32];
255 u32 spu_mailbox_data[4]; 255 u32 spu_mailbox_data[4];
256 u32 pu_mailbox_data[1]; 256 u32 pu_mailbox_data[1];
257 u64 class_0_dar, class_0_dsisr, class_0_pending; 257 u64 class_0_dar, class_0_pending;
258 u64 class_1_dar, class_1_dsisr; 258 u64 class_1_dar, class_1_dsisr;
259 unsigned long suspend_time; 259 unsigned long suspend_time;
260 spinlock_t register_lock; 260 spinlock_t register_lock;
diff --git a/include/asm-powerpc/system.h b/include/asm-powerpc/system.h
index df781adac6dd..d1ced5029c42 100644
--- a/include/asm-powerpc/system.h
+++ b/include/asm-powerpc/system.h
@@ -34,7 +34,7 @@
34 * SMP since it is only used to order updates to system memory. 34 * SMP since it is only used to order updates to system memory.
35 */ 35 */
36#define mb() __asm__ __volatile__ ("sync" : : : "memory") 36#define mb() __asm__ __volatile__ ("sync" : : : "memory")
37#define rmb() __asm__ __volatile__ (__stringify(LWSYNC) : : : "memory") 37#define rmb() __asm__ __volatile__ ("sync" : : : "memory")
38#define wmb() __asm__ __volatile__ ("sync" : : : "memory") 38#define wmb() __asm__ __volatile__ ("sync" : : : "memory")
39#define read_barrier_depends() do { } while(0) 39#define read_barrier_depends() do { } while(0)
40 40
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h
index e0d4500d5f95..819e7d99ca0c 100644
--- a/include/asm-s390/system.h
+++ b/include/asm-s390/system.h
@@ -315,14 +315,14 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
315 asm volatile( \ 315 asm volatile( \
316 " lctlg %1,%2,0(%0)\n" \ 316 " lctlg %1,%2,0(%0)\n" \
317 : : "a" (&array), "i" (low), "i" (high), \ 317 : : "a" (&array), "i" (low), "i" (high), \
318 "m" (*(addrtype *)(array))); \ 318 "m" (*(addrtype *)(&array))); \
319 }) 319 })
320 320
321#define __ctl_store(array, low, high) ({ \ 321#define __ctl_store(array, low, high) ({ \
322 typedef struct { char _[sizeof(array)]; } addrtype; \ 322 typedef struct { char _[sizeof(array)]; } addrtype; \
323 asm volatile( \ 323 asm volatile( \
324 " stctg %2,%3,0(%1)\n" \ 324 " stctg %2,%3,0(%1)\n" \
325 : "=m" (*(addrtype *)(array)) \ 325 : "=m" (*(addrtype *)(&array)) \
326 : "a" (&array), "i" (low), "i" (high)); \ 326 : "a" (&array), "i" (low), "i" (high)); \
327 }) 327 })
328 328
@@ -333,14 +333,14 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
333 asm volatile( \ 333 asm volatile( \
334 " lctl %1,%2,0(%0)\n" \ 334 " lctl %1,%2,0(%0)\n" \
335 : : "a" (&array), "i" (low), "i" (high), \ 335 : : "a" (&array), "i" (low), "i" (high), \
336 "m" (*(addrtype *)(array))); \ 336 "m" (*(addrtype *)(&array))); \
337}) 337})
338 338
339#define __ctl_store(array, low, high) ({ \ 339#define __ctl_store(array, low, high) ({ \
340 typedef struct { char _[sizeof(array)]; } addrtype; \ 340 typedef struct { char _[sizeof(array)]; } addrtype; \
341 asm volatile( \ 341 asm volatile( \
342 " stctl %2,%3,0(%1)\n" \ 342 " stctl %2,%3,0(%1)\n" \
343 : "=m" (*(addrtype *)(array)) \ 343 : "=m" (*(addrtype *)(&array)) \
344 : "a" (&array), "i" (low), "i" (high)); \ 344 : "a" (&array), "i" (low), "i" (high)); \
345 }) 345 })
346 346
diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h
index 6e6458853a36..bb06027fc83e 100644
--- a/include/asm-x86/geode.h
+++ b/include/asm-x86/geode.h
@@ -112,8 +112,8 @@ extern int geode_get_dev_base(unsigned int dev);
112#define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */ 112#define VSA_VR_UNLOCK 0xFC53 /* unlock virtual register */
113#define VSA_VR_SIGNATURE 0x0003 113#define VSA_VR_SIGNATURE 0x0003
114#define VSA_VR_MEM_SIZE 0x0200 114#define VSA_VR_MEM_SIZE 0x0200
115#define VSA_SIG 0x4132 /* signature is ascii 'VSA2' */ 115#define AMD_VSA_SIG 0x4132 /* signature is ascii 'VSA2' */
116 116#define GSW_VSA_SIG 0x534d /* General Software signature */
117/* GPIO */ 117/* GPIO */
118 118
119#define GPIO_OUTPUT_VAL 0x00 119#define GPIO_OUTPUT_VAL 0x00
diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h
index 1d8cd01fa514..844f2a89afbc 100644
--- a/include/asm-x86/kvm_host.h
+++ b/include/asm-x86/kvm_host.h
@@ -18,6 +18,7 @@
18#include <linux/kvm_para.h> 18#include <linux/kvm_para.h>
19#include <linux/kvm_types.h> 19#include <linux/kvm_types.h>
20 20
21#include <asm/pvclock-abi.h>
21#include <asm/desc.h> 22#include <asm/desc.h>
22 23
23#define KVM_MAX_VCPUS 16 24#define KVM_MAX_VCPUS 16
@@ -282,7 +283,8 @@ struct kvm_vcpu_arch {
282 struct x86_emulate_ctxt emulate_ctxt; 283 struct x86_emulate_ctxt emulate_ctxt;
283 284
284 gpa_t time; 285 gpa_t time;
285 struct kvm_vcpu_time_info hv_clock; 286 struct pvclock_vcpu_time_info hv_clock;
287 unsigned int hv_clock_tsc_khz;
286 unsigned int time_offset; 288 unsigned int time_offset;
287 struct page *time_page; 289 struct page *time_page;
288}; 290};
diff --git a/include/asm-x86/kvm_para.h b/include/asm-x86/kvm_para.h
index 509845942070..bfd9900742bf 100644
--- a/include/asm-x86/kvm_para.h
+++ b/include/asm-x86/kvm_para.h
@@ -48,24 +48,6 @@ struct kvm_mmu_op_release_pt {
48#ifdef __KERNEL__ 48#ifdef __KERNEL__
49#include <asm/processor.h> 49#include <asm/processor.h>
50 50
51/* xen binary-compatible interface. See xen headers for details */
52struct kvm_vcpu_time_info {
53 uint32_t version;
54 uint32_t pad0;
55 uint64_t tsc_timestamp;
56 uint64_t system_time;
57 uint32_t tsc_to_system_mul;
58 int8_t tsc_shift;
59 int8_t pad[3];
60} __attribute__((__packed__)); /* 32 bytes */
61
62struct kvm_wall_clock {
63 uint32_t wc_version;
64 uint32_t wc_sec;
65 uint32_t wc_nsec;
66} __attribute__((__packed__));
67
68
69extern void kvmclock_init(void); 51extern void kvmclock_init(void);
70 52
71 53
diff --git a/include/asm-x86/page_32.h b/include/asm-x86/page_32.h
index 424e82f8ae27..ccf0ba3c3aba 100644
--- a/include/asm-x86/page_32.h
+++ b/include/asm-x86/page_32.h
@@ -14,7 +14,8 @@
14#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) 14#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
15 15
16#ifdef CONFIG_X86_PAE 16#ifdef CONFIG_X86_PAE
17#define __PHYSICAL_MASK_SHIFT 36 17/* 44=32+12, the limit we can fit into an unsigned long pfn */
18#define __PHYSICAL_MASK_SHIFT 44
18#define __VIRTUAL_MASK_SHIFT 32 19#define __VIRTUAL_MASK_SHIFT 32
19#define PAGETABLE_LEVELS 3 20#define PAGETABLE_LEVELS 3
20 21
diff --git a/include/asm-x86/pvclock-abi.h b/include/asm-x86/pvclock-abi.h
new file mode 100644
index 000000000000..6857f840b243
--- /dev/null
+++ b/include/asm-x86/pvclock-abi.h
@@ -0,0 +1,42 @@
1#ifndef _ASM_X86_PVCLOCK_ABI_H_
2#define _ASM_X86_PVCLOCK_ABI_H_
3#ifndef __ASSEMBLY__
4
5/*
6 * These structs MUST NOT be changed.
7 * They are the ABI between hypervisor and guest OS.
8 * Both Xen and KVM are using this.
9 *
10 * pvclock_vcpu_time_info holds the system time and the tsc timestamp
11 * of the last update. So the guest can use the tsc delta to get a
12 * more precise system time. There is one per virtual cpu.
13 *
14 * pvclock_wall_clock references the point in time when the system
15 * time was zero (usually boot time), thus the guest calculates the
16 * current wall clock by adding the system time.
17 *
18 * Protocol for the "version" fields is: hypervisor raises it (making
19 * it uneven) before it starts updating the fields and raises it again
20 * (making it even) when it is done. Thus the guest can make sure the
21 * time values it got are consistent by checking the version before
22 * and after reading them.
23 */
24
25struct pvclock_vcpu_time_info {
26 u32 version;
27 u32 pad0;
28 u64 tsc_timestamp;
29 u64 system_time;
30 u32 tsc_to_system_mul;
31 s8 tsc_shift;
32 u8 pad[3];
33} __attribute__((__packed__)); /* 32 bytes */
34
35struct pvclock_wall_clock {
36 u32 version;
37 u32 sec;
38 u32 nsec;
39} __attribute__((__packed__));
40
41#endif /* __ASSEMBLY__ */
42#endif /* _ASM_X86_PVCLOCK_ABI_H_ */
diff --git a/include/asm-x86/pvclock.h b/include/asm-x86/pvclock.h
new file mode 100644
index 000000000000..85b1bba8e0a3
--- /dev/null
+++ b/include/asm-x86/pvclock.h
@@ -0,0 +1,13 @@
1#ifndef _ASM_X86_PVCLOCK_H_
2#define _ASM_X86_PVCLOCK_H_
3
4#include <linux/clocksource.h>
5#include <asm/pvclock-abi.h>
6
7/* some helper functions for xen and kvm pv clock sources */
8cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src);
9void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
10 struct pvclock_vcpu_time_info *vcpu,
11 struct timespec *ts);
12
13#endif /* _ASM_X86_PVCLOCK_H_ */
diff --git a/include/asm-x86/xen/page.h b/include/asm-x86/xen/page.h
index baf3a4dce28c..e11f24038b1d 100644
--- a/include/asm-x86/xen/page.h
+++ b/include/asm-x86/xen/page.h
@@ -150,13 +150,9 @@ static inline pte_t __pte_ma(pteval_t x)
150 return (pte_t) { .pte = x }; 150 return (pte_t) { .pte = x };
151} 151}
152 152
153#ifdef CONFIG_X86_PAE
154#define pmd_val_ma(v) ((v).pmd) 153#define pmd_val_ma(v) ((v).pmd)
155#define pud_val_ma(v) ((v).pgd.pgd) 154#define pud_val_ma(v) ((v).pgd.pgd)
156#define __pmd_ma(x) ((pmd_t) { (x) } ) 155#define __pmd_ma(x) ((pmd_t) { (x) } )
157#else /* !X86_PAE */
158#define pmd_val_ma(v) ((v).pud.pgd.pgd)
159#endif /* CONFIG_X86_PAE */
160 156
161#define pgd_val_ma(x) ((x).pgd) 157#define pgd_val_ma(x) ((x).pgd)
162 158
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 93b98856007a..71d70d1fbce2 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -166,6 +166,9 @@ unifdef-y += acct.h
166unifdef-y += adb.h 166unifdef-y += adb.h
167unifdef-y += adfs_fs.h 167unifdef-y += adfs_fs.h
168unifdef-y += agpgart.h 168unifdef-y += agpgart.h
169ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
170unifdef-y += a.out.h
171endif
169unifdef-y += apm_bios.h 172unifdef-y += apm_bios.h
170unifdef-y += atalk.h 173unifdef-y += atalk.h
171unifdef-y += atmdev.h 174unifdef-y += atmdev.h
diff --git a/include/linux/a.out.h b/include/linux/a.out.h
index 208f4e8ed304..e86dfca44589 100644
--- a/include/linux/a.out.h
+++ b/include/linux/a.out.h
@@ -1,8 +1,6 @@
1#ifndef __A_OUT_GNU_H__ 1#ifndef __A_OUT_GNU_H__
2#define __A_OUT_GNU_H__ 2#define __A_OUT_GNU_H__
3 3
4#ifdef CONFIG_ARCH_SUPPORTS_AOUT
5
6#define __GNU_EXEC_MACROS__ 4#define __GNU_EXEC_MACROS__
7 5
8#ifndef __STRUCT_EXEC_OVERRIDE__ 6#ifndef __STRUCT_EXEC_OVERRIDE__
@@ -277,10 +275,4 @@ struct relocation_info
277#endif /* no N_RELOCATION_INFO_DECLARED. */ 275#endif /* no N_RELOCATION_INFO_DECLARED. */
278 276
279#endif /*__ASSEMBLY__ */ 277#endif /*__ASSEMBLY__ */
280#else /* CONFIG_ARCH_SUPPORTS_AOUT */
281#ifndef __ASSEMBLY__
282struct exec {
283};
284#endif
285#endif /* CONFIG_ARCH_SUPPORTS_AOUT */
286#endif /* __A_OUT_GNU_H__ */ 278#endif /* __A_OUT_GNU_H__ */
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h
index 661d90d6cf7c..972b12bcfb36 100644
--- a/include/linux/agp_backend.h
+++ b/include/linux/agp_backend.h
@@ -30,14 +30,6 @@
30#ifndef _AGP_BACKEND_H 30#ifndef _AGP_BACKEND_H
31#define _AGP_BACKEND_H 1 31#define _AGP_BACKEND_H 1
32 32
33#ifndef TRUE
34#define TRUE 1
35#endif
36
37#ifndef FALSE
38#define FALSE 0
39#endif
40
41enum chipset_type { 33enum chipset_type {
42 NOT_SUPPORTED, 34 NOT_SUPPORTED,
43 SUPPORTED, 35 SUPPORTED,
@@ -57,7 +49,7 @@ struct agp_kern_info {
57 size_t aper_size; 49 size_t aper_size;
58 int max_memory; /* In pages */ 50 int max_memory; /* In pages */
59 int current_memory; 51 int current_memory;
60 int cant_use_aperture; 52 bool cant_use_aperture;
61 unsigned long page_mask; 53 unsigned long page_mask;
62 struct vm_operations_struct *vm_ops; 54 struct vm_operations_struct *vm_ops;
63}; 55};
@@ -83,9 +75,9 @@ struct agp_memory {
83 off_t pg_start; 75 off_t pg_start;
84 u32 type; 76 u32 type;
85 u32 physical; 77 u32 physical;
86 u8 is_bound; 78 bool is_bound;
87 u8 is_flushed; 79 bool is_flushed;
88 u8 vmalloc_flag; 80 bool vmalloc_flag;
89}; 81};
90 82
91#define AGP_NORMAL_MEMORY 0 83#define AGP_NORMAL_MEMORY 0
diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h
index 62aef589eb94..c8fdb6e658e1 100644
--- a/include/linux/agpgart.h
+++ b/include/linux/agpgart.h
@@ -206,8 +206,8 @@ struct agp_front_data {
206 struct agp_controller *current_controller; 206 struct agp_controller *current_controller;
207 struct agp_controller *controllers; 207 struct agp_controller *controllers;
208 struct agp_file_private *file_priv_list; 208 struct agp_file_private *file_priv_list;
209 u8 used_by_controller; 209 bool used_by_controller;
210 u8 backend_acquired; 210 bool backend_acquired;
211}; 211};
212 212
213#endif /* __KERNEL__ */ 213#endif /* __KERNEL__ */
diff --git a/include/linux/audit.h b/include/linux/audit.h
index 63c3bb98558f..8b82974bdc12 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -571,7 +571,7 @@ extern void audit_log_lost(const char *message);
571extern int audit_update_lsm_rules(void); 571extern int audit_update_lsm_rules(void);
572 572
573 /* Private API (for audit.c only) */ 573 /* Private API (for audit.c only) */
574extern int audit_filter_user(struct netlink_skb_parms *cb, int type); 574extern int audit_filter_user(struct netlink_skb_parms *cb);
575extern int audit_filter_type(int type); 575extern int audit_filter_type(int type);
576extern int audit_receive_filter(int type, int pid, int uid, int seq, 576extern int audit_receive_filter(int type, int pid, int uid, int seq,
577 void *data, size_t datasz, uid_t loginuid, 577 void *data, size_t datasz, uid_t loginuid,
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index 6a5dbdc8a7dc..686895bacd9d 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -94,7 +94,7 @@ extern unsigned long init_bootmem_node(pg_data_t *pgdat,
94 unsigned long freepfn, 94 unsigned long freepfn,
95 unsigned long startpfn, 95 unsigned long startpfn,
96 unsigned long endpfn); 96 unsigned long endpfn);
97extern void reserve_bootmem_node(pg_data_t *pgdat, 97extern int reserve_bootmem_node(pg_data_t *pgdat,
98 unsigned long physaddr, 98 unsigned long physaddr,
99 unsigned long size, 99 unsigned long size,
100 int flags); 100 int flags);
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 51e6b1e520e6..dcf77fa826b5 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -82,6 +82,7 @@ struct cpuidle_state_kobj {
82}; 82};
83 83
84struct cpuidle_device { 84struct cpuidle_device {
85 unsigned int registered:1;
85 unsigned int enabled:1; 86 unsigned int enabled:1;
86 unsigned int cpu; 87 unsigned int cpu;
87 88
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 2a6639407c80..d982eb89c77d 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -300,7 +300,7 @@ extern int d_validate(struct dentry *, struct dentry *);
300extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); 300extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
301 301
302extern char *__d_path(const struct path *path, struct path *root, char *, int); 302extern char *__d_path(const struct path *path, struct path *root, char *, int);
303extern char *d_path(struct path *, char *, int); 303extern char *d_path(const struct path *, char *, int);
304extern char *dentry_path(struct dentry *, char *, int); 304extern char *dentry_path(struct dentry *, char *, int);
305 305
306/* Allocation counts.. */ 306/* Allocation counts.. */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index d490779f18d9..7c1080826832 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -894,8 +894,6 @@ static inline int file_check_writeable(struct file *filp)
894typedef struct files_struct *fl_owner_t; 894typedef struct files_struct *fl_owner_t;
895 895
896struct file_lock_operations { 896struct file_lock_operations {
897 void (*fl_insert)(struct file_lock *); /* lock insertion callback */
898 void (*fl_remove)(struct file_lock *); /* lock removal callback */
899 void (*fl_copy_lock)(struct file_lock *, struct file_lock *); 897 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
900 void (*fl_release_private)(struct file_lock *); 898 void (*fl_release_private)(struct file_lock *);
901}; 899};
diff --git a/include/linux/ide.h b/include/linux/ide.h
index f8f195c20da2..9918772bf274 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -153,7 +153,7 @@ enum { ide_unknown, ide_generic, ide_pci,
153 ide_qd65xx, ide_umc8672, ide_ht6560b, 153 ide_qd65xx, ide_umc8672, ide_ht6560b,
154 ide_rz1000, ide_trm290, 154 ide_rz1000, ide_trm290,
155 ide_cmd646, ide_cy82c693, ide_4drives, 155 ide_cmd646, ide_cy82c693, ide_4drives,
156 ide_pmac, ide_etrax100, ide_acorn, 156 ide_pmac, ide_acorn,
157 ide_au1xxx, ide_palm3710 157 ide_au1xxx, ide_palm3710
158}; 158};
159 159
diff --git a/include/linux/if_tunnel.h b/include/linux/if_tunnel.h
index f1fbe9c930d7..d4efe4014705 100644
--- a/include/linux/if_tunnel.h
+++ b/include/linux/if_tunnel.h
@@ -41,7 +41,7 @@ struct ip_tunnel_prl {
41 __u16 __reserved; 41 __u16 __reserved;
42 __u32 datalen; 42 __u32 datalen;
43 __u32 __reserved2; 43 __u32 __reserved2;
44 void __user *data; 44 /* data follows */
45}; 45};
46 46
47/* PRL flags */ 47/* PRL flags */
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index d5d40a9f7929..c6801bffe76d 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -53,14 +53,14 @@ struct resource_list {
53#define IORESOURCE_AUTO 0x40000000 53#define IORESOURCE_AUTO 0x40000000
54#define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */ 54#define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */
55 55
56/* ISA PnP IRQ specific bits (IORESOURCE_BITS) */ 56/* PnP IRQ specific bits (IORESOURCE_BITS) */
57#define IORESOURCE_IRQ_HIGHEDGE (1<<0) 57#define IORESOURCE_IRQ_HIGHEDGE (1<<0)
58#define IORESOURCE_IRQ_LOWEDGE (1<<1) 58#define IORESOURCE_IRQ_LOWEDGE (1<<1)
59#define IORESOURCE_IRQ_HIGHLEVEL (1<<2) 59#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
60#define IORESOURCE_IRQ_LOWLEVEL (1<<3) 60#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
61#define IORESOURCE_IRQ_SHAREABLE (1<<4) 61#define IORESOURCE_IRQ_SHAREABLE (1<<4)
62 62
63/* ISA PnP DMA specific bits (IORESOURCE_BITS) */ 63/* PnP DMA specific bits (IORESOURCE_BITS) */
64#define IORESOURCE_DMA_TYPE_MASK (3<<0) 64#define IORESOURCE_DMA_TYPE_MASK (3<<0)
65#define IORESOURCE_DMA_8BIT (0<<0) 65#define IORESOURCE_DMA_8BIT (0<<0)
66#define IORESOURCE_DMA_8AND16BIT (1<<0) 66#define IORESOURCE_DMA_8AND16BIT (1<<0)
@@ -76,7 +76,7 @@ struct resource_list {
76#define IORESOURCE_DMA_TYPEB (2<<6) 76#define IORESOURCE_DMA_TYPEB (2<<6)
77#define IORESOURCE_DMA_TYPEF (3<<6) 77#define IORESOURCE_DMA_TYPEF (3<<6)
78 78
79/* ISA PnP memory I/O specific bits (IORESOURCE_BITS) */ 79/* PnP memory I/O specific bits (IORESOURCE_BITS) */
80#define IORESOURCE_MEM_WRITEABLE (1<<0) /* dup: IORESOURCE_READONLY */ 80#define IORESOURCE_MEM_WRITEABLE (1<<0) /* dup: IORESOURCE_READONLY */
81#define IORESOURCE_MEM_CACHEABLE (1<<1) /* dup: IORESOURCE_CACHEABLE */ 81#define IORESOURCE_MEM_CACHEABLE (1<<1) /* dup: IORESOURCE_CACHEABLE */
82#define IORESOURCE_MEM_RANGELENGTH (1<<2) /* dup: IORESOURCE_RANGELENGTH */ 82#define IORESOURCE_MEM_RANGELENGTH (1<<2) /* dup: IORESOURCE_RANGELENGTH */
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index 10b666b61add..cde056e08181 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -396,8 +396,10 @@ static inline struct request_sock *inet6_reqsk_alloc(struct request_sock_ops *op
396{ 396{
397 struct request_sock *req = reqsk_alloc(ops); 397 struct request_sock *req = reqsk_alloc(ops);
398 398
399 if (req != NULL) 399 if (req != NULL) {
400 inet_rsk(req)->inet6_rsk_offset = inet6_rsk_offset(req); 400 inet_rsk(req)->inet6_rsk_offset = inet6_rsk_offset(req);
401 inet6_rsk(req)->pktopts = NULL;
402 }
401 403
402 return req; 404 return req;
403} 405}
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index 05e2b307161a..d147f0f90360 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -919,6 +919,9 @@ struct journal_s
919 struct proc_dir_entry *j_proc_entry; 919 struct proc_dir_entry *j_proc_entry;
920 struct transaction_stats_s j_stats; 920 struct transaction_stats_s j_stats;
921 921
922 /* Failed journal commit ID */
923 unsigned int j_failed_commit;
924
922 /* 925 /*
923 * An opaque pointer to fs-private information. ext3 puts its 926 * An opaque pointer to fs-private information. ext3 puts its
924 * superblock pointer here 927 * superblock pointer here
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 398978972b7a..de9d1df4bba2 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -33,6 +33,7 @@
33#define KVM_REQ_REPORT_TPR_ACCESS 2 33#define KVM_REQ_REPORT_TPR_ACCESS 2
34#define KVM_REQ_MMU_RELOAD 3 34#define KVM_REQ_MMU_RELOAD 3
35#define KVM_REQ_TRIPLE_FAULT 4 35#define KVM_REQ_TRIPLE_FAULT 4
36#define KVM_REQ_PENDING_TIMER 5
36 37
37struct kvm_vcpu; 38struct kvm_vcpu;
38extern struct kmem_cache *kvm_vcpu_cache; 39extern struct kmem_cache *kvm_vcpu_cache;
@@ -297,7 +298,7 @@ static inline gpa_t gfn_to_gpa(gfn_t gfn)
297 return (gpa_t)gfn << PAGE_SHIFT; 298 return (gpa_t)gfn << PAGE_SHIFT;
298} 299}
299 300
300static inline void kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) 301static inline void kvm_migrate_timers(struct kvm_vcpu *vcpu)
301{ 302{
302 set_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests); 303 set_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests);
303} 304}
diff --git a/include/linux/math64.h b/include/linux/math64.h
index c1a5f81501ff..c87f1528703a 100644
--- a/include/linux/math64.h
+++ b/include/linux/math64.h
@@ -81,4 +81,25 @@ static inline s64 div_s64(s64 dividend, s32 divisor)
81} 81}
82#endif 82#endif
83 83
84u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder);
85
86static __always_inline u32
87__iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
88{
89 u32 ret = 0;
90
91 while (dividend >= divisor) {
92 /* The following asm() prevents the compiler from
93 optimising this loop into a modulo operation. */
94 asm("" : "+rm"(dividend));
95
96 dividend -= divisor;
97 ret++;
98 }
99
100 *remainder = dividend;
101
102 return ret;
103}
104
84#endif /* _LINUX_MATH64_H */ 105#endif /* _LINUX_MATH64_H */
diff --git a/include/linux/mm.h b/include/linux/mm.h
index c31a9cd2a30e..586a943cab01 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -760,16 +760,17 @@ unsigned long unmap_vmas(struct mmu_gather **tlb,
760 * (see walk_page_range for more details) 760 * (see walk_page_range for more details)
761 */ 761 */
762struct mm_walk { 762struct mm_walk {
763 int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, void *); 763 int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *);
764 int (*pud_entry)(pud_t *, unsigned long, unsigned long, void *); 764 int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *);
765 int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, void *); 765 int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *);
766 int (*pte_entry)(pte_t *, unsigned long, unsigned long, void *); 766 int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *);
767 int (*pte_hole)(unsigned long, unsigned long, void *); 767 int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *);
768 struct mm_struct *mm;
769 void *private;
768}; 770};
769 771
770int walk_page_range(const struct mm_struct *, unsigned long addr, 772int walk_page_range(unsigned long addr, unsigned long end,
771 unsigned long end, const struct mm_walk *walk, 773 struct mm_walk *walk);
772 void *private);
773void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, 774void free_pgd_range(struct mmu_gather **tlb, unsigned long addr,
774 unsigned long end, unsigned long floor, unsigned long ceiling); 775 unsigned long end, unsigned long floor, unsigned long ceiling);
775void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, 776void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma,
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h
index b03b27457413..81cd36b735b0 100644
--- a/include/linux/msdos_fs.h
+++ b/include/linux/msdos_fs.h
@@ -57,12 +57,6 @@
57#define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */ 57#define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */
58#define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */ 58#define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */
59 59
60/* media of boot sector */
61static inline int fat_valid_media(u8 media)
62{
63 return 0xf8 <= media || media == 0xf0;
64}
65
66#define FAT_FIRST_ENT(s, x) ((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \ 60#define FAT_FIRST_ENT(s, x) ((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \
67 MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x)) 61 MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x))
68 62
@@ -334,6 +328,12 @@ static inline void fatwchar_to16(__u8 *dst, const wchar_t *src, size_t len)
334#endif 328#endif
335} 329}
336 330
331/* media of boot sector */
332static inline int fat_valid_media(u8 media)
333{
334 return 0xf8 <= media || media == 0xf0;
335}
336
337/* fat/cache.c */ 337/* fat/cache.c */
338extern void fat_cache_inval_inode(struct inode *inode); 338extern void fat_cache_inval_inode(struct inode *inode);
339extern int fat_get_cluster(struct inode *inode, int cluster, 339extern int fat_get_cluster(struct inode *inode, int cluster,
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 590cff32415d..f31debfac926 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -306,5 +306,29 @@ static inline void __ClearPageTail(struct page *page)
306} 306}
307 307
308#endif /* !PAGEFLAGS_EXTENDED */ 308#endif /* !PAGEFLAGS_EXTENDED */
309
310#define PAGE_FLAGS (1 << PG_lru | 1 << PG_private | 1 << PG_locked | \
311 1 << PG_buddy | 1 << PG_writeback | \
312 1 << PG_slab | 1 << PG_swapcache | 1 << PG_active)
313
314/*
315 * Flags checked in bad_page(). Pages on the free list should not have
316 * these flags set. It they are, there is a problem.
317 */
318#define PAGE_FLAGS_CLEAR_WHEN_BAD (PAGE_FLAGS | 1 << PG_reclaim | 1 << PG_dirty)
319
320/*
321 * Flags checked when a page is freed. Pages being freed should not have
322 * these flags set. It they are, there is a problem.
323 */
324#define PAGE_FLAGS_CHECK_AT_FREE (PAGE_FLAGS | 1 << PG_reserved)
325
326/*
327 * Flags checked when a page is prepped for return by the page allocator.
328 * Pages being prepped should not have these flags set. It they are, there
329 * is a problem.
330 */
331#define PAGE_FLAGS_CHECK_AT_PREP (PAGE_FLAGS | 1 << PG_reserved | 1 << PG_dirty)
332
309#endif /* !__GENERATING_BOUNDS_H */ 333#endif /* !__GENERATING_BOUNDS_H */
310#endif /* PAGE_FLAGS_H */ 334#endif /* PAGE_FLAGS_H */
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 509159bcd4e7..d18b1dd49fab 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -206,6 +206,7 @@ struct pci_dev {
206 struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ 206 struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */
207 int rom_attr_enabled; /* has display of the rom attribute been enabled? */ 207 int rom_attr_enabled; /* has display of the rom attribute been enabled? */
208 struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */ 208 struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */
209 struct bin_attribute *res_attr_wc[DEVICE_COUNT_RESOURCE]; /* sysfs file for WC mapping of resources */
209#ifdef CONFIG_PCI_MSI 210#ifdef CONFIG_PCI_MSI
210 struct list_head msi_list; 211 struct list_head msi_list;
211#endif 212#endif
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 9b940e644179..eafc9d6d2b35 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -716,6 +716,7 @@
716#define PCI_DEVICE_ID_HP_CISSA 0x3220 716#define PCI_DEVICE_ID_HP_CISSA 0x3220
717#define PCI_DEVICE_ID_HP_CISSC 0x3230 717#define PCI_DEVICE_ID_HP_CISSC 0x3230
718#define PCI_DEVICE_ID_HP_CISSD 0x3238 718#define PCI_DEVICE_ID_HP_CISSD 0x3238
719#define PCI_DEVICE_ID_HP_CISSE 0x323a
719#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 720#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
720 721
721#define PCI_VENDOR_ID_PCTECH 0x1042 722#define PCI_VENDOR_ID_PCTECH 0x1042
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index 9883bc942262..fff1d27ddb4c 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -9,6 +9,8 @@
9 9
10struct net; 10struct net;
11struct completion; 11struct completion;
12struct mm_struct;
13
12/* 14/*
13 * The proc filesystem constants/structures 15 * The proc filesystem constants/structures
14 */ 16 */
@@ -101,8 +103,6 @@ extern spinlock_t proc_subdir_lock;
101extern void proc_root_init(void); 103extern void proc_root_init(void);
102extern void proc_misc_init(void); 104extern void proc_misc_init(void);
103 105
104struct mm_struct;
105
106void proc_flush_task(struct task_struct *task); 106void proc_flush_task(struct task_struct *task);
107struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *); 107struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *);
108int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir); 108int proc_pid_readdir(struct file * filp, void * dirent, filldir_t filldir);
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index a2aec2c0cfb5..b358c704d102 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -246,6 +246,7 @@ enum rt_class_t
246{ 246{
247 RT_TABLE_UNSPEC=0, 247 RT_TABLE_UNSPEC=0,
248/* User defined values */ 248/* User defined values */
249 RT_TABLE_COMPAT=252,
249 RT_TABLE_DEFAULT=253, 250 RT_TABLE_DEFAULT=253,
250 RT_TABLE_MAIN=254, 251 RT_TABLE_MAIN=254,
251 RT_TABLE_LOCAL=255, 252 RT_TABLE_LOCAL=255,
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ae0be3c62375..c5d3f847ca8d 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2026,6 +2026,19 @@ static inline int fatal_signal_pending(struct task_struct *p)
2026 return signal_pending(p) && __fatal_signal_pending(p); 2026 return signal_pending(p) && __fatal_signal_pending(p);
2027} 2027}
2028 2028
2029static inline int signal_pending_state(long state, struct task_struct *p)
2030{
2031 if (!(state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL)))
2032 return 0;
2033 if (!signal_pending(p))
2034 return 0;
2035
2036 if (state & (__TASK_STOPPED | __TASK_TRACED))
2037 return 0;
2038
2039 return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
2040}
2041
2029static inline int need_resched(void) 2042static inline int need_resched(void)
2030{ 2043{
2031 return unlikely(test_thread_flag(TIF_NEED_RESCHED)); 2044 return unlikely(test_thread_flag(TIF_NEED_RESCHED));
diff --git a/include/linux/ssb/ssb_driver_gige.h b/include/linux/ssb/ssb_driver_gige.h
index 01fbdf5fef22..942e38736901 100644
--- a/include/linux/ssb/ssb_driver_gige.h
+++ b/include/linux/ssb/ssb_driver_gige.h
@@ -100,7 +100,7 @@ extern char * nvram_get(const char *name);
100/* Get the device MAC address */ 100/* Get the device MAC address */
101static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr) 101static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr)
102{ 102{
103#ifdef CONFIG_BCM947XX 103#ifdef CONFIG_BCM47XX
104 char *res = nvram_get("et0macaddr"); 104 char *res = nvram_get("et0macaddr");
105 if (res) 105 if (res)
106 memcpy(macaddr, res, 6); 106 memcpy(macaddr, res, 6);
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 18e62e3d406f..b31b6b74aa28 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -239,11 +239,6 @@ static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req)
239 return (struct tcp_request_sock *)req; 239 return (struct tcp_request_sock *)req;
240} 240}
241 241
242struct tcp_deferred_accept_info {
243 struct sock *listen_sk;
244 struct request_sock *request;
245};
246
247struct tcp_sock { 242struct tcp_sock {
248 /* inet_connection_sock has to be the first member of tcp_sock */ 243 /* inet_connection_sock has to be the first member of tcp_sock */
249 struct inet_connection_sock inet_conn; 244 struct inet_connection_sock inet_conn;
@@ -379,8 +374,6 @@ struct tcp_sock {
379 unsigned int keepalive_intvl; /* time interval between keep alive probes */ 374 unsigned int keepalive_intvl; /* time interval between keep alive probes */
380 int linger2; 375 int linger2;
381 376
382 struct tcp_deferred_accept_info defer_tcp_accept;
383
384 unsigned long last_synq_overflow; 377 unsigned long last_synq_overflow;
385 378
386 u32 tso_deferred; 379 u32 tso_deferred;
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 06d3e6eb9ca8..917707e6151d 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -66,8 +66,7 @@ struct thermal_cooling_device {
66 ((long)t-2732+5)/10 : ((long)t-2732-5)/10) 66 ((long)t-2732+5)/10 : ((long)t-2732-5)/10)
67#define CELSIUS_TO_KELVIN(t) ((t)*10+2732) 67#define CELSIUS_TO_KELVIN(t) ((t)*10+2732)
68 68
69#if defined(CONFIG_HWMON) || \ 69#if defined(CONFIG_THERMAL_HWMON)
70 (defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE))
71/* thermal zone devices with the same type share one hwmon device */ 70/* thermal zone devices with the same type share one hwmon device */
72struct thermal_hwmon_device { 71struct thermal_hwmon_device {
73 char type[THERMAL_NAME_LENGTH]; 72 char type[THERMAL_NAME_LENGTH];
@@ -94,8 +93,7 @@ struct thermal_zone_device {
94 struct idr idr; 93 struct idr idr;
95 struct mutex lock; /* protect cooling devices list */ 94 struct mutex lock; /* protect cooling devices list */
96 struct list_head node; 95 struct list_head node;
97#if defined(CONFIG_HWMON) || \ 96#if defined(CONFIG_THERMAL_HWMON)
98 (defined(CONFIG_HWMON_MODULE) && defined(CONFIG_THERMAL_MODULE))
99 struct list_head hwmon_node; 97 struct list_head hwmon_node;
100 struct thermal_hwmon_device *hwmon; 98 struct thermal_hwmon_device *hwmon;
101 struct thermal_hwmon_attr temp_input; /* hwmon sys attr */ 99 struct thermal_hwmon_attr temp_input; /* hwmon sys attr */
diff --git a/include/linux/time.h b/include/linux/time.h
index d32ef0ad4c0a..e15206a7e82e 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -6,6 +6,7 @@
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7# include <linux/cache.h> 7# include <linux/cache.h>
8# include <linux/seqlock.h> 8# include <linux/seqlock.h>
9# include <linux/math64.h>
9#endif 10#endif
10 11
11#ifndef _STRUCT_TIMESPEC 12#ifndef _STRUCT_TIMESPEC
@@ -169,18 +170,13 @@ extern struct timeval ns_to_timeval(const s64 nsec);
169 * timespec_add_ns - Adds nanoseconds to a timespec 170 * timespec_add_ns - Adds nanoseconds to a timespec
170 * @a: pointer to timespec to be incremented 171 * @a: pointer to timespec to be incremented
171 * @ns: unsigned nanoseconds value to be added 172 * @ns: unsigned nanoseconds value to be added
173 *
174 * This must always be inlined because its used from the x86-64 vdso,
175 * which cannot call other kernel functions.
172 */ 176 */
173static inline void timespec_add_ns(struct timespec *a, u64 ns) 177static __always_inline void timespec_add_ns(struct timespec *a, u64 ns)
174{ 178{
175 ns += a->tv_nsec; 179 a->tv_sec += __iter_div_u64_rem(a->tv_nsec + ns, NSEC_PER_SEC, &ns);
176 while(unlikely(ns >= NSEC_PER_SEC)) {
177 /* The following asm() prevents the compiler from
178 * optimising this loop into a modulo operation. */
179 asm("" : "+r"(ns));
180
181 ns -= NSEC_PER_SEC;
182 a->tv_sec++;
183 }
184 a->tv_nsec = ns; 180 a->tv_nsec = ns;
185} 181}
186#endif /* __KERNEL__ */ 182#endif /* __KERNEL__ */
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
index 59f1c0bd8f9c..d2a003586761 100644
--- a/include/linux/tty_driver.h
+++ b/include/linux/tty_driver.h
@@ -27,8 +27,7 @@
27 * This routine is called by the kernel to write a series of 27 * This routine is called by the kernel to write a series of
28 * characters to the tty device. The characters may come from 28 * characters to the tty device. The characters may come from
29 * user space or kernel space. This routine will return the 29 * user space or kernel space. This routine will return the
30 * number of characters actually accepted for writing. This 30 * number of characters actually accepted for writing.
31 * routine is mandatory.
32 * 31 *
33 * Optional: Required for writable devices. 32 * Optional: Required for writable devices.
34 * 33 *
@@ -134,7 +133,7 @@
134 * This routine notifies the tty driver that it should hangup the 133 * This routine notifies the tty driver that it should hangup the
135 * tty device. 134 * tty device.
136 * 135 *
137 * Required: 136 * Optional:
138 * 137 *
139 * void (*break_ctl)(struct tty_stuct *tty, int state); 138 * void (*break_ctl)(struct tty_stuct *tty, int state);
140 * 139 *
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
index 9405aa6cdf26..38c0571820fb 100644
--- a/include/linux/virtio_net.h
+++ b/include/linux/virtio_net.h
@@ -38,7 +38,7 @@ struct virtio_net_hdr
38#define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set 38#define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set
39 __u8 gso_type; 39 __u8 gso_type;
40 __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ 40 __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
41 __u16 gso_size; /* Bytes to append to gso_hdr_len per frame */ 41 __u16 gso_size; /* Bytes to append to hdr_len per frame */
42 __u16 csum_start; /* Position to start checksumming from */ 42 __u16 csum_start; /* Position to start checksumming from */
43 __u16 csum_offset; /* Offset after that to place checksum */ 43 __u16 csum_offset; /* Offset after that to place checksum */
44}; 44};
diff --git a/include/media/cx25840.h b/include/media/cx25840.h
index cd599ad29fb2..db431d513f2f 100644
--- a/include/media/cx25840.h
+++ b/include/media/cx25840.h
@@ -32,12 +32,16 @@ enum cx25840_video_input {
32 CX25840_COMPOSITE7, 32 CX25840_COMPOSITE7,
33 CX25840_COMPOSITE8, 33 CX25840_COMPOSITE8,
34 34
35 /* S-Video inputs consist of one luma input (In1-In4) ORed with one 35 /* S-Video inputs consist of one luma input (In1-In8) ORed with one
36 chroma input (In5-In8) */ 36 chroma input (In5-In8) */
37 CX25840_SVIDEO_LUMA1 = 0x10, 37 CX25840_SVIDEO_LUMA1 = 0x10,
38 CX25840_SVIDEO_LUMA2 = 0x20, 38 CX25840_SVIDEO_LUMA2 = 0x20,
39 CX25840_SVIDEO_LUMA3 = 0x30, 39 CX25840_SVIDEO_LUMA3 = 0x30,
40 CX25840_SVIDEO_LUMA4 = 0x40, 40 CX25840_SVIDEO_LUMA4 = 0x40,
41 CX25840_SVIDEO_LUMA5 = 0x50,
42 CX25840_SVIDEO_LUMA6 = 0x60,
43 CX25840_SVIDEO_LUMA7 = 0x70,
44 CX25840_SVIDEO_LUMA8 = 0x80,
41 CX25840_SVIDEO_CHROMA4 = 0x400, 45 CX25840_SVIDEO_CHROMA4 = 0x400,
42 CX25840_SVIDEO_CHROMA5 = 0x500, 46 CX25840_SVIDEO_CHROMA5 = 0x500,
43 CX25840_SVIDEO_CHROMA6 = 0x600, 47 CX25840_SVIDEO_CHROMA6 = 0x600,
diff --git a/include/media/ir-common.h b/include/media/ir-common.h
index bfee8be5d63f..b8e8aa91905a 100644
--- a/include/media/ir-common.h
+++ b/include/media/ir-common.h
@@ -146,6 +146,7 @@ extern IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE];
146extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE]; 146extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE];
147extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE]; 147extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE];
148extern IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE]; 148extern IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE];
149extern IR_KEYTAB_TYPE ir_codes_avermedia_a16d[IR_KEYTAB_SIZE];
149 150
150#endif 151#endif
151 152
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
index 33f01ae08f76..859f7a6f6f67 100644
--- a/include/media/v4l2-dev.h
+++ b/include/media/v4l2-dev.h
@@ -40,9 +40,9 @@
40#define VFL_TYPE_VTX 3 40#define VFL_TYPE_VTX 3
41 41
42/* Video standard functions */ 42/* Video standard functions */
43extern char *v4l2_norm_to_name(v4l2_std_id id); 43extern const char *v4l2_norm_to_name(v4l2_std_id id);
44extern int v4l2_video_std_construct(struct v4l2_standard *vs, 44extern int v4l2_video_std_construct(struct v4l2_standard *vs,
45 int id, char *name); 45 int id, const char *name);
46/* Prints the ioctl in a human-readable format */ 46/* Prints the ioctl in a human-readable format */
47extern void v4l_printk_ioctl(unsigned int cmd); 47extern void v4l_printk_ioctl(unsigned int cmd);
48 48
diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
index a42cd63d241a..9fabe5b38912 100644
--- a/include/net/inet_sock.h
+++ b/include/net/inet_sock.h
@@ -197,4 +197,14 @@ static inline int inet_iif(const struct sk_buff *skb)
197 return skb->rtable->rt_iif; 197 return skb->rtable->rt_iif;
198} 198}
199 199
200static inline struct request_sock *inet_reqsk_alloc(struct request_sock_ops *ops)
201{
202 struct request_sock *req = reqsk_alloc(ops);
203
204 if (req != NULL)
205 inet_rsk(req)->opt = NULL;
206
207 return req;
208}
209
200#endif /* _INET_SOCK_H */ 210#endif /* _INET_SOCK_H */
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index e0a612bc9c4e..f422f7218e1c 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -367,6 +367,12 @@ static inline int ipv6_addr_any(const struct in6_addr *a)
367 a->s6_addr32[2] | a->s6_addr32[3] ) == 0); 367 a->s6_addr32[2] | a->s6_addr32[3] ) == 0);
368} 368}
369 369
370static inline int ipv6_addr_loopback(const struct in6_addr *a)
371{
372 return ((a->s6_addr32[0] | a->s6_addr32[1] |
373 a->s6_addr32[2] | (a->s6_addr32[3] ^ htonl(1))) == 0);
374}
375
370static inline int ipv6_addr_v4mapped(const struct in6_addr *a) 376static inline int ipv6_addr_v4mapped(const struct in6_addr *a)
371{ 377{
372 return ((a->s6_addr32[0] | a->s6_addr32[1] | 378 return ((a->s6_addr32[0] | a->s6_addr32[1] |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index aa540e6be502..d9dd0f707296 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -95,6 +95,11 @@ extern struct list_head net_namespace_list;
95#ifdef CONFIG_NET_NS 95#ifdef CONFIG_NET_NS
96extern void __put_net(struct net *net); 96extern void __put_net(struct net *net);
97 97
98static inline int net_alive(struct net *net)
99{
100 return net && atomic_read(&net->count);
101}
102
98static inline struct net *get_net(struct net *net) 103static inline struct net *get_net(struct net *net)
99{ 104{
100 atomic_inc(&net->count); 105 atomic_inc(&net->count);
@@ -125,6 +130,12 @@ int net_eq(const struct net *net1, const struct net *net2)
125 return net1 == net2; 130 return net1 == net2;
126} 131}
127#else 132#else
133
134static inline int net_alive(struct net *net)
135{
136 return 1;
137}
138
128static inline struct net *get_net(struct net *net) 139static inline struct net *get_net(struct net *net)
129{ 140{
130 return net; 141 return net;
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
index f736e842977f..f80c0ed6d870 100644
--- a/include/net/netfilter/nf_conntrack_extend.h
+++ b/include/net/netfilter/nf_conntrack_extend.h
@@ -15,6 +15,7 @@ enum nf_ct_ext_id
15 15
16/* Extensions: optional stuff which isn't permanently in struct. */ 16/* Extensions: optional stuff which isn't permanently in struct. */
17struct nf_ct_ext { 17struct nf_ct_ext {
18 struct rcu_head rcu;
18 u8 offset[NF_CT_EXT_NUM]; 19 u8 offset[NF_CT_EXT_NUM];
19 u8 len; 20 u8 len;
20 char data[0]; 21 char data[0];
diff --git a/include/net/request_sock.h b/include/net/request_sock.h
index b220b5f624de..0c96e7bed5db 100644
--- a/include/net/request_sock.h
+++ b/include/net/request_sock.h
@@ -115,8 +115,8 @@ struct request_sock_queue {
115 struct request_sock *rskq_accept_head; 115 struct request_sock *rskq_accept_head;
116 struct request_sock *rskq_accept_tail; 116 struct request_sock *rskq_accept_tail;
117 rwlock_t syn_wait_lock; 117 rwlock_t syn_wait_lock;
118 u16 rskq_defer_accept; 118 u8 rskq_defer_accept;
119 /* 2 bytes hole, try to pack */ 119 /* 3 bytes hole, try to pack */
120 struct listen_sock *listen_opt; 120 struct listen_sock *listen_opt;
121}; 121};
122 122
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 633147cb6bbc..cf54034019d9 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -139,7 +139,6 @@ extern void tcp_time_wait(struct sock *sk, int state, int timeo);
139#define MAX_TCP_KEEPINTVL 32767 139#define MAX_TCP_KEEPINTVL 32767
140#define MAX_TCP_KEEPCNT 127 140#define MAX_TCP_KEEPCNT 127
141#define MAX_TCP_SYNCNT 127 141#define MAX_TCP_SYNCNT 127
142#define MAX_TCP_ACCEPT_DEFERRED 65535
143 142
144#define TCP_SYNQ_INTERVAL (HZ/5) /* Period of SYNACK timer */ 143#define TCP_SYNQ_INTERVAL (HZ/5) /* Period of SYNACK timer */
145 144
@@ -433,7 +432,6 @@ extern struct sk_buff * tcp_make_synack(struct sock *sk,
433 432
434extern int tcp_disconnect(struct sock *sk, int flags); 433extern int tcp_disconnect(struct sock *sk, int flags);
435 434
436extern void tcp_unhash(struct sock *sk);
437 435
438/* From syncookies.c */ 436/* From syncookies.c */
439extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS]; 437extern __u32 syncookie_secret[2][16-4+SHA_DIGEST_WORDS];
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 911a661b7278..31d30b1852e8 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -105,7 +105,6 @@ enum ib_device_cap_flags {
105 */ 105 */
106 IB_DEVICE_UD_IP_CSUM = (1<<18), 106 IB_DEVICE_UD_IP_CSUM = (1<<18),
107 IB_DEVICE_UD_TSO = (1<<19), 107 IB_DEVICE_UD_TSO = (1<<19),
108 IB_DEVICE_SEND_W_INV = (1<<21),
109}; 108};
110 109
111enum ib_atomic_cap { 110enum ib_atomic_cap {
diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
index 9b018da48cf3..819a0331cda9 100644
--- a/include/xen/interface/xen.h
+++ b/include/xen/interface/xen.h
@@ -10,6 +10,7 @@
10#define __XEN_PUBLIC_XEN_H__ 10#define __XEN_PUBLIC_XEN_H__
11 11
12#include <asm/xen/interface.h> 12#include <asm/xen/interface.h>
13#include <asm/pvclock-abi.h>
13 14
14/* 15/*
15 * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS). 16 * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS).
@@ -336,7 +337,7 @@ struct vcpu_info {
336 uint8_t evtchn_upcall_mask; 337 uint8_t evtchn_upcall_mask;
337 unsigned long evtchn_pending_sel; 338 unsigned long evtchn_pending_sel;
338 struct arch_vcpu_info arch; 339 struct arch_vcpu_info arch;
339 struct vcpu_time_info time; 340 struct pvclock_vcpu_time_info time;
340}; /* 64 bytes (x86) */ 341}; /* 64 bytes (x86) */
341 342
342/* 343/*
@@ -384,9 +385,7 @@ struct shared_info {
384 * Wallclock time: updated only by control software. Guests should base 385 * Wallclock time: updated only by control software. Guests should base
385 * their gettimeofday() syscall on this wallclock-base value. 386 * their gettimeofday() syscall on this wallclock-base value.
386 */ 387 */
387 uint32_t wc_version; /* Version counter: see vcpu_time_info_t. */ 388 struct pvclock_wall_clock wc;
388 uint32_t wc_sec; /* Secs 00:00:00 UTC, Jan 1, 1970. */
389 uint32_t wc_nsec; /* Nsecs 00:00:00 UTC, Jan 1, 1970. */
390 389
391 struct arch_shared_info arch; 390 struct arch_shared_info arch;
392 391
diff --git a/ipc/shm.c b/ipc/shm.c
index 554429ade079..790240cd067f 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -894,8 +894,6 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr)
894 if (!sfd) 894 if (!sfd)
895 goto out_put_dentry; 895 goto out_put_dentry;
896 896
897 err = -ENOMEM;
898
899 file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); 897 file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations);
900 if (!file) 898 if (!file)
901 goto out_free; 899 goto out_free;
@@ -1060,16 +1058,16 @@ asmlinkage long sys_shmdt(char __user *shmaddr)
1060static int sysvipc_shm_proc_show(struct seq_file *s, void *it) 1058static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
1061{ 1059{
1062 struct shmid_kernel *shp = it; 1060 struct shmid_kernel *shp = it;
1063 char *format;
1064 1061
1065#define SMALL_STRING "%10d %10d %4o %10u %5u %5u %5d %5u %5u %5u %5u %10lu %10lu %10lu\n" 1062#if BITS_PER_LONG <= 32
1066#define BIG_STRING "%10d %10d %4o %21u %5u %5u %5d %5u %5u %5u %5u %10lu %10lu %10lu\n" 1063#define SIZE_SPEC "%10lu"
1064#else
1065#define SIZE_SPEC "%21lu"
1066#endif
1067 1067
1068 if (sizeof(size_t) <= sizeof(int)) 1068 return seq_printf(s,
1069 format = SMALL_STRING; 1069 "%10d %10d %4o " SIZE_SPEC " %5u %5u "
1070 else 1070 "%5lu %5u %5u %5u %5u %10lu %10lu %10lu\n",
1071 format = BIG_STRING;
1072 return seq_printf(s, format,
1073 shp->shm_perm.key, 1071 shp->shm_perm.key,
1074 shp->shm_perm.id, 1072 shp->shm_perm.id,
1075 shp->shm_perm.mode, 1073 shp->shm_perm.mode,
diff --git a/kernel/audit.c b/kernel/audit.c
index e8692a5748c2..e092f1c0ce30 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -738,7 +738,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
738 if (!audit_enabled && msg_type != AUDIT_USER_AVC) 738 if (!audit_enabled && msg_type != AUDIT_USER_AVC)
739 return 0; 739 return 0;
740 740
741 err = audit_filter_user(&NETLINK_CB(skb), msg_type); 741 err = audit_filter_user(&NETLINK_CB(skb));
742 if (err == 1) { 742 if (err == 1) {
743 err = 0; 743 err = 0;
744 if (msg_type == AUDIT_USER_TTY) { 744 if (msg_type == AUDIT_USER_TTY) {
@@ -779,7 +779,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
779 } 779 }
780 /* fallthrough */ 780 /* fallthrough */
781 case AUDIT_LIST: 781 case AUDIT_LIST:
782 err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, 782 err = audit_receive_filter(msg_type, NETLINK_CB(skb).pid,
783 uid, seq, data, nlmsg_len(nlh), 783 uid, seq, data, nlmsg_len(nlh),
784 loginuid, sessionid, sid); 784 loginuid, sessionid, sid);
785 break; 785 break;
@@ -798,7 +798,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
798 } 798 }
799 /* fallthrough */ 799 /* fallthrough */
800 case AUDIT_LIST_RULES: 800 case AUDIT_LIST_RULES:
801 err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, 801 err = audit_receive_filter(msg_type, NETLINK_CB(skb).pid,
802 uid, seq, data, nlmsg_len(nlh), 802 uid, seq, data, nlmsg_len(nlh),
803 loginuid, sessionid, sid); 803 loginuid, sessionid, sid);
804 break; 804 break;
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
index 0e0bd27e6512..98c50cc671bb 100644
--- a/kernel/auditfilter.c
+++ b/kernel/auditfilter.c
@@ -1544,6 +1544,7 @@ static void audit_log_rule_change(uid_t loginuid, u32 sessionid, u32 sid,
1544 * @data: payload data 1544 * @data: payload data
1545 * @datasz: size of payload data 1545 * @datasz: size of payload data
1546 * @loginuid: loginuid of sender 1546 * @loginuid: loginuid of sender
1547 * @sessionid: sessionid for netlink audit message
1547 * @sid: SE Linux Security ID of sender 1548 * @sid: SE Linux Security ID of sender
1548 */ 1549 */
1549int audit_receive_filter(int type, int pid, int uid, int seq, void *data, 1550int audit_receive_filter(int type, int pid, int uid, int seq, void *data,
@@ -1720,7 +1721,7 @@ static int audit_filter_user_rules(struct netlink_skb_parms *cb,
1720 return 1; 1721 return 1;
1721} 1722}
1722 1723
1723int audit_filter_user(struct netlink_skb_parms *cb, int type) 1724int audit_filter_user(struct netlink_skb_parms *cb)
1724{ 1725{
1725 enum audit_state state = AUDIT_DISABLED; 1726 enum audit_state state = AUDIT_DISABLED;
1726 struct audit_entry *e; 1727 struct audit_entry *e;
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 039baa4cd90c..9fceb97e989c 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -1037,8 +1037,8 @@ int current_cpuset_is_being_rebound(void)
1037 1037
1038static int update_relax_domain_level(struct cpuset *cs, s64 val) 1038static int update_relax_domain_level(struct cpuset *cs, s64 val)
1039{ 1039{
1040 if ((int)val < 0) 1040 if (val < -1 || val >= SD_LV_MAX)
1041 val = -1; 1041 return -EINVAL;
1042 1042
1043 if (val != cs->relax_domain_level) { 1043 if (val != cs->relax_domain_level) {
1044 cs->relax_domain_level = val; 1044 cs->relax_domain_level = val;
@@ -1890,6 +1890,12 @@ static void common_cpu_mem_hotplug_unplug(void)
1890 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; 1890 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
1891 scan_for_empty_cpusets(&top_cpuset); 1891 scan_for_empty_cpusets(&top_cpuset);
1892 1892
1893 /*
1894 * Scheduler destroys domains on hotplug events.
1895 * Rebuild them based on the current settings.
1896 */
1897 rebuild_sched_domains();
1898
1893 cgroup_unlock(); 1899 cgroup_unlock();
1894} 1900}
1895 1901
diff --git a/kernel/futex.c b/kernel/futex.c
index 449def8074fe..7d1136e97c14 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -1096,21 +1096,64 @@ static void unqueue_me_pi(struct futex_q *q)
1096 * private futexes. 1096 * private futexes.
1097 */ 1097 */
1098static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q, 1098static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
1099 struct task_struct *newowner) 1099 struct task_struct *newowner,
1100 struct rw_semaphore *fshared)
1100{ 1101{
1101 u32 newtid = task_pid_vnr(newowner) | FUTEX_WAITERS; 1102 u32 newtid = task_pid_vnr(newowner) | FUTEX_WAITERS;
1102 struct futex_pi_state *pi_state = q->pi_state; 1103 struct futex_pi_state *pi_state = q->pi_state;
1104 struct task_struct *oldowner = pi_state->owner;
1103 u32 uval, curval, newval; 1105 u32 uval, curval, newval;
1104 int ret; 1106 int ret, attempt = 0;
1105 1107
1106 /* Owner died? */ 1108 /* Owner died? */
1109 if (!pi_state->owner)
1110 newtid |= FUTEX_OWNER_DIED;
1111
1112 /*
1113 * We are here either because we stole the rtmutex from the
1114 * pending owner or we are the pending owner which failed to
1115 * get the rtmutex. We have to replace the pending owner TID
1116 * in the user space variable. This must be atomic as we have
1117 * to preserve the owner died bit here.
1118 *
1119 * Note: We write the user space value _before_ changing the
1120 * pi_state because we can fault here. Imagine swapped out
1121 * pages or a fork, which was running right before we acquired
1122 * mmap_sem, that marked all the anonymous memory readonly for
1123 * cow.
1124 *
1125 * Modifying pi_state _before_ the user space value would
1126 * leave the pi_state in an inconsistent state when we fault
1127 * here, because we need to drop the hash bucket lock to
1128 * handle the fault. This might be observed in the PID check
1129 * in lookup_pi_state.
1130 */
1131retry:
1132 if (get_futex_value_locked(&uval, uaddr))
1133 goto handle_fault;
1134
1135 while (1) {
1136 newval = (uval & FUTEX_OWNER_DIED) | newtid;
1137
1138 curval = cmpxchg_futex_value_locked(uaddr, uval, newval);
1139
1140 if (curval == -EFAULT)
1141 goto handle_fault;
1142 if (curval == uval)
1143 break;
1144 uval = curval;
1145 }
1146
1147 /*
1148 * We fixed up user space. Now we need to fix the pi_state
1149 * itself.
1150 */
1107 if (pi_state->owner != NULL) { 1151 if (pi_state->owner != NULL) {
1108 spin_lock_irq(&pi_state->owner->pi_lock); 1152 spin_lock_irq(&pi_state->owner->pi_lock);
1109 WARN_ON(list_empty(&pi_state->list)); 1153 WARN_ON(list_empty(&pi_state->list));
1110 list_del_init(&pi_state->list); 1154 list_del_init(&pi_state->list);
1111 spin_unlock_irq(&pi_state->owner->pi_lock); 1155 spin_unlock_irq(&pi_state->owner->pi_lock);
1112 } else 1156 }
1113 newtid |= FUTEX_OWNER_DIED;
1114 1157
1115 pi_state->owner = newowner; 1158 pi_state->owner = newowner;
1116 1159
@@ -1118,26 +1161,35 @@ static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
1118 WARN_ON(!list_empty(&pi_state->list)); 1161 WARN_ON(!list_empty(&pi_state->list));
1119 list_add(&pi_state->list, &newowner->pi_state_list); 1162 list_add(&pi_state->list, &newowner->pi_state_list);
1120 spin_unlock_irq(&newowner->pi_lock); 1163 spin_unlock_irq(&newowner->pi_lock);
1164 return 0;
1121 1165
1122 /* 1166 /*
1123 * We own it, so we have to replace the pending owner 1167 * To handle the page fault we need to drop the hash bucket
1124 * TID. This must be atomic as we have preserve the 1168 * lock here. That gives the other task (either the pending
1125 * owner died bit here. 1169 * owner itself or the task which stole the rtmutex) the
1170 * chance to try the fixup of the pi_state. So once we are
1171 * back from handling the fault we need to check the pi_state
1172 * after reacquiring the hash bucket lock and before trying to
1173 * do another fixup. When the fixup has been done already we
1174 * simply return.
1126 */ 1175 */
1127 ret = get_futex_value_locked(&uval, uaddr); 1176handle_fault:
1177 spin_unlock(q->lock_ptr);
1128 1178
1129 while (!ret) { 1179 ret = futex_handle_fault((unsigned long)uaddr, fshared, attempt++);
1130 newval = (uval & FUTEX_OWNER_DIED) | newtid;
1131 1180
1132 curval = cmpxchg_futex_value_locked(uaddr, uval, newval); 1181 spin_lock(q->lock_ptr);
1133 1182
1134 if (curval == -EFAULT) 1183 /*
1135 ret = -EFAULT; 1184 * Check if someone else fixed it for us:
1136 if (curval == uval) 1185 */
1137 break; 1186 if (pi_state->owner != oldowner)
1138 uval = curval; 1187 return 0;
1139 } 1188
1140 return ret; 1189 if (ret)
1190 return ret;
1191
1192 goto retry;
1141} 1193}
1142 1194
1143/* 1195/*
@@ -1507,7 +1559,7 @@ static int futex_lock_pi(u32 __user *uaddr, struct rw_semaphore *fshared,
1507 * that case: 1559 * that case:
1508 */ 1560 */
1509 if (q.pi_state->owner != curr) 1561 if (q.pi_state->owner != curr)
1510 ret = fixup_pi_state_owner(uaddr, &q, curr); 1562 ret = fixup_pi_state_owner(uaddr, &q, curr, fshared);
1511 } else { 1563 } else {
1512 /* 1564 /*
1513 * Catch the rare case, where the lock was released 1565 * Catch the rare case, where the lock was released
@@ -1539,7 +1591,8 @@ static int futex_lock_pi(u32 __user *uaddr, struct rw_semaphore *fshared,
1539 int res; 1591 int res;
1540 1592
1541 owner = rt_mutex_owner(&q.pi_state->pi_mutex); 1593 owner = rt_mutex_owner(&q.pi_state->pi_mutex);
1542 res = fixup_pi_state_owner(uaddr, &q, owner); 1594 res = fixup_pi_state_owner(uaddr, &q, owner,
1595 fshared);
1543 1596
1544 /* propagate -EFAULT, if the fixup failed */ 1597 /* propagate -EFAULT, if the fixup failed */
1545 if (res) 1598 if (res)
diff --git a/kernel/kgdb.c b/kernel/kgdb.c
index 79e3c90113c2..3ec23c3ec97f 100644
--- a/kernel/kgdb.c
+++ b/kernel/kgdb.c
@@ -1499,7 +1499,8 @@ int kgdb_nmicallback(int cpu, void *regs)
1499 return 1; 1499 return 1;
1500} 1500}
1501 1501
1502void kgdb_console_write(struct console *co, const char *s, unsigned count) 1502static void kgdb_console_write(struct console *co, const char *s,
1503 unsigned count)
1503{ 1504{
1504 unsigned long flags; 1505 unsigned long flags;
1505 1506
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index 1e0250cb9486..d4998f81e229 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -699,8 +699,9 @@ static int __register_kprobes(struct kprobe **kps, int num,
699 return -EINVAL; 699 return -EINVAL;
700 for (i = 0; i < num; i++) { 700 for (i = 0; i < num; i++) {
701 ret = __register_kprobe(kps[i], called_from); 701 ret = __register_kprobe(kps[i], called_from);
702 if (ret < 0 && i > 0) { 702 if (ret < 0) {
703 unregister_kprobes(kps, i); 703 if (i > 0)
704 unregister_kprobes(kps, i);
704 break; 705 break;
705 } 706 }
706 } 707 }
@@ -776,8 +777,9 @@ static int __register_jprobes(struct jprobe **jps, int num,
776 jp->kp.break_handler = longjmp_break_handler; 777 jp->kp.break_handler = longjmp_break_handler;
777 ret = __register_kprobe(&jp->kp, called_from); 778 ret = __register_kprobe(&jp->kp, called_from);
778 } 779 }
779 if (ret < 0 && i > 0) { 780 if (ret < 0) {
780 unregister_jprobes(jps, i); 781 if (i > 0)
782 unregister_jprobes(jps, i);
781 break; 783 break;
782 } 784 }
783 } 785 }
@@ -920,8 +922,9 @@ static int __register_kretprobes(struct kretprobe **rps, int num,
920 return -EINVAL; 922 return -EINVAL;
921 for (i = 0; i < num; i++) { 923 for (i = 0; i < num; i++) {
922 ret = __register_kretprobe(rps[i], called_from); 924 ret = __register_kretprobe(rps[i], called_from);
923 if (ret < 0 && i > 0) { 925 if (ret < 0) {
924 unregister_kretprobes(rps, i); 926 if (i > 0)
927 unregister_kretprobes(rps, i);
925 break; 928 break;
926 } 929 }
927 } 930 }
diff --git a/kernel/rcupreempt.c b/kernel/rcupreempt.c
index e1cdf196a515..5e02b7740702 100644
--- a/kernel/rcupreempt.c
+++ b/kernel/rcupreempt.c
@@ -217,8 +217,6 @@ long rcu_batches_completed(void)
217} 217}
218EXPORT_SYMBOL_GPL(rcu_batches_completed); 218EXPORT_SYMBOL_GPL(rcu_batches_completed);
219 219
220EXPORT_SYMBOL_GPL(rcu_batches_completed_bh);
221
222void __rcu_read_lock(void) 220void __rcu_read_lock(void)
223{ 221{
224 int idx; 222 int idx;
diff --git a/kernel/sched.c b/kernel/sched.c
index bfb8ad8ed171..3aaa5c8cb421 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -312,12 +312,15 @@ static DEFINE_SPINLOCK(task_group_lock);
312#endif 312#endif
313 313
314/* 314/*
315 * A weight of 0, 1 or ULONG_MAX can cause arithmetics problems. 315 * A weight of 0 or 1 can cause arithmetics problems.
316 * A weight of a cfs_rq is the sum of weights of which entities
317 * are queued on this cfs_rq, so a weight of a entity should not be
318 * too large, so as the shares value of a task group.
316 * (The default weight is 1024 - so there's no practical 319 * (The default weight is 1024 - so there's no practical
317 * limitation from this.) 320 * limitation from this.)
318 */ 321 */
319#define MIN_SHARES 2 322#define MIN_SHARES 2
320#define MAX_SHARES (ULONG_MAX - 1) 323#define MAX_SHARES (1UL << 18)
321 324
322static int init_task_group_load = INIT_TASK_GROUP_LOAD; 325static int init_task_group_load = INIT_TASK_GROUP_LOAD;
323#endif 326#endif
@@ -1124,6 +1127,7 @@ static enum hrtimer_restart hrtick(struct hrtimer *timer)
1124 return HRTIMER_NORESTART; 1127 return HRTIMER_NORESTART;
1125} 1128}
1126 1129
1130#ifdef CONFIG_SMP
1127static void hotplug_hrtick_disable(int cpu) 1131static void hotplug_hrtick_disable(int cpu)
1128{ 1132{
1129 struct rq *rq = cpu_rq(cpu); 1133 struct rq *rq = cpu_rq(cpu);
@@ -1179,6 +1183,7 @@ static void init_hrtick(void)
1179{ 1183{
1180 hotcpu_notifier(hotplug_hrtick, 0); 1184 hotcpu_notifier(hotplug_hrtick, 0);
1181} 1185}
1186#endif /* CONFIG_SMP */
1182 1187
1183static void init_rq_hrtick(struct rq *rq) 1188static void init_rq_hrtick(struct rq *rq)
1184{ 1189{
@@ -1337,8 +1342,13 @@ calc_delta_mine(unsigned long delta_exec, unsigned long weight,
1337{ 1342{
1338 u64 tmp; 1343 u64 tmp;
1339 1344
1340 if (!lw->inv_weight) 1345 if (!lw->inv_weight) {
1341 lw->inv_weight = 1 + (WMULT_CONST-lw->weight/2)/(lw->weight+1); 1346 if (BITS_PER_LONG > 32 && unlikely(lw->weight >= WMULT_CONST))
1347 lw->inv_weight = 1;
1348 else
1349 lw->inv_weight = 1 + (WMULT_CONST-lw->weight/2)
1350 / (lw->weight+1);
1351 }
1342 1352
1343 tmp = (u64)delta_exec * weight; 1353 tmp = (u64)delta_exec * weight;
1344 /* 1354 /*
@@ -4159,12 +4169,10 @@ need_resched_nonpreemptible:
4159 clear_tsk_need_resched(prev); 4169 clear_tsk_need_resched(prev);
4160 4170
4161 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { 4171 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
4162 if (unlikely((prev->state & TASK_INTERRUPTIBLE) && 4172 if (unlikely(signal_pending_state(prev->state, prev)))
4163 signal_pending(prev))) {
4164 prev->state = TASK_RUNNING; 4173 prev->state = TASK_RUNNING;
4165 } else { 4174 else
4166 deactivate_task(rq, prev, 1); 4175 deactivate_task(rq, prev, 1);
4167 }
4168 switch_count = &prev->nvcsw; 4176 switch_count = &prev->nvcsw;
4169 } 4177 }
4170 4178
@@ -4390,22 +4398,20 @@ do_wait_for_common(struct completion *x, long timeout, int state)
4390 signal_pending(current)) || 4398 signal_pending(current)) ||
4391 (state == TASK_KILLABLE && 4399 (state == TASK_KILLABLE &&
4392 fatal_signal_pending(current))) { 4400 fatal_signal_pending(current))) {
4393 __remove_wait_queue(&x->wait, &wait); 4401 timeout = -ERESTARTSYS;
4394 return -ERESTARTSYS; 4402 break;
4395 } 4403 }
4396 __set_current_state(state); 4404 __set_current_state(state);
4397 spin_unlock_irq(&x->wait.lock); 4405 spin_unlock_irq(&x->wait.lock);
4398 timeout = schedule_timeout(timeout); 4406 timeout = schedule_timeout(timeout);
4399 spin_lock_irq(&x->wait.lock); 4407 spin_lock_irq(&x->wait.lock);
4400 if (!timeout) { 4408 } while (!x->done && timeout);
4401 __remove_wait_queue(&x->wait, &wait);
4402 return timeout;
4403 }
4404 } while (!x->done);
4405 __remove_wait_queue(&x->wait, &wait); 4409 __remove_wait_queue(&x->wait, &wait);
4410 if (!x->done)
4411 return timeout;
4406 } 4412 }
4407 x->done--; 4413 x->done--;
4408 return timeout; 4414 return timeout ?: 1;
4409} 4415}
4410 4416
4411static long __sched 4417static long __sched
@@ -6871,7 +6877,12 @@ static int default_relax_domain_level = -1;
6871 6877
6872static int __init setup_relax_domain_level(char *str) 6878static int __init setup_relax_domain_level(char *str)
6873{ 6879{
6874 default_relax_domain_level = simple_strtoul(str, NULL, 0); 6880 unsigned long val;
6881
6882 val = simple_strtoul(str, NULL, 0);
6883 if (val < SD_LV_MAX)
6884 default_relax_domain_level = val;
6885
6875 return 1; 6886 return 1;
6876} 6887}
6877__setup("relax_domain_level=", setup_relax_domain_level); 6888__setup("relax_domain_level=", setup_relax_domain_level);
@@ -7230,6 +7241,18 @@ void __attribute__((weak)) arch_update_cpu_topology(void)
7230} 7241}
7231 7242
7232/* 7243/*
7244 * Free current domain masks.
7245 * Called after all cpus are attached to NULL domain.
7246 */
7247static void free_sched_domains(void)
7248{
7249 ndoms_cur = 0;
7250 if (doms_cur != &fallback_doms)
7251 kfree(doms_cur);
7252 doms_cur = &fallback_doms;
7253}
7254
7255/*
7233 * Set up scheduler domains and groups. Callers must hold the hotplug lock. 7256 * Set up scheduler domains and groups. Callers must hold the hotplug lock.
7234 * For now this just excludes isolated cpus, but could be used to 7257 * For now this just excludes isolated cpus, but could be used to
7235 * exclude other special cases in the future. 7258 * exclude other special cases in the future.
@@ -7376,6 +7399,7 @@ int arch_reinit_sched_domains(void)
7376 get_online_cpus(); 7399 get_online_cpus();
7377 mutex_lock(&sched_domains_mutex); 7400 mutex_lock(&sched_domains_mutex);
7378 detach_destroy_domains(&cpu_online_map); 7401 detach_destroy_domains(&cpu_online_map);
7402 free_sched_domains();
7379 err = arch_init_sched_domains(&cpu_online_map); 7403 err = arch_init_sched_domains(&cpu_online_map);
7380 mutex_unlock(&sched_domains_mutex); 7404 mutex_unlock(&sched_domains_mutex);
7381 put_online_cpus(); 7405 put_online_cpus();
@@ -7461,6 +7485,7 @@ static int update_sched_domains(struct notifier_block *nfb,
7461 case CPU_DOWN_PREPARE: 7485 case CPU_DOWN_PREPARE:
7462 case CPU_DOWN_PREPARE_FROZEN: 7486 case CPU_DOWN_PREPARE_FROZEN:
7463 detach_destroy_domains(&cpu_online_map); 7487 detach_destroy_domains(&cpu_online_map);
7488 free_sched_domains();
7464 return NOTIFY_OK; 7489 return NOTIFY_OK;
7465 7490
7466 case CPU_UP_CANCELED: 7491 case CPU_UP_CANCELED:
@@ -7479,8 +7504,16 @@ static int update_sched_domains(struct notifier_block *nfb,
7479 return NOTIFY_DONE; 7504 return NOTIFY_DONE;
7480 } 7505 }
7481 7506
7507#ifndef CONFIG_CPUSETS
7508 /*
7509 * Create default domain partitioning if cpusets are disabled.
7510 * Otherwise we let cpusets rebuild the domains based on the
7511 * current setup.
7512 */
7513
7482 /* The hotplug lock is already held by cpu_up/cpu_down */ 7514 /* The hotplug lock is already held by cpu_up/cpu_down */
7483 arch_init_sched_domains(&cpu_online_map); 7515 arch_init_sched_domains(&cpu_online_map);
7516#endif
7484 7517
7485 return NOTIFY_OK; 7518 return NOTIFY_OK;
7486} 7519}
@@ -7620,7 +7653,6 @@ static void init_tg_rt_entry(struct task_group *tg, struct rt_rq *rt_rq,
7620 else 7653 else
7621 rt_se->rt_rq = parent->my_q; 7654 rt_se->rt_rq = parent->my_q;
7622 7655
7623 rt_se->rt_rq = &rq->rt;
7624 rt_se->my_q = rt_rq; 7656 rt_se->my_q = rt_rq;
7625 rt_se->parent = parent; 7657 rt_se->parent = parent;
7626 INIT_LIST_HEAD(&rt_se->run_list); 7658 INIT_LIST_HEAD(&rt_se->run_list);
@@ -8342,7 +8374,7 @@ static unsigned long to_ratio(u64 period, u64 runtime)
8342#ifdef CONFIG_CGROUP_SCHED 8374#ifdef CONFIG_CGROUP_SCHED
8343static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) 8375static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime)
8344{ 8376{
8345 struct task_group *tgi, *parent = tg->parent; 8377 struct task_group *tgi, *parent = tg ? tg->parent : NULL;
8346 unsigned long total = 0; 8378 unsigned long total = 0;
8347 8379
8348 if (!parent) { 8380 if (!parent) {
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index 3432d573205d..0f3c19197fa4 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -250,7 +250,8 @@ static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun)
250 if (rt_rq->rt_time || rt_rq->rt_nr_running) 250 if (rt_rq->rt_time || rt_rq->rt_nr_running)
251 idle = 0; 251 idle = 0;
252 spin_unlock(&rt_rq->rt_runtime_lock); 252 spin_unlock(&rt_rq->rt_runtime_lock);
253 } 253 } else if (rt_rq->rt_nr_running)
254 idle = 0;
254 255
255 if (enqueue) 256 if (enqueue)
256 sched_rt_rq_enqueue(rt_rq); 257 sched_rt_rq_enqueue(rt_rq);
@@ -449,13 +450,19 @@ void dec_rt_tasks(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
449#endif 450#endif
450} 451}
451 452
452static void enqueue_rt_entity(struct sched_rt_entity *rt_se) 453static void __enqueue_rt_entity(struct sched_rt_entity *rt_se)
453{ 454{
454 struct rt_rq *rt_rq = rt_rq_of_se(rt_se); 455 struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
455 struct rt_prio_array *array = &rt_rq->active; 456 struct rt_prio_array *array = &rt_rq->active;
456 struct rt_rq *group_rq = group_rt_rq(rt_se); 457 struct rt_rq *group_rq = group_rt_rq(rt_se);
457 458
458 if (group_rq && rt_rq_throttled(group_rq)) 459 /*
460 * Don't enqueue the group if its throttled, or when empty.
461 * The latter is a consequence of the former when a child group
462 * get throttled and the current group doesn't have any other
463 * active members.
464 */
465 if (group_rq && (rt_rq_throttled(group_rq) || !group_rq->rt_nr_running))
459 return; 466 return;
460 467
461 list_add_tail(&rt_se->run_list, array->queue + rt_se_prio(rt_se)); 468 list_add_tail(&rt_se->run_list, array->queue + rt_se_prio(rt_se));
@@ -464,7 +471,7 @@ static void enqueue_rt_entity(struct sched_rt_entity *rt_se)
464 inc_rt_tasks(rt_se, rt_rq); 471 inc_rt_tasks(rt_se, rt_rq);
465} 472}
466 473
467static void dequeue_rt_entity(struct sched_rt_entity *rt_se) 474static void __dequeue_rt_entity(struct sched_rt_entity *rt_se)
468{ 475{
469 struct rt_rq *rt_rq = rt_rq_of_se(rt_se); 476 struct rt_rq *rt_rq = rt_rq_of_se(rt_se);
470 struct rt_prio_array *array = &rt_rq->active; 477 struct rt_prio_array *array = &rt_rq->active;
@@ -480,11 +487,10 @@ static void dequeue_rt_entity(struct sched_rt_entity *rt_se)
480 * Because the prio of an upper entry depends on the lower 487 * Because the prio of an upper entry depends on the lower
481 * entries, we must remove entries top - down. 488 * entries, we must remove entries top - down.
482 */ 489 */
483static void dequeue_rt_stack(struct task_struct *p) 490static void dequeue_rt_stack(struct sched_rt_entity *rt_se)
484{ 491{
485 struct sched_rt_entity *rt_se, *back = NULL; 492 struct sched_rt_entity *back = NULL;
486 493
487 rt_se = &p->rt;
488 for_each_sched_rt_entity(rt_se) { 494 for_each_sched_rt_entity(rt_se) {
489 rt_se->back = back; 495 rt_se->back = back;
490 back = rt_se; 496 back = rt_se;
@@ -492,7 +498,26 @@ static void dequeue_rt_stack(struct task_struct *p)
492 498
493 for (rt_se = back; rt_se; rt_se = rt_se->back) { 499 for (rt_se = back; rt_se; rt_se = rt_se->back) {
494 if (on_rt_rq(rt_se)) 500 if (on_rt_rq(rt_se))
495 dequeue_rt_entity(rt_se); 501 __dequeue_rt_entity(rt_se);
502 }
503}
504
505static void enqueue_rt_entity(struct sched_rt_entity *rt_se)
506{
507 dequeue_rt_stack(rt_se);
508 for_each_sched_rt_entity(rt_se)
509 __enqueue_rt_entity(rt_se);
510}
511
512static void dequeue_rt_entity(struct sched_rt_entity *rt_se)
513{
514 dequeue_rt_stack(rt_se);
515
516 for_each_sched_rt_entity(rt_se) {
517 struct rt_rq *rt_rq = group_rt_rq(rt_se);
518
519 if (rt_rq && rt_rq->rt_nr_running)
520 __enqueue_rt_entity(rt_se);
496 } 521 }
497} 522}
498 523
@@ -506,32 +531,15 @@ static void enqueue_task_rt(struct rq *rq, struct task_struct *p, int wakeup)
506 if (wakeup) 531 if (wakeup)
507 rt_se->timeout = 0; 532 rt_se->timeout = 0;
508 533
509 dequeue_rt_stack(p); 534 enqueue_rt_entity(rt_se);
510
511 /*
512 * enqueue everybody, bottom - up.
513 */
514 for_each_sched_rt_entity(rt_se)
515 enqueue_rt_entity(rt_se);
516} 535}
517 536
518static void dequeue_task_rt(struct rq *rq, struct task_struct *p, int sleep) 537static void dequeue_task_rt(struct rq *rq, struct task_struct *p, int sleep)
519{ 538{
520 struct sched_rt_entity *rt_se = &p->rt; 539 struct sched_rt_entity *rt_se = &p->rt;
521 struct rt_rq *rt_rq;
522 540
523 update_curr_rt(rq); 541 update_curr_rt(rq);
524 542 dequeue_rt_entity(rt_se);
525 dequeue_rt_stack(p);
526
527 /*
528 * re-enqueue all non-empty rt_rq entities.
529 */
530 for_each_sched_rt_entity(rt_se) {
531 rt_rq = group_rt_rq(rt_se);
532 if (rt_rq && rt_rq->rt_nr_running)
533 enqueue_rt_entity(rt_se);
534 }
535} 543}
536 544
537/* 545/*
@@ -542,8 +550,10 @@ static
542void requeue_rt_entity(struct rt_rq *rt_rq, struct sched_rt_entity *rt_se) 550void requeue_rt_entity(struct rt_rq *rt_rq, struct sched_rt_entity *rt_se)
543{ 551{
544 struct rt_prio_array *array = &rt_rq->active; 552 struct rt_prio_array *array = &rt_rq->active;
553 struct list_head *queue = array->queue + rt_se_prio(rt_se);
545 554
546 list_move_tail(&rt_se->run_list, array->queue + rt_se_prio(rt_se)); 555 if (on_rt_rq(rt_se))
556 list_move_tail(&rt_se->run_list, queue);
547} 557}
548 558
549static void requeue_task_rt(struct rq *rq, struct task_struct *p) 559static void requeue_task_rt(struct rq *rq, struct task_struct *p)
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h
index a38878e0e49d..80179ef7450e 100644
--- a/kernel/sched_stats.h
+++ b/kernel/sched_stats.h
@@ -198,6 +198,9 @@ static inline void sched_info_queued(struct task_struct *t)
198/* 198/*
199 * Called when a process ceases being the active-running process, either 199 * Called when a process ceases being the active-running process, either
200 * voluntarily or involuntarily. Now we can calculate how long we ran. 200 * voluntarily or involuntarily. Now we can calculate how long we ran.
201 * Also, if the process is still in the TASK_RUNNING state, call
202 * sched_info_queued() to mark that it has now again started waiting on
203 * the runqueue.
201 */ 204 */
202static inline void sched_info_depart(struct task_struct *t) 205static inline void sched_info_depart(struct task_struct *t)
203{ 206{
@@ -206,6 +209,9 @@ static inline void sched_info_depart(struct task_struct *t)
206 209
207 t->sched_info.cpu_time += delta; 210 t->sched_info.cpu_time += delta;
208 rq_sched_info_depart(task_rq(t), delta); 211 rq_sched_info_depart(task_rq(t), delta);
212
213 if (t->state == TASK_RUNNING)
214 sched_info_queued(t);
209} 215}
210 216
211/* 217/*
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index 01b6522fd92b..c828c2339cc9 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -49,12 +49,17 @@ static unsigned long get_timestamp(int this_cpu)
49 return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */ 49 return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */
50} 50}
51 51
52void touch_softlockup_watchdog(void) 52static void __touch_softlockup_watchdog(void)
53{ 53{
54 int this_cpu = raw_smp_processor_id(); 54 int this_cpu = raw_smp_processor_id();
55 55
56 __raw_get_cpu_var(touch_timestamp) = get_timestamp(this_cpu); 56 __raw_get_cpu_var(touch_timestamp) = get_timestamp(this_cpu);
57} 57}
58
59void touch_softlockup_watchdog(void)
60{
61 __raw_get_cpu_var(touch_timestamp) = 0;
62}
58EXPORT_SYMBOL(touch_softlockup_watchdog); 63EXPORT_SYMBOL(touch_softlockup_watchdog);
59 64
60void touch_all_softlockup_watchdogs(void) 65void touch_all_softlockup_watchdogs(void)
@@ -80,7 +85,7 @@ void softlockup_tick(void)
80 unsigned long now; 85 unsigned long now;
81 86
82 if (touch_timestamp == 0) { 87 if (touch_timestamp == 0) {
83 touch_softlockup_watchdog(); 88 __touch_softlockup_watchdog();
84 return; 89 return;
85 } 90 }
86 91
@@ -95,7 +100,7 @@ void softlockup_tick(void)
95 100
96 /* do not print during early bootup: */ 101 /* do not print during early bootup: */
97 if (unlikely(system_state != SYSTEM_RUNNING)) { 102 if (unlikely(system_state != SYSTEM_RUNNING)) {
98 touch_softlockup_watchdog(); 103 __touch_softlockup_watchdog();
99 return; 104 return;
100 } 105 }
101 106
@@ -214,7 +219,7 @@ static int watchdog(void *__bind_cpu)
214 sched_setscheduler(current, SCHED_FIFO, &param); 219 sched_setscheduler(current, SCHED_FIFO, &param);
215 220
216 /* initialize timestamp */ 221 /* initialize timestamp */
217 touch_softlockup_watchdog(); 222 __touch_softlockup_watchdog();
218 223
219 set_current_state(TASK_INTERRUPTIBLE); 224 set_current_state(TASK_INTERRUPTIBLE);
220 /* 225 /*
@@ -223,7 +228,7 @@ static int watchdog(void *__bind_cpu)
223 * debug-printout triggers in softlockup_tick(). 228 * debug-printout triggers in softlockup_tick().
224 */ 229 */
225 while (!kthread_should_stop()) { 230 while (!kthread_should_stop()) {
226 touch_softlockup_watchdog(); 231 __touch_softlockup_watchdog();
227 schedule(); 232 schedule();
228 233
229 if (kthread_should_stop()) 234 if (kthread_should_stop())
diff --git a/lib/div64.c b/lib/div64.c
index bb5bd0c0f030..a111eb8de9cf 100644
--- a/lib/div64.c
+++ b/lib/div64.c
@@ -98,3 +98,13 @@ EXPORT_SYMBOL(div64_u64);
98#endif 98#endif
99 99
100#endif /* BITS_PER_LONG == 32 */ 100#endif /* BITS_PER_LONG == 32 */
101
102/*
103 * Iterative div/mod for use when dividend is not expected to be much
104 * bigger than divisor.
105 */
106u32 iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
107{
108 return __iter_div_u64_rem(dividend, divisor, remainder);
109}
110EXPORT_SYMBOL(iter_div_u64_rem);
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
index bd521716ab1a..169a2f8dabcc 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -88,6 +88,57 @@ static inline gfp_t root_gfp_mask(struct radix_tree_root *root)
88 return root->gfp_mask & __GFP_BITS_MASK; 88 return root->gfp_mask & __GFP_BITS_MASK;
89} 89}
90 90
91static inline void tag_set(struct radix_tree_node *node, unsigned int tag,
92 int offset)
93{
94 __set_bit(offset, node->tags[tag]);
95}
96
97static inline void tag_clear(struct radix_tree_node *node, unsigned int tag,
98 int offset)
99{
100 __clear_bit(offset, node->tags[tag]);
101}
102
103static inline int tag_get(struct radix_tree_node *node, unsigned int tag,
104 int offset)
105{
106 return test_bit(offset, node->tags[tag]);
107}
108
109static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag)
110{
111 root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT));
112}
113
114static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag)
115{
116 root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT));
117}
118
119static inline void root_tag_clear_all(struct radix_tree_root *root)
120{
121 root->gfp_mask &= __GFP_BITS_MASK;
122}
123
124static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag)
125{
126 return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT));
127}
128
129/*
130 * Returns 1 if any slot in the node has this tag set.
131 * Otherwise returns 0.
132 */
133static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag)
134{
135 int idx;
136 for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) {
137 if (node->tags[tag][idx])
138 return 1;
139 }
140 return 0;
141}
91/* 142/*
92 * This assumes that the caller has performed appropriate preallocation, and 143 * This assumes that the caller has performed appropriate preallocation, and
93 * that the caller has pinned this thread of control to the current CPU. 144 * that the caller has pinned this thread of control to the current CPU.
@@ -124,6 +175,17 @@ static void radix_tree_node_rcu_free(struct rcu_head *head)
124{ 175{
125 struct radix_tree_node *node = 176 struct radix_tree_node *node =
126 container_of(head, struct radix_tree_node, rcu_head); 177 container_of(head, struct radix_tree_node, rcu_head);
178
179 /*
180 * must only free zeroed nodes into the slab. radix_tree_shrink
181 * can leave us with a non-NULL entry in the first slot, so clear
182 * that here to make sure.
183 */
184 tag_clear(node, 0, 0);
185 tag_clear(node, 1, 0);
186 node->slots[0] = NULL;
187 node->count = 0;
188
127 kmem_cache_free(radix_tree_node_cachep, node); 189 kmem_cache_free(radix_tree_node_cachep, node);
128} 190}
129 191
@@ -165,59 +227,6 @@ out:
165} 227}
166EXPORT_SYMBOL(radix_tree_preload); 228EXPORT_SYMBOL(radix_tree_preload);
167 229
168static inline void tag_set(struct radix_tree_node *node, unsigned int tag,
169 int offset)
170{
171 __set_bit(offset, node->tags[tag]);
172}
173
174static inline void tag_clear(struct radix_tree_node *node, unsigned int tag,
175 int offset)
176{
177 __clear_bit(offset, node->tags[tag]);
178}
179
180static inline int tag_get(struct radix_tree_node *node, unsigned int tag,
181 int offset)
182{
183 return test_bit(offset, node->tags[tag]);
184}
185
186static inline void root_tag_set(struct radix_tree_root *root, unsigned int tag)
187{
188 root->gfp_mask |= (__force gfp_t)(1 << (tag + __GFP_BITS_SHIFT));
189}
190
191
192static inline void root_tag_clear(struct radix_tree_root *root, unsigned int tag)
193{
194 root->gfp_mask &= (__force gfp_t)~(1 << (tag + __GFP_BITS_SHIFT));
195}
196
197static inline void root_tag_clear_all(struct radix_tree_root *root)
198{
199 root->gfp_mask &= __GFP_BITS_MASK;
200}
201
202static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag)
203{
204 return (__force unsigned)root->gfp_mask & (1 << (tag + __GFP_BITS_SHIFT));
205}
206
207/*
208 * Returns 1 if any slot in the node has this tag set.
209 * Otherwise returns 0.
210 */
211static inline int any_tag_set(struct radix_tree_node *node, unsigned int tag)
212{
213 int idx;
214 for (idx = 0; idx < RADIX_TREE_TAG_LONGS; idx++) {
215 if (node->tags[tag][idx])
216 return 1;
217 }
218 return 0;
219}
220
221/* 230/*
222 * Return the maximum key which can be store into a 231 * Return the maximum key which can be store into a
223 * radix tree with height HEIGHT. 232 * radix tree with height HEIGHT.
@@ -930,11 +939,6 @@ static inline void radix_tree_shrink(struct radix_tree_root *root)
930 newptr = radix_tree_ptr_to_indirect(newptr); 939 newptr = radix_tree_ptr_to_indirect(newptr);
931 root->rnode = newptr; 940 root->rnode = newptr;
932 root->height--; 941 root->height--;
933 /* must only free zeroed nodes into the slab */
934 tag_clear(to_free, 0, 0);
935 tag_clear(to_free, 1, 0);
936 to_free->slots[0] = NULL;
937 to_free->count = 0;
938 radix_tree_node_free(to_free); 942 radix_tree_node_free(to_free);
939 } 943 }
940} 944}
diff --git a/mm/bootmem.c b/mm/bootmem.c
index e8fb927392b9..8d9f60e06f62 100644
--- a/mm/bootmem.c
+++ b/mm/bootmem.c
@@ -442,15 +442,17 @@ unsigned long __init init_bootmem_node(pg_data_t *pgdat, unsigned long freepfn,
442 return init_bootmem_core(pgdat, freepfn, startpfn, endpfn); 442 return init_bootmem_core(pgdat, freepfn, startpfn, endpfn);
443} 443}
444 444
445void __init reserve_bootmem_node(pg_data_t *pgdat, unsigned long physaddr, 445int __init reserve_bootmem_node(pg_data_t *pgdat, unsigned long physaddr,
446 unsigned long size, int flags) 446 unsigned long size, int flags)
447{ 447{
448 int ret; 448 int ret;
449 449
450 ret = can_reserve_bootmem_core(pgdat->bdata, physaddr, size, flags); 450 ret = can_reserve_bootmem_core(pgdat->bdata, physaddr, size, flags);
451 if (ret < 0) 451 if (ret < 0)
452 return; 452 return -ENOMEM;
453 reserve_bootmem_core(pgdat->bdata, physaddr, size, flags); 453 reserve_bootmem_core(pgdat->bdata, physaddr, size, flags);
454
455 return 0;
454} 456}
455 457
456void __init free_bootmem_node(pg_data_t *pgdat, unsigned long physaddr, 458void __init free_bootmem_node(pg_data_t *pgdat, unsigned long physaddr,
diff --git a/mm/memory.c b/mm/memory.c
index 19e0ae9beecb..d14b251a25a6 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -999,17 +999,15 @@ struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
999 goto no_page_table; 999 goto no_page_table;
1000 1000
1001 ptep = pte_offset_map_lock(mm, pmd, address, &ptl); 1001 ptep = pte_offset_map_lock(mm, pmd, address, &ptl);
1002 if (!ptep)
1003 goto out;
1004 1002
1005 pte = *ptep; 1003 pte = *ptep;
1006 if (!pte_present(pte)) 1004 if (!pte_present(pte))
1007 goto unlock; 1005 goto no_page;
1008 if ((flags & FOLL_WRITE) && !pte_write(pte)) 1006 if ((flags & FOLL_WRITE) && !pte_write(pte))
1009 goto unlock; 1007 goto unlock;
1010 page = vm_normal_page(vma, address, pte); 1008 page = vm_normal_page(vma, address, pte);
1011 if (unlikely(!page)) 1009 if (unlikely(!page))
1012 goto unlock; 1010 goto bad_page;
1013 1011
1014 if (flags & FOLL_GET) 1012 if (flags & FOLL_GET)
1015 get_page(page); 1013 get_page(page);
@@ -1024,6 +1022,15 @@ unlock:
1024out: 1022out:
1025 return page; 1023 return page;
1026 1024
1025bad_page:
1026 pte_unmap_unlock(ptep, ptl);
1027 return ERR_PTR(-EFAULT);
1028
1029no_page:
1030 pte_unmap_unlock(ptep, ptl);
1031 if (!pte_none(pte))
1032 return page;
1033 /* Fall through to ZERO_PAGE handling */
1027no_page_table: 1034no_page_table:
1028 /* 1035 /*
1029 * When core dumping an enormous anonymous area that nobody 1036 * When core dumping an enormous anonymous area that nobody
@@ -1038,6 +1045,26 @@ no_page_table:
1038 return page; 1045 return page;
1039} 1046}
1040 1047
1048/* Can we do the FOLL_ANON optimization? */
1049static inline int use_zero_page(struct vm_area_struct *vma)
1050{
1051 /*
1052 * We don't want to optimize FOLL_ANON for make_pages_present()
1053 * when it tries to page in a VM_LOCKED region. As to VM_SHARED,
1054 * we want to get the page from the page tables to make sure
1055 * that we serialize and update with any other user of that
1056 * mapping.
1057 */
1058 if (vma->vm_flags & (VM_LOCKED | VM_SHARED))
1059 return 0;
1060 /*
1061 * And if we have a fault or a nopfn routine, it's not an
1062 * anonymous region.
1063 */
1064 return !vma->vm_ops ||
1065 (!vma->vm_ops->fault && !vma->vm_ops->nopfn);
1066}
1067
1041int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, 1068int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
1042 unsigned long start, int len, int write, int force, 1069 unsigned long start, int len, int write, int force,
1043 struct page **pages, struct vm_area_struct **vmas) 1070 struct page **pages, struct vm_area_struct **vmas)
@@ -1112,8 +1139,7 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
1112 foll_flags = FOLL_TOUCH; 1139 foll_flags = FOLL_TOUCH;
1113 if (pages) 1140 if (pages)
1114 foll_flags |= FOLL_GET; 1141 foll_flags |= FOLL_GET;
1115 if (!write && !(vma->vm_flags & VM_LOCKED) && 1142 if (!write && use_zero_page(vma))
1116 (!vma->vm_ops || !vma->vm_ops->fault))
1117 foll_flags |= FOLL_ANON; 1143 foll_flags |= FOLL_ANON;
1118 1144
1119 do { 1145 do {
@@ -1159,6 +1185,8 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
1159 1185
1160 cond_resched(); 1186 cond_resched();
1161 } 1187 }
1188 if (IS_ERR(page))
1189 return i ? i : PTR_ERR(page);
1162 if (pages) { 1190 if (pages) {
1163 pages[i] = page; 1191 pages[i] = page;
1164 1192
@@ -1757,7 +1785,6 @@ gotten:
1757 page_table = pte_offset_map_lock(mm, pmd, address, &ptl); 1785 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
1758 if (likely(pte_same(*page_table, orig_pte))) { 1786 if (likely(pte_same(*page_table, orig_pte))) {
1759 if (old_page) { 1787 if (old_page) {
1760 page_remove_rmap(old_page, vma);
1761 if (!PageAnon(old_page)) { 1788 if (!PageAnon(old_page)) {
1762 dec_mm_counter(mm, file_rss); 1789 dec_mm_counter(mm, file_rss);
1763 inc_mm_counter(mm, anon_rss); 1790 inc_mm_counter(mm, anon_rss);
@@ -1779,6 +1806,32 @@ gotten:
1779 lru_cache_add_active(new_page); 1806 lru_cache_add_active(new_page);
1780 page_add_new_anon_rmap(new_page, vma, address); 1807 page_add_new_anon_rmap(new_page, vma, address);
1781 1808
1809 if (old_page) {
1810 /*
1811 * Only after switching the pte to the new page may
1812 * we remove the mapcount here. Otherwise another
1813 * process may come and find the rmap count decremented
1814 * before the pte is switched to the new page, and
1815 * "reuse" the old page writing into it while our pte
1816 * here still points into it and can be read by other
1817 * threads.
1818 *
1819 * The critical issue is to order this
1820 * page_remove_rmap with the ptp_clear_flush above.
1821 * Those stores are ordered by (if nothing else,)
1822 * the barrier present in the atomic_add_negative
1823 * in page_remove_rmap.
1824 *
1825 * Then the TLB flush in ptep_clear_flush ensures that
1826 * no process can access the old page before the
1827 * decremented mapcount is visible. And the old page
1828 * cannot be reused until after the decremented
1829 * mapcount is visible. So transitively, TLBs to
1830 * old page will be flushed before it can be reused.
1831 */
1832 page_remove_rmap(old_page, vma);
1833 }
1834
1782 /* Free the old page.. */ 1835 /* Free the old page.. */
1783 new_page = old_page; 1836 new_page = old_page;
1784 ret |= VM_FAULT_WRITE; 1837 ret |= VM_FAULT_WRITE;
diff --git a/mm/migrate.c b/mm/migrate.c
index 449d77d409f5..112bcaeaa104 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -865,6 +865,11 @@ static int do_move_pages(struct mm_struct *mm, struct page_to_node *pm,
865 goto set_status; 865 goto set_status;
866 866
867 page = follow_page(vma, pp->addr, FOLL_GET); 867 page = follow_page(vma, pp->addr, FOLL_GET);
868
869 err = PTR_ERR(page);
870 if (IS_ERR(page))
871 goto set_status;
872
868 err = -ENOENT; 873 err = -ENOENT;
869 if (!page) 874 if (!page)
870 goto set_status; 875 goto set_status;
@@ -928,6 +933,11 @@ static int do_pages_stat(struct mm_struct *mm, struct page_to_node *pm)
928 goto set_status; 933 goto set_status;
929 934
930 page = follow_page(vma, pm->addr, 0); 935 page = follow_page(vma, pm->addr, 0);
936
937 err = PTR_ERR(page);
938 if (IS_ERR(page))
939 goto set_status;
940
931 err = -ENOENT; 941 err = -ENOENT;
932 /* Use PageReserved to check for zero page */ 942 /* Use PageReserved to check for zero page */
933 if (!page || PageReserved(page)) 943 if (!page || PageReserved(page))
diff --git a/mm/nommu.c b/mm/nommu.c
index 3abd0845bda4..4462b6a3fcb9 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -104,21 +104,15 @@ EXPORT_SYMBOL(vmtruncate);
104unsigned int kobjsize(const void *objp) 104unsigned int kobjsize(const void *objp)
105{ 105{
106 struct page *page; 106 struct page *page;
107 int order = 0;
108 107
109 /* 108 /*
110 * If the object we have should not have ksize performed on it, 109 * If the object we have should not have ksize performed on it,
111 * return size of 0 110 * return size of 0
112 */ 111 */
113 if (!objp) 112 if (!objp || !virt_addr_valid(objp))
114 return 0;
115
116 if ((unsigned long)objp >= memory_end)
117 return 0; 113 return 0;
118 114
119 page = virt_to_head_page(objp); 115 page = virt_to_head_page(objp);
120 if (!page)
121 return 0;
122 116
123 /* 117 /*
124 * If the allocator sets PageSlab, we know the pointer came from 118 * If the allocator sets PageSlab, we know the pointer came from
@@ -129,18 +123,9 @@ unsigned int kobjsize(const void *objp)
129 123
130 /* 124 /*
131 * The ksize() function is only guaranteed to work for pointers 125 * The ksize() function is only guaranteed to work for pointers
132 * returned by kmalloc(). So handle arbitrary pointers, that we expect 126 * returned by kmalloc(). So handle arbitrary pointers here.
133 * always to be compound pages, here.
134 */
135 if (PageCompound(page))
136 order = compound_order(page);
137
138 /*
139 * Finally, handle arbitrary pointers that don't set PageSlab.
140 * Default to 0-order in the case when we're unable to ksize()
141 * the object.
142 */ 127 */
143 return PAGE_SIZE << order; 128 return PAGE_SIZE << compound_order(page);
144} 129}
145 130
146/* 131/*
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 8e83f02cd2d3..2f552955a02f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -237,16 +237,7 @@ static void bad_page(struct page *page)
237 printk(KERN_EMERG "Trying to fix it up, but a reboot is needed\n" 237 printk(KERN_EMERG "Trying to fix it up, but a reboot is needed\n"
238 KERN_EMERG "Backtrace:\n"); 238 KERN_EMERG "Backtrace:\n");
239 dump_stack(); 239 dump_stack();
240 page->flags &= ~(1 << PG_lru | 240 page->flags &= ~PAGE_FLAGS_CLEAR_WHEN_BAD;
241 1 << PG_private |
242 1 << PG_locked |
243 1 << PG_active |
244 1 << PG_dirty |
245 1 << PG_reclaim |
246 1 << PG_slab |
247 1 << PG_swapcache |
248 1 << PG_writeback |
249 1 << PG_buddy );
250 set_page_count(page, 0); 241 set_page_count(page, 0);
251 reset_page_mapcount(page); 242 reset_page_mapcount(page);
252 page->mapping = NULL; 243 page->mapping = NULL;
@@ -463,16 +454,7 @@ static inline int free_pages_check(struct page *page)
463 (page->mapping != NULL) | 454 (page->mapping != NULL) |
464 (page_get_page_cgroup(page) != NULL) | 455 (page_get_page_cgroup(page) != NULL) |
465 (page_count(page) != 0) | 456 (page_count(page) != 0) |
466 (page->flags & ( 457 (page->flags & PAGE_FLAGS_CHECK_AT_FREE)))
467 1 << PG_lru |
468 1 << PG_private |
469 1 << PG_locked |
470 1 << PG_active |
471 1 << PG_slab |
472 1 << PG_swapcache |
473 1 << PG_writeback |
474 1 << PG_reserved |
475 1 << PG_buddy ))))
476 bad_page(page); 458 bad_page(page);
477 if (PageDirty(page)) 459 if (PageDirty(page))
478 __ClearPageDirty(page); 460 __ClearPageDirty(page);
@@ -616,17 +598,7 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
616 (page->mapping != NULL) | 598 (page->mapping != NULL) |
617 (page_get_page_cgroup(page) != NULL) | 599 (page_get_page_cgroup(page) != NULL) |
618 (page_count(page) != 0) | 600 (page_count(page) != 0) |
619 (page->flags & ( 601 (page->flags & PAGE_FLAGS_CHECK_AT_PREP)))
620 1 << PG_lru |
621 1 << PG_private |
622 1 << PG_locked |
623 1 << PG_active |
624 1 << PG_dirty |
625 1 << PG_slab |
626 1 << PG_swapcache |
627 1 << PG_writeback |
628 1 << PG_reserved |
629 1 << PG_buddy ))))
630 bad_page(page); 602 bad_page(page);
631 603
632 /* 604 /*
diff --git a/mm/pagewalk.c b/mm/pagewalk.c
index 0afd2387e507..d5878bed7841 100644
--- a/mm/pagewalk.c
+++ b/mm/pagewalk.c
@@ -3,14 +3,14 @@
3#include <linux/sched.h> 3#include <linux/sched.h>
4 4
5static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, 5static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
6 const struct mm_walk *walk, void *private) 6 struct mm_walk *walk)
7{ 7{
8 pte_t *pte; 8 pte_t *pte;
9 int err = 0; 9 int err = 0;
10 10
11 pte = pte_offset_map(pmd, addr); 11 pte = pte_offset_map(pmd, addr);
12 for (;;) { 12 for (;;) {
13 err = walk->pte_entry(pte, addr, addr + PAGE_SIZE, private); 13 err = walk->pte_entry(pte, addr, addr + PAGE_SIZE, walk);
14 if (err) 14 if (err)
15 break; 15 break;
16 addr += PAGE_SIZE; 16 addr += PAGE_SIZE;
@@ -24,7 +24,7 @@ static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
24} 24}
25 25
26static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, 26static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end,
27 const struct mm_walk *walk, void *private) 27 struct mm_walk *walk)
28{ 28{
29 pmd_t *pmd; 29 pmd_t *pmd;
30 unsigned long next; 30 unsigned long next;
@@ -35,15 +35,15 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end,
35 next = pmd_addr_end(addr, end); 35 next = pmd_addr_end(addr, end);
36 if (pmd_none_or_clear_bad(pmd)) { 36 if (pmd_none_or_clear_bad(pmd)) {
37 if (walk->pte_hole) 37 if (walk->pte_hole)
38 err = walk->pte_hole(addr, next, private); 38 err = walk->pte_hole(addr, next, walk);
39 if (err) 39 if (err)
40 break; 40 break;
41 continue; 41 continue;
42 } 42 }
43 if (walk->pmd_entry) 43 if (walk->pmd_entry)
44 err = walk->pmd_entry(pmd, addr, next, private); 44 err = walk->pmd_entry(pmd, addr, next, walk);
45 if (!err && walk->pte_entry) 45 if (!err && walk->pte_entry)
46 err = walk_pte_range(pmd, addr, next, walk, private); 46 err = walk_pte_range(pmd, addr, next, walk);
47 if (err) 47 if (err)
48 break; 48 break;
49 } while (pmd++, addr = next, addr != end); 49 } while (pmd++, addr = next, addr != end);
@@ -52,7 +52,7 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end,
52} 52}
53 53
54static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, 54static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end,
55 const struct mm_walk *walk, void *private) 55 struct mm_walk *walk)
56{ 56{
57 pud_t *pud; 57 pud_t *pud;
58 unsigned long next; 58 unsigned long next;
@@ -63,15 +63,15 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end,
63 next = pud_addr_end(addr, end); 63 next = pud_addr_end(addr, end);
64 if (pud_none_or_clear_bad(pud)) { 64 if (pud_none_or_clear_bad(pud)) {
65 if (walk->pte_hole) 65 if (walk->pte_hole)
66 err = walk->pte_hole(addr, next, private); 66 err = walk->pte_hole(addr, next, walk);
67 if (err) 67 if (err)
68 break; 68 break;
69 continue; 69 continue;
70 } 70 }
71 if (walk->pud_entry) 71 if (walk->pud_entry)
72 err = walk->pud_entry(pud, addr, next, private); 72 err = walk->pud_entry(pud, addr, next, walk);
73 if (!err && (walk->pmd_entry || walk->pte_entry)) 73 if (!err && (walk->pmd_entry || walk->pte_entry))
74 err = walk_pmd_range(pud, addr, next, walk, private); 74 err = walk_pmd_range(pud, addr, next, walk);
75 if (err) 75 if (err)
76 break; 76 break;
77 } while (pud++, addr = next, addr != end); 77 } while (pud++, addr = next, addr != end);
@@ -85,15 +85,15 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end,
85 * @addr: starting address 85 * @addr: starting address
86 * @end: ending address 86 * @end: ending address
87 * @walk: set of callbacks to invoke for each level of the tree 87 * @walk: set of callbacks to invoke for each level of the tree
88 * @private: private data passed to the callback function
89 * 88 *
90 * Recursively walk the page table for the memory area in a VMA, 89 * Recursively walk the page table for the memory area in a VMA,
91 * calling supplied callbacks. Callbacks are called in-order (first 90 * calling supplied callbacks. Callbacks are called in-order (first
92 * PGD, first PUD, first PMD, first PTE, second PTE... second PMD, 91 * PGD, first PUD, first PMD, first PTE, second PTE... second PMD,
93 * etc.). If lower-level callbacks are omitted, walking depth is reduced. 92 * etc.). If lower-level callbacks are omitted, walking depth is reduced.
94 * 93 *
95 * Each callback receives an entry pointer, the start and end of the 94 * Each callback receives an entry pointer and the start and end of the
96 * associated range, and a caller-supplied private data pointer. 95 * associated range, and a copy of the original mm_walk for access to
96 * the ->private or ->mm fields.
97 * 97 *
98 * No locks are taken, but the bottom level iterator will map PTE 98 * No locks are taken, but the bottom level iterator will map PTE
99 * directories from highmem if necessary. 99 * directories from highmem if necessary.
@@ -101,9 +101,8 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end,
101 * If any callback returns a non-zero value, the walk is aborted and 101 * If any callback returns a non-zero value, the walk is aborted and
102 * the return value is propagated back to the caller. Otherwise 0 is returned. 102 * the return value is propagated back to the caller. Otherwise 0 is returned.
103 */ 103 */
104int walk_page_range(const struct mm_struct *mm, 104int walk_page_range(unsigned long addr, unsigned long end,
105 unsigned long addr, unsigned long end, 105 struct mm_walk *walk)
106 const struct mm_walk *walk, void *private)
107{ 106{
108 pgd_t *pgd; 107 pgd_t *pgd;
109 unsigned long next; 108 unsigned long next;
@@ -112,21 +111,24 @@ int walk_page_range(const struct mm_struct *mm,
112 if (addr >= end) 111 if (addr >= end)
113 return err; 112 return err;
114 113
115 pgd = pgd_offset(mm, addr); 114 if (!walk->mm)
115 return -EINVAL;
116
117 pgd = pgd_offset(walk->mm, addr);
116 do { 118 do {
117 next = pgd_addr_end(addr, end); 119 next = pgd_addr_end(addr, end);
118 if (pgd_none_or_clear_bad(pgd)) { 120 if (pgd_none_or_clear_bad(pgd)) {
119 if (walk->pte_hole) 121 if (walk->pte_hole)
120 err = walk->pte_hole(addr, next, private); 122 err = walk->pte_hole(addr, next, walk);
121 if (err) 123 if (err)
122 break; 124 break;
123 continue; 125 continue;
124 } 126 }
125 if (walk->pgd_entry) 127 if (walk->pgd_entry)
126 err = walk->pgd_entry(pgd, addr, next, private); 128 err = walk->pgd_entry(pgd, addr, next, walk);
127 if (!err && 129 if (!err &&
128 (walk->pud_entry || walk->pmd_entry || walk->pte_entry)) 130 (walk->pud_entry || walk->pmd_entry || walk->pte_entry))
129 err = walk_pud_range(pgd, addr, next, walk, private); 131 err = walk_pud_range(pgd, addr, next, walk);
130 if (err) 132 if (err)
131 break; 133 break;
132 } while (pgd++, addr = next, addr != end); 134 } while (pgd++, addr = next, addr != end);
diff --git a/mm/slab.c b/mm/slab.c
index 06236e4ddc1b..046607f05f3e 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3263,9 +3263,12 @@ retry:
3263 3263
3264 if (cpuset_zone_allowed_hardwall(zone, flags) && 3264 if (cpuset_zone_allowed_hardwall(zone, flags) &&
3265 cache->nodelists[nid] && 3265 cache->nodelists[nid] &&
3266 cache->nodelists[nid]->free_objects) 3266 cache->nodelists[nid]->free_objects) {
3267 obj = ____cache_alloc_node(cache, 3267 obj = ____cache_alloc_node(cache,
3268 flags | GFP_THISNODE, nid); 3268 flags | GFP_THISNODE, nid);
3269 if (obj)
3270 break;
3271 }
3269 } 3272 }
3270 3273
3271 if (!obj) { 3274 if (!obj) {
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 9a29901ad3b3..967d30ccd92b 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1307,7 +1307,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
1307 struct scan_control *sc) 1307 struct scan_control *sc)
1308{ 1308{
1309 int priority; 1309 int priority;
1310 int ret = 0; 1310 unsigned long ret = 0;
1311 unsigned long total_scanned = 0; 1311 unsigned long total_scanned = 0;
1312 unsigned long nr_reclaimed = 0; 1312 unsigned long nr_reclaimed = 0;
1313 struct reclaim_state *reclaim_state = current->reclaim_state; 1313 struct reclaim_state *reclaim_state = current->reclaim_state;
diff --git a/net/atm/br2684.c b/net/atm/br2684.c
index 9d52ebfc1962..05fafdc2eea3 100644
--- a/net/atm/br2684.c
+++ b/net/atm/br2684.c
@@ -188,10 +188,13 @@ static int br2684_xmit_vcc(struct sk_buff *skb, struct br2684_dev *brdev,
188 return 0; 188 return 0;
189 } 189 }
190 } 190 }
191 } else { 191 } else { /* e_vc */
192 skb_push(skb, 2); 192 if (brdev->payload == p_bridged) {
193 if (brdev->payload == p_bridged) 193 skb_push(skb, 2);
194 memset(skb->data, 0, 2); 194 memset(skb->data, 0, 2);
195 } else { /* p_routed */
196 skb_pull(skb, ETH_HLEN);
197 }
195 } 198 }
196 skb_debug(skb); 199 skb_debug(skb);
197 200
@@ -377,11 +380,8 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb)
377 (skb->data + 6, ethertype_ipv4, 380 (skb->data + 6, ethertype_ipv4,
378 sizeof(ethertype_ipv4)) == 0) 381 sizeof(ethertype_ipv4)) == 0)
379 skb->protocol = __constant_htons(ETH_P_IP); 382 skb->protocol = __constant_htons(ETH_P_IP);
380 else { 383 else
381 brdev->stats.rx_errors++; 384 goto error;
382 dev_kfree_skb(skb);
383 return;
384 }
385 skb_pull(skb, sizeof(llc_oui_ipv4)); 385 skb_pull(skb, sizeof(llc_oui_ipv4));
386 skb_reset_network_header(skb); 386 skb_reset_network_header(skb);
387 skb->pkt_type = PACKET_HOST; 387 skb->pkt_type = PACKET_HOST;
@@ -394,44 +394,56 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb)
394 (memcmp(skb->data, llc_oui_pid_pad, 7) == 0)) { 394 (memcmp(skb->data, llc_oui_pid_pad, 7) == 0)) {
395 skb_pull(skb, sizeof(llc_oui_pid_pad)); 395 skb_pull(skb, sizeof(llc_oui_pid_pad));
396 skb->protocol = eth_type_trans(skb, net_dev); 396 skb->protocol = eth_type_trans(skb, net_dev);
397 } else { 397 } else
398 brdev->stats.rx_errors++; 398 goto error;
399 dev_kfree_skb(skb);
400 return;
401 }
402 399
403 } else { 400 } else { /* e_vc */
404 /* first 2 chars should be 0 */ 401 if (brdev->payload == p_routed) {
405 if (*((u16 *) (skb->data)) != 0) { 402 struct iphdr *iph;
406 brdev->stats.rx_errors++; 403
407 dev_kfree_skb(skb); 404 skb_reset_network_header(skb);
408 return; 405 iph = ip_hdr(skb);
406 if (iph->version == 4)
407 skb->protocol = __constant_htons(ETH_P_IP);
408 else if (iph->version == 6)
409 skb->protocol = __constant_htons(ETH_P_IPV6);
410 else
411 goto error;
412 skb->pkt_type = PACKET_HOST;
413 } else { /* p_bridged */
414 /* first 2 chars should be 0 */
415 if (*((u16 *) (skb->data)) != 0)
416 goto error;
417 skb_pull(skb, BR2684_PAD_LEN);
418 skb->protocol = eth_type_trans(skb, net_dev);
409 } 419 }
410 skb_pull(skb, BR2684_PAD_LEN + ETH_HLEN); /* pad, dstmac, srcmac, ethtype */
411 skb->protocol = eth_type_trans(skb, net_dev);
412 } 420 }
413 421
414#ifdef CONFIG_ATM_BR2684_IPFILTER 422#ifdef CONFIG_ATM_BR2684_IPFILTER
415 if (unlikely(packet_fails_filter(skb->protocol, brvcc, skb))) { 423 if (unlikely(packet_fails_filter(skb->protocol, brvcc, skb)))
416 brdev->stats.rx_dropped++; 424 goto dropped;
417 dev_kfree_skb(skb);
418 return;
419 }
420#endif /* CONFIG_ATM_BR2684_IPFILTER */ 425#endif /* CONFIG_ATM_BR2684_IPFILTER */
421 skb->dev = net_dev; 426 skb->dev = net_dev;
422 ATM_SKB(skb)->vcc = atmvcc; /* needed ? */ 427 ATM_SKB(skb)->vcc = atmvcc; /* needed ? */
423 pr_debug("received packet's protocol: %x\n", ntohs(skb->protocol)); 428 pr_debug("received packet's protocol: %x\n", ntohs(skb->protocol));
424 skb_debug(skb); 429 skb_debug(skb);
425 if (unlikely(!(net_dev->flags & IFF_UP))) { 430 /* sigh, interface is down? */
426 /* sigh, interface is down */ 431 if (unlikely(!(net_dev->flags & IFF_UP)))
427 brdev->stats.rx_dropped++; 432 goto dropped;
428 dev_kfree_skb(skb);
429 return;
430 }
431 brdev->stats.rx_packets++; 433 brdev->stats.rx_packets++;
432 brdev->stats.rx_bytes += skb->len; 434 brdev->stats.rx_bytes += skb->len;
433 memset(ATM_SKB(skb), 0, sizeof(struct atm_skb_data)); 435 memset(ATM_SKB(skb), 0, sizeof(struct atm_skb_data));
434 netif_rx(skb); 436 netif_rx(skb);
437 return;
438
439dropped:
440 brdev->stats.rx_dropped++;
441 goto free_skb;
442error:
443 brdev->stats.rx_errors++;
444free_skb:
445 dev_kfree_skb(skb);
446 return;
435} 447}
436 448
437/* 449/*
@@ -518,9 +530,9 @@ static int br2684_regvcc(struct atm_vcc *atmvcc, void __user * arg)
518 struct sk_buff *next = skb->next; 530 struct sk_buff *next = skb->next;
519 531
520 skb->next = skb->prev = NULL; 532 skb->next = skb->prev = NULL;
533 br2684_push(atmvcc, skb);
521 BRPRIV(skb->dev)->stats.rx_bytes -= skb->len; 534 BRPRIV(skb->dev)->stats.rx_bytes -= skb->len;
522 BRPRIV(skb->dev)->stats.rx_packets--; 535 BRPRIV(skb->dev)->stats.rx_packets--;
523 br2684_push(atmvcc, skb);
524 536
525 skb = next; 537 skb = next;
526 } 538 }
diff --git a/net/core/dev.c b/net/core/dev.c
index 582963077877..c421a1f8f0b9 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -119,6 +119,7 @@
119#include <linux/err.h> 119#include <linux/err.h>
120#include <linux/ctype.h> 120#include <linux/ctype.h>
121#include <linux/if_arp.h> 121#include <linux/if_arp.h>
122#include <linux/if_vlan.h>
122 123
123#include "net-sysfs.h" 124#include "net-sysfs.h"
124 125
@@ -1362,6 +1363,29 @@ void netif_device_attach(struct net_device *dev)
1362} 1363}
1363EXPORT_SYMBOL(netif_device_attach); 1364EXPORT_SYMBOL(netif_device_attach);
1364 1365
1366static bool can_checksum_protocol(unsigned long features, __be16 protocol)
1367{
1368 return ((features & NETIF_F_GEN_CSUM) ||
1369 ((features & NETIF_F_IP_CSUM) &&
1370 protocol == htons(ETH_P_IP)) ||
1371 ((features & NETIF_F_IPV6_CSUM) &&
1372 protocol == htons(ETH_P_IPV6)));
1373}
1374
1375static bool dev_can_checksum(struct net_device *dev, struct sk_buff *skb)
1376{
1377 if (can_checksum_protocol(dev->features, skb->protocol))
1378 return true;
1379
1380 if (skb->protocol == htons(ETH_P_8021Q)) {
1381 struct vlan_ethhdr *veh = (struct vlan_ethhdr *)skb->data;
1382 if (can_checksum_protocol(dev->features & dev->vlan_features,
1383 veh->h_vlan_encapsulated_proto))
1384 return true;
1385 }
1386
1387 return false;
1388}
1365 1389
1366/* 1390/*
1367 * Invalidate hardware checksum when packet is to be mangled, and 1391 * Invalidate hardware checksum when packet is to be mangled, and
@@ -1640,14 +1664,8 @@ int dev_queue_xmit(struct sk_buff *skb)
1640 if (skb->ip_summed == CHECKSUM_PARTIAL) { 1664 if (skb->ip_summed == CHECKSUM_PARTIAL) {
1641 skb_set_transport_header(skb, skb->csum_start - 1665 skb_set_transport_header(skb, skb->csum_start -
1642 skb_headroom(skb)); 1666 skb_headroom(skb));
1643 1667 if (!dev_can_checksum(dev, skb) && skb_checksum_help(skb))
1644 if (!(dev->features & NETIF_F_GEN_CSUM) && 1668 goto out_kfree_skb;
1645 !((dev->features & NETIF_F_IP_CSUM) &&
1646 skb->protocol == htons(ETH_P_IP)) &&
1647 !((dev->features & NETIF_F_IPV6_CSUM) &&
1648 skb->protocol == htons(ETH_P_IPV6)))
1649 if (skb_checksum_help(skb))
1650 goto out_kfree_skb;
1651 } 1669 }
1652 1670
1653gso: 1671gso:
@@ -2059,6 +2077,10 @@ int netif_receive_skb(struct sk_buff *skb)
2059 2077
2060 rcu_read_lock(); 2078 rcu_read_lock();
2061 2079
2080 /* Don't receive packets in an exiting network namespace */
2081 if (!net_alive(dev_net(skb->dev)))
2082 goto out;
2083
2062#ifdef CONFIG_NET_CLS_ACT 2084#ifdef CONFIG_NET_CLS_ACT
2063 if (skb->tc_verd & TC_NCLS) { 2085 if (skb->tc_verd & TC_NCLS) {
2064 skb->tc_verd = CLR_TC_NCLS(skb->tc_verd); 2086 skb->tc_verd = CLR_TC_NCLS(skb->tc_verd);
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 72b4c184dd84..7c52fe277b62 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -140,6 +140,9 @@ static void cleanup_net(struct work_struct *work)
140 struct pernet_operations *ops; 140 struct pernet_operations *ops;
141 struct net *net; 141 struct net *net;
142 142
143 /* Be very certain incoming network packets will not find us */
144 rcu_barrier();
145
143 net = container_of(work, struct net, work); 146 net = container_of(work, struct net, work);
144 147
145 mutex_lock(&net_mutex); 148 mutex_lock(&net_mutex);
diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c
index 6de4bd195d28..1e8be246ad15 100644
--- a/net/dccp/ackvec.c
+++ b/net/dccp/ackvec.c
@@ -290,12 +290,12 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
290 290
291 while (1) { 291 while (1) {
292 const u8 len = dccp_ackvec_len(av, index); 292 const u8 len = dccp_ackvec_len(av, index);
293 const u8 state = dccp_ackvec_state(av, index); 293 const u8 av_state = dccp_ackvec_state(av, index);
294 /* 294 /*
295 * valid packets not yet in av_buf have a reserved 295 * valid packets not yet in av_buf have a reserved
296 * entry, with a len equal to 0. 296 * entry, with a len equal to 0.
297 */ 297 */
298 if (state == DCCP_ACKVEC_STATE_NOT_RECEIVED && 298 if (av_state == DCCP_ACKVEC_STATE_NOT_RECEIVED &&
299 len == 0 && delta == 0) { /* Found our 299 len == 0 && delta == 0) { /* Found our
300 reserved seat! */ 300 reserved seat! */
301 dccp_pr_debug("Found %llu reserved seat!\n", 301 dccp_pr_debug("Found %llu reserved seat!\n",
@@ -325,31 +325,6 @@ out_duplicate:
325 return -EILSEQ; 325 return -EILSEQ;
326} 326}
327 327
328#ifdef CONFIG_IP_DCCP_DEBUG
329void dccp_ackvector_print(const u64 ackno, const unsigned char *vector, int len)
330{
331 dccp_pr_debug_cat("ACK vector len=%d, ackno=%llu |", len,
332 (unsigned long long)ackno);
333
334 while (len--) {
335 const u8 state = (*vector & DCCP_ACKVEC_STATE_MASK) >> 6;
336 const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK;
337
338 dccp_pr_debug_cat("%d,%d|", state, rl);
339 ++vector;
340 }
341
342 dccp_pr_debug_cat("\n");
343}
344
345void dccp_ackvec_print(const struct dccp_ackvec *av)
346{
347 dccp_ackvector_print(av->av_buf_ackno,
348 av->av_buf + av->av_buf_head,
349 av->av_vec_len);
350}
351#endif
352
353static void dccp_ackvec_throw_record(struct dccp_ackvec *av, 328static void dccp_ackvec_throw_record(struct dccp_ackvec *av,
354 struct dccp_ackvec_record *avr) 329 struct dccp_ackvec_record *avr)
355{ 330{
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index f813077234b7..a1929f33d703 100644
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -159,8 +159,8 @@ static void ccid3_hc_tx_update_x(struct sock *sk, ktime_t *stamp)
159 } else if (ktime_us_delta(now, hctx->ccid3hctx_t_ld) 159 } else if (ktime_us_delta(now, hctx->ccid3hctx_t_ld)
160 - (s64)hctx->ccid3hctx_rtt >= 0) { 160 - (s64)hctx->ccid3hctx_rtt >= 0) {
161 161
162 hctx->ccid3hctx_x = 162 hctx->ccid3hctx_x = min(2 * hctx->ccid3hctx_x, min_rate);
163 max(min(2 * hctx->ccid3hctx_x, min_rate), 163 hctx->ccid3hctx_x = max(hctx->ccid3hctx_x,
164 scaled_div(((__u64)hctx->ccid3hctx_s) << 6, 164 scaled_div(((__u64)hctx->ccid3hctx_s) << 6,
165 hctx->ccid3hctx_rtt)); 165 hctx->ccid3hctx_rtt));
166 hctx->ccid3hctx_t_ld = now; 166 hctx->ccid3hctx_t_ld = now;
@@ -329,8 +329,14 @@ static int ccid3_hc_tx_send_packet(struct sock *sk, struct sk_buff *skb)
329 hctx->ccid3hctx_x = rfc3390_initial_rate(sk); 329 hctx->ccid3hctx_x = rfc3390_initial_rate(sk);
330 hctx->ccid3hctx_t_ld = now; 330 hctx->ccid3hctx_t_ld = now;
331 } else { 331 } else {
332 /* Sender does not have RTT sample: X_pps = 1 pkt/sec */ 332 /*
333 hctx->ccid3hctx_x = hctx->ccid3hctx_s; 333 * Sender does not have RTT sample:
334 * - set fallback RTT (RFC 4340, 3.4) since a RTT value
335 * is needed in several parts (e.g. window counter);
336 * - set sending rate X_pps = 1pps as per RFC 3448, 4.2.
337 */
338 hctx->ccid3hctx_rtt = DCCP_FALLBACK_RTT;
339 hctx->ccid3hctx_x = hctx->ccid3hctx_s;
334 hctx->ccid3hctx_x <<= 6; 340 hctx->ccid3hctx_x <<= 6;
335 } 341 }
336 ccid3_update_send_interval(hctx); 342 ccid3_update_send_interval(hctx);
diff --git a/net/dccp/ccids/lib/tfrc.c b/net/dccp/ccids/lib/tfrc.c
index d1dfbb8de64c..97ecec0a8e76 100644
--- a/net/dccp/ccids/lib/tfrc.c
+++ b/net/dccp/ccids/lib/tfrc.c
@@ -14,14 +14,6 @@ module_param(tfrc_debug, bool, 0444);
14MODULE_PARM_DESC(tfrc_debug, "Enable debug messages"); 14MODULE_PARM_DESC(tfrc_debug, "Enable debug messages");
15#endif 15#endif
16 16
17extern int tfrc_tx_packet_history_init(void);
18extern void tfrc_tx_packet_history_exit(void);
19extern int tfrc_rx_packet_history_init(void);
20extern void tfrc_rx_packet_history_exit(void);
21
22extern int tfrc_li_init(void);
23extern void tfrc_li_exit(void);
24
25static int __init tfrc_module_init(void) 17static int __init tfrc_module_init(void)
26{ 18{
27 int rc = tfrc_li_init(); 19 int rc = tfrc_li_init();
diff --git a/net/dccp/ccids/lib/tfrc.h b/net/dccp/ccids/lib/tfrc.h
index 1fb1187bbf1c..ed9857527acf 100644
--- a/net/dccp/ccids/lib/tfrc.h
+++ b/net/dccp/ccids/lib/tfrc.h
@@ -15,7 +15,7 @@
15 * (at your option) any later version. 15 * (at your option) any later version.
16 */ 16 */
17#include <linux/types.h> 17#include <linux/types.h>
18#include <asm/div64.h> 18#include <linux/math64.h>
19#include "../../dccp.h" 19#include "../../dccp.h"
20/* internal includes that this module exports: */ 20/* internal includes that this module exports: */
21#include "loss_interval.h" 21#include "loss_interval.h"
@@ -29,21 +29,19 @@ extern int tfrc_debug;
29#endif 29#endif
30 30
31/* integer-arithmetic divisions of type (a * 1000000)/b */ 31/* integer-arithmetic divisions of type (a * 1000000)/b */
32static inline u64 scaled_div(u64 a, u32 b) 32static inline u64 scaled_div(u64 a, u64 b)
33{ 33{
34 BUG_ON(b==0); 34 BUG_ON(b==0);
35 a *= 1000000; 35 return div64_u64(a * 1000000, b);
36 do_div(a, b);
37 return a;
38} 36}
39 37
40static inline u32 scaled_div32(u64 a, u32 b) 38static inline u32 scaled_div32(u64 a, u64 b)
41{ 39{
42 u64 result = scaled_div(a, b); 40 u64 result = scaled_div(a, b);
43 41
44 if (result > UINT_MAX) { 42 if (result > UINT_MAX) {
45 DCCP_CRIT("Overflow: a(%llu)/b(%u) > ~0U", 43 DCCP_CRIT("Overflow: %llu/%llu > UINT_MAX",
46 (unsigned long long)a, b); 44 (unsigned long long)a, (unsigned long long)b);
47 return UINT_MAX; 45 return UINT_MAX;
48 } 46 }
49 return result; 47 return result;
@@ -58,7 +56,14 @@ static inline u32 tfrc_ewma(const u32 avg, const u32 newval, const u8 weight)
58 return avg ? (weight * avg + (10 - weight) * newval) / 10 : newval; 56 return avg ? (weight * avg + (10 - weight) * newval) / 10 : newval;
59} 57}
60 58
61extern u32 tfrc_calc_x(u16 s, u32 R, u32 p); 59extern u32 tfrc_calc_x(u16 s, u32 R, u32 p);
62extern u32 tfrc_calc_x_reverse_lookup(u32 fvalue); 60extern u32 tfrc_calc_x_reverse_lookup(u32 fvalue);
63 61
62extern int tfrc_tx_packet_history_init(void);
63extern void tfrc_tx_packet_history_exit(void);
64extern int tfrc_rx_packet_history_init(void);
65extern void tfrc_rx_packet_history_exit(void);
66
67extern int tfrc_li_init(void);
68extern void tfrc_li_exit(void);
64#endif /* _TFRC_H_ */ 69#endif /* _TFRC_H_ */
diff --git a/net/dccp/ccids/lib/tfrc_equation.c b/net/dccp/ccids/lib/tfrc_equation.c
index e4e64b76c10c..2f20a29cffe4 100644
--- a/net/dccp/ccids/lib/tfrc_equation.c
+++ b/net/dccp/ccids/lib/tfrc_equation.c
@@ -661,7 +661,7 @@ u32 tfrc_calc_x(u16 s, u32 R, u32 p)
661 661
662EXPORT_SYMBOL_GPL(tfrc_calc_x); 662EXPORT_SYMBOL_GPL(tfrc_calc_x);
663 663
664/* 664/**
665 * tfrc_calc_x_reverse_lookup - try to find p given f(p) 665 * tfrc_calc_x_reverse_lookup - try to find p given f(p)
666 * 666 *
667 * @fvalue: function value to match, scaled by 1000000 667 * @fvalue: function value to match, scaled by 1000000
@@ -676,11 +676,11 @@ u32 tfrc_calc_x_reverse_lookup(u32 fvalue)
676 676
677 /* Error cases. */ 677 /* Error cases. */
678 if (fvalue < tfrc_calc_x_lookup[0][1]) { 678 if (fvalue < tfrc_calc_x_lookup[0][1]) {
679 DCCP_WARN("fvalue %d smaller than resolution\n", fvalue); 679 DCCP_WARN("fvalue %u smaller than resolution\n", fvalue);
680 return tfrc_calc_x_lookup[0][1]; 680 return TFRC_SMALLEST_P;
681 } 681 }
682 if (fvalue > tfrc_calc_x_lookup[TFRC_CALC_X_ARRSIZE - 1][0]) { 682 if (fvalue > tfrc_calc_x_lookup[TFRC_CALC_X_ARRSIZE - 1][0]) {
683 DCCP_WARN("fvalue %d exceeds bounds!\n", fvalue); 683 DCCP_WARN("fvalue %u exceeds bounds!\n", fvalue);
684 return 1000000; 684 return 1000000;
685 } 685 }
686 686
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c
index c22a3780c14e..37d27bcb361f 100644
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -589,7 +589,7 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
589 if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) 589 if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1)
590 goto drop; 590 goto drop;
591 591
592 req = reqsk_alloc(&dccp_request_sock_ops); 592 req = inet_reqsk_alloc(&dccp_request_sock_ops);
593 if (req == NULL) 593 if (req == NULL)
594 goto drop; 594 goto drop;
595 595
@@ -605,7 +605,6 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
605 ireq = inet_rsk(req); 605 ireq = inet_rsk(req);
606 ireq->loc_addr = ip_hdr(skb)->daddr; 606 ireq->loc_addr = ip_hdr(skb)->daddr;
607 ireq->rmt_addr = ip_hdr(skb)->saddr; 607 ireq->rmt_addr = ip_hdr(skb)->saddr;
608 ireq->opt = NULL;
609 608
610 /* 609 /*
611 * Step 3: Process LISTEN state 610 * Step 3: Process LISTEN state
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index 9b1129bb7ece..f7fe2a572d7b 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -421,7 +421,6 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
421 ireq6 = inet6_rsk(req); 421 ireq6 = inet6_rsk(req);
422 ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr); 422 ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr);
423 ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr); 423 ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr);
424 ireq6->pktopts = NULL;
425 424
426 if (ipv6_opt_accepted(sk, skb) || 425 if (ipv6_opt_accepted(sk, skb) ||
427 np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo || 426 np->rxopt.bits.rxinfo || np->rxopt.bits.rxoinfo ||
diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c
index 33ad48321b08..66dca5bba858 100644
--- a/net/dccp/minisocks.c
+++ b/net/dccp/minisocks.c
@@ -165,12 +165,12 @@ out_free:
165 /* See dccp_v4_conn_request */ 165 /* See dccp_v4_conn_request */
166 newdmsk->dccpms_sequence_window = req->rcv_wnd; 166 newdmsk->dccpms_sequence_window = req->rcv_wnd;
167 167
168 newdp->dccps_gar = newdp->dccps_isr = dreq->dreq_isr; 168 newdp->dccps_gar = newdp->dccps_iss = dreq->dreq_iss;
169 dccp_update_gsr(newsk, dreq->dreq_isr);
170
171 newdp->dccps_iss = dreq->dreq_iss;
172 dccp_update_gss(newsk, dreq->dreq_iss); 169 dccp_update_gss(newsk, dreq->dreq_iss);
173 170
171 newdp->dccps_isr = dreq->dreq_isr;
172 dccp_update_gsr(newsk, dreq->dreq_isr);
173
174 /* 174 /*
175 * SWL and AWL are initially adjusted so that they are not less than 175 * SWL and AWL are initially adjusted so that they are not less than
176 * the initial Sequence Numbers received and sent, respectively: 176 * the initial Sequence Numbers received and sent, respectively:
diff --git a/net/dccp/options.c b/net/dccp/options.c
index d2a84a2fecee..43bc24e761d0 100644
--- a/net/dccp/options.c
+++ b/net/dccp/options.c
@@ -107,9 +107,11 @@ int dccp_parse_options(struct sock *sk, struct dccp_request_sock *dreq,
107 * 107 *
108 * CCID-specific options are ignored during connection setup, as 108 * CCID-specific options are ignored during connection setup, as
109 * negotiation may still be in progress (see RFC 4340, 10.3). 109 * negotiation may still be in progress (see RFC 4340, 10.3).
110 * The same applies to Ack Vectors, as these depend on the CCID.
110 * 111 *
111 */ 112 */
112 if (dreq != NULL && opt >= 128) 113 if (dreq != NULL && (opt >= 128 ||
114 opt == DCCPO_ACK_VECTOR_0 || opt == DCCPO_ACK_VECTOR_1))
113 goto ignore_option; 115 goto ignore_option;
114 116
115 switch (opt) { 117 switch (opt) {
diff --git a/net/dccp/output.c b/net/dccp/output.c
index 1f8a9b64c083..fe20068c5d8e 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -508,6 +508,7 @@ void dccp_send_ack(struct sock *sk)
508 508
509EXPORT_SYMBOL_GPL(dccp_send_ack); 509EXPORT_SYMBOL_GPL(dccp_send_ack);
510 510
511#if 0
511/* FIXME: Is this still necessary (11.3) - currently nowhere used by DCCP. */ 512/* FIXME: Is this still necessary (11.3) - currently nowhere used by DCCP. */
512void dccp_send_delayed_ack(struct sock *sk) 513void dccp_send_delayed_ack(struct sock *sk)
513{ 514{
@@ -538,6 +539,7 @@ void dccp_send_delayed_ack(struct sock *sk)
538 icsk->icsk_ack.timeout = timeout; 539 icsk->icsk_ack.timeout = timeout;
539 sk_reset_timer(sk, &icsk->icsk_delack_timer, timeout); 540 sk_reset_timer(sk, &icsk->icsk_delack_timer, timeout);
540} 541}
542#endif
541 543
542void dccp_send_sync(struct sock *sk, const u64 ackno, 544void dccp_send_sync(struct sock *sk, const u64 ackno,
543 const enum dccp_pkt_type pkt_type) 545 const enum dccp_pkt_type pkt_type)
diff --git a/net/dccp/probe.c b/net/dccp/probe.c
index 0bcdc9250279..81368a7f5379 100644
--- a/net/dccp/probe.c
+++ b/net/dccp/probe.c
@@ -42,7 +42,7 @@ static int bufsize = 64 * 1024;
42 42
43static const char procname[] = "dccpprobe"; 43static const char procname[] = "dccpprobe";
44 44
45struct { 45static struct {
46 struct kfifo *fifo; 46 struct kfifo *fifo;
47 spinlock_t lock; 47 spinlock_t lock;
48 wait_queue_head_t wait; 48 wait_queue_head_t wait;
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 3b83c34019fc..0d4d72827e4b 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -960,7 +960,10 @@ int fib_dump_info(struct sk_buff *skb, u32 pid, u32 seq, int event,
960 rtm->rtm_dst_len = dst_len; 960 rtm->rtm_dst_len = dst_len;
961 rtm->rtm_src_len = 0; 961 rtm->rtm_src_len = 0;
962 rtm->rtm_tos = tos; 962 rtm->rtm_tos = tos;
963 rtm->rtm_table = tb_id; 963 if (tb_id < 256)
964 rtm->rtm_table = tb_id;
965 else
966 rtm->rtm_table = RT_TABLE_COMPAT;
964 NLA_PUT_U32(skb, RTA_TABLE, tb_id); 967 NLA_PUT_U32(skb, RTA_TABLE, tb_id);
965 rtm->rtm_type = type; 968 rtm->rtm_type = type;
966 rtm->rtm_flags = fi->fib_flags; 969 rtm->rtm_flags = fi->fib_flags;
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
index 828ea211ff21..ec834480abe7 100644
--- a/net/ipv4/inet_connection_sock.c
+++ b/net/ipv4/inet_connection_sock.c
@@ -419,7 +419,8 @@ void inet_csk_reqsk_queue_prune(struct sock *parent,
419 struct inet_connection_sock *icsk = inet_csk(parent); 419 struct inet_connection_sock *icsk = inet_csk(parent);
420 struct request_sock_queue *queue = &icsk->icsk_accept_queue; 420 struct request_sock_queue *queue = &icsk->icsk_accept_queue;
421 struct listen_sock *lopt = queue->listen_opt; 421 struct listen_sock *lopt = queue->listen_opt;
422 int thresh = icsk->icsk_syn_retries ? : sysctl_tcp_synack_retries; 422 int max_retries = icsk->icsk_syn_retries ? : sysctl_tcp_synack_retries;
423 int thresh = max_retries;
423 unsigned long now = jiffies; 424 unsigned long now = jiffies;
424 struct request_sock **reqp, *req; 425 struct request_sock **reqp, *req;
425 int i, budget; 426 int i, budget;
@@ -455,6 +456,9 @@ void inet_csk_reqsk_queue_prune(struct sock *parent,
455 } 456 }
456 } 457 }
457 458
459 if (queue->rskq_defer_accept)
460 max_retries = queue->rskq_defer_accept;
461
458 budget = 2 * (lopt->nr_table_entries / (timeout / interval)); 462 budget = 2 * (lopt->nr_table_entries / (timeout / interval));
459 i = lopt->clock_hand; 463 i = lopt->clock_hand;
460 464
@@ -462,8 +466,9 @@ void inet_csk_reqsk_queue_prune(struct sock *parent,
462 reqp=&lopt->syn_table[i]; 466 reqp=&lopt->syn_table[i];
463 while ((req = *reqp) != NULL) { 467 while ((req = *reqp) != NULL) {
464 if (time_after_eq(now, req->expires)) { 468 if (time_after_eq(now, req->expires)) {
465 if (req->retrans < thresh && 469 if ((req->retrans < thresh ||
466 !req->rsk_ops->rtx_syn_ack(parent, req)) { 470 (inet_rsk(req)->acked && req->retrans < max_retries))
471 && !req->rsk_ops->rtx_syn_ack(parent, req)) {
467 unsigned long timeo; 472 unsigned long timeo;
468 473
469 if (req->retrans++ == 0) 474 if (req->retrans++ == 0)
diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c
index 04578593e100..d2a887fc8d9b 100644
--- a/net/ipv4/netfilter/nf_nat_core.c
+++ b/net/ipv4/netfilter/nf_nat_core.c
@@ -556,7 +556,6 @@ static void nf_nat_cleanup_conntrack(struct nf_conn *ct)
556 556
557 spin_lock_bh(&nf_nat_lock); 557 spin_lock_bh(&nf_nat_lock);
558 hlist_del_rcu(&nat->bysource); 558 hlist_del_rcu(&nat->bysource);
559 nat->ct = NULL;
560 spin_unlock_bh(&nf_nat_lock); 559 spin_unlock_bh(&nf_nat_lock);
561} 560}
562 561
@@ -570,8 +569,8 @@ static void nf_nat_move_storage(void *new, void *old)
570 return; 569 return;
571 570
572 spin_lock_bh(&nf_nat_lock); 571 spin_lock_bh(&nf_nat_lock);
573 hlist_replace_rcu(&old_nat->bysource, &new_nat->bysource);
574 new_nat->ct = ct; 572 new_nat->ct = ct;
573 hlist_replace_rcu(&old_nat->bysource, &new_nat->bysource);
575 spin_unlock_bh(&nf_nat_lock); 574 spin_unlock_bh(&nf_nat_lock);
576} 575}
577 576
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index e7e091d365ff..37a1ecd9d600 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -934,7 +934,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
934 srcp = inet->num; 934 srcp = inet->num;
935 935
936 seq_printf(seq, "%4d: %08X:%04X %08X:%04X" 936 seq_printf(seq, "%4d: %08X:%04X %08X:%04X"
937 " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d", 937 " %02X %08X:%08X %02X:%08lX %08X %5d %8d %lu %d %p %d\n",
938 i, src, srcp, dest, destp, sp->sk_state, 938 i, src, srcp, dest, destp, sp->sk_state,
939 atomic_read(&sp->sk_wmem_alloc), 939 atomic_read(&sp->sk_wmem_alloc),
940 atomic_read(&sp->sk_rmem_alloc), 940 atomic_read(&sp->sk_rmem_alloc),
diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
index 73ba98921d64..d182a2a26291 100644
--- a/net/ipv4/syncookies.c
+++ b/net/ipv4/syncookies.c
@@ -285,7 +285,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
285 cookie_check_timestamp(&tcp_opt); 285 cookie_check_timestamp(&tcp_opt);
286 286
287 ret = NULL; 287 ret = NULL;
288 req = reqsk_alloc(&tcp_request_sock_ops); /* for safety */ 288 req = inet_reqsk_alloc(&tcp_request_sock_ops); /* for safety */
289 if (!req) 289 if (!req)
290 goto out; 290 goto out;
291 291
@@ -301,7 +301,6 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
301 ireq->rmt_port = th->source; 301 ireq->rmt_port = th->source;
302 ireq->loc_addr = ip_hdr(skb)->daddr; 302 ireq->loc_addr = ip_hdr(skb)->daddr;
303 ireq->rmt_addr = ip_hdr(skb)->saddr; 303 ireq->rmt_addr = ip_hdr(skb)->saddr;
304 ireq->opt = NULL;
305 ireq->snd_wscale = tcp_opt.snd_wscale; 304 ireq->snd_wscale = tcp_opt.snd_wscale;
306 ireq->rcv_wscale = tcp_opt.rcv_wscale; 305 ireq->rcv_wscale = tcp_opt.rcv_wscale;
307 ireq->sack_ok = tcp_opt.sack_ok; 306 ireq->sack_ok = tcp_opt.sack_ok;
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index ab66683b8043..fc54a48fde1e 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2112,12 +2112,15 @@ static int do_tcp_setsockopt(struct sock *sk, int level,
2112 break; 2112 break;
2113 2113
2114 case TCP_DEFER_ACCEPT: 2114 case TCP_DEFER_ACCEPT:
2115 if (val < 0) { 2115 icsk->icsk_accept_queue.rskq_defer_accept = 0;
2116 err = -EINVAL; 2116 if (val > 0) {
2117 } else { 2117 /* Translate value in seconds to number of
2118 if (val > MAX_TCP_ACCEPT_DEFERRED) 2118 * retransmits */
2119 val = MAX_TCP_ACCEPT_DEFERRED; 2119 while (icsk->icsk_accept_queue.rskq_defer_accept < 32 &&
2120 icsk->icsk_accept_queue.rskq_defer_accept = val; 2120 val > ((TCP_TIMEOUT_INIT / HZ) <<
2121 icsk->icsk_accept_queue.rskq_defer_accept))
2122 icsk->icsk_accept_queue.rskq_defer_accept++;
2123 icsk->icsk_accept_queue.rskq_defer_accept++;
2121 } 2124 }
2122 break; 2125 break;
2123 2126
@@ -2299,7 +2302,8 @@ static int do_tcp_getsockopt(struct sock *sk, int level,
2299 val = (val ? : sysctl_tcp_fin_timeout) / HZ; 2302 val = (val ? : sysctl_tcp_fin_timeout) / HZ;
2300 break; 2303 break;
2301 case TCP_DEFER_ACCEPT: 2304 case TCP_DEFER_ACCEPT:
2302 val = icsk->icsk_accept_queue.rskq_defer_accept; 2305 val = !icsk->icsk_accept_queue.rskq_defer_accept ? 0 :
2306 ((TCP_TIMEOUT_INIT / HZ) << (icsk->icsk_accept_queue.rskq_defer_accept - 1));
2303 break; 2307 break;
2304 case TCP_WINDOW_CLAMP: 2308 case TCP_WINDOW_CLAMP:
2305 val = tp->window_clamp; 2309 val = tp->window_clamp;
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index eba873e9b560..cad73b7dfef0 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -4541,49 +4541,6 @@ static void tcp_urg(struct sock *sk, struct sk_buff *skb, struct tcphdr *th)
4541 } 4541 }
4542} 4542}
4543 4543
4544static int tcp_defer_accept_check(struct sock *sk)
4545{
4546 struct tcp_sock *tp = tcp_sk(sk);
4547
4548 if (tp->defer_tcp_accept.request) {
4549 int queued_data = tp->rcv_nxt - tp->copied_seq;
4550 int hasfin = !skb_queue_empty(&sk->sk_receive_queue) ?
4551 tcp_hdr((struct sk_buff *)
4552 sk->sk_receive_queue.prev)->fin : 0;
4553
4554 if (queued_data && hasfin)
4555 queued_data--;
4556
4557 if (queued_data &&
4558 tp->defer_tcp_accept.listen_sk->sk_state == TCP_LISTEN) {
4559 if (sock_flag(sk, SOCK_KEEPOPEN)) {
4560 inet_csk_reset_keepalive_timer(sk,
4561 keepalive_time_when(tp));
4562 } else {
4563 inet_csk_delete_keepalive_timer(sk);
4564 }
4565
4566 inet_csk_reqsk_queue_add(
4567 tp->defer_tcp_accept.listen_sk,
4568 tp->defer_tcp_accept.request,
4569 sk);
4570
4571 tp->defer_tcp_accept.listen_sk->sk_data_ready(
4572 tp->defer_tcp_accept.listen_sk, 0);
4573
4574 sock_put(tp->defer_tcp_accept.listen_sk);
4575 sock_put(sk);
4576 tp->defer_tcp_accept.listen_sk = NULL;
4577 tp->defer_tcp_accept.request = NULL;
4578 } else if (hasfin ||
4579 tp->defer_tcp_accept.listen_sk->sk_state != TCP_LISTEN) {
4580 tcp_reset(sk);
4581 return -1;
4582 }
4583 }
4584 return 0;
4585}
4586
4587static int tcp_copy_to_iovec(struct sock *sk, struct sk_buff *skb, int hlen) 4544static int tcp_copy_to_iovec(struct sock *sk, struct sk_buff *skb, int hlen)
4588{ 4545{
4589 struct tcp_sock *tp = tcp_sk(sk); 4546 struct tcp_sock *tp = tcp_sk(sk);
@@ -4944,8 +4901,6 @@ step5:
4944 4901
4945 tcp_data_snd_check(sk); 4902 tcp_data_snd_check(sk);
4946 tcp_ack_snd_check(sk); 4903 tcp_ack_snd_check(sk);
4947
4948 tcp_defer_accept_check(sk);
4949 return 0; 4904 return 0;
4950 4905
4951csum_error: 4906csum_error:
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index cd601a866c2f..12695be2c255 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -85,10 +85,6 @@
85int sysctl_tcp_tw_reuse __read_mostly; 85int sysctl_tcp_tw_reuse __read_mostly;
86int sysctl_tcp_low_latency __read_mostly; 86int sysctl_tcp_low_latency __read_mostly;
87 87
88/* Check TCP sequence numbers in ICMP packets. */
89#define ICMP_MIN_LENGTH 8
90
91void tcp_v4_send_check(struct sock *sk, int len, struct sk_buff *skb);
92 88
93#ifdef CONFIG_TCP_MD5SIG 89#ifdef CONFIG_TCP_MD5SIG
94static struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk, 90static struct tcp_md5sig_key *tcp_v4_md5_do_lookup(struct sock *sk,
@@ -1285,7 +1281,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
1285 if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1) 1281 if (sk_acceptq_is_full(sk) && inet_csk_reqsk_queue_young(sk) > 1)
1286 goto drop; 1282 goto drop;
1287 1283
1288 req = reqsk_alloc(&tcp_request_sock_ops); 1284 req = inet_reqsk_alloc(&tcp_request_sock_ops);
1289 if (!req) 1285 if (!req)
1290 goto drop; 1286 goto drop;
1291 1287
@@ -1918,14 +1914,6 @@ int tcp_v4_destroy_sock(struct sock *sk)
1918 sk->sk_sndmsg_page = NULL; 1914 sk->sk_sndmsg_page = NULL;
1919 } 1915 }
1920 1916
1921 if (tp->defer_tcp_accept.request) {
1922 reqsk_free(tp->defer_tcp_accept.request);
1923 sock_put(tp->defer_tcp_accept.listen_sk);
1924 sock_put(sk);
1925 tp->defer_tcp_accept.listen_sk = NULL;
1926 tp->defer_tcp_accept.request = NULL;
1927 }
1928
1929 atomic_dec(&tcp_sockets_allocated); 1917 atomic_dec(&tcp_sockets_allocated);
1930 1918
1931 return 0; 1919 return 0;
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
index 019c8c16e5cc..8245247a6ceb 100644
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -571,8 +571,10 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb,
571 does sequence test, SYN is truncated, and thus we consider 571 does sequence test, SYN is truncated, and thus we consider
572 it a bare ACK. 572 it a bare ACK.
573 573
574 Both ends (listening sockets) accept the new incoming 574 If icsk->icsk_accept_queue.rskq_defer_accept, we silently drop this
575 connection and try to talk to each other. 8-) 575 bare ACK. Otherwise, we create an established connection. Both
576 ends (listening sockets) accept the new incoming connection and try
577 to talk to each other. 8-)
576 578
577 Note: This case is both harmless, and rare. Possibility is about the 579 Note: This case is both harmless, and rare. Possibility is about the
578 same as us discovering intelligent life on another plant tomorrow. 580 same as us discovering intelligent life on another plant tomorrow.
@@ -640,6 +642,13 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb,
640 if (!(flg & TCP_FLAG_ACK)) 642 if (!(flg & TCP_FLAG_ACK))
641 return NULL; 643 return NULL;
642 644
645 /* If TCP_DEFER_ACCEPT is set, drop bare ACK. */
646 if (inet_csk(sk)->icsk_accept_queue.rskq_defer_accept &&
647 TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) {
648 inet_rsk(req)->acked = 1;
649 return NULL;
650 }
651
643 /* OK, ACK is valid, create big socket and 652 /* OK, ACK is valid, create big socket and
644 * feed this segment to it. It will repeat all 653 * feed this segment to it. It will repeat all
645 * the tests. THIS SEGMENT MUST MOVE SOCKET TO 654 * the tests. THIS SEGMENT MUST MOVE SOCKET TO
@@ -678,24 +687,7 @@ struct sock *tcp_check_req(struct sock *sk,struct sk_buff *skb,
678 inet_csk_reqsk_queue_unlink(sk, req, prev); 687 inet_csk_reqsk_queue_unlink(sk, req, prev);
679 inet_csk_reqsk_queue_removed(sk, req); 688 inet_csk_reqsk_queue_removed(sk, req);
680 689
681 if (inet_csk(sk)->icsk_accept_queue.rskq_defer_accept && 690 inet_csk_reqsk_queue_add(sk, req, child);
682 TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) {
683
684 /* the accept queue handling is done is est recv slow
685 * path so lets make sure to start there
686 */
687 tcp_sk(child)->pred_flags = 0;
688 sock_hold(sk);
689 sock_hold(child);
690 tcp_sk(child)->defer_tcp_accept.listen_sk = sk;
691 tcp_sk(child)->defer_tcp_accept.request = req;
692
693 inet_csk_reset_keepalive_timer(child,
694 inet_csk(sk)->icsk_accept_queue.rskq_defer_accept * HZ);
695 } else {
696 inet_csk_reqsk_queue_add(sk, req, child);
697 }
698
699 return child; 691 return child;
700 692
701 listen_overflow: 693 listen_overflow:
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
index 4de68cf5f2aa..63ed9d6830e7 100644
--- a/net/ipv4/tcp_timer.c
+++ b/net/ipv4/tcp_timer.c
@@ -489,11 +489,6 @@ static void tcp_keepalive_timer (unsigned long data)
489 goto death; 489 goto death;
490 } 490 }
491 491
492 if (tp->defer_tcp_accept.request && sk->sk_state == TCP_ESTABLISHED) {
493 tcp_send_active_reset(sk, GFP_ATOMIC);
494 goto death;
495 }
496
497 if (!sock_flag(sk, SOCK_KEEPOPEN) || sk->sk_state == TCP_CLOSE) 492 if (!sock_flag(sk, SOCK_KEEPOPEN) || sk->sk_state == TCP_CLOSE)
498 goto out; 493 goto out;
499 494
diff --git a/net/ipv4/xfrm4_mode_tunnel.c b/net/ipv4/xfrm4_mode_tunnel.c
index 584e6d74e3a9..7135279f3f84 100644
--- a/net/ipv4/xfrm4_mode_tunnel.c
+++ b/net/ipv4/xfrm4_mode_tunnel.c
@@ -52,7 +52,7 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
52 IP_ECN_clear(top_iph); 52 IP_ECN_clear(top_iph);
53 53
54 top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ? 54 top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ?
55 0 : XFRM_MODE_SKB_CB(skb)->frag_off; 55 0 : (XFRM_MODE_SKB_CB(skb)->frag_off & htons(IP_DF));
56 ip_select_ident(top_iph, dst->child, NULL); 56 ip_select_ident(top_iph, dst->child, NULL);
57 57
58 top_iph->ttl = dst_metric(dst->child, RTAX_HOPLIMIT); 58 top_iph->ttl = dst_metric(dst->child, RTAX_HOPLIMIT);
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 3c6aafb02183..e84b3fd17fb4 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -191,7 +191,7 @@ lookup_protocol:
191 np->mcast_hops = -1; 191 np->mcast_hops = -1;
192 np->mc_loop = 1; 192 np->mc_loop = 1;
193 np->pmtudisc = IPV6_PMTUDISC_WANT; 193 np->pmtudisc = IPV6_PMTUDISC_WANT;
194 np->ipv6only = init_net.ipv6.sysctl.bindv6only; 194 np->ipv6only = net->ipv6.sysctl.bindv6only;
195 195
196 /* Init the ipv4 part of the socket since we can have sockets 196 /* Init the ipv4 part of the socket since we can have sockets
197 * using v6 API for ipv4. 197 * using v6 API for ipv4.
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
index b9c2de84a8a2..0f0f94a40335 100644
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -705,6 +705,11 @@ int datagram_send_ctl(struct net *net,
705 } 705 }
706 706
707 *hlimit = *(int *)CMSG_DATA(cmsg); 707 *hlimit = *(int *)CMSG_DATA(cmsg);
708 if (*hlimit < -1 || *hlimit > 0xff) {
709 err = -EINVAL;
710 goto exit_f;
711 }
712
708 break; 713 break;
709 714
710 case IPV6_TCLASS: 715 case IPV6_TCLASS:
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c
index 4e5c8615832c..17eb48b8e329 100644
--- a/net/ipv6/ip6_input.c
+++ b/net/ipv6/ip6_input.c
@@ -102,6 +102,15 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt
102 if (hdr->version != 6) 102 if (hdr->version != 6)
103 goto err; 103 goto err;
104 104
105 /*
106 * RFC4291 2.5.3
107 * A packet received on an interface with a destination address
108 * of loopback must be dropped.
109 */
110 if (!(dev->flags & IFF_LOOPBACK) &&
111 ipv6_addr_loopback(&hdr->daddr))
112 goto err;
113
105 skb->transport_header = skb->network_header + sizeof(*hdr); 114 skb->transport_header = skb->network_header + sizeof(*hdr);
106 IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr); 115 IP6CB(skb)->nhoff = offsetof(struct ipv6hdr, nexthdr);
107 116
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index 26b83e512a09..86e28a75267f 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -67,7 +67,7 @@ int ip6_ra_control(struct sock *sk, int sel, void (*destructor)(struct sock *))
67 67
68 /* RA packet may be delivered ONLY to IPPROTO_RAW socket */ 68 /* RA packet may be delivered ONLY to IPPROTO_RAW socket */
69 if (sk->sk_type != SOCK_RAW || inet_sk(sk)->num != IPPROTO_RAW) 69 if (sk->sk_type != SOCK_RAW || inet_sk(sk)->num != IPPROTO_RAW)
70 return -EINVAL; 70 return -ENOPROTOOPT;
71 71
72 new_ra = (sel>=0) ? kmalloc(sizeof(*new_ra), GFP_KERNEL) : NULL; 72 new_ra = (sel>=0) ? kmalloc(sizeof(*new_ra), GFP_KERNEL) : NULL;
73 73
@@ -345,18 +345,21 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
345 case IPV6_DSTOPTS: 345 case IPV6_DSTOPTS:
346 { 346 {
347 struct ipv6_txoptions *opt; 347 struct ipv6_txoptions *opt;
348
349 /* remove any sticky options header with a zero option
350 * length, per RFC3542.
351 */
348 if (optlen == 0) 352 if (optlen == 0)
349 optval = NULL; 353 optval = NULL;
354 else if (optlen < sizeof(struct ipv6_opt_hdr) ||
355 optlen & 0x7 || optlen > 8 * 255)
356 goto e_inval;
350 357
351 /* hop-by-hop / destination options are privileged option */ 358 /* hop-by-hop / destination options are privileged option */
352 retv = -EPERM; 359 retv = -EPERM;
353 if (optname != IPV6_RTHDR && !capable(CAP_NET_RAW)) 360 if (optname != IPV6_RTHDR && !capable(CAP_NET_RAW))
354 break; 361 break;
355 362
356 if (optlen < sizeof(struct ipv6_opt_hdr) ||
357 optlen & 0x7 || optlen > 8 * 255)
358 goto e_inval;
359
360 opt = ipv6_renew_options(sk, np->opt, optname, 363 opt = ipv6_renew_options(sk, np->opt, optname,
361 (struct ipv6_opt_hdr __user *)optval, 364 (struct ipv6_opt_hdr __user *)optval,
362 optlen); 365 optlen);
@@ -446,7 +449,7 @@ done:
446 449
447 case IPV6_MULTICAST_HOPS: 450 case IPV6_MULTICAST_HOPS:
448 if (sk->sk_type == SOCK_STREAM) 451 if (sk->sk_type == SOCK_STREAM)
449 goto e_inval; 452 break;
450 if (optlen < sizeof(int)) 453 if (optlen < sizeof(int))
451 goto e_inval; 454 goto e_inval;
452 if (val > 255 || val < -1) 455 if (val > 255 || val < -1)
@@ -458,13 +461,15 @@ done:
458 case IPV6_MULTICAST_LOOP: 461 case IPV6_MULTICAST_LOOP:
459 if (optlen < sizeof(int)) 462 if (optlen < sizeof(int))
460 goto e_inval; 463 goto e_inval;
464 if (val != valbool)
465 goto e_inval;
461 np->mc_loop = valbool; 466 np->mc_loop = valbool;
462 retv = 0; 467 retv = 0;
463 break; 468 break;
464 469
465 case IPV6_MULTICAST_IF: 470 case IPV6_MULTICAST_IF:
466 if (sk->sk_type == SOCK_STREAM) 471 if (sk->sk_type == SOCK_STREAM)
467 goto e_inval; 472 break;
468 if (optlen < sizeof(int)) 473 if (optlen < sizeof(int))
469 goto e_inval; 474 goto e_inval;
470 475
@@ -860,7 +865,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
860 if (sk->sk_protocol != IPPROTO_UDP && 865 if (sk->sk_protocol != IPPROTO_UDP &&
861 sk->sk_protocol != IPPROTO_UDPLITE && 866 sk->sk_protocol != IPPROTO_UDPLITE &&
862 sk->sk_protocol != IPPROTO_TCP) 867 sk->sk_protocol != IPPROTO_TCP)
863 return -EINVAL; 868 return -ENOPROTOOPT;
864 if (sk->sk_state != TCP_ESTABLISHED) 869 if (sk->sk_state != TCP_ESTABLISHED)
865 return -ENOTCONN; 870 return -ENOTCONN;
866 val = sk->sk_family; 871 val = sk->sk_family;
@@ -874,6 +879,8 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
874 return -EINVAL; 879 return -EINVAL;
875 if (copy_from_user(&gsf, optval, GROUP_FILTER_SIZE(0))) 880 if (copy_from_user(&gsf, optval, GROUP_FILTER_SIZE(0)))
876 return -EFAULT; 881 return -EFAULT;
882 if (gsf.gf_group.ss_family != AF_INET6)
883 return -EADDRNOTAVAIL;
877 lock_sock(sk); 884 lock_sock(sk);
878 err = ip6_mc_msfget(sk, &gsf, 885 err = ip6_mc_msfget(sk, &gsf,
879 (struct group_filter __user *)optval, optlen); 886 (struct group_filter __user *)optval, optlen);
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index 8fee9a15b2d3..3aee12310d94 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -1169,7 +1169,8 @@ static int raw6_destroy(struct sock *sk)
1169 lock_sock(sk); 1169 lock_sock(sk);
1170 ip6_flush_pending_frames(sk); 1170 ip6_flush_pending_frames(sk);
1171 release_sock(sk); 1171 release_sock(sk);
1172 return 0; 1172
1173 return inet6_destroy_sock(sk);
1173} 1174}
1174 1175
1175static int rawv6_init_sk(struct sock *sk) 1176static int rawv6_init_sk(struct sock *sk)
@@ -1200,7 +1201,6 @@ struct proto rawv6_prot = {
1200 .disconnect = udp_disconnect, 1201 .disconnect = udp_disconnect,
1201 .ioctl = rawv6_ioctl, 1202 .ioctl = rawv6_ioctl,
1202 .init = rawv6_init_sk, 1203 .init = rawv6_init_sk,
1203 .destroy = inet6_destroy_sock,
1204 .setsockopt = rawv6_setsockopt, 1204 .setsockopt = rawv6_setsockopt,
1205 .getsockopt = rawv6_getsockopt, 1205 .getsockopt = rawv6_getsockopt,
1206 .sendmsg = rawv6_sendmsg, 1206 .sendmsg = rawv6_sendmsg,
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 220cffe9e63b..d1f3e19b06c7 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2196,8 +2196,12 @@ static int rt6_fill_node(struct sk_buff *skb, struct rt6_info *rt,
2196 2196
2197 NLA_PUT_U32(skb, RTA_PRIORITY, rt->rt6i_metric); 2197 NLA_PUT_U32(skb, RTA_PRIORITY, rt->rt6i_metric);
2198 2198
2199 expires = (rt->rt6i_flags & RTF_EXPIRES) ? 2199 if (!(rt->rt6i_flags & RTF_EXPIRES))
2200 rt->rt6i_expires - jiffies : 0; 2200 expires = 0;
2201 else if (rt->rt6i_expires - jiffies < INT_MAX)
2202 expires = rt->rt6i_expires - jiffies;
2203 else
2204 expires = INT_MAX;
2201 2205
2202 if (rtnl_put_cacheinfo(skb, &rt->u.dst, 0, 0, 0, 2206 if (rtnl_put_cacheinfo(skb, &rt->u.dst, 0, 0, 0,
2203 expires, rt->u.dst.error) < 0) 2207 expires, rt->u.dst.error) < 0)
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 3de6ffdaedf2..32e871a6c25a 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -222,15 +222,18 @@ __ipip6_tunnel_locate_prl(struct ip_tunnel *t, __be32 addr)
222 222
223} 223}
224 224
225static int ipip6_tunnel_get_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a) 225static int ipip6_tunnel_get_prl(struct ip_tunnel *t,
226 struct ip_tunnel_prl __user *a)
226{ 227{
227 struct ip_tunnel_prl *kp; 228 struct ip_tunnel_prl kprl, *kp;
228 struct ip_tunnel_prl_entry *prl; 229 struct ip_tunnel_prl_entry *prl;
229 unsigned int cmax, c = 0, ca, len; 230 unsigned int cmax, c = 0, ca, len;
230 int ret = 0; 231 int ret = 0;
231 232
232 cmax = a->datalen / sizeof(*a); 233 if (copy_from_user(&kprl, a, sizeof(kprl)))
233 if (cmax > 1 && a->addr != htonl(INADDR_ANY)) 234 return -EFAULT;
235 cmax = kprl.datalen / sizeof(kprl);
236 if (cmax > 1 && kprl.addr != htonl(INADDR_ANY))
234 cmax = 1; 237 cmax = 1;
235 238
236 /* For simple GET or for root users, 239 /* For simple GET or for root users,
@@ -261,26 +264,25 @@ static int ipip6_tunnel_get_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a)
261 for (prl = t->prl; prl; prl = prl->next) { 264 for (prl = t->prl; prl; prl = prl->next) {
262 if (c > cmax) 265 if (c > cmax)
263 break; 266 break;
264 if (a->addr != htonl(INADDR_ANY) && prl->addr != a->addr) 267 if (kprl.addr != htonl(INADDR_ANY) && prl->addr != kprl.addr)
265 continue; 268 continue;
266 kp[c].addr = prl->addr; 269 kp[c].addr = prl->addr;
267 kp[c].flags = prl->flags; 270 kp[c].flags = prl->flags;
268 c++; 271 c++;
269 if (a->addr != htonl(INADDR_ANY)) 272 if (kprl.addr != htonl(INADDR_ANY))
270 break; 273 break;
271 } 274 }
272out: 275out:
273 read_unlock(&ipip6_lock); 276 read_unlock(&ipip6_lock);
274 277
275 len = sizeof(*kp) * c; 278 len = sizeof(*kp) * c;
276 ret = len ? copy_to_user(a->data, kp, len) : 0; 279 ret = 0;
280 if ((len && copy_to_user(a + 1, kp, len)) || put_user(len, &a->datalen))
281 ret = -EFAULT;
277 282
278 kfree(kp); 283 kfree(kp);
279 if (ret)
280 return -EFAULT;
281 284
282 a->datalen = len; 285 return ret;
283 return 0;
284} 286}
285 287
286static int 288static int
@@ -873,11 +875,20 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
873 break; 875 break;
874 876
875 case SIOCGETPRL: 877 case SIOCGETPRL:
878 err = -EINVAL;
879 if (dev == sitn->fb_tunnel_dev)
880 goto done;
881 err = -ENOENT;
882 if (!(t = netdev_priv(dev)))
883 goto done;
884 err = ipip6_tunnel_get_prl(t, ifr->ifr_ifru.ifru_data);
885 break;
886
876 case SIOCADDPRL: 887 case SIOCADDPRL:
877 case SIOCDELPRL: 888 case SIOCDELPRL:
878 case SIOCCHGPRL: 889 case SIOCCHGPRL:
879 err = -EPERM; 890 err = -EPERM;
880 if (cmd != SIOCGETPRL && !capable(CAP_NET_ADMIN)) 891 if (!capable(CAP_NET_ADMIN))
881 goto done; 892 goto done;
882 err = -EINVAL; 893 err = -EINVAL;
883 if (dev == sitn->fb_tunnel_dev) 894 if (dev == sitn->fb_tunnel_dev)
@@ -890,12 +901,6 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
890 goto done; 901 goto done;
891 902
892 switch (cmd) { 903 switch (cmd) {
893 case SIOCGETPRL:
894 err = ipip6_tunnel_get_prl(t, &prl);
895 if (!err && copy_to_user(ifr->ifr_ifru.ifru_data,
896 &prl, sizeof(prl)))
897 err = -EFAULT;
898 break;
899 case SIOCDELPRL: 904 case SIOCDELPRL:
900 err = ipip6_tunnel_del_prl(t, &prl); 905 err = ipip6_tunnel_del_prl(t, &prl);
901 break; 906 break;
@@ -904,8 +909,7 @@ ipip6_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
904 err = ipip6_tunnel_add_prl(t, &prl, cmd == SIOCCHGPRL); 909 err = ipip6_tunnel_add_prl(t, &prl, cmd == SIOCCHGPRL);
905 break; 910 break;
906 } 911 }
907 if (cmd != SIOCGETPRL) 912 netdev_state_change(dev);
908 netdev_state_change(dev);
909 break; 913 break;
910 914
911 default: 915 default:
diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c
index 938ce4ecde55..3ecc1157994e 100644
--- a/net/ipv6/syncookies.c
+++ b/net/ipv6/syncookies.c
@@ -198,7 +198,6 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
198 ireq = inet_rsk(req); 198 ireq = inet_rsk(req);
199 ireq6 = inet6_rsk(req); 199 ireq6 = inet6_rsk(req);
200 treq = tcp_rsk(req); 200 treq = tcp_rsk(req);
201 ireq6->pktopts = NULL;
202 201
203 if (security_inet_conn_request(sk, skb, req)) { 202 if (security_inet_conn_request(sk, skb, req)) {
204 reqsk_free(req); 203 reqsk_free(req);
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 715965f0fac0..cb46749d4c32 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1299,7 +1299,6 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
1299 treq = inet6_rsk(req); 1299 treq = inet6_rsk(req);
1300 ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr); 1300 ipv6_addr_copy(&treq->rmt_addr, &ipv6_hdr(skb)->saddr);
1301 ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr); 1301 ipv6_addr_copy(&treq->loc_addr, &ipv6_hdr(skb)->daddr);
1302 treq->pktopts = NULL;
1303 if (!want_cookie) 1302 if (!want_cookie)
1304 TCP_ECN_create_request(req, tcp_hdr(skb)); 1303 TCP_ECN_create_request(req, tcp_hdr(skb));
1305 1304
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 9bba7ac5fee0..7470e367272b 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -3030,6 +3030,9 @@ static int key_notify_sa_expire(struct xfrm_state *x, struct km_event *c)
3030 3030
3031static int pfkey_send_notify(struct xfrm_state *x, struct km_event *c) 3031static int pfkey_send_notify(struct xfrm_state *x, struct km_event *c)
3032{ 3032{
3033 if (atomic_read(&pfkey_socks_nr) == 0)
3034 return 0;
3035
3033 switch (c->event) { 3036 switch (c->event) {
3034 case XFRM_MSG_EXPIRE: 3037 case XFRM_MSG_EXPIRE:
3035 return key_notify_sa_expire(x, c); 3038 return key_notify_sa_expire(x, c);
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index c7314bf4bec2..006486b26726 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -899,7 +899,7 @@ extern const struct iw_handler_def ieee80211_iw_handler_def;
899 899
900 900
901/* ieee80211_ioctl.c */ 901/* ieee80211_ioctl.c */
902int ieee80211_set_freq(struct ieee80211_local *local, int freq); 902int ieee80211_set_freq(struct net_device *dev, int freq);
903/* ieee80211_sta.c */ 903/* ieee80211_sta.c */
904void ieee80211_sta_timer(unsigned long data); 904void ieee80211_sta_timer(unsigned long data);
905void ieee80211_sta_work(struct work_struct *work); 905void ieee80211_sta_work(struct work_struct *work);
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 5c876450b14c..98c0b5e56ecc 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -511,6 +511,7 @@ static int ieee80211_stop(struct net_device *dev)
511 case IEEE80211_IF_TYPE_STA: 511 case IEEE80211_IF_TYPE_STA:
512 case IEEE80211_IF_TYPE_IBSS: 512 case IEEE80211_IF_TYPE_IBSS:
513 sdata->u.sta.state = IEEE80211_DISABLED; 513 sdata->u.sta.state = IEEE80211_DISABLED;
514 memset(sdata->u.sta.bssid, 0, ETH_ALEN);
514 del_timer_sync(&sdata->u.sta.timer); 515 del_timer_sync(&sdata->u.sta.timer);
515 /* 516 /*
516 * When we get here, the interface is marked down. 517 * When we get here, the interface is marked down.
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 841278f1df8e..4d2b582dd055 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -44,7 +44,7 @@
44#define IEEE80211_RETRY_AUTH_INTERVAL (1 * HZ) 44#define IEEE80211_RETRY_AUTH_INTERVAL (1 * HZ)
45#define IEEE80211_SCAN_INTERVAL (2 * HZ) 45#define IEEE80211_SCAN_INTERVAL (2 * HZ)
46#define IEEE80211_SCAN_INTERVAL_SLOW (15 * HZ) 46#define IEEE80211_SCAN_INTERVAL_SLOW (15 * HZ)
47#define IEEE80211_IBSS_JOIN_TIMEOUT (20 * HZ) 47#define IEEE80211_IBSS_JOIN_TIMEOUT (7 * HZ)
48 48
49#define IEEE80211_PROBE_DELAY (HZ / 33) 49#define IEEE80211_PROBE_DELAY (HZ / 33)
50#define IEEE80211_CHANNEL_TIME (HZ / 33) 50#define IEEE80211_CHANNEL_TIME (HZ / 33)
@@ -2336,6 +2336,7 @@ static int ieee80211_sta_join_ibss(struct net_device *dev,
2336 u8 *pos; 2336 u8 *pos;
2337 struct ieee80211_sub_if_data *sdata; 2337 struct ieee80211_sub_if_data *sdata;
2338 struct ieee80211_supported_band *sband; 2338 struct ieee80211_supported_band *sband;
2339 union iwreq_data wrqu;
2339 2340
2340 sband = local->hw.wiphy->bands[local->hw.conf.channel->band]; 2341 sband = local->hw.wiphy->bands[local->hw.conf.channel->band];
2341 2342
@@ -2358,13 +2359,10 @@ static int ieee80211_sta_join_ibss(struct net_device *dev,
2358 sdata->drop_unencrypted = bss->capability & 2359 sdata->drop_unencrypted = bss->capability &
2359 WLAN_CAPABILITY_PRIVACY ? 1 : 0; 2360 WLAN_CAPABILITY_PRIVACY ? 1 : 0;
2360 2361
2361 res = ieee80211_set_freq(local, bss->freq); 2362 res = ieee80211_set_freq(dev, bss->freq);
2362 2363
2363 if (local->oper_channel->flags & IEEE80211_CHAN_NO_IBSS) { 2364 if (res)
2364 printk(KERN_DEBUG "%s: IBSS not allowed on frequency " 2365 return res;
2365 "%d MHz\n", dev->name, local->oper_channel->center_freq);
2366 return -1;
2367 }
2368 2366
2369 /* Set beacon template */ 2367 /* Set beacon template */
2370 skb = dev_alloc_skb(local->hw.extra_tx_headroom + 400); 2368 skb = dev_alloc_skb(local->hw.extra_tx_headroom + 400);
@@ -2479,6 +2477,10 @@ static int ieee80211_sta_join_ibss(struct net_device *dev,
2479 ifsta->state = IEEE80211_IBSS_JOINED; 2477 ifsta->state = IEEE80211_IBSS_JOINED;
2480 mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL); 2478 mod_timer(&ifsta->timer, jiffies + IEEE80211_IBSS_MERGE_INTERVAL);
2481 2479
2480 memset(&wrqu, 0, sizeof(wrqu));
2481 memcpy(wrqu.ap_addr.sa_data, bss->bssid, ETH_ALEN);
2482 wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
2483
2482 return res; 2484 return res;
2483} 2485}
2484 2486
@@ -3486,7 +3488,7 @@ static int ieee80211_sta_config_auth(struct net_device *dev,
3486 spin_unlock_bh(&local->sta_bss_lock); 3488 spin_unlock_bh(&local->sta_bss_lock);
3487 3489
3488 if (selected) { 3490 if (selected) {
3489 ieee80211_set_freq(local, selected->freq); 3491 ieee80211_set_freq(dev, selected->freq);
3490 if (!(ifsta->flags & IEEE80211_STA_SSID_SET)) 3492 if (!(ifsta->flags & IEEE80211_STA_SSID_SET))
3491 ieee80211_sta_set_ssid(dev, selected->ssid, 3493 ieee80211_sta_set_ssid(dev, selected->ssid,
3492 selected->ssid_len); 3494 selected->ssid_len);
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 1d7dd54aacef..c80d5899f279 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1132,7 +1132,7 @@ static int ieee80211_tx(struct net_device *dev, struct sk_buff *skb,
1132 ieee80211_tx_handler *handler; 1132 ieee80211_tx_handler *handler;
1133 struct ieee80211_tx_data tx; 1133 struct ieee80211_tx_data tx;
1134 ieee80211_tx_result res = TX_DROP, res_prepare; 1134 ieee80211_tx_result res = TX_DROP, res_prepare;
1135 int ret, i; 1135 int ret, i, retries = 0;
1136 1136
1137 WARN_ON(__ieee80211_queue_pending(local, control->queue)); 1137 WARN_ON(__ieee80211_queue_pending(local, control->queue));
1138 1138
@@ -1216,6 +1216,13 @@ retry:
1216 if (!__ieee80211_queue_stopped(local, control->queue)) { 1216 if (!__ieee80211_queue_stopped(local, control->queue)) {
1217 clear_bit(IEEE80211_LINK_STATE_PENDING, 1217 clear_bit(IEEE80211_LINK_STATE_PENDING,
1218 &local->state[control->queue]); 1218 &local->state[control->queue]);
1219 retries++;
1220 /*
1221 * Driver bug, it's rejecting packets but
1222 * not stopping queues.
1223 */
1224 if (WARN_ON_ONCE(retries > 5))
1225 goto drop;
1219 goto retry; 1226 goto retry;
1220 } 1227 }
1221 memcpy(&store->control, control, 1228 memcpy(&store->control, control,
@@ -1562,13 +1569,13 @@ int ieee80211_subif_start_xmit(struct sk_buff *skb,
1562 * be cloned. This could happen, e.g., with Linux bridge code passing 1569 * be cloned. This could happen, e.g., with Linux bridge code passing
1563 * us broadcast frames. */ 1570 * us broadcast frames. */
1564 1571
1565 if (head_need > 0 || skb_header_cloned(skb)) { 1572 if (head_need > 0 || skb_cloned(skb)) {
1566#if 0 1573#if 0
1567 printk(KERN_DEBUG "%s: need to reallocate buffer for %d bytes " 1574 printk(KERN_DEBUG "%s: need to reallocate buffer for %d bytes "
1568 "of headroom\n", dev->name, head_need); 1575 "of headroom\n", dev->name, head_need);
1569#endif 1576#endif
1570 1577
1571 if (skb_header_cloned(skb)) 1578 if (skb_cloned(skb))
1572 I802_DEBUG_INC(local->tx_expand_skb_head_cloned); 1579 I802_DEBUG_INC(local->tx_expand_skb_head_cloned);
1573 else 1580 else
1574 I802_DEBUG_INC(local->tx_expand_skb_head); 1581 I802_DEBUG_INC(local->tx_expand_skb_head);
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 8311bb24f9f3..6106cb79060c 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -290,14 +290,22 @@ static int ieee80211_ioctl_giwmode(struct net_device *dev,
290 return 0; 290 return 0;
291} 291}
292 292
293int ieee80211_set_freq(struct ieee80211_local *local, int freqMHz) 293int ieee80211_set_freq(struct net_device *dev, int freqMHz)
294{ 294{
295 int ret = -EINVAL; 295 int ret = -EINVAL;
296 struct ieee80211_channel *chan; 296 struct ieee80211_channel *chan;
297 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
298 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
297 299
298 chan = ieee80211_get_channel(local->hw.wiphy, freqMHz); 300 chan = ieee80211_get_channel(local->hw.wiphy, freqMHz);
299 301
300 if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) { 302 if (chan && !(chan->flags & IEEE80211_CHAN_DISABLED)) {
303 if (sdata->vif.type == IEEE80211_IF_TYPE_IBSS &&
304 chan->flags & IEEE80211_CHAN_NO_IBSS) {
305 printk(KERN_DEBUG "%s: IBSS not allowed on frequency "
306 "%d MHz\n", dev->name, chan->center_freq);
307 return ret;
308 }
301 local->oper_channel = chan; 309 local->oper_channel = chan;
302 310
303 if (local->sta_sw_scanning || local->sta_hw_scanning) 311 if (local->sta_sw_scanning || local->sta_hw_scanning)
@@ -315,7 +323,6 @@ static int ieee80211_ioctl_siwfreq(struct net_device *dev,
315 struct iw_request_info *info, 323 struct iw_request_info *info,
316 struct iw_freq *freq, char *extra) 324 struct iw_freq *freq, char *extra)
317{ 325{
318 struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
319 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 326 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
320 327
321 if (sdata->vif.type == IEEE80211_IF_TYPE_STA) 328 if (sdata->vif.type == IEEE80211_IF_TYPE_STA)
@@ -329,14 +336,14 @@ static int ieee80211_ioctl_siwfreq(struct net_device *dev,
329 IEEE80211_STA_AUTO_CHANNEL_SEL; 336 IEEE80211_STA_AUTO_CHANNEL_SEL;
330 return 0; 337 return 0;
331 } else 338 } else
332 return ieee80211_set_freq(local, 339 return ieee80211_set_freq(dev,
333 ieee80211_channel_to_frequency(freq->m)); 340 ieee80211_channel_to_frequency(freq->m));
334 } else { 341 } else {
335 int i, div = 1000000; 342 int i, div = 1000000;
336 for (i = 0; i < freq->e; i++) 343 for (i = 0; i < freq->e; i++)
337 div /= 10; 344 div /= 10;
338 if (div > 0) 345 if (div > 0)
339 return ieee80211_set_freq(local, freq->m / div); 346 return ieee80211_set_freq(dev, freq->m / div);
340 else 347 else
341 return -EINVAL; 348 return -EINVAL;
342 } 349 }
@@ -489,7 +496,8 @@ static int ieee80211_ioctl_giwap(struct net_device *dev,
489 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 496 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
490 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 497 if (sdata->vif.type == IEEE80211_IF_TYPE_STA ||
491 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 498 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) {
492 if (sdata->u.sta.state == IEEE80211_ASSOCIATED) { 499 if (sdata->u.sta.state == IEEE80211_ASSOCIATED ||
500 sdata->u.sta.state == IEEE80211_IBSS_JOINED) {
493 ap_addr->sa_family = ARPHRD_ETHER; 501 ap_addr->sa_family = ARPHRD_ETHER;
494 memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN); 502 memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN);
495 return 0; 503 return 0;
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index dc1598b86004..635b996c8c35 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -673,7 +673,7 @@ int ieee80211_ht_agg_queue_add(struct ieee80211_local *local,
673#ifdef CONFIG_MAC80211_HT_DEBUG 673#ifdef CONFIG_MAC80211_HT_DEBUG
674 if (net_ratelimit()) 674 if (net_ratelimit())
675 printk(KERN_DEBUG "allocated aggregation queue" 675 printk(KERN_DEBUG "allocated aggregation queue"
676 " %d tid %d addr %s pool=0x%lX", 676 " %d tid %d addr %s pool=0x%lX\n",
677 i, tid, print_mac(mac, sta->addr), 677 i, tid, print_mac(mac, sta->addr),
678 q->qdisc_pool[0]); 678 q->qdisc_pool[0]);
679#endif /* CONFIG_MAC80211_HT_DEBUG */ 679#endif /* CONFIG_MAC80211_HT_DEBUG */
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index c4b1799da5d7..662c1ccfee26 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -196,8 +196,6 @@ destroy_conntrack(struct nf_conntrack *nfct)
196 if (l4proto && l4proto->destroy) 196 if (l4proto && l4proto->destroy)
197 l4proto->destroy(ct); 197 l4proto->destroy(ct);
198 198
199 nf_ct_ext_destroy(ct);
200
201 rcu_read_unlock(); 199 rcu_read_unlock();
202 200
203 spin_lock_bh(&nf_conntrack_lock); 201 spin_lock_bh(&nf_conntrack_lock);
@@ -520,6 +518,7 @@ static void nf_conntrack_free_rcu(struct rcu_head *head)
520 518
521void nf_conntrack_free(struct nf_conn *ct) 519void nf_conntrack_free(struct nf_conn *ct)
522{ 520{
521 nf_ct_ext_destroy(ct);
523 call_rcu(&ct->rcu, nf_conntrack_free_rcu); 522 call_rcu(&ct->rcu, nf_conntrack_free_rcu);
524} 523}
525EXPORT_SYMBOL_GPL(nf_conntrack_free); 524EXPORT_SYMBOL_GPL(nf_conntrack_free);
diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
index bcc19fa4ed1e..8a3f8b34e466 100644
--- a/net/netfilter/nf_conntrack_extend.c
+++ b/net/netfilter/nf_conntrack_extend.c
@@ -59,12 +59,19 @@ nf_ct_ext_create(struct nf_ct_ext **ext, enum nf_ct_ext_id id, gfp_t gfp)
59 if (!*ext) 59 if (!*ext)
60 return NULL; 60 return NULL;
61 61
62 INIT_RCU_HEAD(&(*ext)->rcu);
62 (*ext)->offset[id] = off; 63 (*ext)->offset[id] = off;
63 (*ext)->len = len; 64 (*ext)->len = len;
64 65
65 return (void *)(*ext) + off; 66 return (void *)(*ext) + off;
66} 67}
67 68
69static void __nf_ct_ext_free_rcu(struct rcu_head *head)
70{
71 struct nf_ct_ext *ext = container_of(head, struct nf_ct_ext, rcu);
72 kfree(ext);
73}
74
68void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp) 75void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
69{ 76{
70 struct nf_ct_ext *new; 77 struct nf_ct_ext *new;
@@ -106,7 +113,7 @@ void *__nf_ct_ext_add(struct nf_conn *ct, enum nf_ct_ext_id id, gfp_t gfp)
106 (void *)ct->ext + ct->ext->offset[i]); 113 (void *)ct->ext + ct->ext->offset[i]);
107 rcu_read_unlock(); 114 rcu_read_unlock();
108 } 115 }
109 kfree(ct->ext); 116 call_rcu(&ct->ext->rcu, __nf_ct_ext_free_rcu);
110 ct->ext = new; 117 ct->ext = new;
111 } 118 }
112 119
diff --git a/net/netfilter/nf_conntrack_h323_main.c b/net/netfilter/nf_conntrack_h323_main.c
index 95da1a24aab7..2f83c158934d 100644
--- a/net/netfilter/nf_conntrack_h323_main.c
+++ b/net/netfilter/nf_conntrack_h323_main.c
@@ -619,6 +619,7 @@ static const struct nf_conntrack_expect_policy h245_exp_policy = {
619static struct nf_conntrack_helper nf_conntrack_helper_h245 __read_mostly = { 619static struct nf_conntrack_helper nf_conntrack_helper_h245 __read_mostly = {
620 .name = "H.245", 620 .name = "H.245",
621 .me = THIS_MODULE, 621 .me = THIS_MODULE,
622 .tuple.src.l3num = AF_UNSPEC,
622 .tuple.dst.protonum = IPPROTO_UDP, 623 .tuple.dst.protonum = IPPROTO_UDP,
623 .help = h245_help, 624 .help = h245_help,
624 .expect_policy = &h245_exp_policy, 625 .expect_policy = &h245_exp_policy,
@@ -1765,6 +1766,7 @@ static void __exit nf_conntrack_h323_fini(void)
1765 nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]); 1766 nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]);
1766 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]); 1767 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]);
1767 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]); 1768 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]);
1769 nf_conntrack_helper_unregister(&nf_conntrack_helper_h245);
1768 kfree(h323_buffer); 1770 kfree(h323_buffer);
1769 pr_debug("nf_ct_h323: fini\n"); 1771 pr_debug("nf_ct_h323: fini\n");
1770} 1772}
@@ -1777,28 +1779,34 @@ static int __init nf_conntrack_h323_init(void)
1777 h323_buffer = kmalloc(65536, GFP_KERNEL); 1779 h323_buffer = kmalloc(65536, GFP_KERNEL);
1778 if (!h323_buffer) 1780 if (!h323_buffer)
1779 return -ENOMEM; 1781 return -ENOMEM;
1780 ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[0]); 1782 ret = nf_conntrack_helper_register(&nf_conntrack_helper_h245);
1781 if (ret < 0) 1783 if (ret < 0)
1782 goto err1; 1784 goto err1;
1783 ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[1]); 1785 ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[0]);
1784 if (ret < 0) 1786 if (ret < 0)
1785 goto err2; 1787 goto err2;
1786 ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[0]); 1788 ret = nf_conntrack_helper_register(&nf_conntrack_helper_q931[1]);
1787 if (ret < 0) 1789 if (ret < 0)
1788 goto err3; 1790 goto err3;
1789 ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[1]); 1791 ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[0]);
1790 if (ret < 0) 1792 if (ret < 0)
1791 goto err4; 1793 goto err4;
1794 ret = nf_conntrack_helper_register(&nf_conntrack_helper_ras[1]);
1795 if (ret < 0)
1796 goto err5;
1792 pr_debug("nf_ct_h323: init success\n"); 1797 pr_debug("nf_ct_h323: init success\n");
1793 return 0; 1798 return 0;
1794 1799
1795err4: 1800err5:
1796 nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]); 1801 nf_conntrack_helper_unregister(&nf_conntrack_helper_ras[0]);
1797err3: 1802err4:
1798 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]); 1803 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[1]);
1799err2: 1804err3:
1800 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]); 1805 nf_conntrack_helper_unregister(&nf_conntrack_helper_q931[0]);
1806err2:
1807 nf_conntrack_helper_unregister(&nf_conntrack_helper_h245);
1801err1: 1808err1:
1809 kfree(h323_buffer);
1802 return ret; 1810 return ret;
1803} 1811}
1804 1812
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index bc11d7092032..9fda6ee95a31 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -92,10 +92,6 @@ void nf_log_packet(int pf,
92 vsnprintf(prefix, sizeof(prefix), fmt, args); 92 vsnprintf(prefix, sizeof(prefix), fmt, args);
93 va_end(args); 93 va_end(args);
94 logger->logfn(pf, hooknum, skb, in, out, loginfo, prefix); 94 logger->logfn(pf, hooknum, skb, in, out, loginfo, prefix);
95 } else if (net_ratelimit()) {
96 printk(KERN_WARNING "nf_log_packet: can\'t log since "
97 "no backend logging module loaded in! Please either "
98 "load one, or disable logging explicitly\n");
99 } 95 }
100 rcu_read_unlock(); 96 rcu_read_unlock();
101} 97}
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index f5aa23c3e886..3e1191cecaf0 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -444,8 +444,11 @@ static int genl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
444 if (ops->dumpit == NULL) 444 if (ops->dumpit == NULL)
445 return -EOPNOTSUPP; 445 return -EOPNOTSUPP;
446 446
447 return netlink_dump_start(genl_sock, skb, nlh, 447 genl_unlock();
448 ops->dumpit, ops->done); 448 err = netlink_dump_start(genl_sock, skb, nlh,
449 ops->dumpit, ops->done);
450 genl_lock();
451 return err;
449 } 452 }
450 453
451 if (ops->doit == NULL) 454 if (ops->doit == NULL)
@@ -603,9 +606,6 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb)
603 int chains_to_skip = cb->args[0]; 606 int chains_to_skip = cb->args[0];
604 int fams_to_skip = cb->args[1]; 607 int fams_to_skip = cb->args[1];
605 608
606 if (chains_to_skip != 0)
607 genl_lock();
608
609 for (i = 0; i < GENL_FAM_TAB_SIZE; i++) { 609 for (i = 0; i < GENL_FAM_TAB_SIZE; i++) {
610 if (i < chains_to_skip) 610 if (i < chains_to_skip)
611 continue; 611 continue;
@@ -623,9 +623,6 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb)
623 } 623 }
624 624
625errout: 625errout:
626 if (chains_to_skip != 0)
627 genl_unlock();
628
629 cb->args[0] = i; 626 cb->args[0] = i;
630 cb->args[1] = n; 627 cb->args[1] = n;
631 628
@@ -770,7 +767,7 @@ static int __init genl_init(void)
770 767
771 /* we'll bump the group number right afterwards */ 768 /* we'll bump the group number right afterwards */
772 genl_sock = netlink_kernel_create(&init_net, NETLINK_GENERIC, 0, 769 genl_sock = netlink_kernel_create(&init_net, NETLINK_GENERIC, 0,
773 genl_rcv, NULL, THIS_MODULE); 770 genl_rcv, &genl_mutex, THIS_MODULE);
774 if (genl_sock == NULL) 771 if (genl_sock == NULL)
775 panic("GENL: Cannot initialize generic netlink\n"); 772 panic("GENL: Cannot initialize generic netlink\n");
776 773
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 5bc1ed490180..6807c97985a5 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -28,6 +28,7 @@
28 * $Id: sch_htb.c,v 1.25 2003/12/07 11:08:25 devik Exp devik $ 28 * $Id: sch_htb.c,v 1.25 2003/12/07 11:08:25 devik Exp devik $
29 */ 29 */
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/moduleparam.h>
31#include <linux/types.h> 32#include <linux/types.h>
32#include <linux/kernel.h> 33#include <linux/kernel.h>
33#include <linux/string.h> 34#include <linux/string.h>
@@ -53,13 +54,17 @@
53*/ 54*/
54 55
55#define HTB_HSIZE 16 /* classid hash size */ 56#define HTB_HSIZE 16 /* classid hash size */
56#define HTB_HYSTERESIS 1 /* whether to use mode hysteresis for speedup */ 57static int htb_hysteresis __read_mostly = 0; /* whether to use mode hysteresis for speedup */
57#define HTB_VER 0x30011 /* major must be matched with number suplied by TC as version */ 58#define HTB_VER 0x30011 /* major must be matched with number suplied by TC as version */
58 59
59#if HTB_VER >> 16 != TC_HTB_PROTOVER 60#if HTB_VER >> 16 != TC_HTB_PROTOVER
60#error "Mismatched sch_htb.c and pkt_sch.h" 61#error "Mismatched sch_htb.c and pkt_sch.h"
61#endif 62#endif
62 63
64/* Module parameter and sysfs export */
65module_param (htb_hysteresis, int, 0640);
66MODULE_PARM_DESC(htb_hysteresis, "Hysteresis mode, less CPU load, less accurate");
67
63/* used internaly to keep status of single class */ 68/* used internaly to keep status of single class */
64enum htb_cmode { 69enum htb_cmode {
65 HTB_CANT_SEND, /* class can't send and can't borrow */ 70 HTB_CANT_SEND, /* class can't send and can't borrow */
@@ -462,19 +467,21 @@ static void htb_deactivate_prios(struct htb_sched *q, struct htb_class *cl)
462 htb_remove_class_from_row(q, cl, mask); 467 htb_remove_class_from_row(q, cl, mask);
463} 468}
464 469
465#if HTB_HYSTERESIS
466static inline long htb_lowater(const struct htb_class *cl) 470static inline long htb_lowater(const struct htb_class *cl)
467{ 471{
468 return cl->cmode != HTB_CANT_SEND ? -cl->cbuffer : 0; 472 if (htb_hysteresis)
473 return cl->cmode != HTB_CANT_SEND ? -cl->cbuffer : 0;
474 else
475 return 0;
469} 476}
470static inline long htb_hiwater(const struct htb_class *cl) 477static inline long htb_hiwater(const struct htb_class *cl)
471{ 478{
472 return cl->cmode == HTB_CAN_SEND ? -cl->buffer : 0; 479 if (htb_hysteresis)
480 return cl->cmode == HTB_CAN_SEND ? -cl->buffer : 0;
481 else
482 return 0;
473} 483}
474#else 484
475#define htb_lowater(cl) (0)
476#define htb_hiwater(cl) (0)
477#endif
478 485
479/** 486/**
480 * htb_class_mode - computes and returns current class mode 487 * htb_class_mode - computes and returns current class mode
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 532634861db1..024c3ebd9661 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -474,6 +474,15 @@ static void sctp_association_destroy(struct sctp_association *asoc)
474void sctp_assoc_set_primary(struct sctp_association *asoc, 474void sctp_assoc_set_primary(struct sctp_association *asoc,
475 struct sctp_transport *transport) 475 struct sctp_transport *transport)
476{ 476{
477 int changeover = 0;
478
479 /* it's a changeover only if we already have a primary path
480 * that we are changing
481 */
482 if (asoc->peer.primary_path != NULL &&
483 asoc->peer.primary_path != transport)
484 changeover = 1 ;
485
477 asoc->peer.primary_path = transport; 486 asoc->peer.primary_path = transport;
478 487
479 /* Set a default msg_name for events. */ 488 /* Set a default msg_name for events. */
@@ -499,12 +508,12 @@ void sctp_assoc_set_primary(struct sctp_association *asoc,
499 * double switch to the same destination address. 508 * double switch to the same destination address.
500 */ 509 */
501 if (transport->cacc.changeover_active) 510 if (transport->cacc.changeover_active)
502 transport->cacc.cycling_changeover = 1; 511 transport->cacc.cycling_changeover = changeover;
503 512
504 /* 2) The sender MUST set CHANGEOVER_ACTIVE to indicate that 513 /* 2) The sender MUST set CHANGEOVER_ACTIVE to indicate that
505 * a changeover has occurred. 514 * a changeover has occurred.
506 */ 515 */
507 transport->cacc.changeover_active = 1; 516 transport->cacc.changeover_active = changeover;
508 517
509 /* 3) The sender MUST store the next TSN to be sent in 518 /* 3) The sender MUST store the next TSN to be sent in
510 * next_tsn_at_change. 519 * next_tsn_at_change.
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index b435a193c5df..9258dfe784ae 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -108,14 +108,23 @@ static __init int sctp_proc_init(void)
108 } 108 }
109 109
110 if (sctp_snmp_proc_init()) 110 if (sctp_snmp_proc_init())
111 goto out_nomem; 111 goto out_snmp_proc_init;
112 if (sctp_eps_proc_init()) 112 if (sctp_eps_proc_init())
113 goto out_nomem; 113 goto out_eps_proc_init;
114 if (sctp_assocs_proc_init()) 114 if (sctp_assocs_proc_init())
115 goto out_nomem; 115 goto out_assocs_proc_init;
116 116
117 return 0; 117 return 0;
118 118
119out_assocs_proc_init:
120 sctp_eps_proc_exit();
121out_eps_proc_init:
122 sctp_snmp_proc_exit();
123out_snmp_proc_init:
124 if (proc_net_sctp) {
125 proc_net_sctp = NULL;
126 remove_proc_entry("sctp", init_net.proc_net);
127 }
119out_nomem: 128out_nomem:
120 return -ENOMEM; 129 return -ENOMEM;
121} 130}
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index e7e3baf7009e..0dbcde6758ea 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -4401,7 +4401,9 @@ static int sctp_getsockopt_local_addrs_old(struct sock *sk, int len,
4401 if (copy_from_user(&getaddrs, optval, len)) 4401 if (copy_from_user(&getaddrs, optval, len))
4402 return -EFAULT; 4402 return -EFAULT;
4403 4403
4404 if (getaddrs.addr_num <= 0) return -EINVAL; 4404 if (getaddrs.addr_num <= 0 ||
4405 getaddrs.addr_num >= (INT_MAX / sizeof(union sctp_addr)))
4406 return -EINVAL;
4405 /* 4407 /*
4406 * For UDP-style sockets, id specifies the association to query. 4408 * For UDP-style sockets, id specifies the association to query.
4407 * If the id field is set to the value '0' then the locally bound 4409 * If the id field is set to the value '0' then the locally bound
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index e18cd3628db4..657835f227d3 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -169,6 +169,11 @@ static inline int unix_may_send(struct sock *sk, struct sock *osk)
169 return (unix_peer(osk) == NULL || unix_our_peer(sk, osk)); 169 return (unix_peer(osk) == NULL || unix_our_peer(sk, osk));
170} 170}
171 171
172static inline int unix_recvq_full(struct sock const *sk)
173{
174 return skb_queue_len(&sk->sk_receive_queue) > sk->sk_max_ack_backlog;
175}
176
172static struct sock *unix_peer_get(struct sock *s) 177static struct sock *unix_peer_get(struct sock *s)
173{ 178{
174 struct sock *peer; 179 struct sock *peer;
@@ -482,6 +487,8 @@ static int unix_socketpair(struct socket *, struct socket *);
482static int unix_accept(struct socket *, struct socket *, int); 487static int unix_accept(struct socket *, struct socket *, int);
483static int unix_getname(struct socket *, struct sockaddr *, int *, int); 488static int unix_getname(struct socket *, struct sockaddr *, int *, int);
484static unsigned int unix_poll(struct file *, struct socket *, poll_table *); 489static unsigned int unix_poll(struct file *, struct socket *, poll_table *);
490static unsigned int unix_datagram_poll(struct file *, struct socket *,
491 poll_table *);
485static int unix_ioctl(struct socket *, unsigned int, unsigned long); 492static int unix_ioctl(struct socket *, unsigned int, unsigned long);
486static int unix_shutdown(struct socket *, int); 493static int unix_shutdown(struct socket *, int);
487static int unix_stream_sendmsg(struct kiocb *, struct socket *, 494static int unix_stream_sendmsg(struct kiocb *, struct socket *,
@@ -527,7 +534,7 @@ static const struct proto_ops unix_dgram_ops = {
527 .socketpair = unix_socketpair, 534 .socketpair = unix_socketpair,
528 .accept = sock_no_accept, 535 .accept = sock_no_accept,
529 .getname = unix_getname, 536 .getname = unix_getname,
530 .poll = datagram_poll, 537 .poll = unix_datagram_poll,
531 .ioctl = unix_ioctl, 538 .ioctl = unix_ioctl,
532 .listen = sock_no_listen, 539 .listen = sock_no_listen,
533 .shutdown = unix_shutdown, 540 .shutdown = unix_shutdown,
@@ -548,7 +555,7 @@ static const struct proto_ops unix_seqpacket_ops = {
548 .socketpair = unix_socketpair, 555 .socketpair = unix_socketpair,
549 .accept = unix_accept, 556 .accept = unix_accept,
550 .getname = unix_getname, 557 .getname = unix_getname,
551 .poll = datagram_poll, 558 .poll = unix_datagram_poll,
552 .ioctl = unix_ioctl, 559 .ioctl = unix_ioctl,
553 .listen = unix_listen, 560 .listen = unix_listen,
554 .shutdown = unix_shutdown, 561 .shutdown = unix_shutdown,
@@ -983,8 +990,7 @@ static long unix_wait_for_peer(struct sock *other, long timeo)
983 990
984 sched = !sock_flag(other, SOCK_DEAD) && 991 sched = !sock_flag(other, SOCK_DEAD) &&
985 !(other->sk_shutdown & RCV_SHUTDOWN) && 992 !(other->sk_shutdown & RCV_SHUTDOWN) &&
986 (skb_queue_len(&other->sk_receive_queue) > 993 unix_recvq_full(other);
987 other->sk_max_ack_backlog);
988 994
989 unix_state_unlock(other); 995 unix_state_unlock(other);
990 996
@@ -1058,8 +1064,7 @@ restart:
1058 if (other->sk_state != TCP_LISTEN) 1064 if (other->sk_state != TCP_LISTEN)
1059 goto out_unlock; 1065 goto out_unlock;
1060 1066
1061 if (skb_queue_len(&other->sk_receive_queue) > 1067 if (unix_recvq_full(other)) {
1062 other->sk_max_ack_backlog) {
1063 err = -EAGAIN; 1068 err = -EAGAIN;
1064 if (!timeo) 1069 if (!timeo)
1065 goto out_unlock; 1070 goto out_unlock;
@@ -1428,9 +1433,7 @@ restart:
1428 goto out_unlock; 1433 goto out_unlock;
1429 } 1434 }
1430 1435
1431 if (unix_peer(other) != sk && 1436 if (unix_peer(other) != sk && unix_recvq_full(other)) {
1432 (skb_queue_len(&other->sk_receive_queue) >
1433 other->sk_max_ack_backlog)) {
1434 if (!timeo) { 1437 if (!timeo) {
1435 err = -EAGAIN; 1438 err = -EAGAIN;
1436 goto out_unlock; 1439 goto out_unlock;
@@ -1991,6 +1994,64 @@ static unsigned int unix_poll(struct file * file, struct socket *sock, poll_tabl
1991 return mask; 1994 return mask;
1992} 1995}
1993 1996
1997static unsigned int unix_datagram_poll(struct file *file, struct socket *sock,
1998 poll_table *wait)
1999{
2000 struct sock *sk = sock->sk, *peer;
2001 unsigned int mask;
2002
2003 poll_wait(file, sk->sk_sleep, wait);
2004
2005 peer = unix_peer_get(sk);
2006 if (peer) {
2007 if (peer != sk) {
2008 /*
2009 * Writability of a connected socket additionally
2010 * depends on the state of the receive queue of the
2011 * peer.
2012 */
2013 poll_wait(file, &unix_sk(peer)->peer_wait, wait);
2014 } else {
2015 sock_put(peer);
2016 peer = NULL;
2017 }
2018 }
2019
2020 mask = 0;
2021
2022 /* exceptional events? */
2023 if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue))
2024 mask |= POLLERR;
2025 if (sk->sk_shutdown & RCV_SHUTDOWN)
2026 mask |= POLLRDHUP;
2027 if (sk->sk_shutdown == SHUTDOWN_MASK)
2028 mask |= POLLHUP;
2029
2030 /* readable? */
2031 if (!skb_queue_empty(&sk->sk_receive_queue) ||
2032 (sk->sk_shutdown & RCV_SHUTDOWN))
2033 mask |= POLLIN | POLLRDNORM;
2034
2035 /* Connection-based need to check for termination and startup */
2036 if (sk->sk_type == SOCK_SEQPACKET) {
2037 if (sk->sk_state == TCP_CLOSE)
2038 mask |= POLLHUP;
2039 /* connection hasn't started yet? */
2040 if (sk->sk_state == TCP_SYN_SENT)
2041 return mask;
2042 }
2043
2044 /* writable? */
2045 if (unix_writable(sk) && !(peer && unix_recvq_full(peer)))
2046 mask |= POLLOUT | POLLWRNORM | POLLWRBAND;
2047 else
2048 set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags);
2049
2050 if (peer)
2051 sock_put(peer);
2052
2053 return mask;
2054}
1994 2055
1995#ifdef CONFIG_PROC_FS 2056#ifdef CONFIG_PROC_FS
1996static struct sock *first_unix_socket(int *i) 2057static struct sock *first_unix_socket(int *i)
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 508c5895c680..a07f91aac920 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -467,6 +467,25 @@ static void parse_elf_finish(struct elf_info *info)
467 release_file(info->hdr, info->size); 467 release_file(info->hdr, info->size);
468} 468}
469 469
470static int ignore_undef_symbol(struct elf_info *info, const char *symname)
471{
472 /* ignore __this_module, it will be resolved shortly */
473 if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)
474 return 1;
475 /* ignore global offset table */
476 if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0)
477 return 1;
478 if (info->hdr->e_machine == EM_PPC)
479 /* Special register function linked on all modules during final link of .ko */
480 if (strncmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 ||
481 strncmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 ||
482 strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
483 strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0)
484 return 1;
485 /* Do not ignore this symbol */
486 return 0;
487}
488
470#define CRC_PFX MODULE_SYMBOL_PREFIX "__crc_" 489#define CRC_PFX MODULE_SYMBOL_PREFIX "__crc_"
471#define KSYMTAB_PFX MODULE_SYMBOL_PREFIX "__ksymtab_" 490#define KSYMTAB_PFX MODULE_SYMBOL_PREFIX "__ksymtab_"
472 491
@@ -493,11 +512,7 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
493 if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL && 512 if (ELF_ST_BIND(sym->st_info) != STB_GLOBAL &&
494 ELF_ST_BIND(sym->st_info) != STB_WEAK) 513 ELF_ST_BIND(sym->st_info) != STB_WEAK)
495 break; 514 break;
496 /* ignore global offset table */ 515 if (ignore_undef_symbol(info, symname))
497 if (strcmp(symname, "_GLOBAL_OFFSET_TABLE_") == 0)
498 break;
499 /* ignore __this_module, it will be resolved shortly */
500 if (strcmp(symname, MODULE_SYMBOL_PREFIX "__this_module") == 0)
501 break; 516 break;
502/* cope with newer glibc (2.3.4 or higher) STT_ definition in elf.h */ 517/* cope with newer glibc (2.3.4 or higher) STT_ definition in elf.h */
503#if defined(STT_REGISTER) || defined(STT_SPARC_REGISTER) 518#if defined(STT_REGISTER) || defined(STT_SPARC_REGISTER)
diff --git a/security/dummy.c b/security/dummy.c
index f50c6c3c32c9..b8916883b77f 100644
--- a/security/dummy.c
+++ b/security/dummy.c
@@ -27,6 +27,8 @@
27#include <linux/hugetlb.h> 27#include <linux/hugetlb.h>
28#include <linux/ptrace.h> 28#include <linux/ptrace.h>
29#include <linux/file.h> 29#include <linux/file.h>
30#include <linux/prctl.h>
31#include <linux/securebits.h>
30 32
31static int dummy_ptrace (struct task_struct *parent, struct task_struct *child) 33static int dummy_ptrace (struct task_struct *parent, struct task_struct *child)
32{ 34{
@@ -607,7 +609,27 @@ static int dummy_task_kill (struct task_struct *p, struct siginfo *info,
607static int dummy_task_prctl (int option, unsigned long arg2, unsigned long arg3, 609static int dummy_task_prctl (int option, unsigned long arg2, unsigned long arg3,
608 unsigned long arg4, unsigned long arg5, long *rc_p) 610 unsigned long arg4, unsigned long arg5, long *rc_p)
609{ 611{
610 return 0; 612 switch (option) {
613 case PR_CAPBSET_READ:
614 *rc_p = (cap_valid(arg2) ? 1 : -EINVAL);
615 break;
616 case PR_GET_KEEPCAPS:
617 *rc_p = issecure(SECURE_KEEP_CAPS);
618 break;
619 case PR_SET_KEEPCAPS:
620 if (arg2 > 1)
621 *rc_p = -EINVAL;
622 else if (arg2)
623 current->securebits |= issecure_mask(SECURE_KEEP_CAPS);
624 else
625 current->securebits &=
626 ~issecure_mask(SECURE_KEEP_CAPS);
627 break;
628 default:
629 return 0;
630 }
631
632 return 1;
611} 633}
612 634
613static void dummy_task_reparent_to_init (struct task_struct *p) 635static void dummy_task_reparent_to_init (struct task_struct *p)
diff --git a/sound/isa/sb/sb_mixer.c b/sound/isa/sb/sb_mixer.c
index 91d14224f6b3..73d4572d136b 100644
--- a/sound/isa/sb/sb_mixer.c
+++ b/sound/isa/sb/sb_mixer.c
@@ -925,7 +925,7 @@ static unsigned char als4000_saved_regs[] = {
925static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs) 925static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
926{ 926{
927 unsigned char *val = chip->saved_regs; 927 unsigned char *val = chip->saved_regs;
928 snd_assert(num_regs > ARRAY_SIZE(chip->saved_regs), return); 928 snd_assert(num_regs <= ARRAY_SIZE(chip->saved_regs), return);
929 for (; num_regs; num_regs--) 929 for (; num_regs; num_regs--)
930 *val++ = snd_sbmixer_read(chip, *regs++); 930 *val++ = snd_sbmixer_read(chip, *regs++);
931} 931}
@@ -933,7 +933,7 @@ static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
933static void restore_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs) 933static void restore_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
934{ 934{
935 unsigned char *val = chip->saved_regs; 935 unsigned char *val = chip->saved_regs;
936 snd_assert(num_regs > ARRAY_SIZE(chip->saved_regs), return); 936 snd_assert(num_regs <= ARRAY_SIZE(chip->saved_regs), return);
937 for (; num_regs; num_regs--) 937 for (; num_regs; num_regs--)
938 snd_sbmixer_write(chip, *regs++, *val++); 938 snd_sbmixer_write(chip, *regs++, *val++);
939} 939}
diff --git a/sound/pci/aw2/aw2-alsa.c b/sound/pci/aw2/aw2-alsa.c
index 56f87cd33c19..3f00ddf450f8 100644
--- a/sound/pci/aw2/aw2-alsa.c
+++ b/sound/pci/aw2/aw2-alsa.c
@@ -316,6 +316,8 @@ static int __devinit snd_aw2_create(struct snd_card *card,
316 return -ENOMEM; 316 return -ENOMEM;
317 } 317 }
318 318
319 /* (2) initialization of the chip hardware */
320 snd_aw2_saa7146_setup(&chip->saa7146, chip->iobase_virt);
319 321
320 if (request_irq(pci->irq, snd_aw2_saa7146_interrupt, 322 if (request_irq(pci->irq, snd_aw2_saa7146_interrupt,
321 IRQF_SHARED, "Audiowerk2", chip)) { 323 IRQF_SHARED, "Audiowerk2", chip)) {
@@ -329,8 +331,6 @@ static int __devinit snd_aw2_create(struct snd_card *card,
329 } 331 }
330 chip->irq = pci->irq; 332 chip->irq = pci->irq;
331 333
332 /* (2) initialization of the chip hardware */
333 snd_aw2_saa7146_setup(&chip->saa7146, chip->iobase_virt);
334 err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); 334 err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops);
335 if (err < 0) { 335 if (err < 0) {
336 free_irq(chip->irq, (void *)chip); 336 free_irq(chip->irq, (void *)chip);
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 518b7cab5102..b0a2a262ece2 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -8642,6 +8642,7 @@ static struct hda_verb alc262_sony_unsol_verbs[] = {
8642 8642
8643 {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, 8643 {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT},
8644 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, 8644 {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
8645 {}
8645}; 8646};
8646 8647
8647/* mute/unmute internal speaker according to the hp jack and mute state */ 8648/* mute/unmute internal speaker according to the hp jack and mute state */
diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c
index cc0cddadd589..6facac5aed90 100644
--- a/sound/pci/oxygen/oxygen_mixer.c
+++ b/sound/pci/oxygen/oxygen_mixer.c
@@ -936,11 +936,13 @@ static int add_controls(struct oxygen *chip,
936 936
937 for (i = 0; i < count; ++i) { 937 for (i = 0; i < count; ++i) {
938 template = controls[i]; 938 template = controls[i];
939 err = chip->model->control_filter(&template); 939 if (chip->model->control_filter) {
940 if (err < 0) 940 err = chip->model->control_filter(&template);
941 return err; 941 if (err < 0)
942 if (err == 1) 942 return err;
943 continue; 943 if (err == 1)
944 continue;
945 }
944 if (!strcmp(template.name, "Master Playback Volume") && 946 if (!strcmp(template.name, "Master Playback Volume") &&
945 chip->model->dac_tlv) { 947 chip->model->dac_tlv) {
946 template.tlv.p = chip->model->dac_tlv; 948 template.tlv.p = chip->model->dac_tlv;
diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c
index 4232fd75dd20..1dcf9f3d1107 100644
--- a/virt/kvm/ioapic.c
+++ b/virt/kvm/ioapic.c
@@ -45,7 +45,7 @@
45#else 45#else
46#define ioapic_debug(fmt, arg...) 46#define ioapic_debug(fmt, arg...)
47#endif 47#endif
48static void ioapic_deliver(struct kvm_ioapic *vioapic, int irq); 48static int ioapic_deliver(struct kvm_ioapic *vioapic, int irq);
49 49
50static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic, 50static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic,
51 unsigned long addr, 51 unsigned long addr,
@@ -89,8 +89,8 @@ static void ioapic_service(struct kvm_ioapic *ioapic, unsigned int idx)
89 pent = &ioapic->redirtbl[idx]; 89 pent = &ioapic->redirtbl[idx];
90 90
91 if (!pent->fields.mask) { 91 if (!pent->fields.mask) {
92 ioapic_deliver(ioapic, idx); 92 int injected = ioapic_deliver(ioapic, idx);
93 if (pent->fields.trig_mode == IOAPIC_LEVEL_TRIG) 93 if (injected && pent->fields.trig_mode == IOAPIC_LEVEL_TRIG)
94 pent->fields.remote_irr = 1; 94 pent->fields.remote_irr = 1;
95 } 95 }
96 if (!pent->fields.trig_mode) 96 if (!pent->fields.trig_mode)
@@ -133,7 +133,7 @@ static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val)
133 } 133 }
134} 134}
135 135
136static void ioapic_inj_irq(struct kvm_ioapic *ioapic, 136static int ioapic_inj_irq(struct kvm_ioapic *ioapic,
137 struct kvm_vcpu *vcpu, 137 struct kvm_vcpu *vcpu,
138 u8 vector, u8 trig_mode, u8 delivery_mode) 138 u8 vector, u8 trig_mode, u8 delivery_mode)
139{ 139{
@@ -143,7 +143,7 @@ static void ioapic_inj_irq(struct kvm_ioapic *ioapic,
143 ASSERT((delivery_mode == IOAPIC_FIXED) || 143 ASSERT((delivery_mode == IOAPIC_FIXED) ||
144 (delivery_mode == IOAPIC_LOWEST_PRIORITY)); 144 (delivery_mode == IOAPIC_LOWEST_PRIORITY));
145 145
146 kvm_apic_set_irq(vcpu, vector, trig_mode); 146 return kvm_apic_set_irq(vcpu, vector, trig_mode);
147} 147}
148 148
149static u32 ioapic_get_delivery_bitmask(struct kvm_ioapic *ioapic, u8 dest, 149static u32 ioapic_get_delivery_bitmask(struct kvm_ioapic *ioapic, u8 dest,
@@ -186,7 +186,7 @@ static u32 ioapic_get_delivery_bitmask(struct kvm_ioapic *ioapic, u8 dest,
186 return mask; 186 return mask;
187} 187}
188 188
189static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq) 189static int ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
190{ 190{
191 u8 dest = ioapic->redirtbl[irq].fields.dest_id; 191 u8 dest = ioapic->redirtbl[irq].fields.dest_id;
192 u8 dest_mode = ioapic->redirtbl[irq].fields.dest_mode; 192 u8 dest_mode = ioapic->redirtbl[irq].fields.dest_mode;
@@ -195,7 +195,7 @@ static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
195 u8 trig_mode = ioapic->redirtbl[irq].fields.trig_mode; 195 u8 trig_mode = ioapic->redirtbl[irq].fields.trig_mode;
196 u32 deliver_bitmask; 196 u32 deliver_bitmask;
197 struct kvm_vcpu *vcpu; 197 struct kvm_vcpu *vcpu;
198 int vcpu_id; 198 int vcpu_id, r = 0;
199 199
200 ioapic_debug("dest=%x dest_mode=%x delivery_mode=%x " 200 ioapic_debug("dest=%x dest_mode=%x delivery_mode=%x "
201 "vector=%x trig_mode=%x\n", 201 "vector=%x trig_mode=%x\n",
@@ -204,7 +204,7 @@ static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
204 deliver_bitmask = ioapic_get_delivery_bitmask(ioapic, dest, dest_mode); 204 deliver_bitmask = ioapic_get_delivery_bitmask(ioapic, dest, dest_mode);
205 if (!deliver_bitmask) { 205 if (!deliver_bitmask) {
206 ioapic_debug("no target on destination\n"); 206 ioapic_debug("no target on destination\n");
207 return; 207 return 0;
208 } 208 }
209 209
210 switch (delivery_mode) { 210 switch (delivery_mode) {
@@ -216,7 +216,7 @@ static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
216 vcpu = ioapic->kvm->vcpus[0]; 216 vcpu = ioapic->kvm->vcpus[0];
217#endif 217#endif
218 if (vcpu != NULL) 218 if (vcpu != NULL)
219 ioapic_inj_irq(ioapic, vcpu, vector, 219 r = ioapic_inj_irq(ioapic, vcpu, vector,
220 trig_mode, delivery_mode); 220 trig_mode, delivery_mode);
221 else 221 else
222 ioapic_debug("null lowest prio vcpu: " 222 ioapic_debug("null lowest prio vcpu: "
@@ -234,7 +234,7 @@ static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
234 deliver_bitmask &= ~(1 << vcpu_id); 234 deliver_bitmask &= ~(1 << vcpu_id);
235 vcpu = ioapic->kvm->vcpus[vcpu_id]; 235 vcpu = ioapic->kvm->vcpus[vcpu_id];
236 if (vcpu) { 236 if (vcpu) {
237 ioapic_inj_irq(ioapic, vcpu, vector, 237 r = ioapic_inj_irq(ioapic, vcpu, vector,
238 trig_mode, delivery_mode); 238 trig_mode, delivery_mode);
239 } 239 }
240 } 240 }
@@ -246,6 +246,7 @@ static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
246 delivery_mode); 246 delivery_mode);
247 break; 247 break;
248 } 248 }
249 return r;
249} 250}
250 251
251void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level) 252void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level)
@@ -268,28 +269,9 @@ void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level)
268 } 269 }
269} 270}
270 271
271static int get_eoi_gsi(struct kvm_ioapic *ioapic, int vector) 272static void __kvm_ioapic_update_eoi(struct kvm_ioapic *ioapic, int gsi)
272{ 273{
273 int i;
274
275 for (i = 0; i < IOAPIC_NUM_PINS; i++)
276 if (ioapic->redirtbl[i].fields.vector == vector)
277 return i;
278 return -1;
279}
280
281void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
282{
283 struct kvm_ioapic *ioapic = kvm->arch.vioapic;
284 union ioapic_redir_entry *ent; 274 union ioapic_redir_entry *ent;
285 int gsi;
286
287 gsi = get_eoi_gsi(ioapic, vector);
288 if (gsi == -1) {
289 printk(KERN_WARNING "Can't find redir item for %d EOI\n",
290 vector);
291 return;
292 }
293 275
294 ent = &ioapic->redirtbl[gsi]; 276 ent = &ioapic->redirtbl[gsi];
295 ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG); 277 ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG);
@@ -299,6 +281,16 @@ void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
299 ioapic_deliver(ioapic, gsi); 281 ioapic_deliver(ioapic, gsi);
300} 282}
301 283
284void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
285{
286 struct kvm_ioapic *ioapic = kvm->arch.vioapic;
287 int i;
288
289 for (i = 0; i < IOAPIC_NUM_PINS; i++)
290 if (ioapic->redirtbl[i].fields.vector == vector)
291 __kvm_ioapic_update_eoi(ioapic, i);
292}
293
302static int ioapic_in_range(struct kvm_io_device *this, gpa_t addr) 294static int ioapic_in_range(struct kvm_io_device *this, gpa_t addr)
303{ 295{
304 struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private; 296 struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private;