aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore11
-rw-r--r--Documentation/DocBook/kgdb.tmpl20
-rw-r--r--Documentation/cpusets.txt2
-rw-r--r--Documentation/feature-removal-schedule.txt9
-rw-r--r--Documentation/filesystems/sysfs-pci.txt1
-rw-r--r--Documentation/hwmon/sysfs-interface33
-rw-r--r--Documentation/i2c/writing-clients18
-rw-r--r--Documentation/networking/ip-sysctl.txt12
-rw-r--r--Documentation/video4linux/CARDLIST.au08282
-rw-r--r--MAINTAINERS14
-rw-r--r--Makefile2
-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/common/dmabounce.c3
-rw-r--r--arch/arm/mach-omap2/gpmc.c2
-rw-r--r--arch/arm/mach-realview/platsmp.c2
-rw-r--r--arch/arm/plat-omap/dma.c2
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c6
-rw-r--r--arch/blackfin/kernel/irqchip.c5
-rw-r--r--arch/ia64/Makefile1
-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.c6
-rw-r--r--arch/ia64/kernel/time.c1
-rw-r--r--arch/ia64/sn/kernel/sn2/sn2_smp.c2
-rw-r--r--arch/ia64/uv/kernel/setup.c12
-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/powerpc/Makefile4
-rw-r--r--arch/powerpc/boot/Makefile5
-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/legacy_serial.c5
-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/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/52xx/lite5200_pm.c14
-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/x86/Kconfig9
-rw-r--r--arch/x86/kernel/Makefile1
-rw-r--r--arch/x86/kernel/geode_32.c5
-rw-r--r--arch/x86/kernel/i387.c4
-rw-r--r--arch/x86/kernel/kvmclock.c89
-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/setup_32.c10
-rw-r--r--arch/x86/kernel/smpboot.c1
-rw-r--r--arch/x86/kernel/tsc_32.c18
-rw-r--r--arch/x86/kvm/i8254.c9
-rw-r--r--arch/x86/kvm/lapic.c1
-rw-r--r--arch/x86/kvm/mmu.c19
-rw-r--r--arch/x86/kvm/vmx.c19
-rw-r--r--arch/x86/kvm/x86.c91
-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/init_64.c8
-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.c132
-rw-r--r--arch/x86/xen/xen-head.S6
-rw-r--r--block/as-iosched.c2
-rw-r--r--drivers/acpi/ac.c8
-rw-r--r--drivers/acpi/bay.c3
-rw-r--r--drivers/acpi/dock.c3
-rw-r--r--drivers/acpi/glue.c3
-rw-r--r--drivers/acpi/video.c3
-rw-r--r--drivers/ata/Kconfig10
-rw-r--r--drivers/ata/ahci.c23
-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/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.c4
-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/i915_irq.c4
-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/tty_io.c2
-rw-r--r--drivers/char/tty_ioctl.c7
-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/i2c/busses/i2c-s3c2410.c28
-rw-r--r--drivers/ide/arm/palm_bk3710.c22
-rw-r--r--drivers/ide/ide-generic.c9
-rw-r--r--drivers/ide/ide-proc.c2
-rw-r--r--drivers/ide/ide-taskfile.c6
-rw-r--r--drivers/ide/legacy/ide-cs.c44
-rw-r--r--drivers/ide/pci/opti621.c221
-rw-r--r--drivers/ide/ppc/pmac.c60
-rw-r--r--drivers/ieee1394/Kconfig118
-rw-r--r--drivers/infiniband/core/uverbs_main.c2
-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/ff-core.c18
-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/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/md/dm-crypt.c1
-rw-r--r--drivers/md/md.c6
-rw-r--r--drivers/md/raid10.c2
-rw-r--r--drivers/md/raid5.c7
-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/Kconfig8
-rw-r--r--drivers/media/video/Makefile2
-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/uvc/Makefile3
-rw-r--r--drivers/media/video/uvc/uvc_ctrl.c1256
-rw-r--r--drivers/media/video/uvc/uvc_driver.c1955
-rw-r--r--drivers/media/video/uvc/uvc_isight.c134
-rw-r--r--drivers/media/video/uvc/uvc_queue.c477
-rw-r--r--drivers/media/video/uvc/uvc_status.c207
-rw-r--r--drivers/media/video/uvc/uvc_v4l2.c1105
-rw-r--r--drivers/media/video/uvc/uvc_video.c934
-rw-r--r--drivers/media/video/uvc/uvcvideo.h796
-rw-r--r--drivers/media/video/videodev.c245
-rw-r--r--drivers/media/video/vivi.c7
-rw-r--r--drivers/net/ehea/ehea.h8
-rw-r--r--drivers/net/ehea/ehea_main.c42
-rw-r--r--drivers/net/forcedeth.c15
-rw-r--r--drivers/net/fs_enet/mac-fcc.c3
-rw-r--r--drivers/net/ibm_newemac/core.c8
-rw-r--r--drivers/net/pasemi_mac.c2
-rw-r--r--drivers/net/wan/hdlc_fr.c1
-rw-r--r--drivers/net/wireless/hostap/hostap_80211_rx.c8
-rw-r--r--drivers/net/wireless/hostap/hostap_ap.c2
-rw-r--r--drivers/net/wireless/hostap/hostap_cs.c8
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c10
-rw-r--r--drivers/net/wireless/hostap/hostap_main.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c3
-rw-r--r--drivers/net/wireless/libertas/if_usb.c1
-rw-r--r--drivers/pci/access.c14
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c17
-rw-r--r--drivers/pci/pci-driver.c2
-rw-r--r--drivers/pci/pci-sysfs.c89
-rw-r--r--drivers/pci/pci.h2
-rw-r--r--drivers/pci/quirks.c42
-rw-r--r--drivers/rtc/rtc-sa1100.c4
-rw-r--r--drivers/scsi/dpt/dptsig.h3
-rw-r--r--drivers/scsi/esp_scsi.c22
-rw-r--r--drivers/scsi/hosts.c9
-rw-r--r--drivers/scsi/ses.c2
-rw-r--r--drivers/scsi/sr.c3
-rw-r--r--drivers/serial/bfin_5xx.c40
-rw-r--r--drivers/thermal/Kconfig9
-rw-r--r--drivers/thermal/thermal_sys.c4
-rw-r--r--drivers/usb/core/quirks.c3
-rw-r--r--drivers/video/pxafb.c52
-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/buffer.c13
-rw-r--r--fs/dcache.c68
-rw-r--r--fs/exec.c8
-rw-r--r--fs/ext4/resize.c3
-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/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/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/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-blackfin/mach-bf527/bfin_serial_5xx.h2
-rw-r--r--include/asm-blackfin/mach-bf533/bfin_serial_5xx.h2
-rw-r--r--include/asm-blackfin/mach-bf537/bfin_serial_5xx.h2
-rw-r--r--include/asm-blackfin/mach-bf548/bfin_serial_5xx.h6
-rw-r--r--include/asm-blackfin/mach-bf561/bfin_serial_5xx.h2
-rw-r--r--include/asm-generic/Kbuild.asm2
-rw-r--r--include/asm-ia64/sn/simulator.h7
-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-powerpc/Kbuild1
-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-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/msr.h2
-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/dcache.h2
-rw-r--r--include/linux/fs.h3
-rw-r--r--include/linux/i2c.h2
-rw-r--r--include/linux/input.h2
-rw-r--r--include/linux/kvm_host.h1
-rw-r--r--include/linux/pci.h1
-rw-r--r--include/linux/thermal.h6
-rw-r--r--include/linux/tty_driver.h5
-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/mac80211.h9
-rw-r--r--include/net/sch_generic.h2
-rw-r--r--include/xen/interface/xen.h7
-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/rcuclassic.c16
-rw-r--r--kernel/rcupreempt.c2
-rw-r--r--kernel/sched.c52
-rw-r--r--kernel/sched_rt.c66
-rw-r--r--kernel/sched_stats.h6
-rw-r--r--kernel/softlockup.c15
-rw-r--r--lib/debugobjects.c15
-rw-r--r--lib/ts_bm.c2
-rw-r--r--mm/bootmem.c6
-rw-r--r--mm/memory.c67
-rw-r--r--mm/migrate.c10
-rw-r--r--mm/slab.c5
-rw-r--r--net/bridge/br_if.c10
-rw-r--r--net/core/dev.c4
-rw-r--r--net/core/fib_rules.c4
-rw-r--r--net/core/filter.c1
-rw-r--r--net/ipv4/tcp.c4
-rw-r--r--net/mac80211/wext.c7
-rw-r--r--net/mac80211/wme.c3
-rw-r--r--net/netfilter/nf_conntrack_proto_tcp.c13
-rw-r--r--net/netlink/af_netlink.c2
-rw-r--r--net/sched/sch_api.c6
-rw-r--r--net/sched/sch_atm.c7
-rw-r--r--net/sched/sch_cbq.c8
-rw-r--r--net/sched/sch_dsmark.c2
-rw-r--r--net/sched/sch_hfsc.c6
-rw-r--r--net/sched/sch_htb.c4
-rw-r--r--net/sched/sch_ingress.c2
-rw-r--r--net/sched/sch_prio.c2
-rw-r--r--net/sched/sch_sfq.c2
-rw-r--r--sound/isa/sb/sb_mixer.c4
-rw-r--r--sound/pci/aw2/aw2-alsa.c4
-rw-r--r--sound/pci/oxygen/oxygen_mixer.c12
-rw-r--r--virt/kvm/ioapic.c31
433 files changed, 18211 insertions, 6458 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/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 5378511a5f9f..8319c462c9f0 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -324,3 +324,12 @@ Why: A newer version of the options have been introduced in 2005 that
324 space app that directly uses the old options should convert to using 324 space app that directly uses the old options should convert to using
325 the new options. 325 the new options.
326Who: Vlad Yasevich <vladislav.yasevich@hp.com> 326Who: Vlad Yasevich <vladislav.yasevich@hp.com>
327
328---------------------------
329
330What: CONFIG_THERMAL_HWMON
331When: January 2009
332Why: This option was introduced just to allow older lm-sensors userspace
333 to keep working over the upgrade to 2.6.26. At the scheduled time of
334 removal fixed lm-sensors (2.x or 3.x) should be readily available.
335Who: Rene Herman <rene.herman@gmail.com>
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/i2c/writing-clients b/Documentation/i2c/writing-clients
index ee75cbace28d..d4cd4126d1ad 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -25,12 +25,23 @@ routines, and should be zero-initialized except for fields with data you
25provide. A client structure holds device-specific information like the 25provide. A client structure holds device-specific information like the
26driver model device node, and its I2C address. 26driver model device node, and its I2C address.
27 27
28/* iff driver uses driver model ("new style") binding model: */
29
30static struct i2c_device_id foo_idtable[] = {
31 { "foo", my_id_for_foo },
32 { "bar", my_id_for_bar },
33 { }
34};
35
36MODULE_DEVICE_TABLE(i2c, foo_idtable);
37
28static struct i2c_driver foo_driver = { 38static struct i2c_driver foo_driver = {
29 .driver = { 39 .driver = {
30 .name = "foo", 40 .name = "foo",
31 }, 41 },
32 42
33 /* iff driver uses driver model ("new style") binding model: */ 43 /* iff driver uses driver model ("new style") binding model: */
44 .id_table = foo_ids,
34 .probe = foo_probe, 45 .probe = foo_probe,
35 .remove = foo_remove, 46 .remove = foo_remove,
36 47
@@ -173,10 +184,9 @@ handle may be used during foo_probe(). If foo_probe() reports success
173(zero not a negative status code) it may save the handle and use it until 184(zero not a negative status code) it may save the handle and use it until
174foo_remove() returns. That binding model is used by most Linux drivers. 185foo_remove() returns. That binding model is used by most Linux drivers.
175 186
176Drivers match devices when i2c_client.driver_name and the driver name are 187The probe function is called when an entry in the id_table name field
177the same; this approach is used in several other busses that don't have 188matches the device's name. It is passed the entry that was matched so
178device typing support in the hardware. The driver and module name should 189the driver knows which one in the table matched.
179match, so hotplug/coldplug mechanisms will modprobe the driver.
180 190
181 191
182Device Creation (Standard driver model) 192Device Creation (Standard driver model)
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
index 72f6d52e52e6..a40feaee62ec 100644
--- a/Documentation/networking/ip-sysctl.txt
+++ b/Documentation/networking/ip-sysctl.txt
@@ -81,23 +81,23 @@ inet_peer_minttl - INTEGER
81 Minimum time-to-live of entries. Should be enough to cover fragment 81 Minimum time-to-live of entries. Should be enough to cover fragment
82 time-to-live on the reassembling side. This minimum time-to-live is 82 time-to-live on the reassembling side. This minimum time-to-live is
83 guaranteed if the pool size is less than inet_peer_threshold. 83 guaranteed if the pool size is less than inet_peer_threshold.
84 Measured in jiffies(1). 84 Measured in seconds.
85 85
86inet_peer_maxttl - INTEGER 86inet_peer_maxttl - INTEGER
87 Maximum time-to-live of entries. Unused entries will expire after 87 Maximum time-to-live of entries. Unused entries will expire after
88 this period of time if there is no memory pressure on the pool (i.e. 88 this period of time if there is no memory pressure on the pool (i.e.
89 when the number of entries in the pool is very small). 89 when the number of entries in the pool is very small).
90 Measured in jiffies(1). 90 Measured in seconds.
91 91
92inet_peer_gc_mintime - INTEGER 92inet_peer_gc_mintime - INTEGER
93 Minimum interval between garbage collection passes. This interval is 93 Minimum interval between garbage collection passes. This interval is
94 in effect under high memory pressure on the pool. 94 in effect under high memory pressure on the pool.
95 Measured in jiffies(1). 95 Measured in seconds.
96 96
97inet_peer_gc_maxtime - INTEGER 97inet_peer_gc_maxtime - INTEGER
98 Minimum interval between garbage collection passes. This interval is 98 Minimum interval between garbage collection passes. This interval is
99 in effect under low (or absent) memory pressure on the pool. 99 in effect under low (or absent) memory pressure on the pool.
100 Measured in jiffies(1). 100 Measured in seconds.
101 101
102TCP variables: 102TCP variables:
103 103
@@ -795,10 +795,6 @@ tag - INTEGER
795 Allows you to write a number, which can be used as required. 795 Allows you to write a number, which can be used as required.
796 Default value is 0. 796 Default value is 0.
797 797
798(1) Jiffie: internal timeunit for the kernel. On the i386 1/100s, on the
799Alpha 1/1024s. See the HZ define in /usr/include/asm/param.h for the exact
800value on your system.
801
802Alexey Kuznetsov. 798Alexey Kuznetsov.
803kuznet@ms2.inr.ac.ru 799kuznet@ms2.inr.ac.ru
804 800
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 5ae19d502e0b..9ba00869514b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4302,6 +4302,14 @@ L: netdev@vger.kernel.org
4302W: http://www.linux-usb.org/usbnet 4302W: http://www.linux-usb.org/usbnet
4303S: Maintained 4303S: Maintained
4304 4304
4305USB VIDEO CLASS
4306P: Laurent Pinchart
4307M: laurent.pinchart@skynet.be
4308L: linx-uvc-devel@berlios.de
4309L: video4linux-list@redhat.com
4310W: http://linux-uvc.berlios.de
4311S: Maintained
4312
4305USB W996[87]CF DRIVER 4313USB W996[87]CF DRIVER
4306P: Luca Risolia 4314P: Luca Risolia
4307M: luca.risolia@studio.unibo.it 4315M: luca.risolia@studio.unibo.it
@@ -4419,10 +4427,10 @@ M: johnpol@2ka.mipt.ru
4419S: Maintained 4427S: Maintained
4420 4428
4421W83791D HARDWARE MONITORING DRIVER 4429W83791D HARDWARE MONITORING DRIVER
4422P: Charles Spirakis 4430P: Marc Hulsman
4423M: bezaur@gmail.com 4431M: m.hulsman@tudelft.nl
4424L: lm-sensors@lm-sensors.org 4432L: lm-sensors@lm-sensors.org
4425S: Odd Fixes 4433S: Maintained
4426 4434
4427W83793 HARDWARE MONITORING DRIVER 4435W83793 HARDWARE MONITORING DRIVER
4428P: Rudolf Marek 4436P: Rudolf Marek
diff --git a/Makefile b/Makefile
index 6923d669a4f6..6aff5f47c21d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 26 3SUBLEVEL = 26
4EXTRAVERSION = -rc6 4EXTRAVERSION = -rc8
5NAME = Rotary Wombat 5NAME = Rotary Wombat
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
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/common/dmabounce.c b/arch/arm/common/dmabounce.c
index 52fc6a883281..2744673314b4 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -650,7 +650,8 @@ EXPORT_SYMBOL(dma_map_sg);
650EXPORT_SYMBOL(dma_unmap_sg); 650EXPORT_SYMBOL(dma_unmap_sg);
651EXPORT_SYMBOL(dma_sync_single_for_cpu); 651EXPORT_SYMBOL(dma_sync_single_for_cpu);
652EXPORT_SYMBOL(dma_sync_single_for_device); 652EXPORT_SYMBOL(dma_sync_single_for_device);
653EXPORT_SYMBOL(dma_sync_sg); 653EXPORT_SYMBOL(dma_sync_sg_for_cpu);
654EXPORT_SYMBOL(dma_sync_sg_for_device);
654EXPORT_SYMBOL(dmabounce_register_dev); 655EXPORT_SYMBOL(dmabounce_register_dev);
655EXPORT_SYMBOL(dmabounce_unregister_dev); 656EXPORT_SYMBOL(dmabounce_unregister_dev);
656 657
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 02cede295e89..dbf68dc50ae2 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -42,7 +42,7 @@
42#define GPMC_STATUS 0x54 42#define GPMC_STATUS 0x54
43#define GPMC_PREFETCH_CONFIG1 0x1e0 43#define GPMC_PREFETCH_CONFIG1 0x1e0
44#define GPMC_PREFETCH_CONFIG2 0x1e4 44#define GPMC_PREFETCH_CONFIG2 0x1e4
45#define GPMC_PREFETCH_CONTROL 0x1e8 45#define GPMC_PREFETCH_CONTROL 0x1ec
46#define GPMC_PREFETCH_STATUS 0x1f0 46#define GPMC_PREFETCH_STATUS 0x1f0
47#define GPMC_ECC_CONFIG 0x1f4 47#define GPMC_ECC_CONFIG 0x1f4
48#define GPMC_ECC_CONTROL 0x1f8 48#define GPMC_ECC_CONTROL 0x1f8
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index 3e57428affee..8e813ed57519 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -74,6 +74,8 @@ static DEFINE_SPINLOCK(boot_lock);
74 74
75void __cpuinit platform_secondary_init(unsigned int cpu) 75void __cpuinit platform_secondary_init(unsigned int cpu)
76{ 76{
77 trace_hardirqs_off();
78
77 /* 79 /*
78 * the primary core may have used a "cross call" soft interrupt 80 * the primary core may have used a "cross call" soft interrupt
79 * to get this processor out of WFI in the BootMonitor - make 81 * to get this processor out of WFI in the BootMonitor - make
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index c00eda588cd8..39c637b0ffea 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -501,8 +501,6 @@ static inline void omap_enable_channel_irq(int lch)
501 501
502 /* Enable some nice interrupts. */ 502 /* Enable some nice interrupts. */
503 OMAP_DMA_CICR_REG(lch) = dma_chan[lch].enabled_irqs; 503 OMAP_DMA_CICR_REG(lch) = dma_chan[lch].enabled_irqs;
504
505 dma_chan[lch].flags |= OMAP_DMA_ACTIVE;
506} 504}
507 505
508static void omap_disable_channel_irq(int lch) 506static void omap_disable_channel_irq(int lch)
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/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/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..632cda8f2e76 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -547,7 +547,8 @@ setup_arch (char **cmdline_p)
547# ifdef CONFIG_ACPI_NUMA 547# ifdef CONFIG_ACPI_NUMA
548 acpi_numa_init(); 548 acpi_numa_init();
549 per_cpu_scan_finalize((cpus_weight(early_cpu_possible_map) == 0 ? 549 per_cpu_scan_finalize((cpus_weight(early_cpu_possible_map) == 0 ?
550 32 : cpus_weight(early_cpu_possible_map)), additional_cpus); 550 32 : cpus_weight(early_cpu_possible_map)),
551 additional_cpus > 0 ? additional_cpus : 0);
551# endif 552# endif
552#else 553#else
553# ifdef CONFIG_SMP 554# ifdef CONFIG_SMP
@@ -578,8 +579,6 @@ setup_arch (char **cmdline_p)
578 cpu_init(); /* initialize the bootstrap CPU */ 579 cpu_init(); /* initialize the bootstrap CPU */
579 mmu_context_init(); /* initialize context_id bitmap */ 580 mmu_context_init(); /* initialize context_id bitmap */
580 581
581 check_sal_cache_flush();
582
583#ifdef CONFIG_ACPI 582#ifdef CONFIG_ACPI
584 acpi_boot_init(); 583 acpi_boot_init();
585#endif 584#endif
@@ -607,6 +606,7 @@ setup_arch (char **cmdline_p)
607 ia64_mca_init(); 606 ia64_mca_init();
608 607
609 platform_setup(cmdline_p); 608 platform_setup(cmdline_p);
609 check_sal_cache_flush();
610 paging_init(); 610 paging_init();
611} 611}
612 612
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 8c73643f2d66..aad1b7b1fff9 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -117,6 +117,7 @@ void account_system_vtime(struct task_struct *tsk)
117 117
118 local_irq_restore(flags); 118 local_irq_restore(flags);
119} 119}
120EXPORT_SYMBOL_GPL(account_system_vtime);
120 121
121/* 122/*
122 * Called from the timer interrupt handler to charge accumulated user time 123 * Called from the timer interrupt handler to charge accumulated user time
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/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/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 d53b84e761a9..095e04db1c0e 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 \
@@ -273,7 +273,8 @@ endif
273initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-)) 273initrd- := $(patsubst zImage%, zImage.initrd%, $(image-n) $(image-))
274initrd-y := $(patsubst zImage%, zImage.initrd%, \ 274initrd-y := $(patsubst zImage%, zImage.initrd%, \
275 $(patsubst dtbImage%, dtbImage.initrd%, \ 275 $(patsubst dtbImage%, dtbImage.initrd%, \
276 $(patsubst treeImage%, treeImage.initrd%, $(image-y)))) 276 $(patsubst simpleImage%, simpleImage.initrd%, \
277 $(patsubst treeImage%, treeImage.initrd%, $(image-y)))))
277initrd-y := $(filter-out $(image-y), $(initrd-y)) 278initrd-y := $(filter-out $(image-y), $(initrd-y))
278targets += $(image-y) $(initrd-y) 279targets += $(image-y) $(initrd-y)
279 280
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 5bc09ad016f5..f3083c779b66 100644
--- a/arch/powerpc/boot/dts/mpc8377_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts
@@ -164,12 +164,6 @@
164 reg = <0x2>; 164 reg = <0x2>;
165 device_type = "ethernet-phy"; 165 device_type = "ethernet-phy";
166 }; 166 };
167 phy3: ethernet-phy@3 {
168 interrupt-parent = <&ipic>;
169 interrupts = <18 0x8>;
170 reg = <0x3>;
171 device_type = "ethernet-phy";
172 };
173 }; 167 };
174 168
175 enet0: ethernet@24000 { 169 enet0: ethernet@24000 {
@@ -195,7 +189,7 @@
195 interrupts = <35 0x8 36 0x8 37 0x8>; 189 interrupts = <35 0x8 36 0x8 37 0x8>;
196 phy-connection-type = "mii"; 190 phy-connection-type = "mii";
197 interrupt-parent = <&ipic>; 191 interrupt-parent = <&ipic>;
198 phy-handle = <&phy3>; 192 fixed-link = <1 1 1000 0 0>;
199 }; 193 };
200 194
201 serial0: serial@4500 { 195 serial0: serial@4500 {
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts
index 711f9a30f9ab..0e872a60e091 100644
--- a/arch/powerpc/boot/dts/mpc8378_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts
@@ -164,12 +164,6 @@
164 reg = <0x2>; 164 reg = <0x2>;
165 device_type = "ethernet-phy"; 165 device_type = "ethernet-phy";
166 }; 166 };
167 phy3: ethernet-phy@3 {
168 interrupt-parent = <&ipic>;
169 interrupts = <18 0x8>;
170 reg = <0x3>;
171 device_type = "ethernet-phy";
172 };
173 }; 167 };
174 168
175 enet0: ethernet@24000 { 169 enet0: ethernet@24000 {
@@ -195,7 +189,7 @@
195 interrupts = <35 0x8 36 0x8 37 0x8>; 189 interrupts = <35 0x8 36 0x8 37 0x8>;
196 phy-connection-type = "mii"; 190 phy-connection-type = "mii";
197 interrupt-parent = <&ipic>; 191 interrupt-parent = <&ipic>;
198 phy-handle = <&phy3>; 192 fixed-link = <1 1 1000 0 0>;
199 }; 193 };
200 194
201 serial0: serial@4500 { 195 serial0: serial@4500 {
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts
index c11ceb7d3299..1eb8defaff6f 100644
--- a/arch/powerpc/boot/dts/mpc8379_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts
@@ -164,12 +164,6 @@
164 reg = <0x2>; 164 reg = <0x2>;
165 device_type = "ethernet-phy"; 165 device_type = "ethernet-phy";
166 }; 166 };
167 phy3: ethernet-phy@3 {
168 interrupt-parent = <&ipic>;
169 interrupts = <18 0x8>;
170 reg = <0x3>;
171 device_type = "ethernet-phy";
172 };
173 }; 167 };
174 168
175 enet0: ethernet@24000 { 169 enet0: ethernet@24000 {
@@ -195,7 +189,7 @@
195 interrupts = <35 0x8 36 0x8 37 0x8>; 189 interrupts = <35 0x8 36 0x8 37 0x8>;
196 phy-connection-type = "mii"; 190 phy-connection-type = "mii";
197 interrupt-parent = <&ipic>; 191 interrupt-parent = <&ipic>;
198 phy-handle = <&phy3>; 192 fixed-link = <1 1 1000 0 0>;
199 }; 193 };
200 194
201 serial0: serial@4500 { 195 serial0: serial@4500 {
diff --git a/arch/powerpc/boot/dts/mpc8548cds.dts b/arch/powerpc/boot/dts/mpc8548cds.dts
index fa298a8c81cc..4811b8107415 100644
--- a/arch/powerpc/boot/dts/mpc8548cds.dts
+++ b/arch/powerpc/boot/dts/mpc8548cds.dts
@@ -409,7 +409,7 @@
409 interrupts = <26 2>; 409 interrupts = <26 2>;
410 bus-range = <0 255>; 410 bus-range = <0 255>;
411 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000 411 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
412 0x1000000 0x0 0x0 0xe3000000 0x0 0x8000000>; 412 0x1000000 0x0 0x0 0xe3000000 0x0 0x100000>;
413 clock-frequency = <33333333>; 413 clock-frequency = <33333333>;
414 #interrupt-cells = <1>; 414 #interrupt-cells = <1>;
415 #size-cells = <2>; 415 #size-cells = <2>;
@@ -428,7 +428,7 @@
428 428
429 0x1000000 0x0 0x0 429 0x1000000 0x0 0x0
430 0x1000000 0x0 0x0 430 0x1000000 0x0 0x0
431 0x0 0x8000000>; 431 0x0 0x100000>;
432 }; 432 };
433 }; 433 };
434}; 434};
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 c2b9dc4fce5d..22b5d2c459a3 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 2f73f705d564..bcc249d90c4d 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -1073,7 +1073,7 @@ static const struct file_operations virq_debug_fops = {
1073static int __init irq_debugfs_init(void) 1073static int __init irq_debugfs_init(void)
1074{ 1074{
1075 if (debugfs_create_file("virq_mapping", S_IRUGO, powerpc_debugfs_root, 1075 if (debugfs_create_file("virq_mapping", S_IRUGO, powerpc_debugfs_root,
1076 NULL, &virq_debug_fops)) 1076 NULL, &virq_debug_fops) == NULL)
1077 return -ENOMEM; 1077 return -ENOMEM;
1078 1078
1079 return 0; 1079 return 0;
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index 61dd17449ddc..cf37f5ca4b71 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -136,6 +136,11 @@ static int __init add_legacy_soc_port(struct device_node *np,
136 if (of_get_property(np, "clock-frequency", NULL) == NULL) 136 if (of_get_property(np, "clock-frequency", NULL) == NULL)
137 return -1; 137 return -1;
138 138
139 /* if reg-shift or offset, don't try to use it */
140 if ((of_get_property(np, "reg-shift", NULL) != NULL) ||
141 (of_get_property(np, "reg-offset", NULL) != NULL))
142 return -1;
143
139 /* if rtas uses this device, don't try to use it as well */ 144 /* if rtas uses this device, don't try to use it as well */
140 if (of_get_property(np, "used-by-rtas", NULL) != NULL) 145 if (of_get_property(np, "used-by-rtas", NULL) != NULL)
141 return -1; 146 return -1;
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/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/52xx/lite5200_pm.c b/arch/powerpc/platforms/52xx/lite5200_pm.c
index 41c7fd91e99e..fe92e65103ed 100644
--- a/arch/powerpc/platforms/52xx/lite5200_pm.c
+++ b/arch/powerpc/platforms/52xx/lite5200_pm.c
@@ -14,6 +14,7 @@ static struct mpc52xx_sdma __iomem *bes;
14static struct mpc52xx_xlb __iomem *xlb; 14static struct mpc52xx_xlb __iomem *xlb;
15static struct mpc52xx_gpio __iomem *gps; 15static struct mpc52xx_gpio __iomem *gps;
16static struct mpc52xx_gpio_wkup __iomem *gpw; 16static struct mpc52xx_gpio_wkup __iomem *gpw;
17static void __iomem *pci;
17static void __iomem *sram; 18static void __iomem *sram;
18static const int sram_size = 0x4000; /* 16 kBytes */ 19static const int sram_size = 0x4000; /* 16 kBytes */
19static void __iomem *mbar; 20static void __iomem *mbar;
@@ -50,6 +51,8 @@ static int lite5200_pm_prepare(void)
50 { .type = "builtin", .compatible = "mpc5200", }, /* efika */ 51 { .type = "builtin", .compatible = "mpc5200", }, /* efika */
51 {} 52 {}
52 }; 53 };
54 u64 regaddr64 = 0;
55 const u32 *regaddr_p;
53 56
54 /* deep sleep? let mpc52xx code handle that */ 57 /* deep sleep? let mpc52xx code handle that */
55 if (lite5200_pm_target_state == PM_SUSPEND_STANDBY) 58 if (lite5200_pm_target_state == PM_SUSPEND_STANDBY)
@@ -60,8 +63,12 @@ static int lite5200_pm_prepare(void)
60 63
61 /* map registers */ 64 /* map registers */
62 np = of_find_matching_node(NULL, immr_ids); 65 np = of_find_matching_node(NULL, immr_ids);
63 mbar = of_iomap(np, 0); 66 regaddr_p = of_get_address(np, 0, NULL, NULL);
67 if (regaddr_p)
68 regaddr64 = of_translate_address(np, regaddr_p);
64 of_node_put(np); 69 of_node_put(np);
70
71 mbar = ioremap((u32) regaddr64, 0xC000);
65 if (!mbar) { 72 if (!mbar) {
66 printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__); 73 printk(KERN_ERR "%s:%i Error mapping registers\n", __func__, __LINE__);
67 return -ENOSYS; 74 return -ENOSYS;
@@ -71,6 +78,7 @@ static int lite5200_pm_prepare(void)
71 pic = mbar + 0x500; 78 pic = mbar + 0x500;
72 gps = mbar + 0xb00; 79 gps = mbar + 0xb00;
73 gpw = mbar + 0xc00; 80 gpw = mbar + 0xc00;
81 pci = mbar + 0xd00;
74 bes = mbar + 0x1200; 82 bes = mbar + 0x1200;
75 xlb = mbar + 0x1f00; 83 xlb = mbar + 0x1f00;
76 sram = mbar + 0x8000; 84 sram = mbar + 0x8000;
@@ -85,6 +93,7 @@ static struct mpc52xx_sdma sbes;
85static struct mpc52xx_xlb sxlb; 93static struct mpc52xx_xlb sxlb;
86static struct mpc52xx_gpio sgps; 94static struct mpc52xx_gpio sgps;
87static struct mpc52xx_gpio_wkup sgpw; 95static struct mpc52xx_gpio_wkup sgpw;
96static char spci[0x200];
88 97
89static void lite5200_save_regs(void) 98static void lite5200_save_regs(void)
90{ 99{
@@ -94,6 +103,7 @@ static void lite5200_save_regs(void)
94 _memcpy_fromio(&sxlb, xlb, sizeof(*xlb)); 103 _memcpy_fromio(&sxlb, xlb, sizeof(*xlb));
95 _memcpy_fromio(&sgps, gps, sizeof(*gps)); 104 _memcpy_fromio(&sgps, gps, sizeof(*gps));
96 _memcpy_fromio(&sgpw, gpw, sizeof(*gpw)); 105 _memcpy_fromio(&sgpw, gpw, sizeof(*gpw));
106 _memcpy_fromio(spci, pci, 0x200);
97 107
98 _memcpy_fromio(saved_sram, sram, sram_size); 108 _memcpy_fromio(saved_sram, sram, sram_size);
99} 109}
@@ -103,6 +113,8 @@ static void lite5200_restore_regs(void)
103 int i; 113 int i;
104 _memcpy_toio(sram, saved_sram, sram_size); 114 _memcpy_toio(sram, saved_sram, sram_size);
105 115
116 /* PCI Configuration */
117 _memcpy_toio(pci, spci, 0x200);
106 118
107 /* 119 /*
108 * GPIOs. Interrupt Master Enable has higher address then other 120 * GPIOs. Interrupt Master Enable has higher address then other
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 7ff29d53dc2d..ecbe580c3f32 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 1702de9395ee..bfcf70ee8959 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2844,7 +2844,6 @@ static void dump_spu_fields(struct spu *spu)
2844 DUMP_FIELD(spu, "0x%lx", flags); 2844 DUMP_FIELD(spu, "0x%lx", flags);
2845 DUMP_FIELD(spu, "%d", class_0_pending); 2845 DUMP_FIELD(spu, "%d", class_0_pending);
2846 DUMP_FIELD(spu, "0x%lx", class_0_dar); 2846 DUMP_FIELD(spu, "0x%lx", class_0_dar);
2847 DUMP_FIELD(spu, "0x%lx", class_0_dsisr);
2848 DUMP_FIELD(spu, "0x%lx", class_1_dar); 2847 DUMP_FIELD(spu, "0x%lx", class_1_dar);
2849 DUMP_FIELD(spu, "0x%lx", class_1_dsisr); 2848 DUMP_FIELD(spu, "0x%lx", class_1_dsisr);
2850 DUMP_FIELD(spu, "0x%lx", irqs[0]); 2849 DUMP_FIELD(spu, "0x%lx", irqs[0]);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 52e18e6d2ba0..bf07b6f50fa1 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
@@ -961,8 +966,8 @@ config NUMA_EMU
961 number of nodes. This is only useful for debugging. 966 number of nodes. This is only useful for debugging.
962 967
963config NODES_SHIFT 968config NODES_SHIFT
964 int "Max num nodes shift(1-15)" 969 int "Max num nodes shift(1-9)"
965 range 1 15 if X86_64 970 range 1 9 if X86_64
966 default "6" if X86_64 971 default "6" if X86_64
967 default "4" if X86_NUMAQ 972 default "4" if X86_NUMAQ
968 default "3" 973 default "3"
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/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/i387.c b/arch/x86/kernel/i387.c
index eb9ddd8efb82..95e80e5033c3 100644
--- a/arch/x86/kernel/i387.c
+++ b/arch/x86/kernel/i387.c
@@ -162,7 +162,7 @@ int xfpregs_get(struct task_struct *target, const struct user_regset *regset,
162 int ret; 162 int ret;
163 163
164 if (!cpu_has_fxsr) 164 if (!cpu_has_fxsr)
165 return -ENODEV; 165 return -EIO;
166 166
167 ret = init_fpu(target); 167 ret = init_fpu(target);
168 if (ret) 168 if (ret)
@@ -179,7 +179,7 @@ int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
179 int ret; 179 int ret;
180 180
181 if (!cpu_has_fxsr) 181 if (!cpu_has_fxsr)
182 return -ENODEV; 182 return -EIO;
183 183
184 ret = init_fpu(target); 184 ret = init_fpu(target);
185 if (ret) 185 if (ret)
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/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/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/smpboot.c b/arch/x86/kernel/smpboot.c
index 56078d61c793..3e1cecedde42 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -996,7 +996,6 @@ do_rest:
996#endif 996#endif
997 cpu_clear(cpu, cpu_callout_map); /* was set by do_boot_cpu() */ 997 cpu_clear(cpu, cpu_callout_map); /* was set by do_boot_cpu() */
998 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */ 998 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */
999 cpu_clear(cpu, cpu_possible_map);
1000 cpu_clear(cpu, cpu_present_map); 999 cpu_clear(cpu, cpu_present_map);
1001 per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID; 1000 per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID;
1002 } 1001 }
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 f2f5d260874e..3829aa7b663f 100644
--- a/arch/x86/kvm/i8254.c
+++ b/arch/x86/kvm/i8254.c
@@ -200,9 +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 if (vcpu0 && waitqueue_active(&vcpu0->wq)) { 203 if (vcpu0) {
204 vcpu0->arch.mp_state = KVM_MP_STATE_RUNNABLE; 204 set_bit(KVM_REQ_PENDING_TIMER, &vcpu0->requests);
205 wake_up_interruptible(&vcpu0->wq); 205 if (waitqueue_active(&vcpu0->wq)) {
206 vcpu0->arch.mp_state = KVM_MP_STATE_RUNNABLE;
207 wake_up_interruptible(&vcpu0->wq);
208 }
206 } 209 }
207 210
208 pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period); 211 pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period);
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 ee3f53098f0c..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);
@@ -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)
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 02efbe75f317..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.
@@ -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);
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 00acf1301a15..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);
@@ -2759,6 +2808,8 @@ again:
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_timers(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/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/init_64.c b/arch/x86/mm/init_64.c
index 156e6d7b0e32..f6d20be7a8f4 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -135,7 +135,7 @@ static __init void *spp_getpage(void)
135 return ptr; 135 return ptr;
136} 136}
137 137
138static void 138static __init void
139set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot) 139set_pte_phys(unsigned long vaddr, unsigned long phys, pgprot_t prot)
140{ 140{
141 pgd_t *pgd; 141 pgd_t *pgd;
@@ -214,7 +214,7 @@ void __init cleanup_highmap(void)
214} 214}
215 215
216/* NOTE: this is meant to be run only at boot */ 216/* NOTE: this is meant to be run only at boot */
217void __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot) 217void __init __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot)
218{ 218{
219 unsigned long address = __fix_to_virt(idx); 219 unsigned long address = __fix_to_virt(idx);
220 220
@@ -506,7 +506,7 @@ early_param("memtest", parse_memtest);
506 506
507static void __init early_memtest(unsigned long start, unsigned long end) 507static void __init early_memtest(unsigned long start, unsigned long end)
508{ 508{
509 u64 t_start, t_size; 509 unsigned long t_start, t_size;
510 unsigned pattern; 510 unsigned pattern;
511 511
512 if (!memtest_pattern) 512 if (!memtest_pattern)
@@ -525,7 +525,7 @@ static void __init early_memtest(unsigned long start, unsigned long end)
525 if (t_start + t_size > end) 525 if (t_start + t_size > end)
526 t_size = end - t_start; 526 t_size = end - t_start;
527 527
528 printk(KERN_CONT "\n %016llx - %016llx pattern %d", 528 printk(KERN_CONT "\n %016lx - %016lx pattern %d",
529 t_start, t_start + t_size, pattern); 529 t_start, t_start + t_size, pattern);
530 530
531 memtest(t_start, t_size, pattern); 531 memtest(t_start, t_size, pattern);
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 52b2e3856980..41e217503c96 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -14,6 +14,7 @@
14#include <linux/kernel_stat.h> 14#include <linux/kernel_stat.h>
15#include <linux/math64.h> 15#include <linux/math64.h>
16 16
17#include <asm/pvclock.h>
17#include <asm/xen/hypervisor.h> 18#include <asm/xen/hypervisor.h>
18#include <asm/xen/hypercall.h> 19#include <asm/xen/hypercall.h>
19 20
@@ -31,17 +32,6 @@
31 32
32static cycle_t xen_clocksource_read(void); 33static cycle_t xen_clocksource_read(void);
33 34
34/* These are perodically updated in shared_info, and then copied here. */
35struct shadow_time_info {
36 u64 tsc_timestamp; /* TSC at last update of time vals. */
37 u64 system_timestamp; /* Time, in nanosecs, since boot. */
38 u32 tsc_to_nsec_mul;
39 int tsc_shift;
40 u32 version;
41};
42
43static DEFINE_PER_CPU(struct shadow_time_info, shadow_time);
44
45/* runstate info updated by Xen */ 35/* runstate info updated by Xen */
46static DEFINE_PER_CPU(struct vcpu_runstate_info, runstate); 36static DEFINE_PER_CPU(struct vcpu_runstate_info, runstate);
47 37
@@ -211,7 +201,7 @@ unsigned long long xen_sched_clock(void)
211unsigned long xen_cpu_khz(void) 201unsigned long xen_cpu_khz(void)
212{ 202{
213 u64 xen_khz = 1000000ULL << 32; 203 u64 xen_khz = 1000000ULL << 32;
214 const struct vcpu_time_info *info = 204 const struct pvclock_vcpu_time_info *info =
215 &HYPERVISOR_shared_info->vcpu_info[0].time; 205 &HYPERVISOR_shared_info->vcpu_info[0].time;
216 206
217 do_div(xen_khz, info->tsc_to_system_mul); 207 do_div(xen_khz, info->tsc_to_system_mul);
@@ -223,121 +213,26 @@ unsigned long xen_cpu_khz(void)
223 return xen_khz; 213 return xen_khz;
224} 214}
225 215
226/*
227 * Reads a consistent set of time-base values from Xen, into a shadow data
228 * area.
229 */
230static unsigned get_time_values_from_xen(void)
231{
232 struct vcpu_time_info *src;
233 struct shadow_time_info *dst;
234
235 /* src is shared memory with the hypervisor, so we need to
236 make sure we get a consistent snapshot, even in the face of
237 being preempted. */
238 src = &__get_cpu_var(xen_vcpu)->time;
239 dst = &__get_cpu_var(shadow_time);
240
241 do {
242 dst->version = src->version;
243 rmb(); /* fetch version before data */
244 dst->tsc_timestamp = src->tsc_timestamp;
245 dst->system_timestamp = src->system_time;
246 dst->tsc_to_nsec_mul = src->tsc_to_system_mul;
247 dst->tsc_shift = src->tsc_shift;
248 rmb(); /* test version after fetching data */
249 } while ((src->version & 1) | (dst->version ^ src->version));
250
251 return dst->version;
252}
253
254/*
255 * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction,
256 * yielding a 64-bit result.
257 */
258static inline u64 scale_delta(u64 delta, u32 mul_frac, int shift)
259{
260 u64 product;
261#ifdef __i386__
262 u32 tmp1, tmp2;
263#endif
264
265 if (shift < 0)
266 delta >>= -shift;
267 else
268 delta <<= shift;
269
270#ifdef __i386__
271 __asm__ (
272 "mul %5 ; "
273 "mov %4,%%eax ; "
274 "mov %%edx,%4 ; "
275 "mul %5 ; "
276 "xor %5,%5 ; "
277 "add %4,%%eax ; "
278 "adc %5,%%edx ; "
279 : "=A" (product), "=r" (tmp1), "=r" (tmp2)
280 : "a" ((u32)delta), "1" ((u32)(delta >> 32)), "2" (mul_frac) );
281#elif __x86_64__
282 __asm__ (
283 "mul %%rdx ; shrd $32,%%rdx,%%rax"
284 : "=a" (product) : "0" (delta), "d" ((u64)mul_frac) );
285#else
286#error implement me!
287#endif
288
289 return product;
290}
291
292static u64 get_nsec_offset(struct shadow_time_info *shadow)
293{
294 u64 now, delta;
295 now = native_read_tsc();
296 delta = now - shadow->tsc_timestamp;
297 return scale_delta(delta, shadow->tsc_to_nsec_mul, shadow->tsc_shift);
298}
299
300static cycle_t xen_clocksource_read(void) 216static cycle_t xen_clocksource_read(void)
301{ 217{
302 struct shadow_time_info *shadow = &get_cpu_var(shadow_time); 218 struct pvclock_vcpu_time_info *src;
303 cycle_t ret; 219 cycle_t ret;
304 unsigned version;
305
306 do {
307 version = get_time_values_from_xen();
308 barrier();
309 ret = shadow->system_timestamp + get_nsec_offset(shadow);
310 barrier();
311 } while (version != __get_cpu_var(xen_vcpu)->time.version);
312
313 put_cpu_var(shadow_time);
314 220
221 src = &get_cpu_var(xen_vcpu)->time;
222 ret = pvclock_clocksource_read(src);
223 put_cpu_var(xen_vcpu);
315 return ret; 224 return ret;
316} 225}
317 226
318static void xen_read_wallclock(struct timespec *ts) 227static void xen_read_wallclock(struct timespec *ts)
319{ 228{
320 const struct shared_info *s = HYPERVISOR_shared_info; 229 struct shared_info *s = HYPERVISOR_shared_info;
321 u32 version; 230 struct pvclock_wall_clock *wall_clock = &(s->wc);
322 u64 delta; 231 struct pvclock_vcpu_time_info *vcpu_time;
323 struct timespec now;
324
325 /* get wallclock at system boot */
326 do {
327 version = s->wc_version;
328 rmb(); /* fetch version before time */
329 now.tv_sec = s->wc_sec;
330 now.tv_nsec = s->wc_nsec;
331 rmb(); /* fetch time before checking version */
332 } while ((s->wc_version & 1) | (version ^ s->wc_version));
333 232
334 delta = xen_clocksource_read(); /* time since system boot */ 233 vcpu_time = &get_cpu_var(xen_vcpu)->time;
335 delta += now.tv_sec * (u64)NSEC_PER_SEC + now.tv_nsec; 234 pvclock_read_wallclock(wall_clock, vcpu_time, ts);
336 235 put_cpu_var(xen_vcpu);
337 now.tv_nsec = do_div(delta, NSEC_PER_SEC);
338 now.tv_sec = delta;
339
340 set_normalized_timespec(ts, now.tv_sec, now.tv_nsec);
341} 236}
342 237
343unsigned long xen_get_wallclock(void) 238unsigned long xen_get_wallclock(void)
@@ -345,7 +240,6 @@ unsigned long xen_get_wallclock(void)
345 struct timespec ts; 240 struct timespec ts;
346 241
347 xen_read_wallclock(&ts); 242 xen_read_wallclock(&ts);
348
349 return ts.tv_sec; 243 return ts.tv_sec;
350} 244}
351 245
@@ -569,8 +463,6 @@ __init void xen_time_init(void)
569{ 463{
570 int cpu = smp_processor_id(); 464 int cpu = smp_processor_id();
571 465
572 get_time_values_from_xen();
573
574 clocksource_register(&xen_clocksource); 466 clocksource_register(&xen_clocksource);
575 467
576 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/as-iosched.c b/block/as-iosched.c
index 8c3946787dbb..743f33a01a07 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -831,6 +831,8 @@ static void as_completed_request(struct request_queue *q, struct request *rq)
831 } 831 }
832 832
833 if (ad->changed_batch && ad->nr_dispatched == 1) { 833 if (ad->changed_batch && ad->nr_dispatched == 1) {
834 ad->current_batch_expires = jiffies +
835 ad->batch_expire[ad->batch_data_dir];
834 kblockd_schedule_work(&ad->antic_work); 836 kblockd_schedule_work(&ad->antic_work);
835 ad->changed_batch = 0; 837 ad->changed_batch = 0;
836 838
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 26038c2a2a71..61b6c5beb2d3 100644
--- a/drivers/acpi/bay.c
+++ b/drivers/acpi/bay.c
@@ -377,6 +377,9 @@ static int __init bay_init(void)
377 377
378 INIT_LIST_HEAD(&drive_bays); 378 INIT_LIST_HEAD(&drive_bays);
379 379
380 if (acpi_disabled)
381 return -ENODEV;
382
380 /* look for dockable drive bays */ 383 /* look for dockable drive bays */
381 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, 384 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
382 ACPI_UINT32_MAX, find_bay, &bays, NULL); 385 ACPI_UINT32_MAX, find_bay, &bays, NULL);
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c
index 96c542f7fded..bb7c51f712bd 100644
--- a/drivers/acpi/dock.c
+++ b/drivers/acpi/dock.c
@@ -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/glue.c b/drivers/acpi/glue.c
index 2808dc60fd67..9b227d4dc9c9 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -333,6 +333,9 @@ static int __init acpi_rtc_init(void)
333{ 333{
334 struct device *dev = get_rtc_dev(); 334 struct device *dev = get_rtc_dev();
335 335
336 if (acpi_disabled)
337 return 0;
338
336 if (dev) { 339 if (dev) {
337 rtc_wake_setup(); 340 rtc_wake_setup();
338 rtc_info.wake_on = rtc_wake_on; 341 rtc_info.wake_on = rtc_wake_on;
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 966ab401e523..6a4a2a25d97a 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -90,6 +90,7 @@ enum {
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, 92 board_ahci_mcp65 = 6,
93 board_ahci_nopmp = 7,
93 94
94 /* global controller registers */ 95 /* global controller registers */
95 HOST_CAP = 0x00, /* host capabilities */ 96 HOST_CAP = 0x00, /* host capabilities */
@@ -401,6 +402,14 @@ static const struct ata_port_info ahci_port_info[] = {
401 .udma_mask = ATA_UDMA6, 402 .udma_mask = ATA_UDMA6,
402 .port_ops = &ahci_ops, 403 .port_ops = &ahci_ops,
403 }, 404 },
405 /* board_ahci_nopmp */
406 {
407 AHCI_HFLAGS (AHCI_HFLAG_NO_PMP),
408 .flags = AHCI_FLAG_COMMON,
409 .pio_mask = 0x1f, /* pio0-4 */
410 .udma_mask = ATA_UDMA6,
411 .port_ops = &ahci_ops,
412 },
404}; 413};
405 414
406static const struct pci_device_id ahci_pci_tbl[] = { 415static const struct pci_device_id ahci_pci_tbl[] = {
@@ -525,9 +534,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
525 { PCI_VDEVICE(NVIDIA, 0x0bc7), board_ahci }, /* MCP7B */ 534 { PCI_VDEVICE(NVIDIA, 0x0bc7), board_ahci }, /* MCP7B */
526 535
527 /* SiS */ 536 /* SiS */
528 { PCI_VDEVICE(SI, 0x1184), board_ahci }, /* SiS 966 */ 537 { PCI_VDEVICE(SI, 0x1184), board_ahci_nopmp }, /* SiS 966 */
529 { PCI_VDEVICE(SI, 0x1185), board_ahci }, /* SiS 966 */ 538 { PCI_VDEVICE(SI, 0x1185), board_ahci_nopmp }, /* SiS 968 */
530 { PCI_VDEVICE(SI, 0x0186), board_ahci }, /* SiS 968 */ 539 { PCI_VDEVICE(SI, 0x0186), board_ahci_nopmp }, /* SiS 968 */
531 540
532 /* Marvell */ 541 /* Marvell */
533 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ 542 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */
@@ -653,6 +662,14 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
653 cap &= ~HOST_CAP_PMP; 662 cap &= ~HOST_CAP_PMP;
654 } 663 }
655 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
656 /* 673 /*
657 * Temporary Marvell 6145 hack: PATA port presence 674 * Temporary Marvell 6145 hack: PATA port presence
658 * is asserted through the standard AHCI port 675 * is asserted through the standard AHCI port
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/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 07b4d8ff56e5..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++) {
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/i915_irq.c b/drivers/char/drm/i915_irq.c
index f7f16e7a8bf3..df036118b8b1 100644
--- a/drivers/char/drm/i915_irq.c
+++ b/drivers/char/drm/i915_irq.c
@@ -62,11 +62,11 @@ static void i915_vblank_tasklet(struct drm_device *dev)
62 u32 ropcpp = (0xcc << 16) | ((cpp - 1) << 24); 62 u32 ropcpp = (0xcc << 16) | ((cpp - 1) << 24);
63 RING_LOCALS; 63 RING_LOCALS;
64 64
65 if (sarea_priv->front_tiled) { 65 if (IS_I965G(dev) && sarea_priv->front_tiled) {
66 cmd |= XY_SRC_COPY_BLT_DST_TILED; 66 cmd |= XY_SRC_COPY_BLT_DST_TILED;
67 dst_pitch >>= 2; 67 dst_pitch >>= 2;
68 } 68 }
69 if (sarea_priv->back_tiled) { 69 if (IS_I965G(dev) && sarea_priv->back_tiled) {
70 cmd |= XY_SRC_COPY_BLT_SRC_TILED; 70 cmd |= XY_SRC_COPY_BLT_SRC_TILED;
71 src_pitch >>= 2; 71 src_pitch >>= 2;
72 } 72 }
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/tty_io.c b/drivers/char/tty_io.c
index e94bee032314..750131010af0 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -3322,7 +3322,7 @@ static int send_break(struct tty_struct *tty, unsigned int duration)
3322 msleep_interruptible(duration); 3322 msleep_interruptible(duration);
3323 tty->ops->break_ctl(tty, 0); 3323 tty->ops->break_ctl(tty, 0);
3324 tty_write_unlock(tty); 3324 tty_write_unlock(tty);
3325 if (!signal_pending(current)) 3325 if (signal_pending(current))
3326 return -EINTR; 3326 return -EINTR;
3327 return 0; 3327 return 0;
3328} 3328}
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/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/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 1305ef190fc1..9e8c875437be 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -290,12 +290,12 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
290 * bus, or started a new i2c message 290 * bus, or started a new i2c message
291 */ 291 */
292 292
293 if (iicstat & S3C2410_IICSTAT_LASTBIT && 293 if (iicstat & S3C2410_IICSTAT_LASTBIT &&
294 !(i2c->msg->flags & I2C_M_IGNORE_NAK)) { 294 !(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
295 /* ack was not received... */ 295 /* ack was not received... */
296 296
297 dev_dbg(i2c->dev, "ack was not received\n"); 297 dev_dbg(i2c->dev, "ack was not received\n");
298 s3c24xx_i2c_stop(i2c, -EREMOTEIO); 298 s3c24xx_i2c_stop(i2c, -ENXIO);
299 goto out_ack; 299 goto out_ack;
300 } 300 }
301 301
@@ -305,7 +305,7 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
305 i2c->state = STATE_WRITE; 305 i2c->state = STATE_WRITE;
306 306
307 /* terminate the transfer if there is nothing to do 307 /* terminate the transfer if there is nothing to do
308 * (used by the i2c probe to find devices */ 308 * as this is used by the i2c probe to find devices. */
309 309
310 if (is_lastmsg(i2c) && i2c->msg->len == 0) { 310 if (is_lastmsg(i2c) && i2c->msg->len == 0) {
311 s3c24xx_i2c_stop(i2c, 0); 311 s3c24xx_i2c_stop(i2c, 0);
@@ -323,7 +323,17 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
323 * end of the message, and if so, work out what to do 323 * end of the message, and if so, work out what to do
324 */ 324 */
325 325
326 if (!(i2c->msg->flags & I2C_M_IGNORE_NAK)) {
327 if (iicstat & S3C2410_IICSTAT_LASTBIT) {
328 dev_dbg(i2c->dev, "WRITE: No Ack\n");
329
330 s3c24xx_i2c_stop(i2c, -ECONNREFUSED);
331 goto out_ack;
332 }
333 }
334
326 retry_write: 335 retry_write:
336
327 if (!is_msgend(i2c)) { 337 if (!is_msgend(i2c)) {
328 byte = i2c->msg->buf[i2c->msg_ptr++]; 338 byte = i2c->msg->buf[i2c->msg_ptr++];
329 writeb(byte, i2c->regs + S3C2410_IICDS); 339 writeb(byte, i2c->regs + S3C2410_IICDS);
@@ -377,17 +387,6 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
377 * going to do any more read/write 387 * going to do any more read/write
378 */ 388 */
379 389
380 if (!(i2c->msg->flags & I2C_M_IGNORE_NAK) &&
381 !(is_msglast(i2c) && is_lastmsg(i2c))) {
382
383 if (iicstat & S3C2410_IICSTAT_LASTBIT) {
384 dev_dbg(i2c->dev, "READ: No Ack\n");
385
386 s3c24xx_i2c_stop(i2c, -ECONNREFUSED);
387 goto out_ack;
388 }
389 }
390
391 byte = readb(i2c->regs + S3C2410_IICDS); 390 byte = readb(i2c->regs + S3C2410_IICDS);
392 i2c->msg->buf[i2c->msg_ptr++] = byte; 391 i2c->msg->buf[i2c->msg_ptr++] = byte;
393 392
@@ -949,3 +948,4 @@ MODULE_DESCRIPTION("S3C24XX I2C Bus driver");
949MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>"); 948MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
950MODULE_LICENSE("GPL"); 949MODULE_LICENSE("GPL");
951MODULE_ALIAS("platform:s3c2410-i2c"); 950MODULE_ALIAS("platform:s3c2410-i2c");
951MODULE_ALIAS("platform:s3c2440-i2c");
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c
index d024ac8fad14..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
@@ -434,4 +439,3 @@ static int __init palm_bk3710_init(void)
434 439
435module_init(palm_bk3710_init); 440module_init(palm_bk3710_init);
436MODULE_LICENSE("GPL"); 441MODULE_LICENSE("GPL");
437
diff --git a/drivers/ide/ide-generic.c b/drivers/ide/ide-generic.c
index 9134488ac043..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",
diff --git a/drivers/ide/ide-proc.c b/drivers/ide/ide-proc.c
index 55ec7f798772..8af88bf0969b 100644
--- a/drivers/ide/ide-proc.c
+++ b/drivers/ide/ide-proc.c
@@ -76,7 +76,7 @@ static int proc_ide_read_mate
76 ide_hwif_t *hwif = (ide_hwif_t *) data; 76 ide_hwif_t *hwif = (ide_hwif_t *) data;
77 int len; 77 int len;
78 78
79 if (hwif && hwif->mate && hwif->mate->present) 79 if (hwif && hwif->mate)
80 len = sprintf(page, "%s\n", hwif->mate->name); 80 len = sprintf(page, "%s\n", hwif->mate->name);
81 else 81 else
82 len = sprintf(page, "(none)\n"); 82 len = sprintf(page, "(none)\n");
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/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/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/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/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/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/ff-core.c b/drivers/input/ff-core.c
index eebc72465fc9..72c63e5dd630 100644
--- a/drivers/input/ff-core.c
+++ b/drivers/input/ff-core.c
@@ -28,6 +28,7 @@
28#include <linux/input.h> 28#include <linux/input.h>
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/mutex.h> 30#include <linux/mutex.h>
31#include <linux/sched.h>
31 32
32/* 33/*
33 * Check that the effect_id is a valid effect and whether the user 34 * Check that the effect_id is a valid effect and whether the user
@@ -166,8 +167,10 @@ int input_ff_upload(struct input_dev *dev, struct ff_effect *effect,
166 if (ret) 167 if (ret)
167 goto out; 168 goto out;
168 169
170 spin_lock_irq(&dev->event_lock);
169 ff->effects[id] = *effect; 171 ff->effects[id] = *effect;
170 ff->effect_owners[id] = file; 172 ff->effect_owners[id] = file;
173 spin_unlock_irq(&dev->event_lock);
171 174
172 out: 175 out:
173 mutex_unlock(&ff->mutex); 176 mutex_unlock(&ff->mutex);
@@ -189,16 +192,22 @@ static int erase_effect(struct input_dev *dev, int effect_id,
189 if (error) 192 if (error)
190 return error; 193 return error;
191 194
195 spin_lock_irq(&dev->event_lock);
192 ff->playback(dev, effect_id, 0); 196 ff->playback(dev, effect_id, 0);
197 ff->effect_owners[effect_id] = NULL;
198 spin_unlock_irq(&dev->event_lock);
193 199
194 if (ff->erase) { 200 if (ff->erase) {
195 error = ff->erase(dev, effect_id); 201 error = ff->erase(dev, effect_id);
196 if (error) 202 if (error) {
203 spin_lock_irq(&dev->event_lock);
204 ff->effect_owners[effect_id] = file;
205 spin_unlock_irq(&dev->event_lock);
206
197 return error; 207 return error;
208 }
198 } 209 }
199 210
200 ff->effect_owners[effect_id] = NULL;
201
202 return 0; 211 return 0;
203} 212}
204 213
@@ -263,8 +272,6 @@ int input_ff_event(struct input_dev *dev, unsigned int type,
263 if (type != EV_FF) 272 if (type != EV_FF)
264 return 0; 273 return 0;
265 274
266 mutex_lock(&ff->mutex);
267
268 switch (code) { 275 switch (code) {
269 case FF_GAIN: 276 case FF_GAIN:
270 if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffff) 277 if (!test_bit(FF_GAIN, dev->ffbit) || value > 0xffff)
@@ -286,7 +293,6 @@ int input_ff_event(struct input_dev *dev, unsigned int type,
286 break; 293 break;
287 } 294 }
288 295
289 mutex_unlock(&ff->mutex);
290 return 0; 296 return 0;
291} 297}
292EXPORT_SYMBOL_GPL(input_ff_event); 298EXPORT_SYMBOL_GPL(input_ff_event);
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/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/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 835def11419d..ab6a61db63ce 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -432,6 +432,7 @@ static int crypt_convert(struct crypt_config *cc,
432 case 0: 432 case 0:
433 atomic_dec(&ctx->pending); 433 atomic_dec(&ctx->pending);
434 ctx->sector++; 434 ctx->sector++;
435 cond_resched();
435 continue; 436 continue;
436 437
437 /* error */ 438 /* error */
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 7cf512a34ccf..2580ac1b9b0f 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3897,8 +3897,10 @@ static void autorun_devices(int part)
3897 3897
3898 md_probe(dev, NULL, NULL); 3898 md_probe(dev, NULL, NULL);
3899 mddev = mddev_find(dev); 3899 mddev = mddev_find(dev);
3900 if (!mddev) { 3900 if (!mddev || !mddev->gendisk) {
3901 printk(KERN_ERR 3901 if (mddev)
3902 mddev_put(mddev);
3903 printk(KERN_ERR
3902 "md: cannot allocate memory for md drive.\n"); 3904 "md: cannot allocate memory for md drive.\n");
3903 break; 3905 break;
3904 } 3906 }
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 1de17da34a95..a71277b640ab 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -2137,6 +2137,8 @@ static int run(mddev_t *mddev)
2137 !test_bit(In_sync, &disk->rdev->flags)) { 2137 !test_bit(In_sync, &disk->rdev->flags)) {
2138 disk->head_position = 0; 2138 disk->head_position = 0;
2139 mddev->degraded++; 2139 mddev->degraded++;
2140 if (disk->rdev)
2141 conf->fullsync = 1;
2140 } 2142 }
2141 } 2143 }
2142 2144
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index c37e256b1176..54c8ee28fcc4 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -2898,6 +2898,8 @@ static void handle_stripe5(struct stripe_head *sh)
2898 2898
2899 for (i = conf->raid_disks; i--; ) { 2899 for (i = conf->raid_disks; i--; ) {
2900 set_bit(R5_Wantwrite, &sh->dev[i].flags); 2900 set_bit(R5_Wantwrite, &sh->dev[i].flags);
2901 set_bit(R5_LOCKED, &dev->flags);
2902 s.locked++;
2901 if (!test_and_set_bit(STRIPE_OP_IO, &sh->ops.pending)) 2903 if (!test_and_set_bit(STRIPE_OP_IO, &sh->ops.pending))
2902 sh->ops.count++; 2904 sh->ops.count++;
2903 } 2905 }
@@ -2911,6 +2913,7 @@ static void handle_stripe5(struct stripe_head *sh)
2911 conf->raid_disks); 2913 conf->raid_disks);
2912 s.locked += handle_write_operations5(sh, 1, 1); 2914 s.locked += handle_write_operations5(sh, 1, 1);
2913 } else if (s.expanded && 2915 } else if (s.expanded &&
2916 s.locked == 0 &&
2914 !test_bit(STRIPE_OP_POSTXOR, &sh->ops.pending)) { 2917 !test_bit(STRIPE_OP_POSTXOR, &sh->ops.pending)) {
2915 clear_bit(STRIPE_EXPAND_READY, &sh->state); 2918 clear_bit(STRIPE_EXPAND_READY, &sh->state);
2916 atomic_dec(&conf->reshape_stripes); 2919 atomic_dec(&conf->reshape_stripes);
@@ -4305,7 +4308,9 @@ static int run(mddev_t *mddev)
4305 " disk %d\n", bdevname(rdev->bdev,b), 4308 " disk %d\n", bdevname(rdev->bdev,b),
4306 raid_disk); 4309 raid_disk);
4307 working_disks++; 4310 working_disks++;
4308 } 4311 } else
4312 /* Cannot rely on bitmap to complete recovery */
4313 conf->fullsync = 1;
4309 } 4314 }
4310 4315
4311 /* 4316 /*
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/Kconfig b/drivers/media/video/Kconfig
index 3b26fbd3e558..5ccb0aeca8cc 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -793,6 +793,14 @@ menuconfig V4L_USB_DRIVERS
793 793
794if V4L_USB_DRIVERS && USB 794if V4L_USB_DRIVERS && USB
795 795
796config USB_VIDEO_CLASS
797 tristate "USB Video Class (UVC)"
798 ---help---
799 Support for the USB Video Class (UVC). Currently only video
800 input devices, such as webcams, are supported.
801
802 For more information see: <http://linux-uvc.berlios.de/>
803
796source "drivers/media/video/pvrusb2/Kconfig" 804source "drivers/media/video/pvrusb2/Kconfig"
797 805
798source "drivers/media/video/em28xx/Kconfig" 806source "drivers/media/video/em28xx/Kconfig"
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index dff0d6abe917..ecbbfaab24d5 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -136,6 +136,8 @@ obj-$(CONFIG_SOC_CAMERA_MT9V022) += mt9v022.o
136 136
137obj-$(CONFIG_VIDEO_AU0828) += au0828/ 137obj-$(CONFIG_VIDEO_AU0828) += au0828/
138 138
139obj-$(CONFIG_USB_VIDEO_CLASS) += uvc/
140
139EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core 141EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core
140EXTRA_CFLAGS += -Idrivers/media/dvb/frontends 142EXTRA_CFLAGS += -Idrivers/media/dvb/frontends
141EXTRA_CFLAGS += -Idrivers/media/common/tuners 143EXTRA_CFLAGS += -Idrivers/media/common/tuners
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/uvc/Makefile b/drivers/media/video/uvc/Makefile
new file mode 100644
index 000000000000..968c1994eda0
--- /dev/null
+++ b/drivers/media/video/uvc/Makefile
@@ -0,0 +1,3 @@
1uvcvideo-objs := uvc_driver.o uvc_queue.o uvc_v4l2.o uvc_video.o uvc_ctrl.o \
2 uvc_status.o uvc_isight.o
3obj-$(CONFIG_USB_VIDEO_CLASS) += uvcvideo.o
diff --git a/drivers/media/video/uvc/uvc_ctrl.c b/drivers/media/video/uvc/uvc_ctrl.c
new file mode 100644
index 000000000000..f0ee46d15540
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_ctrl.c
@@ -0,0 +1,1256 @@
1/*
2 * uvc_ctrl.c -- USB Video Class driver - Controls
3 *
4 * Copyright (C) 2005-2008
5 * Laurent Pinchart (laurent.pinchart@skynet.be)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/version.h>
16#include <linux/list.h>
17#include <linux/module.h>
18#include <linux/uaccess.h>
19#include <linux/usb.h>
20#include <linux/videodev2.h>
21#include <linux/vmalloc.h>
22#include <linux/wait.h>
23#include <asm/atomic.h>
24
25#include "uvcvideo.h"
26
27#define UVC_CTRL_NDATA 2
28#define UVC_CTRL_DATA_CURRENT 0
29#define UVC_CTRL_DATA_BACKUP 1
30
31/* ------------------------------------------------------------------------
32 * Control, formats, ...
33 */
34
35static struct uvc_control_info uvc_ctrls[] = {
36 {
37 .entity = UVC_GUID_UVC_PROCESSING,
38 .selector = PU_BRIGHTNESS_CONTROL,
39 .index = 0,
40 .size = 2,
41 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
42 | UVC_CONTROL_RESTORE,
43 },
44 {
45 .entity = UVC_GUID_UVC_PROCESSING,
46 .selector = PU_CONTRAST_CONTROL,
47 .index = 1,
48 .size = 2,
49 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
50 | UVC_CONTROL_RESTORE,
51 },
52 {
53 .entity = UVC_GUID_UVC_PROCESSING,
54 .selector = PU_HUE_CONTROL,
55 .index = 2,
56 .size = 2,
57 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
58 | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE,
59 },
60 {
61 .entity = UVC_GUID_UVC_PROCESSING,
62 .selector = PU_SATURATION_CONTROL,
63 .index = 3,
64 .size = 2,
65 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
66 | UVC_CONTROL_RESTORE,
67 },
68 {
69 .entity = UVC_GUID_UVC_PROCESSING,
70 .selector = PU_SHARPNESS_CONTROL,
71 .index = 4,
72 .size = 2,
73 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
74 | UVC_CONTROL_RESTORE,
75 },
76 {
77 .entity = UVC_GUID_UVC_PROCESSING,
78 .selector = PU_GAMMA_CONTROL,
79 .index = 5,
80 .size = 2,
81 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
82 | UVC_CONTROL_RESTORE,
83 },
84 {
85 .entity = UVC_GUID_UVC_PROCESSING,
86 .selector = PU_BACKLIGHT_COMPENSATION_CONTROL,
87 .index = 8,
88 .size = 2,
89 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
90 | UVC_CONTROL_RESTORE,
91 },
92 {
93 .entity = UVC_GUID_UVC_PROCESSING,
94 .selector = PU_GAIN_CONTROL,
95 .index = 9,
96 .size = 2,
97 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
98 | UVC_CONTROL_RESTORE,
99 },
100 {
101 .entity = UVC_GUID_UVC_PROCESSING,
102 .selector = PU_POWER_LINE_FREQUENCY_CONTROL,
103 .index = 10,
104 .size = 1,
105 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
106 | UVC_CONTROL_RESTORE,
107 },
108 {
109 .entity = UVC_GUID_UVC_PROCESSING,
110 .selector = PU_HUE_AUTO_CONTROL,
111 .index = 11,
112 .size = 1,
113 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR
114 | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE,
115 },
116 {
117 .entity = UVC_GUID_UVC_CAMERA,
118 .selector = CT_AE_MODE_CONTROL,
119 .index = 1,
120 .size = 1,
121 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR
122 | UVC_CONTROL_GET_DEF | UVC_CONTROL_GET_RES
123 | UVC_CONTROL_RESTORE,
124 },
125 {
126 .entity = UVC_GUID_UVC_CAMERA,
127 .selector = CT_AE_PRIORITY_CONTROL,
128 .index = 2,
129 .size = 1,
130 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR
131 | UVC_CONTROL_RESTORE,
132 },
133 {
134 .entity = UVC_GUID_UVC_CAMERA,
135 .selector = CT_EXPOSURE_TIME_ABSOLUTE_CONTROL,
136 .index = 3,
137 .size = 4,
138 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
139 | UVC_CONTROL_RESTORE,
140 },
141 {
142 .entity = UVC_GUID_UVC_CAMERA,
143 .selector = CT_FOCUS_ABSOLUTE_CONTROL,
144 .index = 5,
145 .size = 2,
146 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
147 | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE,
148 },
149 {
150 .entity = UVC_GUID_UVC_CAMERA,
151 .selector = CT_FOCUS_AUTO_CONTROL,
152 .index = 17,
153 .size = 1,
154 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR
155 | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE,
156 },
157 {
158 .entity = UVC_GUID_UVC_PROCESSING,
159 .selector = PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL,
160 .index = 12,
161 .size = 1,
162 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR
163 | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE,
164 },
165 {
166 .entity = UVC_GUID_UVC_PROCESSING,
167 .selector = PU_WHITE_BALANCE_TEMPERATURE_CONTROL,
168 .index = 6,
169 .size = 2,
170 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
171 | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE,
172 },
173 {
174 .entity = UVC_GUID_UVC_PROCESSING,
175 .selector = PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL,
176 .index = 13,
177 .size = 1,
178 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_CUR
179 | UVC_CONTROL_GET_DEF | UVC_CONTROL_RESTORE,
180 },
181 {
182 .entity = UVC_GUID_UVC_PROCESSING,
183 .selector = PU_WHITE_BALANCE_COMPONENT_CONTROL,
184 .index = 7,
185 .size = 4,
186 .flags = UVC_CONTROL_SET_CUR | UVC_CONTROL_GET_RANGE
187 | UVC_CONTROL_RESTORE | UVC_CONTROL_AUTO_UPDATE,
188 },
189};
190
191static struct uvc_menu_info power_line_frequency_controls[] = {
192 { 0, "Disabled" },
193 { 1, "50 Hz" },
194 { 2, "60 Hz" },
195};
196
197static struct uvc_menu_info exposure_auto_controls[] = {
198 { 1, "Manual Mode" },
199 { 2, "Auto Mode" },
200 { 4, "Shutter Priority Mode" },
201 { 8, "Aperture Priority Mode" },
202};
203
204static struct uvc_control_mapping uvc_ctrl_mappings[] = {
205 {
206 .id = V4L2_CID_BRIGHTNESS,
207 .name = "Brightness",
208 .entity = UVC_GUID_UVC_PROCESSING,
209 .selector = PU_BRIGHTNESS_CONTROL,
210 .size = 16,
211 .offset = 0,
212 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
213 .data_type = UVC_CTRL_DATA_TYPE_SIGNED,
214 },
215 {
216 .id = V4L2_CID_CONTRAST,
217 .name = "Contrast",
218 .entity = UVC_GUID_UVC_PROCESSING,
219 .selector = PU_CONTRAST_CONTROL,
220 .size = 16,
221 .offset = 0,
222 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
223 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
224 },
225 {
226 .id = V4L2_CID_HUE,
227 .name = "Hue",
228 .entity = UVC_GUID_UVC_PROCESSING,
229 .selector = PU_HUE_CONTROL,
230 .size = 16,
231 .offset = 0,
232 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
233 .data_type = UVC_CTRL_DATA_TYPE_SIGNED,
234 },
235 {
236 .id = V4L2_CID_SATURATION,
237 .name = "Saturation",
238 .entity = UVC_GUID_UVC_PROCESSING,
239 .selector = PU_SATURATION_CONTROL,
240 .size = 16,
241 .offset = 0,
242 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
243 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
244 },
245 {
246 .id = V4L2_CID_SHARPNESS,
247 .name = "Sharpness",
248 .entity = UVC_GUID_UVC_PROCESSING,
249 .selector = PU_SHARPNESS_CONTROL,
250 .size = 16,
251 .offset = 0,
252 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
253 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
254 },
255 {
256 .id = V4L2_CID_GAMMA,
257 .name = "Gamma",
258 .entity = UVC_GUID_UVC_PROCESSING,
259 .selector = PU_GAMMA_CONTROL,
260 .size = 16,
261 .offset = 0,
262 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
263 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
264 },
265 {
266 .id = V4L2_CID_BACKLIGHT_COMPENSATION,
267 .name = "Backlight Compensation",
268 .entity = UVC_GUID_UVC_PROCESSING,
269 .selector = PU_BACKLIGHT_COMPENSATION_CONTROL,
270 .size = 16,
271 .offset = 0,
272 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
273 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
274 },
275 {
276 .id = V4L2_CID_GAIN,
277 .name = "Gain",
278 .entity = UVC_GUID_UVC_PROCESSING,
279 .selector = PU_GAIN_CONTROL,
280 .size = 16,
281 .offset = 0,
282 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
283 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
284 },
285 {
286 .id = V4L2_CID_POWER_LINE_FREQUENCY,
287 .name = "Power Line Frequency",
288 .entity = UVC_GUID_UVC_PROCESSING,
289 .selector = PU_POWER_LINE_FREQUENCY_CONTROL,
290 .size = 2,
291 .offset = 0,
292 .v4l2_type = V4L2_CTRL_TYPE_MENU,
293 .data_type = UVC_CTRL_DATA_TYPE_ENUM,
294 .menu_info = power_line_frequency_controls,
295 .menu_count = ARRAY_SIZE(power_line_frequency_controls),
296 },
297 {
298 .id = V4L2_CID_HUE_AUTO,
299 .name = "Hue, Auto",
300 .entity = UVC_GUID_UVC_PROCESSING,
301 .selector = PU_HUE_AUTO_CONTROL,
302 .size = 1,
303 .offset = 0,
304 .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN,
305 .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN,
306 },
307 {
308 .id = V4L2_CID_EXPOSURE_AUTO,
309 .name = "Exposure, Auto",
310 .entity = UVC_GUID_UVC_CAMERA,
311 .selector = CT_AE_MODE_CONTROL,
312 .size = 4,
313 .offset = 0,
314 .v4l2_type = V4L2_CTRL_TYPE_MENU,
315 .data_type = UVC_CTRL_DATA_TYPE_BITMASK,
316 .menu_info = exposure_auto_controls,
317 .menu_count = ARRAY_SIZE(exposure_auto_controls),
318 },
319 {
320 .id = V4L2_CID_EXPOSURE_AUTO_PRIORITY,
321 .name = "Exposure, Auto Priority",
322 .entity = UVC_GUID_UVC_CAMERA,
323 .selector = CT_AE_PRIORITY_CONTROL,
324 .size = 1,
325 .offset = 0,
326 .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN,
327 .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN,
328 },
329 {
330 .id = V4L2_CID_EXPOSURE_ABSOLUTE,
331 .name = "Exposure (Absolute)",
332 .entity = UVC_GUID_UVC_CAMERA,
333 .selector = CT_EXPOSURE_TIME_ABSOLUTE_CONTROL,
334 .size = 32,
335 .offset = 0,
336 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
337 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
338 },
339 {
340 .id = V4L2_CID_AUTO_WHITE_BALANCE,
341 .name = "White Balance Temperature, Auto",
342 .entity = UVC_GUID_UVC_PROCESSING,
343 .selector = PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL,
344 .size = 1,
345 .offset = 0,
346 .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN,
347 .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN,
348 },
349 {
350 .id = V4L2_CID_WHITE_BALANCE_TEMPERATURE,
351 .name = "White Balance Temperature",
352 .entity = UVC_GUID_UVC_PROCESSING,
353 .selector = PU_WHITE_BALANCE_TEMPERATURE_CONTROL,
354 .size = 16,
355 .offset = 0,
356 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
357 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
358 },
359 {
360 .id = V4L2_CID_AUTO_WHITE_BALANCE,
361 .name = "White Balance Component, Auto",
362 .entity = UVC_GUID_UVC_PROCESSING,
363 .selector = PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL,
364 .size = 1,
365 .offset = 0,
366 .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN,
367 .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN,
368 },
369 {
370 .id = V4L2_CID_BLUE_BALANCE,
371 .name = "White Balance Blue Component",
372 .entity = UVC_GUID_UVC_PROCESSING,
373 .selector = PU_WHITE_BALANCE_COMPONENT_CONTROL,
374 .size = 16,
375 .offset = 0,
376 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
377 .data_type = UVC_CTRL_DATA_TYPE_SIGNED,
378 },
379 {
380 .id = V4L2_CID_RED_BALANCE,
381 .name = "White Balance Red Component",
382 .entity = UVC_GUID_UVC_PROCESSING,
383 .selector = PU_WHITE_BALANCE_COMPONENT_CONTROL,
384 .size = 16,
385 .offset = 16,
386 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
387 .data_type = UVC_CTRL_DATA_TYPE_SIGNED,
388 },
389 {
390 .id = V4L2_CID_FOCUS_ABSOLUTE,
391 .name = "Focus (absolute)",
392 .entity = UVC_GUID_UVC_CAMERA,
393 .selector = CT_FOCUS_ABSOLUTE_CONTROL,
394 .size = 16,
395 .offset = 0,
396 .v4l2_type = V4L2_CTRL_TYPE_INTEGER,
397 .data_type = UVC_CTRL_DATA_TYPE_UNSIGNED,
398 },
399 {
400 .id = V4L2_CID_FOCUS_AUTO,
401 .name = "Focus, Auto",
402 .entity = UVC_GUID_UVC_CAMERA,
403 .selector = CT_FOCUS_AUTO_CONTROL,
404 .size = 1,
405 .offset = 0,
406 .v4l2_type = V4L2_CTRL_TYPE_BOOLEAN,
407 .data_type = UVC_CTRL_DATA_TYPE_BOOLEAN,
408 },
409};
410
411/* ------------------------------------------------------------------------
412 * Utility functions
413 */
414
415static inline __u8 *uvc_ctrl_data(struct uvc_control *ctrl, int id)
416{
417 return ctrl->data + id * ctrl->info->size;
418}
419
420static inline int uvc_get_bit(const __u8 *data, int bit)
421{
422 return (data[bit >> 3] >> (bit & 7)) & 1;
423}
424
425/* Extract the bit string specified by mapping->offset and mapping->size
426 * from the little-endian data stored at 'data' and return the result as
427 * a signed 32bit integer. Sign extension will be performed if the mapping
428 * references a signed data type.
429 */
430static __s32 uvc_get_le_value(const __u8 *data,
431 struct uvc_control_mapping *mapping)
432{
433 int bits = mapping->size;
434 int offset = mapping->offset;
435 __s32 value = 0;
436 __u8 mask;
437
438 data += offset / 8;
439 offset &= 7;
440 mask = ((1LL << bits) - 1) << offset;
441
442 for (; bits > 0; data++) {
443 __u8 byte = *data & mask;
444 value |= offset > 0 ? (byte >> offset) : (byte << (-offset));
445 bits -= 8 - (offset > 0 ? offset : 0);
446 offset -= 8;
447 mask = (1 << bits) - 1;
448 }
449
450 /* Sign-extend the value if needed */
451 if (mapping->data_type == UVC_CTRL_DATA_TYPE_SIGNED)
452 value |= -(value & (1 << (mapping->size - 1)));
453
454 return value;
455}
456
457/* Set the bit string specified by mapping->offset and mapping->size
458 * in the little-endian data stored at 'data' to the value 'value'.
459 */
460static void uvc_set_le_value(__s32 value, __u8 *data,
461 struct uvc_control_mapping *mapping)
462{
463 int bits = mapping->size;
464 int offset = mapping->offset;
465 __u8 mask;
466
467 data += offset / 8;
468 offset &= 7;
469
470 for (; bits > 0; data++) {
471 mask = ((1LL << bits) - 1) << offset;
472 *data = (*data & ~mask) | ((value << offset) & mask);
473 value >>= offset ? offset : 8;
474 bits -= 8 - offset;
475 offset = 0;
476 }
477}
478
479/* ------------------------------------------------------------------------
480 * Terminal and unit management
481 */
482
483static const __u8 uvc_processing_guid[16] = UVC_GUID_UVC_PROCESSING;
484static const __u8 uvc_camera_guid[16] = UVC_GUID_UVC_CAMERA;
485static const __u8 uvc_media_transport_input_guid[16] =
486 UVC_GUID_UVC_MEDIA_TRANSPORT_INPUT;
487
488static int uvc_entity_match_guid(struct uvc_entity *entity, __u8 guid[16])
489{
490 switch (UVC_ENTITY_TYPE(entity)) {
491 case ITT_CAMERA:
492 return memcmp(uvc_camera_guid, guid, 16) == 0;
493
494 case ITT_MEDIA_TRANSPORT_INPUT:
495 return memcmp(uvc_media_transport_input_guid, guid, 16) == 0;
496
497 case VC_PROCESSING_UNIT:
498 return memcmp(uvc_processing_guid, guid, 16) == 0;
499
500 case VC_EXTENSION_UNIT:
501 return memcmp(entity->extension.guidExtensionCode,
502 guid, 16) == 0;
503
504 default:
505 return 0;
506 }
507}
508
509/* ------------------------------------------------------------------------
510 * UVC Controls
511 */
512
513static void __uvc_find_control(struct uvc_entity *entity, __u32 v4l2_id,
514 struct uvc_control_mapping **mapping, struct uvc_control **control,
515 int next)
516{
517 struct uvc_control *ctrl;
518 struct uvc_control_mapping *map;
519 unsigned int i;
520
521 if (entity == NULL)
522 return;
523
524 for (i = 0; i < entity->ncontrols; ++i) {
525 ctrl = &entity->controls[i];
526 if (ctrl->info == NULL)
527 continue;
528
529 list_for_each_entry(map, &ctrl->info->mappings, list) {
530 if ((map->id == v4l2_id) && !next) {
531 *control = ctrl;
532 *mapping = map;
533 return;
534 }
535
536 if ((*mapping == NULL || (*mapping)->id > map->id) &&
537 (map->id > v4l2_id) && next) {
538 *control = ctrl;
539 *mapping = map;
540 }
541 }
542 }
543}
544
545struct uvc_control *uvc_find_control(struct uvc_video_device *video,
546 __u32 v4l2_id, struct uvc_control_mapping **mapping)
547{
548 struct uvc_control *ctrl = NULL;
549 struct uvc_entity *entity;
550 int next = v4l2_id & V4L2_CTRL_FLAG_NEXT_CTRL;
551
552 *mapping = NULL;
553
554 /* Mask the query flags. */
555 v4l2_id &= V4L2_CTRL_ID_MASK;
556
557 /* Find the control. */
558 __uvc_find_control(video->processing, v4l2_id, mapping, &ctrl, next);
559 if (ctrl && !next)
560 return ctrl;
561
562 list_for_each_entry(entity, &video->iterms, chain) {
563 __uvc_find_control(entity, v4l2_id, mapping, &ctrl, next);
564 if (ctrl && !next)
565 return ctrl;
566 }
567
568 list_for_each_entry(entity, &video->extensions, chain) {
569 __uvc_find_control(entity, v4l2_id, mapping, &ctrl, next);
570 if (ctrl && !next)
571 return ctrl;
572 }
573
574 if (ctrl == NULL && !next)
575 uvc_trace(UVC_TRACE_CONTROL, "Control 0x%08x not found.\n",
576 v4l2_id);
577
578 return ctrl;
579}
580
581int uvc_query_v4l2_ctrl(struct uvc_video_device *video,
582 struct v4l2_queryctrl *v4l2_ctrl)
583{
584 struct uvc_control *ctrl;
585 struct uvc_control_mapping *mapping;
586 struct uvc_menu_info *menu;
587 unsigned int i;
588 __u8 data[8];
589 int ret;
590
591 ctrl = uvc_find_control(video, v4l2_ctrl->id, &mapping);
592 if (ctrl == NULL)
593 return -EINVAL;
594
595 v4l2_ctrl->id = mapping->id;
596 v4l2_ctrl->type = mapping->v4l2_type;
597 strncpy(v4l2_ctrl->name, mapping->name, sizeof v4l2_ctrl->name);
598 v4l2_ctrl->flags = 0;
599
600 if (!(ctrl->info->flags & UVC_CONTROL_SET_CUR))
601 v4l2_ctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY;
602
603 if (ctrl->info->flags & UVC_CONTROL_GET_DEF) {
604 if ((ret = uvc_query_ctrl(video->dev, GET_DEF, ctrl->entity->id,
605 video->dev->intfnum, ctrl->info->selector,
606 &data, ctrl->info->size)) < 0)
607 return ret;
608 v4l2_ctrl->default_value = uvc_get_le_value(data, mapping);
609 }
610
611 if (mapping->v4l2_type == V4L2_CTRL_TYPE_MENU) {
612 v4l2_ctrl->minimum = 0;
613 v4l2_ctrl->maximum = mapping->menu_count - 1;
614 v4l2_ctrl->step = 1;
615
616 menu = mapping->menu_info;
617 for (i = 0; i < mapping->menu_count; ++i, ++menu) {
618 if (menu->value == v4l2_ctrl->default_value) {
619 v4l2_ctrl->default_value = i;
620 break;
621 }
622 }
623
624 return 0;
625 }
626
627 if (ctrl->info->flags & UVC_CONTROL_GET_MIN) {
628 if ((ret = uvc_query_ctrl(video->dev, GET_MIN, ctrl->entity->id,
629 video->dev->intfnum, ctrl->info->selector,
630 &data, ctrl->info->size)) < 0)
631 return ret;
632 v4l2_ctrl->minimum = uvc_get_le_value(data, mapping);
633 }
634 if (ctrl->info->flags & UVC_CONTROL_GET_MAX) {
635 if ((ret = uvc_query_ctrl(video->dev, GET_MAX, ctrl->entity->id,
636 video->dev->intfnum, ctrl->info->selector,
637 &data, ctrl->info->size)) < 0)
638 return ret;
639 v4l2_ctrl->maximum = uvc_get_le_value(data, mapping);
640 }
641 if (ctrl->info->flags & UVC_CONTROL_GET_RES) {
642 if ((ret = uvc_query_ctrl(video->dev, GET_RES, ctrl->entity->id,
643 video->dev->intfnum, ctrl->info->selector,
644 &data, ctrl->info->size)) < 0)
645 return ret;
646 v4l2_ctrl->step = uvc_get_le_value(data, mapping);
647 }
648
649 return 0;
650}
651
652
653/* --------------------------------------------------------------------------
654 * Control transactions
655 *
656 * To make extended set operations as atomic as the hardware allows, controls
657 * are handled using begin/commit/rollback operations.
658 *
659 * At the beginning of a set request, uvc_ctrl_begin should be called to
660 * initialize the request. This function acquires the control lock.
661 *
662 * When setting a control, the new value is stored in the control data field
663 * at position UVC_CTRL_DATA_CURRENT. The control is then marked as dirty for
664 * later processing. If the UVC and V4L2 control sizes differ, the current
665 * value is loaded from the hardware before storing the new value in the data
666 * field.
667 *
668 * After processing all controls in the transaction, uvc_ctrl_commit or
669 * uvc_ctrl_rollback must be called to apply the pending changes to the
670 * hardware or revert them. When applying changes, all controls marked as
671 * dirty will be modified in the UVC device, and the dirty flag will be
672 * cleared. When reverting controls, the control data field
673 * UVC_CTRL_DATA_CURRENT is reverted to its previous value
674 * (UVC_CTRL_DATA_BACKUP) for all dirty controls. Both functions release the
675 * control lock.
676 */
677int uvc_ctrl_begin(struct uvc_video_device *video)
678{
679 return mutex_lock_interruptible(&video->ctrl_mutex) ? -ERESTARTSYS : 0;
680}
681
682static int uvc_ctrl_commit_entity(struct uvc_device *dev,
683 struct uvc_entity *entity, int rollback)
684{
685 struct uvc_control *ctrl;
686 unsigned int i;
687 int ret;
688
689 if (entity == NULL)
690 return 0;
691
692 for (i = 0; i < entity->ncontrols; ++i) {
693 ctrl = &entity->controls[i];
694 if (ctrl->info == NULL || !ctrl->dirty)
695 continue;
696
697 if (!rollback)
698 ret = uvc_query_ctrl(dev, SET_CUR, ctrl->entity->id,
699 dev->intfnum, ctrl->info->selector,
700 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
701 ctrl->info->size);
702 else
703 ret = 0;
704
705 if (rollback || ret < 0)
706 memcpy(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
707 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_BACKUP),
708 ctrl->info->size);
709
710 if ((ctrl->info->flags & UVC_CONTROL_GET_CUR) == 0)
711 ctrl->loaded = 0;
712
713 ctrl->dirty = 0;
714
715 if (ret < 0)
716 return ret;
717 }
718
719 return 0;
720}
721
722int __uvc_ctrl_commit(struct uvc_video_device *video, int rollback)
723{
724 struct uvc_entity *entity;
725 int ret = 0;
726
727 /* Find the control. */
728 ret = uvc_ctrl_commit_entity(video->dev, video->processing, rollback);
729 if (ret < 0)
730 goto done;
731
732 list_for_each_entry(entity, &video->iterms, chain) {
733 ret = uvc_ctrl_commit_entity(video->dev, entity, rollback);
734 if (ret < 0)
735 goto done;
736 }
737
738 list_for_each_entry(entity, &video->extensions, chain) {
739 ret = uvc_ctrl_commit_entity(video->dev, entity, rollback);
740 if (ret < 0)
741 goto done;
742 }
743
744done:
745 mutex_unlock(&video->ctrl_mutex);
746 return ret;
747}
748
749int uvc_ctrl_get(struct uvc_video_device *video,
750 struct v4l2_ext_control *xctrl)
751{
752 struct uvc_control *ctrl;
753 struct uvc_control_mapping *mapping;
754 struct uvc_menu_info *menu;
755 unsigned int i;
756 int ret;
757
758 ctrl = uvc_find_control(video, xctrl->id, &mapping);
759 if (ctrl == NULL || (ctrl->info->flags & UVC_CONTROL_GET_CUR) == 0)
760 return -EINVAL;
761
762 if (!ctrl->loaded) {
763 ret = uvc_query_ctrl(video->dev, GET_CUR, ctrl->entity->id,
764 video->dev->intfnum, ctrl->info->selector,
765 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
766 ctrl->info->size);
767 if (ret < 0)
768 return ret;
769
770 if ((ctrl->info->flags & UVC_CONTROL_AUTO_UPDATE) == 0)
771 ctrl->loaded = 1;
772 }
773
774 xctrl->value = uvc_get_le_value(
775 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT), mapping);
776
777 if (mapping->v4l2_type == V4L2_CTRL_TYPE_MENU) {
778 menu = mapping->menu_info;
779 for (i = 0; i < mapping->menu_count; ++i, ++menu) {
780 if (menu->value == xctrl->value) {
781 xctrl->value = i;
782 break;
783 }
784 }
785 }
786
787 return 0;
788}
789
790int uvc_ctrl_set(struct uvc_video_device *video,
791 struct v4l2_ext_control *xctrl)
792{
793 struct uvc_control *ctrl;
794 struct uvc_control_mapping *mapping;
795 s32 value = xctrl->value;
796 int ret;
797
798 ctrl = uvc_find_control(video, xctrl->id, &mapping);
799 if (ctrl == NULL || (ctrl->info->flags & UVC_CONTROL_SET_CUR) == 0)
800 return -EINVAL;
801
802 if (mapping->v4l2_type == V4L2_CTRL_TYPE_MENU) {
803 if (value < 0 || value >= mapping->menu_count)
804 return -EINVAL;
805 value = mapping->menu_info[value].value;
806 }
807
808 if (!ctrl->loaded && (ctrl->info->size * 8) != mapping->size) {
809 if ((ctrl->info->flags & UVC_CONTROL_GET_CUR) == 0) {
810 memset(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
811 0, ctrl->info->size);
812 } else {
813 ret = uvc_query_ctrl(video->dev, GET_CUR,
814 ctrl->entity->id, video->dev->intfnum,
815 ctrl->info->selector,
816 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
817 ctrl->info->size);
818 if (ret < 0)
819 return ret;
820 }
821
822 if ((ctrl->info->flags & UVC_CONTROL_AUTO_UPDATE) == 0)
823 ctrl->loaded = 1;
824 }
825
826 if (!ctrl->dirty) {
827 memcpy(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_BACKUP),
828 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
829 ctrl->info->size);
830 }
831
832 uvc_set_le_value(value,
833 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT), mapping);
834
835 ctrl->dirty = 1;
836 ctrl->modified = 1;
837 return 0;
838}
839
840/* --------------------------------------------------------------------------
841 * Dynamic controls
842 */
843
844int uvc_xu_ctrl_query(struct uvc_video_device *video,
845 struct uvc_xu_control *xctrl, int set)
846{
847 struct uvc_entity *entity;
848 struct uvc_control *ctrl = NULL;
849 unsigned int i, found = 0;
850 __u8 *data;
851 int ret;
852
853 /* Find the extension unit. */
854 list_for_each_entry(entity, &video->extensions, chain) {
855 if (entity->id == xctrl->unit)
856 break;
857 }
858
859 if (entity->id != xctrl->unit) {
860 uvc_trace(UVC_TRACE_CONTROL, "Extension unit %u not found.\n",
861 xctrl->unit);
862 return -EINVAL;
863 }
864
865 /* Find the control. */
866 for (i = 0; i < entity->ncontrols; ++i) {
867 ctrl = &entity->controls[i];
868 if (ctrl->info == NULL)
869 continue;
870
871 if (ctrl->info->selector == xctrl->selector) {
872 found = 1;
873 break;
874 }
875 }
876
877 if (!found) {
878 uvc_trace(UVC_TRACE_CONTROL,
879 "Control " UVC_GUID_FORMAT "/%u not found.\n",
880 UVC_GUID_ARGS(entity->extension.guidExtensionCode),
881 xctrl->selector);
882 return -EINVAL;
883 }
884
885 /* Validate control data size. */
886 if (ctrl->info->size != xctrl->size)
887 return -EINVAL;
888
889 if ((set && !(ctrl->info->flags & UVC_CONTROL_SET_CUR)) ||
890 (!set && !(ctrl->info->flags & UVC_CONTROL_GET_CUR)))
891 return -EINVAL;
892
893 if (mutex_lock_interruptible(&video->ctrl_mutex))
894 return -ERESTARTSYS;
895
896 memcpy(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_BACKUP),
897 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
898 xctrl->size);
899 data = uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT);
900
901 if (set && copy_from_user(data, xctrl->data, xctrl->size)) {
902 ret = -EFAULT;
903 goto out;
904 }
905
906 ret = uvc_query_ctrl(video->dev, set ? SET_CUR : GET_CUR, xctrl->unit,
907 video->dev->intfnum, xctrl->selector, data,
908 xctrl->size);
909 if (ret < 0)
910 goto out;
911
912 if (!set && copy_to_user(xctrl->data, data, xctrl->size)) {
913 ret = -EFAULT;
914 goto out;
915 }
916
917out:
918 if (ret)
919 memcpy(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT),
920 uvc_ctrl_data(ctrl, UVC_CTRL_DATA_BACKUP),
921 xctrl->size);
922
923 mutex_unlock(&video->ctrl_mutex);
924 return ret;
925}
926
927/* --------------------------------------------------------------------------
928 * Suspend/resume
929 */
930
931/*
932 * Restore control values after resume, skipping controls that haven't been
933 * changed.
934 *
935 * TODO
936 * - Don't restore modified controls that are back to their default value.
937 * - Handle restore order (Auto-Exposure Mode should be restored before
938 * Exposure Time).
939 */
940int uvc_ctrl_resume_device(struct uvc_device *dev)
941{
942 struct uvc_control *ctrl;
943 struct uvc_entity *entity;
944 unsigned int i;
945 int ret;
946
947 /* Walk the entities list and restore controls when possible. */
948 list_for_each_entry(entity, &dev->entities, list) {
949
950 for (i = 0; i < entity->ncontrols; ++i) {
951 ctrl = &entity->controls[i];
952
953 if (ctrl->info == NULL || !ctrl->modified ||
954 (ctrl->info->flags & UVC_CONTROL_RESTORE) == 0)
955 continue;
956
957 printk(KERN_INFO "restoring control " UVC_GUID_FORMAT
958 "/%u/%u\n", UVC_GUID_ARGS(ctrl->info->entity),
959 ctrl->info->index, ctrl->info->selector);
960 ctrl->dirty = 1;
961 }
962
963 ret = uvc_ctrl_commit_entity(dev, entity, 0);
964 if (ret < 0)
965 return ret;
966 }
967
968 return 0;
969}
970
971/* --------------------------------------------------------------------------
972 * Control and mapping handling
973 */
974
975static void uvc_ctrl_add_ctrl(struct uvc_device *dev,
976 struct uvc_control_info *info)
977{
978 struct uvc_entity *entity;
979 struct uvc_control *ctrl = NULL;
980 int ret, found = 0;
981 unsigned int i;
982
983 list_for_each_entry(entity, &dev->entities, list) {
984 if (!uvc_entity_match_guid(entity, info->entity))
985 continue;
986
987 for (i = 0; i < entity->ncontrols; ++i) {
988 ctrl = &entity->controls[i];
989 if (ctrl->index == info->index) {
990 found = 1;
991 break;
992 }
993 }
994
995 if (found)
996 break;
997 }
998
999 if (!found)
1000 return;
1001
1002 if (UVC_ENTITY_TYPE(entity) == VC_EXTENSION_UNIT) {
1003 /* Check if the device control information and length match
1004 * the user supplied information.
1005 */
1006 __u32 flags;
1007 __le16 size;
1008 __u8 inf;
1009
1010 if ((ret = uvc_query_ctrl(dev, GET_LEN, ctrl->entity->id,
1011 dev->intfnum, info->selector, (__u8 *)&size, 2)) < 0) {
1012 uvc_trace(UVC_TRACE_CONTROL, "GET_LEN failed on "
1013 "control " UVC_GUID_FORMAT "/%u (%d).\n",
1014 UVC_GUID_ARGS(info->entity), info->selector,
1015 ret);
1016 return;
1017 }
1018
1019 if (info->size != le16_to_cpu(size)) {
1020 uvc_trace(UVC_TRACE_CONTROL, "Control " UVC_GUID_FORMAT
1021 "/%u size doesn't match user supplied "
1022 "value.\n", UVC_GUID_ARGS(info->entity),
1023 info->selector);
1024 return;
1025 }
1026
1027 if ((ret = uvc_query_ctrl(dev, GET_INFO, ctrl->entity->id,
1028 dev->intfnum, info->selector, &inf, 1)) < 0) {
1029 uvc_trace(UVC_TRACE_CONTROL, "GET_INFO failed on "
1030 "control " UVC_GUID_FORMAT "/%u (%d).\n",
1031 UVC_GUID_ARGS(info->entity), info->selector,
1032 ret);
1033 return;
1034 }
1035
1036 flags = info->flags;
1037 if (((flags & UVC_CONTROL_GET_CUR) && !(inf & (1 << 0))) ||
1038 ((flags & UVC_CONTROL_SET_CUR) && !(inf & (1 << 1)))) {
1039 uvc_trace(UVC_TRACE_CONTROL, "Control "
1040 UVC_GUID_FORMAT "/%u flags don't match "
1041 "supported operations.\n",
1042 UVC_GUID_ARGS(info->entity), info->selector);
1043 return;
1044 }
1045 }
1046
1047 ctrl->info = info;
1048 ctrl->data = kmalloc(ctrl->info->size * UVC_CTRL_NDATA, GFP_KERNEL);
1049 uvc_trace(UVC_TRACE_CONTROL, "Added control " UVC_GUID_FORMAT "/%u "
1050 "to device %s entity %u\n", UVC_GUID_ARGS(ctrl->info->entity),
1051 ctrl->info->selector, dev->udev->devpath, entity->id);
1052}
1053
1054/*
1055 * Add an item to the UVC control information list, and instantiate a control
1056 * structure for each device that supports the control.
1057 */
1058int uvc_ctrl_add_info(struct uvc_control_info *info)
1059{
1060 struct uvc_control_info *ctrl;
1061 struct uvc_device *dev;
1062 int ret = 0;
1063
1064 /* Find matching controls by walking the devices, entities and
1065 * controls list.
1066 */
1067 mutex_lock(&uvc_driver.ctrl_mutex);
1068
1069 /* First check if the list contains a control matching the new one.
1070 * Bail out if it does.
1071 */
1072 list_for_each_entry(ctrl, &uvc_driver.controls, list) {
1073 if (memcmp(ctrl->entity, info->entity, 16))
1074 continue;
1075
1076 if (ctrl->selector == info->selector) {
1077 uvc_trace(UVC_TRACE_CONTROL, "Control "
1078 UVC_GUID_FORMAT "/%u is already defined.\n",
1079 UVC_GUID_ARGS(info->entity), info->selector);
1080 ret = -EEXIST;
1081 goto end;
1082 }
1083 if (ctrl->index == info->index) {
1084 uvc_trace(UVC_TRACE_CONTROL, "Control "
1085 UVC_GUID_FORMAT "/%u would overwrite index "
1086 "%d.\n", UVC_GUID_ARGS(info->entity),
1087 info->selector, info->index);
1088 ret = -EEXIST;
1089 goto end;
1090 }
1091 }
1092
1093 list_for_each_entry(dev, &uvc_driver.devices, list)
1094 uvc_ctrl_add_ctrl(dev, info);
1095
1096 INIT_LIST_HEAD(&info->mappings);
1097 list_add_tail(&info->list, &uvc_driver.controls);
1098end:
1099 mutex_unlock(&uvc_driver.ctrl_mutex);
1100 return ret;
1101}
1102
1103int uvc_ctrl_add_mapping(struct uvc_control_mapping *mapping)
1104{
1105 struct uvc_control_info *info;
1106 struct uvc_control_mapping *map;
1107 int ret = -EINVAL;
1108
1109 if (mapping->id & ~V4L2_CTRL_ID_MASK) {
1110 uvc_trace(UVC_TRACE_CONTROL, "Can't add mapping '%s' with "
1111 "invalid control id 0x%08x\n", mapping->name,
1112 mapping->id);
1113 return -EINVAL;
1114 }
1115
1116 mutex_lock(&uvc_driver.ctrl_mutex);
1117 list_for_each_entry(info, &uvc_driver.controls, list) {
1118 if (memcmp(info->entity, mapping->entity, 16) ||
1119 info->selector != mapping->selector)
1120 continue;
1121
1122 if (info->size * 8 < mapping->size + mapping->offset) {
1123 uvc_trace(UVC_TRACE_CONTROL, "Mapping '%s' would "
1124 "overflow control " UVC_GUID_FORMAT "/%u\n",
1125 mapping->name, UVC_GUID_ARGS(info->entity),
1126 info->selector);
1127 ret = -EOVERFLOW;
1128 goto end;
1129 }
1130
1131 /* Check if the list contains a mapping matching the new one.
1132 * Bail out if it does.
1133 */
1134 list_for_each_entry(map, &info->mappings, list) {
1135 if (map->id == mapping->id) {
1136 uvc_trace(UVC_TRACE_CONTROL, "Mapping '%s' is "
1137 "already defined.\n", mapping->name);
1138 ret = -EEXIST;
1139 goto end;
1140 }
1141 }
1142
1143 mapping->ctrl = info;
1144 list_add_tail(&mapping->list, &info->mappings);
1145 uvc_trace(UVC_TRACE_CONTROL, "Adding mapping %s to control "
1146 UVC_GUID_FORMAT "/%u.\n", mapping->name,
1147 UVC_GUID_ARGS(info->entity), info->selector);
1148
1149 ret = 0;
1150 break;
1151 }
1152end:
1153 mutex_unlock(&uvc_driver.ctrl_mutex);
1154 return ret;
1155}
1156
1157/*
1158 * Initialize device controls.
1159 */
1160int uvc_ctrl_init_device(struct uvc_device *dev)
1161{
1162 struct uvc_control_info *info;
1163 struct uvc_control *ctrl;
1164 struct uvc_entity *entity;
1165 unsigned int i;
1166
1167 /* Walk the entities list and instantiate controls */
1168 list_for_each_entry(entity, &dev->entities, list) {
1169 unsigned int bControlSize = 0, ncontrols = 0;
1170 __u8 *bmControls = NULL;
1171
1172 if (UVC_ENTITY_TYPE(entity) == VC_EXTENSION_UNIT) {
1173 bmControls = entity->extension.bmControls;
1174 bControlSize = entity->extension.bControlSize;
1175 } else if (UVC_ENTITY_TYPE(entity) == VC_PROCESSING_UNIT) {
1176 bmControls = entity->processing.bmControls;
1177 bControlSize = entity->processing.bControlSize;
1178 } else if (UVC_ENTITY_TYPE(entity) == ITT_CAMERA) {
1179 bmControls = entity->camera.bmControls;
1180 bControlSize = entity->camera.bControlSize;
1181 }
1182
1183 for (i = 0; i < bControlSize; ++i)
1184 ncontrols += hweight8(bmControls[i]);
1185
1186 if (ncontrols == 0)
1187 continue;
1188
1189 entity->controls = kzalloc(ncontrols*sizeof *ctrl, GFP_KERNEL);
1190 if (entity->controls == NULL)
1191 return -ENOMEM;
1192
1193 entity->ncontrols = ncontrols;
1194
1195 ctrl = entity->controls;
1196 for (i = 0; i < bControlSize * 8; ++i) {
1197 if (uvc_get_bit(bmControls, i) == 0)
1198 continue;
1199
1200 ctrl->entity = entity;
1201 ctrl->index = i;
1202 ctrl++;
1203 }
1204 }
1205
1206 /* Walk the controls info list and associate them with the device
1207 * controls, then add the device to the global device list. This has
1208 * to be done while holding the controls lock, to make sure
1209 * uvc_ctrl_add_info() will not get called in-between.
1210 */
1211 mutex_lock(&uvc_driver.ctrl_mutex);
1212 list_for_each_entry(info, &uvc_driver.controls, list)
1213 uvc_ctrl_add_ctrl(dev, info);
1214
1215 list_add_tail(&dev->list, &uvc_driver.devices);
1216 mutex_unlock(&uvc_driver.ctrl_mutex);
1217
1218 return 0;
1219}
1220
1221/*
1222 * Cleanup device controls.
1223 */
1224void uvc_ctrl_cleanup_device(struct uvc_device *dev)
1225{
1226 struct uvc_entity *entity;
1227 unsigned int i;
1228
1229 /* Remove the device from the global devices list */
1230 mutex_lock(&uvc_driver.ctrl_mutex);
1231 if (dev->list.next != NULL)
1232 list_del(&dev->list);
1233 mutex_unlock(&uvc_driver.ctrl_mutex);
1234
1235 list_for_each_entry(entity, &dev->entities, list) {
1236 for (i = 0; i < entity->ncontrols; ++i)
1237 kfree(entity->controls[i].data);
1238
1239 kfree(entity->controls);
1240 }
1241}
1242
1243void uvc_ctrl_init(void)
1244{
1245 struct uvc_control_info *ctrl = uvc_ctrls;
1246 struct uvc_control_info *cend = ctrl + ARRAY_SIZE(uvc_ctrls);
1247 struct uvc_control_mapping *mapping = uvc_ctrl_mappings;
1248 struct uvc_control_mapping *mend =
1249 mapping + ARRAY_SIZE(uvc_ctrl_mappings);
1250
1251 for (; ctrl < cend; ++ctrl)
1252 uvc_ctrl_add_info(ctrl);
1253
1254 for (; mapping < mend; ++mapping)
1255 uvc_ctrl_add_mapping(mapping);
1256}
diff --git a/drivers/media/video/uvc/uvc_driver.c b/drivers/media/video/uvc/uvc_driver.c
new file mode 100644
index 000000000000..60ced589f898
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_driver.c
@@ -0,0 +1,1955 @@
1/*
2 * uvc_driver.c -- USB Video Class driver
3 *
4 * Copyright (C) 2005-2008
5 * Laurent Pinchart (laurent.pinchart@skynet.be)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14/*
15 * This driver aims to support video input devices compliant with the 'USB
16 * Video Class' specification.
17 *
18 * The driver doesn't support the deprecated v4l1 interface. It implements the
19 * mmap capture method only, and doesn't do any image format conversion in
20 * software. If your user-space application doesn't support YUYV or MJPEG, fix
21 * it :-). Please note that the MJPEG data have been stripped from their
22 * Huffman tables (DHT marker), you will need to add it back if your JPEG
23 * codec can't handle MJPEG data.
24 */
25
26#include <linux/kernel.h>
27#include <linux/version.h>
28#include <linux/list.h>
29#include <linux/module.h>
30#include <linux/usb.h>
31#include <linux/videodev2.h>
32#include <linux/vmalloc.h>
33#include <linux/wait.h>
34#include <asm/atomic.h>
35
36#include <media/v4l2-common.h>
37
38#include "uvcvideo.h"
39
40#define DRIVER_AUTHOR "Laurent Pinchart <laurent.pinchart@skynet.be>"
41#define DRIVER_DESC "USB Video Class driver"
42#ifndef DRIVER_VERSION
43#define DRIVER_VERSION "v0.1.0"
44#endif
45
46static unsigned int uvc_quirks_param;
47unsigned int uvc_trace_param;
48
49/* ------------------------------------------------------------------------
50 * Control, formats, ...
51 */
52
53static struct uvc_format_desc uvc_fmts[] = {
54 {
55 .name = "YUV 4:2:2 (YUYV)",
56 .guid = UVC_GUID_FORMAT_YUY2,
57 .fcc = V4L2_PIX_FMT_YUYV,
58 },
59 {
60 .name = "YUV 4:2:0 (NV12)",
61 .guid = UVC_GUID_FORMAT_NV12,
62 .fcc = V4L2_PIX_FMT_NV12,
63 },
64 {
65 .name = "MJPEG",
66 .guid = UVC_GUID_FORMAT_MJPEG,
67 .fcc = V4L2_PIX_FMT_MJPEG,
68 },
69 {
70 .name = "YVU 4:2:0 (YV12)",
71 .guid = UVC_GUID_FORMAT_YV12,
72 .fcc = V4L2_PIX_FMT_YVU420,
73 },
74 {
75 .name = "YUV 4:2:0 (I420)",
76 .guid = UVC_GUID_FORMAT_I420,
77 .fcc = V4L2_PIX_FMT_YUV420,
78 },
79 {
80 .name = "YUV 4:2:2 (UYVY)",
81 .guid = UVC_GUID_FORMAT_UYVY,
82 .fcc = V4L2_PIX_FMT_UYVY,
83 },
84 {
85 .name = "Greyscale",
86 .guid = UVC_GUID_FORMAT_Y800,
87 .fcc = V4L2_PIX_FMT_GREY,
88 },
89 {
90 .name = "RGB Bayer",
91 .guid = UVC_GUID_FORMAT_BY8,
92 .fcc = V4L2_PIX_FMT_SBGGR8,
93 },
94};
95
96/* ------------------------------------------------------------------------
97 * Utility functions
98 */
99
100struct usb_host_endpoint *uvc_find_endpoint(struct usb_host_interface *alts,
101 __u8 epaddr)
102{
103 struct usb_host_endpoint *ep;
104 unsigned int i;
105
106 for (i = 0; i < alts->desc.bNumEndpoints; ++i) {
107 ep = &alts->endpoint[i];
108 if (ep->desc.bEndpointAddress == epaddr)
109 return ep;
110 }
111
112 return NULL;
113}
114
115static struct uvc_format_desc *uvc_format_by_guid(const __u8 guid[16])
116{
117 unsigned int len = ARRAY_SIZE(uvc_fmts);
118 unsigned int i;
119
120 for (i = 0; i < len; ++i) {
121 if (memcmp(guid, uvc_fmts[i].guid, 16) == 0)
122 return &uvc_fmts[i];
123 }
124
125 return NULL;
126}
127
128static __u32 uvc_colorspace(const __u8 primaries)
129{
130 static const __u8 colorprimaries[] = {
131 0,
132 V4L2_COLORSPACE_SRGB,
133 V4L2_COLORSPACE_470_SYSTEM_M,
134 V4L2_COLORSPACE_470_SYSTEM_BG,
135 V4L2_COLORSPACE_SMPTE170M,
136 V4L2_COLORSPACE_SMPTE240M,
137 };
138
139 if (primaries < ARRAY_SIZE(colorprimaries))
140 return colorprimaries[primaries];
141
142 return 0;
143}
144
145/* Simplify a fraction using a simple continued fraction decomposition. The
146 * idea here is to convert fractions such as 333333/10000000 to 1/30 using
147 * 32 bit arithmetic only. The algorithm is not perfect and relies upon two
148 * arbitrary parameters to remove non-significative terms from the simple
149 * continued fraction decomposition. Using 8 and 333 for n_terms and threshold
150 * respectively seems to give nice results.
151 */
152void uvc_simplify_fraction(uint32_t *numerator, uint32_t *denominator,
153 unsigned int n_terms, unsigned int threshold)
154{
155 uint32_t *an;
156 uint32_t x, y, r;
157 unsigned int i, n;
158
159 an = kmalloc(n_terms * sizeof *an, GFP_KERNEL);
160 if (an == NULL)
161 return;
162
163 /* Convert the fraction to a simple continued fraction. See
164 * http://mathforum.org/dr.math/faq/faq.fractions.html
165 * Stop if the current term is bigger than or equal to the given
166 * threshold.
167 */
168 x = *numerator;
169 y = *denominator;
170
171 for (n = 0; n < n_terms && y != 0; ++n) {
172 an[n] = x / y;
173 if (an[n] >= threshold) {
174 if (n < 2)
175 n++;
176 break;
177 }
178
179 r = x - an[n] * y;
180 x = y;
181 y = r;
182 }
183
184 /* Expand the simple continued fraction back to an integer fraction. */
185 x = 0;
186 y = 1;
187
188 for (i = n; i > 0; --i) {
189 r = y;
190 y = an[i-1] * y + x;
191 x = r;
192 }
193
194 *numerator = y;
195 *denominator = x;
196 kfree(an);
197}
198
199/* Convert a fraction to a frame interval in 100ns multiples. The idea here is
200 * to compute numerator / denominator * 10000000 using 32 bit fixed point
201 * arithmetic only.
202 */
203uint32_t uvc_fraction_to_interval(uint32_t numerator, uint32_t denominator)
204{
205 uint32_t multiplier;
206
207 /* Saturate the result if the operation would overflow. */
208 if (denominator == 0 ||
209 numerator/denominator >= ((uint32_t)-1)/10000000)
210 return (uint32_t)-1;
211
212 /* Divide both the denominator and the multiplier by two until
213 * numerator * multiplier doesn't overflow. If anyone knows a better
214 * algorithm please let me know.
215 */
216 multiplier = 10000000;
217 while (numerator > ((uint32_t)-1)/multiplier) {
218 multiplier /= 2;
219 denominator /= 2;
220 }
221
222 return denominator ? numerator * multiplier / denominator : 0;
223}
224
225/* ------------------------------------------------------------------------
226 * Terminal and unit management
227 */
228
229static struct uvc_entity *uvc_entity_by_id(struct uvc_device *dev, int id)
230{
231 struct uvc_entity *entity;
232
233 list_for_each_entry(entity, &dev->entities, list) {
234 if (entity->id == id)
235 return entity;
236 }
237
238 return NULL;
239}
240
241static struct uvc_entity *uvc_entity_by_reference(struct uvc_device *dev,
242 int id, struct uvc_entity *entity)
243{
244 unsigned int i;
245
246 if (entity == NULL)
247 entity = list_entry(&dev->entities, struct uvc_entity, list);
248
249 list_for_each_entry_continue(entity, &dev->entities, list) {
250 switch (UVC_ENTITY_TYPE(entity)) {
251 case TT_STREAMING:
252 if (entity->output.bSourceID == id)
253 return entity;
254 break;
255
256 case VC_PROCESSING_UNIT:
257 if (entity->processing.bSourceID == id)
258 return entity;
259 break;
260
261 case VC_SELECTOR_UNIT:
262 for (i = 0; i < entity->selector.bNrInPins; ++i)
263 if (entity->selector.baSourceID[i] == id)
264 return entity;
265 break;
266
267 case VC_EXTENSION_UNIT:
268 for (i = 0; i < entity->extension.bNrInPins; ++i)
269 if (entity->extension.baSourceID[i] == id)
270 return entity;
271 break;
272 }
273 }
274
275 return NULL;
276}
277
278/* ------------------------------------------------------------------------
279 * Descriptors handling
280 */
281
282static int uvc_parse_format(struct uvc_device *dev,
283 struct uvc_streaming *streaming, struct uvc_format *format,
284 __u32 **intervals, unsigned char *buffer, int buflen)
285{
286 struct usb_interface *intf = streaming->intf;
287 struct usb_host_interface *alts = intf->cur_altsetting;
288 struct uvc_format_desc *fmtdesc;
289 struct uvc_frame *frame;
290 const unsigned char *start = buffer;
291 unsigned int interval;
292 unsigned int i, n;
293 __u8 ftype;
294
295 format->type = buffer[2];
296 format->index = buffer[3];
297
298 switch (buffer[2]) {
299 case VS_FORMAT_UNCOMPRESSED:
300 case VS_FORMAT_FRAME_BASED:
301 if (buflen < 27) {
302 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
303 "interface %d FORMAT error\n",
304 dev->udev->devnum,
305 alts->desc.bInterfaceNumber);
306 return -EINVAL;
307 }
308
309 /* Find the format descriptor from its GUID. */
310 fmtdesc = uvc_format_by_guid(&buffer[5]);
311
312 if (fmtdesc != NULL) {
313 strncpy(format->name, fmtdesc->name,
314 sizeof format->name);
315 format->fcc = fmtdesc->fcc;
316 } else {
317 uvc_printk(KERN_INFO, "Unknown video format "
318 UVC_GUID_FORMAT "\n",
319 UVC_GUID_ARGS(&buffer[5]));
320 snprintf(format->name, sizeof format->name,
321 UVC_GUID_FORMAT, UVC_GUID_ARGS(&buffer[5]));
322 format->fcc = 0;
323 }
324
325 format->bpp = buffer[21];
326 if (buffer[2] == VS_FORMAT_UNCOMPRESSED) {
327 ftype = VS_FRAME_UNCOMPRESSED;
328 } else {
329 ftype = VS_FRAME_FRAME_BASED;
330 if (buffer[27])
331 format->flags = UVC_FMT_FLAG_COMPRESSED;
332 }
333 break;
334
335 case VS_FORMAT_MJPEG:
336 if (buflen < 11) {
337 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
338 "interface %d FORMAT error\n",
339 dev->udev->devnum,
340 alts->desc.bInterfaceNumber);
341 return -EINVAL;
342 }
343
344 strncpy(format->name, "MJPEG", sizeof format->name);
345 format->fcc = V4L2_PIX_FMT_MJPEG;
346 format->flags = UVC_FMT_FLAG_COMPRESSED;
347 format->bpp = 0;
348 ftype = VS_FRAME_MJPEG;
349 break;
350
351 case VS_FORMAT_DV:
352 if (buflen < 9) {
353 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
354 "interface %d FORMAT error\n",
355 dev->udev->devnum,
356 alts->desc.bInterfaceNumber);
357 return -EINVAL;
358 }
359
360 switch (buffer[8] & 0x7f) {
361 case 0:
362 strncpy(format->name, "SD-DV", sizeof format->name);
363 break;
364 case 1:
365 strncpy(format->name, "SDL-DV", sizeof format->name);
366 break;
367 case 2:
368 strncpy(format->name, "HD-DV", sizeof format->name);
369 break;
370 default:
371 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
372 "interface %d: unknown DV format %u\n",
373 dev->udev->devnum,
374 alts->desc.bInterfaceNumber, buffer[8]);
375 return -EINVAL;
376 }
377
378 strncat(format->name, buffer[8] & (1 << 7) ? " 60Hz" : " 50Hz",
379 sizeof format->name);
380
381 format->fcc = V4L2_PIX_FMT_DV;
382 format->flags = UVC_FMT_FLAG_COMPRESSED | UVC_FMT_FLAG_STREAM;
383 format->bpp = 0;
384 ftype = 0;
385
386 /* Create a dummy frame descriptor. */
387 frame = &format->frame[0];
388 memset(&format->frame[0], 0, sizeof format->frame[0]);
389 frame->bFrameIntervalType = 1;
390 frame->dwDefaultFrameInterval = 1;
391 frame->dwFrameInterval = *intervals;
392 *(*intervals)++ = 1;
393 format->nframes = 1;
394 break;
395
396 case VS_FORMAT_MPEG2TS:
397 case VS_FORMAT_STREAM_BASED:
398 /* Not supported yet. */
399 default:
400 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
401 "interface %d unsupported format %u\n",
402 dev->udev->devnum, alts->desc.bInterfaceNumber,
403 buffer[2]);
404 return -EINVAL;
405 }
406
407 uvc_trace(UVC_TRACE_DESCR, "Found format %s.\n", format->name);
408
409 buflen -= buffer[0];
410 buffer += buffer[0];
411
412 /* Parse the frame descriptors. Only uncompressed, MJPEG and frame
413 * based formats have frame descriptors.
414 */
415 while (buflen > 2 && buffer[2] == ftype) {
416 frame = &format->frame[format->nframes];
417
418 if (ftype != VS_FRAME_FRAME_BASED)
419 n = buflen > 25 ? buffer[25] : 0;
420 else
421 n = buflen > 21 ? buffer[21] : 0;
422
423 n = n ? n : 3;
424
425 if (buflen < 26 + 4*n) {
426 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
427 "interface %d FRAME error\n", dev->udev->devnum,
428 alts->desc.bInterfaceNumber);
429 return -EINVAL;
430 }
431
432 frame->bFrameIndex = buffer[3];
433 frame->bmCapabilities = buffer[4];
434 frame->wWidth = le16_to_cpup((__le16 *)&buffer[5]);
435 frame->wHeight = le16_to_cpup((__le16 *)&buffer[7]);
436 frame->dwMinBitRate = le32_to_cpup((__le32 *)&buffer[9]);
437 frame->dwMaxBitRate = le32_to_cpup((__le32 *)&buffer[13]);
438 if (ftype != VS_FRAME_FRAME_BASED) {
439 frame->dwMaxVideoFrameBufferSize =
440 le32_to_cpup((__le32 *)&buffer[17]);
441 frame->dwDefaultFrameInterval =
442 le32_to_cpup((__le32 *)&buffer[21]);
443 frame->bFrameIntervalType = buffer[25];
444 } else {
445 frame->dwMaxVideoFrameBufferSize = 0;
446 frame->dwDefaultFrameInterval =
447 le32_to_cpup((__le32 *)&buffer[17]);
448 frame->bFrameIntervalType = buffer[21];
449 }
450 frame->dwFrameInterval = *intervals;
451
452 /* Several UVC chipsets screw up dwMaxVideoFrameBufferSize
453 * completely. Observed behaviours range from setting the
454 * value to 1.1x the actual frame size of hardwiring the
455 * 16 low bits to 0. This results in a higher than necessary
456 * memory usage as well as a wrong image size information. For
457 * uncompressed formats this can be fixed by computing the
458 * value from the frame size.
459 */
460 if (!(format->flags & UVC_FMT_FLAG_COMPRESSED))
461 frame->dwMaxVideoFrameBufferSize = format->bpp
462 * frame->wWidth * frame->wHeight / 8;
463
464 /* Some bogus devices report dwMinFrameInterval equal to
465 * dwMaxFrameInterval and have dwFrameIntervalStep set to
466 * zero. Setting all null intervals to 1 fixes the problem and
467 * some other divisions by zero which could happen.
468 */
469 for (i = 0; i < n; ++i) {
470 interval = le32_to_cpup((__le32 *)&buffer[26+4*i]);
471 *(*intervals)++ = interval ? interval : 1;
472 }
473
474 /* Make sure that the default frame interval stays between
475 * the boundaries.
476 */
477 n -= frame->bFrameIntervalType ? 1 : 2;
478 frame->dwDefaultFrameInterval =
479 min(frame->dwFrameInterval[n],
480 max(frame->dwFrameInterval[0],
481 frame->dwDefaultFrameInterval));
482
483 uvc_trace(UVC_TRACE_DESCR, "- %ux%u (%u.%u fps)\n",
484 frame->wWidth, frame->wHeight,
485 10000000/frame->dwDefaultFrameInterval,
486 (100000000/frame->dwDefaultFrameInterval)%10);
487
488 format->nframes++;
489 buflen -= buffer[0];
490 buffer += buffer[0];
491 }
492
493 if (buflen > 2 && buffer[2] == VS_STILL_IMAGE_FRAME) {
494 buflen -= buffer[0];
495 buffer += buffer[0];
496 }
497
498 if (buflen > 2 && buffer[2] == VS_COLORFORMAT) {
499 if (buflen < 6) {
500 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming"
501 "interface %d COLORFORMAT error\n",
502 dev->udev->devnum,
503 alts->desc.bInterfaceNumber);
504 return -EINVAL;
505 }
506
507 format->colorspace = uvc_colorspace(buffer[3]);
508
509 buflen -= buffer[0];
510 buffer += buffer[0];
511 }
512
513 return buffer - start;
514}
515
516static int uvc_parse_streaming(struct uvc_device *dev,
517 struct usb_interface *intf)
518{
519 struct uvc_streaming *streaming = NULL;
520 struct uvc_format *format;
521 struct uvc_frame *frame;
522 struct usb_host_interface *alts = &intf->altsetting[0];
523 unsigned char *_buffer, *buffer = alts->extra;
524 int _buflen, buflen = alts->extralen;
525 unsigned int nformats = 0, nframes = 0, nintervals = 0;
526 unsigned int size, i, n, p;
527 __u32 *interval;
528 __u16 psize;
529 int ret = -EINVAL;
530
531 if (intf->cur_altsetting->desc.bInterfaceSubClass
532 != SC_VIDEOSTREAMING) {
533 uvc_trace(UVC_TRACE_DESCR, "device %d interface %d isn't a "
534 "video streaming interface\n", dev->udev->devnum,
535 intf->altsetting[0].desc.bInterfaceNumber);
536 return -EINVAL;
537 }
538
539 if (usb_driver_claim_interface(&uvc_driver.driver, intf, dev)) {
540 uvc_trace(UVC_TRACE_DESCR, "device %d interface %d is already "
541 "claimed\n", dev->udev->devnum,
542 intf->altsetting[0].desc.bInterfaceNumber);
543 return -EINVAL;
544 }
545
546 streaming = kzalloc(sizeof *streaming, GFP_KERNEL);
547 if (streaming == NULL) {
548 usb_driver_release_interface(&uvc_driver.driver, intf);
549 return -EINVAL;
550 }
551
552 mutex_init(&streaming->mutex);
553 streaming->intf = usb_get_intf(intf);
554 streaming->intfnum = intf->cur_altsetting->desc.bInterfaceNumber;
555
556 /* The Pico iMage webcam has its class-specific interface descriptors
557 * after the endpoint descriptors.
558 */
559 if (buflen == 0) {
560 for (i = 0; i < alts->desc.bNumEndpoints; ++i) {
561 struct usb_host_endpoint *ep = &alts->endpoint[i];
562
563 if (ep->extralen == 0)
564 continue;
565
566 if (ep->extralen > 2 &&
567 ep->extra[1] == USB_DT_CS_INTERFACE) {
568 uvc_trace(UVC_TRACE_DESCR, "trying extra data "
569 "from endpoint %u.\n", i);
570 buffer = alts->endpoint[i].extra;
571 buflen = alts->endpoint[i].extralen;
572 break;
573 }
574 }
575 }
576
577 /* Skip the standard interface descriptors. */
578 while (buflen > 2 && buffer[1] != USB_DT_CS_INTERFACE) {
579 buflen -= buffer[0];
580 buffer += buffer[0];
581 }
582
583 if (buflen <= 2) {
584 uvc_trace(UVC_TRACE_DESCR, "no class-specific streaming "
585 "interface descriptors found.\n");
586 goto error;
587 }
588
589 /* Parse the header descriptor. */
590 if (buffer[2] == VS_OUTPUT_HEADER) {
591 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming interface "
592 "%d OUTPUT HEADER descriptor is not supported.\n",
593 dev->udev->devnum, alts->desc.bInterfaceNumber);
594 goto error;
595 } else if (buffer[2] == VS_INPUT_HEADER) {
596 p = buflen >= 5 ? buffer[3] : 0;
597 n = buflen >= 12 ? buffer[12] : 0;
598
599 if (buflen < 13 + p*n || buffer[2] != VS_INPUT_HEADER) {
600 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming "
601 "interface %d INPUT HEADER descriptor is "
602 "invalid.\n", dev->udev->devnum,
603 alts->desc.bInterfaceNumber);
604 goto error;
605 }
606
607 streaming->header.bNumFormats = p;
608 streaming->header.bEndpointAddress = buffer[6];
609 streaming->header.bmInfo = buffer[7];
610 streaming->header.bTerminalLink = buffer[8];
611 streaming->header.bStillCaptureMethod = buffer[9];
612 streaming->header.bTriggerSupport = buffer[10];
613 streaming->header.bTriggerUsage = buffer[11];
614 streaming->header.bControlSize = n;
615
616 streaming->header.bmaControls = kmalloc(p*n, GFP_KERNEL);
617 if (streaming->header.bmaControls == NULL) {
618 ret = -ENOMEM;
619 goto error;
620 }
621
622 memcpy(streaming->header.bmaControls, &buffer[13], p*n);
623 } else {
624 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming interface "
625 "%d HEADER descriptor not found.\n", dev->udev->devnum,
626 alts->desc.bInterfaceNumber);
627 goto error;
628 }
629
630 buflen -= buffer[0];
631 buffer += buffer[0];
632
633 _buffer = buffer;
634 _buflen = buflen;
635
636 /* Count the format and frame descriptors. */
637 while (_buflen > 2) {
638 switch (_buffer[2]) {
639 case VS_FORMAT_UNCOMPRESSED:
640 case VS_FORMAT_MJPEG:
641 case VS_FORMAT_FRAME_BASED:
642 nformats++;
643 break;
644
645 case VS_FORMAT_DV:
646 /* DV format has no frame descriptor. We will create a
647 * dummy frame descriptor with a dummy frame interval.
648 */
649 nformats++;
650 nframes++;
651 nintervals++;
652 break;
653
654 case VS_FORMAT_MPEG2TS:
655 case VS_FORMAT_STREAM_BASED:
656 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming "
657 "interface %d FORMAT %u is not supported.\n",
658 dev->udev->devnum,
659 alts->desc.bInterfaceNumber, _buffer[2]);
660 break;
661
662 case VS_FRAME_UNCOMPRESSED:
663 case VS_FRAME_MJPEG:
664 nframes++;
665 if (_buflen > 25)
666 nintervals += _buffer[25] ? _buffer[25] : 3;
667 break;
668
669 case VS_FRAME_FRAME_BASED:
670 nframes++;
671 if (_buflen > 21)
672 nintervals += _buffer[21] ? _buffer[21] : 3;
673 break;
674 }
675
676 _buflen -= _buffer[0];
677 _buffer += _buffer[0];
678 }
679
680 if (nformats == 0) {
681 uvc_trace(UVC_TRACE_DESCR, "device %d videostreaming interface "
682 "%d has no supported formats defined.\n",
683 dev->udev->devnum, alts->desc.bInterfaceNumber);
684 goto error;
685 }
686
687 size = nformats * sizeof *format + nframes * sizeof *frame
688 + nintervals * sizeof *interval;
689 format = kzalloc(size, GFP_KERNEL);
690 if (format == NULL) {
691 ret = -ENOMEM;
692 goto error;
693 }
694
695 frame = (struct uvc_frame *)&format[nformats];
696 interval = (__u32 *)&frame[nframes];
697
698 streaming->format = format;
699 streaming->nformats = nformats;
700
701 /* Parse the format descriptors. */
702 while (buflen > 2) {
703 switch (buffer[2]) {
704 case VS_FORMAT_UNCOMPRESSED:
705 case VS_FORMAT_MJPEG:
706 case VS_FORMAT_DV:
707 case VS_FORMAT_FRAME_BASED:
708 format->frame = frame;
709 ret = uvc_parse_format(dev, streaming, format,
710 &interval, buffer, buflen);
711 if (ret < 0)
712 goto error;
713
714 frame += format->nframes;
715 format++;
716
717 buflen -= ret;
718 buffer += ret;
719 continue;
720
721 default:
722 break;
723 }
724
725 buflen -= buffer[0];
726 buffer += buffer[0];
727 }
728
729 /* Parse the alternate settings to find the maximum bandwidth. */
730 for (i = 0; i < intf->num_altsetting; ++i) {
731 struct usb_host_endpoint *ep;
732 alts = &intf->altsetting[i];
733 ep = uvc_find_endpoint(alts,
734 streaming->header.bEndpointAddress);
735 if (ep == NULL)
736 continue;
737
738 psize = le16_to_cpu(ep->desc.wMaxPacketSize);
739 psize = (psize & 0x07ff) * (1 + ((psize >> 11) & 3));
740 if (psize > streaming->maxpsize)
741 streaming->maxpsize = psize;
742 }
743
744 list_add_tail(&streaming->list, &dev->streaming);
745 return 0;
746
747error:
748 usb_driver_release_interface(&uvc_driver.driver, intf);
749 usb_put_intf(intf);
750 kfree(streaming->format);
751 kfree(streaming->header.bmaControls);
752 kfree(streaming);
753 return ret;
754}
755
756/* Parse vendor-specific extensions. */
757static int uvc_parse_vendor_control(struct uvc_device *dev,
758 const unsigned char *buffer, int buflen)
759{
760 struct usb_device *udev = dev->udev;
761 struct usb_host_interface *alts = dev->intf->cur_altsetting;
762 struct uvc_entity *unit;
763 unsigned int n, p;
764 int handled = 0;
765
766 switch (le16_to_cpu(dev->udev->descriptor.idVendor)) {
767 case 0x046d: /* Logitech */
768 if (buffer[1] != 0x41 || buffer[2] != 0x01)
769 break;
770
771 /* Logitech implements several vendor specific functions
772 * through vendor specific extension units (LXU).
773 *
774 * The LXU descriptors are similar to XU descriptors
775 * (see "USB Device Video Class for Video Devices", section
776 * 3.7.2.6 "Extension Unit Descriptor") with the following
777 * differences:
778 *
779 * ----------------------------------------------------------
780 * 0 bLength 1 Number
781 * Size of this descriptor, in bytes: 24+p+n*2
782 * ----------------------------------------------------------
783 * 23+p+n bmControlsType N Bitmap
784 * Individual bits in the set are defined:
785 * 0: Absolute
786 * 1: Relative
787 *
788 * This bitset is mapped exactly the same as bmControls.
789 * ----------------------------------------------------------
790 * 23+p+n*2 bReserved 1 Boolean
791 * ----------------------------------------------------------
792 * 24+p+n*2 iExtension 1 Index
793 * Index of a string descriptor that describes this
794 * extension unit.
795 * ----------------------------------------------------------
796 */
797 p = buflen >= 22 ? buffer[21] : 0;
798 n = buflen >= 25 + p ? buffer[22+p] : 0;
799
800 if (buflen < 25 + p + 2*n) {
801 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
802 "interface %d EXTENSION_UNIT error\n",
803 udev->devnum, alts->desc.bInterfaceNumber);
804 break;
805 }
806
807 unit = kzalloc(sizeof *unit + p + 2*n, GFP_KERNEL);
808 if (unit == NULL)
809 return -ENOMEM;
810
811 unit->id = buffer[3];
812 unit->type = VC_EXTENSION_UNIT;
813 memcpy(unit->extension.guidExtensionCode, &buffer[4], 16);
814 unit->extension.bNumControls = buffer[20];
815 unit->extension.bNrInPins =
816 le16_to_cpup((__le16 *)&buffer[21]);
817 unit->extension.baSourceID = (__u8 *)unit + sizeof *unit;
818 memcpy(unit->extension.baSourceID, &buffer[22], p);
819 unit->extension.bControlSize = buffer[22+p];
820 unit->extension.bmControls = (__u8 *)unit + sizeof *unit + p;
821 unit->extension.bmControlsType = (__u8 *)unit + sizeof *unit
822 + p + n;
823 memcpy(unit->extension.bmControls, &buffer[23+p], 2*n);
824
825 if (buffer[24+p+2*n] != 0)
826 usb_string(udev, buffer[24+p+2*n], unit->name,
827 sizeof unit->name);
828 else
829 sprintf(unit->name, "Extension %u", buffer[3]);
830
831 list_add_tail(&unit->list, &dev->entities);
832 handled = 1;
833 break;
834 }
835
836 return handled;
837}
838
839static int uvc_parse_standard_control(struct uvc_device *dev,
840 const unsigned char *buffer, int buflen)
841{
842 struct usb_device *udev = dev->udev;
843 struct uvc_entity *unit, *term;
844 struct usb_interface *intf;
845 struct usb_host_interface *alts = dev->intf->cur_altsetting;
846 unsigned int i, n, p, len;
847 __u16 type;
848
849 switch (buffer[2]) {
850 case VC_HEADER:
851 n = buflen >= 12 ? buffer[11] : 0;
852
853 if (buflen < 12 || buflen < 12 + n) {
854 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
855 "interface %d HEADER error\n", udev->devnum,
856 alts->desc.bInterfaceNumber);
857 return -EINVAL;
858 }
859
860 dev->uvc_version = le16_to_cpup((__le16 *)&buffer[3]);
861 dev->clock_frequency = le32_to_cpup((__le32 *)&buffer[7]);
862
863 /* Parse all USB Video Streaming interfaces. */
864 for (i = 0; i < n; ++i) {
865 intf = usb_ifnum_to_if(udev, buffer[12+i]);
866 if (intf == NULL) {
867 uvc_trace(UVC_TRACE_DESCR, "device %d "
868 "interface %d doesn't exists\n",
869 udev->devnum, i);
870 continue;
871 }
872
873 uvc_parse_streaming(dev, intf);
874 }
875 break;
876
877 case VC_INPUT_TERMINAL:
878 if (buflen < 8) {
879 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
880 "interface %d INPUT_TERMINAL error\n",
881 udev->devnum, alts->desc.bInterfaceNumber);
882 return -EINVAL;
883 }
884
885 /* Make sure the terminal type MSB is not null, otherwise it
886 * could be confused with a unit.
887 */
888 type = le16_to_cpup((__le16 *)&buffer[4]);
889 if ((type & 0xff00) == 0) {
890 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
891 "interface %d INPUT_TERMINAL %d has invalid "
892 "type 0x%04x, skipping\n", udev->devnum,
893 alts->desc.bInterfaceNumber,
894 buffer[3], type);
895 return 0;
896 }
897
898 n = 0;
899 p = 0;
900 len = 8;
901
902 if (type == ITT_CAMERA) {
903 n = buflen >= 15 ? buffer[14] : 0;
904 len = 15;
905
906 } else if (type == ITT_MEDIA_TRANSPORT_INPUT) {
907 n = buflen >= 9 ? buffer[8] : 0;
908 p = buflen >= 10 + n ? buffer[9+n] : 0;
909 len = 10;
910 }
911
912 if (buflen < len + n + p) {
913 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
914 "interface %d INPUT_TERMINAL error\n",
915 udev->devnum, alts->desc.bInterfaceNumber);
916 return -EINVAL;
917 }
918
919 term = kzalloc(sizeof *term + n + p, GFP_KERNEL);
920 if (term == NULL)
921 return -ENOMEM;
922
923 term->id = buffer[3];
924 term->type = type | UVC_TERM_INPUT;
925
926 if (UVC_ENTITY_TYPE(term) == ITT_CAMERA) {
927 term->camera.bControlSize = n;
928 term->camera.bmControls = (__u8 *)term + sizeof *term;
929 term->camera.wObjectiveFocalLengthMin =
930 le16_to_cpup((__le16 *)&buffer[8]);
931 term->camera.wObjectiveFocalLengthMax =
932 le16_to_cpup((__le16 *)&buffer[10]);
933 term->camera.wOcularFocalLength =
934 le16_to_cpup((__le16 *)&buffer[12]);
935 memcpy(term->camera.bmControls, &buffer[15], n);
936 } else if (UVC_ENTITY_TYPE(term) == ITT_MEDIA_TRANSPORT_INPUT) {
937 term->media.bControlSize = n;
938 term->media.bmControls = (__u8 *)term + sizeof *term;
939 term->media.bTransportModeSize = p;
940 term->media.bmTransportModes = (__u8 *)term
941 + sizeof *term + n;
942 memcpy(term->media.bmControls, &buffer[9], n);
943 memcpy(term->media.bmTransportModes, &buffer[10+n], p);
944 }
945
946 if (buffer[7] != 0)
947 usb_string(udev, buffer[7], term->name,
948 sizeof term->name);
949 else if (UVC_ENTITY_TYPE(term) == ITT_CAMERA)
950 sprintf(term->name, "Camera %u", buffer[3]);
951 else if (UVC_ENTITY_TYPE(term) == ITT_MEDIA_TRANSPORT_INPUT)
952 sprintf(term->name, "Media %u", buffer[3]);
953 else
954 sprintf(term->name, "Input %u", buffer[3]);
955
956 list_add_tail(&term->list, &dev->entities);
957 break;
958
959 case VC_OUTPUT_TERMINAL:
960 if (buflen < 9) {
961 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
962 "interface %d OUTPUT_TERMINAL error\n",
963 udev->devnum, alts->desc.bInterfaceNumber);
964 return -EINVAL;
965 }
966
967 /* Make sure the terminal type MSB is not null, otherwise it
968 * could be confused with a unit.
969 */
970 type = le16_to_cpup((__le16 *)&buffer[4]);
971 if ((type & 0xff00) == 0) {
972 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
973 "interface %d OUTPUT_TERMINAL %d has invalid "
974 "type 0x%04x, skipping\n", udev->devnum,
975 alts->desc.bInterfaceNumber, buffer[3], type);
976 return 0;
977 }
978
979 term = kzalloc(sizeof *term, GFP_KERNEL);
980 if (term == NULL)
981 return -ENOMEM;
982
983 term->id = buffer[3];
984 term->type = type | UVC_TERM_OUTPUT;
985 term->output.bSourceID = buffer[7];
986
987 if (buffer[8] != 0)
988 usb_string(udev, buffer[8], term->name,
989 sizeof term->name);
990 else
991 sprintf(term->name, "Output %u", buffer[3]);
992
993 list_add_tail(&term->list, &dev->entities);
994 break;
995
996 case VC_SELECTOR_UNIT:
997 p = buflen >= 5 ? buffer[4] : 0;
998
999 if (buflen < 5 || buflen < 6 + p) {
1000 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
1001 "interface %d SELECTOR_UNIT error\n",
1002 udev->devnum, alts->desc.bInterfaceNumber);
1003 return -EINVAL;
1004 }
1005
1006 unit = kzalloc(sizeof *unit + p, GFP_KERNEL);
1007 if (unit == NULL)
1008 return -ENOMEM;
1009
1010 unit->id = buffer[3];
1011 unit->type = buffer[2];
1012 unit->selector.bNrInPins = buffer[4];
1013 unit->selector.baSourceID = (__u8 *)unit + sizeof *unit;
1014 memcpy(unit->selector.baSourceID, &buffer[5], p);
1015
1016 if (buffer[5+p] != 0)
1017 usb_string(udev, buffer[5+p], unit->name,
1018 sizeof unit->name);
1019 else
1020 sprintf(unit->name, "Selector %u", buffer[3]);
1021
1022 list_add_tail(&unit->list, &dev->entities);
1023 break;
1024
1025 case VC_PROCESSING_UNIT:
1026 n = buflen >= 8 ? buffer[7] : 0;
1027 p = dev->uvc_version >= 0x0110 ? 10 : 9;
1028
1029 if (buflen < p + n) {
1030 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
1031 "interface %d PROCESSING_UNIT error\n",
1032 udev->devnum, alts->desc.bInterfaceNumber);
1033 return -EINVAL;
1034 }
1035
1036 unit = kzalloc(sizeof *unit + n, GFP_KERNEL);
1037 if (unit == NULL)
1038 return -ENOMEM;
1039
1040 unit->id = buffer[3];
1041 unit->type = buffer[2];
1042 unit->processing.bSourceID = buffer[4];
1043 unit->processing.wMaxMultiplier =
1044 le16_to_cpup((__le16 *)&buffer[5]);
1045 unit->processing.bControlSize = buffer[7];
1046 unit->processing.bmControls = (__u8 *)unit + sizeof *unit;
1047 memcpy(unit->processing.bmControls, &buffer[8], n);
1048 if (dev->uvc_version >= 0x0110)
1049 unit->processing.bmVideoStandards = buffer[9+n];
1050
1051 if (buffer[8+n] != 0)
1052 usb_string(udev, buffer[8+n], unit->name,
1053 sizeof unit->name);
1054 else
1055 sprintf(unit->name, "Processing %u", buffer[3]);
1056
1057 list_add_tail(&unit->list, &dev->entities);
1058 break;
1059
1060 case VC_EXTENSION_UNIT:
1061 p = buflen >= 22 ? buffer[21] : 0;
1062 n = buflen >= 24 + p ? buffer[22+p] : 0;
1063
1064 if (buflen < 24 + p + n) {
1065 uvc_trace(UVC_TRACE_DESCR, "device %d videocontrol "
1066 "interface %d EXTENSION_UNIT error\n",
1067 udev->devnum, alts->desc.bInterfaceNumber);
1068 return -EINVAL;
1069 }
1070
1071 unit = kzalloc(sizeof *unit + p + n, GFP_KERNEL);
1072 if (unit == NULL)
1073 return -ENOMEM;
1074
1075 unit->id = buffer[3];
1076 unit->type = buffer[2];
1077 memcpy(unit->extension.guidExtensionCode, &buffer[4], 16);
1078 unit->extension.bNumControls = buffer[20];
1079 unit->extension.bNrInPins =
1080 le16_to_cpup((__le16 *)&buffer[21]);
1081 unit->extension.baSourceID = (__u8 *)unit + sizeof *unit;
1082 memcpy(unit->extension.baSourceID, &buffer[22], p);
1083 unit->extension.bControlSize = buffer[22+p];
1084 unit->extension.bmControls = (__u8 *)unit + sizeof *unit + p;
1085 memcpy(unit->extension.bmControls, &buffer[23+p], n);
1086
1087 if (buffer[23+p+n] != 0)
1088 usb_string(udev, buffer[23+p+n], unit->name,
1089 sizeof unit->name);
1090 else
1091 sprintf(unit->name, "Extension %u", buffer[3]);
1092
1093 list_add_tail(&unit->list, &dev->entities);
1094 break;
1095
1096 default:
1097 uvc_trace(UVC_TRACE_DESCR, "Found an unknown CS_INTERFACE "
1098 "descriptor (%u)\n", buffer[2]);
1099 break;
1100 }
1101
1102 return 0;
1103}
1104
1105static int uvc_parse_control(struct uvc_device *dev)
1106{
1107 struct usb_host_interface *alts = dev->intf->cur_altsetting;
1108 unsigned char *buffer = alts->extra;
1109 int buflen = alts->extralen;
1110 int ret;
1111
1112 /* Parse the default alternate setting only, as the UVC specification
1113 * defines a single alternate setting, the default alternate setting
1114 * zero.
1115 */
1116
1117 while (buflen > 2) {
1118 if (uvc_parse_vendor_control(dev, buffer, buflen) ||
1119 buffer[1] != USB_DT_CS_INTERFACE)
1120 goto next_descriptor;
1121
1122 if ((ret = uvc_parse_standard_control(dev, buffer, buflen)) < 0)
1123 return ret;
1124
1125next_descriptor:
1126 buflen -= buffer[0];
1127 buffer += buffer[0];
1128 }
1129
1130 /* Check if the optional status endpoint is present. */
1131 if (alts->desc.bNumEndpoints == 1) {
1132 struct usb_host_endpoint *ep = &alts->endpoint[0];
1133 struct usb_endpoint_descriptor *desc = &ep->desc;
1134
1135 if (usb_endpoint_is_int_in(desc) &&
1136 le16_to_cpu(desc->wMaxPacketSize) >= 8 &&
1137 desc->bInterval != 0) {
1138 uvc_trace(UVC_TRACE_DESCR, "Found a Status endpoint "
1139 "(addr %02x).\n", desc->bEndpointAddress);
1140 dev->int_ep = ep;
1141 }
1142 }
1143
1144 return 0;
1145}
1146
1147/* ------------------------------------------------------------------------
1148 * USB probe and disconnect
1149 */
1150
1151/*
1152 * Unregister the video devices.
1153 */
1154static void uvc_unregister_video(struct uvc_device *dev)
1155{
1156 if (dev->video.vdev) {
1157 if (dev->video.vdev->minor == -1)
1158 video_device_release(dev->video.vdev);
1159 else
1160 video_unregister_device(dev->video.vdev);
1161 dev->video.vdev = NULL;
1162 }
1163}
1164
1165/*
1166 * Scan the UVC descriptors to locate a chain starting at an Output Terminal
1167 * and containing the following units:
1168 *
1169 * - a USB Streaming Output Terminal
1170 * - zero or one Processing Unit
1171 * - zero, one or mode single-input Selector Units
1172 * - zero or one multiple-input Selector Units, provided all inputs are
1173 * connected to input terminals
1174 * - zero, one or mode single-input Extension Units
1175 * - one Camera Input Terminal, or one or more External terminals.
1176 *
1177 * A side forward scan is made on each detected entity to check for additional
1178 * extension units.
1179 */
1180static int uvc_scan_chain_entity(struct uvc_video_device *video,
1181 struct uvc_entity *entity)
1182{
1183 switch (UVC_ENTITY_TYPE(entity)) {
1184 case VC_EXTENSION_UNIT:
1185 if (uvc_trace_param & UVC_TRACE_PROBE)
1186 printk(" <- XU %d", entity->id);
1187
1188 if (entity->extension.bNrInPins != 1) {
1189 uvc_trace(UVC_TRACE_DESCR, "Extension unit %d has more "
1190 "than 1 input pin.\n", entity->id);
1191 return -1;
1192 }
1193
1194 list_add_tail(&entity->chain, &video->extensions);
1195 break;
1196
1197 case VC_PROCESSING_UNIT:
1198 if (uvc_trace_param & UVC_TRACE_PROBE)
1199 printk(" <- PU %d", entity->id);
1200
1201 if (video->processing != NULL) {
1202 uvc_trace(UVC_TRACE_DESCR, "Found multiple "
1203 "Processing Units in chain.\n");
1204 return -1;
1205 }
1206
1207 video->processing = entity;
1208 break;
1209
1210 case VC_SELECTOR_UNIT:
1211 if (uvc_trace_param & UVC_TRACE_PROBE)
1212 printk(" <- SU %d", entity->id);
1213
1214 /* Single-input selector units are ignored. */
1215 if (entity->selector.bNrInPins == 1)
1216 break;
1217
1218 if (video->selector != NULL) {
1219 uvc_trace(UVC_TRACE_DESCR, "Found multiple Selector "
1220 "Units in chain.\n");
1221 return -1;
1222 }
1223
1224 video->selector = entity;
1225 break;
1226
1227 case ITT_VENDOR_SPECIFIC:
1228 case ITT_CAMERA:
1229 case ITT_MEDIA_TRANSPORT_INPUT:
1230 if (uvc_trace_param & UVC_TRACE_PROBE)
1231 printk(" <- IT %d\n", entity->id);
1232
1233 list_add_tail(&entity->chain, &video->iterms);
1234 break;
1235
1236 default:
1237 uvc_trace(UVC_TRACE_DESCR, "Unsupported entity type "
1238 "0x%04x found in chain.\n", UVC_ENTITY_TYPE(entity));
1239 return -1;
1240 }
1241
1242 return 0;
1243}
1244
1245static int uvc_scan_chain_forward(struct uvc_video_device *video,
1246 struct uvc_entity *entity, struct uvc_entity *prev)
1247{
1248 struct uvc_entity *forward;
1249 int found;
1250
1251 /* Forward scan */
1252 forward = NULL;
1253 found = 0;
1254
1255 while (1) {
1256 forward = uvc_entity_by_reference(video->dev, entity->id,
1257 forward);
1258 if (forward == NULL)
1259 break;
1260
1261 if (UVC_ENTITY_TYPE(forward) != VC_EXTENSION_UNIT ||
1262 forward == prev)
1263 continue;
1264
1265 if (forward->extension.bNrInPins != 1) {
1266 uvc_trace(UVC_TRACE_DESCR, "Extension unit %d has"
1267 "more than 1 input pin.\n", entity->id);
1268 return -1;
1269 }
1270
1271 list_add_tail(&forward->chain, &video->extensions);
1272 if (uvc_trace_param & UVC_TRACE_PROBE) {
1273 if (!found)
1274 printk(" (-> XU");
1275
1276 printk(" %d", forward->id);
1277 found = 1;
1278 }
1279 }
1280 if (found)
1281 printk(")");
1282
1283 return 0;
1284}
1285
1286static int uvc_scan_chain_backward(struct uvc_video_device *video,
1287 struct uvc_entity *entity)
1288{
1289 struct uvc_entity *term;
1290 int id = -1, i;
1291
1292 switch (UVC_ENTITY_TYPE(entity)) {
1293 case VC_EXTENSION_UNIT:
1294 id = entity->extension.baSourceID[0];
1295 break;
1296
1297 case VC_PROCESSING_UNIT:
1298 id = entity->processing.bSourceID;
1299 break;
1300
1301 case VC_SELECTOR_UNIT:
1302 /* Single-input selector units are ignored. */
1303 if (entity->selector.bNrInPins == 1) {
1304 id = entity->selector.baSourceID[0];
1305 break;
1306 }
1307
1308 if (uvc_trace_param & UVC_TRACE_PROBE)
1309 printk(" <- IT");
1310
1311 video->selector = entity;
1312 for (i = 0; i < entity->selector.bNrInPins; ++i) {
1313 id = entity->selector.baSourceID[i];
1314 term = uvc_entity_by_id(video->dev, id);
1315 if (term == NULL || !UVC_ENTITY_IS_ITERM(term)) {
1316 uvc_trace(UVC_TRACE_DESCR, "Selector unit %d "
1317 "input %d isn't connected to an "
1318 "input terminal\n", entity->id, i);
1319 return -1;
1320 }
1321
1322 if (uvc_trace_param & UVC_TRACE_PROBE)
1323 printk(" %d", term->id);
1324
1325 list_add_tail(&term->chain, &video->iterms);
1326 uvc_scan_chain_forward(video, term, entity);
1327 }
1328
1329 if (uvc_trace_param & UVC_TRACE_PROBE)
1330 printk("\n");
1331
1332 id = 0;
1333 break;
1334 }
1335
1336 return id;
1337}
1338
1339static int uvc_scan_chain(struct uvc_video_device *video)
1340{
1341 struct uvc_entity *entity, *prev;
1342 int id;
1343
1344 entity = video->oterm;
1345 uvc_trace(UVC_TRACE_PROBE, "Scanning UVC chain: OT %d", entity->id);
1346 id = entity->output.bSourceID;
1347 while (id != 0) {
1348 prev = entity;
1349 entity = uvc_entity_by_id(video->dev, id);
1350 if (entity == NULL) {
1351 uvc_trace(UVC_TRACE_DESCR, "Found reference to "
1352 "unknown entity %d.\n", id);
1353 return -1;
1354 }
1355
1356 /* Process entity */
1357 if (uvc_scan_chain_entity(video, entity) < 0)
1358 return -1;
1359
1360 /* Forward scan */
1361 if (uvc_scan_chain_forward(video, entity, prev) < 0)
1362 return -1;
1363
1364 /* Stop when a terminal is found. */
1365 if (!UVC_ENTITY_IS_UNIT(entity))
1366 break;
1367
1368 /* Backward scan */
1369 id = uvc_scan_chain_backward(video, entity);
1370 if (id < 0)
1371 return id;
1372 }
1373
1374 /* Initialize the video buffers queue. */
1375 uvc_queue_init(&video->queue);
1376
1377 return 0;
1378}
1379
1380/*
1381 * Register the video devices.
1382 *
1383 * The driver currently supports a single video device per control interface
1384 * only. The terminal and units must match the following structure:
1385 *
1386 * ITT_CAMERA -> VC_PROCESSING_UNIT -> VC_EXTENSION_UNIT{0,n} -> TT_STREAMING
1387 *
1388 * The Extension Units, if present, must have a single input pin. The
1389 * Processing Unit and Extension Units can be in any order. Additional
1390 * Extension Units connected to the main chain as single-unit branches are
1391 * also supported.
1392 */
1393static int uvc_register_video(struct uvc_device *dev)
1394{
1395 struct video_device *vdev;
1396 struct uvc_entity *term;
1397 int found = 0, ret;
1398
1399 /* Check if the control interface matches the structure we expect. */
1400 list_for_each_entry(term, &dev->entities, list) {
1401 struct uvc_streaming *streaming;
1402
1403 if (UVC_ENTITY_TYPE(term) != TT_STREAMING)
1404 continue;
1405
1406 memset(&dev->video, 0, sizeof dev->video);
1407 mutex_init(&dev->video.ctrl_mutex);
1408 INIT_LIST_HEAD(&dev->video.iterms);
1409 INIT_LIST_HEAD(&dev->video.extensions);
1410 dev->video.oterm = term;
1411 dev->video.dev = dev;
1412 if (uvc_scan_chain(&dev->video) < 0)
1413 continue;
1414
1415 list_for_each_entry(streaming, &dev->streaming, list) {
1416 if (streaming->header.bTerminalLink == term->id) {
1417 dev->video.streaming = streaming;
1418 found = 1;
1419 break;
1420 }
1421 }
1422
1423 if (found)
1424 break;
1425 }
1426
1427 if (!found) {
1428 uvc_printk(KERN_INFO, "No valid video chain found.\n");
1429 return -1;
1430 }
1431
1432 if (uvc_trace_param & UVC_TRACE_PROBE) {
1433 uvc_printk(KERN_INFO, "Found a valid video chain (");
1434 list_for_each_entry(term, &dev->video.iterms, chain) {
1435 printk("%d", term->id);
1436 if (term->chain.next != &dev->video.iterms)
1437 printk(",");
1438 }
1439 printk(" -> %d).\n", dev->video.oterm->id);
1440 }
1441
1442 /* Initialize the streaming interface with default streaming
1443 * parameters.
1444 */
1445 if ((ret = uvc_video_init(&dev->video)) < 0) {
1446 uvc_printk(KERN_ERR, "Failed to initialize the device "
1447 "(%d).\n", ret);
1448 return ret;
1449 }
1450
1451 /* Register the device with V4L. */
1452 vdev = video_device_alloc();
1453 if (vdev == NULL)
1454 return -1;
1455
1456 /* We already hold a reference to dev->udev. The video device will be
1457 * unregistered before the reference is released, so we don't need to
1458 * get another one.
1459 */
1460 vdev->dev = &dev->intf->dev;
1461 vdev->type = 0;
1462 vdev->type2 = 0;
1463 vdev->minor = -1;
1464 vdev->fops = &uvc_fops;
1465 vdev->release = video_device_release;
1466 strncpy(vdev->name, dev->name, sizeof vdev->name);
1467
1468 /* Set the driver data before calling video_register_device, otherwise
1469 * uvc_v4l2_open might race us.
1470 *
1471 * FIXME: usb_set_intfdata hasn't been called so far. Is that a
1472 * problem ? Does any function which could be called here get
1473 * a pointer to the usb_interface ?
1474 */
1475 dev->video.vdev = vdev;
1476 video_set_drvdata(vdev, &dev->video);
1477
1478 if (video_register_device(vdev, VFL_TYPE_GRABBER, -1) < 0) {
1479 dev->video.vdev = NULL;
1480 video_device_release(vdev);
1481 return -1;
1482 }
1483
1484 return 0;
1485}
1486
1487/*
1488 * Delete the UVC device.
1489 *
1490 * Called by the kernel when the last reference to the uvc_device structure
1491 * is released.
1492 *
1493 * Unregistering the video devices is done here because every opened instance
1494 * must be closed before the device can be unregistered. An alternative would
1495 * have been to use another reference count for uvc_v4l2_open/uvc_release, and
1496 * unregister the video devices on disconnect when that reference count drops
1497 * to zero.
1498 *
1499 * As this function is called after or during disconnect(), all URBs have
1500 * already been canceled by the USB core. There is no need to kill the
1501 * interrupt URB manually.
1502 */
1503void uvc_delete(struct kref *kref)
1504{
1505 struct uvc_device *dev = container_of(kref, struct uvc_device, kref);
1506 struct list_head *p, *n;
1507
1508 /* Unregister the video device */
1509 uvc_unregister_video(dev);
1510 usb_put_intf(dev->intf);
1511 usb_put_dev(dev->udev);
1512
1513 uvc_status_cleanup(dev);
1514 uvc_ctrl_cleanup_device(dev);
1515
1516 list_for_each_safe(p, n, &dev->entities) {
1517 struct uvc_entity *entity;
1518 entity = list_entry(p, struct uvc_entity, list);
1519 kfree(entity);
1520 }
1521
1522 list_for_each_safe(p, n, &dev->streaming) {
1523 struct uvc_streaming *streaming;
1524 streaming = list_entry(p, struct uvc_streaming, list);
1525 usb_driver_release_interface(&uvc_driver.driver,
1526 streaming->intf);
1527 usb_put_intf(streaming->intf);
1528 kfree(streaming->format);
1529 kfree(streaming->header.bmaControls);
1530 kfree(streaming);
1531 }
1532
1533 kfree(dev);
1534}
1535
1536static int uvc_probe(struct usb_interface *intf,
1537 const struct usb_device_id *id)
1538{
1539 struct usb_device *udev = interface_to_usbdev(intf);
1540 struct uvc_device *dev;
1541 int ret;
1542
1543 if (id->idVendor && id->idProduct)
1544 uvc_trace(UVC_TRACE_PROBE, "Probing known UVC device %s "
1545 "(%04x:%04x)\n", udev->devpath, id->idVendor,
1546 id->idProduct);
1547 else
1548 uvc_trace(UVC_TRACE_PROBE, "Probing generic UVC device %s\n",
1549 udev->devpath);
1550
1551 /* Allocate memory for the device and initialize it */
1552 if ((dev = kzalloc(sizeof *dev, GFP_KERNEL)) == NULL)
1553 return -ENOMEM;
1554
1555 INIT_LIST_HEAD(&dev->entities);
1556 INIT_LIST_HEAD(&dev->streaming);
1557 kref_init(&dev->kref);
1558
1559 dev->udev = usb_get_dev(udev);
1560 dev->intf = usb_get_intf(intf);
1561 dev->intfnum = intf->cur_altsetting->desc.bInterfaceNumber;
1562 dev->quirks = id->driver_info | uvc_quirks_param;
1563
1564 if (udev->product != NULL)
1565 strncpy(dev->name, udev->product, sizeof dev->name);
1566 else
1567 snprintf(dev->name, sizeof dev->name,
1568 "UVC Camera (%04x:%04x)",
1569 le16_to_cpu(udev->descriptor.idVendor),
1570 le16_to_cpu(udev->descriptor.idProduct));
1571
1572 /* Parse the Video Class control descriptor */
1573 if (uvc_parse_control(dev) < 0) {
1574 uvc_trace(UVC_TRACE_PROBE, "Unable to parse UVC "
1575 "descriptors.\n");
1576 goto error;
1577 }
1578
1579 uvc_printk(KERN_INFO, "Found UVC %u.%02u device %s (%04x:%04x)\n",
1580 dev->uvc_version >> 8, dev->uvc_version & 0xff,
1581 udev->product ? udev->product : "<unnamed>",
1582 le16_to_cpu(udev->descriptor.idVendor),
1583 le16_to_cpu(udev->descriptor.idProduct));
1584
1585 if (uvc_quirks_param != 0) {
1586 uvc_printk(KERN_INFO, "Forcing device quirks 0x%x by module "
1587 "parameter for testing purpose.\n", uvc_quirks_param);
1588 uvc_printk(KERN_INFO, "Please report required quirks to the "
1589 "linux-uvc-devel mailing list.\n");
1590 }
1591
1592 /* Initialize controls */
1593 if (uvc_ctrl_init_device(dev) < 0)
1594 goto error;
1595
1596 /* Register the video devices */
1597 if (uvc_register_video(dev) < 0)
1598 goto error;
1599
1600 /* Save our data pointer in the interface data */
1601 usb_set_intfdata(intf, dev);
1602
1603 /* Initialize the interrupt URB */
1604 if ((ret = uvc_status_init(dev)) < 0) {
1605 uvc_printk(KERN_INFO, "Unable to initialize the status "
1606 "endpoint (%d), status interrupt will not be "
1607 "supported.\n", ret);
1608 }
1609
1610 uvc_trace(UVC_TRACE_PROBE, "UVC device initialized.\n");
1611 return 0;
1612
1613error:
1614 kref_put(&dev->kref, uvc_delete);
1615 return -ENODEV;
1616}
1617
1618static void uvc_disconnect(struct usb_interface *intf)
1619{
1620 struct uvc_device *dev = usb_get_intfdata(intf);
1621
1622 /* Set the USB interface data to NULL. This can be done outside the
1623 * lock, as there's no other reader.
1624 */
1625 usb_set_intfdata(intf, NULL);
1626
1627 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOSTREAMING)
1628 return;
1629
1630 /* uvc_v4l2_open() might race uvc_disconnect(). A static driver-wide
1631 * lock is needed to prevent uvc_disconnect from releasing its
1632 * reference to the uvc_device instance after uvc_v4l2_open() received
1633 * the pointer to the device (video_devdata) but before it got the
1634 * chance to increase the reference count (kref_get).
1635 */
1636 mutex_lock(&uvc_driver.open_mutex);
1637
1638 dev->state |= UVC_DEV_DISCONNECTED;
1639 kref_put(&dev->kref, uvc_delete);
1640
1641 mutex_unlock(&uvc_driver.open_mutex);
1642}
1643
1644static int uvc_suspend(struct usb_interface *intf, pm_message_t message)
1645{
1646 struct uvc_device *dev = usb_get_intfdata(intf);
1647
1648 uvc_trace(UVC_TRACE_SUSPEND, "Suspending interface %u\n",
1649 intf->cur_altsetting->desc.bInterfaceNumber);
1650
1651 /* Controls are cached on the fly so they don't need to be saved. */
1652 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL)
1653 return uvc_status_suspend(dev);
1654
1655 if (dev->video.streaming->intf != intf) {
1656 uvc_trace(UVC_TRACE_SUSPEND, "Suspend: video streaming USB "
1657 "interface mismatch.\n");
1658 return -EINVAL;
1659 }
1660
1661 return uvc_video_suspend(&dev->video);
1662}
1663
1664static int uvc_resume(struct usb_interface *intf)
1665{
1666 struct uvc_device *dev = usb_get_intfdata(intf);
1667 int ret;
1668
1669 uvc_trace(UVC_TRACE_SUSPEND, "Resuming interface %u\n",
1670 intf->cur_altsetting->desc.bInterfaceNumber);
1671
1672 if (intf->cur_altsetting->desc.bInterfaceSubClass == SC_VIDEOCONTROL) {
1673 if ((ret = uvc_ctrl_resume_device(dev)) < 0)
1674 return ret;
1675
1676 return uvc_status_resume(dev);
1677 }
1678
1679 if (dev->video.streaming->intf != intf) {
1680 uvc_trace(UVC_TRACE_SUSPEND, "Resume: video streaming USB "
1681 "interface mismatch.\n");
1682 return -EINVAL;
1683 }
1684
1685 return uvc_video_resume(&dev->video);
1686}
1687
1688/* ------------------------------------------------------------------------
1689 * Driver initialization and cleanup
1690 */
1691
1692/*
1693 * The Logitech cameras listed below have their interface class set to
1694 * VENDOR_SPEC because they don't announce themselves as UVC devices, even
1695 * though they are compliant.
1696 */
1697static struct usb_device_id uvc_ids[] = {
1698 /* ALi M5606 (Clevo M540SR) */
1699 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1700 | USB_DEVICE_ID_MATCH_INT_INFO,
1701 .idVendor = 0x0402,
1702 .idProduct = 0x5606,
1703 .bInterfaceClass = USB_CLASS_VIDEO,
1704 .bInterfaceSubClass = 1,
1705 .bInterfaceProtocol = 0,
1706 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1707 /* Creative Live! Optia */
1708 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1709 | USB_DEVICE_ID_MATCH_INT_INFO,
1710 .idVendor = 0x041e,
1711 .idProduct = 0x4057,
1712 .bInterfaceClass = USB_CLASS_VIDEO,
1713 .bInterfaceSubClass = 1,
1714 .bInterfaceProtocol = 0,
1715 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1716 /* Microsoft Lifecam NX-6000 */
1717 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1718 | USB_DEVICE_ID_MATCH_INT_INFO,
1719 .idVendor = 0x045e,
1720 .idProduct = 0x00f8,
1721 .bInterfaceClass = USB_CLASS_VIDEO,
1722 .bInterfaceSubClass = 1,
1723 .bInterfaceProtocol = 0,
1724 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1725 /* Microsoft Lifecam VX-7000 */
1726 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1727 | USB_DEVICE_ID_MATCH_INT_INFO,
1728 .idVendor = 0x045e,
1729 .idProduct = 0x0723,
1730 .bInterfaceClass = USB_CLASS_VIDEO,
1731 .bInterfaceSubClass = 1,
1732 .bInterfaceProtocol = 0,
1733 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1734 /* Logitech Quickcam Fusion */
1735 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1736 | USB_DEVICE_ID_MATCH_INT_INFO,
1737 .idVendor = 0x046d,
1738 .idProduct = 0x08c1,
1739 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
1740 .bInterfaceSubClass = 1,
1741 .bInterfaceProtocol = 0 },
1742 /* Logitech Quickcam Orbit MP */
1743 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1744 | USB_DEVICE_ID_MATCH_INT_INFO,
1745 .idVendor = 0x046d,
1746 .idProduct = 0x08c2,
1747 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
1748 .bInterfaceSubClass = 1,
1749 .bInterfaceProtocol = 0 },
1750 /* Logitech Quickcam Pro for Notebook */
1751 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1752 | USB_DEVICE_ID_MATCH_INT_INFO,
1753 .idVendor = 0x046d,
1754 .idProduct = 0x08c3,
1755 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
1756 .bInterfaceSubClass = 1,
1757 .bInterfaceProtocol = 0 },
1758 /* Logitech Quickcam Pro 5000 */
1759 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1760 | USB_DEVICE_ID_MATCH_INT_INFO,
1761 .idVendor = 0x046d,
1762 .idProduct = 0x08c5,
1763 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
1764 .bInterfaceSubClass = 1,
1765 .bInterfaceProtocol = 0 },
1766 /* Logitech Quickcam OEM Dell Notebook */
1767 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1768 | USB_DEVICE_ID_MATCH_INT_INFO,
1769 .idVendor = 0x046d,
1770 .idProduct = 0x08c6,
1771 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
1772 .bInterfaceSubClass = 1,
1773 .bInterfaceProtocol = 0 },
1774 /* Logitech Quickcam OEM Cisco VT Camera II */
1775 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1776 | USB_DEVICE_ID_MATCH_INT_INFO,
1777 .idVendor = 0x046d,
1778 .idProduct = 0x08c7,
1779 .bInterfaceClass = USB_CLASS_VENDOR_SPEC,
1780 .bInterfaceSubClass = 1,
1781 .bInterfaceProtocol = 0 },
1782 /* Apple Built-In iSight */
1783 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1784 | USB_DEVICE_ID_MATCH_INT_INFO,
1785 .idVendor = 0x05ac,
1786 .idProduct = 0x8501,
1787 .bInterfaceClass = USB_CLASS_VIDEO,
1788 .bInterfaceSubClass = 1,
1789 .bInterfaceProtocol = 0,
1790 .driver_info = UVC_QUIRK_PROBE_MINMAX
1791 | UVC_QUIRK_BUILTIN_ISIGHT },
1792 /* Genesys Logic USB 2.0 PC Camera */
1793 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1794 | USB_DEVICE_ID_MATCH_INT_INFO,
1795 .idVendor = 0x05e3,
1796 .idProduct = 0x0505,
1797 .bInterfaceClass = USB_CLASS_VIDEO,
1798 .bInterfaceSubClass = 1,
1799 .bInterfaceProtocol = 0,
1800 .driver_info = UVC_QUIRK_STREAM_NO_FID },
1801 /* Silicon Motion SM371 */
1802 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1803 | USB_DEVICE_ID_MATCH_INT_INFO,
1804 .idVendor = 0x090c,
1805 .idProduct = 0xb371,
1806 .bInterfaceClass = USB_CLASS_VIDEO,
1807 .bInterfaceSubClass = 1,
1808 .bInterfaceProtocol = 0,
1809 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1810 /* MT6227 */
1811 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1812 | USB_DEVICE_ID_MATCH_INT_INFO,
1813 .idVendor = 0x0e8d,
1814 .idProduct = 0x0004,
1815 .bInterfaceClass = USB_CLASS_VIDEO,
1816 .bInterfaceSubClass = 1,
1817 .bInterfaceProtocol = 0,
1818 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1819 /* Syntek (HP Spartan) */
1820 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1821 | USB_DEVICE_ID_MATCH_INT_INFO,
1822 .idVendor = 0x174f,
1823 .idProduct = 0x5212,
1824 .bInterfaceClass = USB_CLASS_VIDEO,
1825 .bInterfaceSubClass = 1,
1826 .bInterfaceProtocol = 0,
1827 .driver_info = UVC_QUIRK_STREAM_NO_FID },
1828 /* Syntek (Asus U3S) */
1829 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1830 | USB_DEVICE_ID_MATCH_INT_INFO,
1831 .idVendor = 0x174f,
1832 .idProduct = 0x8a33,
1833 .bInterfaceClass = USB_CLASS_VIDEO,
1834 .bInterfaceSubClass = 1,
1835 .bInterfaceProtocol = 0,
1836 .driver_info = UVC_QUIRK_STREAM_NO_FID },
1837 /* Ecamm Pico iMage */
1838 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1839 | USB_DEVICE_ID_MATCH_INT_INFO,
1840 .idVendor = 0x18cd,
1841 .idProduct = 0xcafe,
1842 .bInterfaceClass = USB_CLASS_VIDEO,
1843 .bInterfaceSubClass = 1,
1844 .bInterfaceProtocol = 0,
1845 .driver_info = UVC_QUIRK_PROBE_EXTRAFIELDS },
1846 /* Bodelin ProScopeHR */
1847 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1848 | USB_DEVICE_ID_MATCH_DEV_HI
1849 | USB_DEVICE_ID_MATCH_INT_INFO,
1850 .idVendor = 0x19ab,
1851 .idProduct = 0x1000,
1852 .bcdDevice_hi = 0x0126,
1853 .bInterfaceClass = USB_CLASS_VIDEO,
1854 .bInterfaceSubClass = 1,
1855 .bInterfaceProtocol = 0,
1856 .driver_info = UVC_QUIRK_STATUS_INTERVAL },
1857 /* SiGma Micro USB Web Camera */
1858 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1859 | USB_DEVICE_ID_MATCH_INT_INFO,
1860 .idVendor = 0x1c4f,
1861 .idProduct = 0x3000,
1862 .bInterfaceClass = USB_CLASS_VIDEO,
1863 .bInterfaceSubClass = 1,
1864 .bInterfaceProtocol = 0,
1865 .driver_info = UVC_QUIRK_PROBE_MINMAX
1866 | UVC_QUIRK_IGNORE_SELECTOR_UNIT},
1867 /* Acer OEM Webcam - Unknown vendor */
1868 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1869 | USB_DEVICE_ID_MATCH_INT_INFO,
1870 .idVendor = 0x5986,
1871 .idProduct = 0x0100,
1872 .bInterfaceClass = USB_CLASS_VIDEO,
1873 .bInterfaceSubClass = 1,
1874 .bInterfaceProtocol = 0,
1875 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1876 /* Packard Bell OEM Webcam */
1877 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1878 | USB_DEVICE_ID_MATCH_INT_INFO,
1879 .idVendor = 0x5986,
1880 .idProduct = 0x0101,
1881 .bInterfaceClass = USB_CLASS_VIDEO,
1882 .bInterfaceSubClass = 1,
1883 .bInterfaceProtocol = 0,
1884 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1885 /* Acer Crystal Eye webcam */
1886 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1887 | USB_DEVICE_ID_MATCH_INT_INFO,
1888 .idVendor = 0x5986,
1889 .idProduct = 0x0102,
1890 .bInterfaceClass = USB_CLASS_VIDEO,
1891 .bInterfaceSubClass = 1,
1892 .bInterfaceProtocol = 0,
1893 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1894 /* Acer OrbiCam - Unknown vendor */
1895 { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
1896 | USB_DEVICE_ID_MATCH_INT_INFO,
1897 .idVendor = 0x5986,
1898 .idProduct = 0x0200,
1899 .bInterfaceClass = USB_CLASS_VIDEO,
1900 .bInterfaceSubClass = 1,
1901 .bInterfaceProtocol = 0,
1902 .driver_info = UVC_QUIRK_PROBE_MINMAX },
1903 /* Generic USB Video Class */
1904 { USB_INTERFACE_INFO(USB_CLASS_VIDEO, 1, 0) },
1905 {}
1906};
1907
1908MODULE_DEVICE_TABLE(usb, uvc_ids);
1909
1910struct uvc_driver uvc_driver = {
1911 .driver = {
1912 .name = "uvcvideo",
1913 .probe = uvc_probe,
1914 .disconnect = uvc_disconnect,
1915 .suspend = uvc_suspend,
1916 .resume = uvc_resume,
1917 .id_table = uvc_ids,
1918 .supports_autosuspend = 1,
1919 },
1920};
1921
1922static int __init uvc_init(void)
1923{
1924 int result;
1925
1926 INIT_LIST_HEAD(&uvc_driver.devices);
1927 INIT_LIST_HEAD(&uvc_driver.controls);
1928 mutex_init(&uvc_driver.open_mutex);
1929 mutex_init(&uvc_driver.ctrl_mutex);
1930
1931 uvc_ctrl_init();
1932
1933 result = usb_register(&uvc_driver.driver);
1934 if (result == 0)
1935 printk(KERN_INFO DRIVER_DESC " (" DRIVER_VERSION ")\n");
1936 return result;
1937}
1938
1939static void __exit uvc_cleanup(void)
1940{
1941 usb_deregister(&uvc_driver.driver);
1942}
1943
1944module_init(uvc_init);
1945module_exit(uvc_cleanup);
1946
1947module_param_named(quirks, uvc_quirks_param, uint, S_IRUGO|S_IWUSR);
1948MODULE_PARM_DESC(quirks, "Forced device quirks");
1949module_param_named(trace, uvc_trace_param, uint, S_IRUGO|S_IWUSR);
1950MODULE_PARM_DESC(trace, "Trace level bitmask");
1951
1952MODULE_AUTHOR(DRIVER_AUTHOR);
1953MODULE_DESCRIPTION(DRIVER_DESC);
1954MODULE_LICENSE("GPL");
1955MODULE_VERSION(DRIVER_VERSION);
diff --git a/drivers/media/video/uvc/uvc_isight.c b/drivers/media/video/uvc/uvc_isight.c
new file mode 100644
index 000000000000..37bdefdbead5
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_isight.c
@@ -0,0 +1,134 @@
1/*
2 * uvc_isight.c -- USB Video Class driver - iSight support
3 *
4 * Copyright (C) 2006-2007
5 * Ivan N. Zlatev <contact@i-nz.net>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14#include <linux/usb.h>
15#include <linux/kernel.h>
16#include <linux/mm.h>
17
18#include "uvcvideo.h"
19
20/* Built-in iSight webcams implements most of UVC 1.0 except a
21 * different packet format. Instead of sending a header at the
22 * beginning of each isochronous transfer payload, the webcam sends a
23 * single header per image (on its own in a packet), followed by
24 * packets containing data only.
25 *
26 * Offset Size (bytes) Description
27 * ------------------------------------------------------------------
28 * 0x00 1 Header length
29 * 0x01 1 Flags (UVC-compliant)
30 * 0x02 4 Always equal to '11223344'
31 * 0x06 8 Always equal to 'deadbeefdeadface'
32 * 0x0e 16 Unknown
33 *
34 * The header can be prefixed by an optional, unknown-purpose byte.
35 */
36
37static int isight_decode(struct uvc_video_queue *queue, struct uvc_buffer *buf,
38 const __u8 *data, unsigned int len)
39{
40 static const __u8 hdr[] = {
41 0x11, 0x22, 0x33, 0x44,
42 0xde, 0xad, 0xbe, 0xef,
43 0xde, 0xad, 0xfa, 0xce
44 };
45
46 unsigned int maxlen, nbytes;
47 __u8 *mem;
48 int is_header = 0;
49
50 if (buf == NULL)
51 return 0;
52
53 if ((len >= 14 && memcmp(&data[2], hdr, 12) == 0) ||
54 (len >= 15 && memcmp(&data[3], hdr, 12) == 0)) {
55 uvc_trace(UVC_TRACE_FRAME, "iSight header found\n");
56 is_header = 1;
57 }
58
59 /* Synchronize to the input stream by waiting for a header packet. */
60 if (buf->state != UVC_BUF_STATE_ACTIVE) {
61 if (!is_header) {
62 uvc_trace(UVC_TRACE_FRAME, "Dropping packet (out of "
63 "sync).\n");
64 return 0;
65 }
66
67 buf->state = UVC_BUF_STATE_ACTIVE;
68 }
69
70 /* Mark the buffer as done if we're at the beginning of a new frame.
71 *
72 * Empty buffers (bytesused == 0) don't trigger end of frame detection
73 * as it doesn't make sense to return an empty buffer.
74 */
75 if (is_header && buf->buf.bytesused != 0) {
76 buf->state = UVC_BUF_STATE_DONE;
77 return -EAGAIN;
78 }
79
80 /* Copy the video data to the buffer. Skip header packets, as they
81 * contain no data.
82 */
83 if (!is_header) {
84 maxlen = buf->buf.length - buf->buf.bytesused;
85 mem = queue->mem + buf->buf.m.offset + buf->buf.bytesused;
86 nbytes = min(len, maxlen);
87 memcpy(mem, data, nbytes);
88 buf->buf.bytesused += nbytes;
89
90 if (len > maxlen || buf->buf.bytesused == buf->buf.length) {
91 uvc_trace(UVC_TRACE_FRAME, "Frame complete "
92 "(overflow).\n");
93 buf->state = UVC_BUF_STATE_DONE;
94 }
95 }
96
97 return 0;
98}
99
100void uvc_video_decode_isight(struct urb *urb, struct uvc_video_device *video,
101 struct uvc_buffer *buf)
102{
103 int ret, i;
104
105 for (i = 0; i < urb->number_of_packets; ++i) {
106 if (urb->iso_frame_desc[i].status < 0) {
107 uvc_trace(UVC_TRACE_FRAME, "USB isochronous frame "
108 "lost (%d).\n",
109 urb->iso_frame_desc[i].status);
110 }
111
112 /* Decode the payload packet.
113 * uvc_video_decode is entered twice when a frame transition
114 * has been detected because the end of frame can only be
115 * reliably detected when the first packet of the new frame
116 * is processed. The first pass detects the transition and
117 * closes the previous frame's buffer, the second pass
118 * processes the data of the first payload of the new frame.
119 */
120 do {
121 ret = isight_decode(&video->queue, buf,
122 urb->transfer_buffer +
123 urb->iso_frame_desc[i].offset,
124 urb->iso_frame_desc[i].actual_length);
125
126 if (buf == NULL)
127 break;
128
129 if (buf->state == UVC_BUF_STATE_DONE ||
130 buf->state == UVC_BUF_STATE_ERROR)
131 buf = uvc_queue_next_buffer(&video->queue, buf);
132 } while (ret == -EAGAIN);
133 }
134}
diff --git a/drivers/media/video/uvc/uvc_queue.c b/drivers/media/video/uvc/uvc_queue.c
new file mode 100644
index 000000000000..0923f0e3b3d4
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_queue.c
@@ -0,0 +1,477 @@
1/*
2 * uvc_queue.c -- USB Video Class driver - Buffers management
3 *
4 * Copyright (C) 2005-2008
5 * Laurent Pinchart (laurent.pinchart@skynet.be)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/version.h>
16#include <linux/list.h>
17#include <linux/module.h>
18#include <linux/usb.h>
19#include <linux/videodev2.h>
20#include <linux/vmalloc.h>
21#include <linux/wait.h>
22#include <asm/atomic.h>
23
24#include "uvcvideo.h"
25
26/* ------------------------------------------------------------------------
27 * Video buffers queue management.
28 *
29 * Video queues is initialized by uvc_queue_init(). The function performs
30 * basic initialization of the uvc_video_queue struct and never fails.
31 *
32 * Video buffer allocation and freeing are performed by uvc_alloc_buffers and
33 * uvc_free_buffers respectively. The former acquires the video queue lock,
34 * while the later must be called with the lock held (so that allocation can
35 * free previously allocated buffers). Trying to free buffers that are mapped
36 * to user space will return -EBUSY.
37 *
38 * Video buffers are managed using two queues. However, unlike most USB video
39 * drivers which use an in queue and an out queue, we use a main queue which
40 * holds all queued buffers (both 'empty' and 'done' buffers), and an irq
41 * queue which holds empty buffers. This design (copied from video-buf)
42 * minimizes locking in interrupt, as only one queue is shared between
43 * interrupt and user contexts.
44 *
45 * Use cases
46 * ---------
47 *
48 * Unless stated otherwise, all operations which modify the irq buffers queue
49 * are protected by the irq spinlock.
50 *
51 * 1. The user queues the buffers, starts streaming and dequeues a buffer.
52 *
53 * The buffers are added to the main and irq queues. Both operations are
54 * protected by the queue lock, and the latert is protected by the irq
55 * spinlock as well.
56 *
57 * The completion handler fetches a buffer from the irq queue and fills it
58 * with video data. If no buffer is available (irq queue empty), the handler
59 * returns immediately.
60 *
61 * When the buffer is full, the completion handler removes it from the irq
62 * queue, marks it as ready (UVC_BUF_STATE_DONE) and wake its wait queue.
63 * At that point, any process waiting on the buffer will be woken up. If a
64 * process tries to dequeue a buffer after it has been marked ready, the
65 * dequeing will succeed immediately.
66 *
67 * 2. Buffers are queued, user is waiting on a buffer and the device gets
68 * disconnected.
69 *
70 * When the device is disconnected, the kernel calls the completion handler
71 * with an appropriate status code. The handler marks all buffers in the
72 * irq queue as being erroneous (UVC_BUF_STATE_ERROR) and wakes them up so
73 * that any process waiting on a buffer gets woken up.
74 *
75 * Waking up up the first buffer on the irq list is not enough, as the
76 * process waiting on the buffer might restart the dequeue operation
77 * immediately.
78 *
79 */
80
81void uvc_queue_init(struct uvc_video_queue *queue)
82{
83 mutex_init(&queue->mutex);
84 spin_lock_init(&queue->irqlock);
85 INIT_LIST_HEAD(&queue->mainqueue);
86 INIT_LIST_HEAD(&queue->irqqueue);
87}
88
89/*
90 * Allocate the video buffers.
91 *
92 * Pages are reserved to make sure they will not be swaped, as they will be
93 * filled in URB completion handler.
94 *
95 * Buffers will be individually mapped, so they must all be page aligned.
96 */
97int uvc_alloc_buffers(struct uvc_video_queue *queue, unsigned int nbuffers,
98 unsigned int buflength)
99{
100 unsigned int bufsize = PAGE_ALIGN(buflength);
101 unsigned int i;
102 void *mem = NULL;
103 int ret;
104
105 if (nbuffers > UVC_MAX_VIDEO_BUFFERS)
106 nbuffers = UVC_MAX_VIDEO_BUFFERS;
107
108 mutex_lock(&queue->mutex);
109
110 if ((ret = uvc_free_buffers(queue)) < 0)
111 goto done;
112
113 /* Bail out if no buffers should be allocated. */
114 if (nbuffers == 0)
115 goto done;
116
117 /* Decrement the number of buffers until allocation succeeds. */
118 for (; nbuffers > 0; --nbuffers) {
119 mem = vmalloc_32(nbuffers * bufsize);
120 if (mem != NULL)
121 break;
122 }
123
124 if (mem == NULL) {
125 ret = -ENOMEM;
126 goto done;
127 }
128
129 for (i = 0; i < nbuffers; ++i) {
130 memset(&queue->buffer[i], 0, sizeof queue->buffer[i]);
131 queue->buffer[i].buf.index = i;
132 queue->buffer[i].buf.m.offset = i * bufsize;
133 queue->buffer[i].buf.length = buflength;
134 queue->buffer[i].buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
135 queue->buffer[i].buf.sequence = 0;
136 queue->buffer[i].buf.field = V4L2_FIELD_NONE;
137 queue->buffer[i].buf.memory = V4L2_MEMORY_MMAP;
138 queue->buffer[i].buf.flags = 0;
139 init_waitqueue_head(&queue->buffer[i].wait);
140 }
141
142 queue->mem = mem;
143 queue->count = nbuffers;
144 queue->buf_size = bufsize;
145 ret = nbuffers;
146
147done:
148 mutex_unlock(&queue->mutex);
149 return ret;
150}
151
152/*
153 * Free the video buffers.
154 *
155 * This function must be called with the queue lock held.
156 */
157int uvc_free_buffers(struct uvc_video_queue *queue)
158{
159 unsigned int i;
160
161 for (i = 0; i < queue->count; ++i) {
162 if (queue->buffer[i].vma_use_count != 0)
163 return -EBUSY;
164 }
165
166 if (queue->count) {
167 vfree(queue->mem);
168 queue->count = 0;
169 }
170
171 return 0;
172}
173
174static void __uvc_query_buffer(struct uvc_buffer *buf,
175 struct v4l2_buffer *v4l2_buf)
176{
177 memcpy(v4l2_buf, &buf->buf, sizeof *v4l2_buf);
178
179 if (buf->vma_use_count)
180 v4l2_buf->flags |= V4L2_BUF_FLAG_MAPPED;
181
182 switch (buf->state) {
183 case UVC_BUF_STATE_ERROR:
184 case UVC_BUF_STATE_DONE:
185 v4l2_buf->flags |= V4L2_BUF_FLAG_DONE;
186 break;
187 case UVC_BUF_STATE_QUEUED:
188 case UVC_BUF_STATE_ACTIVE:
189 v4l2_buf->flags |= V4L2_BUF_FLAG_QUEUED;
190 break;
191 case UVC_BUF_STATE_IDLE:
192 default:
193 break;
194 }
195}
196
197int uvc_query_buffer(struct uvc_video_queue *queue,
198 struct v4l2_buffer *v4l2_buf)
199{
200 int ret = 0;
201
202 mutex_lock(&queue->mutex);
203 if (v4l2_buf->index >= queue->count) {
204 ret = -EINVAL;
205 goto done;
206 }
207
208 __uvc_query_buffer(&queue->buffer[v4l2_buf->index], v4l2_buf);
209
210done:
211 mutex_unlock(&queue->mutex);
212 return ret;
213}
214
215/*
216 * Queue a video buffer. Attempting to queue a buffer that has already been
217 * queued will return -EINVAL.
218 */
219int uvc_queue_buffer(struct uvc_video_queue *queue,
220 struct v4l2_buffer *v4l2_buf)
221{
222 struct uvc_buffer *buf;
223 unsigned long flags;
224 int ret = 0;
225
226 uvc_trace(UVC_TRACE_CAPTURE, "Queuing buffer %u.\n", v4l2_buf->index);
227
228 if (v4l2_buf->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ||
229 v4l2_buf->memory != V4L2_MEMORY_MMAP) {
230 uvc_trace(UVC_TRACE_CAPTURE, "[E] Invalid buffer type (%u) "
231 "and/or memory (%u).\n", v4l2_buf->type,
232 v4l2_buf->memory);
233 return -EINVAL;
234 }
235
236 mutex_lock(&queue->mutex);
237 if (v4l2_buf->index >= queue->count) {
238 uvc_trace(UVC_TRACE_CAPTURE, "[E] Out of range index.\n");
239 ret = -EINVAL;
240 goto done;
241 }
242
243 buf = &queue->buffer[v4l2_buf->index];
244 if (buf->state != UVC_BUF_STATE_IDLE) {
245 uvc_trace(UVC_TRACE_CAPTURE, "[E] Invalid buffer state "
246 "(%u).\n", buf->state);
247 ret = -EINVAL;
248 goto done;
249 }
250
251 spin_lock_irqsave(&queue->irqlock, flags);
252 if (queue->flags & UVC_QUEUE_DISCONNECTED) {
253 spin_unlock_irqrestore(&queue->irqlock, flags);
254 ret = -ENODEV;
255 goto done;
256 }
257 buf->state = UVC_BUF_STATE_QUEUED;
258 buf->buf.bytesused = 0;
259 list_add_tail(&buf->stream, &queue->mainqueue);
260 list_add_tail(&buf->queue, &queue->irqqueue);
261 spin_unlock_irqrestore(&queue->irqlock, flags);
262
263done:
264 mutex_unlock(&queue->mutex);
265 return ret;
266}
267
268static int uvc_queue_waiton(struct uvc_buffer *buf, int nonblocking)
269{
270 if (nonblocking) {
271 return (buf->state != UVC_BUF_STATE_QUEUED &&
272 buf->state != UVC_BUF_STATE_ACTIVE)
273 ? 0 : -EAGAIN;
274 }
275
276 return wait_event_interruptible(buf->wait,
277 buf->state != UVC_BUF_STATE_QUEUED &&
278 buf->state != UVC_BUF_STATE_ACTIVE);
279}
280
281/*
282 * Dequeue a video buffer. If nonblocking is false, block until a buffer is
283 * available.
284 */
285int uvc_dequeue_buffer(struct uvc_video_queue *queue,
286 struct v4l2_buffer *v4l2_buf, int nonblocking)
287{
288 struct uvc_buffer *buf;
289 int ret = 0;
290
291 if (v4l2_buf->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ||
292 v4l2_buf->memory != V4L2_MEMORY_MMAP) {
293 uvc_trace(UVC_TRACE_CAPTURE, "[E] Invalid buffer type (%u) "
294 "and/or memory (%u).\n", v4l2_buf->type,
295 v4l2_buf->memory);
296 return -EINVAL;
297 }
298
299 mutex_lock(&queue->mutex);
300 if (list_empty(&queue->mainqueue)) {
301 uvc_trace(UVC_TRACE_CAPTURE, "[E] Empty buffer queue.\n");
302 ret = -EINVAL;
303 goto done;
304 }
305
306 buf = list_first_entry(&queue->mainqueue, struct uvc_buffer, stream);
307 if ((ret = uvc_queue_waiton(buf, nonblocking)) < 0)
308 goto done;
309
310 uvc_trace(UVC_TRACE_CAPTURE, "Dequeuing buffer %u (%u, %u bytes).\n",
311 buf->buf.index, buf->state, buf->buf.bytesused);
312
313 switch (buf->state) {
314 case UVC_BUF_STATE_ERROR:
315 uvc_trace(UVC_TRACE_CAPTURE, "[W] Corrupted data "
316 "(transmission error).\n");
317 ret = -EIO;
318 case UVC_BUF_STATE_DONE:
319 buf->state = UVC_BUF_STATE_IDLE;
320 break;
321
322 case UVC_BUF_STATE_IDLE:
323 case UVC_BUF_STATE_QUEUED:
324 case UVC_BUF_STATE_ACTIVE:
325 default:
326 uvc_trace(UVC_TRACE_CAPTURE, "[E] Invalid buffer state %u "
327 "(driver bug?).\n", buf->state);
328 ret = -EINVAL;
329 goto done;
330 }
331
332 list_del(&buf->stream);
333 __uvc_query_buffer(buf, v4l2_buf);
334
335done:
336 mutex_unlock(&queue->mutex);
337 return ret;
338}
339
340/*
341 * Poll the video queue.
342 *
343 * This function implements video queue polling and is intended to be used by
344 * the device poll handler.
345 */
346unsigned int uvc_queue_poll(struct uvc_video_queue *queue, struct file *file,
347 poll_table *wait)
348{
349 struct uvc_buffer *buf;
350 unsigned int mask = 0;
351
352 mutex_lock(&queue->mutex);
353 if (list_empty(&queue->mainqueue)) {
354 mask |= POLLERR;
355 goto done;
356 }
357 buf = list_first_entry(&queue->mainqueue, struct uvc_buffer, stream);
358
359 poll_wait(file, &buf->wait, wait);
360 if (buf->state == UVC_BUF_STATE_DONE ||
361 buf->state == UVC_BUF_STATE_ERROR)
362 mask |= POLLIN | POLLRDNORM;
363
364done:
365 mutex_unlock(&queue->mutex);
366 return mask;
367}
368
369/*
370 * Enable or disable the video buffers queue.
371 *
372 * The queue must be enabled before starting video acquisition and must be
373 * disabled after stopping it. This ensures that the video buffers queue
374 * state can be properly initialized before buffers are accessed from the
375 * interrupt handler.
376 *
377 * Enabling the video queue initializes parameters (such as sequence number,
378 * sync pattern, ...). If the queue is already enabled, return -EBUSY.
379 *
380 * Disabling the video queue cancels the queue and removes all buffers from
381 * the main queue.
382 *
383 * This function can't be called from interrupt context. Use
384 * uvc_queue_cancel() instead.
385 */
386int uvc_queue_enable(struct uvc_video_queue *queue, int enable)
387{
388 unsigned int i;
389 int ret = 0;
390
391 mutex_lock(&queue->mutex);
392 if (enable) {
393 if (uvc_queue_streaming(queue)) {
394 ret = -EBUSY;
395 goto done;
396 }
397 queue->sequence = 0;
398 queue->flags |= UVC_QUEUE_STREAMING;
399 } else {
400 uvc_queue_cancel(queue, 0);
401 INIT_LIST_HEAD(&queue->mainqueue);
402
403 for (i = 0; i < queue->count; ++i)
404 queue->buffer[i].state = UVC_BUF_STATE_IDLE;
405
406 queue->flags &= ~UVC_QUEUE_STREAMING;
407 }
408
409done:
410 mutex_unlock(&queue->mutex);
411 return ret;
412}
413
414/*
415 * Cancel the video buffers queue.
416 *
417 * Cancelling the queue marks all buffers on the irq queue as erroneous,
418 * wakes them up and remove them from the queue.
419 *
420 * If the disconnect parameter is set, further calls to uvc_queue_buffer will
421 * fail with -ENODEV.
422 *
423 * This function acquires the irq spinlock and can be called from interrupt
424 * context.
425 */
426void uvc_queue_cancel(struct uvc_video_queue *queue, int disconnect)
427{
428 struct uvc_buffer *buf;
429 unsigned long flags;
430
431 spin_lock_irqsave(&queue->irqlock, flags);
432 while (!list_empty(&queue->irqqueue)) {
433 buf = list_first_entry(&queue->irqqueue, struct uvc_buffer,
434 queue);
435 list_del(&buf->queue);
436 buf->state = UVC_BUF_STATE_ERROR;
437 wake_up(&buf->wait);
438 }
439 /* This must be protected by the irqlock spinlock to avoid race
440 * conditions between uvc_queue_buffer and the disconnection event that
441 * could result in an interruptible wait in uvc_dequeue_buffer. Do not
442 * blindly replace this logic by checking for the UVC_DEV_DISCONNECTED
443 * state outside the queue code.
444 */
445 if (disconnect)
446 queue->flags |= UVC_QUEUE_DISCONNECTED;
447 spin_unlock_irqrestore(&queue->irqlock, flags);
448}
449
450struct uvc_buffer *uvc_queue_next_buffer(struct uvc_video_queue *queue,
451 struct uvc_buffer *buf)
452{
453 struct uvc_buffer *nextbuf;
454 unsigned long flags;
455
456 if ((queue->flags & UVC_QUEUE_DROP_INCOMPLETE) &&
457 buf->buf.length != buf->buf.bytesused) {
458 buf->state = UVC_BUF_STATE_QUEUED;
459 buf->buf.bytesused = 0;
460 return buf;
461 }
462
463 spin_lock_irqsave(&queue->irqlock, flags);
464 list_del(&buf->queue);
465 if (!list_empty(&queue->irqqueue))
466 nextbuf = list_first_entry(&queue->irqqueue, struct uvc_buffer,
467 queue);
468 else
469 nextbuf = NULL;
470 spin_unlock_irqrestore(&queue->irqlock, flags);
471
472 buf->buf.sequence = queue->sequence++;
473 do_gettimeofday(&buf->buf.timestamp);
474
475 wake_up(&buf->wait);
476 return nextbuf;
477}
diff --git a/drivers/media/video/uvc/uvc_status.c b/drivers/media/video/uvc/uvc_status.c
new file mode 100644
index 000000000000..be9084e5eace
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_status.c
@@ -0,0 +1,207 @@
1/*
2 * uvc_status.c -- USB Video Class driver - Status endpoint
3 *
4 * Copyright (C) 2007-2008
5 * Laurent Pinchart (laurent.pinchart@skynet.be)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/version.h>
16#include <linux/input.h>
17#include <linux/usb.h>
18#include <linux/usb/input.h>
19
20#include "uvcvideo.h"
21
22/* --------------------------------------------------------------------------
23 * Input device
24 */
25static int uvc_input_init(struct uvc_device *dev)
26{
27 struct usb_device *udev = dev->udev;
28 struct input_dev *input;
29 char *phys = NULL;
30 int ret;
31
32 input = input_allocate_device();
33 if (input == NULL)
34 return -ENOMEM;
35
36 phys = kmalloc(6 + strlen(udev->bus->bus_name) + strlen(udev->devpath),
37 GFP_KERNEL);
38 if (phys == NULL) {
39 ret = -ENOMEM;
40 goto error;
41 }
42 sprintf(phys, "usb-%s-%s", udev->bus->bus_name, udev->devpath);
43
44 input->name = dev->name;
45 input->phys = phys;
46 usb_to_input_id(udev, &input->id);
47 input->dev.parent = &dev->intf->dev;
48
49 set_bit(EV_KEY, input->evbit);
50 set_bit(BTN_0, input->keybit);
51
52 if ((ret = input_register_device(input)) < 0)
53 goto error;
54
55 dev->input = input;
56 return 0;
57
58error:
59 input_free_device(input);
60 kfree(phys);
61 return ret;
62}
63
64static void uvc_input_cleanup(struct uvc_device *dev)
65{
66 if (dev->input)
67 input_unregister_device(dev->input);
68}
69
70/* --------------------------------------------------------------------------
71 * Status interrupt endpoint
72 */
73static void uvc_event_streaming(struct uvc_device *dev, __u8 *data, int len)
74{
75 if (len < 3) {
76 uvc_trace(UVC_TRACE_STATUS, "Invalid streaming status event "
77 "received.\n");
78 return;
79 }
80
81 if (data[2] == 0) {
82 if (len < 4)
83 return;
84 uvc_trace(UVC_TRACE_STATUS, "Button (intf %u) %s len %d\n",
85 data[1], data[3] ? "pressed" : "released", len);
86 if (dev->input)
87 input_report_key(dev->input, BTN_0, data[3]);
88 } else {
89 uvc_trace(UVC_TRACE_STATUS, "Stream %u error event %02x %02x "
90 "len %d.\n", data[1], data[2], data[3], len);
91 }
92}
93
94static void uvc_event_control(struct uvc_device *dev, __u8 *data, int len)
95{
96 char *attrs[3] = { "value", "info", "failure" };
97
98 if (len < 6 || data[2] != 0 || data[4] > 2) {
99 uvc_trace(UVC_TRACE_STATUS, "Invalid control status event "
100 "received.\n");
101 return;
102 }
103
104 uvc_trace(UVC_TRACE_STATUS, "Control %u/%u %s change len %d.\n",
105 data[1], data[3], attrs[data[4]], len);
106}
107
108static void uvc_status_complete(struct urb *urb)
109{
110 struct uvc_device *dev = urb->context;
111 int len, ret;
112
113 switch (urb->status) {
114 case 0:
115 break;
116
117 case -ENOENT: /* usb_kill_urb() called. */
118 case -ECONNRESET: /* usb_unlink_urb() called. */
119 case -ESHUTDOWN: /* The endpoint is being disabled. */
120 case -EPROTO: /* Device is disconnected (reported by some
121 * host controller). */
122 return;
123
124 default:
125 uvc_printk(KERN_WARNING, "Non-zero status (%d) in status "
126 "completion handler.\n", urb->status);
127 return;
128 }
129
130 len = urb->actual_length;
131 if (len > 0) {
132 switch (dev->status[0] & 0x0f) {
133 case UVC_STATUS_TYPE_CONTROL:
134 uvc_event_control(dev, dev->status, len);
135 break;
136
137 case UVC_STATUS_TYPE_STREAMING:
138 uvc_event_streaming(dev, dev->status, len);
139 break;
140
141 default:
142 uvc_printk(KERN_INFO, "unknown event type %u.\n",
143 dev->status[0]);
144 break;
145 }
146 }
147
148 /* Resubmit the URB. */
149 urb->interval = dev->int_ep->desc.bInterval;
150 if ((ret = usb_submit_urb(urb, GFP_ATOMIC)) < 0) {
151 uvc_printk(KERN_ERR, "Failed to resubmit status URB (%d).\n",
152 ret);
153 }
154}
155
156int uvc_status_init(struct uvc_device *dev)
157{
158 struct usb_host_endpoint *ep = dev->int_ep;
159 unsigned int pipe;
160 int interval;
161
162 if (ep == NULL)
163 return 0;
164
165 uvc_input_init(dev);
166
167 dev->int_urb = usb_alloc_urb(0, GFP_KERNEL);
168 if (dev->int_urb == NULL)
169 return -ENOMEM;
170
171 pipe = usb_rcvintpipe(dev->udev, ep->desc.bEndpointAddress);
172
173 /* For high-speed interrupt endpoints, the bInterval value is used as
174 * an exponent of two. Some developers forgot about it.
175 */
176 interval = ep->desc.bInterval;
177 if (interval > 16 && dev->udev->speed == USB_SPEED_HIGH &&
178 (dev->quirks & UVC_QUIRK_STATUS_INTERVAL))
179 interval = fls(interval) - 1;
180
181 usb_fill_int_urb(dev->int_urb, dev->udev, pipe,
182 dev->status, sizeof dev->status, uvc_status_complete,
183 dev, interval);
184
185 return usb_submit_urb(dev->int_urb, GFP_KERNEL);
186}
187
188void uvc_status_cleanup(struct uvc_device *dev)
189{
190 usb_kill_urb(dev->int_urb);
191 usb_free_urb(dev->int_urb);
192 uvc_input_cleanup(dev);
193}
194
195int uvc_status_suspend(struct uvc_device *dev)
196{
197 usb_kill_urb(dev->int_urb);
198 return 0;
199}
200
201int uvc_status_resume(struct uvc_device *dev)
202{
203 if (dev->int_urb == NULL)
204 return 0;
205
206 return usb_submit_urb(dev->int_urb, GFP_KERNEL);
207}
diff --git a/drivers/media/video/uvc/uvc_v4l2.c b/drivers/media/video/uvc/uvc_v4l2.c
new file mode 100644
index 000000000000..2e0a66575bb4
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_v4l2.c
@@ -0,0 +1,1105 @@
1/*
2 * uvc_v4l2.c -- USB Video Class driver - V4L2 API
3 *
4 * Copyright (C) 2005-2008
5 * Laurent Pinchart (laurent.pinchart@skynet.be)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/version.h>
16#include <linux/list.h>
17#include <linux/module.h>
18#include <linux/usb.h>
19#include <linux/videodev2.h>
20#include <linux/vmalloc.h>
21#include <linux/mm.h>
22#include <linux/wait.h>
23#include <asm/atomic.h>
24
25#include <media/v4l2-common.h>
26
27#include "uvcvideo.h"
28
29/* ------------------------------------------------------------------------
30 * V4L2 interface
31 */
32
33/*
34 * Mapping V4L2 controls to UVC controls can be straighforward if done well.
35 * Most of the UVC controls exist in V4L2, and can be mapped directly. Some
36 * must be grouped (for instance the Red Balance, Blue Balance and Do White
37 * Balance V4L2 controls use the White Balance Component UVC control) or
38 * otherwise translated. The approach we take here is to use a translation
39 * table for the controls which can be mapped directly, and handle the others
40 * manually.
41 */
42static int uvc_v4l2_query_menu(struct uvc_video_device *video,
43 struct v4l2_querymenu *query_menu)
44{
45 struct uvc_menu_info *menu_info;
46 struct uvc_control_mapping *mapping;
47 struct uvc_control *ctrl;
48
49 ctrl = uvc_find_control(video, query_menu->id, &mapping);
50 if (ctrl == NULL || mapping->v4l2_type != V4L2_CTRL_TYPE_MENU)
51 return -EINVAL;
52
53 if (query_menu->index >= mapping->menu_count)
54 return -EINVAL;
55
56 menu_info = &mapping->menu_info[query_menu->index];
57 strncpy(query_menu->name, menu_info->name, 32);
58 return 0;
59}
60
61/*
62 * Find the frame interval closest to the requested frame interval for the
63 * given frame format and size. This should be done by the device as part of
64 * the Video Probe and Commit negotiation, but some hardware don't implement
65 * that feature.
66 */
67static __u32 uvc_try_frame_interval(struct uvc_frame *frame, __u32 interval)
68{
69 unsigned int i;
70
71 if (frame->bFrameIntervalType) {
72 __u32 best = -1, dist;
73
74 for (i = 0; i < frame->bFrameIntervalType; ++i) {
75 dist = interval > frame->dwFrameInterval[i]
76 ? interval - frame->dwFrameInterval[i]
77 : frame->dwFrameInterval[i] - interval;
78
79 if (dist > best)
80 break;
81
82 best = dist;
83 }
84
85 interval = frame->dwFrameInterval[i-1];
86 } else {
87 const __u32 min = frame->dwFrameInterval[0];
88 const __u32 max = frame->dwFrameInterval[1];
89 const __u32 step = frame->dwFrameInterval[2];
90
91 interval = min + (interval - min + step/2) / step * step;
92 if (interval > max)
93 interval = max;
94 }
95
96 return interval;
97}
98
99static int uvc_v4l2_try_format(struct uvc_video_device *video,
100 struct v4l2_format *fmt, struct uvc_streaming_control *probe,
101 struct uvc_format **uvc_format, struct uvc_frame **uvc_frame)
102{
103 struct uvc_format *format = NULL;
104 struct uvc_frame *frame = NULL;
105 __u16 rw, rh;
106 unsigned int d, maxd;
107 unsigned int i;
108 __u32 interval;
109 int ret = 0;
110 __u8 *fcc;
111
112 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
113 return -EINVAL;
114
115 fcc = (__u8 *)&fmt->fmt.pix.pixelformat;
116 uvc_trace(UVC_TRACE_FORMAT, "Trying format 0x%08x (%c%c%c%c): %ux%u.\n",
117 fmt->fmt.pix.pixelformat,
118 fcc[0], fcc[1], fcc[2], fcc[3],
119 fmt->fmt.pix.width, fmt->fmt.pix.height);
120
121 /* Check if the hardware supports the requested format. */
122 for (i = 0; i < video->streaming->nformats; ++i) {
123 format = &video->streaming->format[i];
124 if (format->fcc == fmt->fmt.pix.pixelformat)
125 break;
126 }
127
128 if (format == NULL || format->fcc != fmt->fmt.pix.pixelformat) {
129 uvc_trace(UVC_TRACE_FORMAT, "Unsupported format 0x%08x.\n",
130 fmt->fmt.pix.pixelformat);
131 return -EINVAL;
132 }
133
134 /* Find the closest image size. The distance between image sizes is
135 * the size in pixels of the non-overlapping regions between the
136 * requested size and the frame-specified size.
137 */
138 rw = fmt->fmt.pix.width;
139 rh = fmt->fmt.pix.height;
140 maxd = (unsigned int)-1;
141
142 for (i = 0; i < format->nframes; ++i) {
143 __u16 w = format->frame[i].wWidth;
144 __u16 h = format->frame[i].wHeight;
145
146 d = min(w, rw) * min(h, rh);
147 d = w*h + rw*rh - 2*d;
148 if (d < maxd) {
149 maxd = d;
150 frame = &format->frame[i];
151 }
152
153 if (maxd == 0)
154 break;
155 }
156
157 if (frame == NULL) {
158 uvc_trace(UVC_TRACE_FORMAT, "Unsupported size %ux%u.\n",
159 fmt->fmt.pix.width, fmt->fmt.pix.height);
160 return -EINVAL;
161 }
162
163 /* Use the default frame interval. */
164 interval = frame->dwDefaultFrameInterval;
165 uvc_trace(UVC_TRACE_FORMAT, "Using default frame interval %u.%u us "
166 "(%u.%u fps).\n", interval/10, interval%10, 10000000/interval,
167 (100000000/interval)%10);
168
169 /* Set the format index, frame index and frame interval. */
170 memset(probe, 0, sizeof *probe);
171 probe->bmHint = 1; /* dwFrameInterval */
172 probe->bFormatIndex = format->index;
173 probe->bFrameIndex = frame->bFrameIndex;
174 probe->dwFrameInterval = uvc_try_frame_interval(frame, interval);
175 /* Some webcams stall the probe control set request when the
176 * dwMaxVideoFrameSize field is set to zero. The UVC specification
177 * clearly states that the field is read-only from the host, so this
178 * is a webcam bug. Set dwMaxVideoFrameSize to the value reported by
179 * the webcam to work around the problem.
180 *
181 * The workaround could probably be enabled for all webcams, so the
182 * quirk can be removed if needed. It's currently useful to detect
183 * webcam bugs and fix them before they hit the market (providing
184 * developers test their webcams with the Linux driver as well as with
185 * the Windows driver).
186 */
187 if (video->dev->quirks & UVC_QUIRK_PROBE_EXTRAFIELDS)
188 probe->dwMaxVideoFrameSize =
189 video->streaming->ctrl.dwMaxVideoFrameSize;
190
191 /* Probe the device */
192 if ((ret = uvc_probe_video(video, probe)) < 0)
193 goto done;
194
195 fmt->fmt.pix.width = frame->wWidth;
196 fmt->fmt.pix.height = frame->wHeight;
197 fmt->fmt.pix.field = V4L2_FIELD_NONE;
198 fmt->fmt.pix.bytesperline = format->bpp * frame->wWidth / 8;
199 fmt->fmt.pix.sizeimage = probe->dwMaxVideoFrameSize;
200 fmt->fmt.pix.colorspace = format->colorspace;
201 fmt->fmt.pix.priv = 0;
202
203 if (uvc_format != NULL)
204 *uvc_format = format;
205 if (uvc_frame != NULL)
206 *uvc_frame = frame;
207
208done:
209 return ret;
210}
211
212static int uvc_v4l2_get_format(struct uvc_video_device *video,
213 struct v4l2_format *fmt)
214{
215 struct uvc_format *format = video->streaming->cur_format;
216 struct uvc_frame *frame = video->streaming->cur_frame;
217
218 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
219 return -EINVAL;
220
221 if (format == NULL || frame == NULL)
222 return -EINVAL;
223
224 fmt->fmt.pix.pixelformat = format->fcc;
225 fmt->fmt.pix.width = frame->wWidth;
226 fmt->fmt.pix.height = frame->wHeight;
227 fmt->fmt.pix.field = V4L2_FIELD_NONE;
228 fmt->fmt.pix.bytesperline = format->bpp * frame->wWidth / 8;
229 fmt->fmt.pix.sizeimage = video->streaming->ctrl.dwMaxVideoFrameSize;
230 fmt->fmt.pix.colorspace = format->colorspace;
231 fmt->fmt.pix.priv = 0;
232
233 return 0;
234}
235
236static int uvc_v4l2_set_format(struct uvc_video_device *video,
237 struct v4l2_format *fmt)
238{
239 struct uvc_streaming_control probe;
240 struct uvc_format *format;
241 struct uvc_frame *frame;
242 int ret;
243
244 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
245 return -EINVAL;
246
247 if (uvc_queue_streaming(&video->queue))
248 return -EBUSY;
249
250 ret = uvc_v4l2_try_format(video, fmt, &probe, &format, &frame);
251 if (ret < 0)
252 return ret;
253
254 if ((ret = uvc_set_video_ctrl(video, &probe, 0)) < 0)
255 return ret;
256
257 memcpy(&video->streaming->ctrl, &probe, sizeof probe);
258 video->streaming->cur_format = format;
259 video->streaming->cur_frame = frame;
260
261 return 0;
262}
263
264static int uvc_v4l2_get_streamparm(struct uvc_video_device *video,
265 struct v4l2_streamparm *parm)
266{
267 uint32_t numerator, denominator;
268
269 if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
270 return -EINVAL;
271
272 numerator = video->streaming->ctrl.dwFrameInterval;
273 denominator = 10000000;
274 uvc_simplify_fraction(&numerator, &denominator, 8, 333);
275
276 memset(parm, 0, sizeof *parm);
277 parm->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
278 parm->parm.capture.capability = V4L2_CAP_TIMEPERFRAME;
279 parm->parm.capture.capturemode = 0;
280 parm->parm.capture.timeperframe.numerator = numerator;
281 parm->parm.capture.timeperframe.denominator = denominator;
282 parm->parm.capture.extendedmode = 0;
283 parm->parm.capture.readbuffers = 0;
284
285 return 0;
286}
287
288static int uvc_v4l2_set_streamparm(struct uvc_video_device *video,
289 struct v4l2_streamparm *parm)
290{
291 struct uvc_frame *frame = video->streaming->cur_frame;
292 struct uvc_streaming_control probe;
293 uint32_t interval;
294 int ret;
295
296 if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
297 return -EINVAL;
298
299 if (uvc_queue_streaming(&video->queue))
300 return -EBUSY;
301
302 memcpy(&probe, &video->streaming->ctrl, sizeof probe);
303 interval = uvc_fraction_to_interval(
304 parm->parm.capture.timeperframe.numerator,
305 parm->parm.capture.timeperframe.denominator);
306
307 uvc_trace(UVC_TRACE_FORMAT, "Setting frame interval to %u/%u (%u).\n",
308 parm->parm.capture.timeperframe.numerator,
309 parm->parm.capture.timeperframe.denominator,
310 interval);
311 probe.dwFrameInterval = uvc_try_frame_interval(frame, interval);
312
313 /* Probe the device with the new settings. */
314 if ((ret = uvc_probe_video(video, &probe)) < 0)
315 return ret;
316
317 /* Commit the new settings. */
318 if ((ret = uvc_set_video_ctrl(video, &probe, 0)) < 0)
319 return ret;
320
321 memcpy(&video->streaming->ctrl, &probe, sizeof probe);
322
323 /* Return the actual frame period. */
324 parm->parm.capture.timeperframe.numerator = probe.dwFrameInterval;
325 parm->parm.capture.timeperframe.denominator = 10000000;
326 uvc_simplify_fraction(&parm->parm.capture.timeperframe.numerator,
327 &parm->parm.capture.timeperframe.denominator,
328 8, 333);
329
330 return 0;
331}
332
333/* ------------------------------------------------------------------------
334 * Privilege management
335 */
336
337/*
338 * Privilege management is the multiple-open implementation basis. The current
339 * implementation is completely transparent for the end-user and doesn't
340 * require explicit use of the VIDIOC_G_PRIORITY and VIDIOC_S_PRIORITY ioctls.
341 * Those ioctls enable finer control on the device (by making possible for a
342 * user to request exclusive access to a device), but are not mature yet.
343 * Switching to the V4L2 priority mechanism might be considered in the future
344 * if this situation changes.
345 *
346 * Each open instance of a UVC device can either be in a privileged or
347 * unprivileged state. Only a single instance can be in a privileged state at
348 * a given time. Trying to perform an operation which requires privileges will
349 * automatically acquire the required privileges if possible, or return -EBUSY
350 * otherwise. Privileges are dismissed when closing the instance.
351 *
352 * Operations which require privileges are:
353 *
354 * - VIDIOC_S_INPUT
355 * - VIDIOC_S_PARM
356 * - VIDIOC_S_FMT
357 * - VIDIOC_TRY_FMT
358 * - VIDIOC_REQBUFS
359 */
360static int uvc_acquire_privileges(struct uvc_fh *handle)
361{
362 int ret = 0;
363
364 /* Always succeed if the handle is already privileged. */
365 if (handle->state == UVC_HANDLE_ACTIVE)
366 return 0;
367
368 /* Check if the device already has a privileged handle. */
369 mutex_lock(&uvc_driver.open_mutex);
370 if (atomic_inc_return(&handle->device->active) != 1) {
371 atomic_dec(&handle->device->active);
372 ret = -EBUSY;
373 goto done;
374 }
375
376 handle->state = UVC_HANDLE_ACTIVE;
377
378done:
379 mutex_unlock(&uvc_driver.open_mutex);
380 return ret;
381}
382
383static void uvc_dismiss_privileges(struct uvc_fh *handle)
384{
385 if (handle->state == UVC_HANDLE_ACTIVE)
386 atomic_dec(&handle->device->active);
387
388 handle->state = UVC_HANDLE_PASSIVE;
389}
390
391static int uvc_has_privileges(struct uvc_fh *handle)
392{
393 return handle->state == UVC_HANDLE_ACTIVE;
394}
395
396/* ------------------------------------------------------------------------
397 * V4L2 file operations
398 */
399
400static int uvc_v4l2_open(struct inode *inode, struct file *file)
401{
402 struct video_device *vdev;
403 struct uvc_video_device *video;
404 struct uvc_fh *handle;
405 int ret = 0;
406
407 uvc_trace(UVC_TRACE_CALLS, "uvc_v4l2_open\n");
408 mutex_lock(&uvc_driver.open_mutex);
409 vdev = video_devdata(file);
410 video = video_get_drvdata(vdev);
411
412 if (video->dev->state & UVC_DEV_DISCONNECTED) {
413 ret = -ENODEV;
414 goto done;
415 }
416
417 ret = usb_autopm_get_interface(video->dev->intf);
418 if (ret < 0)
419 goto done;
420
421 /* Create the device handle. */
422 handle = kzalloc(sizeof *handle, GFP_KERNEL);
423 if (handle == NULL) {
424 usb_autopm_put_interface(video->dev->intf);
425 ret = -ENOMEM;
426 goto done;
427 }
428
429 handle->device = video;
430 handle->state = UVC_HANDLE_PASSIVE;
431 file->private_data = handle;
432
433 kref_get(&video->dev->kref);
434
435done:
436 mutex_unlock(&uvc_driver.open_mutex);
437 return ret;
438}
439
440static int uvc_v4l2_release(struct inode *inode, struct file *file)
441{
442 struct video_device *vdev = video_devdata(file);
443 struct uvc_video_device *video = video_get_drvdata(vdev);
444 struct uvc_fh *handle = (struct uvc_fh *)file->private_data;
445
446 uvc_trace(UVC_TRACE_CALLS, "uvc_v4l2_release\n");
447
448 /* Only free resources if this is a privileged handle. */
449 if (uvc_has_privileges(handle)) {
450 uvc_video_enable(video, 0);
451
452 mutex_lock(&video->queue.mutex);
453 if (uvc_free_buffers(&video->queue) < 0)
454 uvc_printk(KERN_ERR, "uvc_v4l2_release: Unable to "
455 "free buffers.\n");
456 mutex_unlock(&video->queue.mutex);
457 }
458
459 /* Release the file handle. */
460 uvc_dismiss_privileges(handle);
461 kfree(handle);
462 file->private_data = NULL;
463
464 usb_autopm_put_interface(video->dev->intf);
465 kref_put(&video->dev->kref, uvc_delete);
466 return 0;
467}
468
469static int uvc_v4l2_do_ioctl(struct inode *inode, struct file *file,
470 unsigned int cmd, void *arg)
471{
472 struct video_device *vdev = video_devdata(file);
473 struct uvc_video_device *video = video_get_drvdata(vdev);
474 struct uvc_fh *handle = (struct uvc_fh *)file->private_data;
475 int ret = 0;
476
477 if (uvc_trace_param & UVC_TRACE_IOCTL)
478 v4l_printk_ioctl(cmd);
479
480 switch (cmd) {
481 /* Query capabilities */
482 case VIDIOC_QUERYCAP:
483 {
484 struct v4l2_capability *cap = arg;
485
486 memset(cap, 0, sizeof *cap);
487 strncpy(cap->driver, "uvcvideo", sizeof cap->driver);
488 strncpy(cap->card, vdev->name, 32);
489 strncpy(cap->bus_info, video->dev->udev->bus->bus_name,
490 sizeof cap->bus_info);
491 cap->version = DRIVER_VERSION_NUMBER;
492 cap->capabilities = V4L2_CAP_VIDEO_CAPTURE
493 | V4L2_CAP_STREAMING;
494 break;
495 }
496
497 /* Get, Set & Query control */
498 case VIDIOC_QUERYCTRL:
499 return uvc_query_v4l2_ctrl(video, arg);
500
501 case VIDIOC_G_CTRL:
502 {
503 struct v4l2_control *ctrl = arg;
504 struct v4l2_ext_control xctrl;
505
506 memset(&xctrl, 0, sizeof xctrl);
507 xctrl.id = ctrl->id;
508
509 uvc_ctrl_begin(video);
510 ret = uvc_ctrl_get(video, &xctrl);
511 uvc_ctrl_rollback(video);
512 if (ret >= 0)
513 ctrl->value = xctrl.value;
514 break;
515 }
516
517 case VIDIOC_S_CTRL:
518 {
519 struct v4l2_control *ctrl = arg;
520 struct v4l2_ext_control xctrl;
521
522 memset(&xctrl, 0, sizeof xctrl);
523 xctrl.id = ctrl->id;
524 xctrl.value = ctrl->value;
525
526 uvc_ctrl_begin(video);
527 ret = uvc_ctrl_set(video, &xctrl);
528 if (ret < 0) {
529 uvc_ctrl_rollback(video);
530 return ret;
531 }
532 ret = uvc_ctrl_commit(video);
533 break;
534 }
535
536 case VIDIOC_QUERYMENU:
537 return uvc_v4l2_query_menu(video, arg);
538
539 case VIDIOC_G_EXT_CTRLS:
540 {
541 struct v4l2_ext_controls *ctrls = arg;
542 struct v4l2_ext_control *ctrl = ctrls->controls;
543 unsigned int i;
544
545 uvc_ctrl_begin(video);
546 for (i = 0; i < ctrls->count; ++ctrl, ++i) {
547 ret = uvc_ctrl_get(video, ctrl);
548 if (ret < 0) {
549 uvc_ctrl_rollback(video);
550 ctrls->error_idx = i;
551 return ret;
552 }
553 }
554 ctrls->error_idx = 0;
555 ret = uvc_ctrl_rollback(video);
556 break;
557 }
558
559 case VIDIOC_S_EXT_CTRLS:
560 case VIDIOC_TRY_EXT_CTRLS:
561 {
562 struct v4l2_ext_controls *ctrls = arg;
563 struct v4l2_ext_control *ctrl = ctrls->controls;
564 unsigned int i;
565
566 ret = uvc_ctrl_begin(video);
567 if (ret < 0)
568 return ret;
569
570 for (i = 0; i < ctrls->count; ++ctrl, ++i) {
571 ret = uvc_ctrl_set(video, ctrl);
572 if (ret < 0) {
573 uvc_ctrl_rollback(video);
574 ctrls->error_idx = i;
575 return ret;
576 }
577 }
578
579 ctrls->error_idx = 0;
580
581 if (cmd == VIDIOC_S_EXT_CTRLS)
582 ret = uvc_ctrl_commit(video);
583 else
584 ret = uvc_ctrl_rollback(video);
585 break;
586 }
587
588 /* Get, Set & Enum input */
589 case VIDIOC_ENUMINPUT:
590 {
591 const struct uvc_entity *selector = video->selector;
592 struct v4l2_input *input = arg;
593 struct uvc_entity *iterm = NULL;
594 u32 index = input->index;
595 int pin = 0;
596
597 if (selector == NULL ||
598 (video->dev->quirks & UVC_QUIRK_IGNORE_SELECTOR_UNIT)) {
599 if (index != 0)
600 return -EINVAL;
601 iterm = list_first_entry(&video->iterms,
602 struct uvc_entity, chain);
603 pin = iterm->id;
604 } else if (pin < selector->selector.bNrInPins) {
605 pin = selector->selector.baSourceID[index];
606 list_for_each_entry(iterm, video->iterms.next, chain) {
607 if (iterm->id == pin)
608 break;
609 }
610 }
611
612 if (iterm == NULL || iterm->id != pin)
613 return -EINVAL;
614
615 memset(input, 0, sizeof *input);
616 input->index = index;
617 strncpy(input->name, iterm->name, sizeof input->name);
618 if (UVC_ENTITY_TYPE(iterm) == ITT_CAMERA)
619 input->type = V4L2_INPUT_TYPE_CAMERA;
620 break;
621 }
622
623 case VIDIOC_G_INPUT:
624 {
625 u8 input;
626
627 if (video->selector == NULL ||
628 (video->dev->quirks & UVC_QUIRK_IGNORE_SELECTOR_UNIT)) {
629 *(int *)arg = 0;
630 break;
631 }
632
633 ret = uvc_query_ctrl(video->dev, GET_CUR, video->selector->id,
634 video->dev->intfnum, SU_INPUT_SELECT_CONTROL,
635 &input, 1);
636 if (ret < 0)
637 return ret;
638
639 *(int *)arg = input - 1;
640 break;
641 }
642
643 case VIDIOC_S_INPUT:
644 {
645 u8 input = *(u32 *)arg + 1;
646
647 if ((ret = uvc_acquire_privileges(handle)) < 0)
648 return ret;
649
650 if (video->selector == NULL ||
651 (video->dev->quirks & UVC_QUIRK_IGNORE_SELECTOR_UNIT)) {
652 if (input != 1)
653 return -EINVAL;
654 break;
655 }
656
657 if (input > video->selector->selector.bNrInPins)
658 return -EINVAL;
659
660 return uvc_query_ctrl(video->dev, SET_CUR, video->selector->id,
661 video->dev->intfnum, SU_INPUT_SELECT_CONTROL,
662 &input, 1);
663 }
664
665 /* Try, Get, Set & Enum format */
666 case VIDIOC_ENUM_FMT:
667 {
668 struct v4l2_fmtdesc *fmt = arg;
669 struct uvc_format *format;
670
671 if (fmt->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ||
672 fmt->index >= video->streaming->nformats)
673 return -EINVAL;
674
675 format = &video->streaming->format[fmt->index];
676 fmt->flags = 0;
677 if (format->flags & UVC_FMT_FLAG_COMPRESSED)
678 fmt->flags |= V4L2_FMT_FLAG_COMPRESSED;
679 strncpy(fmt->description, format->name,
680 sizeof fmt->description);
681 fmt->description[sizeof fmt->description - 1] = 0;
682 fmt->pixelformat = format->fcc;
683 break;
684 }
685
686 case VIDIOC_TRY_FMT:
687 {
688 struct uvc_streaming_control probe;
689
690 if ((ret = uvc_acquire_privileges(handle)) < 0)
691 return ret;
692
693 return uvc_v4l2_try_format(video, arg, &probe, NULL, NULL);
694 }
695
696 case VIDIOC_S_FMT:
697 if ((ret = uvc_acquire_privileges(handle)) < 0)
698 return ret;
699
700 return uvc_v4l2_set_format(video, arg);
701
702 case VIDIOC_G_FMT:
703 return uvc_v4l2_get_format(video, arg);
704
705 /* Frame size enumeration */
706 case VIDIOC_ENUM_FRAMESIZES:
707 {
708 struct v4l2_frmsizeenum *fsize = arg;
709 struct uvc_format *format = NULL;
710 struct uvc_frame *frame;
711 int i;
712
713 /* Look for the given pixel format */
714 for (i = 0; i < video->streaming->nformats; i++) {
715 if (video->streaming->format[i].fcc ==
716 fsize->pixel_format) {
717 format = &video->streaming->format[i];
718 break;
719 }
720 }
721 if (format == NULL)
722 return -EINVAL;
723
724 if (fsize->index >= format->nframes)
725 return -EINVAL;
726
727 frame = &format->frame[fsize->index];
728 fsize->type = V4L2_FRMSIZE_TYPE_DISCRETE;
729 fsize->discrete.width = frame->wWidth;
730 fsize->discrete.height = frame->wHeight;
731 break;
732 }
733
734 /* Frame interval enumeration */
735 case VIDIOC_ENUM_FRAMEINTERVALS:
736 {
737 struct v4l2_frmivalenum *fival = arg;
738 struct uvc_format *format = NULL;
739 struct uvc_frame *frame = NULL;
740 int i;
741
742 /* Look for the given pixel format and frame size */
743 for (i = 0; i < video->streaming->nformats; i++) {
744 if (video->streaming->format[i].fcc ==
745 fival->pixel_format) {
746 format = &video->streaming->format[i];
747 break;
748 }
749 }
750 if (format == NULL)
751 return -EINVAL;
752
753 for (i = 0; i < format->nframes; i++) {
754 if (format->frame[i].wWidth == fival->width &&
755 format->frame[i].wHeight == fival->height) {
756 frame = &format->frame[i];
757 break;
758 }
759 }
760 if (frame == NULL)
761 return -EINVAL;
762
763 if (frame->bFrameIntervalType) {
764 if (fival->index >= frame->bFrameIntervalType)
765 return -EINVAL;
766
767 fival->type = V4L2_FRMIVAL_TYPE_DISCRETE;
768 fival->discrete.numerator =
769 frame->dwFrameInterval[fival->index];
770 fival->discrete.denominator = 10000000;
771 uvc_simplify_fraction(&fival->discrete.numerator,
772 &fival->discrete.denominator, 8, 333);
773 } else {
774 fival->type = V4L2_FRMIVAL_TYPE_STEPWISE;
775 fival->stepwise.min.numerator =
776 frame->dwFrameInterval[0];
777 fival->stepwise.min.denominator = 10000000;
778 fival->stepwise.max.numerator =
779 frame->dwFrameInterval[1];
780 fival->stepwise.max.denominator = 10000000;
781 fival->stepwise.step.numerator =
782 frame->dwFrameInterval[2];
783 fival->stepwise.step.denominator = 10000000;
784 uvc_simplify_fraction(&fival->stepwise.min.numerator,
785 &fival->stepwise.min.denominator, 8, 333);
786 uvc_simplify_fraction(&fival->stepwise.max.numerator,
787 &fival->stepwise.max.denominator, 8, 333);
788 uvc_simplify_fraction(&fival->stepwise.step.numerator,
789 &fival->stepwise.step.denominator, 8, 333);
790 }
791 break;
792 }
793
794 /* Get & Set streaming parameters */
795 case VIDIOC_G_PARM:
796 return uvc_v4l2_get_streamparm(video, arg);
797
798 case VIDIOC_S_PARM:
799 if ((ret = uvc_acquire_privileges(handle)) < 0)
800 return ret;
801
802 return uvc_v4l2_set_streamparm(video, arg);
803
804 /* Cropping and scaling */
805 case VIDIOC_CROPCAP:
806 {
807 struct v4l2_cropcap *ccap = arg;
808 struct uvc_frame *frame = video->streaming->cur_frame;
809
810 if (ccap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
811 return -EINVAL;
812
813 ccap->bounds.left = 0;
814 ccap->bounds.top = 0;
815 ccap->bounds.width = frame->wWidth;
816 ccap->bounds.height = frame->wHeight;
817
818 ccap->defrect = ccap->bounds;
819
820 ccap->pixelaspect.numerator = 1;
821 ccap->pixelaspect.denominator = 1;
822 break;
823 }
824
825 case VIDIOC_G_CROP:
826 case VIDIOC_S_CROP:
827 return -EINVAL;
828
829 /* Buffers & streaming */
830 case VIDIOC_REQBUFS:
831 {
832 struct v4l2_requestbuffers *rb = arg;
833 unsigned int bufsize =
834 video->streaming->ctrl.dwMaxVideoFrameSize;
835
836 if (rb->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ||
837 rb->memory != V4L2_MEMORY_MMAP)
838 return -EINVAL;
839
840 if ((ret = uvc_acquire_privileges(handle)) < 0)
841 return ret;
842
843 ret = uvc_alloc_buffers(&video->queue, rb->count, bufsize);
844 if (ret < 0)
845 return ret;
846
847 if (!(video->streaming->cur_format->flags &
848 UVC_FMT_FLAG_COMPRESSED))
849 video->queue.flags |= UVC_QUEUE_DROP_INCOMPLETE;
850
851 rb->count = ret;
852 ret = 0;
853 break;
854 }
855
856 case VIDIOC_QUERYBUF:
857 {
858 struct v4l2_buffer *buf = arg;
859
860 if (buf->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
861 return -EINVAL;
862
863 if (!uvc_has_privileges(handle))
864 return -EBUSY;
865
866 return uvc_query_buffer(&video->queue, buf);
867 }
868
869 case VIDIOC_QBUF:
870 if (!uvc_has_privileges(handle))
871 return -EBUSY;
872
873 return uvc_queue_buffer(&video->queue, arg);
874
875 case VIDIOC_DQBUF:
876 if (!uvc_has_privileges(handle))
877 return -EBUSY;
878
879 return uvc_dequeue_buffer(&video->queue, arg,
880 file->f_flags & O_NONBLOCK);
881
882 case VIDIOC_STREAMON:
883 {
884 int *type = arg;
885
886 if (*type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
887 return -EINVAL;
888
889 if (!uvc_has_privileges(handle))
890 return -EBUSY;
891
892 if ((ret = uvc_video_enable(video, 1)) < 0)
893 return ret;
894 break;
895 }
896
897 case VIDIOC_STREAMOFF:
898 {
899 int *type = arg;
900
901 if (*type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
902 return -EINVAL;
903
904 if (!uvc_has_privileges(handle))
905 return -EBUSY;
906
907 return uvc_video_enable(video, 0);
908 }
909
910 /* Analog video standards make no sense for digital cameras. */
911 case VIDIOC_ENUMSTD:
912 case VIDIOC_QUERYSTD:
913 case VIDIOC_G_STD:
914 case VIDIOC_S_STD:
915
916 case VIDIOC_OVERLAY:
917
918 case VIDIOC_ENUMAUDIO:
919 case VIDIOC_ENUMAUDOUT:
920
921 case VIDIOC_ENUMOUTPUT:
922 uvc_trace(UVC_TRACE_IOCTL, "Unsupported ioctl 0x%08x\n", cmd);
923 return -EINVAL;
924
925 /* Dynamic controls. */
926 case UVCIOC_CTRL_ADD:
927 {
928 struct uvc_xu_control_info *xinfo = arg;
929 struct uvc_control_info *info;
930
931 if (!capable(CAP_SYS_ADMIN))
932 return -EPERM;
933
934 info = kmalloc(sizeof *info, GFP_KERNEL);
935 if (info == NULL)
936 return -ENOMEM;
937
938 memcpy(info->entity, xinfo->entity, sizeof info->entity);
939 info->index = xinfo->index;
940 info->selector = xinfo->selector;
941 info->size = xinfo->size;
942 info->flags = xinfo->flags;
943
944 info->flags |= UVC_CONTROL_GET_MIN | UVC_CONTROL_GET_MAX |
945 UVC_CONTROL_GET_RES | UVC_CONTROL_GET_DEF;
946
947 ret = uvc_ctrl_add_info(info);
948 if (ret < 0)
949 kfree(info);
950 break;
951 }
952
953 case UVCIOC_CTRL_MAP:
954 {
955 struct uvc_xu_control_mapping *xmap = arg;
956 struct uvc_control_mapping *map;
957
958 if (!capable(CAP_SYS_ADMIN))
959 return -EPERM;
960
961 map = kmalloc(sizeof *map, GFP_KERNEL);
962 if (map == NULL)
963 return -ENOMEM;
964
965 map->id = xmap->id;
966 memcpy(map->name, xmap->name, sizeof map->name);
967 memcpy(map->entity, xmap->entity, sizeof map->entity);
968 map->selector = xmap->selector;
969 map->size = xmap->size;
970 map->offset = xmap->offset;
971 map->v4l2_type = xmap->v4l2_type;
972 map->data_type = xmap->data_type;
973
974 ret = uvc_ctrl_add_mapping(map);
975 if (ret < 0)
976 kfree(map);
977 break;
978 }
979
980 case UVCIOC_CTRL_GET:
981 return uvc_xu_ctrl_query(video, arg, 0);
982
983 case UVCIOC_CTRL_SET:
984 return uvc_xu_ctrl_query(video, arg, 1);
985
986 default:
987 if ((ret = v4l_compat_translate_ioctl(inode, file, cmd, arg,
988 uvc_v4l2_do_ioctl)) == -ENOIOCTLCMD)
989 uvc_trace(UVC_TRACE_IOCTL, "Unknown ioctl 0x%08x\n",
990 cmd);
991 return ret;
992 }
993
994 return ret;
995}
996
997static int uvc_v4l2_ioctl(struct inode *inode, struct file *file,
998 unsigned int cmd, unsigned long arg)
999{
1000 uvc_trace(UVC_TRACE_CALLS, "uvc_v4l2_ioctl\n");
1001 return video_usercopy(inode, file, cmd, arg, uvc_v4l2_do_ioctl);
1002}
1003
1004static ssize_t uvc_v4l2_read(struct file *file, char __user *data,
1005 size_t count, loff_t *ppos)
1006{
1007 uvc_trace(UVC_TRACE_CALLS, "uvc_v4l2_read: not implemented.\n");
1008 return -ENODEV;
1009}
1010
1011/*
1012 * VMA operations.
1013 */
1014static void uvc_vm_open(struct vm_area_struct *vma)
1015{
1016 struct uvc_buffer *buffer = vma->vm_private_data;
1017 buffer->vma_use_count++;
1018}
1019
1020static void uvc_vm_close(struct vm_area_struct *vma)
1021{
1022 struct uvc_buffer *buffer = vma->vm_private_data;
1023 buffer->vma_use_count--;
1024}
1025
1026static struct vm_operations_struct uvc_vm_ops = {
1027 .open = uvc_vm_open,
1028 .close = uvc_vm_close,
1029};
1030
1031static int uvc_v4l2_mmap(struct file *file, struct vm_area_struct *vma)
1032{
1033 struct video_device *vdev = video_devdata(file);
1034 struct uvc_video_device *video = video_get_drvdata(vdev);
1035 struct uvc_buffer *buffer;
1036 struct page *page;
1037 unsigned long addr, start, size;
1038 unsigned int i;
1039 int ret = 0;
1040
1041 uvc_trace(UVC_TRACE_CALLS, "uvc_v4l2_mmap\n");
1042
1043 start = vma->vm_start;
1044 size = vma->vm_end - vma->vm_start;
1045
1046 mutex_lock(&video->queue.mutex);
1047
1048 for (i = 0; i < video->queue.count; ++i) {
1049 buffer = &video->queue.buffer[i];
1050 if ((buffer->buf.m.offset >> PAGE_SHIFT) == vma->vm_pgoff)
1051 break;
1052 }
1053
1054 if (i == video->queue.count || size != video->queue.buf_size) {
1055 ret = -EINVAL;
1056 goto done;
1057 }
1058
1059 /*
1060 * VM_IO marks the area as being an mmaped region for I/O to a
1061 * device. It also prevents the region from being core dumped.
1062 */
1063 vma->vm_flags |= VM_IO;
1064
1065 addr = (unsigned long)video->queue.mem + buffer->buf.m.offset;
1066 while (size > 0) {
1067 page = vmalloc_to_page((void *)addr);
1068 if ((ret = vm_insert_page(vma, start, page)) < 0)
1069 goto done;
1070
1071 start += PAGE_SIZE;
1072 addr += PAGE_SIZE;
1073 size -= PAGE_SIZE;
1074 }
1075
1076 vma->vm_ops = &uvc_vm_ops;
1077 vma->vm_private_data = buffer;
1078 uvc_vm_open(vma);
1079
1080done:
1081 mutex_unlock(&video->queue.mutex);
1082 return ret;
1083}
1084
1085static unsigned int uvc_v4l2_poll(struct file *file, poll_table *wait)
1086{
1087 struct video_device *vdev = video_devdata(file);
1088 struct uvc_video_device *video = video_get_drvdata(vdev);
1089
1090 uvc_trace(UVC_TRACE_CALLS, "uvc_v4l2_poll\n");
1091
1092 return uvc_queue_poll(&video->queue, file, wait);
1093}
1094
1095struct file_operations uvc_fops = {
1096 .owner = THIS_MODULE,
1097 .open = uvc_v4l2_open,
1098 .release = uvc_v4l2_release,
1099 .ioctl = uvc_v4l2_ioctl,
1100 .compat_ioctl = v4l_compat_ioctl32,
1101 .llseek = no_llseek,
1102 .read = uvc_v4l2_read,
1103 .mmap = uvc_v4l2_mmap,
1104 .poll = uvc_v4l2_poll,
1105};
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c
new file mode 100644
index 000000000000..6faf1fb21614
--- /dev/null
+++ b/drivers/media/video/uvc/uvc_video.c
@@ -0,0 +1,934 @@
1/*
2 * uvc_video.c -- USB Video Class driver - Video handling
3 *
4 * Copyright (C) 2005-2008
5 * Laurent Pinchart (laurent.pinchart@skynet.be)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/version.h>
16#include <linux/list.h>
17#include <linux/module.h>
18#include <linux/usb.h>
19#include <linux/videodev2.h>
20#include <linux/vmalloc.h>
21#include <linux/wait.h>
22#include <asm/atomic.h>
23#include <asm/unaligned.h>
24
25#include <media/v4l2-common.h>
26
27#include "uvcvideo.h"
28
29/* ------------------------------------------------------------------------
30 * UVC Controls
31 */
32
33static int __uvc_query_ctrl(struct uvc_device *dev, __u8 query, __u8 unit,
34 __u8 intfnum, __u8 cs, void *data, __u16 size,
35 int timeout)
36{
37 __u8 type = USB_TYPE_CLASS | USB_RECIP_INTERFACE;
38 unsigned int pipe;
39 int ret;
40
41 pipe = (query & 0x80) ? usb_rcvctrlpipe(dev->udev, 0)
42 : usb_sndctrlpipe(dev->udev, 0);
43 type |= (query & 0x80) ? USB_DIR_IN : USB_DIR_OUT;
44
45 ret = usb_control_msg(dev->udev, pipe, query, type, cs << 8,
46 unit << 8 | intfnum, data, size, timeout);
47
48 if (ret != size) {
49 uvc_printk(KERN_ERR, "Failed to query (%u) UVC control %u "
50 "(unit %u) : %d (exp. %u).\n", query, cs, unit, ret,
51 size);
52 return -EIO;
53 }
54
55 return 0;
56}
57
58int uvc_query_ctrl(struct uvc_device *dev, __u8 query, __u8 unit,
59 __u8 intfnum, __u8 cs, void *data, __u16 size)
60{
61 return __uvc_query_ctrl(dev, query, unit, intfnum, cs, data, size,
62 UVC_CTRL_CONTROL_TIMEOUT);
63}
64
65static void uvc_fixup_buffer_size(struct uvc_video_device *video,
66 struct uvc_streaming_control *ctrl)
67{
68 struct uvc_format *format;
69 struct uvc_frame *frame;
70
71 if (ctrl->bFormatIndex <= 0 ||
72 ctrl->bFormatIndex > video->streaming->nformats)
73 return;
74
75 format = &video->streaming->format[ctrl->bFormatIndex - 1];
76
77 if (ctrl->bFrameIndex <= 0 ||
78 ctrl->bFrameIndex > format->nframes)
79 return;
80
81 frame = &format->frame[ctrl->bFrameIndex - 1];
82
83 if (!(format->flags & UVC_FMT_FLAG_COMPRESSED) ||
84 (ctrl->dwMaxVideoFrameSize == 0 &&
85 video->dev->uvc_version < 0x0110))
86 ctrl->dwMaxVideoFrameSize =
87 frame->dwMaxVideoFrameBufferSize;
88}
89
90static int uvc_get_video_ctrl(struct uvc_video_device *video,
91 struct uvc_streaming_control *ctrl, int probe, __u8 query)
92{
93 __u8 data[34];
94 __u8 size;
95 int ret;
96
97 size = video->dev->uvc_version >= 0x0110 ? 34 : 26;
98 ret = __uvc_query_ctrl(video->dev, query, 0, video->streaming->intfnum,
99 probe ? VS_PROBE_CONTROL : VS_COMMIT_CONTROL, &data, size,
100 UVC_CTRL_STREAMING_TIMEOUT);
101
102 if (ret < 0)
103 return ret;
104
105 ctrl->bmHint = le16_to_cpup((__le16 *)&data[0]);
106 ctrl->bFormatIndex = data[2];
107 ctrl->bFrameIndex = data[3];
108 ctrl->dwFrameInterval = le32_to_cpup((__le32 *)&data[4]);
109 ctrl->wKeyFrameRate = le16_to_cpup((__le16 *)&data[8]);
110 ctrl->wPFrameRate = le16_to_cpup((__le16 *)&data[10]);
111 ctrl->wCompQuality = le16_to_cpup((__le16 *)&data[12]);
112 ctrl->wCompWindowSize = le16_to_cpup((__le16 *)&data[14]);
113 ctrl->wDelay = le16_to_cpup((__le16 *)&data[16]);
114 ctrl->dwMaxVideoFrameSize =
115 le32_to_cpu(get_unaligned((__le32 *)&data[18]));
116 ctrl->dwMaxPayloadTransferSize =
117 le32_to_cpu(get_unaligned((__le32 *)&data[22]));
118
119 if (size == 34) {
120 ctrl->dwClockFrequency =
121 le32_to_cpu(get_unaligned((__le32 *)&data[26]));
122 ctrl->bmFramingInfo = data[30];
123 ctrl->bPreferedVersion = data[31];
124 ctrl->bMinVersion = data[32];
125 ctrl->bMaxVersion = data[33];
126 } else {
127 ctrl->dwClockFrequency = video->dev->clock_frequency;
128 ctrl->bmFramingInfo = 0;
129 ctrl->bPreferedVersion = 0;
130 ctrl->bMinVersion = 0;
131 ctrl->bMaxVersion = 0;
132 }
133
134 /* Some broken devices return a null or wrong dwMaxVideoFrameSize.
135 * Try to get the value from the format and frame descriptor.
136 */
137 uvc_fixup_buffer_size(video, ctrl);
138
139 return 0;
140}
141
142int uvc_set_video_ctrl(struct uvc_video_device *video,
143 struct uvc_streaming_control *ctrl, int probe)
144{
145 __u8 data[34];
146 __u8 size;
147
148 size = video->dev->uvc_version >= 0x0110 ? 34 : 26;
149 memset(data, 0, sizeof data);
150
151 *(__le16 *)&data[0] = cpu_to_le16(ctrl->bmHint);
152 data[2] = ctrl->bFormatIndex;
153 data[3] = ctrl->bFrameIndex;
154 *(__le32 *)&data[4] = cpu_to_le32(ctrl->dwFrameInterval);
155 *(__le16 *)&data[8] = cpu_to_le16(ctrl->wKeyFrameRate);
156 *(__le16 *)&data[10] = cpu_to_le16(ctrl->wPFrameRate);
157 *(__le16 *)&data[12] = cpu_to_le16(ctrl->wCompQuality);
158 *(__le16 *)&data[14] = cpu_to_le16(ctrl->wCompWindowSize);
159 *(__le16 *)&data[16] = cpu_to_le16(ctrl->wDelay);
160 /* Note: Some of the fields below are not required for IN devices (see
161 * UVC spec, 4.3.1.1), but we still copy them in case support for OUT
162 * devices is added in the future. */
163 put_unaligned(cpu_to_le32(ctrl->dwMaxVideoFrameSize),
164 (__le32 *)&data[18]);
165 put_unaligned(cpu_to_le32(ctrl->dwMaxPayloadTransferSize),
166 (__le32 *)&data[22]);
167
168 if (size == 34) {
169 put_unaligned(cpu_to_le32(ctrl->dwClockFrequency),
170 (__le32 *)&data[26]);
171 data[30] = ctrl->bmFramingInfo;
172 data[31] = ctrl->bPreferedVersion;
173 data[32] = ctrl->bMinVersion;
174 data[33] = ctrl->bMaxVersion;
175 }
176
177 return __uvc_query_ctrl(video->dev, SET_CUR, 0,
178 video->streaming->intfnum,
179 probe ? VS_PROBE_CONTROL : VS_COMMIT_CONTROL, &data, size,
180 UVC_CTRL_STREAMING_TIMEOUT);
181}
182
183int uvc_probe_video(struct uvc_video_device *video,
184 struct uvc_streaming_control *probe)
185{
186 struct uvc_streaming_control probe_min, probe_max;
187 __u16 bandwidth;
188 unsigned int i;
189 int ret;
190
191 mutex_lock(&video->streaming->mutex);
192
193 /* Perform probing. The device should adjust the requested values
194 * according to its capabilities. However, some devices, namely the
195 * first generation UVC Logitech webcams, don't implement the Video
196 * Probe control properly, and just return the needed bandwidth. For
197 * that reason, if the needed bandwidth exceeds the maximum available
198 * bandwidth, try to lower the quality.
199 */
200 if ((ret = uvc_set_video_ctrl(video, probe, 1)) < 0)
201 goto done;
202
203 /* Get the minimum and maximum values for compression settings. */
204 if (!(video->dev->quirks & UVC_QUIRK_PROBE_MINMAX)) {
205 ret = uvc_get_video_ctrl(video, &probe_min, 1, GET_MIN);
206 if (ret < 0)
207 goto done;
208 ret = uvc_get_video_ctrl(video, &probe_max, 1, GET_MAX);
209 if (ret < 0)
210 goto done;
211
212 probe->wCompQuality = probe_max.wCompQuality;
213 }
214
215 for (i = 0; i < 2; ++i) {
216 if ((ret = uvc_set_video_ctrl(video, probe, 1)) < 0 ||
217 (ret = uvc_get_video_ctrl(video, probe, 1, GET_CUR)) < 0)
218 goto done;
219
220 if (video->streaming->intf->num_altsetting == 1)
221 break;
222
223 bandwidth = probe->dwMaxPayloadTransferSize;
224 if (bandwidth <= video->streaming->maxpsize)
225 break;
226
227 if (video->dev->quirks & UVC_QUIRK_PROBE_MINMAX) {
228 ret = -ENOSPC;
229 goto done;
230 }
231
232 /* TODO: negotiate compression parameters */
233 probe->wKeyFrameRate = probe_min.wKeyFrameRate;
234 probe->wPFrameRate = probe_min.wPFrameRate;
235 probe->wCompQuality = probe_max.wCompQuality;
236 probe->wCompWindowSize = probe_min.wCompWindowSize;
237 }
238
239done:
240 mutex_unlock(&video->streaming->mutex);
241 return ret;
242}
243
244/* ------------------------------------------------------------------------
245 * Video codecs
246 */
247
248/* Values for bmHeaderInfo (Video and Still Image Payload Headers, 2.4.3.3) */
249#define UVC_STREAM_EOH (1 << 7)
250#define UVC_STREAM_ERR (1 << 6)
251#define UVC_STREAM_STI (1 << 5)
252#define UVC_STREAM_RES (1 << 4)
253#define UVC_STREAM_SCR (1 << 3)
254#define UVC_STREAM_PTS (1 << 2)
255#define UVC_STREAM_EOF (1 << 1)
256#define UVC_STREAM_FID (1 << 0)
257
258/* Video payload decoding is handled by uvc_video_decode_start(),
259 * uvc_video_decode_data() and uvc_video_decode_end().
260 *
261 * uvc_video_decode_start is called with URB data at the start of a bulk or
262 * isochronous payload. It processes header data and returns the header size
263 * in bytes if successful. If an error occurs, it returns a negative error
264 * code. The following error codes have special meanings.
265 *
266 * - EAGAIN informs the caller that the current video buffer should be marked
267 * as done, and that the function should be called again with the same data
268 * and a new video buffer. This is used when end of frame conditions can be
269 * reliably detected at the beginning of the next frame only.
270 *
271 * If an error other than -EAGAIN is returned, the caller will drop the current
272 * payload. No call to uvc_video_decode_data and uvc_video_decode_end will be
273 * made until the next payload. -ENODATA can be used to drop the current
274 * payload if no other error code is appropriate.
275 *
276 * uvc_video_decode_data is called for every URB with URB data. It copies the
277 * data to the video buffer.
278 *
279 * uvc_video_decode_end is called with header data at the end of a bulk or
280 * isochronous payload. It performs any additional header data processing and
281 * returns 0 or a negative error code if an error occured. As header data have
282 * already been processed by uvc_video_decode_start, this functions isn't
283 * required to perform sanity checks a second time.
284 *
285 * For isochronous transfers where a payload is always transfered in a single
286 * URB, the three functions will be called in a row.
287 *
288 * To let the decoder process header data and update its internal state even
289 * when no video buffer is available, uvc_video_decode_start must be prepared
290 * to be called with a NULL buf parameter. uvc_video_decode_data and
291 * uvc_video_decode_end will never be called with a NULL buffer.
292 */
293static int uvc_video_decode_start(struct uvc_video_device *video,
294 struct uvc_buffer *buf, const __u8 *data, int len)
295{
296 __u8 fid;
297
298 /* Sanity checks:
299 * - packet must be at least 2 bytes long
300 * - bHeaderLength value must be at least 2 bytes (see above)
301 * - bHeaderLength value can't be larger than the packet size.
302 */
303 if (len < 2 || data[0] < 2 || data[0] > len)
304 return -EINVAL;
305
306 /* Skip payloads marked with the error bit ("error frames"). */
307 if (data[1] & UVC_STREAM_ERR) {
308 uvc_trace(UVC_TRACE_FRAME, "Dropping payload (error bit "
309 "set).\n");
310 return -ENODATA;
311 }
312
313 fid = data[1] & UVC_STREAM_FID;
314
315 /* Store the payload FID bit and return immediately when the buffer is
316 * NULL.
317 */
318 if (buf == NULL) {
319 video->last_fid = fid;
320 return -ENODATA;
321 }
322
323 /* Synchronize to the input stream by waiting for the FID bit to be
324 * toggled when the the buffer state is not UVC_BUF_STATE_ACTIVE.
325 * queue->last_fid is initialized to -1, so the first isochronous
326 * frame will always be in sync.
327 *
328 * If the device doesn't toggle the FID bit, invert video->last_fid
329 * when the EOF bit is set to force synchronisation on the next packet.
330 */
331 if (buf->state != UVC_BUF_STATE_ACTIVE) {
332 if (fid == video->last_fid) {
333 uvc_trace(UVC_TRACE_FRAME, "Dropping payload (out of "
334 "sync).\n");
335 if ((video->dev->quirks & UVC_QUIRK_STREAM_NO_FID) &&
336 (data[1] & UVC_STREAM_EOF))
337 video->last_fid ^= UVC_STREAM_FID;
338 return -ENODATA;
339 }
340
341 /* TODO: Handle PTS and SCR. */
342 buf->state = UVC_BUF_STATE_ACTIVE;
343 }
344
345 /* Mark the buffer as done if we're at the beginning of a new frame.
346 * End of frame detection is better implemented by checking the EOF
347 * bit (FID bit toggling is delayed by one frame compared to the EOF
348 * bit), but some devices don't set the bit at end of frame (and the
349 * last payload can be lost anyway). We thus must check if the FID has
350 * been toggled.
351 *
352 * queue->last_fid is initialized to -1, so the first isochronous
353 * frame will never trigger an end of frame detection.
354 *
355 * Empty buffers (bytesused == 0) don't trigger end of frame detection
356 * as it doesn't make sense to return an empty buffer. This also
357 * avoids detecting and of frame conditions at FID toggling if the
358 * previous payload had the EOF bit set.
359 */
360 if (fid != video->last_fid && buf->buf.bytesused != 0) {
361 uvc_trace(UVC_TRACE_FRAME, "Frame complete (FID bit "
362 "toggled).\n");
363 buf->state = UVC_BUF_STATE_DONE;
364 return -EAGAIN;
365 }
366
367 video->last_fid = fid;
368
369 return data[0];
370}
371
372static void uvc_video_decode_data(struct uvc_video_device *video,
373 struct uvc_buffer *buf, const __u8 *data, int len)
374{
375 struct uvc_video_queue *queue = &video->queue;
376 unsigned int maxlen, nbytes;
377 void *mem;
378
379 if (len <= 0)
380 return;
381
382 /* Copy the video data to the buffer. */
383 maxlen = buf->buf.length - buf->buf.bytesused;
384 mem = queue->mem + buf->buf.m.offset + buf->buf.bytesused;
385 nbytes = min((unsigned int)len, maxlen);
386 memcpy(mem, data, nbytes);
387 buf->buf.bytesused += nbytes;
388
389 /* Complete the current frame if the buffer size was exceeded. */
390 if (len > maxlen) {
391 uvc_trace(UVC_TRACE_FRAME, "Frame complete (overflow).\n");
392 buf->state = UVC_BUF_STATE_DONE;
393 }
394}
395
396static void uvc_video_decode_end(struct uvc_video_device *video,
397 struct uvc_buffer *buf, const __u8 *data, int len)
398{
399 /* Mark the buffer as done if the EOF marker is set. */
400 if (data[1] & UVC_STREAM_EOF && buf->buf.bytesused != 0) {
401 uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n");
402 if (data[0] == len)
403 uvc_trace(UVC_TRACE_FRAME, "EOF in empty payload.\n");
404 buf->state = UVC_BUF_STATE_DONE;
405 if (video->dev->quirks & UVC_QUIRK_STREAM_NO_FID)
406 video->last_fid ^= UVC_STREAM_FID;
407 }
408}
409
410/* ------------------------------------------------------------------------
411 * URB handling
412 */
413
414/*
415 * Completion handler for video URBs.
416 */
417static void uvc_video_decode_isoc(struct urb *urb,
418 struct uvc_video_device *video, struct uvc_buffer *buf)
419{
420 u8 *mem;
421 int ret, i;
422
423 for (i = 0; i < urb->number_of_packets; ++i) {
424 if (urb->iso_frame_desc[i].status < 0) {
425 uvc_trace(UVC_TRACE_FRAME, "USB isochronous frame "
426 "lost (%d).\n", urb->iso_frame_desc[i].status);
427 continue;
428 }
429
430 /* Decode the payload header. */
431 mem = urb->transfer_buffer + urb->iso_frame_desc[i].offset;
432 do {
433 ret = uvc_video_decode_start(video, buf, mem,
434 urb->iso_frame_desc[i].actual_length);
435 if (ret == -EAGAIN)
436 buf = uvc_queue_next_buffer(&video->queue, buf);
437 } while (ret == -EAGAIN);
438
439 if (ret < 0)
440 continue;
441
442 /* Decode the payload data. */
443 uvc_video_decode_data(video, buf, mem + ret,
444 urb->iso_frame_desc[i].actual_length - ret);
445
446 /* Process the header again. */
447 uvc_video_decode_end(video, buf, mem, ret);
448
449 if (buf->state == UVC_BUF_STATE_DONE ||
450 buf->state == UVC_BUF_STATE_ERROR)
451 buf = uvc_queue_next_buffer(&video->queue, buf);
452 }
453}
454
455static void uvc_video_decode_bulk(struct urb *urb,
456 struct uvc_video_device *video, struct uvc_buffer *buf)
457{
458 u8 *mem;
459 int len, ret;
460
461 mem = urb->transfer_buffer;
462 len = urb->actual_length;
463 video->bulk.payload_size += len;
464
465 /* If the URB is the first of its payload, decode and save the
466 * header.
467 */
468 if (video->bulk.header_size == 0) {
469 do {
470 ret = uvc_video_decode_start(video, buf, mem, len);
471 if (ret == -EAGAIN)
472 buf = uvc_queue_next_buffer(&video->queue, buf);
473 } while (ret == -EAGAIN);
474
475 /* If an error occured skip the rest of the payload. */
476 if (ret < 0 || buf == NULL) {
477 video->bulk.skip_payload = 1;
478 return;
479 }
480
481 video->bulk.header_size = ret;
482 memcpy(video->bulk.header, mem, video->bulk.header_size);
483
484 mem += ret;
485 len -= ret;
486 }
487
488 /* The buffer queue might have been cancelled while a bulk transfer
489 * was in progress, so we can reach here with buf equal to NULL. Make
490 * sure buf is never dereferenced if NULL.
491 */
492
493 /* Process video data. */
494 if (!video->bulk.skip_payload && buf != NULL)
495 uvc_video_decode_data(video, buf, mem, len);
496
497 /* Detect the payload end by a URB smaller than the maximum size (or
498 * a payload size equal to the maximum) and process the header again.
499 */
500 if (urb->actual_length < urb->transfer_buffer_length ||
501 video->bulk.payload_size >= video->bulk.max_payload_size) {
502 if (!video->bulk.skip_payload && buf != NULL) {
503 uvc_video_decode_end(video, buf, video->bulk.header,
504 video->bulk.header_size);
505 if (buf->state == UVC_BUF_STATE_DONE ||
506 buf->state == UVC_BUF_STATE_ERROR)
507 buf = uvc_queue_next_buffer(&video->queue, buf);
508 }
509
510 video->bulk.header_size = 0;
511 video->bulk.skip_payload = 0;
512 video->bulk.payload_size = 0;
513 }
514}
515
516static void uvc_video_complete(struct urb *urb)
517{
518 struct uvc_video_device *video = urb->context;
519 struct uvc_video_queue *queue = &video->queue;
520 struct uvc_buffer *buf = NULL;
521 unsigned long flags;
522 int ret;
523
524 switch (urb->status) {
525 case 0:
526 break;
527
528 default:
529 uvc_printk(KERN_WARNING, "Non-zero status (%d) in video "
530 "completion handler.\n", urb->status);
531
532 case -ENOENT: /* usb_kill_urb() called. */
533 if (video->frozen)
534 return;
535
536 case -ECONNRESET: /* usb_unlink_urb() called. */
537 case -ESHUTDOWN: /* The endpoint is being disabled. */
538 uvc_queue_cancel(queue, urb->status == -ESHUTDOWN);
539 return;
540 }
541
542 spin_lock_irqsave(&queue->irqlock, flags);
543 if (!list_empty(&queue->irqqueue))
544 buf = list_first_entry(&queue->irqqueue, struct uvc_buffer,
545 queue);
546 spin_unlock_irqrestore(&queue->irqlock, flags);
547
548 video->decode(urb, video, buf);
549
550 if ((ret = usb_submit_urb(urb, GFP_ATOMIC)) < 0) {
551 uvc_printk(KERN_ERR, "Failed to resubmit video URB (%d).\n",
552 ret);
553 }
554}
555
556/*
557 * Uninitialize isochronous/bulk URBs and free transfer buffers.
558 */
559static void uvc_uninit_video(struct uvc_video_device *video)
560{
561 struct urb *urb;
562 unsigned int i;
563
564 for (i = 0; i < UVC_URBS; ++i) {
565 if ((urb = video->urb[i]) == NULL)
566 continue;
567
568 usb_kill_urb(urb);
569 /* urb->transfer_buffer_length is not touched by USB core, so
570 * we can use it here as the buffer length.
571 */
572 if (video->urb_buffer[i]) {
573 usb_buffer_free(video->dev->udev,
574 urb->transfer_buffer_length,
575 video->urb_buffer[i], urb->transfer_dma);
576 video->urb_buffer[i] = NULL;
577 }
578
579 usb_free_urb(urb);
580 video->urb[i] = NULL;
581 }
582}
583
584/*
585 * Initialize isochronous URBs and allocate transfer buffers. The packet size
586 * is given by the endpoint.
587 */
588static int uvc_init_video_isoc(struct uvc_video_device *video,
589 struct usb_host_endpoint *ep)
590{
591 struct urb *urb;
592 unsigned int npackets, i, j;
593 __u16 psize;
594 __u32 size;
595
596 /* Compute the number of isochronous packets to allocate by dividing
597 * the maximum video frame size by the packet size. Limit the result
598 * to UVC_MAX_ISO_PACKETS.
599 */
600 psize = le16_to_cpu(ep->desc.wMaxPacketSize);
601 psize = (psize & 0x07ff) * (1 + ((psize >> 11) & 3));
602
603 size = video->streaming->ctrl.dwMaxVideoFrameSize;
604 if (size > UVC_MAX_FRAME_SIZE)
605 return -EINVAL;
606
607 npackets = (size + psize - 1) / psize;
608 if (npackets > UVC_MAX_ISO_PACKETS)
609 npackets = UVC_MAX_ISO_PACKETS;
610
611 size = npackets * psize;
612
613 for (i = 0; i < UVC_URBS; ++i) {
614 urb = usb_alloc_urb(npackets, GFP_KERNEL);
615 if (urb == NULL) {
616 uvc_uninit_video(video);
617 return -ENOMEM;
618 }
619
620 video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
621 size, GFP_KERNEL, &urb->transfer_dma);
622 if (video->urb_buffer[i] == NULL) {
623 usb_free_urb(urb);
624 uvc_uninit_video(video);
625 return -ENOMEM;
626 }
627
628 urb->dev = video->dev->udev;
629 urb->context = video;
630 urb->pipe = usb_rcvisocpipe(video->dev->udev,
631 ep->desc.bEndpointAddress);
632 urb->transfer_flags = URB_ISO_ASAP | URB_NO_TRANSFER_DMA_MAP;
633 urb->interval = ep->desc.bInterval;
634 urb->transfer_buffer = video->urb_buffer[i];
635 urb->complete = uvc_video_complete;
636 urb->number_of_packets = npackets;
637 urb->transfer_buffer_length = size;
638
639 for (j = 0; j < npackets; ++j) {
640 urb->iso_frame_desc[j].offset = j * psize;
641 urb->iso_frame_desc[j].length = psize;
642 }
643
644 video->urb[i] = urb;
645 }
646
647 return 0;
648}
649
650/*
651 * Initialize bulk URBs and allocate transfer buffers. The packet size is
652 * given by the endpoint.
653 */
654static int uvc_init_video_bulk(struct uvc_video_device *video,
655 struct usb_host_endpoint *ep)
656{
657 struct urb *urb;
658 unsigned int pipe, i;
659 __u16 psize;
660 __u32 size;
661
662 /* Compute the bulk URB size. Some devices set the maximum payload
663 * size to a value too high for memory-constrained devices. We must
664 * then transfer the payload accross multiple URBs. To be consistant
665 * with isochronous mode, allocate maximum UVC_MAX_ISO_PACKETS per bulk
666 * URB.
667 */
668 psize = le16_to_cpu(ep->desc.wMaxPacketSize) & 0x07ff;
669 size = video->streaming->ctrl.dwMaxPayloadTransferSize;
670 video->bulk.max_payload_size = size;
671 if (size > psize * UVC_MAX_ISO_PACKETS)
672 size = psize * UVC_MAX_ISO_PACKETS;
673
674 pipe = usb_rcvbulkpipe(video->dev->udev, ep->desc.bEndpointAddress);
675
676 for (i = 0; i < UVC_URBS; ++i) {
677 urb = usb_alloc_urb(0, GFP_KERNEL);
678 if (urb == NULL) {
679 uvc_uninit_video(video);
680 return -ENOMEM;
681 }
682
683 video->urb_buffer[i] = usb_buffer_alloc(video->dev->udev,
684 size, GFP_KERNEL, &urb->transfer_dma);
685 if (video->urb_buffer[i] == NULL) {
686 usb_free_urb(urb);
687 uvc_uninit_video(video);
688 return -ENOMEM;
689 }
690
691 usb_fill_bulk_urb(urb, video->dev->udev, pipe,
692 video->urb_buffer[i], size, uvc_video_complete,
693 video);
694 urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP;
695
696 video->urb[i] = urb;
697 }
698
699 return 0;
700}
701
702/*
703 * Initialize isochronous/bulk URBs and allocate transfer buffers.
704 */
705static int uvc_init_video(struct uvc_video_device *video)
706{
707 struct usb_interface *intf = video->streaming->intf;
708 struct usb_host_interface *alts;
709 struct usb_host_endpoint *ep = NULL;
710 int intfnum = video->streaming->intfnum;
711 unsigned int bandwidth, psize, i;
712 int ret;
713
714 video->last_fid = -1;
715 video->bulk.header_size = 0;
716 video->bulk.skip_payload = 0;
717 video->bulk.payload_size = 0;
718
719 if (intf->num_altsetting > 1) {
720 /* Isochronous endpoint, select the alternate setting. */
721 bandwidth = video->streaming->ctrl.dwMaxPayloadTransferSize;
722
723 if (bandwidth == 0) {
724 uvc_printk(KERN_WARNING, "device %s requested null "
725 "bandwidth, defaulting to lowest.\n",
726 video->vdev->name);
727 bandwidth = 1;
728 }
729
730 for (i = 0; i < intf->num_altsetting; ++i) {
731 alts = &intf->altsetting[i];
732 ep = uvc_find_endpoint(alts,
733 video->streaming->header.bEndpointAddress);
734 if (ep == NULL)
735 continue;
736
737 /* Check if the bandwidth is high enough. */
738 psize = le16_to_cpu(ep->desc.wMaxPacketSize);
739 psize = (psize & 0x07ff) * (1 + ((psize >> 11) & 3));
740 if (psize >= bandwidth)
741 break;
742 }
743
744 if (i >= intf->num_altsetting)
745 return -EIO;
746
747 if ((ret = usb_set_interface(video->dev->udev, intfnum, i)) < 0)
748 return ret;
749
750 ret = uvc_init_video_isoc(video, ep);
751 } else {
752 /* Bulk endpoint, proceed to URB initialization. */
753 ep = uvc_find_endpoint(&intf->altsetting[0],
754 video->streaming->header.bEndpointAddress);
755 if (ep == NULL)
756 return -EIO;
757
758 ret = uvc_init_video_bulk(video, ep);
759 }
760
761 if (ret < 0)
762 return ret;
763
764 /* Submit the URBs. */
765 for (i = 0; i < UVC_URBS; ++i) {
766 if ((ret = usb_submit_urb(video->urb[i], GFP_KERNEL)) < 0) {
767 uvc_printk(KERN_ERR, "Failed to submit URB %u "
768 "(%d).\n", i, ret);
769 uvc_uninit_video(video);
770 return ret;
771 }
772 }
773
774 return 0;
775}
776
777/* --------------------------------------------------------------------------
778 * Suspend/resume
779 */
780
781/*
782 * Stop streaming without disabling the video queue.
783 *
784 * To let userspace applications resume without trouble, we must not touch the
785 * video buffers in any way. We mark the device as frozen to make sure the URB
786 * completion handler won't try to cancel the queue when we kill the URBs.
787 */
788int uvc_video_suspend(struct uvc_video_device *video)
789{
790 if (!uvc_queue_streaming(&video->queue))
791 return 0;
792
793 video->frozen = 1;
794 uvc_uninit_video(video);
795 usb_set_interface(video->dev->udev, video->streaming->intfnum, 0);
796 return 0;
797}
798
799/*
800 * Reconfigure the video interface and restart streaming if it was enable
801 * before suspend.
802 *
803 * If an error occurs, disable the video queue. This will wake all pending
804 * buffers, making sure userspace applications are notified of the problem
805 * instead of waiting forever.
806 */
807int uvc_video_resume(struct uvc_video_device *video)
808{
809 int ret;
810
811 video->frozen = 0;
812
813 if ((ret = uvc_set_video_ctrl(video, &video->streaming->ctrl, 0)) < 0) {
814 uvc_queue_enable(&video->queue, 0);
815 return ret;
816 }
817
818 if (!uvc_queue_streaming(&video->queue))
819 return 0;
820
821 if ((ret = uvc_init_video(video)) < 0)
822 uvc_queue_enable(&video->queue, 0);
823
824 return ret;
825}
826
827/* ------------------------------------------------------------------------
828 * Video device
829 */
830
831/*
832 * Initialize the UVC video device by retrieving the default format and
833 * committing it.
834 *
835 * Some cameras (namely the Fuji Finepix) set the format and frame
836 * indexes to zero. The UVC standard doesn't clearly make this a spec
837 * violation, so try to silently fix the values if possible.
838 *
839 * This function is called before registering the device with V4L.
840 */
841int uvc_video_init(struct uvc_video_device *video)
842{
843 struct uvc_streaming_control *probe = &video->streaming->ctrl;
844 struct uvc_format *format = NULL;
845 struct uvc_frame *frame = NULL;
846 unsigned int i;
847 int ret;
848
849 if (video->streaming->nformats == 0) {
850 uvc_printk(KERN_INFO, "No supported video formats found.\n");
851 return -EINVAL;
852 }
853
854 /* Alternate setting 0 should be the default, yet the XBox Live Vision
855 * Cam (and possibly other devices) crash or otherwise misbehave if
856 * they don't receive a SET_INTERFACE request before any other video
857 * control request.
858 */
859 usb_set_interface(video->dev->udev, video->streaming->intfnum, 0);
860
861 /* Some webcams don't suport GET_DEF request on the probe control. We
862 * fall back to GET_CUR if GET_DEF fails.
863 */
864 if ((ret = uvc_get_video_ctrl(video, probe, 1, GET_DEF)) < 0 &&
865 (ret = uvc_get_video_ctrl(video, probe, 1, GET_CUR)) < 0)
866 return ret;
867
868 /* Check if the default format descriptor exists. Use the first
869 * available format otherwise.
870 */
871 for (i = video->streaming->nformats; i > 0; --i) {
872 format = &video->streaming->format[i-1];
873 if (format->index == probe->bFormatIndex)
874 break;
875 }
876
877 if (format->nframes == 0) {
878 uvc_printk(KERN_INFO, "No frame descriptor found for the "
879 "default format.\n");
880 return -EINVAL;
881 }
882
883 /* Zero bFrameIndex might be correct. Stream-based formats (including
884 * MPEG-2 TS and DV) do not support frames but have a dummy frame
885 * descriptor with bFrameIndex set to zero. If the default frame
886 * descriptor is not found, use the first avalable frame.
887 */
888 for (i = format->nframes; i > 0; --i) {
889 frame = &format->frame[i-1];
890 if (frame->bFrameIndex == probe->bFrameIndex)
891 break;
892 }
893
894 /* Commit the default settings. */
895 probe->bFormatIndex = format->index;
896 probe->bFrameIndex = frame->bFrameIndex;
897 if ((ret = uvc_set_video_ctrl(video, probe, 0)) < 0)
898 return ret;
899
900 video->streaming->cur_format = format;
901 video->streaming->cur_frame = frame;
902 atomic_set(&video->active, 0);
903
904 /* Select the video decoding function */
905 if (video->dev->quirks & UVC_QUIRK_BUILTIN_ISIGHT)
906 video->decode = uvc_video_decode_isight;
907 else if (video->streaming->intf->num_altsetting > 1)
908 video->decode = uvc_video_decode_isoc;
909 else
910 video->decode = uvc_video_decode_bulk;
911
912 return 0;
913}
914
915/*
916 * Enable or disable the video stream.
917 */
918int uvc_video_enable(struct uvc_video_device *video, int enable)
919{
920 int ret;
921
922 if (!enable) {
923 uvc_uninit_video(video);
924 usb_set_interface(video->dev->udev,
925 video->streaming->intfnum, 0);
926 uvc_queue_enable(&video->queue, 0);
927 return 0;
928 }
929
930 if ((ret = uvc_queue_enable(&video->queue, 1)) < 0)
931 return ret;
932
933 return uvc_init_video(video);
934}
diff --git a/drivers/media/video/uvc/uvcvideo.h b/drivers/media/video/uvc/uvcvideo.h
new file mode 100644
index 000000000000..a995a780db1c
--- /dev/null
+++ b/drivers/media/video/uvc/uvcvideo.h
@@ -0,0 +1,796 @@
1#ifndef _USB_VIDEO_H_
2#define _USB_VIDEO_H_
3
4#include <linux/kernel.h>
5#include <linux/videodev2.h>
6
7
8/*
9 * Dynamic controls
10 */
11
12/* Data types for UVC control data */
13#define UVC_CTRL_DATA_TYPE_RAW 0
14#define UVC_CTRL_DATA_TYPE_SIGNED 1
15#define UVC_CTRL_DATA_TYPE_UNSIGNED 2
16#define UVC_CTRL_DATA_TYPE_BOOLEAN 3
17#define UVC_CTRL_DATA_TYPE_ENUM 4
18#define UVC_CTRL_DATA_TYPE_BITMASK 5
19
20/* Control flags */
21#define UVC_CONTROL_SET_CUR (1 << 0)
22#define UVC_CONTROL_GET_CUR (1 << 1)
23#define UVC_CONTROL_GET_MIN (1 << 2)
24#define UVC_CONTROL_GET_MAX (1 << 3)
25#define UVC_CONTROL_GET_RES (1 << 4)
26#define UVC_CONTROL_GET_DEF (1 << 5)
27/* Control should be saved at suspend and restored at resume. */
28#define UVC_CONTROL_RESTORE (1 << 6)
29/* Control can be updated by the camera. */
30#define UVC_CONTROL_AUTO_UPDATE (1 << 7)
31
32#define UVC_CONTROL_GET_RANGE (UVC_CONTROL_GET_CUR | UVC_CONTROL_GET_MIN | \
33 UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_RES | \
34 UVC_CONTROL_GET_DEF)
35
36struct uvc_xu_control_info {
37 __u8 entity[16];
38 __u8 index;
39 __u8 selector;
40 __u16 size;
41 __u32 flags;
42};
43
44struct uvc_xu_control_mapping {
45 __u32 id;
46 __u8 name[32];
47 __u8 entity[16];
48 __u8 selector;
49
50 __u8 size;
51 __u8 offset;
52 enum v4l2_ctrl_type v4l2_type;
53 __u32 data_type;
54};
55
56struct uvc_xu_control {
57 __u8 unit;
58 __u8 selector;
59 __u16 size;
60 __u8 __user *data;
61};
62
63#define UVCIOC_CTRL_ADD _IOW('U', 1, struct uvc_xu_control_info)
64#define UVCIOC_CTRL_MAP _IOWR('U', 2, struct uvc_xu_control_mapping)
65#define UVCIOC_CTRL_GET _IOWR('U', 3, struct uvc_xu_control)
66#define UVCIOC_CTRL_SET _IOW('U', 4, struct uvc_xu_control)
67
68#ifdef __KERNEL__
69
70#include <linux/poll.h>
71
72/* --------------------------------------------------------------------------
73 * UVC constants
74 */
75
76#define SC_UNDEFINED 0x00
77#define SC_VIDEOCONTROL 0x01
78#define SC_VIDEOSTREAMING 0x02
79#define SC_VIDEO_INTERFACE_COLLECTION 0x03
80
81#define PC_PROTOCOL_UNDEFINED 0x00
82
83#define CS_UNDEFINED 0x20
84#define CS_DEVICE 0x21
85#define CS_CONFIGURATION 0x22
86#define CS_STRING 0x23
87#define CS_INTERFACE 0x24
88#define CS_ENDPOINT 0x25
89
90/* VideoControl class specific interface descriptor */
91#define VC_DESCRIPTOR_UNDEFINED 0x00
92#define VC_HEADER 0x01
93#define VC_INPUT_TERMINAL 0x02
94#define VC_OUTPUT_TERMINAL 0x03
95#define VC_SELECTOR_UNIT 0x04
96#define VC_PROCESSING_UNIT 0x05
97#define VC_EXTENSION_UNIT 0x06
98
99/* VideoStreaming class specific interface descriptor */
100#define VS_UNDEFINED 0x00
101#define VS_INPUT_HEADER 0x01
102#define VS_OUTPUT_HEADER 0x02
103#define VS_STILL_IMAGE_FRAME 0x03
104#define VS_FORMAT_UNCOMPRESSED 0x04
105#define VS_FRAME_UNCOMPRESSED 0x05
106#define VS_FORMAT_MJPEG 0x06
107#define VS_FRAME_MJPEG 0x07
108#define VS_FORMAT_MPEG2TS 0x0a
109#define VS_FORMAT_DV 0x0c
110#define VS_COLORFORMAT 0x0d
111#define VS_FORMAT_FRAME_BASED 0x10
112#define VS_FRAME_FRAME_BASED 0x11
113#define VS_FORMAT_STREAM_BASED 0x12
114
115/* Endpoint type */
116#define EP_UNDEFINED 0x00
117#define EP_GENERAL 0x01
118#define EP_ENDPOINT 0x02
119#define EP_INTERRUPT 0x03
120
121/* Request codes */
122#define RC_UNDEFINED 0x00
123#define SET_CUR 0x01
124#define GET_CUR 0x81
125#define GET_MIN 0x82
126#define GET_MAX 0x83
127#define GET_RES 0x84
128#define GET_LEN 0x85
129#define GET_INFO 0x86
130#define GET_DEF 0x87
131
132/* VideoControl interface controls */
133#define VC_CONTROL_UNDEFINED 0x00
134#define VC_VIDEO_POWER_MODE_CONTROL 0x01
135#define VC_REQUEST_ERROR_CODE_CONTROL 0x02
136
137/* Terminal controls */
138#define TE_CONTROL_UNDEFINED 0x00
139
140/* Selector Unit controls */
141#define SU_CONTROL_UNDEFINED 0x00
142#define SU_INPUT_SELECT_CONTROL 0x01
143
144/* Camera Terminal controls */
145#define CT_CONTROL_UNDEFINED 0x00
146#define CT_SCANNING_MODE_CONTROL 0x01
147#define CT_AE_MODE_CONTROL 0x02
148#define CT_AE_PRIORITY_CONTROL 0x03
149#define CT_EXPOSURE_TIME_ABSOLUTE_CONTROL 0x04
150#define CT_EXPOSURE_TIME_RELATIVE_CONTROL 0x05
151#define CT_FOCUS_ABSOLUTE_CONTROL 0x06
152#define CT_FOCUS_RELATIVE_CONTROL 0x07
153#define CT_FOCUS_AUTO_CONTROL 0x08
154#define CT_IRIS_ABSOLUTE_CONTROL 0x09
155#define CT_IRIS_RELATIVE_CONTROL 0x0a
156#define CT_ZOOM_ABSOLUTE_CONTROL 0x0b
157#define CT_ZOOM_RELATIVE_CONTROL 0x0c
158#define CT_PANTILT_ABSOLUTE_CONTROL 0x0d
159#define CT_PANTILT_RELATIVE_CONTROL 0x0e
160#define CT_ROLL_ABSOLUTE_CONTROL 0x0f
161#define CT_ROLL_RELATIVE_CONTROL 0x10
162#define CT_PRIVACY_CONTROL 0x11
163
164/* Processing Unit controls */
165#define PU_CONTROL_UNDEFINED 0x00
166#define PU_BACKLIGHT_COMPENSATION_CONTROL 0x01
167#define PU_BRIGHTNESS_CONTROL 0x02
168#define PU_CONTRAST_CONTROL 0x03
169#define PU_GAIN_CONTROL 0x04
170#define PU_POWER_LINE_FREQUENCY_CONTROL 0x05
171#define PU_HUE_CONTROL 0x06
172#define PU_SATURATION_CONTROL 0x07
173#define PU_SHARPNESS_CONTROL 0x08
174#define PU_GAMMA_CONTROL 0x09
175#define PU_WHITE_BALANCE_TEMPERATURE_CONTROL 0x0a
176#define PU_WHITE_BALANCE_TEMPERATURE_AUTO_CONTROL 0x0b
177#define PU_WHITE_BALANCE_COMPONENT_CONTROL 0x0c
178#define PU_WHITE_BALANCE_COMPONENT_AUTO_CONTROL 0x0d
179#define PU_DIGITAL_MULTIPLIER_CONTROL 0x0e
180#define PU_DIGITAL_MULTIPLIER_LIMIT_CONTROL 0x0f
181#define PU_HUE_AUTO_CONTROL 0x10
182#define PU_ANALOG_VIDEO_STANDARD_CONTROL 0x11
183#define PU_ANALOG_LOCK_STATUS_CONTROL 0x12
184
185#define LXU_MOTOR_PANTILT_RELATIVE_CONTROL 0x01
186#define LXU_MOTOR_PANTILT_RESET_CONTROL 0x02
187#define LXU_MOTOR_FOCUS_MOTOR_CONTROL 0x03
188
189/* VideoStreaming interface controls */
190#define VS_CONTROL_UNDEFINED 0x00
191#define VS_PROBE_CONTROL 0x01
192#define VS_COMMIT_CONTROL 0x02
193#define VS_STILL_PROBE_CONTROL 0x03
194#define VS_STILL_COMMIT_CONTROL 0x04
195#define VS_STILL_IMAGE_TRIGGER_CONTROL 0x05
196#define VS_STREAM_ERROR_CODE_CONTROL 0x06
197#define VS_GENERATE_KEY_FRAME_CONTROL 0x07
198#define VS_UPDATE_FRAME_SEGMENT_CONTROL 0x08
199#define VS_SYNC_DELAY_CONTROL 0x09
200
201#define TT_VENDOR_SPECIFIC 0x0100
202#define TT_STREAMING 0x0101
203
204/* Input Terminal types */
205#define ITT_VENDOR_SPECIFIC 0x0200
206#define ITT_CAMERA 0x0201
207#define ITT_MEDIA_TRANSPORT_INPUT 0x0202
208
209/* Output Terminal types */
210#define OTT_VENDOR_SPECIFIC 0x0300
211#define OTT_DISPLAY 0x0301
212#define OTT_MEDIA_TRANSPORT_OUTPUT 0x0302
213
214/* External Terminal types */
215#define EXTERNAL_VENDOR_SPECIFIC 0x0400
216#define COMPOSITE_CONNECTOR 0x0401
217#define SVIDEO_CONNECTOR 0x0402
218#define COMPONENT_CONNECTOR 0x0403
219
220#define UVC_TERM_INPUT 0x0000
221#define UVC_TERM_OUTPUT 0x8000
222
223#define UVC_ENTITY_TYPE(entity) ((entity)->type & 0x7fff)
224#define UVC_ENTITY_IS_UNIT(entity) (((entity)->type & 0xff00) == 0)
225#define UVC_ENTITY_IS_TERM(entity) (((entity)->type & 0xff00) != 0)
226#define UVC_ENTITY_IS_ITERM(entity) \
227 (((entity)->type & 0x8000) == UVC_TERM_INPUT)
228#define UVC_ENTITY_IS_OTERM(entity) \
229 (((entity)->type & 0x8000) == UVC_TERM_OUTPUT)
230
231#define UVC_STATUS_TYPE_CONTROL 1
232#define UVC_STATUS_TYPE_STREAMING 2
233
234/* ------------------------------------------------------------------------
235 * GUIDs
236 */
237#define UVC_GUID_UVC_CAMERA \
238 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
239 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}
240#define UVC_GUID_UVC_OUTPUT \
241 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}
243#define UVC_GUID_UVC_MEDIA_TRANSPORT_INPUT \
244 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
245 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03}
246#define UVC_GUID_UVC_PROCESSING \
247 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
248 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01}
249#define UVC_GUID_UVC_SELECTOR \
250 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02}
252
253#define UVC_GUID_LOGITECH_DEV_INFO \
254 {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, \
255 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x1e}
256#define UVC_GUID_LOGITECH_USER_HW \
257 {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, \
258 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x1f}
259#define UVC_GUID_LOGITECH_VIDEO \
260 {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, \
261 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x50}
262#define UVC_GUID_LOGITECH_MOTOR \
263 {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, \
264 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x56}
265
266#define UVC_GUID_FORMAT_MJPEG \
267 { 'M', 'J', 'P', 'G', 0x00, 0x00, 0x10, 0x00, \
268 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
269#define UVC_GUID_FORMAT_YUY2 \
270 { 'Y', 'U', 'Y', '2', 0x00, 0x00, 0x10, 0x00, \
271 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
272#define UVC_GUID_FORMAT_NV12 \
273 { 'N', 'V', '1', '2', 0x00, 0x00, 0x10, 0x00, \
274 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
275#define UVC_GUID_FORMAT_YV12 \
276 { 'Y', 'V', '1', '2', 0x00, 0x00, 0x10, 0x00, \
277 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
278#define UVC_GUID_FORMAT_I420 \
279 { 'I', '4', '2', '0', 0x00, 0x00, 0x10, 0x00, \
280 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
281#define UVC_GUID_FORMAT_UYVY \
282 { 'U', 'Y', 'V', 'Y', 0x00, 0x00, 0x10, 0x00, \
283 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
284#define UVC_GUID_FORMAT_Y800 \
285 { 'Y', '8', '0', '0', 0x00, 0x00, 0x10, 0x00, \
286 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
287#define UVC_GUID_FORMAT_BY8 \
288 { 'B', 'Y', '8', ' ', 0x00, 0x00, 0x10, 0x00, \
289 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
290
291
292/* ------------------------------------------------------------------------
293 * Driver specific constants.
294 */
295
296#define DRIVER_VERSION_NUMBER KERNEL_VERSION(0, 1, 0)
297
298/* Number of isochronous URBs. */
299#define UVC_URBS 5
300/* Maximum number of packets per isochronous URB. */
301#define UVC_MAX_ISO_PACKETS 40
302/* Maximum frame size in bytes, for sanity checking. */
303#define UVC_MAX_FRAME_SIZE (16*1024*1024)
304/* Maximum number of video buffers. */
305#define UVC_MAX_VIDEO_BUFFERS 32
306
307#define UVC_CTRL_CONTROL_TIMEOUT 300
308#define UVC_CTRL_STREAMING_TIMEOUT 1000
309
310/* Devices quirks */
311#define UVC_QUIRK_STATUS_INTERVAL 0x00000001
312#define UVC_QUIRK_PROBE_MINMAX 0x00000002
313#define UVC_QUIRK_PROBE_EXTRAFIELDS 0x00000004
314#define UVC_QUIRK_BUILTIN_ISIGHT 0x00000008
315#define UVC_QUIRK_STREAM_NO_FID 0x00000010
316#define UVC_QUIRK_IGNORE_SELECTOR_UNIT 0x00000020
317
318/* Format flags */
319#define UVC_FMT_FLAG_COMPRESSED 0x00000001
320#define UVC_FMT_FLAG_STREAM 0x00000002
321
322/* ------------------------------------------------------------------------
323 * Structures.
324 */
325
326struct uvc_device;
327
328/* TODO: Put the most frequently accessed fields at the beginning of
329 * structures to maximize cache efficiency.
330 */
331struct uvc_streaming_control {
332 __u16 bmHint;
333 __u8 bFormatIndex;
334 __u8 bFrameIndex;
335 __u32 dwFrameInterval;
336 __u16 wKeyFrameRate;
337 __u16 wPFrameRate;
338 __u16 wCompQuality;
339 __u16 wCompWindowSize;
340 __u16 wDelay;
341 __u32 dwMaxVideoFrameSize;
342 __u32 dwMaxPayloadTransferSize;
343 __u32 dwClockFrequency;
344 __u8 bmFramingInfo;
345 __u8 bPreferedVersion;
346 __u8 bMinVersion;
347 __u8 bMaxVersion;
348};
349
350struct uvc_menu_info {
351 __u32 value;
352 __u8 name[32];
353};
354
355struct uvc_control_info {
356 struct list_head list;
357 struct list_head mappings;
358
359 __u8 entity[16];
360 __u8 index;
361 __u8 selector;
362
363 __u16 size;
364 __u32 flags;
365};
366
367struct uvc_control_mapping {
368 struct list_head list;
369
370 struct uvc_control_info *ctrl;
371
372 __u32 id;
373 __u8 name[32];
374 __u8 entity[16];
375 __u8 selector;
376
377 __u8 size;
378 __u8 offset;
379 enum v4l2_ctrl_type v4l2_type;
380 __u32 data_type;
381
382 struct uvc_menu_info *menu_info;
383 __u32 menu_count;
384};
385
386struct uvc_control {
387 struct uvc_entity *entity;
388 struct uvc_control_info *info;
389
390 __u8 index; /* Used to match the uvc_control entry with a
391 uvc_control_info. */
392 __u8 dirty : 1,
393 loaded : 1,
394 modified : 1;
395
396 __u8 *data;
397};
398
399struct uvc_format_desc {
400 char *name;
401 __u8 guid[16];
402 __u32 fcc;
403};
404
405/* The term 'entity' refers to both UVC units and UVC terminals.
406 *
407 * The type field is either the terminal type (wTerminalType in the terminal
408 * descriptor), or the unit type (bDescriptorSubtype in the unit descriptor).
409 * As the bDescriptorSubtype field is one byte long, the type value will
410 * always have a null MSB for units. All terminal types defined by the UVC
411 * specification have a non-null MSB, so it is safe to use the MSB to
412 * differentiate between units and terminals as long as the descriptor parsing
413 * code makes sure terminal types have a non-null MSB.
414 *
415 * For terminals, the type's most significant bit stores the terminal
416 * direction (either UVC_TERM_INPUT or UVC_TERM_OUTPUT). The type field should
417 * always be accessed with the UVC_ENTITY_* macros and never directly.
418 */
419
420struct uvc_entity {
421 struct list_head list; /* Entity as part of a UVC device. */
422 struct list_head chain; /* Entity as part of a video device
423 * chain. */
424 __u8 id;
425 __u16 type;
426 char name[64];
427
428 union {
429 struct {
430 __u16 wObjectiveFocalLengthMin;
431 __u16 wObjectiveFocalLengthMax;
432 __u16 wOcularFocalLength;
433 __u8 bControlSize;
434 __u8 *bmControls;
435 } camera;
436
437 struct {
438 __u8 bControlSize;
439 __u8 *bmControls;
440 __u8 bTransportModeSize;
441 __u8 *bmTransportModes;
442 } media;
443
444 struct {
445 __u8 bSourceID;
446 } output;
447
448 struct {
449 __u8 bSourceID;
450 __u16 wMaxMultiplier;
451 __u8 bControlSize;
452 __u8 *bmControls;
453 __u8 bmVideoStandards;
454 } processing;
455
456 struct {
457 __u8 bNrInPins;
458 __u8 *baSourceID;
459 } selector;
460
461 struct {
462 __u8 guidExtensionCode[16];
463 __u8 bNumControls;
464 __u8 bNrInPins;
465 __u8 *baSourceID;
466 __u8 bControlSize;
467 __u8 *bmControls;
468 __u8 *bmControlsType;
469 } extension;
470 };
471
472 unsigned int ncontrols;
473 struct uvc_control *controls;
474};
475
476struct uvc_frame {
477 __u8 bFrameIndex;
478 __u8 bmCapabilities;
479 __u16 wWidth;
480 __u16 wHeight;
481 __u32 dwMinBitRate;
482 __u32 dwMaxBitRate;
483 __u32 dwMaxVideoFrameBufferSize;
484 __u8 bFrameIntervalType;
485 __u32 dwDefaultFrameInterval;
486 __u32 *dwFrameInterval;
487};
488
489struct uvc_format {
490 __u8 type;
491 __u8 index;
492 __u8 bpp;
493 __u8 colorspace;
494 __u32 fcc;
495 __u32 flags;
496
497 char name[32];
498
499 unsigned int nframes;
500 struct uvc_frame *frame;
501};
502
503struct uvc_streaming_header {
504 __u8 bNumFormats;
505 __u8 bEndpointAddress;
506 __u8 bTerminalLink;
507 __u8 bControlSize;
508 __u8 *bmaControls;
509 /* The following fields are used by input headers only. */
510 __u8 bmInfo;
511 __u8 bStillCaptureMethod;
512 __u8 bTriggerSupport;
513 __u8 bTriggerUsage;
514};
515
516struct uvc_streaming {
517 struct list_head list;
518
519 struct usb_interface *intf;
520 int intfnum;
521 __u16 maxpsize;
522
523 struct uvc_streaming_header header;
524
525 unsigned int nformats;
526 struct uvc_format *format;
527
528 struct uvc_streaming_control ctrl;
529 struct uvc_format *cur_format;
530 struct uvc_frame *cur_frame;
531
532 struct mutex mutex;
533};
534
535enum uvc_buffer_state {
536 UVC_BUF_STATE_IDLE = 0,
537 UVC_BUF_STATE_QUEUED = 1,
538 UVC_BUF_STATE_ACTIVE = 2,
539 UVC_BUF_STATE_DONE = 3,
540 UVC_BUF_STATE_ERROR = 4,
541};
542
543struct uvc_buffer {
544 unsigned long vma_use_count;
545 struct list_head stream;
546
547 /* Touched by interrupt handler. */
548 struct v4l2_buffer buf;
549 struct list_head queue;
550 wait_queue_head_t wait;
551 enum uvc_buffer_state state;
552};
553
554#define UVC_QUEUE_STREAMING (1 << 0)
555#define UVC_QUEUE_DISCONNECTED (1 << 1)
556#define UVC_QUEUE_DROP_INCOMPLETE (1 << 2)
557
558struct uvc_video_queue {
559 void *mem;
560 unsigned int flags;
561 __u32 sequence;
562
563 unsigned int count;
564 unsigned int buf_size;
565 struct uvc_buffer buffer[UVC_MAX_VIDEO_BUFFERS];
566 struct mutex mutex; /* protects buffers and mainqueue */
567 spinlock_t irqlock; /* protects irqqueue */
568
569 struct list_head mainqueue;
570 struct list_head irqqueue;
571};
572
573struct uvc_video_device {
574 struct uvc_device *dev;
575 struct video_device *vdev;
576 atomic_t active;
577 unsigned int frozen : 1;
578
579 struct list_head iterms;
580 struct uvc_entity *oterm;
581 struct uvc_entity *processing;
582 struct uvc_entity *selector;
583 struct list_head extensions;
584 struct mutex ctrl_mutex;
585
586 struct uvc_video_queue queue;
587
588 /* Video streaming object, must always be non-NULL. */
589 struct uvc_streaming *streaming;
590
591 void (*decode) (struct urb *urb, struct uvc_video_device *video,
592 struct uvc_buffer *buf);
593
594 /* Context data used by the bulk completion handler. */
595 struct {
596 __u8 header[256];
597 unsigned int header_size;
598 int skip_payload;
599 __u32 payload_size;
600 __u32 max_payload_size;
601 } bulk;
602
603 struct urb *urb[UVC_URBS];
604 char *urb_buffer[UVC_URBS];
605
606 __u8 last_fid;
607};
608
609enum uvc_device_state {
610 UVC_DEV_DISCONNECTED = 1,
611};
612
613struct uvc_device {
614 struct usb_device *udev;
615 struct usb_interface *intf;
616 __u32 quirks;
617 int intfnum;
618 char name[32];
619
620 enum uvc_device_state state;
621 struct kref kref;
622 struct list_head list;
623
624 /* Video control interface */
625 __u16 uvc_version;
626 __u32 clock_frequency;
627
628 struct list_head entities;
629
630 struct uvc_video_device video;
631
632 /* Status Interrupt Endpoint */
633 struct usb_host_endpoint *int_ep;
634 struct urb *int_urb;
635 __u8 status[16];
636 struct input_dev *input;
637
638 /* Video Streaming interfaces */
639 struct list_head streaming;
640};
641
642enum uvc_handle_state {
643 UVC_HANDLE_PASSIVE = 0,
644 UVC_HANDLE_ACTIVE = 1,
645};
646
647struct uvc_fh {
648 struct uvc_video_device *device;
649 enum uvc_handle_state state;
650};
651
652struct uvc_driver {
653 struct usb_driver driver;
654
655 struct mutex open_mutex; /* protects from open/disconnect race */
656
657 struct list_head devices; /* struct uvc_device list */
658 struct list_head controls; /* struct uvc_control_info list */
659 struct mutex ctrl_mutex; /* protects controls and devices
660 lists */
661};
662
663/* ------------------------------------------------------------------------
664 * Debugging, printing and logging
665 */
666
667#define UVC_TRACE_PROBE (1 << 0)
668#define UVC_TRACE_DESCR (1 << 1)
669#define UVC_TRACE_CONTROL (1 << 2)
670#define UVC_TRACE_FORMAT (1 << 3)
671#define UVC_TRACE_CAPTURE (1 << 4)
672#define UVC_TRACE_CALLS (1 << 5)
673#define UVC_TRACE_IOCTL (1 << 6)
674#define UVC_TRACE_FRAME (1 << 7)
675#define UVC_TRACE_SUSPEND (1 << 8)
676#define UVC_TRACE_STATUS (1 << 9)
677
678extern unsigned int uvc_trace_param;
679
680#define uvc_trace(flag, msg...) \
681 do { \
682 if (uvc_trace_param & flag) \
683 printk(KERN_DEBUG "uvcvideo: " msg); \
684 } while (0)
685
686#define uvc_printk(level, msg...) \
687 printk(level "uvcvideo: " msg)
688
689#define UVC_GUID_FORMAT "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-" \
690 "%02x%02x%02x%02x%02x%02x"
691#define UVC_GUID_ARGS(guid) \
692 (guid)[3], (guid)[2], (guid)[1], (guid)[0], \
693 (guid)[5], (guid)[4], \
694 (guid)[7], (guid)[6], \
695 (guid)[8], (guid)[9], \
696 (guid)[10], (guid)[11], (guid)[12], \
697 (guid)[13], (guid)[14], (guid)[15]
698
699/* --------------------------------------------------------------------------
700 * Internal functions.
701 */
702
703/* Core driver */
704extern struct uvc_driver uvc_driver;
705extern void uvc_delete(struct kref *kref);
706
707/* Video buffers queue management. */
708extern void uvc_queue_init(struct uvc_video_queue *queue);
709extern int uvc_alloc_buffers(struct uvc_video_queue *queue,
710 unsigned int nbuffers, unsigned int buflength);
711extern int uvc_free_buffers(struct uvc_video_queue *queue);
712extern int uvc_query_buffer(struct uvc_video_queue *queue,
713 struct v4l2_buffer *v4l2_buf);
714extern int uvc_queue_buffer(struct uvc_video_queue *queue,
715 struct v4l2_buffer *v4l2_buf);
716extern int uvc_dequeue_buffer(struct uvc_video_queue *queue,
717 struct v4l2_buffer *v4l2_buf, int nonblocking);
718extern int uvc_queue_enable(struct uvc_video_queue *queue, int enable);
719extern void uvc_queue_cancel(struct uvc_video_queue *queue, int disconnect);
720extern struct uvc_buffer *uvc_queue_next_buffer(struct uvc_video_queue *queue,
721 struct uvc_buffer *buf);
722extern unsigned int uvc_queue_poll(struct uvc_video_queue *queue,
723 struct file *file, poll_table *wait);
724static inline int uvc_queue_streaming(struct uvc_video_queue *queue)
725{
726 return queue->flags & UVC_QUEUE_STREAMING;
727}
728
729/* V4L2 interface */
730extern struct file_operations uvc_fops;
731
732/* Video */
733extern int uvc_video_init(struct uvc_video_device *video);
734extern int uvc_video_suspend(struct uvc_video_device *video);
735extern int uvc_video_resume(struct uvc_video_device *video);
736extern int uvc_video_enable(struct uvc_video_device *video, int enable);
737extern int uvc_probe_video(struct uvc_video_device *video,
738 struct uvc_streaming_control *probe);
739extern int uvc_query_ctrl(struct uvc_device *dev, __u8 query, __u8 unit,
740 __u8 intfnum, __u8 cs, void *data, __u16 size);
741extern int uvc_set_video_ctrl(struct uvc_video_device *video,
742 struct uvc_streaming_control *ctrl, int probe);
743
744/* Status */
745extern int uvc_status_init(struct uvc_device *dev);
746extern void uvc_status_cleanup(struct uvc_device *dev);
747extern int uvc_status_suspend(struct uvc_device *dev);
748extern int uvc_status_resume(struct uvc_device *dev);
749
750/* Controls */
751extern struct uvc_control *uvc_find_control(struct uvc_video_device *video,
752 __u32 v4l2_id, struct uvc_control_mapping **mapping);
753extern int uvc_query_v4l2_ctrl(struct uvc_video_device *video,
754 struct v4l2_queryctrl *v4l2_ctrl);
755
756extern int uvc_ctrl_add_info(struct uvc_control_info *info);
757extern int uvc_ctrl_add_mapping(struct uvc_control_mapping *mapping);
758extern int uvc_ctrl_init_device(struct uvc_device *dev);
759extern void uvc_ctrl_cleanup_device(struct uvc_device *dev);
760extern int uvc_ctrl_resume_device(struct uvc_device *dev);
761extern void uvc_ctrl_init(void);
762
763extern int uvc_ctrl_begin(struct uvc_video_device *video);
764extern int __uvc_ctrl_commit(struct uvc_video_device *video, int rollback);
765static inline int uvc_ctrl_commit(struct uvc_video_device *video)
766{
767 return __uvc_ctrl_commit(video, 0);
768}
769static inline int uvc_ctrl_rollback(struct uvc_video_device *video)
770{
771 return __uvc_ctrl_commit(video, 1);
772}
773
774extern int uvc_ctrl_get(struct uvc_video_device *video,
775 struct v4l2_ext_control *xctrl);
776extern int uvc_ctrl_set(struct uvc_video_device *video,
777 struct v4l2_ext_control *xctrl);
778
779extern int uvc_xu_ctrl_query(struct uvc_video_device *video,
780 struct uvc_xu_control *ctrl, int set);
781
782/* Utility functions */
783extern void uvc_simplify_fraction(uint32_t *numerator, uint32_t *denominator,
784 unsigned int n_terms, unsigned int threshold);
785extern uint32_t uvc_fraction_to_interval(uint32_t numerator,
786 uint32_t denominator);
787extern struct usb_host_endpoint *uvc_find_endpoint(
788 struct usb_host_interface *alts, __u8 epaddr);
789
790/* Quirks support */
791void uvc_video_decode_isight(struct urb *urb, struct uvc_video_device *video,
792 struct uvc_buffer *buf);
793
794#endif /* __KERNEL__ */
795
796#endif
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/net/ehea/ehea.h b/drivers/net/ehea/ehea.h
index fe872fbd671e..e01926b7b5b7 100644
--- a/drivers/net/ehea/ehea.h
+++ b/drivers/net/ehea/ehea.h
@@ -40,7 +40,7 @@
40#include <asm/io.h> 40#include <asm/io.h>
41 41
42#define DRV_NAME "ehea" 42#define DRV_NAME "ehea"
43#define DRV_VERSION "EHEA_0091" 43#define DRV_VERSION "EHEA_0092"
44 44
45/* eHEA capability flags */ 45/* eHEA capability flags */
46#define DLPAR_PORT_ADD_REM 1 46#define DLPAR_PORT_ADD_REM 1
@@ -452,7 +452,7 @@ struct ehea_bcmc_reg_entry {
452struct ehea_bcmc_reg_array { 452struct ehea_bcmc_reg_array {
453 struct ehea_bcmc_reg_entry *arr; 453 struct ehea_bcmc_reg_entry *arr;
454 int num_entries; 454 int num_entries;
455 struct mutex lock; 455 spinlock_t lock;
456}; 456};
457 457
458#define EHEA_PORT_UP 1 458#define EHEA_PORT_UP 1
@@ -478,6 +478,7 @@ struct ehea_port {
478 int num_add_tx_qps; 478 int num_add_tx_qps;
479 int num_mcs; 479 int num_mcs;
480 int resets; 480 int resets;
481 u64 flags;
481 u64 mac_addr; 482 u64 mac_addr;
482 u32 logical_port_id; 483 u32 logical_port_id;
483 u32 port_speed; 484 u32 port_speed;
@@ -501,7 +502,8 @@ struct port_res_cfg {
501}; 502};
502 503
503enum ehea_flag_bits { 504enum ehea_flag_bits {
504 __EHEA_STOP_XFER 505 __EHEA_STOP_XFER,
506 __EHEA_DISABLE_PORT_RESET
505}; 507};
506 508
507void ehea_set_ethtool_ops(struct net_device *netdev); 509void ehea_set_ethtool_ops(struct net_device *netdev);
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 075fd547421e..0920b796bd78 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -118,6 +118,7 @@ static struct of_device_id ehea_device_table[] = {
118 }, 118 },
119 {}, 119 {},
120}; 120};
121MODULE_DEVICE_TABLE(of, ehea_device_table);
121 122
122static struct of_platform_driver ehea_driver = { 123static struct of_platform_driver ehea_driver = {
123 .name = "ehea", 124 .name = "ehea",
@@ -137,6 +138,12 @@ void ehea_dump(void *adr, int len, char *msg)
137 } 138 }
138} 139}
139 140
141void ehea_schedule_port_reset(struct ehea_port *port)
142{
143 if (!test_bit(__EHEA_DISABLE_PORT_RESET, &port->flags))
144 schedule_work(&port->reset_task);
145}
146
140static void ehea_update_firmware_handles(void) 147static void ehea_update_firmware_handles(void)
141{ 148{
142 struct ehea_fw_handle_entry *arr = NULL; 149 struct ehea_fw_handle_entry *arr = NULL;
@@ -241,7 +248,7 @@ static void ehea_update_bcmc_registrations(void)
241 } 248 }
242 249
243 if (num_registrations) { 250 if (num_registrations) {
244 arr = kzalloc(num_registrations * sizeof(*arr), GFP_KERNEL); 251 arr = kzalloc(num_registrations * sizeof(*arr), GFP_ATOMIC);
245 if (!arr) 252 if (!arr)
246 return; /* Keep the existing array */ 253 return; /* Keep the existing array */
247 } else 254 } else
@@ -301,7 +308,7 @@ static struct net_device_stats *ehea_get_stats(struct net_device *dev)
301 308
302 memset(stats, 0, sizeof(*stats)); 309 memset(stats, 0, sizeof(*stats));
303 310
304 cb2 = kzalloc(PAGE_SIZE, GFP_KERNEL); 311 cb2 = kzalloc(PAGE_SIZE, GFP_ATOMIC);
305 if (!cb2) { 312 if (!cb2) {
306 ehea_error("no mem for cb2"); 313 ehea_error("no mem for cb2");
307 goto out; 314 goto out;
@@ -587,7 +594,7 @@ static int ehea_treat_poll_error(struct ehea_port_res *pr, int rq,
587 "Resetting port.", pr->qp->init_attr.qp_nr); 594 "Resetting port.", pr->qp->init_attr.qp_nr);
588 ehea_dump(cqe, sizeof(*cqe), "CQE"); 595 ehea_dump(cqe, sizeof(*cqe), "CQE");
589 } 596 }
590 schedule_work(&pr->port->reset_task); 597 ehea_schedule_port_reset(pr->port);
591 return 1; 598 return 1;
592 } 599 }
593 600
@@ -616,7 +623,7 @@ static int get_skb_hdr(struct sk_buff *skb, void **iphdr,
616 *tcph = tcp_hdr(skb); 623 *tcph = tcp_hdr(skb);
617 624
618 /* check if ip header and tcp header are complete */ 625 /* check if ip header and tcp header are complete */
619 if (iph->tot_len < ip_len + tcp_hdrlen(skb)) 626 if (ntohs(iph->tot_len) < ip_len + tcp_hdrlen(skb))
620 return -1; 627 return -1;
621 628
622 *hdr_flags = LRO_IPV4 | LRO_TCP; 629 *hdr_flags = LRO_IPV4 | LRO_TCP;
@@ -765,7 +772,7 @@ static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota)
765 ehea_error("Send Completion Error: Resetting port"); 772 ehea_error("Send Completion Error: Resetting port");
766 if (netif_msg_tx_err(pr->port)) 773 if (netif_msg_tx_err(pr->port))
767 ehea_dump(cqe, sizeof(*cqe), "Send CQE"); 774 ehea_dump(cqe, sizeof(*cqe), "Send CQE");
768 schedule_work(&pr->port->reset_task); 775 ehea_schedule_port_reset(pr->port);
769 break; 776 break;
770 } 777 }
771 778
@@ -885,7 +892,7 @@ static irqreturn_t ehea_qp_aff_irq_handler(int irq, void *param)
885 eqe = ehea_poll_eq(port->qp_eq); 892 eqe = ehea_poll_eq(port->qp_eq);
886 } 893 }
887 894
888 schedule_work(&port->reset_task); 895 ehea_schedule_port_reset(port);
889 896
890 return IRQ_HANDLED; 897 return IRQ_HANDLED;
891} 898}
@@ -1763,7 +1770,7 @@ static int ehea_set_mac_addr(struct net_device *dev, void *sa)
1763 1770
1764 memcpy(dev->dev_addr, mac_addr->sa_data, dev->addr_len); 1771 memcpy(dev->dev_addr, mac_addr->sa_data, dev->addr_len);
1765 1772
1766 mutex_lock(&ehea_bcmc_regs.lock); 1773 spin_lock(&ehea_bcmc_regs.lock);
1767 1774
1768 /* Deregister old MAC in pHYP */ 1775 /* Deregister old MAC in pHYP */
1769 if (port->state == EHEA_PORT_UP) { 1776 if (port->state == EHEA_PORT_UP) {
@@ -1785,7 +1792,7 @@ static int ehea_set_mac_addr(struct net_device *dev, void *sa)
1785 1792
1786out_upregs: 1793out_upregs:
1787 ehea_update_bcmc_registrations(); 1794 ehea_update_bcmc_registrations();
1788 mutex_unlock(&ehea_bcmc_regs.lock); 1795 spin_unlock(&ehea_bcmc_regs.lock);
1789out_free: 1796out_free:
1790 kfree(cb0); 1797 kfree(cb0);
1791out: 1798out:
@@ -1947,7 +1954,7 @@ static void ehea_set_multicast_list(struct net_device *dev)
1947 } 1954 }
1948 ehea_promiscuous(dev, 0); 1955 ehea_promiscuous(dev, 0);
1949 1956
1950 mutex_lock(&ehea_bcmc_regs.lock); 1957 spin_lock(&ehea_bcmc_regs.lock);
1951 1958
1952 if (dev->flags & IFF_ALLMULTI) { 1959 if (dev->flags & IFF_ALLMULTI) {
1953 ehea_allmulti(dev, 1); 1960 ehea_allmulti(dev, 1);
@@ -1978,7 +1985,7 @@ static void ehea_set_multicast_list(struct net_device *dev)
1978 } 1985 }
1979out: 1986out:
1980 ehea_update_bcmc_registrations(); 1987 ehea_update_bcmc_registrations();
1981 mutex_unlock(&ehea_bcmc_regs.lock); 1988 spin_unlock(&ehea_bcmc_regs.lock);
1982 return; 1989 return;
1983} 1990}
1984 1991
@@ -2497,7 +2504,7 @@ static int ehea_up(struct net_device *dev)
2497 } 2504 }
2498 } 2505 }
2499 2506
2500 mutex_lock(&ehea_bcmc_regs.lock); 2507 spin_lock(&ehea_bcmc_regs.lock);
2501 2508
2502 ret = ehea_broadcast_reg_helper(port, H_REG_BCMC); 2509 ret = ehea_broadcast_reg_helper(port, H_REG_BCMC);
2503 if (ret) { 2510 if (ret) {
@@ -2520,7 +2527,7 @@ out:
2520 ehea_info("Failed starting %s. ret=%i", dev->name, ret); 2527 ehea_info("Failed starting %s. ret=%i", dev->name, ret);
2521 2528
2522 ehea_update_bcmc_registrations(); 2529 ehea_update_bcmc_registrations();
2523 mutex_unlock(&ehea_bcmc_regs.lock); 2530 spin_unlock(&ehea_bcmc_regs.lock);
2524 2531
2525 ehea_update_firmware_handles(); 2532 ehea_update_firmware_handles();
2526 mutex_unlock(&ehea_fw_handles.lock); 2533 mutex_unlock(&ehea_fw_handles.lock);
@@ -2575,7 +2582,7 @@ static int ehea_down(struct net_device *dev)
2575 2582
2576 mutex_lock(&ehea_fw_handles.lock); 2583 mutex_lock(&ehea_fw_handles.lock);
2577 2584
2578 mutex_lock(&ehea_bcmc_regs.lock); 2585 spin_lock(&ehea_bcmc_regs.lock);
2579 ehea_drop_multicast_list(dev); 2586 ehea_drop_multicast_list(dev);
2580 ehea_broadcast_reg_helper(port, H_DEREG_BCMC); 2587 ehea_broadcast_reg_helper(port, H_DEREG_BCMC);
2581 2588
@@ -2584,7 +2591,7 @@ static int ehea_down(struct net_device *dev)
2584 port->state = EHEA_PORT_DOWN; 2591 port->state = EHEA_PORT_DOWN;
2585 2592
2586 ehea_update_bcmc_registrations(); 2593 ehea_update_bcmc_registrations();
2587 mutex_unlock(&ehea_bcmc_regs.lock); 2594 spin_unlock(&ehea_bcmc_regs.lock);
2588 2595
2589 ret = ehea_clean_all_portres(port); 2596 ret = ehea_clean_all_portres(port);
2590 if (ret) 2597 if (ret)
@@ -2605,13 +2612,14 @@ static int ehea_stop(struct net_device *dev)
2605 if (netif_msg_ifdown(port)) 2612 if (netif_msg_ifdown(port))
2606 ehea_info("disabling port %s", dev->name); 2613 ehea_info("disabling port %s", dev->name);
2607 2614
2615 set_bit(__EHEA_DISABLE_PORT_RESET, &port->flags);
2608 cancel_work_sync(&port->reset_task); 2616 cancel_work_sync(&port->reset_task);
2609
2610 mutex_lock(&port->port_lock); 2617 mutex_lock(&port->port_lock);
2611 netif_stop_queue(dev); 2618 netif_stop_queue(dev);
2612 port_napi_disable(port); 2619 port_napi_disable(port);
2613 ret = ehea_down(dev); 2620 ret = ehea_down(dev);
2614 mutex_unlock(&port->port_lock); 2621 mutex_unlock(&port->port_lock);
2622 clear_bit(__EHEA_DISABLE_PORT_RESET, &port->flags);
2615 return ret; 2623 return ret;
2616} 2624}
2617 2625
@@ -2941,7 +2949,7 @@ static void ehea_tx_watchdog(struct net_device *dev)
2941 2949
2942 if (netif_carrier_ok(dev) && 2950 if (netif_carrier_ok(dev) &&
2943 !test_bit(__EHEA_STOP_XFER, &ehea_driver_flags)) 2951 !test_bit(__EHEA_STOP_XFER, &ehea_driver_flags))
2944 schedule_work(&port->reset_task); 2952 ehea_schedule_port_reset(port);
2945} 2953}
2946 2954
2947int ehea_sense_adapter_attr(struct ehea_adapter *adapter) 2955int ehea_sense_adapter_attr(struct ehea_adapter *adapter)
@@ -3590,7 +3598,7 @@ int __init ehea_module_init(void)
3590 memset(&ehea_bcmc_regs, 0, sizeof(ehea_bcmc_regs)); 3598 memset(&ehea_bcmc_regs, 0, sizeof(ehea_bcmc_regs));
3591 3599
3592 mutex_init(&ehea_fw_handles.lock); 3600 mutex_init(&ehea_fw_handles.lock);
3593 mutex_init(&ehea_bcmc_regs.lock); 3601 spin_lock_init(&ehea_bcmc_regs.lock);
3594 3602
3595 ret = check_module_parm(); 3603 ret = check_module_parm();
3596 if (ret) 3604 if (ret)
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index afd063fe11af..786d668c612e 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -4198,12 +4198,23 @@ static int nv_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
4198 4198
4199 netif_carrier_off(dev); 4199 netif_carrier_off(dev);
4200 if (netif_running(dev)) { 4200 if (netif_running(dev)) {
4201 unsigned long flags;
4202
4201 nv_disable_irq(dev); 4203 nv_disable_irq(dev);
4202 netif_tx_lock_bh(dev); 4204 netif_tx_lock_bh(dev);
4203 spin_lock(&np->lock); 4205 /* with plain spinlock lockdep complains */
4206 spin_lock_irqsave(&np->lock, flags);
4204 /* stop engines */ 4207 /* stop engines */
4208 /* FIXME:
4209 * this can take some time, and interrupts are disabled
4210 * due to spin_lock_irqsave, but let's hope no daemon
4211 * is going to change the settings very often...
4212 * Worst case:
4213 * NV_RXSTOP_DELAY1MAX + NV_TXSTOP_DELAY1MAX
4214 * + some minor delays, which is up to a second approximately
4215 */
4205 nv_stop_rxtx(dev); 4216 nv_stop_rxtx(dev);
4206 spin_unlock(&np->lock); 4217 spin_unlock_irqrestore(&np->lock, flags);
4207 netif_tx_unlock_bh(dev); 4218 netif_tx_unlock_bh(dev);
4208 } 4219 }
4209 4220
diff --git a/drivers/net/fs_enet/mac-fcc.c b/drivers/net/fs_enet/mac-fcc.c
index e36321152d50..8268b3535b30 100644
--- a/drivers/net/fs_enet/mac-fcc.c
+++ b/drivers/net/fs_enet/mac-fcc.c
@@ -463,6 +463,9 @@ static void restart(struct net_device *dev)
463 else 463 else
464 C32(fccp, fcc_fpsmr, FCC_PSMR_FDE | FCC_PSMR_LPB); 464 C32(fccp, fcc_fpsmr, FCC_PSMR_FDE | FCC_PSMR_LPB);
465 465
466 /* Restore multicast and promiscuous settings */
467 set_multicast_list(dev);
468
466 S32(fccp, fcc_gfmr, FCC_GFMR_ENR | FCC_GFMR_ENT); 469 S32(fccp, fcc_gfmr, FCC_GFMR_ENR | FCC_GFMR_ENT);
467} 470}
468 471
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index 5d2108c5ac7c..babc79ad490b 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -1636,6 +1636,12 @@ static int emac_poll_rx(void *param, int budget)
1636 goto next; 1636 goto next;
1637 } 1637 }
1638 1638
1639 if (len < ETH_HLEN) {
1640 ++dev->estats.rx_dropped_stack;
1641 emac_recycle_rx_skb(dev, slot, len);
1642 goto next;
1643 }
1644
1639 if (len && len < EMAC_RX_COPY_THRESH) { 1645 if (len && len < EMAC_RX_COPY_THRESH) {
1640 struct sk_buff *copy_skb = 1646 struct sk_buff *copy_skb =
1641 alloc_skb(len + EMAC_RX_SKB_HEADROOM + 2, GFP_ATOMIC); 1647 alloc_skb(len + EMAC_RX_SKB_HEADROOM + 2, GFP_ATOMIC);
@@ -2719,6 +2725,8 @@ static int __devinit emac_probe(struct of_device *ofdev,
2719 /* Clean rings */ 2725 /* Clean rings */
2720 memset(dev->tx_desc, 0, NUM_TX_BUFF * sizeof(struct mal_descriptor)); 2726 memset(dev->tx_desc, 0, NUM_TX_BUFF * sizeof(struct mal_descriptor));
2721 memset(dev->rx_desc, 0, NUM_RX_BUFF * sizeof(struct mal_descriptor)); 2727 memset(dev->rx_desc, 0, NUM_RX_BUFF * sizeof(struct mal_descriptor));
2728 memset(dev->tx_skb, 0, NUM_TX_BUFF * sizeof(struct sk_buff *));
2729 memset(dev->rx_skb, 0, NUM_RX_BUFF * sizeof(struct sk_buff *));
2722 2730
2723 /* Attach to ZMII, if needed */ 2731 /* Attach to ZMII, if needed */
2724 if (emac_has_feature(dev, EMAC_FTR_HAS_ZMII) && 2732 if (emac_has_feature(dev, EMAC_FTR_HAS_ZMII) &&
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index 3b2a6c598088..993d87c9296f 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -277,7 +277,7 @@ static int get_skb_hdr(struct sk_buff *skb, void **iphdr,
277 *tcph = tcp_hdr(skb); 277 *tcph = tcp_hdr(skb);
278 278
279 /* check if ip header and tcp header are complete */ 279 /* check if ip header and tcp header are complete */
280 if (iph->tot_len < ip_len + tcp_hdrlen(skb)) 280 if (ntohs(iph->tot_len) < ip_len + tcp_hdrlen(skb))
281 return -1; 281 return -1;
282 282
283 *hdr_flags = LRO_IPV4 | LRO_TCP; 283 *hdr_flags = LRO_IPV4 | LRO_TCP;
diff --git a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c
index 109bab34094d..62e93dac6b13 100644
--- a/drivers/net/wan/hdlc_fr.c
+++ b/drivers/net/wan/hdlc_fr.c
@@ -992,6 +992,7 @@ static int fr_rx(struct sk_buff *skb)
992 dev->stats.rx_bytes += skb->len; 992 dev->stats.rx_bytes += skb->len;
993 if (pvc->state.becn) 993 if (pvc->state.becn)
994 dev->stats.rx_compressed++; 994 dev->stats.rx_compressed++;
995 skb->dev = dev;
995 netif_rx(skb); 996 netif_rx(skb);
996 return NET_RX_SUCCESS; 997 return NET_RX_SUCCESS;
997 } else { 998 } else {
diff --git a/drivers/net/wireless/hostap/hostap_80211_rx.c b/drivers/net/wireless/hostap/hostap_80211_rx.c
index d669e5956ce7..f106bc1585a4 100644
--- a/drivers/net/wireless/hostap/hostap_80211_rx.c
+++ b/drivers/net/wireless/hostap/hostap_80211_rx.c
@@ -64,7 +64,7 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
64 int hdrlen, phdrlen, head_need, tail_need; 64 int hdrlen, phdrlen, head_need, tail_need;
65 u16 fc; 65 u16 fc;
66 int prism_header, ret; 66 int prism_header, ret;
67 struct ieee80211_hdr_4addr *hdr; 67 struct ieee80211_hdr_4addr *fhdr;
68 68
69 iface = netdev_priv(dev); 69 iface = netdev_priv(dev);
70 local = iface->local; 70 local = iface->local;
@@ -86,8 +86,8 @@ int prism2_rx_80211(struct net_device *dev, struct sk_buff *skb,
86 phdrlen = 0; 86 phdrlen = 0;
87 } 87 }
88 88
89 hdr = (struct ieee80211_hdr_4addr *) skb->data; 89 fhdr = (struct ieee80211_hdr_4addr *) skb->data;
90 fc = le16_to_cpu(hdr->frame_ctl); 90 fc = le16_to_cpu(fhdr->frame_ctl);
91 91
92 if (type == PRISM2_RX_MGMT && (fc & IEEE80211_FCTL_VERS)) { 92 if (type == PRISM2_RX_MGMT && (fc & IEEE80211_FCTL_VERS)) {
93 printk(KERN_DEBUG "%s: dropped management frame with header " 93 printk(KERN_DEBUG "%s: dropped management frame with header "
@@ -572,7 +572,7 @@ hostap_rx_frame_wds(local_info_t *local, struct ieee80211_hdr_4addr *hdr,
572 hdr->addr1[2] != 0xff || hdr->addr1[3] != 0xff || 572 hdr->addr1[2] != 0xff || hdr->addr1[3] != 0xff ||
573 hdr->addr1[4] != 0xff || hdr->addr1[5] != 0xff)) { 573 hdr->addr1[4] != 0xff || hdr->addr1[5] != 0xff)) {
574 /* RA (or BSSID) is not ours - drop */ 574 /* RA (or BSSID) is not ours - drop */
575 PDEBUG(DEBUG_EXTRA, "%s: received WDS frame with " 575 PDEBUG(DEBUG_EXTRA2, "%s: received WDS frame with "
576 "not own or broadcast %s=%s\n", 576 "not own or broadcast %s=%s\n",
577 local->dev->name, 577 local->dev->name,
578 fc & IEEE80211_FCTL_FROMDS ? "RA" : "BSSID", 578 fc & IEEE80211_FCTL_FROMDS ? "RA" : "BSSID",
diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c
index 06b23df8f69b..af3d4ef2a80b 100644
--- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c
@@ -1930,7 +1930,7 @@ static void handle_pspoll(local_info_t *local,
1930 PDEBUG(DEBUG_PS, " PSPOLL and AID[15:14] not set\n"); 1930 PDEBUG(DEBUG_PS, " PSPOLL and AID[15:14] not set\n");
1931 return; 1931 return;
1932 } 1932 }
1933 aid &= ~BIT(15) & ~BIT(14); 1933 aid &= ~(BIT(15) | BIT(14));
1934 if (aid == 0 || aid > MAX_AID_TABLE_SIZE) { 1934 if (aid == 0 || aid > MAX_AID_TABLE_SIZE) {
1935 PDEBUG(DEBUG_PS, " invalid aid=%d\n", aid); 1935 PDEBUG(DEBUG_PS, " invalid aid=%d\n", aid);
1936 return; 1936 return;
diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c
index ed4317a17cbb..80039a0ae027 100644
--- a/drivers/net/wireless/hostap/hostap_cs.c
+++ b/drivers/net/wireless/hostap/hostap_cs.c
@@ -533,10 +533,10 @@ static void prism2_detach(struct pcmcia_device *link)
533do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0) 533do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
534 534
535#define CFG_CHECK2(fn, retf) \ 535#define CFG_CHECK2(fn, retf) \
536do { int ret = (retf); \ 536do { int _ret = (retf); \
537if (ret != 0) { \ 537if (_ret != 0) { \
538 PDEBUG(DEBUG_EXTRA, "CardServices(" #fn ") returned %d\n", ret); \ 538 PDEBUG(DEBUG_EXTRA, "CardServices(" #fn ") returned %d\n", _ret); \
539 cs_error(link, fn, ret); \ 539 cs_error(link, fn, _ret); \
540 goto next_entry; \ 540 goto next_entry; \
541} \ 541} \
542} while (0) 542} while (0)
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index 79a9bc95d2a7..6c158a569485 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -2835,7 +2835,7 @@ static void hostap_passive_scan(unsigned long data)
2835{ 2835{
2836 local_info_t *local = (local_info_t *) data; 2836 local_info_t *local = (local_info_t *) data;
2837 struct net_device *dev = local->dev; 2837 struct net_device *dev = local->dev;
2838 u16 channel; 2838 u16 chan;
2839 2839
2840 if (local->passive_scan_interval <= 0) 2840 if (local->passive_scan_interval <= 0)
2841 return; 2841 return;
@@ -2872,11 +2872,11 @@ static void hostap_passive_scan(unsigned long data)
2872 2872
2873 printk(KERN_DEBUG "%s: passive scan channel %d\n", 2873 printk(KERN_DEBUG "%s: passive scan channel %d\n",
2874 dev->name, local->passive_scan_channel); 2874 dev->name, local->passive_scan_channel);
2875 channel = local->passive_scan_channel; 2875 chan = local->passive_scan_channel;
2876 local->passive_scan_state = PASSIVE_SCAN_WAIT; 2876 local->passive_scan_state = PASSIVE_SCAN_WAIT;
2877 local->passive_scan_timer.expires = jiffies + HZ / 10; 2877 local->passive_scan_timer.expires = jiffies + HZ / 10;
2878 } else { 2878 } else {
2879 channel = local->channel; 2879 chan = local->channel;
2880 local->passive_scan_state = PASSIVE_SCAN_LISTEN; 2880 local->passive_scan_state = PASSIVE_SCAN_LISTEN;
2881 local->passive_scan_timer.expires = jiffies + 2881 local->passive_scan_timer.expires = jiffies +
2882 local->passive_scan_interval * HZ; 2882 local->passive_scan_interval * HZ;
@@ -2884,9 +2884,9 @@ static void hostap_passive_scan(unsigned long data)
2884 2884
2885 if (hfa384x_cmd_callback(dev, HFA384X_CMDCODE_TEST | 2885 if (hfa384x_cmd_callback(dev, HFA384X_CMDCODE_TEST |
2886 (HFA384X_TEST_CHANGE_CHANNEL << 8), 2886 (HFA384X_TEST_CHANGE_CHANNEL << 8),
2887 channel, NULL, 0)) 2887 chan, NULL, 0))
2888 printk(KERN_ERR "%s: passive scan channel set %d " 2888 printk(KERN_ERR "%s: passive scan channel set %d "
2889 "failed\n", dev->name, channel); 2889 "failed\n", dev->name, chan);
2890 2890
2891 add_timer(&local->passive_scan_timer); 2891 add_timer(&local->passive_scan_timer);
2892} 2892}
diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c
index b5213f61fb0b..756ab56c1f40 100644
--- a/drivers/net/wireless/hostap/hostap_main.c
+++ b/drivers/net/wireless/hostap/hostap_main.c
@@ -594,7 +594,8 @@ void hostap_dump_tx_header(const char *name, const struct hfa384x_tx_frame *tx)
594} 594}
595 595
596 596
597int hostap_80211_header_parse(const struct sk_buff *skb, unsigned char *haddr) 597static int hostap_80211_header_parse(const struct sk_buff *skb,
598 unsigned char *haddr)
598{ 599{
599 memcpy(haddr, skb_mac_header(skb) + 10, ETH_ALEN); /* addr2 */ 600 memcpy(haddr, skb_mac_header(skb) + 10, ETH_ALEN); /* addr2 */
600 return ETH_ALEN; 601 return ETH_ALEN;
@@ -839,7 +840,6 @@ const struct header_ops hostap_80211_ops = {
839 .rebuild = eth_rebuild_header, 840 .rebuild = eth_rebuild_header,
840 .cache = eth_header_cache, 841 .cache = eth_header_cache,
841 .cache_update = eth_header_cache_update, 842 .cache_update = eth_header_cache_update,
842
843 .parse = hostap_80211_header_parse, 843 .parse = hostap_80211_header_parse,
844}; 844};
845EXPORT_SYMBOL(hostap_80211_ops); 845EXPORT_SYMBOL(hostap_80211_ops);
@@ -1132,7 +1132,6 @@ EXPORT_SYMBOL(hostap_set_roaming);
1132EXPORT_SYMBOL(hostap_set_auth_algs); 1132EXPORT_SYMBOL(hostap_set_auth_algs);
1133EXPORT_SYMBOL(hostap_dump_rx_header); 1133EXPORT_SYMBOL(hostap_dump_rx_header);
1134EXPORT_SYMBOL(hostap_dump_tx_header); 1134EXPORT_SYMBOL(hostap_dump_tx_header);
1135EXPORT_SYMBOL(hostap_80211_header_parse);
1136EXPORT_SYMBOL(hostap_80211_get_hdrlen); 1135EXPORT_SYMBOL(hostap_80211_get_hdrlen);
1137EXPORT_SYMBOL(hostap_get_stats); 1136EXPORT_SYMBOL(hostap_get_stats);
1138EXPORT_SYMBOL(hostap_setup_dev); 1137EXPORT_SYMBOL(hostap_setup_dev);
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 63f20370032d..38866ab0040f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -590,8 +590,12 @@ static void iwl3945_add_radiotap(struct iwl3945_priv *priv,
590 590
591 if (rate == -1) 591 if (rate == -1)
592 iwl3945_rt->rt_rate = 0; 592 iwl3945_rt->rt_rate = 0;
593 else 593 else {
594 if (stats->band == IEEE80211_BAND_5GHZ)
595 rate += IWL_FIRST_OFDM_RATE;
596
594 iwl3945_rt->rt_rate = iwl3945_rates[rate].ieee; 597 iwl3945_rt->rt_rate = iwl3945_rates[rate].ieee;
598 }
595 599
596 /* antenna number */ 600 /* antenna number */
597 antenna = phy_flags_hw & RX_RES_PHY_FLAGS_ANTENNA_MSK; 601 antenna = phy_flags_hw & RX_RES_PHY_FLAGS_ANTENNA_MSK;
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 3bc2644039f0..baa1abd5a14d 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -6694,6 +6694,12 @@ static int iwl3945_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
6694 6694
6695 IWL_DEBUG_MAC80211("enter\n"); 6695 IWL_DEBUG_MAC80211("enter\n");
6696 6696
6697 if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR) {
6698 IWL_DEBUG_MAC80211("leave - monitor\n");
6699 dev_kfree_skb_any(skb);
6700 return 0;
6701 }
6702
6697 IWL_DEBUG_TX("dev->xmit(%d bytes) at rate 0x%02x\n", skb->len, 6703 IWL_DEBUG_TX("dev->xmit(%d bytes) at rate 0x%02x\n", skb->len,
6698 ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate); 6704 ieee80211_get_tx_rate(hw, IEEE80211_SKB_CB(skb))->bitrate);
6699 6705
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index ba0f28945eb1..60b7a6498fe8 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -2682,7 +2682,8 @@ static int iwl4965_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
2682 2682
2683 if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR) { 2683 if (priv->iw_mode == IEEE80211_IF_TYPE_MNTR) {
2684 IWL_DEBUG_MAC80211("leave - monitor\n"); 2684 IWL_DEBUG_MAC80211("leave - monitor\n");
2685 return -1; 2685 dev_kfree_skb_any(skb);
2686 return 0;
2686 } 2687 }
2687 2688
2688 IWL_DEBUG_TX("dev->xmit(%d bytes) at rate 0x%02x\n", skb->len, 2689 IWL_DEBUG_TX("dev->xmit(%d bytes) at rate 0x%02x\n", skb->len,
diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
index 24783103a7dd..a8b4abce5bfa 100644
--- a/drivers/net/wireless/libertas/if_usb.c
+++ b/drivers/net/wireless/libertas/if_usb.c
@@ -947,6 +947,7 @@ static struct usb_driver if_usb_driver = {
947 .id_table = if_usb_table, 947 .id_table = if_usb_table,
948 .suspend = if_usb_suspend, 948 .suspend = if_usb_suspend,
949 .resume = if_usb_resume, 949 .resume = if_usb_resume,
950 .reset_resume = if_usb_resume,
950}; 951};
951 952
952static int __init if_usb_init_module(void) 953static int __init if_usb_init_module(void)
diff --git a/drivers/pci/access.c b/drivers/pci/access.c
index ec8f7002b09d..39bb96b413ef 100644
--- a/drivers/pci/access.c
+++ b/drivers/pci/access.c
@@ -178,8 +178,7 @@ static int pci_vpd_pci22_read(struct pci_dev *dev, int pos, int size,
178 int ret; 178 int ret;
179 int begin, end, i; 179 int begin, end, i;
180 180
181 if (pos < 0 || pos > PCI_VPD_PCI22_SIZE || 181 if (pos < 0 || pos > vpd->base.len || size > vpd->base.len - pos)
182 size > PCI_VPD_PCI22_SIZE - pos)
183 return -EINVAL; 182 return -EINVAL;
184 if (size == 0) 183 if (size == 0)
185 return 0; 184 return 0;
@@ -223,8 +222,8 @@ static int pci_vpd_pci22_write(struct pci_dev *dev, int pos, int size,
223 u32 val; 222 u32 val;
224 int ret; 223 int ret;
225 224
226 if (pos < 0 || pos > PCI_VPD_PCI22_SIZE || pos & 3 || 225 if (pos < 0 || pos > vpd->base.len || pos & 3 ||
227 size > PCI_VPD_PCI22_SIZE - pos || size < 4) 226 size > vpd->base.len - pos || size < 4)
228 return -EINVAL; 227 return -EINVAL;
229 228
230 val = (u8) *buf++; 229 val = (u8) *buf++;
@@ -255,11 +254,6 @@ out:
255 return 4; 254 return 4;
256} 255}
257 256
258static int pci_vpd_pci22_get_size(struct pci_dev *dev)
259{
260 return PCI_VPD_PCI22_SIZE;
261}
262
263static void pci_vpd_pci22_release(struct pci_dev *dev) 257static void pci_vpd_pci22_release(struct pci_dev *dev)
264{ 258{
265 kfree(container_of(dev->vpd, struct pci_vpd_pci22, base)); 259 kfree(container_of(dev->vpd, struct pci_vpd_pci22, base));
@@ -268,7 +262,6 @@ static void pci_vpd_pci22_release(struct pci_dev *dev)
268static struct pci_vpd_ops pci_vpd_pci22_ops = { 262static struct pci_vpd_ops pci_vpd_pci22_ops = {
269 .read = pci_vpd_pci22_read, 263 .read = pci_vpd_pci22_read,
270 .write = pci_vpd_pci22_write, 264 .write = pci_vpd_pci22_write,
271 .get_size = pci_vpd_pci22_get_size,
272 .release = pci_vpd_pci22_release, 265 .release = pci_vpd_pci22_release,
273}; 266};
274 267
@@ -284,6 +277,7 @@ int pci_vpd_pci22_init(struct pci_dev *dev)
284 if (!vpd) 277 if (!vpd)
285 return -ENOMEM; 278 return -ENOMEM;
286 279
280 vpd->base.len = PCI_VPD_PCI22_SIZE;
287 vpd->base.ops = &pci_vpd_pci22_ops; 281 vpd->base.ops = &pci_vpd_pci22_ops;
288 spin_lock_init(&vpd->lock); 282 spin_lock_init(&vpd->lock);
289 vpd->cap = cap; 283 vpd->cap = cap;
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 648596d469f6..91156f85a926 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -700,9 +700,10 @@ cleanup_p2p_bridge(acpi_handle handle, u32 lvl, void *context, void **rv)
700 acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1, 700 acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, (u32)1,
701 cleanup_p2p_bridge, NULL, NULL); 701 cleanup_p2p_bridge, NULL, NULL);
702 702
703 if (!(bridge = acpiphp_handle_to_bridge(handle))) 703 bridge = acpiphp_handle_to_bridge(handle);
704 return AE_OK; 704 if (bridge)
705 cleanup_bridge(bridge); 705 cleanup_bridge(bridge);
706
706 return AE_OK; 707 return AE_OK;
707} 708}
708 709
@@ -715,9 +716,19 @@ static void remove_bridge(acpi_handle handle)
715 acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 716 acpi_walk_namespace(ACPI_TYPE_DEVICE, handle,
716 (u32)1, cleanup_p2p_bridge, NULL, NULL); 717 (u32)1, cleanup_p2p_bridge, NULL, NULL);
717 718
719 /*
720 * On root bridges with hotplug slots directly underneath (ie,
721 * no p2p bridge inbetween), we call cleanup_bridge().
722 *
723 * The else clause cleans up root bridges that either had no
724 * hotplug slots at all, or had a p2p bridge underneath.
725 */
718 bridge = acpiphp_handle_to_bridge(handle); 726 bridge = acpiphp_handle_to_bridge(handle);
719 if (bridge) 727 if (bridge)
720 cleanup_bridge(bridge); 728 cleanup_bridge(bridge);
729 else
730 acpi_remove_notify_handler(handle, ACPI_SYSTEM_NOTIFY,
731 handle_hotplug_event_bridge);
721} 732}
722 733
723static struct pci_dev * get_apic_pci_info(acpi_handle handle) 734static struct pci_dev * get_apic_pci_info(acpi_handle handle)
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..9c718583a237 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;
@@ -697,9 +736,9 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
697 attr = kzalloc(sizeof(*attr), GFP_ATOMIC); 736 attr = kzalloc(sizeof(*attr), GFP_ATOMIC);
698 if (attr) { 737 if (attr) {
699 pdev->vpd->attr = attr; 738 pdev->vpd->attr = attr;
700 attr->size = pdev->vpd->ops->get_size(pdev); 739 attr->size = pdev->vpd->len;
701 attr->attr.name = "vpd"; 740 attr->attr.name = "vpd";
702 attr->attr.mode = S_IRUGO | S_IWUSR; 741 attr->attr.mode = S_IRUSR | S_IWUSR;
703 attr->read = pci_read_vpd; 742 attr->read = pci_read_vpd;
704 attr->write = pci_write_vpd; 743 attr->write = pci_write_vpd;
705 retval = sysfs_create_bin_file(&pdev->dev.kobj, attr); 744 retval = sysfs_create_bin_file(&pdev->dev.kobj, attr);
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 0a497c1b4227..00408c97e5fc 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -21,11 +21,11 @@ extern int pci_user_write_config_dword(struct pci_dev *dev, int where, u32 val);
21struct pci_vpd_ops { 21struct pci_vpd_ops {
22 int (*read)(struct pci_dev *dev, int pos, int size, char *buf); 22 int (*read)(struct pci_dev *dev, int pos, int size, char *buf);
23 int (*write)(struct pci_dev *dev, int pos, int size, const char *buf); 23 int (*write)(struct pci_dev *dev, int pos, int size, const char *buf);
24 int (*get_size)(struct pci_dev *dev);
25 void (*release)(struct pci_dev *dev); 24 void (*release)(struct pci_dev *dev);
26}; 25};
27 26
28struct pci_vpd { 27struct pci_vpd {
28 unsigned int len;
29 struct pci_vpd_ops *ops; 29 struct pci_vpd_ops *ops;
30 struct bin_attribute *attr; /* descriptor for sysfs VPD entry */ 30 struct bin_attribute *attr; /* descriptor for sysfs VPD entry */
31}; 31};
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index dabb563f51d9..a3497dc6ebcf 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1670,6 +1670,48 @@ static void __devinit quirk_via_cx700_pci_parking_caching(struct pci_dev *dev)
1670} 1670}
1671DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_VIA, 0x324e, quirk_via_cx700_pci_parking_caching); 1671DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_VIA, 0x324e, quirk_via_cx700_pci_parking_caching);
1672 1672
1673/*
1674 * For Broadcom 5706, 5708, 5709 rev. A nics, any read beyond the
1675 * VPD end tag will hang the device. This problem was initially
1676 * observed when a vpd entry was created in sysfs
1677 * ('/sys/bus/pci/devices/<id>/vpd'). A read to this sysfs entry
1678 * will dump 32k of data. Reading a full 32k will cause an access
1679 * beyond the VPD end tag causing the device to hang. Once the device
1680 * is hung, the bnx2 driver will not be able to reset the device.
1681 * We believe that it is legal to read beyond the end tag and
1682 * therefore the solution is to limit the read/write length.
1683 */
1684static void __devinit quirk_brcm_570x_limit_vpd(struct pci_dev *dev)
1685{
1686 /* Only disable the VPD capability for 5706, 5708, and 5709 rev. A */
1687 if ((dev->device == PCI_DEVICE_ID_NX2_5706) ||
1688 (dev->device == PCI_DEVICE_ID_NX2_5708) ||
1689 ((dev->device == PCI_DEVICE_ID_NX2_5709) &&
1690 (dev->revision & 0xf0) == 0x0)) {
1691 if (dev->vpd)
1692 dev->vpd->len = 0x80;
1693 }
1694}
1695
1696DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
1697 PCI_DEVICE_ID_NX2_5706,
1698 quirk_brcm_570x_limit_vpd);
1699DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
1700 PCI_DEVICE_ID_NX2_5706S,
1701 quirk_brcm_570x_limit_vpd);
1702DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
1703 PCI_DEVICE_ID_NX2_5708,
1704 quirk_brcm_570x_limit_vpd);
1705DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
1706 PCI_DEVICE_ID_NX2_5708S,
1707 quirk_brcm_570x_limit_vpd);
1708DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
1709 PCI_DEVICE_ID_NX2_5709,
1710 quirk_brcm_570x_limit_vpd);
1711DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM,
1712 PCI_DEVICE_ID_NX2_5709S,
1713 quirk_brcm_570x_limit_vpd);
1714
1673#ifdef CONFIG_PCI_MSI 1715#ifdef CONFIG_PCI_MSI
1674/* Some chipsets do not support MSI. We cannot easily rely on setting 1716/* Some chipsets do not support MSI. We cannot easily rely on setting
1675 * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually 1717 * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually
diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
index 82f62d25f921..67421b0d3a7b 100644
--- a/drivers/rtc/rtc-sa1100.c
+++ b/drivers/rtc/rtc-sa1100.c
@@ -331,14 +331,14 @@ static int sa1100_rtc_probe(struct platform_device *pdev)
331 RCNR = 0; 331 RCNR = 0;
332 } 332 }
333 333
334 device_init_wakeup(&pdev->dev, 1);
335
334 rtc = rtc_device_register(pdev->name, &pdev->dev, &sa1100_rtc_ops, 336 rtc = rtc_device_register(pdev->name, &pdev->dev, &sa1100_rtc_ops,
335 THIS_MODULE); 337 THIS_MODULE);
336 338
337 if (IS_ERR(rtc)) 339 if (IS_ERR(rtc))
338 return PTR_ERR(rtc); 340 return PTR_ERR(rtc);
339 341
340 device_init_wakeup(&pdev->dev, 1);
341
342 platform_set_drvdata(pdev, rtc); 342 platform_set_drvdata(pdev, rtc);
343 343
344 return 0; 344 return 0;
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/esp_scsi.c b/drivers/scsi/esp_scsi.c
index a0b6d414953d..59fbef08d690 100644
--- a/drivers/scsi/esp_scsi.c
+++ b/drivers/scsi/esp_scsi.c
@@ -2359,6 +2359,24 @@ void scsi_esp_unregister(struct esp *esp)
2359} 2359}
2360EXPORT_SYMBOL(scsi_esp_unregister); 2360EXPORT_SYMBOL(scsi_esp_unregister);
2361 2361
2362static int esp_target_alloc(struct scsi_target *starget)
2363{
2364 struct esp *esp = shost_priv(dev_to_shost(&starget->dev));
2365 struct esp_target_data *tp = &esp->target[starget->id];
2366
2367 tp->starget = starget;
2368
2369 return 0;
2370}
2371
2372static void esp_target_destroy(struct scsi_target *starget)
2373{
2374 struct esp *esp = shost_priv(dev_to_shost(&starget->dev));
2375 struct esp_target_data *tp = &esp->target[starget->id];
2376
2377 tp->starget = NULL;
2378}
2379
2362static int esp_slave_alloc(struct scsi_device *dev) 2380static int esp_slave_alloc(struct scsi_device *dev)
2363{ 2381{
2364 struct esp *esp = shost_priv(dev->host); 2382 struct esp *esp = shost_priv(dev->host);
@@ -2370,8 +2388,6 @@ static int esp_slave_alloc(struct scsi_device *dev)
2370 return -ENOMEM; 2388 return -ENOMEM;
2371 dev->hostdata = lp; 2389 dev->hostdata = lp;
2372 2390
2373 tp->starget = dev->sdev_target;
2374
2375 spi_min_period(tp->starget) = esp->min_period; 2391 spi_min_period(tp->starget) = esp->min_period;
2376 spi_max_offset(tp->starget) = 15; 2392 spi_max_offset(tp->starget) = 15;
2377 2393
@@ -2608,6 +2624,8 @@ struct scsi_host_template scsi_esp_template = {
2608 .name = "esp", 2624 .name = "esp",
2609 .info = esp_info, 2625 .info = esp_info,
2610 .queuecommand = esp_queuecommand, 2626 .queuecommand = esp_queuecommand,
2627 .target_alloc = esp_target_alloc,
2628 .target_destroy = esp_target_destroy,
2611 .slave_alloc = esp_slave_alloc, 2629 .slave_alloc = esp_slave_alloc,
2612 .slave_configure = esp_slave_configure, 2630 .slave_configure = esp_slave_configure,
2613 .slave_destroy = esp_slave_destroy, 2631 .slave_destroy = esp_slave_destroy,
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/ses.c b/drivers/scsi/ses.c
index 45df83b9d847..0fe031f003e7 100644
--- a/drivers/scsi/ses.c
+++ b/drivers/scsi/ses.c
@@ -61,7 +61,7 @@ static int ses_probe(struct device *dev)
61 return err; 61 return err;
62} 62}
63 63
64#define SES_TIMEOUT 30 64#define SES_TIMEOUT (30 * HZ)
65#define SES_RETRIES 3 65#define SES_RETRIES 3
66 66
67static int ses_recv_diag(struct scsi_device *sdev, int page_code, 67static int ses_recv_diag(struct scsi_device *sdev, int page_code,
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 f20952c43cb8..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;
@@ -565,7 +558,10 @@ static void bfin_serial_mctrl_check(struct bfin_serial_port *uart)
565 uart_handle_cts_change(&uart->port, status & TIOCM_CTS); 558 uart_handle_cts_change(&uart->port, status & TIOCM_CTS);
566 if (!(status & TIOCM_CTS)) { 559 if (!(status & TIOCM_CTS)) {
567 tty->hw_stopped = 1; 560 tty->hw_stopped = 1;
568 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));
569 } else { 565 } else {
570 tty->hw_stopped = 0; 566 tty->hw_stopped = 0;
571 } 567 }
@@ -885,7 +881,7 @@ static void __init bfin_serial_init_ports(void)
885 init_timer(&(bfin_serial_ports[i].rx_dma_timer)); 881 init_timer(&(bfin_serial_ports[i].rx_dma_timer));
886#endif 882#endif
887#ifdef CONFIG_SERIAL_BFIN_CTSRTS 883#ifdef CONFIG_SERIAL_BFIN_CTSRTS
888 INIT_WORK(&bfin_serial_ports[i].cts_workqueue, bfin_serial_do_work); 884 init_timer(&(bfin_serial_ports[i].cts_timer));
889 bfin_serial_ports[i].cts_pin = 885 bfin_serial_ports[i].cts_pin =
890 bfin_serial_resource[i].uart_cts_pin; 886 bfin_serial_resource[i].uart_cts_pin;
891 bfin_serial_ports[i].rts_pin = 887 bfin_serial_ports[i].rts_pin =
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/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/video/pxafb.c b/drivers/video/pxafb.c
index 7dcda187d9ba..fafe7db20d6d 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1246,7 +1246,7 @@ static int pxafb_resume(struct platform_device *dev)
1246 * cache. Once this area is remapped, all virtual memory 1246 * cache. Once this area is remapped, all virtual memory
1247 * access to the video memory should occur at the new region. 1247 * access to the video memory should occur at the new region.
1248 */ 1248 */
1249static int __init pxafb_map_video_memory(struct pxafb_info *fbi) 1249static int __devinit pxafb_map_video_memory(struct pxafb_info *fbi)
1250{ 1250{
1251 /* 1251 /*
1252 * We reserve one page for the palette, plus the size 1252 * We reserve one page for the palette, plus the size
@@ -1348,7 +1348,7 @@ decode_mode:
1348 pxafb_decode_mode_info(fbi, inf->modes, inf->num_modes); 1348 pxafb_decode_mode_info(fbi, inf->modes, inf->num_modes);
1349} 1349}
1350 1350
1351static struct pxafb_info * __init pxafb_init_fbinfo(struct device *dev) 1351static struct pxafb_info * __devinit pxafb_init_fbinfo(struct device *dev)
1352{ 1352{
1353 struct pxafb_info *fbi; 1353 struct pxafb_info *fbi;
1354 void *addr; 1354 void *addr;
@@ -1410,7 +1410,7 @@ static struct pxafb_info * __init pxafb_init_fbinfo(struct device *dev)
1410} 1410}
1411 1411
1412#ifdef CONFIG_FB_PXA_PARAMETERS 1412#ifdef CONFIG_FB_PXA_PARAMETERS
1413static int __init parse_opt_mode(struct device *dev, const char *this_opt) 1413static int __devinit parse_opt_mode(struct device *dev, const char *this_opt)
1414{ 1414{
1415 struct pxafb_mach_info *inf = dev->platform_data; 1415 struct pxafb_mach_info *inf = dev->platform_data;
1416 1416
@@ -1469,7 +1469,7 @@ done:
1469 return 0; 1469 return 0;
1470} 1470}
1471 1471
1472static int __init parse_opt(struct device *dev, char *this_opt) 1472static int __devinit parse_opt(struct device *dev, char *this_opt)
1473{ 1473{
1474 struct pxafb_mach_info *inf = dev->platform_data; 1474 struct pxafb_mach_info *inf = dev->platform_data;
1475 struct pxafb_mode_info *mode = &inf->modes[0]; 1475 struct pxafb_mode_info *mode = &inf->modes[0];
@@ -1567,7 +1567,7 @@ static int __init parse_opt(struct device *dev, char *this_opt)
1567 return 0; 1567 return 0;
1568} 1568}
1569 1569
1570static int __init pxafb_parse_options(struct device *dev, char *options) 1570static int __devinit pxafb_parse_options(struct device *dev, char *options)
1571{ 1571{
1572 char *this_opt; 1572 char *this_opt;
1573 int ret; 1573 int ret;
@@ -1588,8 +1588,8 @@ static int __init pxafb_parse_options(struct device *dev, char *options)
1588 1588
1589static char g_options[256] __devinitdata = ""; 1589static char g_options[256] __devinitdata = "";
1590 1590
1591#ifndef CONFIG_MODULES 1591#ifndef MODULE
1592static int __devinit pxafb_setup_options(void) 1592static int __init pxafb_setup_options(void)
1593{ 1593{
1594 char *options = NULL; 1594 char *options = NULL;
1595 1595
@@ -1613,7 +1613,7 @@ MODULE_PARM_DESC(options, "LCD parameters (see Documentation/fb/pxafb.txt)");
1613#define pxafb_setup_options() (0) 1613#define pxafb_setup_options() (0)
1614#endif 1614#endif
1615 1615
1616static int __init pxafb_probe(struct platform_device *dev) 1616static int __devinit pxafb_probe(struct platform_device *dev)
1617{ 1617{
1618 struct pxafb_info *fbi; 1618 struct pxafb_info *fbi;
1619 struct pxafb_mach_info *inf; 1619 struct pxafb_mach_info *inf;
@@ -1685,14 +1685,14 @@ static int __init pxafb_probe(struct platform_device *dev)
1685 if (r == NULL) { 1685 if (r == NULL) {
1686 dev_err(&dev->dev, "no I/O memory resource defined\n"); 1686 dev_err(&dev->dev, "no I/O memory resource defined\n");
1687 ret = -ENODEV; 1687 ret = -ENODEV;
1688 goto failed; 1688 goto failed_fbi;
1689 } 1689 }
1690 1690
1691 r = request_mem_region(r->start, r->end - r->start + 1, dev->name); 1691 r = request_mem_region(r->start, r->end - r->start + 1, dev->name);
1692 if (r == NULL) { 1692 if (r == NULL) {
1693 dev_err(&dev->dev, "failed to request I/O memory\n"); 1693 dev_err(&dev->dev, "failed to request I/O memory\n");
1694 ret = -EBUSY; 1694 ret = -EBUSY;
1695 goto failed; 1695 goto failed_fbi;
1696 } 1696 }
1697 1697
1698 fbi->mmio_base = ioremap(r->start, r->end - r->start + 1); 1698 fbi->mmio_base = ioremap(r->start, r->end - r->start + 1);
@@ -1735,8 +1735,17 @@ static int __init pxafb_probe(struct platform_device *dev)
1735 * This makes sure that our colour bitfield 1735 * This makes sure that our colour bitfield
1736 * descriptors are correctly initialised. 1736 * descriptors are correctly initialised.
1737 */ 1737 */
1738 pxafb_check_var(&fbi->fb.var, &fbi->fb); 1738 ret = pxafb_check_var(&fbi->fb.var, &fbi->fb);
1739 pxafb_set_par(&fbi->fb); 1739 if (ret) {
1740 dev_err(&dev->dev, "failed to get suitable mode\n");
1741 goto failed_free_irq;
1742 }
1743
1744 ret = pxafb_set_par(&fbi->fb);
1745 if (ret) {
1746 dev_err(&dev->dev, "Failed to set parameters\n");
1747 goto failed_free_irq;
1748 }
1740 1749
1741 platform_set_drvdata(dev, fbi); 1750 platform_set_drvdata(dev, fbi);
1742 1751
@@ -1744,7 +1753,7 @@ static int __init pxafb_probe(struct platform_device *dev)
1744 if (ret < 0) { 1753 if (ret < 0) {
1745 dev_err(&dev->dev, 1754 dev_err(&dev->dev,
1746 "Failed to register framebuffer device: %d\n", ret); 1755 "Failed to register framebuffer device: %d\n", ret);
1747 goto failed_free_irq; 1756 goto failed_free_cmap;
1748 } 1757 }
1749 1758
1750#ifdef CONFIG_CPU_FREQ 1759#ifdef CONFIG_CPU_FREQ
@@ -1763,18 +1772,23 @@ static int __init pxafb_probe(struct platform_device *dev)
1763 1772
1764 return 0; 1773 return 0;
1765 1774
1775failed_free_cmap:
1776 if (fbi->fb.cmap.len)
1777 fb_dealloc_cmap(&fbi->fb.cmap);
1766failed_free_irq: 1778failed_free_irq:
1767 free_irq(irq, fbi); 1779 free_irq(irq, fbi);
1768failed_free_res:
1769 release_mem_region(r->start, r->end - r->start + 1);
1770failed_free_io:
1771 iounmap(fbi->mmio_base);
1772failed_free_mem: 1780failed_free_mem:
1773 dma_free_writecombine(&dev->dev, fbi->map_size, 1781 dma_free_writecombine(&dev->dev, fbi->map_size,
1774 fbi->map_cpu, fbi->map_dma); 1782 fbi->map_cpu, fbi->map_dma);
1775failed: 1783failed_free_io:
1784 iounmap(fbi->mmio_base);
1785failed_free_res:
1786 release_mem_region(r->start, r->end - r->start + 1);
1787failed_fbi:
1788 clk_put(fbi->clk);
1776 platform_set_drvdata(dev, NULL); 1789 platform_set_drvdata(dev, NULL);
1777 kfree(fbi); 1790 kfree(fbi);
1791failed:
1778 return ret; 1792 return ret;
1779} 1793}
1780 1794
@@ -1787,7 +1801,7 @@ static struct platform_driver pxafb_driver = {
1787 }, 1801 },
1788}; 1802};
1789 1803
1790static int __devinit pxafb_init(void) 1804static int __init pxafb_init(void)
1791{ 1805{
1792 if (pxafb_setup_options()) 1806 if (pxafb_setup_options())
1793 return -EINVAL; 1807 return -EINVAL;
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/buffer.c b/fs/buffer.c
index a073f3f4f013..0f51c0f7c266 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -821,7 +821,7 @@ static int fsync_buffers_list(spinlock_t *lock, struct list_head *list)
821 * contents - it is a noop if I/O is still in 821 * contents - it is a noop if I/O is still in
822 * flight on potentially older contents. 822 * flight on potentially older contents.
823 */ 823 */
824 ll_rw_block(SWRITE, 1, &bh); 824 ll_rw_block(SWRITE_SYNC, 1, &bh);
825 brelse(bh); 825 brelse(bh);
826 spin_lock(lock); 826 spin_lock(lock);
827 } 827 }
@@ -2940,16 +2940,19 @@ void ll_rw_block(int rw, int nr, struct buffer_head *bhs[])
2940 for (i = 0; i < nr; i++) { 2940 for (i = 0; i < nr; i++) {
2941 struct buffer_head *bh = bhs[i]; 2941 struct buffer_head *bh = bhs[i];
2942 2942
2943 if (rw == SWRITE) 2943 if (rw == SWRITE || rw == SWRITE_SYNC)
2944 lock_buffer(bh); 2944 lock_buffer(bh);
2945 else if (test_set_buffer_locked(bh)) 2945 else if (test_set_buffer_locked(bh))
2946 continue; 2946 continue;
2947 2947
2948 if (rw == WRITE || rw == SWRITE) { 2948 if (rw == WRITE || rw == SWRITE || rw == SWRITE_SYNC) {
2949 if (test_clear_buffer_dirty(bh)) { 2949 if (test_clear_buffer_dirty(bh)) {
2950 bh->b_end_io = end_buffer_write_sync; 2950 bh->b_end_io = end_buffer_write_sync;
2951 get_bh(bh); 2951 get_bh(bh);
2952 submit_bh(WRITE, bh); 2952 if (rw == SWRITE_SYNC)
2953 submit_bh(WRITE_SYNC, bh);
2954 else
2955 submit_bh(WRITE, bh);
2953 continue; 2956 continue;
2954 } 2957 }
2955 } else { 2958 } else {
@@ -2978,7 +2981,7 @@ int sync_dirty_buffer(struct buffer_head *bh)
2978 if (test_clear_buffer_dirty(bh)) { 2981 if (test_clear_buffer_dirty(bh)) {
2979 get_bh(bh); 2982 get_bh(bh);
2980 bh->b_end_io = end_buffer_write_sync; 2983 bh->b_end_io = end_buffer_write_sync;
2981 ret = submit_bh(WRITE, bh); 2984 ret = submit_bh(WRITE_SYNC, bh);
2982 wait_on_buffer(bh); 2985 wait_on_buffer(bh);
2983 if (buffer_eopnotsupp(bh)) { 2986 if (buffer_eopnotsupp(bh)) {
2984 clear_buffer_eopnotsupp(bh); 2987 clear_buffer_eopnotsupp(bh);
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/resize.c b/fs/ext4/resize.c
index 9ecb92f68543..9ff7b1c04239 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -855,7 +855,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
855 */ 855 */
856 856
857 /* Update group descriptor block for new group */ 857 /* Update group descriptor block for new group */
858 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));
859 860
860 ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */ 861 ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */
861 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/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/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/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/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-blackfin/mach-bf527/bfin_serial_5xx.h b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
index 96bd09e31e36..2526b6ed6faa 100644
--- a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
@@ -96,7 +96,7 @@ struct bfin_serial_port {
96 struct work_struct tx_dma_workqueue; 96 struct work_struct tx_dma_workqueue;
97#endif 97#endif
98#ifdef CONFIG_SERIAL_BFIN_CTSRTS 98#ifdef CONFIG_SERIAL_BFIN_CTSRTS
99 struct work_struct cts_workqueue; 99 struct timer_list cts_timer;
100 int cts_pin; 100 int cts_pin;
101 int rts_pin; 101 int rts_pin;
102#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 e924569ad1d8..ebf592b59aab 100644
--- a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
@@ -88,7 +88,7 @@ struct bfin_serial_port {
88# endif 88# endif
89#endif 89#endif
90#ifdef CONFIG_SERIAL_BFIN_CTSRTS 90#ifdef CONFIG_SERIAL_BFIN_CTSRTS
91 struct work_struct cts_workqueue; 91 struct timer_list cts_timer;
92 int cts_pin; 92 int cts_pin;
93 int rts_pin; 93 int rts_pin;
94#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 41d7b6490bb1..1bf56ffa22f9 100644
--- a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
@@ -96,7 +96,7 @@ struct bfin_serial_port {
96 struct work_struct tx_dma_workqueue; 96 struct work_struct tx_dma_workqueue;
97#endif 97#endif
98#ifdef CONFIG_SERIAL_BFIN_CTSRTS 98#ifdef CONFIG_SERIAL_BFIN_CTSRTS
99 struct work_struct cts_workqueue; 99 struct timer_list cts_timer;
100 int cts_pin; 100 int cts_pin;
101 int rts_pin; 101 int rts_pin;
102#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 59b4ad4e5b4a..5e29446a8e03 100644
--- a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
@@ -99,7 +99,7 @@ struct bfin_serial_port {
99 struct work_struct tx_dma_workqueue; 99 struct work_struct tx_dma_workqueue;
100#endif 100#endif
101#ifdef CONFIG_SERIAL_BFIN_CTSRTS 101#ifdef CONFIG_SERIAL_BFIN_CTSRTS
102 struct work_struct cts_workqueue; 102 struct timer_list cts_timer;
103 int cts_pin; 103 int cts_pin;
104 int rts_pin; 104 int rts_pin;
105#endif 105#endif
@@ -187,7 +187,7 @@ static void bfin_serial_hw_init(struct bfin_serial_port *uart)
187 187
188#ifdef CONFIG_BFIN_UART1_CTSRTS 188#ifdef CONFIG_BFIN_UART1_CTSRTS
189 peripheral_request(P_UART1_RTS, DRIVER_NAME); 189 peripheral_request(P_UART1_RTS, DRIVER_NAME);
190 peripheral_request(P_UART1_CTS DRIVER_NAME); 190 peripheral_request(P_UART1_CTS, DRIVER_NAME);
191#endif 191#endif
192#endif 192#endif
193 193
@@ -202,7 +202,7 @@ static void bfin_serial_hw_init(struct bfin_serial_port *uart)
202 202
203#ifdef CONFIG_BFIN_UART3_CTSRTS 203#ifdef CONFIG_BFIN_UART3_CTSRTS
204 peripheral_request(P_UART3_RTS, DRIVER_NAME); 204 peripheral_request(P_UART3_RTS, DRIVER_NAME);
205 peripheral_request(P_UART3_CTS DRIVER_NAME); 205 peripheral_request(P_UART3_CTS, DRIVER_NAME);
206#endif 206#endif
207#endif 207#endif
208 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 30d90b580f18..8aa02780e642 100644
--- a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
+++ b/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
@@ -88,7 +88,7 @@ struct bfin_serial_port {
88# endif 88# endif
89#endif 89#endif
90#ifdef CONFIG_SERIAL_BFIN_CTSRTS 90#ifdef CONFIG_SERIAL_BFIN_CTSRTS
91 struct work_struct cts_workqueue; 91 struct timer_list cts_timer;
92 int cts_pin; 92 int cts_pin;
93 int rts_pin; 93 int rts_pin;
94#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-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-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/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 2b6559a6d113..5235f875b932 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-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/msr.h b/include/asm-x86/msr.h
index 3707650a169b..2b5f2c91db25 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -18,7 +18,7 @@ static inline unsigned long long native_read_tscp(unsigned int *aux)
18 unsigned long low, high; 18 unsigned long low, high;
19 asm volatile(".byte 0x0f,0x01,0xf9" 19 asm volatile(".byte 0x0f,0x01,0xf9"
20 : "=a" (low), "=d" (high), "=c" (*aux)); 20 : "=a" (low), "=d" (high), "=c" (*aux));
21 return low | ((u64)high >> 32); 21 return low | ((u64)high << 32);
22} 22}
23 23
24/* 24/*
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/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..d8e2762ed14d 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -83,6 +83,7 @@ extern int dir_notify_enable;
83#define READ_SYNC (READ | (1 << BIO_RW_SYNC)) 83#define READ_SYNC (READ | (1 << BIO_RW_SYNC))
84#define READ_META (READ | (1 << BIO_RW_META)) 84#define READ_META (READ | (1 << BIO_RW_META))
85#define WRITE_SYNC (WRITE | (1 << BIO_RW_SYNC)) 85#define WRITE_SYNC (WRITE | (1 << BIO_RW_SYNC))
86#define SWRITE_SYNC (SWRITE | (1 << BIO_RW_SYNC))
86#define WRITE_BARRIER ((1 << BIO_RW) | (1 << BIO_RW_BARRIER)) 87#define WRITE_BARRIER ((1 << BIO_RW) | (1 << BIO_RW_BARRIER))
87 88
88#define SEL_IN 1 89#define SEL_IN 1
@@ -894,8 +895,6 @@ static inline int file_check_writeable(struct file *filp)
894typedef struct files_struct *fl_owner_t; 895typedef struct files_struct *fl_owner_t;
895 896
896struct file_lock_operations { 897struct 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 *); 898 void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
900 void (*fl_release_private)(struct file_lock *); 899 void (*fl_release_private)(struct file_lock *);
901}; 900};
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index fb9af6a0fe9c..8dc730132192 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -171,7 +171,7 @@ struct i2c_client {
171 struct i2c_adapter *adapter; /* the adapter we sit on */ 171 struct i2c_adapter *adapter; /* the adapter we sit on */
172 struct i2c_driver *driver; /* and our access routines */ 172 struct i2c_driver *driver; /* and our access routines */
173 struct device dev; /* the device structure */ 173 struct device dev; /* the device structure */
174 int irq; /* irq issued by device (or -1) */ 174 int irq; /* irq issued by device */
175 struct list_head list; /* DEPRECATED */ 175 struct list_head list; /* DEPRECATED */
176 struct completion released; 176 struct completion released;
177}; 177};
diff --git a/include/linux/input.h b/include/linux/input.h
index e075c4b762fb..d150c57e5f0a 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -534,8 +534,8 @@ struct input_absinfo {
534 534
535#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ 535#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */
536#define KEY_FRAMEFORWARD 0x1b5 536#define KEY_FRAMEFORWARD 0x1b5
537
538#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ 537#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */
538#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */
539 539
540#define KEY_DEL_EOL 0x1c0 540#define KEY_DEL_EOL 0x1c0
541#define KEY_DEL_EOS 0x1c1 541#define KEY_DEL_EOS 0x1c1
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 092b1b25291d..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;
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/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/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/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/mac80211.h b/include/net/mac80211.h
index a7044958c75f..3a204acad901 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -557,6 +557,15 @@ enum ieee80211_key_alg {
557 ALG_CCMP, 557 ALG_CCMP,
558}; 558};
559 559
560/**
561 * enum ieee80211_key_len - key length
562 * @WEP40: WEP 5 byte long key
563 * @WEP104: WEP 13 byte long key
564 */
565enum ieee80211_key_len {
566 LEN_WEP40 = 5,
567 LEN_WEP104 = 13,
568};
560 569
561/** 570/**
562 * enum ieee80211_key_flags - key flags 571 * enum ieee80211_key_flags - key flags
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index ab502ec1c61c..a87fc0312edc 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -178,7 +178,7 @@ extern struct Qdisc *qdisc_alloc(struct net_device *dev, struct Qdisc_ops *ops);
178extern struct Qdisc *qdisc_create_dflt(struct net_device *dev, 178extern struct Qdisc *qdisc_create_dflt(struct net_device *dev,
179 struct Qdisc_ops *ops, u32 parentid); 179 struct Qdisc_ops *ops, u32 parentid);
180extern void tcf_destroy(struct tcf_proto *tp); 180extern void tcf_destroy(struct tcf_proto *tp);
181extern void tcf_destroy_chain(struct tcf_proto *fl); 181extern void tcf_destroy_chain(struct tcf_proto **fl);
182 182
183static inline int __qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch, 183static inline int __qdisc_enqueue_tail(struct sk_buff *skb, struct Qdisc *sch,
184 struct sk_buff_head *list) 184 struct sk_buff_head *list)
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/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/rcuclassic.c b/kernel/rcuclassic.c
index f4ffbd0f306f..a38895a5b8e2 100644
--- a/kernel/rcuclassic.c
+++ b/kernel/rcuclassic.c
@@ -89,8 +89,22 @@ static void force_quiescent_state(struct rcu_data *rdp,
89 /* 89 /*
90 * Don't send IPI to itself. With irqs disabled, 90 * Don't send IPI to itself. With irqs disabled,
91 * rdp->cpu is the current cpu. 91 * rdp->cpu is the current cpu.
92 *
93 * cpu_online_map is updated by the _cpu_down()
94 * using stop_machine_run(). Since we're in irqs disabled
95 * section, stop_machine_run() is not exectuting, hence
96 * the cpu_online_map is stable.
97 *
98 * However, a cpu might have been offlined _just_ before
99 * we disabled irqs while entering here.
100 * And rcu subsystem might not yet have handled the CPU_DEAD
101 * notification, leading to the offlined cpu's bit
102 * being set in the rcp->cpumask.
103 *
104 * Hence cpumask = (rcp->cpumask & cpu_online_map) to prevent
105 * sending smp_reschedule() to an offlined CPU.
92 */ 106 */
93 cpumask = rcp->cpumask; 107 cpus_and(cpumask, rcp->cpumask, cpu_online_map);
94 cpu_clear(rdp->cpu, cpumask); 108 cpu_clear(rdp->cpu, cpumask);
95 for_each_cpu_mask(cpu, cpumask) 109 for_each_cpu_mask(cpu, cpumask)
96 smp_send_reschedule(cpu); 110 smp_send_reschedule(cpu);
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 eaf6751e7612..94ead43eda62 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1127,6 +1127,7 @@ static enum hrtimer_restart hrtick(struct hrtimer *timer)
1127 return HRTIMER_NORESTART; 1127 return HRTIMER_NORESTART;
1128} 1128}
1129 1129
1130#ifdef CONFIG_SMP
1130static void hotplug_hrtick_disable(int cpu) 1131static void hotplug_hrtick_disable(int cpu)
1131{ 1132{
1132 struct rq *rq = cpu_rq(cpu); 1133 struct rq *rq = cpu_rq(cpu);
@@ -1182,6 +1183,7 @@ static void init_hrtick(void)
1182{ 1183{
1183 hotcpu_notifier(hotplug_hrtick, 0); 1184 hotcpu_notifier(hotplug_hrtick, 0);
1184} 1185}
1186#endif /* CONFIG_SMP */
1185 1187
1186static void init_rq_hrtick(struct rq *rq) 1188static void init_rq_hrtick(struct rq *rq)
1187{ 1189{
@@ -4396,22 +4398,20 @@ do_wait_for_common(struct completion *x, long timeout, int state)
4396 signal_pending(current)) || 4398 signal_pending(current)) ||
4397 (state == TASK_KILLABLE && 4399 (state == TASK_KILLABLE &&
4398 fatal_signal_pending(current))) { 4400 fatal_signal_pending(current))) {
4399 __remove_wait_queue(&x->wait, &wait); 4401 timeout = -ERESTARTSYS;
4400 return -ERESTARTSYS; 4402 break;
4401 } 4403 }
4402 __set_current_state(state); 4404 __set_current_state(state);
4403 spin_unlock_irq(&x->wait.lock); 4405 spin_unlock_irq(&x->wait.lock);
4404 timeout = schedule_timeout(timeout); 4406 timeout = schedule_timeout(timeout);
4405 spin_lock_irq(&x->wait.lock); 4407 spin_lock_irq(&x->wait.lock);
4406 if (!timeout) { 4408 } while (!x->done && timeout);
4407 __remove_wait_queue(&x->wait, &wait);
4408 return timeout;
4409 }
4410 } while (!x->done);
4411 __remove_wait_queue(&x->wait, &wait); 4409 __remove_wait_queue(&x->wait, &wait);
4410 if (!x->done)
4411 return timeout;
4412 } 4412 }
4413 x->done--; 4413 x->done--;
4414 return timeout; 4414 return timeout ?: 1;
4415} 4415}
4416 4416
4417static long __sched 4417static long __sched
@@ -5887,6 +5887,7 @@ static void migrate_dead_tasks(unsigned int dead_cpu)
5887 next = pick_next_task(rq, rq->curr); 5887 next = pick_next_task(rq, rq->curr);
5888 if (!next) 5888 if (!next)
5889 break; 5889 break;
5890 next->sched_class->put_prev_task(rq, next);
5890 migrate_dead(dead_cpu, next); 5891 migrate_dead(dead_cpu, next);
5891 5892
5892 } 5893 }
@@ -6877,7 +6878,12 @@ static int default_relax_domain_level = -1;
6877 6878
6878static int __init setup_relax_domain_level(char *str) 6879static int __init setup_relax_domain_level(char *str)
6879{ 6880{
6880 default_relax_domain_level = simple_strtoul(str, NULL, 0); 6881 unsigned long val;
6882
6883 val = simple_strtoul(str, NULL, 0);
6884 if (val < SD_LV_MAX)
6885 default_relax_domain_level = val;
6886
6881 return 1; 6887 return 1;
6882} 6888}
6883__setup("relax_domain_level=", setup_relax_domain_level); 6889__setup("relax_domain_level=", setup_relax_domain_level);
@@ -7236,6 +7242,18 @@ void __attribute__((weak)) arch_update_cpu_topology(void)
7236} 7242}
7237 7243
7238/* 7244/*
7245 * Free current domain masks.
7246 * Called after all cpus are attached to NULL domain.
7247 */
7248static void free_sched_domains(void)
7249{
7250 ndoms_cur = 0;
7251 if (doms_cur != &fallback_doms)
7252 kfree(doms_cur);
7253 doms_cur = &fallback_doms;
7254}
7255
7256/*
7239 * Set up scheduler domains and groups. Callers must hold the hotplug lock. 7257 * Set up scheduler domains and groups. Callers must hold the hotplug lock.
7240 * For now this just excludes isolated cpus, but could be used to 7258 * For now this just excludes isolated cpus, but could be used to
7241 * exclude other special cases in the future. 7259 * exclude other special cases in the future.
@@ -7382,6 +7400,7 @@ int arch_reinit_sched_domains(void)
7382 get_online_cpus(); 7400 get_online_cpus();
7383 mutex_lock(&sched_domains_mutex); 7401 mutex_lock(&sched_domains_mutex);
7384 detach_destroy_domains(&cpu_online_map); 7402 detach_destroy_domains(&cpu_online_map);
7403 free_sched_domains();
7385 err = arch_init_sched_domains(&cpu_online_map); 7404 err = arch_init_sched_domains(&cpu_online_map);
7386 mutex_unlock(&sched_domains_mutex); 7405 mutex_unlock(&sched_domains_mutex);
7387 put_online_cpus(); 7406 put_online_cpus();
@@ -7467,6 +7486,7 @@ static int update_sched_domains(struct notifier_block *nfb,
7467 case CPU_DOWN_PREPARE: 7486 case CPU_DOWN_PREPARE:
7468 case CPU_DOWN_PREPARE_FROZEN: 7487 case CPU_DOWN_PREPARE_FROZEN:
7469 detach_destroy_domains(&cpu_online_map); 7488 detach_destroy_domains(&cpu_online_map);
7489 free_sched_domains();
7470 return NOTIFY_OK; 7490 return NOTIFY_OK;
7471 7491
7472 case CPU_UP_CANCELED: 7492 case CPU_UP_CANCELED:
@@ -7485,8 +7505,16 @@ static int update_sched_domains(struct notifier_block *nfb,
7485 return NOTIFY_DONE; 7505 return NOTIFY_DONE;
7486 } 7506 }
7487 7507
7508#ifndef CONFIG_CPUSETS
7509 /*
7510 * Create default domain partitioning if cpusets are disabled.
7511 * Otherwise we let cpusets rebuild the domains based on the
7512 * current setup.
7513 */
7514
7488 /* The hotplug lock is already held by cpu_up/cpu_down */ 7515 /* The hotplug lock is already held by cpu_up/cpu_down */
7489 arch_init_sched_domains(&cpu_online_map); 7516 arch_init_sched_domains(&cpu_online_map);
7517#endif
7490 7518
7491 return NOTIFY_OK; 7519 return NOTIFY_OK;
7492} 7520}
@@ -7626,7 +7654,6 @@ static void init_tg_rt_entry(struct task_group *tg, struct rt_rq *rt_rq,
7626 else 7654 else
7627 rt_se->rt_rq = parent->my_q; 7655 rt_se->rt_rq = parent->my_q;
7628 7656
7629 rt_se->rt_rq = &rq->rt;
7630 rt_se->my_q = rt_rq; 7657 rt_se->my_q = rt_rq;
7631 rt_se->parent = parent; 7658 rt_se->parent = parent;
7632 INIT_LIST_HEAD(&rt_se->run_list); 7659 INIT_LIST_HEAD(&rt_se->run_list);
@@ -8348,7 +8375,7 @@ static unsigned long to_ratio(u64 period, u64 runtime)
8348#ifdef CONFIG_CGROUP_SCHED 8375#ifdef CONFIG_CGROUP_SCHED
8349static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime) 8376static int __rt_schedulable(struct task_group *tg, u64 period, u64 runtime)
8350{ 8377{
8351 struct task_group *tgi, *parent = tg->parent; 8378 struct task_group *tgi, *parent = tg ? tg->parent : NULL;
8352 unsigned long total = 0; 8379 unsigned long total = 0;
8353 8380
8354 if (!parent) { 8381 if (!parent) {
@@ -8475,6 +8502,9 @@ int sched_group_set_rt_period(struct task_group *tg, long rt_period_us)
8475 rt_period = (u64)rt_period_us * NSEC_PER_USEC; 8502 rt_period = (u64)rt_period_us * NSEC_PER_USEC;
8476 rt_runtime = tg->rt_bandwidth.rt_runtime; 8503 rt_runtime = tg->rt_bandwidth.rt_runtime;
8477 8504
8505 if (rt_period == 0)
8506 return -EINVAL;
8507
8478 return tg_set_bandwidth(tg, rt_period, rt_runtime); 8508 return tg_set_bandwidth(tg, rt_period, rt_runtime);
8479} 8509}
8480 8510
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/debugobjects.c b/lib/debugobjects.c
index a76a5e122ae1..85b18d79be89 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -68,6 +68,7 @@ static int fill_pool(void)
68{ 68{
69 gfp_t gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN; 69 gfp_t gfp = GFP_ATOMIC | __GFP_NORETRY | __GFP_NOWARN;
70 struct debug_obj *new; 70 struct debug_obj *new;
71 unsigned long flags;
71 72
72 if (likely(obj_pool_free >= ODEBUG_POOL_MIN_LEVEL)) 73 if (likely(obj_pool_free >= ODEBUG_POOL_MIN_LEVEL))
73 return obj_pool_free; 74 return obj_pool_free;
@@ -81,10 +82,10 @@ static int fill_pool(void)
81 if (!new) 82 if (!new)
82 return obj_pool_free; 83 return obj_pool_free;
83 84
84 spin_lock(&pool_lock); 85 spin_lock_irqsave(&pool_lock, flags);
85 hlist_add_head(&new->node, &obj_pool); 86 hlist_add_head(&new->node, &obj_pool);
86 obj_pool_free++; 87 obj_pool_free++;
87 spin_unlock(&pool_lock); 88 spin_unlock_irqrestore(&pool_lock, flags);
88 } 89 }
89 return obj_pool_free; 90 return obj_pool_free;
90} 91}
@@ -110,16 +111,13 @@ static struct debug_obj *lookup_object(void *addr, struct debug_bucket *b)
110} 111}
111 112
112/* 113/*
113 * Allocate a new object. If the pool is empty and no refill possible, 114 * Allocate a new object. If the pool is empty, switch off the debugger.
114 * switch off the debugger.
115 */ 115 */
116static struct debug_obj * 116static struct debug_obj *
117alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr) 117alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
118{ 118{
119 struct debug_obj *obj = NULL; 119 struct debug_obj *obj = NULL;
120 int retry = 0;
121 120
122repeat:
123 spin_lock(&pool_lock); 121 spin_lock(&pool_lock);
124 if (obj_pool.first) { 122 if (obj_pool.first) {
125 obj = hlist_entry(obj_pool.first, typeof(*obj), node); 123 obj = hlist_entry(obj_pool.first, typeof(*obj), node);
@@ -141,9 +139,6 @@ repeat:
141 } 139 }
142 spin_unlock(&pool_lock); 140 spin_unlock(&pool_lock);
143 141
144 if (fill_pool() && !obj && !retry++)
145 goto repeat;
146
147 return obj; 142 return obj;
148} 143}
149 144
@@ -261,6 +256,8 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack)
261 struct debug_obj *obj; 256 struct debug_obj *obj;
262 unsigned long flags; 257 unsigned long flags;
263 258
259 fill_pool();
260
264 db = get_bucket((unsigned long) addr); 261 db = get_bucket((unsigned long) addr);
265 262
266 spin_lock_irqsave(&db->lock, flags); 263 spin_lock_irqsave(&db->lock, flags);
diff --git a/lib/ts_bm.c b/lib/ts_bm.c
index d90822c378a4..4a7fce72898e 100644
--- a/lib/ts_bm.c
+++ b/lib/ts_bm.c
@@ -63,7 +63,7 @@ static unsigned int bm_find(struct ts_config *conf, struct ts_state *state)
63 struct ts_bm *bm = ts_config_priv(conf); 63 struct ts_bm *bm = ts_config_priv(conf);
64 unsigned int i, text_len, consumed = state->offset; 64 unsigned int i, text_len, consumed = state->offset;
65 const u8 *text; 65 const u8 *text;
66 int shift = bm->patlen, bs; 66 int shift = bm->patlen - 1, bs;
67 67
68 for (;;) { 68 for (;;) {
69 text_len = conf->get_next_block(consumed, &text, conf, state); 69 text_len = conf->get_next_block(consumed, &text, conf, state);
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/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/net/bridge/br_if.c b/net/bridge/br_if.c
index 832a561500d9..497df086141a 100644
--- a/net/bridge/br_if.c
+++ b/net/bridge/br_if.c
@@ -441,12 +441,16 @@ int br_del_if(struct net_bridge *br, struct net_device *dev)
441 441
442void __exit br_cleanup_bridges(void) 442void __exit br_cleanup_bridges(void)
443{ 443{
444 struct net_device *dev, *nxt; 444 struct net_device *dev;
445 445
446 rtnl_lock(); 446 rtnl_lock();
447 for_each_netdev_safe(&init_net, dev, nxt) 447restart:
448 if (dev->priv_flags & IFF_EBRIDGE) 448 for_each_netdev(&init_net, dev) {
449 if (dev->priv_flags & IFF_EBRIDGE) {
449 del_br(dev->priv); 450 del_br(dev->priv);
451 goto restart;
452 }
453 }
450 rtnl_unlock(); 454 rtnl_unlock();
451 455
452} 456}
diff --git a/net/core/dev.c b/net/core/dev.c
index 472676dd550e..bfa9a6a951dd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -455,7 +455,7 @@ static int netdev_boot_setup_add(char *name, struct ifmap *map)
455 for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++) { 455 for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++) {
456 if (s[i].name[0] == '\0' || s[i].name[0] == ' ') { 456 if (s[i].name[0] == '\0' || s[i].name[0] == ' ') {
457 memset(s[i].name, 0, sizeof(s[i].name)); 457 memset(s[i].name, 0, sizeof(s[i].name));
458 strcpy(s[i].name, name); 458 strlcpy(s[i].name, name, IFNAMSIZ);
459 memcpy(&s[i].map, map, sizeof(s[i].map)); 459 memcpy(&s[i].map, map, sizeof(s[i].map));
460 break; 460 break;
461 } 461 }
@@ -480,7 +480,7 @@ int netdev_boot_setup_check(struct net_device *dev)
480 480
481 for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++) { 481 for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++) {
482 if (s[i].name[0] != '\0' && s[i].name[0] != ' ' && 482 if (s[i].name[0] != '\0' && s[i].name[0] != ' ' &&
483 !strncmp(dev->name, s[i].name, strlen(s[i].name))) { 483 !strcmp(dev->name, s[i].name)) {
484 dev->irq = s[i].map.irq; 484 dev->irq = s[i].map.irq;
485 dev->base_addr = s[i].map.base_addr; 485 dev->base_addr = s[i].map.base_addr;
486 dev->mem_start = s[i].map.mem_start; 486 dev->mem_start = s[i].map.mem_start;
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 1c2943a119f3..79de3b14a8d1 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -226,7 +226,7 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
226 226
227 ops = lookup_rules_ops(net, frh->family); 227 ops = lookup_rules_ops(net, frh->family);
228 if (ops == NULL) { 228 if (ops == NULL) {
229 err = EAFNOSUPPORT; 229 err = -EAFNOSUPPORT;
230 goto errout; 230 goto errout;
231 } 231 }
232 232
@@ -365,7 +365,7 @@ static int fib_nl_delrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg)
365 365
366 ops = lookup_rules_ops(net, frh->family); 366 ops = lookup_rules_ops(net, frh->family);
367 if (ops == NULL) { 367 if (ops == NULL) {
368 err = EAFNOSUPPORT; 368 err = -EAFNOSUPPORT;
369 goto errout; 369 goto errout;
370 } 370 }
371 371
diff --git a/net/core/filter.c b/net/core/filter.c
index 4f8369729a4e..df3744355839 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -68,7 +68,6 @@ static inline void *load_pointer(struct sk_buff *skb, int k,
68 * sk_filter - run a packet through a socket filter 68 * sk_filter - run a packet through a socket filter
69 * @sk: sock associated with &sk_buff 69 * @sk: sock associated with &sk_buff
70 * @skb: buffer to filter 70 * @skb: buffer to filter
71 * @needlock: set to 1 if the sock is not locked by caller.
72 * 71 *
73 * Run the filter code and then cut skb->data to correct size returned by 72 * Run the filter code and then cut skb->data to correct size returned by
74 * sk_run_filter. If pkt_len is 0 we toss packet. If skb->len is smaller 73 * sk_run_filter. If pkt_len is 0 we toss packet. If skb->len is smaller
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index c66ac83316e8..56a133c61452 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -253,6 +253,7 @@
253#include <linux/init.h> 253#include <linux/init.h>
254#include <linux/fs.h> 254#include <linux/fs.h>
255#include <linux/skbuff.h> 255#include <linux/skbuff.h>
256#include <linux/scatterlist.h>
256#include <linux/splice.h> 257#include <linux/splice.h>
257#include <linux/net.h> 258#include <linux/net.h>
258#include <linux/socket.h> 259#include <linux/socket.h>
@@ -1206,7 +1207,8 @@ int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
1206 return -ENOTCONN; 1207 return -ENOTCONN;
1207 while ((skb = tcp_recv_skb(sk, seq, &offset)) != NULL) { 1208 while ((skb = tcp_recv_skb(sk, seq, &offset)) != NULL) {
1208 if (offset < skb->len) { 1209 if (offset < skb->len) {
1209 size_t used, len; 1210 int used;
1211 size_t len;
1210 1212
1211 len = skb->len - offset; 1213 len = skb->len - offset;
1212 /* Stop reading if we hit a patch of urgent data */ 1214 /* Stop reading if we hit a patch of urgent data */
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index df0531c28141..1babb979fe00 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -95,6 +95,13 @@ static int ieee80211_set_encryption(struct net_device *dev, u8 *sta_addr,
95 } 95 }
96 } 96 }
97 97
98 if (alg == ALG_WEP &&
99 key_len != LEN_WEP40 && key_len != LEN_WEP104) {
100 ieee80211_key_free(key);
101 err = -EINVAL;
102 goto out_unlock;
103 }
104
98 ieee80211_key_link(key, sdata, sta); 105 ieee80211_key_link(key, sdata, sta);
99 106
100 if (set_tx_key || (!sta && !sdata->default_key && key)) 107 if (set_tx_key || (!sta && !sdata->default_key && key))
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index f23b5a4d4ac9..ffe1af82fa4d 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -308,8 +308,7 @@ static void wme_qdiscop_destroy(struct Qdisc* qd)
308 struct ieee80211_hw *hw = &local->hw; 308 struct ieee80211_hw *hw = &local->hw;
309 int queue; 309 int queue;
310 310
311 tcf_destroy_chain(q->filter_list); 311 tcf_destroy_chain(&q->filter_list);
312 q->filter_list = NULL;
313 312
314 for (queue = 0; queue < QD_NUM(hw); queue++) { 313 for (queue = 0; queue < QD_NUM(hw); queue++) {
315 skb_queue_purge(&q->requeued[queue]); 314 skb_queue_purge(&q->requeued[queue]);
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c
index 8db13fba10bc..740acd6bc7d9 100644
--- a/net/netfilter/nf_conntrack_proto_tcp.c
+++ b/net/netfilter/nf_conntrack_proto_tcp.c
@@ -331,12 +331,13 @@ static unsigned int get_conntrack_index(const struct tcphdr *tcph)
331 331
332 I. Upper bound for valid data: seq <= sender.td_maxend 332 I. Upper bound for valid data: seq <= sender.td_maxend
333 II. Lower bound for valid data: seq + len >= sender.td_end - receiver.td_maxwin 333 II. Lower bound for valid data: seq + len >= sender.td_end - receiver.td_maxwin
334 III. Upper bound for valid ack: sack <= receiver.td_end 334 III. Upper bound for valid (s)ack: sack <= receiver.td_end
335 IV. Lower bound for valid ack: ack >= receiver.td_end - MAXACKWINDOW 335 IV. Lower bound for valid (s)ack: sack >= receiver.td_end - MAXACKWINDOW
336 336
337 where sack is the highest right edge of sack block found in the packet. 337 where sack is the highest right edge of sack block found in the packet
338 or ack in the case of packet without SACK option.
338 339
339 The upper bound limit for a valid ack is not ignored - 340 The upper bound limit for a valid (s)ack is not ignored -
340 we doesn't have to deal with fragments. 341 we doesn't have to deal with fragments.
341*/ 342*/
342 343
@@ -606,12 +607,12 @@ static bool tcp_in_window(const struct nf_conn *ct,
606 before(seq, sender->td_maxend + 1), 607 before(seq, sender->td_maxend + 1),
607 after(end, sender->td_end - receiver->td_maxwin - 1), 608 after(end, sender->td_end - receiver->td_maxwin - 1),
608 before(sack, receiver->td_end + 1), 609 before(sack, receiver->td_end + 1),
609 after(ack, receiver->td_end - MAXACKWINDOW(sender))); 610 after(sack, receiver->td_end - MAXACKWINDOW(sender) - 1));
610 611
611 if (before(seq, sender->td_maxend + 1) && 612 if (before(seq, sender->td_maxend + 1) &&
612 after(end, sender->td_end - receiver->td_maxwin - 1) && 613 after(end, sender->td_end - receiver->td_maxwin - 1) &&
613 before(sack, receiver->td_end + 1) && 614 before(sack, receiver->td_end + 1) &&
614 after(ack, receiver->td_end - MAXACKWINDOW(sender))) { 615 after(sack, receiver->td_end - MAXACKWINDOW(sender) - 1)) {
615 /* 616 /*
616 * Take into account window scaling (RFC 1323). 617 * Take into account window scaling (RFC 1323).
617 */ 618 */
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 6507c02dbe0d..98bfe277eab2 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -886,7 +886,7 @@ retry:
886 return netlink_unicast_kernel(sk, skb); 886 return netlink_unicast_kernel(sk, skb);
887 887
888 if (sk_filter(sk, skb)) { 888 if (sk_filter(sk, skb)) {
889 int err = skb->len; 889 err = skb->len;
890 kfree_skb(skb); 890 kfree_skb(skb);
891 sock_put(sk); 891 sock_put(sk);
892 return err; 892 return err;
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index c40773cdbe45..10f01ad04380 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1252,12 +1252,12 @@ void tcf_destroy(struct tcf_proto *tp)
1252 kfree(tp); 1252 kfree(tp);
1253} 1253}
1254 1254
1255void tcf_destroy_chain(struct tcf_proto *fl) 1255void tcf_destroy_chain(struct tcf_proto **fl)
1256{ 1256{
1257 struct tcf_proto *tp; 1257 struct tcf_proto *tp;
1258 1258
1259 while ((tp = fl) != NULL) { 1259 while ((tp = *fl) != NULL) {
1260 fl = tp->next; 1260 *fl = tp->next;
1261 tcf_destroy(tp); 1261 tcf_destroy(tp);
1262 } 1262 }
1263} 1263}
diff --git a/net/sched/sch_atm.c b/net/sched/sch_atm.c
index 335273416384..db0e23ae85f8 100644
--- a/net/sched/sch_atm.c
+++ b/net/sched/sch_atm.c
@@ -160,7 +160,7 @@ static void atm_tc_put(struct Qdisc *sch, unsigned long cl)
160 *prev = flow->next; 160 *prev = flow->next;
161 pr_debug("atm_tc_put: qdisc %p\n", flow->q); 161 pr_debug("atm_tc_put: qdisc %p\n", flow->q);
162 qdisc_destroy(flow->q); 162 qdisc_destroy(flow->q);
163 tcf_destroy_chain(flow->filter_list); 163 tcf_destroy_chain(&flow->filter_list);
164 if (flow->sock) { 164 if (flow->sock) {
165 pr_debug("atm_tc_put: f_count %d\n", 165 pr_debug("atm_tc_put: f_count %d\n",
166 file_count(flow->sock->file)); 166 file_count(flow->sock->file));
@@ -586,10 +586,11 @@ static void atm_tc_destroy(struct Qdisc *sch)
586 struct atm_flow_data *flow; 586 struct atm_flow_data *flow;
587 587
588 pr_debug("atm_tc_destroy(sch %p,[qdisc %p])\n", sch, p); 588 pr_debug("atm_tc_destroy(sch %p,[qdisc %p])\n", sch, p);
589 for (flow = p->flows; flow; flow = flow->next)
590 tcf_destroy_chain(&flow->filter_list);
591
589 /* races ? */ 592 /* races ? */
590 while ((flow = p->flows)) { 593 while ((flow = p->flows)) {
591 tcf_destroy_chain(flow->filter_list);
592 flow->filter_list = NULL;
593 if (flow->ref > 1) 594 if (flow->ref > 1)
594 printk(KERN_ERR "atm_destroy: %p->ref = %d\n", flow, 595 printk(KERN_ERR "atm_destroy: %p->ref = %d\n", flow,
595 flow->ref); 596 flow->ref);
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index 09969c1fbc08..2a3c97f7dc63 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -1704,7 +1704,7 @@ static void cbq_destroy_class(struct Qdisc *sch, struct cbq_class *cl)
1704 1704
1705 BUG_TRAP(!cl->filters); 1705 BUG_TRAP(!cl->filters);
1706 1706
1707 tcf_destroy_chain(cl->filter_list); 1707 tcf_destroy_chain(&cl->filter_list);
1708 qdisc_destroy(cl->q); 1708 qdisc_destroy(cl->q);
1709 qdisc_put_rtab(cl->R_tab); 1709 qdisc_put_rtab(cl->R_tab);
1710 gen_kill_estimator(&cl->bstats, &cl->rate_est); 1710 gen_kill_estimator(&cl->bstats, &cl->rate_est);
@@ -1728,10 +1728,8 @@ cbq_destroy(struct Qdisc* sch)
1728 * be bound to classes which have been destroyed already. --TGR '04 1728 * be bound to classes which have been destroyed already. --TGR '04
1729 */ 1729 */
1730 for (h = 0; h < 16; h++) { 1730 for (h = 0; h < 16; h++) {
1731 for (cl = q->classes[h]; cl; cl = cl->next) { 1731 for (cl = q->classes[h]; cl; cl = cl->next)
1732 tcf_destroy_chain(cl->filter_list); 1732 tcf_destroy_chain(&cl->filter_list);
1733 cl->filter_list = NULL;
1734 }
1735 } 1733 }
1736 for (h = 0; h < 16; h++) { 1734 for (h = 0; h < 16; h++) {
1737 struct cbq_class *next; 1735 struct cbq_class *next;
diff --git a/net/sched/sch_dsmark.c b/net/sched/sch_dsmark.c
index 64465bacbe79..c4c1317cd47d 100644
--- a/net/sched/sch_dsmark.c
+++ b/net/sched/sch_dsmark.c
@@ -416,7 +416,7 @@ static void dsmark_destroy(struct Qdisc *sch)
416 416
417 pr_debug("dsmark_destroy(sch %p,[qdisc %p])\n", sch, p); 417 pr_debug("dsmark_destroy(sch %p,[qdisc %p])\n", sch, p);
418 418
419 tcf_destroy_chain(p->filter_list); 419 tcf_destroy_chain(&p->filter_list);
420 qdisc_destroy(p->q); 420 qdisc_destroy(p->q);
421 kfree(p->mask); 421 kfree(p->mask);
422} 422}
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index fdfaa3fcc16d..e817aa00441d 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1123,7 +1123,7 @@ hfsc_destroy_class(struct Qdisc *sch, struct hfsc_class *cl)
1123{ 1123{
1124 struct hfsc_sched *q = qdisc_priv(sch); 1124 struct hfsc_sched *q = qdisc_priv(sch);
1125 1125
1126 tcf_destroy_chain(cl->filter_list); 1126 tcf_destroy_chain(&cl->filter_list);
1127 qdisc_destroy(cl->qdisc); 1127 qdisc_destroy(cl->qdisc);
1128 gen_kill_estimator(&cl->bstats, &cl->rate_est); 1128 gen_kill_estimator(&cl->bstats, &cl->rate_est);
1129 if (cl != &q->root) 1129 if (cl != &q->root)
@@ -1541,6 +1541,10 @@ hfsc_destroy_qdisc(struct Qdisc *sch)
1541 unsigned int i; 1541 unsigned int i;
1542 1542
1543 for (i = 0; i < HFSC_HSIZE; i++) { 1543 for (i = 0; i < HFSC_HSIZE; i++) {
1544 list_for_each_entry(cl, &q->clhash[i], hlist)
1545 tcf_destroy_chain(&cl->filter_list);
1546 }
1547 for (i = 0; i < HFSC_HSIZE; i++) {
1544 list_for_each_entry_safe(cl, next, &q->clhash[i], hlist) 1548 list_for_each_entry_safe(cl, next, &q->clhash[i], hlist)
1545 hfsc_destroy_class(sch, cl); 1549 hfsc_destroy_class(sch, cl);
1546 } 1550 }
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 2cef8f34b2cb..0284791169c9 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -1236,7 +1236,7 @@ static void htb_destroy_class(struct Qdisc *sch, struct htb_class *cl)
1236 qdisc_put_rtab(cl->rate); 1236 qdisc_put_rtab(cl->rate);
1237 qdisc_put_rtab(cl->ceil); 1237 qdisc_put_rtab(cl->ceil);
1238 1238
1239 tcf_destroy_chain(cl->filter_list); 1239 tcf_destroy_chain(&cl->filter_list);
1240 1240
1241 while (!list_empty(&cl->children)) 1241 while (!list_empty(&cl->children))
1242 htb_destroy_class(sch, list_entry(cl->children.next, 1242 htb_destroy_class(sch, list_entry(cl->children.next,
@@ -1265,7 +1265,7 @@ static void htb_destroy(struct Qdisc *sch)
1265 and surprisingly it worked in 2.4. But it must precede it 1265 and surprisingly it worked in 2.4. But it must precede it
1266 because filter need its target class alive to be able to call 1266 because filter need its target class alive to be able to call
1267 unbind_filter on it (without Oops). */ 1267 unbind_filter on it (without Oops). */
1268 tcf_destroy_chain(q->filter_list); 1268 tcf_destroy_chain(&q->filter_list);
1269 1269
1270 while (!list_empty(&q->root)) 1270 while (!list_empty(&q->root))
1271 htb_destroy_class(sch, list_entry(q->root.next, 1271 htb_destroy_class(sch, list_entry(q->root.next,
diff --git a/net/sched/sch_ingress.c b/net/sched/sch_ingress.c
index 274b1ddb160c..956c80ad5965 100644
--- a/net/sched/sch_ingress.c
+++ b/net/sched/sch_ingress.c
@@ -104,7 +104,7 @@ static void ingress_destroy(struct Qdisc *sch)
104{ 104{
105 struct ingress_qdisc_data *p = qdisc_priv(sch); 105 struct ingress_qdisc_data *p = qdisc_priv(sch);
106 106
107 tcf_destroy_chain(p->filter_list); 107 tcf_destroy_chain(&p->filter_list);
108} 108}
109 109
110static int ingress_dump(struct Qdisc *sch, struct sk_buff *skb) 110static int ingress_dump(struct Qdisc *sch, struct sk_buff *skb)
diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c
index 4aa2b45dad0a..5532f1031ab5 100644
--- a/net/sched/sch_prio.c
+++ b/net/sched/sch_prio.c
@@ -219,7 +219,7 @@ prio_destroy(struct Qdisc* sch)
219 int prio; 219 int prio;
220 struct prio_sched_data *q = qdisc_priv(sch); 220 struct prio_sched_data *q = qdisc_priv(sch);
221 221
222 tcf_destroy_chain(q->filter_list); 222 tcf_destroy_chain(&q->filter_list);
223 for (prio=0; prio<q->bands; prio++) 223 for (prio=0; prio<q->bands; prio++)
224 qdisc_destroy(q->queues[prio]); 224 qdisc_destroy(q->queues[prio]);
225} 225}
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
index f0463d757a98..6a97afbfb952 100644
--- a/net/sched/sch_sfq.c
+++ b/net/sched/sch_sfq.c
@@ -520,7 +520,7 @@ static void sfq_destroy(struct Qdisc *sch)
520{ 520{
521 struct sfq_sched_data *q = qdisc_priv(sch); 521 struct sfq_sched_data *q = qdisc_priv(sch);
522 522
523 tcf_destroy_chain(q->filter_list); 523 tcf_destroy_chain(&q->filter_list);
524 q->perturb_period = 0; 524 q->perturb_period = 0;
525 del_timer_sync(&q->perturb_timer); 525 del_timer_sync(&q->perturb_timer);
526} 526}
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/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 98778cb69c6e..1dcf9f3d1107 100644
--- a/virt/kvm/ioapic.c
+++ b/virt/kvm/ioapic.c
@@ -269,28 +269,9 @@ void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level)
269 } 269 }
270} 270}
271 271
272static int get_eoi_gsi(struct kvm_ioapic *ioapic, int vector) 272static void __kvm_ioapic_update_eoi(struct kvm_ioapic *ioapic, int gsi)
273{ 273{
274 int i;
275
276 for (i = 0; i < IOAPIC_NUM_PINS; i++)
277 if (ioapic->redirtbl[i].fields.vector == vector)
278 return i;
279 return -1;
280}
281
282void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
283{
284 struct kvm_ioapic *ioapic = kvm->arch.vioapic;
285 union ioapic_redir_entry *ent; 274 union ioapic_redir_entry *ent;
286 int gsi;
287
288 gsi = get_eoi_gsi(ioapic, vector);
289 if (gsi == -1) {
290 printk(KERN_WARNING "Can't find redir item for %d EOI\n",
291 vector);
292 return;
293 }
294 275
295 ent = &ioapic->redirtbl[gsi]; 276 ent = &ioapic->redirtbl[gsi];
296 ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG); 277 ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG);
@@ -300,6 +281,16 @@ void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
300 ioapic_deliver(ioapic, gsi); 281 ioapic_deliver(ioapic, gsi);
301} 282}
302 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
303static 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)
304{ 295{
305 struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private; 296 struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private;