aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DocBook/mtdnand.tmpl12
-rw-r--r--Documentation/IO-mapping.txt2
-rw-r--r--Documentation/PCI/PCI-DMA-mapping.txt (renamed from Documentation/DMA-mapping.txt)0
-rw-r--r--Documentation/block/00-INDEX2
-rw-r--r--Documentation/block/as-iosched.txt172
-rw-r--r--Documentation/block/biodoc.txt2
-rw-r--r--Documentation/filesystems/ext4.txt2
-rw-r--r--Documentation/filesystems/nilfs2.txt2
-rw-r--r--Documentation/kernel-parameters.txt5
-rw-r--r--Documentation/kvm/api.txt10
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt58
-rw-r--r--Documentation/sound/alsa/Procfile.txt2
-rw-r--r--Documentation/trace/ftrace-design.txt14
-rw-r--r--Documentation/trace/mmiotrace.txt15
-rw-r--r--Documentation/trace/tracepoint-analysis.txt60
-rw-r--r--Documentation/vgaarbiter.txt2
-rw-r--r--MAINTAINERS17
-rw-r--r--Makefile2
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/mach-davinci/board-dm355-evm.c1
-rw-r--r--arch/arm/mach-davinci/board-dm365-evm.c11
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c1
-rw-r--r--arch/arm/mach-davinci/cp_intc.c11
-rw-r--r--arch/arm/mach-davinci/devices-da8xx.c9
-rw-r--r--arch/arm/mach-davinci/dm365.c1
-rw-r--r--arch/arm/mach-mmp/ttc_dkb.c2
-rw-r--r--arch/arm/mach-mx2/mxt_td60.c24
-rw-r--r--arch/arm/mach-mx25/clock.c2
-rw-r--r--arch/arm/mach-mx25/devices.c19
-rw-r--r--arch/arm/mach-mx25/devices.h1
-rw-r--r--arch/arm/mach-mx25/mx25pdk.c46
-rw-r--r--arch/arm/mach-mx3/Kconfig3
-rw-r--r--arch/arm/mach-mx3/mm.c5
-rw-r--r--arch/arm/mach-mx3/mx31ads.c5
-rw-r--r--arch/arm/mach-mx3/mx31lite.c9
-rw-r--r--arch/arm/mach-mx3/mx31moboard-devboard.c2
-rw-r--r--arch/arm/mach-mx3/mx31moboard-marxbot.c2
-rw-r--r--arch/arm/mach-mx3/mx31moboard.c7
-rw-r--r--arch/arm/mach-mx3/mx31pdk.c5
-rw-r--r--arch/arm/mach-mx3/pcm037.c32
-rw-r--r--arch/arm/mach-pxa/Kconfig2
-rw-r--r--arch/arm/mach-pxa/include/mach/zylonite.h7
-rw-r--r--arch/arm/mach-pxa/littleton.c6
-rw-r--r--arch/arm/mach-pxa/poodle.c2
-rw-r--r--arch/arm/mach-pxa/zeus.c36
-rw-r--r--arch/arm/mach-pxa/zylonite.c87
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa300.c12
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa320.c4
-rw-r--r--arch/arm/mach-s3c2410/include/mach/ts.h21
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c3
-rw-r--r--arch/arm/mach-s3c2410/mach-h1940.c8
-rw-r--r--arch/arm/mach-s3c2440/mach-osiris.c2
-rw-r--r--arch/arm/mach-w90x900/include/mach/system.h15
-rw-r--r--arch/arm/mach-w90x900/time.c64
-rw-r--r--arch/arm/mm/tlb-v7.S1
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-mx25.h58
-rw-r--r--arch/arm/plat-mxc/include/mach/mx25.h4
-rw-r--r--arch/arm/plat-pxa/pwm.c8
-rw-r--r--arch/arm/plat-s3c/dev-nand.c4
-rw-r--r--arch/arm/plat-s3c/include/plat/devs.h1
-rw-r--r--arch/arm/plat-s3c24xx/devs.c18
-rw-r--r--arch/arm/plat-s3c24xx/s3c244x.c1
-rw-r--r--arch/blackfin/include/asm/page.h5
-rw-r--r--arch/frv/include/asm/page.h2
-rw-r--r--arch/ia64/kvm/vcpu.h9
-rw-r--r--arch/ia64/kvm/vmm.c4
-rw-r--r--arch/ia64/kvm/vtlb.c2
-rw-r--r--arch/powerpc/kernel/pci-common.c13
-rw-r--r--arch/powerpc/kvm/book3s_64_mmu.c22
-rw-r--r--arch/s390/defconfig86
-rw-r--r--arch/s390/include/asm/param.h28
-rw-r--r--arch/sh/Kconfig16
-rw-r--r--arch/sh/configs/ap325rxa_defconfig87
-rw-r--r--arch/sh/configs/cayman_defconfig168
-rw-r--r--arch/sh/configs/dreamcast_defconfig78
-rw-r--r--arch/sh/configs/ecovec24-romimage_defconfig76
-rw-r--r--arch/sh/configs/ecovec24_defconfig89
-rw-r--r--arch/sh/configs/edosk7705_defconfig49
-rw-r--r--arch/sh/configs/edosk7760_defconfig70
-rw-r--r--arch/sh/configs/espt_defconfig77
-rw-r--r--arch/sh/configs/hp6xx_defconfig70
-rw-r--r--arch/sh/configs/kfr2r09-romimage_defconfig58
-rw-r--r--arch/sh/configs/kfr2r09_defconfig71
-rw-r--r--arch/sh/configs/landisk_defconfig85
-rw-r--r--arch/sh/configs/lboxre2_defconfig89
-rw-r--r--arch/sh/configs/magicpanelr2_defconfig69
-rw-r--r--arch/sh/configs/microdev_defconfig71
-rw-r--r--arch/sh/configs/migor_defconfig92
-rw-r--r--arch/sh/configs/polaris_defconfig77
-rw-r--r--arch/sh/configs/r7780mp_defconfig99
-rw-r--r--arch/sh/configs/r7785rp_defconfig98
-rw-r--r--arch/sh/configs/rsk7201_defconfig59
-rw-r--r--arch/sh/configs/rsk7203_defconfig71
-rw-r--r--arch/sh/configs/rts7751r2d1_defconfig95
-rw-r--r--arch/sh/configs/rts7751r2dplus_defconfig95
-rw-r--r--arch/sh/configs/sdk7780_defconfig88
-rw-r--r--arch/sh/configs/se7206_defconfig66
-rw-r--r--arch/sh/configs/se7343_defconfig72
-rw-r--r--arch/sh/configs/se7619_defconfig58
-rw-r--r--arch/sh/configs/se7705_defconfig71
-rw-r--r--arch/sh/configs/se7712_defconfig61
-rw-r--r--arch/sh/configs/se7721_defconfig62
-rw-r--r--arch/sh/configs/se7722_defconfig69
-rw-r--r--arch/sh/configs/se7724_defconfig100
-rw-r--r--arch/sh/configs/se7750_defconfig70
-rw-r--r--arch/sh/configs/se7751_defconfig70
-rw-r--r--arch/sh/configs/se7780_defconfig79
-rw-r--r--arch/sh/configs/sh03_defconfig80
-rw-r--r--arch/sh/configs/sh7710voipgw_defconfig66
-rw-r--r--arch/sh/configs/sh7724_generic_defconfig80
-rw-r--r--arch/sh/configs/sh7763rdp_defconfig74
-rw-r--r--arch/sh/configs/sh7770_generic_defconfig79
-rw-r--r--arch/sh/configs/sh7785lcr_32bit_defconfig83
-rw-r--r--arch/sh/configs/sh7785lcr_defconfig83
-rw-r--r--arch/sh/configs/shmin_defconfig64
-rw-r--r--arch/sh/configs/shx3_defconfig93
-rw-r--r--arch/sh/configs/snapgear_defconfig79
-rw-r--r--arch/sh/configs/systemh_defconfig64
-rw-r--r--arch/sh/configs/titan_defconfig87
-rw-r--r--arch/sh/configs/ul2_defconfig86
-rw-r--r--arch/sh/configs/urquell_defconfig99
-rw-r--r--arch/sh/include/asm/timex.h10
-rw-r--r--arch/sh/mm/Kconfig7
-rw-r--r--arch/sparc/kernel/nmi.c3
-rw-r--r--arch/sparc/kernel/perf_event.c11
-rw-r--r--arch/x86/Kconfig.cpu2
-rw-r--r--arch/x86/boot/compressed/Makefile1
-rw-r--r--arch/x86/include/asm/kvm.h4
-rw-r--r--arch/x86/include/asm/uv/uv_hub.h86
-rw-r--r--arch/x86/kernel/acpi/sleep.c2
-rw-r--r--arch/x86/kernel/amd_iommu_init.c10
-rw-r--r--arch/x86/kernel/apic/x2apic_uv_x.c12
-rw-r--r--arch/x86/kernel/cpu/perf_event.c2
-rw-r--r--arch/x86/kernel/process.c4
-rw-r--r--arch/x86/kernel/process_32.c14
-rw-r--r--arch/x86/kernel/process_64.c24
-rw-r--r--arch/x86/kvm/lapic.c1
-rw-r--r--arch/x86/kvm/paging_tmpl.h18
-rw-r--r--arch/x86/kvm/x86.c12
-rw-r--r--arch/x86/mm/kmemcheck/error.c19
-rw-r--r--arch/x86/pci/bus_numa.c2
-rw-r--r--arch/x86/tools/chkobjdump.awk16
-rw-r--r--block/blk-barrier.c2
-rw-r--r--block/blk-settings.c121
-rw-r--r--block/cfq-iosched.c67
-rw-r--r--crypto/async_tx/raid6test.c7
-rw-r--r--drivers/Kconfig2
-rw-r--r--drivers/acpi/sleep.c29
-rw-r--r--drivers/acpi/video.c8
-rw-r--r--drivers/block/DAC960.c2
-rw-r--r--drivers/block/aoe/aoecmd.c17
-rw-r--r--drivers/block/drbd/drbd_int.h2
-rw-r--r--drivers/block/drbd/drbd_main.c5
-rw-r--r--drivers/block/drbd/drbd_proc.c2
-rw-r--r--drivers/block/drbd/drbd_receiver.c1
-rw-r--r--drivers/block/drbd/drbd_worker.c2
-rw-r--r--drivers/block/mg_disk.c2
-rw-r--r--drivers/char/agp/amd64-agp.c9
-rw-r--r--drivers/char/hw_random/core.c5
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c4
-rw-r--r--drivers/char/sonypi.c11
-rw-r--r--drivers/char/toshiba.c12
-rw-r--r--drivers/dma/at_hdmac.c4
-rw-r--r--drivers/dma/coh901318.c2
-rw-r--r--drivers/dma/dw_dmac.c2
-rw-r--r--drivers/dma/ioat/dma.c2
-rw-r--r--drivers/dma/ioat/dma.h18
-rw-r--r--drivers/dma/ioat/dma_v2.c69
-rw-r--r--drivers/dma/ioat/dma_v2.h2
-rw-r--r--drivers/dma/ioat/dma_v3.c60
-rw-r--r--drivers/dma/ioat/registers.h1
-rw-r--r--drivers/dma/shdma.c324
-rw-r--r--drivers/dma/shdma.h9
-rw-r--r--drivers/firewire/Kconfig44
-rw-r--r--drivers/firewire/core-cdev.c27
-rw-r--r--drivers/firewire/core-transaction.c118
-rw-r--r--drivers/firewire/ohci.c4
-rw-r--r--drivers/gpu/drm/ati_pcigart.c10
-rw-r--r--drivers/gpu/drm/drm_bufs.c4
-rw-r--r--drivers/gpu/drm/drm_edid.c14
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c2
-rw-r--r--drivers/gpu/drm/drm_pci.c8
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c31
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c28
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c174
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h123
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c251
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c46
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c32
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h11
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c12
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c2
-rw-r--r--drivers/gpu/drm/i915/intel_display.c414
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c6
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c5
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c83
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c3
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_combios.c50
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c1
-rw-r--r--drivers/gpu/drm/radeon/radeon_device.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c5
-rw-r--r--drivers/gpu/drm/radeon/radeon_fence.c9
-rw-r--r--drivers/gpu/drm/radeon/radeon_irq.c10
-rw-r--r--drivers/gpu/drm/radeon/rs600.c2
-rw-r--r--drivers/ieee1394/Kconfig59
-rw-r--r--drivers/input/ff-memless.c48
-rw-r--r--drivers/input/joystick/iforce/iforce-main.c29
-rw-r--r--drivers/input/joystick/iforce/iforce-usb.c29
-rw-r--r--drivers/input/joystick/iforce/iforce.h2
-rw-r--r--drivers/input/keyboard/atkbd.c5
-rw-r--r--drivers/input/keyboard/matrix_keypad.c29
-rw-r--r--drivers/input/keyboard/twl4030_keypad.c11
-rw-r--r--drivers/input/misc/twl4030-pwrbutton.c14
-rw-r--r--drivers/input/misc/wistron_btns.c2
-rw-r--r--drivers/input/mouse/Kconfig2
-rw-r--r--drivers/input/mouse/hgpk.c1
-rw-r--r--drivers/input/mouse/lifebook.c2
-rw-r--r--drivers/input/mouse/psmouse-base.c5
-rw-r--r--drivers/input/serio/serio.c11
-rw-r--r--drivers/lguest/segments.c4
-rw-r--r--drivers/md/md.c42
-rw-r--r--drivers/media/dvb/firewire/firedtv-fw.c12
-rw-r--r--drivers/message/i2o/i2o_config.c13
-rw-r--r--drivers/mfd/twl4030-irq.c4
-rw-r--r--drivers/net/3c507.c4
-rw-r--r--drivers/net/Kconfig2
-rw-r--r--drivers/net/arm/Kconfig1
-rw-r--r--drivers/net/benet/be.h1
-rw-r--r--drivers/net/benet/be_cmds.c36
-rw-r--r--drivers/net/benet/be_cmds.h16
-rw-r--r--drivers/net/benet/be_ethtool.c77
-rw-r--r--drivers/net/bnx2x_main.c2
-rw-r--r--drivers/net/bonding/bond_3ad.c2
-rw-r--r--drivers/net/gianfar.c13
-rw-r--r--drivers/net/ibmlana.c3
-rw-r--r--drivers/net/igb/e1000_82575.c4
-rw-r--r--drivers/net/igb/e1000_phy.c9
-rw-r--r--drivers/net/igb/igb_ethtool.c2
-rw-r--r--drivers/net/igb/igb_main.c9
-rw-r--r--drivers/net/igbvf/netdev.c3
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c5
-rw-r--r--drivers/net/pcnet32.c3
-rw-r--r--drivers/net/sfc/efx.c6
-rw-r--r--drivers/net/sfc/falcon.c1
-rw-r--r--drivers/net/sfc/falcon_xmac.c38
-rw-r--r--drivers/net/sfc/mcdi_phy.c93
-rw-r--r--drivers/net/sfc/net_driver.h1
-rw-r--r--drivers/net/sfc/nic.c2
-rw-r--r--drivers/net/sfc/qt202x_phy.c238
-rw-r--r--drivers/net/sfc/siena.c1
-rw-r--r--drivers/net/sfc/tenxpress.c138
-rw-r--r--drivers/net/sfc/tx.c4
-rw-r--r--drivers/net/tun.c6
-rw-r--r--drivers/net/ucc_geth.c42
-rw-r--r--drivers/net/via-rhine.c41
-rw-r--r--drivers/net/vxge/vxge-main.c6
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c18
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.h3
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c20
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c2
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c42
-rw-r--r--drivers/net/wireless/b43/dma.c197
-rw-r--r--drivers/net/wireless/b43/dma.h7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c15
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000-hw.h14
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-csr.h8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h13
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.c37
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-hcmd.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c56
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c68
-rw-r--r--drivers/net/wireless/iwmc3200wifi/iwm.h4
-rw-r--r--drivers/net/wireless/iwmc3200wifi/netdev.c2
-rw-r--r--drivers/net/wireless/iwmc3200wifi/rx.c2
-rw-r--r--drivers/net/wireless/libertas/mesh.c4
-rw-r--r--drivers/net/wireless/libertas/scan.c22
-rw-r--r--drivers/net/wireless/libertas/wext.c2
-rw-r--r--drivers/net/wireless/libertas_tf/main.c1
-rw-r--r--drivers/net/wireless/orinoco/wext.c6
-rw-r--r--drivers/net/wireless/rt2x00/rt2800.h2
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c17
-rw-r--r--drivers/net/wireless/rt2x00/rt2800usb.c1
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c5
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_dev.c1
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_boot.c2
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_cmd.c4
-rw-r--r--drivers/net/wireless/zd1211rw/zd_chip.c140
-rw-r--r--drivers/net/wireless/zd1211rw/zd_chip.h3
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c3
-rw-r--r--drivers/pci/hotplug/shpchp.h2
-rw-r--r--drivers/pci/intel-iommu.c6
-rw-r--r--drivers/pci/intr_remapping.c2
-rw-r--r--drivers/pci/pci-acpi.c10
-rw-r--r--drivers/pci/pci.c15
-rw-r--r--drivers/pci/pci.h8
-rw-r--r--drivers/pci/pcie/aer/Kconfig.debug4
-rw-r--r--drivers/pci/pcie/aer/aer_inject.c6
-rw-r--r--drivers/pci/pcie/aer/aerdrv.c2
-rw-r--r--drivers/pci/pcie/aer/aerdrv_acpi.c2
-rw-r--r--drivers/pci/pcie/aer/aerdrv_core.c6
-rw-r--r--drivers/pci/pcie/aer/aerdrv_errprint.c4
-rw-r--r--drivers/pci/pcie/aspm.c4
-rw-r--r--drivers/pci/pcie/portdrv_pci.c2
-rw-r--r--drivers/pci/quirks.c74
-rw-r--r--drivers/pci/search.c6
-rw-r--r--drivers/pcmcia/cardbus.c2
-rw-r--r--drivers/platform/x86/Kconfig28
-rw-r--r--drivers/platform/x86/dell-wmi.c18
-rw-r--r--drivers/platform/x86/hp-wmi.c9
-rw-r--r--drivers/platform/x86/msi-wmi.c9
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c59
-rw-r--r--drivers/platform/x86/wmi.c36
-rw-r--r--drivers/s390/cio/Makefile2
-rw-r--r--drivers/s390/cio/qdio.h36
-rw-r--r--drivers/s390/cio/qdio_debug.c114
-rw-r--r--drivers/s390/cio/qdio_main.c71
-rw-r--r--drivers/s390/cio/qdio_perf.c149
-rw-r--r--drivers/s390/cio/qdio_perf.h62
-rw-r--r--drivers/s390/cio/qdio_thinint.c8
-rw-r--r--drivers/sbus/char/bbc_envctrl.c64
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.c34
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c4
-rwxr-xr-xdrivers/scsi/lpfc/lpfc_hbadisc.c25
-rwxr-xr-x[-rw-r--r--]drivers/scsi/lpfc/lpfc_hw4.h3
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c14
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c48
-rw-r--r--drivers/scsi/lpfc/lpfc_sli4.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_version.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.c4
-rw-r--r--drivers/scsi/pmcraid.c8
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c32
-rw-r--r--drivers/scsi/qla2xxx/qla_dbg.h9
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h2
-rw-r--r--drivers/scsi/qla2xxx/qla_gbl.h1
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c22
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c9
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c64
-rw-r--r--drivers/scsi/qla2xxx/qla_mid.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c90
-rw-r--r--drivers/scsi/qla2xxx/qla_version.h2
-rw-r--r--drivers/scsi/stex.c5
-rw-r--r--drivers/video/pxafb.c4
-rw-r--r--fs/binfmt_elf_fdpic.c17
-rw-r--r--fs/cifs/CHANGES4
-rw-r--r--fs/cifs/cifsfs.c3
-rw-r--r--fs/cifs/connect.c13
-rw-r--r--fs/exofs/inode.c17
-rw-r--r--fs/exofs/pnfs.h10
-rw-r--r--fs/ext4/Kconfig1
-rw-r--r--fs/ext4/block_validity.c1
-rw-r--r--fs/ext4/ext4.h2
-rw-r--r--fs/ext4/ext4_extents.h3
-rw-r--r--fs/ext4/extents.c77
-rw-r--r--fs/ext4/fsync.c16
-rw-r--r--fs/ext4/inode.c225
-rw-r--r--fs/ext4/mballoc.h1
-rw-r--r--fs/ext4/super.c7
-rw-r--r--fs/ext4/xattr.c2
-rw-r--r--fs/fs-writeback.c18
-rw-r--r--fs/jbd2/checkpoint.c15
-rw-r--r--fs/jbd2/commit.c19
-rw-r--r--fs/jbd2/journal.c2
-rw-r--r--fs/namei.c1
-rw-r--r--fs/nfsd/vfs.c5
-rw-r--r--fs/nilfs2/bmap.c4
-rw-r--r--fs/nilfs2/cpfile.c31
-rw-r--r--fs/nilfs2/direct.c17
-rw-r--r--fs/nilfs2/ioctl.c2
-rw-r--r--fs/ocfs2/file.c21
-rw-r--r--fs/reiserfs/bitmap.c3
-rw-r--r--fs/reiserfs/inode.c5
-rw-r--r--fs/reiserfs/journal.c18
-rw-r--r--fs/reiserfs/lock.c9
-rw-r--r--fs/reiserfs/namei.c7
-rw-r--r--fs/reiserfs/xattr.c26
-rw-r--r--fs/sysfs/dir.c14
-rw-r--r--fs/sysfs/sysfs.h15
-rw-r--r--include/drm/drmP.h2
-rw-r--r--include/drm/i915_drm.h54
-rw-r--r--include/linux/acpi.h1
-rw-r--r--include/linux/blkdev.h17
-rw-r--r--include/linux/firewire-cdev.h3
-rw-r--r--include/linux/firewire.h4
-rw-r--r--include/linux/ieee80211.h2
-rw-r--r--include/linux/inetdevice.h1
-rw-r--r--include/linux/jbd2.h1
-rw-r--r--include/linux/kfifo.h2
-rw-r--r--include/linux/mm_types.h2
-rw-r--r--include/linux/pci.h3
-rw-r--r--include/linux/reiserfs_fs.h26
-rw-r--r--include/linux/resource.h8
-rw-r--r--include/linux/sched.h22
-rw-r--r--include/linux/syscalls.h2
-rw-r--r--include/linux/sysctl.h1
-rw-r--r--include/linux/writeback.h1
-rw-r--r--include/net/mac80211.h8
-rw-r--r--include/scsi/libsrp.h1
-rw-r--r--include/trace/ftrace.h7
-rw-r--r--kernel/hw_breakpoint.c10
-rw-r--r--kernel/kprobes.c2
-rw-r--r--kernel/module.c17
-rw-r--r--kernel/perf_event.c5
-rw-r--r--kernel/trace/Kconfig112
-rw-r--r--kernel/trace/trace.c2
-rw-r--r--kernel/trace/trace_export.c7
-rw-r--r--kernel/trace/trace_kprobe.c7
-rw-r--r--kernel/trace/trace_ksym.c140
-rw-r--r--lib/dma-debug.c8
-rw-r--r--mm/mmap.c40
-rw-r--r--mm/nommu.c42
-rw-r--r--mm/slab.c4
-rw-r--r--mm/util.c44
-rw-r--r--net/core/pktgen.c9
-rw-r--r--net/ipv4/devinet.c1
-rw-r--r--net/ipv4/fib_frontend.c2
-rw-r--r--net/mac80211/ht.c25
-rw-r--r--net/mac80211/ibss.c4
-rw-r--r--net/mac80211/main.c2
-rw-r--r--net/mac80211/mlme.c8
-rw-r--r--net/mac80211/tx.c4
-rw-r--r--net/mac80211/util.c12
-rw-r--r--net/sunrpc/svc_xprt.c3
-rw-r--r--net/wireless/mlme.c13
-rw-r--r--net/wireless/scan.c13
-rw-r--r--net/xfrm/xfrm_policy.c2
-rw-r--r--security/selinux/hooks.c2
-rw-r--r--sound/arm/aaci.c3
-rw-r--r--sound/core/pcm_native.c8
-rw-r--r--sound/isa/sb/emu8000.c11
-rw-r--r--sound/oss/dev_table.c16
-rw-r--r--sound/oss/sound_config.h2
-rw-r--r--sound/oss/soundcard.c4
-rw-r--r--sound/pci/ac97/ac97_codec.c10
-rw-r--r--sound/pci/ac97/ac97_id.h2
-rw-r--r--sound/pci/ac97/ac97_patch.c1
-rw-r--r--sound/pci/ctxfi/ctatc.c15
-rw-r--r--sound/pci/ctxfi/ctvmem.c38
-rw-r--r--sound/pci/ctxfi/ctvmem.h8
-rw-r--r--sound/pci/hda/hda_beep.c16
-rw-r--r--sound/pci/hda/hda_codec.c10
-rw-r--r--sound/pci/hda/hda_codec.h1
-rw-r--r--sound/pci/hda/patch_analog.c16
-rw-r--r--sound/pci/hda/patch_sigmatel.c18
-rw-r--r--sound/pci/ice1712/aureon.c12
-rw-r--r--sound/soc/codecs/ac97.c6
-rw-r--r--sound/soc/codecs/wm8510.c14
-rw-r--r--sound/soc/codecs/wm8940.c14
-rw-r--r--sound/soc/codecs/wm8974.c14
-rw-r--r--sound/soc/sh/fsi-ak4642.c30
-rw-r--r--sound/usb/usbmidi.c18
-rw-r--r--tools/perf/Makefile8
-rw-r--r--tools/perf/builtin-buildid-list.c2
-rw-r--r--tools/perf/builtin-diff.c3
-rw-r--r--tools/perf/builtin-kmem.c4
-rw-r--r--tools/perf/builtin-record.c14
-rw-r--r--tools/perf/builtin-report.c3
-rw-r--r--tools/perf/builtin-trace.c4
-rw-r--r--tools/perf/design.txt8
-rw-r--r--virt/kvm/assigned-dev.c6
-rw-r--r--virt/kvm/kvm_main.c5
473 files changed, 7947 insertions, 4445 deletions
diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl
index f508a8a27fea..5e7d84b48505 100644
--- a/Documentation/DocBook/mtdnand.tmpl
+++ b/Documentation/DocBook/mtdnand.tmpl
@@ -174,7 +174,7 @@
174 </para> 174 </para>
175 <programlisting> 175 <programlisting>
176static struct mtd_info *board_mtd; 176static struct mtd_info *board_mtd;
177static unsigned long baseaddr; 177static void __iomem *baseaddr;
178 </programlisting> 178 </programlisting>
179 <para> 179 <para>
180 Static example 180 Static example
@@ -182,7 +182,7 @@ static unsigned long baseaddr;
182 <programlisting> 182 <programlisting>
183static struct mtd_info board_mtd; 183static struct mtd_info board_mtd;
184static struct nand_chip board_chip; 184static struct nand_chip board_chip;
185static unsigned long baseaddr; 185static void __iomem *baseaddr;
186 </programlisting> 186 </programlisting>
187 </sect1> 187 </sect1>
188 <sect1 id="Partition_defines"> 188 <sect1 id="Partition_defines">
@@ -283,8 +283,8 @@ int __init board_init (void)
283 } 283 }
284 284
285 /* map physical address */ 285 /* map physical address */
286 baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024); 286 baseaddr = ioremap(CHIP_PHYSICAL_ADDRESS, 1024);
287 if(!baseaddr){ 287 if (!baseaddr) {
288 printk("Ioremap to access NAND chip failed\n"); 288 printk("Ioremap to access NAND chip failed\n");
289 err = -EIO; 289 err = -EIO;
290 goto out_mtd; 290 goto out_mtd;
@@ -316,7 +316,7 @@ int __init board_init (void)
316 goto out; 316 goto out;
317 317
318out_ior: 318out_ior:
319 iounmap((void *)baseaddr); 319 iounmap(baseaddr);
320out_mtd: 320out_mtd:
321 kfree (board_mtd); 321 kfree (board_mtd);
322out: 322out:
@@ -341,7 +341,7 @@ static void __exit board_cleanup (void)
341 nand_release (board_mtd); 341 nand_release (board_mtd);
342 342
343 /* unmap physical address */ 343 /* unmap physical address */
344 iounmap((void *)baseaddr); 344 iounmap(baseaddr);
345 345
346 /* Free the MTD device structure */ 346 /* Free the MTD device structure */
347 kfree (board_mtd); 347 kfree (board_mtd);
diff --git a/Documentation/IO-mapping.txt b/Documentation/IO-mapping.txt
index 78a440695e11..1b5aa10df845 100644
--- a/Documentation/IO-mapping.txt
+++ b/Documentation/IO-mapping.txt
@@ -157,7 +157,7 @@ For such memory, you can do things like
157 * access only the 640k-1MB area, so anything else 157 * access only the 640k-1MB area, so anything else
158 * has to be remapped. 158 * has to be remapped.
159 */ 159 */
160 char * baseptr = ioremap(0xFC000000, 1024*1024); 160 void __iomem *baseptr = ioremap(0xFC000000, 1024*1024);
161 161
162 /* write a 'A' to the offset 10 of the area */ 162 /* write a 'A' to the offset 10 of the area */
163 writeb('A',baseptr+10); 163 writeb('A',baseptr+10);
diff --git a/Documentation/DMA-mapping.txt b/Documentation/PCI/PCI-DMA-mapping.txt
index ecad88d9fe59..ecad88d9fe59 100644
--- a/Documentation/DMA-mapping.txt
+++ b/Documentation/PCI/PCI-DMA-mapping.txt
diff --git a/Documentation/block/00-INDEX b/Documentation/block/00-INDEX
index 961a0513f8c3..a406286f6f3e 100644
--- a/Documentation/block/00-INDEX
+++ b/Documentation/block/00-INDEX
@@ -1,7 +1,5 @@
100-INDEX 100-INDEX
2 - This file 2 - This file
3as-iosched.txt
4 - Anticipatory IO scheduler
5barrier.txt 3barrier.txt
6 - I/O Barriers 4 - I/O Barriers
7biodoc.txt 5biodoc.txt
diff --git a/Documentation/block/as-iosched.txt b/Documentation/block/as-iosched.txt
deleted file mode 100644
index 738b72be128e..000000000000
--- a/Documentation/block/as-iosched.txt
+++ /dev/null
@@ -1,172 +0,0 @@
1Anticipatory IO scheduler
2-------------------------
3Nick Piggin <piggin@cyberone.com.au> 13 Sep 2003
4
5Attention! Database servers, especially those using "TCQ" disks should
6investigate performance with the 'deadline' IO scheduler. Any system with high
7disk performance requirements should do so, in fact.
8
9If you see unusual performance characteristics of your disk systems, or you
10see big performance regressions versus the deadline scheduler, please email
11me. Database users don't bother unless you're willing to test a lot of patches
12from me ;) its a known issue.
13
14Also, users with hardware RAID controllers, doing striping, may find
15highly variable performance results with using the as-iosched. The
16as-iosched anticipatory implementation is based on the notion that a disk
17device has only one physical seeking head. A striped RAID controller
18actually has a head for each physical device in the logical RAID device.
19
20However, setting the antic_expire (see tunable parameters below) produces
21very similar behavior to the deadline IO scheduler.
22
23Selecting IO schedulers
24-----------------------
25Refer to Documentation/block/switching-sched.txt for information on
26selecting an io scheduler on a per-device basis.
27
28Anticipatory IO scheduler Policies
29----------------------------------
30The as-iosched implementation implements several layers of policies
31to determine when an IO request is dispatched to the disk controller.
32Here are the policies outlined, in order of application.
33
341. one-way Elevator algorithm.
35
36The elevator algorithm is similar to that used in deadline scheduler, with
37the addition that it allows limited backward movement of the elevator
38(i.e. seeks backwards). A seek backwards can occur when choosing between
39two IO requests where one is behind the elevator's current position, and
40the other is in front of the elevator's position. If the seek distance to
41the request in back of the elevator is less than half the seek distance to
42the request in front of the elevator, then the request in back can be chosen.
43Backward seeks are also limited to a maximum of MAXBACK (1024*1024) sectors.
44This favors forward movement of the elevator, while allowing opportunistic
45"short" backward seeks.
46
472. FIFO expiration times for reads and for writes.
48
49This is again very similar to the deadline IO scheduler. The expiration
50times for requests on these lists is tunable using the parameters read_expire
51and write_expire discussed below. When a read or a write expires in this way,
52the IO scheduler will interrupt its current elevator sweep or read anticipation
53to service the expired request.
54
553. Read and write request batching
56
57A batch is a collection of read requests or a collection of write
58requests. The as scheduler alternates dispatching read and write batches
59to the driver. In the case a read batch, the scheduler submits read
60requests to the driver as long as there are read requests to submit, and
61the read batch time limit has not been exceeded (read_batch_expire).
62The read batch time limit begins counting down only when there are
63competing write requests pending.
64
65In the case of a write batch, the scheduler submits write requests to
66the driver as long as there are write requests available, and the
67write batch time limit has not been exceeded (write_batch_expire).
68However, the length of write batches will be gradually shortened
69when read batches frequently exceed their time limit.
70
71When changing between batch types, the scheduler waits for all requests
72from the previous batch to complete before scheduling requests for the
73next batch.
74
75The read and write fifo expiration times described in policy 2 above
76are checked only when in scheduling IO of a batch for the corresponding
77(read/write) type. So for example, the read FIFO timeout values are
78tested only during read batches. Likewise, the write FIFO timeout
79values are tested only during write batches. For this reason,
80it is generally not recommended for the read batch time
81to be longer than the write expiration time, nor for the write batch
82time to exceed the read expiration time (see tunable parameters below).
83
84When the IO scheduler changes from a read to a write batch,
85it begins the elevator from the request that is on the head of the
86write expiration FIFO. Likewise, when changing from a write batch to
87a read batch, scheduler begins the elevator from the first entry
88on the read expiration FIFO.
89
904. Read anticipation.
91
92Read anticipation occurs only when scheduling a read batch.
93This implementation of read anticipation allows only one read request
94to be dispatched to the disk controller at a time. In
95contrast, many write requests may be dispatched to the disk controller
96at a time during a write batch. It is this characteristic that can make
97the anticipatory scheduler perform anomalously with controllers supporting
98TCQ, or with hardware striped RAID devices. Setting the antic_expire
99queue parameter (see below) to zero disables this behavior, and the
100anticipatory scheduler behaves essentially like the deadline scheduler.
101
102When read anticipation is enabled (antic_expire is not zero), reads
103are dispatched to the disk controller one at a time.
104At the end of each read request, the IO scheduler examines its next
105candidate read request from its sorted read list. If that next request
106is from the same process as the request that just completed,
107or if the next request in the queue is "very close" to the
108just completed request, it is dispatched immediately. Otherwise,
109statistics (average think time, average seek distance) on the process
110that submitted the just completed request are examined. If it seems
111likely that that process will submit another request soon, and that
112request is likely to be near the just completed request, then the IO
113scheduler will stop dispatching more read requests for up to (antic_expire)
114milliseconds, hoping that process will submit a new request near the one
115that just completed. If such a request is made, then it is dispatched
116immediately. If the antic_expire wait time expires, then the IO scheduler
117will dispatch the next read request from the sorted read queue.
118
119To decide whether an anticipatory wait is worthwhile, the scheduler
120maintains statistics for each process that can be used to compute
121mean "think time" (the time between read requests), and mean seek
122distance for that process. One observation is that these statistics
123are associated with each process, but those statistics are not associated
124with a specific IO device. So for example, if a process is doing IO
125on several file systems on separate devices, the statistics will be
126a combination of IO behavior from all those devices.
127
128
129Tuning the anticipatory IO scheduler
130------------------------------------
131When using 'as', the anticipatory IO scheduler there are 5 parameters under
132/sys/block/*/queue/iosched/. All are units of milliseconds.
133
134The parameters are:
135* read_expire
136 Controls how long until a read request becomes "expired". It also controls the
137 interval between which expired requests are served, so set to 50, a request
138 might take anywhere < 100ms to be serviced _if_ it is the next on the
139 expired list. Obviously request expiration strategies won't make the disk
140 go faster. The result basically equates to the timeslice a single reader
141 gets in the presence of other IO. 100*((seek time / read_expire) + 1) is
142 very roughly the % streaming read efficiency your disk should get with
143 multiple readers.
144
145* read_batch_expire
146 Controls how much time a batch of reads is given before pending writes are
147 served. A higher value is more efficient. This might be set below read_expire
148 if writes are to be given higher priority than reads, but reads are to be
149 as efficient as possible when there are no writes. Generally though, it
150 should be some multiple of read_expire.
151
152* write_expire, and
153* write_batch_expire are equivalent to the above, for writes.
154
155* antic_expire
156 Controls the maximum amount of time we can anticipate a good read (one
157 with a short seek distance from the most recently completed request) before
158 giving up. Many other factors may cause anticipation to be stopped early,
159 or some processes will not be "anticipated" at all. Should be a bit higher
160 for big seek time devices though not a linear correspondence - most
161 processes have only a few ms thinktime.
162
163In addition to the tunables above there is a read-only file named est_time
164which, when read, will show:
165
166 - The probability of a task exiting without a cooperating task
167 submitting an anticipated IO.
168
169 - The current mean think time.
170
171 - The seek distance used to determine if an incoming IO is better.
172
diff --git a/Documentation/block/biodoc.txt b/Documentation/block/biodoc.txt
index 8d2158a1c6aa..6fab97ea7e6b 100644
--- a/Documentation/block/biodoc.txt
+++ b/Documentation/block/biodoc.txt
@@ -186,7 +186,7 @@ a virtual address mapping (unlike the earlier scheme of virtual address
186do not have a corresponding kernel virtual address space mapping) and 186do not have a corresponding kernel virtual address space mapping) and
187low-memory pages. 187low-memory pages.
188 188
189Note: Please refer to Documentation/DMA-mapping.txt for a discussion 189Note: Please refer to Documentation/PCI/PCI-DMA-mapping.txt for a discussion
190on PCI high mem DMA aspects and mapping of scatter gather lists, and support 190on PCI high mem DMA aspects and mapping of scatter gather lists, and support
191for 64 bit PCI. 191for 64 bit PCI.
192 192
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt
index af6885c3c821..e1def1786e50 100644
--- a/Documentation/filesystems/ext4.txt
+++ b/Documentation/filesystems/ext4.txt
@@ -196,7 +196,7 @@ nobarrier This also requires an IO stack which can support
196 also be used to enable or disable barriers, for 196 also be used to enable or disable barriers, for
197 consistency with other ext4 mount options. 197 consistency with other ext4 mount options.
198 198
199inode_readahead=n This tuning parameter controls the maximum 199inode_readahead_blks=n This tuning parameter controls the maximum
200 number of inode table blocks that ext4's inode 200 number of inode table blocks that ext4's inode
201 table readahead algorithm will pre-read into 201 table readahead algorithm will pre-read into
202 the buffer cache. The default value is 32 blocks. 202 the buffer cache. The default value is 32 blocks.
diff --git a/Documentation/filesystems/nilfs2.txt b/Documentation/filesystems/nilfs2.txt
index 4949fcaa6b6a..839efd8a8a8c 100644
--- a/Documentation/filesystems/nilfs2.txt
+++ b/Documentation/filesystems/nilfs2.txt
@@ -28,7 +28,7 @@ described in the man pages included in the package.
28Project web page: http://www.nilfs.org/en/ 28Project web page: http://www.nilfs.org/en/
29Download page: http://www.nilfs.org/en/download.html 29Download page: http://www.nilfs.org/en/download.html
30Git tree web page: http://www.nilfs.org/git/ 30Git tree web page: http://www.nilfs.org/git/
31NILFS mailing lists: http://www.nilfs.org/mailman/listinfo/users 31List info: http://vger.kernel.org/vger-lists.html#linux-nilfs
32 32
33Caveats 33Caveats
34======= 34=======
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 5ba4d9dff113..736d45602886 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -240,7 +240,7 @@ and is between 256 and 4096 characters. It is defined in the file
240 240
241 acpi_sleep= [HW,ACPI] Sleep options 241 acpi_sleep= [HW,ACPI] Sleep options
242 Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, 242 Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
243 old_ordering, s4_nonvs } 243 old_ordering, s4_nonvs, sci_force_enable }
244 See Documentation/power/video.txt for information on 244 See Documentation/power/video.txt for information on
245 s3_bios and s3_mode. 245 s3_bios and s3_mode.
246 s3_beep is for debugging; it makes the PC's speaker beep 246 s3_beep is for debugging; it makes the PC's speaker beep
@@ -253,6 +253,9 @@ and is between 256 and 4096 characters. It is defined in the file
253 of _PTS is used by default). 253 of _PTS is used by default).
254 s4_nonvs prevents the kernel from saving/restoring the 254 s4_nonvs prevents the kernel from saving/restoring the
255 ACPI NVS memory during hibernation. 255 ACPI NVS memory during hibernation.
256 sci_force_enable causes the kernel to set SCI_EN directly
257 on resume from S1/S3 (which is against the ACPI spec,
258 but some broken systems don't work without it).
256 259
257 acpi_use_timer_override [HW,ACPI] 260 acpi_use_timer_override [HW,ACPI]
258 Use timer override. For some broken Nvidia NF5 boards 261 Use timer override. For some broken Nvidia NF5 boards
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt
index e1a114161027..2811e452f756 100644
--- a/Documentation/kvm/api.txt
+++ b/Documentation/kvm/api.txt
@@ -685,7 +685,7 @@ struct kvm_vcpu_events {
685 __u8 pad; 685 __u8 pad;
686 } nmi; 686 } nmi;
687 __u32 sipi_vector; 687 __u32 sipi_vector;
688 __u32 flags; /* must be zero */ 688 __u32 flags;
689}; 689};
690 690
6914.30 KVM_SET_VCPU_EVENTS 6914.30 KVM_SET_VCPU_EVENTS
@@ -701,6 +701,14 @@ vcpu.
701 701
702See KVM_GET_VCPU_EVENTS for the data structure. 702See KVM_GET_VCPU_EVENTS for the data structure.
703 703
704Fields that may be modified asynchronously by running VCPUs can be excluded
705from the update. These fields are nmi.pending and sipi_vector. Keep the
706corresponding bits in the flags field cleared to suppress overwriting the
707current in-kernel state. The bits are:
708
709KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel
710KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector
711
704 712
7055. The kvm_run structure 7135. The kvm_run structure
706 714
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index 169091f75e6d..75afa1229fd7 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -1092,8 +1092,8 @@ WARNING:
1092 its level up and down at every change. 1092 its level up and down at every change.
1093 1093
1094 1094
1095Volume control 1095Volume control (Console Audio control)
1096-------------- 1096--------------------------------------
1097 1097
1098procfs: /proc/acpi/ibm/volume 1098procfs: /proc/acpi/ibm/volume
1099ALSA: "ThinkPad Console Audio Control", default ID: "ThinkPadEC" 1099ALSA: "ThinkPad Console Audio Control", default ID: "ThinkPadEC"
@@ -1110,9 +1110,53 @@ the desktop environment to just provide on-screen-display feedback.
1110Software volume control should be done only in the main AC97/HDA 1110Software volume control should be done only in the main AC97/HDA
1111mixer. 1111mixer.
1112 1112
1113This feature allows volume control on ThinkPad models with a digital 1113
1114volume knob (when available, not all models have it), as well as 1114About the ThinkPad Console Audio control:
1115mute/unmute control. The available commands are: 1115
1116ThinkPads have a built-in amplifier and muting circuit that drives the
1117console headphone and speakers. This circuit is after the main AC97
1118or HDA mixer in the audio path, and under exclusive control of the
1119firmware.
1120
1121ThinkPads have three special hotkeys to interact with the console
1122audio control: volume up, volume down and mute.
1123
1124It is worth noting that the normal way the mute function works (on
1125ThinkPads that do not have a "mute LED") is:
1126
11271. Press mute to mute. It will *always* mute, you can press it as
1128 many times as you want, and the sound will remain mute.
1129
11302. Press either volume key to unmute the ThinkPad (it will _not_
1131 change the volume, it will just unmute).
1132
1133This is a very superior design when compared to the cheap software-only
1134mute-toggle solution found on normal consumer laptops: you can be
1135absolutely sure the ThinkPad will not make noise if you press the mute
1136button, no matter the previous state.
1137
1138The IBM ThinkPads, and the earlier Lenovo ThinkPads have variable-gain
1139amplifiers driving the speakers and headphone output, and the firmware
1140also handles volume control for the headphone and speakers on these
1141ThinkPads without any help from the operating system (this volume
1142control stage exists after the main AC97 or HDA mixer in the audio
1143path).
1144
1145The newer Lenovo models only have firmware mute control, and depend on
1146the main HDA mixer to do volume control (which is done by the operating
1147system). In this case, the volume keys are filtered out for unmute
1148key press (there are some firmware bugs in this area) and delivered as
1149normal key presses to the operating system (thinkpad-acpi is not
1150involved).
1151
1152
1153The ThinkPad-ACPI volume control:
1154
1155The preferred way to interact with the Console Audio control is the
1156ALSA interface.
1157
1158The legacy procfs interface allows one to read the current state,
1159and if volume control is enabled, accepts the following commands:
1116 1160
1117 echo up >/proc/acpi/ibm/volume 1161 echo up >/proc/acpi/ibm/volume
1118 echo down >/proc/acpi/ibm/volume 1162 echo down >/proc/acpi/ibm/volume
@@ -1121,12 +1165,10 @@ mute/unmute control. The available commands are:
1121 echo 'level <level>' >/proc/acpi/ibm/volume 1165 echo 'level <level>' >/proc/acpi/ibm/volume
1122 1166
1123The <level> number range is 0 to 14 although not all of them may be 1167The <level> number range is 0 to 14 although not all of them may be
1124distinct. The unmute the volume after the mute command, use either the 1168distinct. To unmute the volume after the mute command, use either the
1125up or down command (the level command will not unmute the volume), or 1169up or down command (the level command will not unmute the volume), or
1126the unmute command. 1170the unmute command.
1127 1171
1128The current volume level and mute state is shown in the file.
1129
1130You can use the volume_capabilities parameter to tell the driver 1172You can use the volume_capabilities parameter to tell the driver
1131whether your thinkpad has volume control or mute-only control: 1173whether your thinkpad has volume control or mute-only control:
1132volume_capabilities=1 for mixers with mute and volume control, 1174volume_capabilities=1 for mixers with mute and volume control,
diff --git a/Documentation/sound/alsa/Procfile.txt b/Documentation/sound/alsa/Procfile.txt
index 719a819f8cc2..07301de12cc4 100644
--- a/Documentation/sound/alsa/Procfile.txt
+++ b/Documentation/sound/alsa/Procfile.txt
@@ -95,7 +95,7 @@ card*/pcm*/xrun_debug
95 It takes an integer value, can be changed by writing to this 95 It takes an integer value, can be changed by writing to this
96 file, such as 96 file, such as
97 97
98 # cat 5 > /proc/asound/card0/pcm0p/xrun_debug 98 # echo 5 > /proc/asound/card0/pcm0p/xrun_debug
99 99
100 The value consists of the following bit flags: 100 The value consists of the following bit flags:
101 bit 0 = Enable XRUN/jiffies debug messages 101 bit 0 = Enable XRUN/jiffies debug messages
diff --git a/Documentation/trace/ftrace-design.txt b/Documentation/trace/ftrace-design.txt
index 641a1ef2a7ff..239f14b2b55a 100644
--- a/Documentation/trace/ftrace-design.txt
+++ b/Documentation/trace/ftrace-design.txt
@@ -53,14 +53,14 @@ size of the mcount call that is embedded in the function).
53For example, if the function foo() calls bar(), when the bar() function calls 53For example, if the function foo() calls bar(), when the bar() function calls
54mcount(), the arguments mcount() will pass to the tracer are: 54mcount(), the arguments mcount() will pass to the tracer are:
55 "frompc" - the address bar() will use to return to foo() 55 "frompc" - the address bar() will use to return to foo()
56 "selfpc" - the address bar() (with _mcount() size adjustment) 56 "selfpc" - the address bar() (with mcount() size adjustment)
57 57
58Also keep in mind that this mcount function will be called *a lot*, so 58Also keep in mind that this mcount function will be called *a lot*, so
59optimizing for the default case of no tracer will help the smooth running of 59optimizing for the default case of no tracer will help the smooth running of
60your system when tracing is disabled. So the start of the mcount function is 60your system when tracing is disabled. So the start of the mcount function is
61typically the bare min with checking things before returning. That also means 61typically the bare minimum with checking things before returning. That also
62the code flow should usually kept linear (i.e. no branching in the nop case). 62means the code flow should usually be kept linear (i.e. no branching in the nop
63This is of course an optimization and not a hard requirement. 63case). This is of course an optimization and not a hard requirement.
64 64
65Here is some pseudo code that should help (these functions should actually be 65Here is some pseudo code that should help (these functions should actually be
66implemented in assembly): 66implemented in assembly):
@@ -131,10 +131,10 @@ some functions to save (hijack) and restore the return address.
131 131
132The mcount function should check the function pointers ftrace_graph_return 132The mcount function should check the function pointers ftrace_graph_return
133(compare to ftrace_stub) and ftrace_graph_entry (compare to 133(compare to ftrace_stub) and ftrace_graph_entry (compare to
134ftrace_graph_entry_stub). If either of those are not set to the relevant stub 134ftrace_graph_entry_stub). If either of those is not set to the relevant stub
135function, call the arch-specific function ftrace_graph_caller which in turn 135function, call the arch-specific function ftrace_graph_caller which in turn
136calls the arch-specific function prepare_ftrace_return. Neither of these 136calls the arch-specific function prepare_ftrace_return. Neither of these
137function names are strictly required, but you should use them anyways to stay 137function names is strictly required, but you should use them anyway to stay
138consistent across the architecture ports -- easier to compare & contrast 138consistent across the architecture ports -- easier to compare & contrast
139things. 139things.
140 140
@@ -144,7 +144,7 @@ but the first argument should be a pointer to the "frompc". Typically this is
144located on the stack. This allows the function to hijack the return address 144located on the stack. This allows the function to hijack the return address
145temporarily to have it point to the arch-specific function return_to_handler. 145temporarily to have it point to the arch-specific function return_to_handler.
146That function will simply call the common ftrace_return_to_handler function and 146That function will simply call the common ftrace_return_to_handler function and
147that will return the original return address with which, you can return to the 147that will return the original return address with which you can return to the
148original call site. 148original call site.
149 149
150Here is the updated mcount pseudo code: 150Here is the updated mcount pseudo code:
diff --git a/Documentation/trace/mmiotrace.txt b/Documentation/trace/mmiotrace.txt
index 162effbfbdec..664e7386d89e 100644
--- a/Documentation/trace/mmiotrace.txt
+++ b/Documentation/trace/mmiotrace.txt
@@ -44,7 +44,8 @@ Check for lost events.
44Usage 44Usage
45----- 45-----
46 46
47Make sure debugfs is mounted to /sys/kernel/debug. If not, (requires root privileges) 47Make sure debugfs is mounted to /sys/kernel/debug.
48If not (requires root privileges):
48$ mount -t debugfs debugfs /sys/kernel/debug 49$ mount -t debugfs debugfs /sys/kernel/debug
49 50
50Check that the driver you are about to trace is not loaded. 51Check that the driver you are about to trace is not loaded.
@@ -91,7 +92,7 @@ $ dmesg > dmesg.txt
91$ tar zcf pciid-nick-mmiotrace.tar.gz mydump.txt lspci.txt dmesg.txt 92$ tar zcf pciid-nick-mmiotrace.tar.gz mydump.txt lspci.txt dmesg.txt
92and then send the .tar.gz file. The trace compresses considerably. Replace 93and then send the .tar.gz file. The trace compresses considerably. Replace
93"pciid" and "nick" with the PCI ID or model name of your piece of hardware 94"pciid" and "nick" with the PCI ID or model name of your piece of hardware
94under investigation and your nick name. 95under investigation and your nickname.
95 96
96 97
97How Mmiotrace Works 98How Mmiotrace Works
@@ -100,7 +101,7 @@ How Mmiotrace Works
100Access to hardware IO-memory is gained by mapping addresses from PCI bus by 101Access to hardware IO-memory is gained by mapping addresses from PCI bus by
101calling one of the ioremap_*() functions. Mmiotrace is hooked into the 102calling one of the ioremap_*() functions. Mmiotrace is hooked into the
102__ioremap() function and gets called whenever a mapping is created. Mapping is 103__ioremap() function and gets called whenever a mapping is created. Mapping is
103an event that is recorded into the trace log. Note, that ISA range mappings 104an event that is recorded into the trace log. Note that ISA range mappings
104are not caught, since the mapping always exists and is returned directly. 105are not caught, since the mapping always exists and is returned directly.
105 106
106MMIO accesses are recorded via page faults. Just before __ioremap() returns, 107MMIO accesses are recorded via page faults. Just before __ioremap() returns,
@@ -122,11 +123,11 @@ Trace Log Format
122---------------- 123----------------
123 124
124The raw log is text and easily filtered with e.g. grep and awk. One record is 125The raw log is text and easily filtered with e.g. grep and awk. One record is
125one line in the log. A record starts with a keyword, followed by keyword 126one line in the log. A record starts with a keyword, followed by keyword-
126dependant arguments. Arguments are separated by a space, or continue until the 127dependent arguments. Arguments are separated by a space, or continue until the
127end of line. The format for version 20070824 is as follows: 128end of line. The format for version 20070824 is as follows:
128 129
129Explanation Keyword Space separated arguments 130Explanation Keyword Space-separated arguments
130--------------------------------------------------------------------------- 131---------------------------------------------------------------------------
131 132
132read event R width, timestamp, map id, physical, value, PC, PID 133read event R width, timestamp, map id, physical, value, PC, PID
@@ -136,7 +137,7 @@ iounmap event UNMAP timestamp, map id, PC, PID
136marker MARK timestamp, text 137marker MARK timestamp, text
137version VERSION the string "20070824" 138version VERSION the string "20070824"
138info for reader LSPCI one line from lspci -v 139info for reader LSPCI one line from lspci -v
139PCI address map PCIDEV space separated /proc/bus/pci/devices data 140PCI address map PCIDEV space-separated /proc/bus/pci/devices data
140unk. opcode UNKNOWN timestamp, map id, physical, data, PC, PID 141unk. opcode UNKNOWN timestamp, map id, physical, data, PC, PID
141 142
142Timestamp is in seconds with decimals. Physical is a PCI bus address, virtual 143Timestamp is in seconds with decimals. Physical is a PCI bus address, virtual
diff --git a/Documentation/trace/tracepoint-analysis.txt b/Documentation/trace/tracepoint-analysis.txt
index 5eb4e487e667..87bee3c129ba 100644
--- a/Documentation/trace/tracepoint-analysis.txt
+++ b/Documentation/trace/tracepoint-analysis.txt
@@ -10,8 +10,8 @@ Tracepoints (see Documentation/trace/tracepoints.txt) can be used without
10creating custom kernel modules to register probe functions using the event 10creating custom kernel modules to register probe functions using the event
11tracing infrastructure. 11tracing infrastructure.
12 12
13Simplistically, tracepoints will represent an important event that when can 13Simplistically, tracepoints represent important events that can be
14be taken in conjunction with other tracepoints to build a "Big Picture" of 14taken in conjunction with other tracepoints to build a "Big Picture" of
15what is going on within the system. There are a large number of methods for 15what is going on within the system. There are a large number of methods for
16gathering and interpreting these events. Lacking any current Best Practises, 16gathering and interpreting these events. Lacking any current Best Practises,
17this document describes some of the methods that can be used. 17this document describes some of the methods that can be used.
@@ -33,12 +33,12 @@ calling
33 33
34will give a fair indication of the number of events available. 34will give a fair indication of the number of events available.
35 35
362.2 PCL 362.2 PCL (Performance Counters for Linux)
37------- 37-------
38 38
39Discovery and enumeration of all counters and events, including tracepoints 39Discovery and enumeration of all counters and events, including tracepoints,
40are available with the perf tool. Getting a list of available events is a 40are available with the perf tool. Getting a list of available events is a
41simple case of 41simple case of:
42 42
43 $ perf list 2>&1 | grep Tracepoint 43 $ perf list 2>&1 | grep Tracepoint
44 ext4:ext4_free_inode [Tracepoint event] 44 ext4:ext4_free_inode [Tracepoint event]
@@ -49,19 +49,19 @@ simple case of
49 [ .... remaining output snipped .... ] 49 [ .... remaining output snipped .... ]
50 50
51 51
522. Enabling Events 523. Enabling Events
53================== 53==================
54 54
552.1 System-Wide Event Enabling 553.1 System-Wide Event Enabling
56------------------------------ 56------------------------------
57 57
58See Documentation/trace/events.txt for a proper description on how events 58See Documentation/trace/events.txt for a proper description on how events
59can be enabled system-wide. A short example of enabling all events related 59can be enabled system-wide. A short example of enabling all events related
60to page allocation would look something like 60to page allocation would look something like:
61 61
62 $ for i in `find /sys/kernel/debug/tracing/events -name "enable" | grep mm_`; do echo 1 > $i; done 62 $ for i in `find /sys/kernel/debug/tracing/events -name "enable" | grep mm_`; do echo 1 > $i; done
63 63
642.2 System-Wide Event Enabling with SystemTap 643.2 System-Wide Event Enabling with SystemTap
65--------------------------------------------- 65---------------------------------------------
66 66
67In SystemTap, tracepoints are accessible using the kernel.trace() function 67In SystemTap, tracepoints are accessible using the kernel.trace() function
@@ -86,7 +86,7 @@ were allocating the pages.
86 print_count() 86 print_count()
87 } 87 }
88 88
892.3 System-Wide Event Enabling with PCL 893.3 System-Wide Event Enabling with PCL
90--------------------------------------- 90---------------------------------------
91 91
92By specifying the -a switch and analysing sleep, the system-wide events 92By specifying the -a switch and analysing sleep, the system-wide events
@@ -107,16 +107,16 @@ for a duration of time can be examined.
107Similarly, one could execute a shell and exit it as desired to get a report 107Similarly, one could execute a shell and exit it as desired to get a report
108at that point. 108at that point.
109 109
1102.4 Local Event Enabling 1103.4 Local Event Enabling
111------------------------ 111------------------------
112 112
113Documentation/trace/ftrace.txt describes how to enable events on a per-thread 113Documentation/trace/ftrace.txt describes how to enable events on a per-thread
114basis using set_ftrace_pid. 114basis using set_ftrace_pid.
115 115
1162.5 Local Event Enablement with PCL 1163.5 Local Event Enablement with PCL
117----------------------------------- 117-----------------------------------
118 118
119Events can be activate and tracked for the duration of a process on a local 119Events can be activated and tracked for the duration of a process on a local
120basis using PCL such as follows. 120basis using PCL such as follows.
121 121
122 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ 122 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \
@@ -131,18 +131,18 @@ basis using PCL such as follows.
131 131
132 0.973913387 seconds time elapsed 132 0.973913387 seconds time elapsed
133 133
1343. Event Filtering 1344. Event Filtering
135================== 135==================
136 136
137Documentation/trace/ftrace.txt covers in-depth how to filter events in 137Documentation/trace/ftrace.txt covers in-depth how to filter events in
138ftrace. Obviously using grep and awk of trace_pipe is an option as well 138ftrace. Obviously using grep and awk of trace_pipe is an option as well
139as any script reading trace_pipe. 139as any script reading trace_pipe.
140 140
1414. Analysing Event Variances with PCL 1415. Analysing Event Variances with PCL
142===================================== 142=====================================
143 143
144Any workload can exhibit variances between runs and it can be important 144Any workload can exhibit variances between runs and it can be important
145to know what the standard deviation in. By and large, this is left to the 145to know what the standard deviation is. By and large, this is left to the
146performance analyst to do it by hand. In the event that the discrete event 146performance analyst to do it by hand. In the event that the discrete event
147occurrences are useful to the performance analyst, then perf can be used. 147occurrences are useful to the performance analyst, then perf can be used.
148 148
@@ -166,7 +166,7 @@ In the event that some higher-level event is required that depends on some
166aggregation of discrete events, then a script would need to be developed. 166aggregation of discrete events, then a script would need to be developed.
167 167
168Using --repeat, it is also possible to view how events are fluctuating over 168Using --repeat, it is also possible to view how events are fluctuating over
169time on a system wide basis using -a and sleep. 169time on a system-wide basis using -a and sleep.
170 170
171 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ 171 $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \
172 -e kmem:mm_pagevec_free \ 172 -e kmem:mm_pagevec_free \
@@ -180,7 +180,7 @@ time on a system wide basis using -a and sleep.
180 180
181 1.002251757 seconds time elapsed ( +- 0.005% ) 181 1.002251757 seconds time elapsed ( +- 0.005% )
182 182
1835. Higher-Level Analysis with Helper Scripts 1836. Higher-Level Analysis with Helper Scripts
184============================================ 184============================================
185 185
186When events are enabled the events that are triggering can be read from 186When events are enabled the events that are triggering can be read from
@@ -190,11 +190,11 @@ be gathered on-line as appropriate. Examples of post-processing might include
190 190
191 o Reading information from /proc for the PID that triggered the event 191 o Reading information from /proc for the PID that triggered the event
192 o Deriving a higher-level event from a series of lower-level events. 192 o Deriving a higher-level event from a series of lower-level events.
193 o Calculate latencies between two events 193 o Calculating latencies between two events
194 194
195Documentation/trace/postprocess/trace-pagealloc-postprocess.pl is an example 195Documentation/trace/postprocess/trace-pagealloc-postprocess.pl is an example
196script that can read trace_pipe from STDIN or a copy of a trace. When used 196script that can read trace_pipe from STDIN or a copy of a trace. When used
197on-line, it can be interrupted once to generate a report without existing 197on-line, it can be interrupted once to generate a report without exiting
198and twice to exit. 198and twice to exit.
199 199
200Simplistically, the script just reads STDIN and counts up events but it 200Simplistically, the script just reads STDIN and counts up events but it
@@ -212,12 +212,12 @@ also can do more such as
212 processes, the parent process responsible for creating all the helpers 212 processes, the parent process responsible for creating all the helpers
213 can be identified 213 can be identified
214 214
2156. Lower-Level Analysis with PCL 2157. Lower-Level Analysis with PCL
216================================ 216================================
217 217
218There may also be a requirement to identify what functions with a program 218There may also be a requirement to identify what functions within a program
219were generating events within the kernel. To begin this sort of analysis, the 219were generating events within the kernel. To begin this sort of analysis, the
220data must be recorded. At the time of writing, this required root 220data must be recorded. At the time of writing, this required root:
221 221
222 $ perf record -c 1 \ 222 $ perf record -c 1 \
223 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ 223 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \
@@ -253,11 +253,11 @@ perf report.
253 # (For more details, try: perf report --sort comm,dso,symbol) 253 # (For more details, try: perf report --sort comm,dso,symbol)
254 # 254 #
255 255
256According to this, the vast majority of events occured triggered on events 256According to this, the vast majority of events triggered on events
257within the VDSO. With simple binaries, this will often be the case so lets 257within the VDSO. With simple binaries, this will often be the case so let's
258take a slightly different example. In the course of writing this, it was 258take a slightly different example. In the course of writing this, it was
259noticed that X was generating an insane amount of page allocations so lets look 259noticed that X was generating an insane amount of page allocations so let's look
260at it 260at it:
261 261
262 $ perf record -c 1 -f \ 262 $ perf record -c 1 -f \
263 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ 263 -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \
@@ -280,8 +280,8 @@ This was interrupted after a few seconds and
280 # (For more details, try: perf report --sort comm,dso,symbol) 280 # (For more details, try: perf report --sort comm,dso,symbol)
281 # 281 #
282 282
283So, almost half of the events are occuring in a library. To get an idea which 283So, almost half of the events are occurring in a library. To get an idea which
284symbol. 284symbol:
285 285
286 $ perf report --sort comm,dso,symbol 286 $ perf report --sort comm,dso,symbol
287 # Samples: 27666 287 # Samples: 27666
@@ -297,7 +297,7 @@ symbol.
297 0.01% Xorg /opt/gfx-test/lib/libpixman-1.so.0.13.1 [.] get_fast_path 297 0.01% Xorg /opt/gfx-test/lib/libpixman-1.so.0.13.1 [.] get_fast_path
298 0.00% Xorg [kernel] [k] ftrace_trace_userstack 298 0.00% Xorg [kernel] [k] ftrace_trace_userstack
299 299
300To see where within the function pixmanFillsse2 things are going wrong 300To see where within the function pixmanFillsse2 things are going wrong:
301 301
302 $ perf annotate pixmanFillsse2 302 $ perf annotate pixmanFillsse2
303 [ ... ] 303 [ ... ]
diff --git a/Documentation/vgaarbiter.txt b/Documentation/vgaarbiter.txt
index 987f9b0a5ece..43a9b0694fdd 100644
--- a/Documentation/vgaarbiter.txt
+++ b/Documentation/vgaarbiter.txt
@@ -103,7 +103,7 @@ I.2 libpciaccess
103---------------- 103----------------
104 104
105To use the vga arbiter char device it was implemented an API inside the 105To use the vga arbiter char device it was implemented an API inside the
106libpciaccess library. One fieldd was added to struct pci_device (each device 106libpciaccess library. One field was added to struct pci_device (each device
107on the system): 107on the system):
108 108
109 /* the type of resource decoded by the device */ 109 /* the type of resource decoded by the device */
diff --git a/MAINTAINERS b/MAINTAINERS
index 66f5f7dab285..6914588eef89 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2169,10 +2169,9 @@ F: drivers/hwmon/f75375s.c
2169F: include/linux/f75375s.h 2169F: include/linux/f75375s.h
2170 2170
2171FIREWIRE SUBSYSTEM 2171FIREWIRE SUBSYSTEM
2172M: Kristian Hoegsberg <krh@redhat.com>
2173M: Stefan Richter <stefanr@s5r6.in-berlin.de> 2172M: Stefan Richter <stefanr@s5r6.in-berlin.de>
2174L: linux1394-devel@lists.sourceforge.net 2173L: linux1394-devel@lists.sourceforge.net
2175W: http://www.linux1394.org/ 2174W: http://ieee1394.wiki.kernel.org/
2176T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git 2175T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
2177S: Maintained 2176S: Maintained
2178F: drivers/firewire/ 2177F: drivers/firewire/
@@ -2705,22 +2704,14 @@ S: Supported
2705F: drivers/idle/i7300_idle.c 2704F: drivers/idle/i7300_idle.c
2706 2705
2707IEEE 1394 SUBSYSTEM 2706IEEE 1394 SUBSYSTEM
2708M: Ben Collins <ben.collins@ubuntu.com>
2709M: Stefan Richter <stefanr@s5r6.in-berlin.de> 2707M: Stefan Richter <stefanr@s5r6.in-berlin.de>
2710L: linux1394-devel@lists.sourceforge.net 2708L: linux1394-devel@lists.sourceforge.net
2711W: http://www.linux1394.org/ 2709W: http://ieee1394.wiki.kernel.org/
2712T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git 2710T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
2713S: Maintained 2711S: Obsolete
2714F: Documentation/debugging-via-ohci1394.txt 2712F: Documentation/debugging-via-ohci1394.txt
2715F: drivers/ieee1394/ 2713F: drivers/ieee1394/
2716 2714
2717IEEE 1394 RAW I/O DRIVER
2718M: Dan Dennedy <dan@dennedy.org>
2719M: Stefan Richter <stefanr@s5r6.in-berlin.de>
2720L: linux1394-devel@lists.sourceforge.net
2721S: Maintained
2722F: drivers/ieee1394/raw1394*
2723
2724IEEE 802.15.4 SUBSYSTEM 2715IEEE 802.15.4 SUBSYSTEM
2725M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 2716M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2726M: Sergey Lapin <slapin@ossfans.org> 2717M: Sergey Lapin <slapin@ossfans.org>
@@ -3882,7 +3873,7 @@ F: drivers/net/ni5010.*
3882 3873
3883NILFS2 FILESYSTEM 3874NILFS2 FILESYSTEM
3884M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp> 3875M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
3885L: users@nilfs.org 3876L: linux-nilfs@vger.kernel.org
3886W: http://www.nilfs.org/en/ 3877W: http://www.nilfs.org/en/
3887S: Supported 3878S: Supported
3888F: Documentation/filesystems/nilfs2.txt 3879F: Documentation/filesystems/nilfs2.txt
diff --git a/Makefile b/Makefile
index c628a5cfe422..12310947156e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 33 3SUBLEVEL = 33
4EXTRAVERSION = -rc2 4EXTRAVERSION = -rc3
5NAME = Man-Eating Seals of Antiquity 5NAME = Man-Eating Seals of Antiquity
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 233a222752c0..4f8760d7b7a7 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -688,6 +688,7 @@ config ARCH_DAVINCI
688 select HAVE_IDE 688 select HAVE_IDE
689 select COMMON_CLKDEV 689 select COMMON_CLKDEV
690 select GENERIC_ALLOCATOR 690 select GENERIC_ALLOCATOR
691 select ARCH_HAS_HOLES_MEMORYMODEL
691 help 692 help
692 Support for TI's DaVinci platform. 693 Support for TI's DaVinci platform.
693 694
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c
index a9b650dcc172..077ecf4fecda 100644
--- a/arch/arm/mach-davinci/board-dm355-evm.c
+++ b/arch/arm/mach-davinci/board-dm355-evm.c
@@ -236,6 +236,7 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = {
236 236
237static struct vpfe_config vpfe_cfg = { 237static struct vpfe_config vpfe_cfg = {
238 .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), 238 .num_subdevs = ARRAY_SIZE(vpfe_sub_devs),
239 .i2c_adapter_id = 1,
239 .sub_devs = vpfe_sub_devs, 240 .sub_devs = vpfe_sub_devs,
240 .card_name = "DM355 EVM", 241 .card_name = "DM355 EVM",
241 .ccdc = "DM355 CCDC", 242 .ccdc = "DM355 CCDC",
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c
index 289fe1b7d25a..b476395d2cd4 100644
--- a/arch/arm/mach-davinci/board-dm365-evm.c
+++ b/arch/arm/mach-davinci/board-dm365-evm.c
@@ -192,7 +192,11 @@ static struct davinci_i2c_platform_data i2c_pdata = {
192 .bus_delay = 0 /* usec */, 192 .bus_delay = 0 /* usec */,
193}; 193};
194 194
195#ifdef CONFIG_KEYBOARD_DAVINCI 195static int dm365evm_keyscan_enable(struct device *dev)
196{
197 return davinci_cfg_reg(DM365_KEYSCAN);
198}
199
196static unsigned short dm365evm_keymap[] = { 200static unsigned short dm365evm_keymap[] = {
197 KEY_KP2, 201 KEY_KP2,
198 KEY_LEFT, 202 KEY_LEFT,
@@ -214,6 +218,7 @@ static unsigned short dm365evm_keymap[] = {
214}; 218};
215 219
216static struct davinci_ks_platform_data dm365evm_ks_data = { 220static struct davinci_ks_platform_data dm365evm_ks_data = {
221 .device_enable = dm365evm_keyscan_enable,
217 .keymap = dm365evm_keymap, 222 .keymap = dm365evm_keymap,
218 .keymapsize = ARRAY_SIZE(dm365evm_keymap), 223 .keymapsize = ARRAY_SIZE(dm365evm_keymap),
219 .rep = 1, 224 .rep = 1,
@@ -222,7 +227,6 @@ static struct davinci_ks_platform_data dm365evm_ks_data = {
222 .interval = 0x2, 227 .interval = 0x2,
223 .matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4, 228 .matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4,
224}; 229};
225#endif
226 230
227static int cpld_mmc_get_cd(int module) 231static int cpld_mmc_get_cd(int module)
228{ 232{
@@ -511,10 +515,7 @@ static __init void dm365_evm_init(void)
511 515
512 dm365_init_asp(&dm365_evm_snd_data); 516 dm365_init_asp(&dm365_evm_snd_data);
513 dm365_init_rtc(); 517 dm365_init_rtc();
514
515#ifdef CONFIG_KEYBOARD_DAVINCI
516 dm365_init_ks(&dm365evm_ks_data); 518 dm365_init_ks(&dm365evm_ks_data);
517#endif
518} 519}
519 520
520static __init void dm365_evm_irq_init(void) 521static __init void dm365_evm_irq_init(void)
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index fd0398bc6db3..e9612cf727b7 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -247,6 +247,7 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = {
247 247
248static struct vpfe_config vpfe_cfg = { 248static struct vpfe_config vpfe_cfg = {
249 .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), 249 .num_subdevs = ARRAY_SIZE(vpfe_sub_devs),
250 .i2c_adapter_id = 1,
250 .sub_devs = vpfe_sub_devs, 251 .sub_devs = vpfe_sub_devs,
251 .card_name = "DM6446 EVM", 252 .card_name = "DM6446 EVM",
252 .ccdc = "DM6446 CCDC", 253 .ccdc = "DM6446 CCDC",
diff --git a/arch/arm/mach-davinci/cp_intc.c b/arch/arm/mach-davinci/cp_intc.c
index 52b287cf3a42..37311d1830eb 100644
--- a/arch/arm/mach-davinci/cp_intc.c
+++ b/arch/arm/mach-davinci/cp_intc.c
@@ -81,12 +81,23 @@ static int cp_intc_set_irq_type(unsigned int irq, unsigned int flow_type)
81 return 0; 81 return 0;
82} 82}
83 83
84/*
85 * Faking this allows us to to work with suspend functions of
86 * generic drivers which call {enable|disable}_irq_wake for
87 * wake up interrupt sources (eg RTC on DA850).
88 */
89static int cp_intc_set_wake(unsigned int irq, unsigned int on)
90{
91 return 0;
92}
93
84static struct irq_chip cp_intc_irq_chip = { 94static struct irq_chip cp_intc_irq_chip = {
85 .name = "cp_intc", 95 .name = "cp_intc",
86 .ack = cp_intc_ack_irq, 96 .ack = cp_intc_ack_irq,
87 .mask = cp_intc_mask_irq, 97 .mask = cp_intc_mask_irq,
88 .unmask = cp_intc_unmask_irq, 98 .unmask = cp_intc_unmask_irq,
89 .set_type = cp_intc_set_irq_type, 99 .set_type = cp_intc_set_irq_type,
100 .set_wake = cp_intc_set_wake,
90}; 101};
91 102
92void __init cp_intc_init(void __iomem *base, unsigned short num_irq, 103void __init cp_intc_init(void __iomem *base, unsigned short num_irq,
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index dd2d32c4ce86..a5105f03fd86 100644
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -481,11 +481,18 @@ static struct platform_device da8xx_rtc_device = {
481 481
482int da8xx_register_rtc(void) 482int da8xx_register_rtc(void)
483{ 483{
484 int ret;
485
484 /* Unlock the rtc's registers */ 486 /* Unlock the rtc's registers */
485 __raw_writel(0x83e70b13, IO_ADDRESS(DA8XX_RTC_BASE + 0x6c)); 487 __raw_writel(0x83e70b13, IO_ADDRESS(DA8XX_RTC_BASE + 0x6c));
486 __raw_writel(0x95a4f1e0, IO_ADDRESS(DA8XX_RTC_BASE + 0x70)); 488 __raw_writel(0x95a4f1e0, IO_ADDRESS(DA8XX_RTC_BASE + 0x70));
487 489
488 return platform_device_register(&da8xx_rtc_device); 490 ret = platform_device_register(&da8xx_rtc_device);
491 if (!ret)
492 /* Atleast on DA850, RTC is a wakeup source */
493 device_init_wakeup(&da8xx_rtc_device.dev, true);
494
495 return ret;
489} 496}
490 497
491static struct resource da8xx_cpuidle_resources[] = { 498static struct resource da8xx_cpuidle_resources[] = {
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c
index 2ec619ec1657..f53735cb922e 100644
--- a/arch/arm/mach-davinci/dm365.c
+++ b/arch/arm/mach-davinci/dm365.c
@@ -993,7 +993,6 @@ void __init dm365_init_asp(struct snd_platform_data *pdata)
993 993
994void __init dm365_init_ks(struct davinci_ks_platform_data *pdata) 994void __init dm365_init_ks(struct davinci_ks_platform_data *pdata)
995{ 995{
996 davinci_cfg_reg(DM365_KEYSCAN);
997 dm365_ks_device.dev.platform_data = pdata; 996 dm365_ks_device.dev.platform_data = pdata;
998 platform_device_register(&dm365_ks_device); 997 platform_device_register(&dm365_ks_device);
999} 998}
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c
index 8f49b2b12608..b22dec4abf78 100644
--- a/arch/arm/mach-mmp/ttc_dkb.c
+++ b/arch/arm/mach-mmp/ttc_dkb.c
@@ -24,8 +24,6 @@
24 24
25#include "common.h" 25#include "common.h"
26 26
27#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
28
29static unsigned long ttc_dkb_pin_config[] __initdata = { 27static unsigned long ttc_dkb_pin_config[] __initdata = {
30 /* UART2 */ 28 /* UART2 */
31 GPIO47_UART2_RXD, 29 GPIO47_UART2_RXD,
diff --git a/arch/arm/mach-mx2/mxt_td60.c b/arch/arm/mach-mx2/mxt_td60.c
index 03dbbdc98955..8bcc1a5b8829 100644
--- a/arch/arm/mach-mx2/mxt_td60.c
+++ b/arch/arm/mach-mx2/mxt_td60.c
@@ -58,21 +58,6 @@ static unsigned int mxt_td60_pins[] __initdata = {
58 PE9_PF_UART3_RXD, 58 PE9_PF_UART3_RXD,
59 PE10_PF_UART3_CTS, 59 PE10_PF_UART3_CTS,
60 PE11_PF_UART3_RTS, 60 PE11_PF_UART3_RTS,
61 /* UART3 */
62 PB26_AF_UART4_RTS,
63 PB28_AF_UART4_TXD,
64 PB29_AF_UART4_CTS,
65 PB31_AF_UART4_RXD,
66 /* UART4 */
67 PB18_AF_UART5_TXD,
68 PB19_AF_UART5_RXD,
69 PB20_AF_UART5_CTS,
70 PB21_AF_UART5_RTS,
71 /* UART5 */
72 PB10_AF_UART6_TXD,
73 PB12_AF_UART6_CTS,
74 PB11_AF_UART6_RXD,
75 PB13_AF_UART6_RTS,
76 /* FEC */ 61 /* FEC */
77 PD0_AIN_FEC_TXD0, 62 PD0_AIN_FEC_TXD0,
78 PD1_AIN_FEC_TXD1, 63 PD1_AIN_FEC_TXD1,
@@ -261,12 +246,6 @@ static struct imxuart_platform_data uart_pdata[] = {
261 .flags = IMXUART_HAVE_RTSCTS, 246 .flags = IMXUART_HAVE_RTSCTS,
262 }, { 247 }, {
263 .flags = IMXUART_HAVE_RTSCTS, 248 .flags = IMXUART_HAVE_RTSCTS,
264 }, {
265 .flags = IMXUART_HAVE_RTSCTS,
266 }, {
267 .flags = IMXUART_HAVE_RTSCTS,
268 }, {
269 .flags = IMXUART_HAVE_RTSCTS,
270 }, 249 },
271}; 250};
272 251
@@ -278,9 +257,6 @@ static void __init mxt_td60_board_init(void)
278 mxc_register_device(&mxc_uart_device0, &uart_pdata[0]); 257 mxc_register_device(&mxc_uart_device0, &uart_pdata[0]);
279 mxc_register_device(&mxc_uart_device1, &uart_pdata[1]); 258 mxc_register_device(&mxc_uart_device1, &uart_pdata[1]);
280 mxc_register_device(&mxc_uart_device2, &uart_pdata[2]); 259 mxc_register_device(&mxc_uart_device2, &uart_pdata[2]);
281 mxc_register_device(&mxc_uart_device3, &uart_pdata[3]);
282 mxc_register_device(&mxc_uart_device4, &uart_pdata[4]);
283 mxc_register_device(&mxc_uart_device5, &uart_pdata[5]);
284 mxc_register_device(&mxc_nand_device, &mxt_td60_nand_board_info); 260 mxc_register_device(&mxc_nand_device, &mxt_td60_nand_board_info);
285 261
286 i2c_register_board_info(0, mxt_td60_i2c_devices, 262 i2c_register_board_info(0, mxt_td60_i2c_devices,
diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index ef26951a5275..6e838b857712 100644
--- a/arch/arm/mach-mx25/clock.c
+++ b/arch/arm/mach-mx25/clock.c
@@ -173,6 +173,7 @@ DEFINE_CLOCK(pwm4_clk, 0, CCM_CGCR2, 2, get_rate_ipg, NULL);
173DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL); 173DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL);
174DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL); 174DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL);
175DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL); 175DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL);
176DEFINE_CLOCK(fec_clk, 0, CCM_CGCR0, 23, get_rate_ipg, NULL);
176 177
177#define _REGISTER_CLOCK(d, n, c) \ 178#define _REGISTER_CLOCK(d, n, c) \
178 { \ 179 { \
@@ -204,6 +205,7 @@ static struct clk_lookup lookups[] = {
204 _REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk) 205 _REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk)
205 _REGISTER_CLOCK("imx-i2c.1", NULL, i2c_clk) 206 _REGISTER_CLOCK("imx-i2c.1", NULL, i2c_clk)
206 _REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk) 207 _REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk)
208 _REGISTER_CLOCK("fec.0", NULL, fec_clk)
207}; 209};
208 210
209int __init mx25_clocks_init(unsigned long fref) 211int __init mx25_clocks_init(unsigned long fref)
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c
index 63511de3a559..9fdeea1c083b 100644
--- a/arch/arm/mach-mx25/devices.c
+++ b/arch/arm/mach-mx25/devices.c
@@ -419,3 +419,22 @@ int __init mxc_register_gpios(void)
419 return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports)); 419 return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports));
420} 420}
421 421
422static struct resource mx25_fec_resources[] = {
423 {
424 .start = MX25_FEC_BASE_ADDR,
425 .end = MX25_FEC_BASE_ADDR + 0xfff,
426 .flags = IORESOURCE_MEM,
427 },
428 {
429 .start = MX25_INT_FEC,
430 .end = MX25_INT_FEC,
431 .flags = IORESOURCE_IRQ,
432 },
433};
434
435struct platform_device mx25_fec_device = {
436 .name = "fec",
437 .id = 0,
438 .num_resources = ARRAY_SIZE(mx25_fec_resources),
439 .resource = mx25_fec_resources,
440};
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h
index fe6bf88ad1dd..fe5420fcd11f 100644
--- a/arch/arm/mach-mx25/devices.h
+++ b/arch/arm/mach-mx25/devices.h
@@ -17,3 +17,4 @@ extern struct platform_device mxc_keypad_device;
17extern struct platform_device mxc_i2c_device0; 17extern struct platform_device mxc_i2c_device0;
18extern struct platform_device mxc_i2c_device1; 18extern struct platform_device mxc_i2c_device1;
19extern struct platform_device mxc_i2c_device2; 19extern struct platform_device mxc_i2c_device2;
20extern struct platform_device mx25_fec_device;
diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c
index d23ae571c03f..921bc99ea231 100644
--- a/arch/arm/mach-mx25/mx25pdk.c
+++ b/arch/arm/mach-mx25/mx25pdk.c
@@ -18,10 +18,11 @@
18 18
19#include <linux/types.h> 19#include <linux/types.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/delay.h>
21#include <linux/clk.h> 22#include <linux/clk.h>
22#include <linux/irq.h> 23#include <linux/irq.h>
23#include <linux/gpio.h> 24#include <linux/gpio.h>
24#include <linux/smsc911x.h> 25#include <linux/fec.h>
25#include <linux/platform_device.h> 26#include <linux/platform_device.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
@@ -35,16 +36,57 @@
35#include <mach/mx25.h> 36#include <mach/mx25.h>
36#include <mach/mxc_nand.h> 37#include <mach/mxc_nand.h>
37#include "devices.h" 38#include "devices.h"
38#include <mach/iomux-v3.h> 39#include <mach/iomux.h>
39 40
40static struct imxuart_platform_data uart_pdata = { 41static struct imxuart_platform_data uart_pdata = {
41 .flags = IMXUART_HAVE_RTSCTS, 42 .flags = IMXUART_HAVE_RTSCTS,
42}; 43};
43 44
45static struct pad_desc mx25pdk_pads[] = {
46 MX25_PAD_FEC_MDC__FEC_MDC,
47 MX25_PAD_FEC_MDIO__FEC_MDIO,
48 MX25_PAD_FEC_TDATA0__FEC_TDATA0,
49 MX25_PAD_FEC_TDATA1__FEC_TDATA1,
50 MX25_PAD_FEC_TX_EN__FEC_TX_EN,
51 MX25_PAD_FEC_RDATA0__FEC_RDATA0,
52 MX25_PAD_FEC_RDATA1__FEC_RDATA1,
53 MX25_PAD_FEC_RX_DV__FEC_RX_DV,
54 MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
55 MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */
56 MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */
57};
58
59static struct fec_platform_data mx25_fec_pdata = {
60 .phy = PHY_INTERFACE_MODE_RMII,
61};
62
63#define FEC_ENABLE_GPIO 35
64#define FEC_RESET_B_GPIO 104
65
66static void __init mx25pdk_fec_reset(void)
67{
68 gpio_request(FEC_ENABLE_GPIO, "FEC PHY enable");
69 gpio_request(FEC_RESET_B_GPIO, "FEC PHY reset");
70
71 gpio_direction_output(FEC_ENABLE_GPIO, 0); /* drop PHY power */
72 gpio_direction_output(FEC_RESET_B_GPIO, 0); /* assert reset */
73 udelay(2);
74
75 /* turn on PHY power and lift reset */
76 gpio_set_value(FEC_ENABLE_GPIO, 1);
77 gpio_set_value(FEC_RESET_B_GPIO, 1);
78}
79
44static void __init mx25pdk_init(void) 80static void __init mx25pdk_init(void)
45{ 81{
82 mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads,
83 ARRAY_SIZE(mx25pdk_pads));
84
46 mxc_register_device(&mxc_uart_device0, &uart_pdata); 85 mxc_register_device(&mxc_uart_device0, &uart_pdata);
47 mxc_register_device(&mxc_usbh2, NULL); 86 mxc_register_device(&mxc_usbh2, NULL);
87
88 mx25pdk_fec_reset();
89 mxc_register_device(&mx25_fec_device, &mx25_fec_pdata);
48} 90}
49 91
50static void __init mx25pdk_timer_init(void) 92static void __init mx25pdk_timer_init(void)
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
index ea8ed109a7c2..28294416b0af 100644
--- a/arch/arm/mach-mx3/Kconfig
+++ b/arch/arm/mach-mx3/Kconfig
@@ -49,6 +49,7 @@ config MACH_PCM037_EET
49config MACH_MX31LITE 49config MACH_MX31LITE
50 bool "Support MX31 LITEKIT (LogicPD)" 50 bool "Support MX31 LITEKIT (LogicPD)"
51 select ARCH_MX31 51 select ARCH_MX31
52 select MXC_ULPI if USB_ULPI
52 help 53 help
53 Include support for MX31 LITEKIT platform. This includes specific 54 Include support for MX31 LITEKIT platform. This includes specific
54 configurations for the board and its peripherals. 55 configurations for the board and its peripherals.
@@ -63,7 +64,7 @@ config MACH_MX31_3DS
63config MACH_MX31MOBOARD 64config MACH_MX31MOBOARD
64 bool "Support mx31moboard platforms (EPFL Mobots group)" 65 bool "Support mx31moboard platforms (EPFL Mobots group)"
65 select ARCH_MX31 66 select ARCH_MX31
66 select MXC_ULPI 67 select MXC_ULPI if USB_ULPI
67 help 68 help
68 Include support for mx31moboard platform. This includes specific 69 Include support for mx31moboard platform. This includes specific
69 configurations for the board and its peripherals. 70 configurations for the board and its peripherals.
diff --git a/arch/arm/mach-mx3/mm.c b/arch/arm/mach-mx3/mm.c
index bedf5b8d976a..6858a4f9806c 100644
--- a/arch/arm/mach-mx3/mm.c
+++ b/arch/arm/mach-mx3/mm.c
@@ -65,6 +65,11 @@ static struct map_desc mxc_io_desc[] __initdata = {
65 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), 65 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR),
66 .length = AIPS2_SIZE, 66 .length = AIPS2_SIZE,
67 .type = MT_DEVICE_NONSHARED 67 .type = MT_DEVICE_NONSHARED
68 }, {
69 .virtual = SPBA0_BASE_ADDR_VIRT,
70 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
71 .length = SPBA0_SIZE,
72 .type = MT_DEVICE_NONSHARED
68 }, 73 },
69}; 74};
70 75
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c
index 0497c152be18..3e7bafa2ddbb 100644
--- a/arch/arm/mach-mx3/mx31ads.c
+++ b/arch/arm/mach-mx3/mx31ads.c
@@ -494,11 +494,6 @@ static void mxc_init_i2c(void)
494 */ 494 */
495static struct map_desc mx31ads_io_desc[] __initdata = { 495static struct map_desc mx31ads_io_desc[] __initdata = {
496 { 496 {
497 .virtual = SPBA0_BASE_ADDR_VIRT,
498 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
499 .length = SPBA0_SIZE,
500 .type = MT_DEVICE_NONSHARED
501 }, {
502 .virtual = CS4_BASE_ADDR_VIRT, 497 .virtual = CS4_BASE_ADDR_VIRT,
503 .pfn = __phys_to_pfn(CS4_BASE_ADDR), 498 .pfn = __phys_to_pfn(CS4_BASE_ADDR),
504 .length = CS4_SIZE / 2, 499 .length = CS4_SIZE / 2,
diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c
index def6b6736594..789b20d1730f 100644
--- a/arch/arm/mach-mx3/mx31lite.c
+++ b/arch/arm/mach-mx3/mx31lite.c
@@ -135,6 +135,7 @@ static struct spi_board_info mc13783_spi_dev __initdata = {
135 * USB 135 * USB
136 */ 136 */
137 137
138#if defined(CONFIG_USB_ULPI)
138#define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \ 139#define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \
139 PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU) 140 PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU)
140 141
@@ -180,6 +181,7 @@ static struct mxc_usbh_platform_data usbh2_pdata = {
180 .portsc = MXC_EHCI_MODE_ULPI | MXC_EHCI_UTMI_8BIT, 181 .portsc = MXC_EHCI_MODE_ULPI | MXC_EHCI_UTMI_8BIT,
181 .flags = MXC_EHCI_POWER_PINS_ENABLED, 182 .flags = MXC_EHCI_POWER_PINS_ENABLED,
182}; 183};
184#endif
183 185
184/* 186/*
185 * NOR flash 187 * NOR flash
@@ -212,11 +214,6 @@ static struct platform_device physmap_flash_device = {
212 */ 214 */
213static struct map_desc mx31lite_io_desc[] __initdata = { 215static struct map_desc mx31lite_io_desc[] __initdata = {
214 { 216 {
215 .virtual = SPBA0_BASE_ADDR_VIRT,
216 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
217 .length = SPBA0_SIZE,
218 .type = MT_DEVICE_NONSHARED
219 }, {
220 .virtual = CS4_BASE_ADDR_VIRT, 217 .virtual = CS4_BASE_ADDR_VIRT,
221 .pfn = __phys_to_pfn(CS4_BASE_ADDR), 218 .pfn = __phys_to_pfn(CS4_BASE_ADDR),
222 .length = CS4_SIZE, 219 .length = CS4_SIZE,
@@ -261,11 +258,13 @@ static void __init mxc_board_init(void)
261 mxc_register_device(&mxc_spi_device1, &spi1_pdata); 258 mxc_register_device(&mxc_spi_device1, &spi1_pdata);
262 spi_register_board_info(&mc13783_spi_dev, 1); 259 spi_register_board_info(&mc13783_spi_dev, 1);
263 260
261#if defined(CONFIG_USB_ULPI)
264 /* USB */ 262 /* USB */
265 usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, 263 usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops,
266 USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); 264 USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT);
267 265
268 mxc_register_device(&mxc_usbh2, &usbh2_pdata); 266 mxc_register_device(&mxc_usbh2, &usbh2_pdata);
267#endif
269 268
270 /* SMSC9117 IRQ pin */ 269 /* SMSC9117 IRQ pin */
271 ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq"); 270 ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq");
diff --git a/arch/arm/mach-mx3/mx31moboard-devboard.c b/arch/arm/mach-mx3/mx31moboard-devboard.c
index 8fc624f141cb..438428eaf769 100644
--- a/arch/arm/mach-mx3/mx31moboard-devboard.c
+++ b/arch/arm/mach-mx3/mx31moboard-devboard.c
@@ -179,7 +179,7 @@ static int __init devboard_usbh1_init(void)
179 179
180 usbh1_pdata.otg = otg; 180 usbh1_pdata.otg = otg;
181 181
182 return mxc_register_device(&mx31_usbh1, &usbh1_pdata); 182 return mxc_register_device(&mxc_usbh1, &usbh1_pdata);
183} 183}
184 184
185/* 185/*
diff --git a/arch/arm/mach-mx3/mx31moboard-marxbot.c b/arch/arm/mach-mx3/mx31moboard-marxbot.c
index 85184a35e674..1f44b9ccbb0f 100644
--- a/arch/arm/mach-mx3/mx31moboard-marxbot.c
+++ b/arch/arm/mach-mx3/mx31moboard-marxbot.c
@@ -294,7 +294,7 @@ static int __init marxbot_usbh1_init(void)
294 294
295 usbh1_pdata.otg = otg; 295 usbh1_pdata.otg = otg;
296 296
297 return mxc_register_device(&mx31_usbh1, &usbh1_pdata); 297 return mxc_register_device(&mxc_usbh1, &usbh1_pdata);
298} 298}
299 299
300/* 300/*
diff --git a/arch/arm/mach-mx3/mx31moboard.c b/arch/arm/mach-mx3/mx31moboard.c
index b70529145936..cfd605d078ec 100644
--- a/arch/arm/mach-mx3/mx31moboard.c
+++ b/arch/arm/mach-mx3/mx31moboard.c
@@ -346,6 +346,8 @@ static struct fsl_usb2_platform_data usb_pdata = {
346 .phy_mode = FSL_USB2_PHY_ULPI, 346 .phy_mode = FSL_USB2_PHY_ULPI,
347}; 347};
348 348
349#if defined(CONFIG_USB_ULPI)
350
349#define USBH2_EN_B IOMUX_TO_GPIO(MX31_PIN_SCK6) 351#define USBH2_EN_B IOMUX_TO_GPIO(MX31_PIN_SCK6)
350 352
351static int moboard_usbh2_hw_init(struct platform_device *pdev) 353static int moboard_usbh2_hw_init(struct platform_device *pdev)
@@ -392,8 +394,11 @@ static int __init moboard_usbh2_init(void)
392 usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, 394 usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops,
393 USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); 395 USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT);
394 396
395 return mxc_register_device(&mx31_usbh2, &usbh2_pdata); 397 return mxc_register_device(&mxc_usbh2, &usbh2_pdata);
396} 398}
399#else
400static inline int moboard_usbh2_init(void) { return 0; }
401#endif
397 402
398 403
399static struct gpio_led mx31moboard_leds[] = { 404static struct gpio_led mx31moboard_leds[] = {
diff --git a/arch/arm/mach-mx3/mx31pdk.c b/arch/arm/mach-mx3/mx31pdk.c
index 0f7a2f06bc2d..18715f1aa7eb 100644
--- a/arch/arm/mach-mx3/mx31pdk.c
+++ b/arch/arm/mach-mx3/mx31pdk.c
@@ -211,11 +211,6 @@ static int __init mx31pdk_init_expio(void)
211 */ 211 */
212static struct map_desc mx31pdk_io_desc[] __initdata = { 212static struct map_desc mx31pdk_io_desc[] __initdata = {
213 { 213 {
214 .virtual = SPBA0_BASE_ADDR_VIRT,
215 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
216 .length = SPBA0_SIZE,
217 .type = MT_DEVICE_NONSHARED,
218 }, {
219 .virtual = CS5_BASE_ADDR_VIRT, 214 .virtual = CS5_BASE_ADDR_VIRT,
220 .pfn = __phys_to_pfn(CS5_BASE_ADDR), 215 .pfn = __phys_to_pfn(CS5_BASE_ADDR),
221 .length = CS5_SIZE, 216 .length = CS5_SIZE,
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c
index 6cbaabedf386..5be396917c99 100644
--- a/arch/arm/mach-mx3/pcm037.c
+++ b/arch/arm/mach-mx3/pcm037.c
@@ -322,16 +322,25 @@ static int pcm037_camera_power(struct device *dev, int on)
322 return 0; 322 return 0;
323} 323}
324 324
325static struct i2c_board_info pcm037_i2c_2_devices[] = { 325static struct i2c_board_info pcm037_i2c_camera[] = {
326 { 326 {
327 I2C_BOARD_INFO("mt9t031", 0x5d), 327 I2C_BOARD_INFO("mt9t031", 0x5d),
328 }, {
329 I2C_BOARD_INFO("mt9v022", 0x48),
328 }, 330 },
329}; 331};
330 332
331static struct soc_camera_link iclink = { 333static struct soc_camera_link iclink_mt9v022 = {
334 .bus_id = 0, /* Must match with the camera ID */
335 .board_info = &pcm037_i2c_camera[1],
336 .i2c_adapter_id = 2,
337 .module_name = "mt9v022",
338};
339
340static struct soc_camera_link iclink_mt9t031 = {
332 .bus_id = 0, /* Must match with the camera ID */ 341 .bus_id = 0, /* Must match with the camera ID */
333 .power = pcm037_camera_power, 342 .power = pcm037_camera_power,
334 .board_info = &pcm037_i2c_2_devices[0], 343 .board_info = &pcm037_i2c_camera[0],
335 .i2c_adapter_id = 2, 344 .i2c_adapter_id = 2,
336 .module_name = "mt9t031", 345 .module_name = "mt9t031",
337}; 346};
@@ -345,11 +354,19 @@ static struct i2c_board_info pcm037_i2c_devices[] = {
345 } 354 }
346}; 355};
347 356
348static struct platform_device pcm037_camera = { 357static struct platform_device pcm037_mt9t031 = {
349 .name = "soc-camera-pdrv", 358 .name = "soc-camera-pdrv",
350 .id = 0, 359 .id = 0,
351 .dev = { 360 .dev = {
352 .platform_data = &iclink, 361 .platform_data = &iclink_mt9t031,
362 },
363};
364
365static struct platform_device pcm037_mt9v022 = {
366 .name = "soc-camera-pdrv",
367 .id = 1,
368 .dev = {
369 .platform_data = &iclink_mt9v022,
353 }, 370 },
354}; 371};
355 372
@@ -449,7 +466,8 @@ static int __init pcm037_camera_alloc_dma(const size_t buf_size)
449static struct platform_device *devices[] __initdata = { 466static struct platform_device *devices[] __initdata = {
450 &pcm037_flash, 467 &pcm037_flash,
451 &pcm037_sram_device, 468 &pcm037_sram_device,
452 &pcm037_camera, 469 &pcm037_mt9t031,
470 &pcm037_mt9v022,
453}; 471};
454 472
455static struct ipu_platform_data mx3_ipu_data = { 473static struct ipu_platform_data mx3_ipu_data = {
@@ -599,7 +617,7 @@ static void __init mxc_board_init(void)
599 if (!ret) 617 if (!ret)
600 gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1); 618 gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1);
601 else 619 else
602 iclink.power = NULL; 620 iclink_mt9t031.power = NULL;
603 621
604 if (!pcm037_camera_alloc_dma(4 * 1024 * 1024)) 622 if (!pcm037_camera_alloc_dma(4 * 1024 * 1024))
605 mxc_register_device(&mx3_camera, &camera_pdata); 623 mxc_register_device(&mx3_camera, &camera_pdata);
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 8a0837ea0294..dee92182749b 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -37,6 +37,8 @@ config MACH_ZYLONITE320
37config MACH_LITTLETON 37config MACH_LITTLETON
38 bool "PXA3xx Form Factor Platform (aka Littleton)" 38 bool "PXA3xx Form Factor Platform (aka Littleton)"
39 select PXA3xx 39 select PXA3xx
40 select CPU_PXA300
41 select CPU_PXA310
40 select PXA_SSP 42 select PXA_SSP
41 43
42config MACH_TAVOREVB 44config MACH_TAVOREVB
diff --git a/arch/arm/mach-pxa/include/mach/zylonite.h b/arch/arm/mach-pxa/include/mach/zylonite.h
index bf6785adccf4..9edf645368d6 100644
--- a/arch/arm/mach-pxa/include/mach/zylonite.h
+++ b/arch/arm/mach-pxa/include/mach/zylonite.h
@@ -8,13 +8,6 @@
8/* the following variables are processor specific and initialized 8/* the following variables are processor specific and initialized
9 * by the corresponding zylonite_pxa3xx_init() 9 * by the corresponding zylonite_pxa3xx_init()
10 */ 10 */
11struct platform_mmc_slot {
12 int gpio_cd;
13 int gpio_wp;
14};
15
16extern struct platform_mmc_slot zylonite_mmc_slot[];
17
18extern int gpio_eth_irq; 11extern int gpio_eth_irq;
19extern int gpio_debug_led1; 12extern int gpio_debug_led1;
20extern int gpio_debug_led2; 13extern int gpio_debug_led2;
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index f28c1715b910..fa527b258d61 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -110,6 +110,12 @@ static mfp_cfg_t littleton_mfp_cfg[] __initdata = {
110 GPIO7_MMC1_CLK, 110 GPIO7_MMC1_CLK,
111 GPIO8_MMC1_CMD, 111 GPIO8_MMC1_CMD,
112 GPIO15_GPIO, /* card detect */ 112 GPIO15_GPIO, /* card detect */
113
114 /* UART3 */
115 GPIO107_UART3_CTS,
116 GPIO108_UART3_RTS,
117 GPIO109_UART3_TXD,
118 GPIO110_UART3_RXD,
113}; 119};
114 120
115static struct resource smc91x_resources[] = { 121static struct resource smc91x_resources[] = {
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index e5eeb3a62d01..c2b938a4d5c9 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -293,7 +293,7 @@ static struct pxamci_platform_data poodle_mci_platform_data = {
293 .init = poodle_mci_init, 293 .init = poodle_mci_init,
294 .setpower = poodle_mci_setpower, 294 .setpower = poodle_mci_setpower,
295 .exit = poodle_mci_exit, 295 .exit = poodle_mci_exit,
296 .gpio_card_detect = POODLE_IRQ_GPIO_nSD_DETECT, 296 .gpio_card_detect = POODLE_GPIO_nSD_DETECT,
297 .gpio_card_ro = POODLE_GPIO_nSD_WP, 297 .gpio_card_ro = POODLE_GPIO_nSD_WP,
298 .gpio_power = -1, 298 .gpio_power = -1,
299}; 299};
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
index 5b986a8bd9e6..75f2a37f945d 100644
--- a/arch/arm/mach-pxa/zeus.c
+++ b/arch/arm/mach-pxa/zeus.c
@@ -25,6 +25,7 @@
25#include <linux/mtd/physmap.h> 25#include <linux/mtd/physmap.h>
26#include <linux/i2c.h> 26#include <linux/i2c.h>
27#include <linux/i2c/pca953x.h> 27#include <linux/i2c/pca953x.h>
28#include <linux/apm-emulation.h>
28 29
29#include <asm/mach-types.h> 30#include <asm/mach-types.h>
30#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
@@ -626,8 +627,27 @@ static void zeus_power_off(void)
626 pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP); 627 pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP);
627} 628}
628 629
629int zeus_get_pcb_info(struct i2c_client *client, unsigned gpio, 630#ifdef CONFIG_APM_EMULATION
630 unsigned ngpio, void *context) 631static void zeus_get_power_status(struct apm_power_info *info)
632{
633 /* Power supply is always present */
634 info->ac_line_status = APM_AC_ONLINE;
635 info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT;
636 info->battery_flag = APM_BATTERY_FLAG_NOT_PRESENT;
637}
638
639static inline void zeus_setup_apm(void)
640{
641 apm_get_power_status = zeus_get_power_status;
642}
643#else
644static inline void zeus_setup_apm(void)
645{
646}
647#endif
648
649static int zeus_get_pcb_info(struct i2c_client *client, unsigned gpio,
650 unsigned ngpio, void *context)
631{ 651{
632 int i; 652 int i;
633 u8 pcb_info = 0; 653 u8 pcb_info = 0;
@@ -726,9 +746,18 @@ static mfp_cfg_t zeus_pin_config[] __initdata = {
726 GPIO99_GPIO, /* CF RDY */ 746 GPIO99_GPIO, /* CF RDY */
727}; 747};
728 748
749/*
750 * DM9k MSCx settings: SRAM, 16 bits
751 * 17 cycles delay first access
752 * 5 cycles delay next access
753 * 13 cycles recovery time
754 * faster device
755 */
756#define DM9K_MSC_VALUE 0xe4c9
757
729static void __init zeus_init(void) 758static void __init zeus_init(void)
730{ 759{
731 u16 dm9000_msc = 0xe279; 760 u16 dm9000_msc = DM9K_MSC_VALUE;
732 761
733 system_rev = __raw_readw(ZEUS_CPLD_VERSION); 762 system_rev = __raw_readw(ZEUS_CPLD_VERSION);
734 pr_info("Zeus CPLD V%dI%d\n", (system_rev & 0xf0) >> 4, (system_rev & 0x0f)); 763 pr_info("Zeus CPLD V%dI%d\n", (system_rev & 0xf0) >> 4, (system_rev & 0x0f));
@@ -738,6 +767,7 @@ static void __init zeus_init(void)
738 MSC1 = (MSC1 & 0xffff0000) | dm9000_msc; 767 MSC1 = (MSC1 & 0xffff0000) | dm9000_msc;
739 768
740 pm_power_off = zeus_power_off; 769 pm_power_off = zeus_power_off;
770 zeus_setup_apm();
741 771
742 pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config)); 772 pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config));
743 773
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index b66e9e2d06e7..2b4043c04d0c 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -36,9 +36,6 @@
36#include "devices.h" 36#include "devices.h"
37#include "generic.h" 37#include "generic.h"
38 38
39#define MAX_SLOTS 3
40struct platform_mmc_slot zylonite_mmc_slot[MAX_SLOTS];
41
42int gpio_eth_irq; 39int gpio_eth_irq;
43int gpio_debug_led1; 40int gpio_debug_led1;
44int gpio_debug_led2; 41int gpio_debug_led2;
@@ -220,84 +217,28 @@ static inline void zylonite_init_lcd(void) {}
220#endif 217#endif
221 218
222#if defined(CONFIG_MMC) 219#if defined(CONFIG_MMC)
223static int zylonite_mci_ro(struct device *dev)
224{
225 struct platform_device *pdev = to_platform_device(dev);
226
227 return gpio_get_value(zylonite_mmc_slot[pdev->id].gpio_wp);
228}
229
230static int zylonite_mci_init(struct device *dev,
231 irq_handler_t zylonite_detect_int,
232 void *data)
233{
234 struct platform_device *pdev = to_platform_device(dev);
235 int err, cd_irq, gpio_cd, gpio_wp;
236
237 cd_irq = gpio_to_irq(zylonite_mmc_slot[pdev->id].gpio_cd);
238 gpio_cd = zylonite_mmc_slot[pdev->id].gpio_cd;
239 gpio_wp = zylonite_mmc_slot[pdev->id].gpio_wp;
240
241 /*
242 * setup GPIO for Zylonite MMC controller
243 */
244 err = gpio_request(gpio_cd, "mmc card detect");
245 if (err)
246 goto err_request_cd;
247 gpio_direction_input(gpio_cd);
248
249 err = gpio_request(gpio_wp, "mmc write protect");
250 if (err)
251 goto err_request_wp;
252 gpio_direction_input(gpio_wp);
253
254 err = request_irq(cd_irq, zylonite_detect_int,
255 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
256 "MMC card detect", data);
257 if (err) {
258 printk(KERN_ERR "%s: MMC/SD/SDIO: "
259 "can't request card detect IRQ\n", __func__);
260 goto err_request_irq;
261 }
262
263 return 0;
264
265err_request_irq:
266 gpio_free(gpio_wp);
267err_request_wp:
268 gpio_free(gpio_cd);
269err_request_cd:
270 return err;
271}
272
273static void zylonite_mci_exit(struct device *dev, void *data)
274{
275 struct platform_device *pdev = to_platform_device(dev);
276 int cd_irq, gpio_cd, gpio_wp;
277
278 cd_irq = gpio_to_irq(zylonite_mmc_slot[pdev->id].gpio_cd);
279 gpio_cd = zylonite_mmc_slot[pdev->id].gpio_cd;
280 gpio_wp = zylonite_mmc_slot[pdev->id].gpio_wp;
281
282 free_irq(cd_irq, data);
283 gpio_free(gpio_cd);
284 gpio_free(gpio_wp);
285}
286
287static struct pxamci_platform_data zylonite_mci_platform_data = { 220static struct pxamci_platform_data zylonite_mci_platform_data = {
288 .detect_delay = 20, 221 .detect_delay = 20,
289 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 222 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
290 .init = zylonite_mci_init, 223 .gpio_card_detect = EXT_GPIO(0),
291 .exit = zylonite_mci_exit, 224 .gpio_card_ro = EXT_GPIO(2),
292 .get_ro = zylonite_mci_ro,
293 .gpio_card_detect = -1,
294 .gpio_card_ro = -1,
295 .gpio_power = -1, 225 .gpio_power = -1,
296}; 226};
297 227
298static struct pxamci_platform_data zylonite_mci2_platform_data = { 228static struct pxamci_platform_data zylonite_mci2_platform_data = {
299 .detect_delay = 20, 229 .detect_delay = 20,
300 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 230 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
231 .gpio_card_detect = EXT_GPIO(1),
232 .gpio_card_ro = EXT_GPIO(3),
233 .gpio_power = -1,
234};
235
236static struct pxamci_platform_data zylonite_mci3_platform_data = {
237 .detect_delay = 20,
238 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
239 .gpio_card_detect = EXT_GPIO(30),
240 .gpio_card_ro = EXT_GPIO(31),
241 .gpio_power = -1,
301}; 242};
302 243
303static void __init zylonite_init_mmc(void) 244static void __init zylonite_init_mmc(void)
@@ -305,7 +246,7 @@ static void __init zylonite_init_mmc(void)
305 pxa_set_mci_info(&zylonite_mci_platform_data); 246 pxa_set_mci_info(&zylonite_mci_platform_data);
306 pxa3xx_set_mci2_info(&zylonite_mci2_platform_data); 247 pxa3xx_set_mci2_info(&zylonite_mci2_platform_data);
307 if (cpu_is_pxa310()) 248 if (cpu_is_pxa310())
308 pxa3xx_set_mci3_info(&zylonite_mci_platform_data); 249 pxa3xx_set_mci3_info(&zylonite_mci3_platform_data);
309} 250}
310#else 251#else
311static inline void zylonite_init_mmc(void) {} 252static inline void zylonite_init_mmc(void) {}
diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c
index 84095440a878..3aa73b3e33f2 100644
--- a/arch/arm/mach-pxa/zylonite_pxa300.c
+++ b/arch/arm/mach-pxa/zylonite_pxa300.c
@@ -129,8 +129,8 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
129 GPIO22_I2C_SDA, 129 GPIO22_I2C_SDA,
130 130
131 /* GPIO */ 131 /* GPIO */
132 GPIO18_GPIO, /* GPIO Expander #0 INT_N */ 132 GPIO18_GPIO | MFP_PULL_HIGH, /* GPIO Expander #0 INT_N */
133 GPIO19_GPIO, /* GPIO Expander #1 INT_N */ 133 GPIO19_GPIO | MFP_PULL_HIGH, /* GPIO Expander #1 INT_N */
134}; 134};
135 135
136static mfp_cfg_t pxa300_mfp_cfg[] __initdata = { 136static mfp_cfg_t pxa300_mfp_cfg[] __initdata = {
@@ -258,10 +258,6 @@ void __init zylonite_pxa300_init(void)
258 /* detect LCD panel */ 258 /* detect LCD panel */
259 zylonite_detect_lcd_panel(); 259 zylonite_detect_lcd_panel();
260 260
261 /* MMC card detect & write protect for controller 0 */
262 zylonite_mmc_slot[0].gpio_cd = EXT_GPIO(0);
263 zylonite_mmc_slot[0].gpio_wp = EXT_GPIO(2);
264
265 /* WM9713 IRQ */ 261 /* WM9713 IRQ */
266 wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO26); 262 wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO26);
267 263
@@ -276,10 +272,6 @@ void __init zylonite_pxa300_init(void)
276 if (cpu_is_pxa310()) { 272 if (cpu_is_pxa310()) {
277 pxa3xx_mfp_config(ARRAY_AND_SIZE(pxa310_mfp_cfg)); 273 pxa3xx_mfp_config(ARRAY_AND_SIZE(pxa310_mfp_cfg));
278 gpio_eth_irq = mfp_to_gpio(MFP_PIN_GPIO102); 274 gpio_eth_irq = mfp_to_gpio(MFP_PIN_GPIO102);
279
280 /* MMC card detect & write protect for controller 2 */
281 zylonite_mmc_slot[2].gpio_cd = EXT_GPIO(30);
282 zylonite_mmc_slot[2].gpio_wp = EXT_GPIO(31);
283 } 275 }
284 276
285 /* GPIOs for Debug LEDs */ 277 /* GPIOs for Debug LEDs */
diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c
index 60d08f23f5e4..9942bac4cf7d 100644
--- a/arch/arm/mach-pxa/zylonite_pxa320.c
+++ b/arch/arm/mach-pxa/zylonite_pxa320.c
@@ -209,10 +209,6 @@ void __init zylonite_pxa320_init(void)
209 gpio_debug_led1 = mfp_to_gpio(MFP_PIN_GPIO1_2); 209 gpio_debug_led1 = mfp_to_gpio(MFP_PIN_GPIO1_2);
210 gpio_debug_led2 = mfp_to_gpio(MFP_PIN_GPIO4_2); 210 gpio_debug_led2 = mfp_to_gpio(MFP_PIN_GPIO4_2);
211 211
212 /* MMC card detect & write protect for controller 0 */
213 zylonite_mmc_slot[0].gpio_cd = mfp_to_gpio(MFP_PIN_GPIO1);
214 zylonite_mmc_slot[0].gpio_wp = mfp_to_gpio(MFP_PIN_GPIO5);
215
216 /* WM9713 IRQ */ 212 /* WM9713 IRQ */
217 wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO15); 213 wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO15);
218 } 214 }
diff --git a/arch/arm/mach-s3c2410/include/mach/ts.h b/arch/arm/mach-s3c2410/include/mach/ts.h
new file mode 100644
index 000000000000..dc361700d695
--- /dev/null
+++ b/arch/arm/mach-s3c2410/include/mach/ts.h
@@ -0,0 +1,21 @@
1/* linux/include/asm/arch-s3c2410/ts.h
2 *
3 * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8*/
9
10#ifndef __ASM_ARM_TS_H
11#define __ASM_ARM_TS_H
12
13struct s3c2410_ts_mach_info {
14 int delay;
15 int presc;
16 int oversampling_shift;
17};
18
19extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *);
20
21#endif /* __ASM_ARM_TS_H */
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 4c79ac8a6c33..97162fdd0590 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -279,6 +279,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = {
279 .name = "SmartMedia", 279 .name = "SmartMedia",
280 .nr_chips = 1, 280 .nr_chips = 1,
281 .nr_map = smartmedia_map, 281 .nr_map = smartmedia_map,
282 .options = NAND_SCAN_SILENT_NODEV,
282 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 283 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
283 .partitions = bast_default_nand_part, 284 .partitions = bast_default_nand_part,
284 }, 285 },
@@ -293,6 +294,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = {
293 .name = "chip1", 294 .name = "chip1",
294 .nr_chips = 1, 295 .nr_chips = 1,
295 .nr_map = chip1_map, 296 .nr_map = chip1_map,
297 .options = NAND_SCAN_SILENT_NODEV,
296 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 298 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
297 .partitions = bast_default_nand_part, 299 .partitions = bast_default_nand_part,
298 }, 300 },
@@ -300,6 +302,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = {
300 .name = "chip2", 302 .name = "chip2",
301 .nr_chips = 1, 303 .nr_chips = 1,
302 .nr_map = chip2_map, 304 .nr_map = chip2_map,
305 .options = NAND_SCAN_SILENT_NODEV,
303 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 306 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
304 .partitions = bast_default_nand_part, 307 .partitions = bast_default_nand_part,
305 } 308 }
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index 49053254c98d..1e34abe1a19e 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -46,6 +46,7 @@
46#include <mach/h1940.h> 46#include <mach/h1940.h>
47#include <mach/h1940-latch.h> 47#include <mach/h1940-latch.h>
48#include <mach/fb.h> 48#include <mach/fb.h>
49#include <mach/ts.h>
49#include <plat/udc.h> 50#include <plat/udc.h>
50#include <plat/iic.h> 51#include <plat/iic.h>
51 52
@@ -140,6 +141,11 @@ static struct s3c2410_udc_mach_info h1940_udc_cfg __initdata = {
140 .vbus_pin_inverted = 1, 141 .vbus_pin_inverted = 1,
141}; 142};
142 143
144static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = {
145 .delay = 10000,
146 .presc = 49,
147 .oversampling_shift = 2,
148};
143 149
144/** 150/**
145 * Set lcd on or off 151 * Set lcd on or off
@@ -265,6 +271,7 @@ static struct platform_device h1940_lcd_powerdev = {
265}; 271};
266 272
267static struct platform_device *h1940_devices[] __initdata = { 273static struct platform_device *h1940_devices[] __initdata = {
274 &s3c_device_ts,
268 &s3c_device_usb, 275 &s3c_device_usb,
269 &s3c_device_lcd, 276 &s3c_device_lcd,
270 &s3c_device_wdt, 277 &s3c_device_wdt,
@@ -305,6 +312,7 @@ static void __init h1940_init(void)
305 312
306 s3c24xx_fb_set_platdata(&h1940_fb_info); 313 s3c24xx_fb_set_platdata(&h1940_fb_info);
307 s3c24xx_udc_set_platdata(&h1940_udc_cfg); 314 s3c24xx_udc_set_platdata(&h1940_udc_cfg);
315 s3c24xx_ts_set_platdata(&h1940_ts_cfg);
308 s3c_i2c0_set_platdata(NULL); 316 s3c_i2c0_set_platdata(NULL);
309 317
310 s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg; 318 s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg;
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c
index 015dfb2a80da..f35371db33f5 100644
--- a/arch/arm/mach-s3c2440/mach-osiris.c
+++ b/arch/arm/mach-s3c2440/mach-osiris.c
@@ -208,6 +208,7 @@ static struct s3c2410_nand_set __initdata osiris_nand_sets[] = {
208 .name = "External", 208 .name = "External",
209 .nr_chips = 1, 209 .nr_chips = 1,
210 .nr_map = external_map, 210 .nr_map = external_map,
211 .options = NAND_SCAN_SILENT_NODEV,
211 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part), 212 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part),
212 .partitions = osiris_default_nand_part, 213 .partitions = osiris_default_nand_part,
213 }, 214 },
@@ -222,6 +223,7 @@ static struct s3c2410_nand_set __initdata osiris_nand_sets[] = {
222 .name = "chip1", 223 .name = "chip1",
223 .nr_chips = 1, 224 .nr_chips = 1,
224 .nr_map = chip1_map, 225 .nr_map = chip1_map,
226 .options = NAND_SCAN_SILENT_NODEV,
225 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part), 227 .nr_partitions = ARRAY_SIZE(osiris_default_nand_part),
226 .partitions = osiris_default_nand_part, 228 .partitions = osiris_default_nand_part,
227 }, 229 },
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h
index 940640066857..ce228bdc66dd 100644
--- a/arch/arm/mach-w90x900/include/mach/system.h
+++ b/arch/arm/mach-w90x900/include/mach/system.h
@@ -15,7 +15,15 @@
15 * 15 *
16 */ 16 */
17 17
18#include <linux/io.h>
18#include <asm/proc-fns.h> 19#include <asm/proc-fns.h>
20#include <mach/map.h>
21#include <mach/regs-timer.h>
22
23#define WTCR (TMR_BA + 0x1C)
24#define WTCLK (1 << 10)
25#define WTE (1 << 7)
26#define WTRE (1 << 1)
19 27
20static void arch_idle(void) 28static void arch_idle(void)
21{ 29{
@@ -23,6 +31,11 @@ static void arch_idle(void)
23 31
24static void arch_reset(char mode, const char *cmd) 32static void arch_reset(char mode, const char *cmd)
25{ 33{
26 cpu_reset(0); 34 if (mode == 's') {
35 /* Jump into ROM at address 0 */
36 cpu_reset(0);
37 } else {
38 __raw_writel(WTE | WTRE | WTCLK, WTCR);
39 }
27} 40}
28 41
diff --git a/arch/arm/mach-w90x900/time.c b/arch/arm/mach-w90x900/time.c
index 4128af870b41..b80f769bc135 100644
--- a/arch/arm/mach-w90x900/time.c
+++ b/arch/arm/mach-w90x900/time.c
@@ -42,7 +42,10 @@
42#define TICKS_PER_SEC 100 42#define TICKS_PER_SEC 100
43#define PRESCALE 0x63 /* Divider = prescale + 1 */ 43#define PRESCALE 0x63 /* Divider = prescale + 1 */
44 44
45unsigned int timer0_load; 45#define TDR_SHIFT 24
46#define TDR_MASK ((1 << TDR_SHIFT) - 1)
47
48static unsigned int timer0_load;
46 49
47static void nuc900_clockevent_setmode(enum clock_event_mode mode, 50static void nuc900_clockevent_setmode(enum clock_event_mode mode,
48 struct clock_event_device *clk) 51 struct clock_event_device *clk)
@@ -88,7 +91,7 @@ static int nuc900_clockevent_setnextevent(unsigned long evt,
88static struct clock_event_device nuc900_clockevent_device = { 91static struct clock_event_device nuc900_clockevent_device = {
89 .name = "nuc900-timer0", 92 .name = "nuc900-timer0",
90 .shift = 32, 93 .shift = 32,
91 .features = CLOCK_EVT_MODE_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, 94 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
92 .set_mode = nuc900_clockevent_setmode, 95 .set_mode = nuc900_clockevent_setmode,
93 .set_next_event = nuc900_clockevent_setnextevent, 96 .set_next_event = nuc900_clockevent_setnextevent,
94 .rating = 300, 97 .rating = 300,
@@ -112,8 +115,23 @@ static struct irqaction nuc900_timer0_irq = {
112 .handler = nuc900_timer0_interrupt, 115 .handler = nuc900_timer0_interrupt,
113}; 116};
114 117
115static void __init nuc900_clockevents_init(unsigned int rate) 118static void __init nuc900_clockevents_init(void)
116{ 119{
120 unsigned int rate;
121 struct clk *clk = clk_get(NULL, "timer0");
122
123 BUG_ON(IS_ERR(clk));
124
125 __raw_writel(0x00, REG_TCSR0);
126
127 clk_enable(clk);
128 rate = clk_get_rate(clk) / (PRESCALE + 1);
129
130 timer0_load = (rate / TICKS_PER_SEC);
131
132 __raw_writel(RESETINT, REG_TISR);
133 setup_irq(IRQ_TIMER0, &nuc900_timer0_irq);
134
117 nuc900_clockevent_device.mult = div_sc(rate, NSEC_PER_SEC, 135 nuc900_clockevent_device.mult = div_sc(rate, NSEC_PER_SEC,
118 nuc900_clockevent_device.shift); 136 nuc900_clockevent_device.shift);
119 nuc900_clockevent_device.max_delta_ns = clockevent_delta2ns(0xffffffff, 137 nuc900_clockevent_device.max_delta_ns = clockevent_delta2ns(0xffffffff,
@@ -127,26 +145,35 @@ static void __init nuc900_clockevents_init(unsigned int rate)
127 145
128static cycle_t nuc900_get_cycles(struct clocksource *cs) 146static cycle_t nuc900_get_cycles(struct clocksource *cs)
129{ 147{
130 return ~__raw_readl(REG_TDR1); 148 return (~__raw_readl(REG_TDR1)) & TDR_MASK;
131} 149}
132 150
133static struct clocksource clocksource_nuc900 = { 151static struct clocksource clocksource_nuc900 = {
134 .name = "nuc900-timer1", 152 .name = "nuc900-timer1",
135 .rating = 200, 153 .rating = 200,
136 .read = nuc900_get_cycles, 154 .read = nuc900_get_cycles,
137 .mask = CLOCKSOURCE_MASK(32), 155 .mask = CLOCKSOURCE_MASK(TDR_SHIFT),
138 .shift = 20, 156 .shift = 10,
139 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 157 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
140}; 158};
141 159
142static void __init nuc900_clocksource_init(unsigned int rate) 160static void __init nuc900_clocksource_init(void)
143{ 161{
144 unsigned int val; 162 unsigned int val;
163 unsigned int rate;
164 struct clk *clk = clk_get(NULL, "timer1");
165
166 BUG_ON(IS_ERR(clk));
167
168 __raw_writel(0x00, REG_TCSR1);
169
170 clk_enable(clk);
171 rate = clk_get_rate(clk) / (PRESCALE + 1);
145 172
146 __raw_writel(0xffffffff, REG_TICR1); 173 __raw_writel(0xffffffff, REG_TICR1);
147 174
148 val = __raw_readl(REG_TCSR1); 175 val = __raw_readl(REG_TCSR1);
149 val |= (COUNTEN | PERIOD); 176 val |= (COUNTEN | PERIOD | PRESCALE);
150 __raw_writel(val, REG_TCSR1); 177 __raw_writel(val, REG_TCSR1);
151 178
152 clocksource_nuc900.mult = 179 clocksource_nuc900.mult =
@@ -156,25 +183,8 @@ static void __init nuc900_clocksource_init(unsigned int rate)
156 183
157static void __init nuc900_timer_init(void) 184static void __init nuc900_timer_init(void)
158{ 185{
159 struct clk *ck_ext = clk_get(NULL, "ext"); 186 nuc900_clocksource_init();
160 unsigned int rate; 187 nuc900_clockevents_init();
161
162 BUG_ON(IS_ERR(ck_ext));
163
164 rate = clk_get_rate(ck_ext);
165 clk_put(ck_ext);
166 rate = rate / (PRESCALE + 0x01);
167
168 /* set a known state */
169 __raw_writel(0x00, REG_TCSR0);
170 __raw_writel(0x00, REG_TCSR1);
171 __raw_writel(RESETINT, REG_TISR);
172 timer0_load = (rate / TICKS_PER_SEC);
173
174 setup_irq(IRQ_TIMER0, &nuc900_timer0_irq);
175
176 nuc900_clocksource_init(rate);
177 nuc900_clockevents_init(rate);
178} 188}
179 189
180struct sys_timer nuc900_timer = { 190struct sys_timer nuc900_timer = {
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S
index a26a605b73bd..0cb1848bd876 100644
--- a/arch/arm/mm/tlb-v7.S
+++ b/arch/arm/mm/tlb-v7.S
@@ -40,7 +40,6 @@ ENTRY(v7wbi_flush_user_tlb_range)
40 asid r3, r3 @ mask ASID 40 asid r3, r3 @ mask ASID
41 orr r0, r3, r0, lsl #PAGE_SHIFT @ Create initial MVA 41 orr r0, r3, r0, lsl #PAGE_SHIFT @ Create initial MVA
42 mov r1, r1, lsl #PAGE_SHIFT 42 mov r1, r1, lsl #PAGE_SHIFT
43 vma_vm_flags r2, r2 @ get vma->vm_flags
441: 431:
45#ifdef CONFIG_SMP 44#ifdef CONFIG_SMP
46 mcr p15, 0, r0, c8, c3, 1 @ TLB invalidate U MVA (shareable) 45 mcr p15, 0, r0, c8, c3, 1 @ TLB invalidate U MVA (shareable)
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
index 810c47f56e77..9af494f0ab3d 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h
@@ -58,19 +58,19 @@
58 58
59#define MX25_PAD_A18__A18 IOMUX_PAD(0x23c, 0x020, 0x10, 0, 0, NO_PAD_CTRL) 59#define MX25_PAD_A18__A18 IOMUX_PAD(0x23c, 0x020, 0x10, 0, 0, NO_PAD_CTRL)
60#define MX25_PAD_A18__GPIO_2_4 IOMUX_PAD(0x23c, 0x020, 0x15, 0, 0, NO_PAD_CTRL) 60#define MX25_PAD_A18__GPIO_2_4 IOMUX_PAD(0x23c, 0x020, 0x15, 0, 0, NO_PAD_CTRL)
61#define MX25_PAD_A18__FEC_COL IOMUX_PAD(0x23c, 0x020, 0x17, 0x504, 0, NO_PAD_CTL) 61#define MX25_PAD_A18__FEC_COL IOMUX_PAD(0x23c, 0x020, 0x17, 0x504, 0, NO_PAD_CTRL)
62 62
63#define MX25_PAD_A19__A19 IOMUX_PAD(0x240, 0x024, 0x10, 0, 0, NO_PAD_CTRL) 63#define MX25_PAD_A19__A19 IOMUX_PAD(0x240, 0x024, 0x10, 0, 0, NO_PAD_CTRL)
64#define MX25_PAD_A19__FEC_RX_ER IOMUX_PAD(0x240, 0x024, 0x17, 0x518, 0, NO_PAD_CTL) 64#define MX25_PAD_A19__FEC_RX_ER IOMUX_PAD(0x240, 0x024, 0x17, 0x518, 0, NO_PAD_CTRL)
65#define MX25_PAD_A19__GPIO_2_5 IOMUX_PAD(0x240, 0x024, 0x15, 0, 0, NO_PAD_CTRL) 65#define MX25_PAD_A19__GPIO_2_5 IOMUX_PAD(0x240, 0x024, 0x15, 0, 0, NO_PAD_CTRL)
66 66
67#define MX25_PAD_A20__A20 IOMUX_PAD(0x244, 0x028, 0x10, 0, 0, NO_PAD_CTRL) 67#define MX25_PAD_A20__A20 IOMUX_PAD(0x244, 0x028, 0x10, 0, 0, NO_PAD_CTRL)
68#define MX25_PAD_A20__GPIO_2_6 IOMUX_PAD(0x244, 0x028, 0x15, 0, 0, NO_PAD_CTRL) 68#define MX25_PAD_A20__GPIO_2_6 IOMUX_PAD(0x244, 0x028, 0x15, 0, 0, NO_PAD_CTRL)
69#define MX25_PAD_A20__FEC_RDATA2 IOMUX_PAD(0x244, 0x028, 0x17, 0x50c, 0, NO_PAD_CTL) 69#define MX25_PAD_A20__FEC_RDATA2 IOMUX_PAD(0x244, 0x028, 0x17, 0x50c, 0, NO_PAD_CTRL)
70 70
71#define MX25_PAD_A21__A21 IOMUX_PAD(0x248, 0x02c, 0x10, 0, 0, NO_PAD_CTRL) 71#define MX25_PAD_A21__A21 IOMUX_PAD(0x248, 0x02c, 0x10, 0, 0, NO_PAD_CTRL)
72#define MX25_PAD_A21__GPIO_2_7 IOMUX_PAD(0x248, 0x02c, 0x15, 0, 0, NO_PAD_CTRL) 72#define MX25_PAD_A21__GPIO_2_7 IOMUX_PAD(0x248, 0x02c, 0x15, 0, 0, NO_PAD_CTRL)
73#define MX25_PAD_A21__FEC_RDATA3 IOMUX_PAD(0x248, 0x02c, 0x17, 0x510, 0, NO_PAD_CTL) 73#define MX25_PAD_A21__FEC_RDATA3 IOMUX_PAD(0x248, 0x02c, 0x17, 0x510, 0, NO_PAD_CTRL)
74 74
75#define MX25_PAD_A22__A22 IOMUX_PAD(0x000, 0x030, 0x10, 0, 0, NO_PAD_CTRL) 75#define MX25_PAD_A22__A22 IOMUX_PAD(0x000, 0x030, 0x10, 0, 0, NO_PAD_CTRL)
76#define MX25_PAD_A22__GPIO_2_8 IOMUX_PAD(0x000, 0x030, 0x15, 0, 0, NO_PAD_CTRL) 76#define MX25_PAD_A22__GPIO_2_8 IOMUX_PAD(0x000, 0x030, 0x15, 0, 0, NO_PAD_CTRL)
@@ -80,11 +80,11 @@
80 80
81#define MX25_PAD_A24__A24 IOMUX_PAD(0x250, 0x038, 0x10, 0, 0, NO_PAD_CTRL) 81#define MX25_PAD_A24__A24 IOMUX_PAD(0x250, 0x038, 0x10, 0, 0, NO_PAD_CTRL)
82#define MX25_PAD_A24__GPIO_2_10 IOMUX_PAD(0x250, 0x038, 0x15, 0, 0, NO_PAD_CTRL) 82#define MX25_PAD_A24__GPIO_2_10 IOMUX_PAD(0x250, 0x038, 0x15, 0, 0, NO_PAD_CTRL)
83#define MX25_PAD_A24__FEC_RX_CLK IOMUX_PAD(0x250, 0x038, 0x17, 0x514, 0, NO_PAD_CTL) 83#define MX25_PAD_A24__FEC_RX_CLK IOMUX_PAD(0x250, 0x038, 0x17, 0x514, 0, NO_PAD_CTRL)
84 84
85#define MX25_PAD_A25__A25 IOMUX_PAD(0x254, 0x03c, 0x10, 0, 0, NO_PAD_CTRL) 85#define MX25_PAD_A25__A25 IOMUX_PAD(0x254, 0x03c, 0x10, 0, 0, NO_PAD_CTRL)
86#define MX25_PAD_A25__GPIO_2_11 IOMUX_PAD(0x254, 0x03c, 0x15, 0, 0, NO_PAD_CTRL) 86#define MX25_PAD_A25__GPIO_2_11 IOMUX_PAD(0x254, 0x03c, 0x15, 0, 0, NO_PAD_CTRL)
87#define MX25_PAD_A25__FEC_CRS IOMUX_PAD(0x254, 0x03c, 0x17, 0x508, 0, NO_PAD_CTL) 87#define MX25_PAD_A25__FEC_CRS IOMUX_PAD(0x254, 0x03c, 0x17, 0x508, 0, NO_PAD_CTRL)
88 88
89#define MX25_PAD_EB0__EB0 IOMUX_PAD(0x258, 0x040, 0x10, 0, 0, NO_PAD_CTRL) 89#define MX25_PAD_EB0__EB0 IOMUX_PAD(0x258, 0x040, 0x10, 0, 0, NO_PAD_CTRL)
90#define MX25_PAD_EB0__AUD4_TXD IOMUX_PAD(0x258, 0x040, 0x14, 0x464, 0, NO_PAD_CTRL) 90#define MX25_PAD_EB0__AUD4_TXD IOMUX_PAD(0x258, 0x040, 0x14, 0x464, 0, NO_PAD_CTRL)
@@ -112,7 +112,7 @@
112#define MX25_PAD_CS5__UART5_RTS IOMUX_PAD(0x268, 0x058, 0x13, 0x574, 0, NO_PAD_CTRL) 112#define MX25_PAD_CS5__UART5_RTS IOMUX_PAD(0x268, 0x058, 0x13, 0x574, 0, NO_PAD_CTRL)
113#define MX25_PAD_CS5__GPIO_3_21 IOMUX_PAD(0x268, 0x058, 0x15, 0, 0, NO_PAD_CTRL) 113#define MX25_PAD_CS5__GPIO_3_21 IOMUX_PAD(0x268, 0x058, 0x15, 0, 0, NO_PAD_CTRL)
114 114
115#define MX25_PAD_NF_CE0__NF_CE0 IOMUX_PAD(0x26c, 0x05c, 0x10, 0, 0, NO_PAD_CTL) 115#define MX25_PAD_NF_CE0__NF_CE0 IOMUX_PAD(0x26c, 0x05c, 0x10, 0, 0, NO_PAD_CTRL)
116#define MX25_PAD_NF_CE0__GPIO_3_22 IOMUX_PAD(0x26c, 0x05c, 0x15, 0, 0, NO_PAD_CTRL) 116#define MX25_PAD_NF_CE0__GPIO_3_22 IOMUX_PAD(0x26c, 0x05c, 0x15, 0, 0, NO_PAD_CTRL)
117 117
118#define MX25_PAD_ECB__ECB IOMUX_PAD(0x270, 0x060, 0x10, 0, 0, NO_PAD_CTRL) 118#define MX25_PAD_ECB__ECB IOMUX_PAD(0x270, 0x060, 0x10, 0, 0, NO_PAD_CTRL)
@@ -229,28 +229,28 @@
229#define MX25_PAD_LD7__GPIO_1_21 IOMUX_PAD(0x2dc, 0x0e4, 0x15, 0, 0, NO_PAD_CTRL) 229#define MX25_PAD_LD7__GPIO_1_21 IOMUX_PAD(0x2dc, 0x0e4, 0x15, 0, 0, NO_PAD_CTRL)
230 230
231#define MX25_PAD_LD8__LD8 IOMUX_PAD(0x2e0, 0x0e8, 0x10, 0, 0, NO_PAD_CTRL) 231#define MX25_PAD_LD8__LD8 IOMUX_PAD(0x2e0, 0x0e8, 0x10, 0, 0, NO_PAD_CTRL)
232#define MX25_PAD_LD8__FEC_TX_ERR IOMUX_PAD(0x2e0, 0x0e8, 0x15, 0, 0, NO_PAD_CTL) 232#define MX25_PAD_LD8__FEC_TX_ERR IOMUX_PAD(0x2e0, 0x0e8, 0x15, 0, 0, NO_PAD_CTRL)
233 233
234#define MX25_PAD_LD9__LD9 IOMUX_PAD(0x2e4, 0x0ec, 0x10, 0, 0, NO_PAD_CTRL) 234#define MX25_PAD_LD9__LD9 IOMUX_PAD(0x2e4, 0x0ec, 0x10, 0, 0, NO_PAD_CTRL)
235#define MX25_PAD_LD9__FEC_COL IOMUX_PAD(0x2e4, 0x0ec, 0x15, 0x504, 1, NO_PAD_CTL) 235#define MX25_PAD_LD9__FEC_COL IOMUX_PAD(0x2e4, 0x0ec, 0x15, 0x504, 1, NO_PAD_CTRL)
236 236
237#define MX25_PAD_LD10__LD10 IOMUX_PAD(0x2e8, 0x0f0, 0x10, 0, 0, NO_PAD_CTRL) 237#define MX25_PAD_LD10__LD10 IOMUX_PAD(0x2e8, 0x0f0, 0x10, 0, 0, NO_PAD_CTRL)
238#define MX25_PAD_LD10__FEC_RX_ER IOMUX_PAD(0x2e8, 0x0f0, 0x15, 0x518, 1, NO_PAD_CTL) 238#define MX25_PAD_LD10__FEC_RX_ER IOMUX_PAD(0x2e8, 0x0f0, 0x15, 0x518, 1, NO_PAD_CTRL)
239 239
240#define MX25_PAD_LD11__LD11 IOMUX_PAD(0x2ec, 0x0f4, 0x10, 0, 0, NO_PAD_CTRL) 240#define MX25_PAD_LD11__LD11 IOMUX_PAD(0x2ec, 0x0f4, 0x10, 0, 0, NO_PAD_CTRL)
241#define MX25_PAD_LD11__FEC_RDATA2 IOMUX_PAD(0x2ec, 0x0f4, 0x15, 0x50c, 1, NO_PAD_CTL) 241#define MX25_PAD_LD11__FEC_RDATA2 IOMUX_PAD(0x2ec, 0x0f4, 0x15, 0x50c, 1, NO_PAD_CTRL)
242 242
243#define MX25_PAD_LD12__LD12 IOMUX_PAD(0x2f0, 0x0f8, 0x10, 0, 0, NO_PAD_CTRL) 243#define MX25_PAD_LD12__LD12 IOMUX_PAD(0x2f0, 0x0f8, 0x10, 0, 0, NO_PAD_CTRL)
244#define MX25_PAD_LD12__FEC_RDATA3 IOMUX_PAD(0x2f0, 0x0f8, 0x15, 0x510, 1, NO_PAD_CTL) 244#define MX25_PAD_LD12__FEC_RDATA3 IOMUX_PAD(0x2f0, 0x0f8, 0x15, 0x510, 1, NO_PAD_CTRL)
245 245
246#define MX25_PAD_LD13__LD13 IOMUX_PAD(0x2f4, 0x0fc, 0x10, 0, 0, NO_PAD_CTRL) 246#define MX25_PAD_LD13__LD13 IOMUX_PAD(0x2f4, 0x0fc, 0x10, 0, 0, NO_PAD_CTRL)
247#define MX25_PAD_LD13__FEC_TDATA2 IOMUX_PAD(0x2f4, 0x0fc, 0x15, 0, 0, NO_PAD_CTL) 247#define MX25_PAD_LD13__FEC_TDATA2 IOMUX_PAD(0x2f4, 0x0fc, 0x15, 0, 0, NO_PAD_CTRL)
248 248
249#define MX25_PAD_LD14__LD14 IOMUX_PAD(0x2f8, 0x100, 0x10, 0, 0, NO_PAD_CTRL) 249#define MX25_PAD_LD14__LD14 IOMUX_PAD(0x2f8, 0x100, 0x10, 0, 0, NO_PAD_CTRL)
250#define MX25_PAD_LD14__FEC_TDATA3 IOMUX_PAD(0x2f8, 0x100, 0x15, 0, 0, NO_PAD_CTL) 250#define MX25_PAD_LD14__FEC_TDATA3 IOMUX_PAD(0x2f8, 0x100, 0x15, 0, 0, NO_PAD_CTRL)
251 251
252#define MX25_PAD_LD15__LD15 IOMUX_PAD(0x2fc, 0x104, 0x10, 0, 0, NO_PAD_CTRL) 252#define MX25_PAD_LD15__LD15 IOMUX_PAD(0x2fc, 0x104, 0x10, 0, 0, NO_PAD_CTRL)
253#define MX25_PAD_LD15__FEC_RX_CLK IOMUX_PAD(0x2fc, 0x104, 0x15, 0x514, 1, NO_PAD_CTL) 253#define MX25_PAD_LD15__FEC_RX_CLK IOMUX_PAD(0x2fc, 0x104, 0x15, 0x514, 1, NO_PAD_CTRL)
254 254
255#define MX25_PAD_HSYNC__HSYNC IOMUX_PAD(0x300, 0x108, 0x10, 0, 0, NO_PAD_CTRL) 255#define MX25_PAD_HSYNC__HSYNC IOMUX_PAD(0x300, 0x108, 0x10, 0, 0, NO_PAD_CTRL)
256#define MX25_PAD_HSYNC__GPIO_1_22 IOMUX_PAD(0x300, 0x108, 0x15, 0, 0, NO_PAD_CTRL) 256#define MX25_PAD_HSYNC__GPIO_1_22 IOMUX_PAD(0x300, 0x108, 0x15, 0, 0, NO_PAD_CTRL)
@@ -265,7 +265,7 @@
265#define MX25_PAD_OE_ACD__GPIO_1_25 IOMUX_PAD(0x30c, 0x114, 0x15, 0, 0, NO_PAD_CTRL) 265#define MX25_PAD_OE_ACD__GPIO_1_25 IOMUX_PAD(0x30c, 0x114, 0x15, 0, 0, NO_PAD_CTRL)
266 266
267#define MX25_PAD_CONTRAST__CONTRAST IOMUX_PAD(0x310, 0x118, 0x10, 0, 0, NO_PAD_CTRL) 267#define MX25_PAD_CONTRAST__CONTRAST IOMUX_PAD(0x310, 0x118, 0x10, 0, 0, NO_PAD_CTRL)
268#define MX25_PAD_CONTRAST__FEC_CRS IOMUX_PAD(0x310, 0x118, 0x15, 0x508, 1, NO_PAD_CTL) 268#define MX25_PAD_CONTRAST__FEC_CRS IOMUX_PAD(0x310, 0x118, 0x15, 0x508, 1, NO_PAD_CTRL)
269 269
270#define MX25_PAD_PWM__PWM IOMUX_PAD(0x314, 0x11c, 0x10, 0, 0, NO_PAD_CTRL) 270#define MX25_PAD_PWM__PWM IOMUX_PAD(0x314, 0x11c, 0x10, 0, 0, NO_PAD_CTRL)
271#define MX25_PAD_PWM__GPIO_1_26 IOMUX_PAD(0x314, 0x11c, 0x15, 0, 0, NO_PAD_CTRL) 271#define MX25_PAD_PWM__GPIO_1_26 IOMUX_PAD(0x314, 0x11c, 0x15, 0, 0, NO_PAD_CTRL)
@@ -354,19 +354,19 @@
354#define MX25_PAD_UART2_TXD__GPIO_4_27 IOMUX_PAD(0x37c, 0x184, 0x15, 0, 0, NO_PAD_CTRL) 354#define MX25_PAD_UART2_TXD__GPIO_4_27 IOMUX_PAD(0x37c, 0x184, 0x15, 0, 0, NO_PAD_CTRL)
355 355
356#define MX25_PAD_UART2_RTS__UART2_RTS IOMUX_PAD(0x380, 0x188, 0x10, 0, 0, NO_PAD_CTRL) 356#define MX25_PAD_UART2_RTS__UART2_RTS IOMUX_PAD(0x380, 0x188, 0x10, 0, 0, NO_PAD_CTRL)
357#define MX25_PAD_UART2_RTS__FEC_COL IOMUX_PAD(0x380, 0x188, 0x12, 0x504, 2, NO_PAD_CTL) 357#define MX25_PAD_UART2_RTS__FEC_COL IOMUX_PAD(0x380, 0x188, 0x12, 0x504, 2, NO_PAD_CTRL)
358#define MX25_PAD_UART2_RTS__GPIO_4_28 IOMUX_PAD(0x380, 0x188, 0x15, 0, 0, NO_PAD_CTRL) 358#define MX25_PAD_UART2_RTS__GPIO_4_28 IOMUX_PAD(0x380, 0x188, 0x15, 0, 0, NO_PAD_CTRL)
359 359
360#define MX25_PAD_UART2_CTS__FEC_RX_ER IOMUX_PAD(0x384, 0x18c, 0x12, 0x518, 2, NO_PAD_CTL) 360#define MX25_PAD_UART2_CTS__FEC_RX_ER IOMUX_PAD(0x384, 0x18c, 0x12, 0x518, 2, NO_PAD_CTRL)
361#define MX25_PAD_UART2_CTS__UART2_CTS IOMUX_PAD(0x384, 0x18c, 0x10, 0, 0, NO_PAD_CTRL) 361#define MX25_PAD_UART2_CTS__UART2_CTS IOMUX_PAD(0x384, 0x18c, 0x10, 0, 0, NO_PAD_CTRL)
362#define MX25_PAD_UART2_CTS__GPIO_4_29 IOMUX_PAD(0x384, 0x18c, 0x15, 0, 0, NO_PAD_CTRL) 362#define MX25_PAD_UART2_CTS__GPIO_4_29 IOMUX_PAD(0x384, 0x18c, 0x15, 0, 0, NO_PAD_CTRL)
363 363
364#define MX25_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x388, 0x190, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) 364#define MX25_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x388, 0x190, 0x10, 0, 0, PAD_CTL_PUS_47K_UP)
365#define MX25_PAD_SD1_CMD__FEC_RDATA2 IOMUX_PAD(0x388, 0x190, 0x12, 0x50c, 2, NO_PAD_CTL) 365#define MX25_PAD_SD1_CMD__FEC_RDATA2 IOMUX_PAD(0x388, 0x190, 0x12, 0x50c, 2, NO_PAD_CTRL)
366#define MX25_PAD_SD1_CMD__GPIO_2_23 IOMUX_PAD(0x388, 0x190, 0x15, 0, 0, NO_PAD_CTRL) 366#define MX25_PAD_SD1_CMD__GPIO_2_23 IOMUX_PAD(0x388, 0x190, 0x15, 0, 0, NO_PAD_CTRL)
367 367
368#define MX25_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x38c, 0x194, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) 368#define MX25_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x38c, 0x194, 0x10, 0, 0, PAD_CTL_PUS_47K_UP)
369#define MX25_PAD_SD1_CLK__FEC_RDATA3 IOMUX_PAD(0x38c, 0x194, 0x12, 0x510, 2, NO_PAD_CTL) 369#define MX25_PAD_SD1_CLK__FEC_RDATA3 IOMUX_PAD(0x38c, 0x194, 0x12, 0x510, 2, NO_PAD_CTRL)
370#define MX25_PAD_SD1_CLK__GPIO_2_24 IOMUX_PAD(0x38c, 0x194, 0x15, 0, 0, NO_PAD_CTRL) 370#define MX25_PAD_SD1_CLK__GPIO_2_24 IOMUX_PAD(0x38c, 0x194, 0x15, 0, 0, NO_PAD_CTRL)
371 371
372#define MX25_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x390, 0x198, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) 372#define MX25_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x390, 0x198, 0x10, 0, 0, PAD_CTL_PUS_47K_UP)
@@ -377,11 +377,11 @@
377#define MX25_PAD_SD1_DATA1__GPIO_2_26 IOMUX_PAD(0x394, 0x19c, 0x15, 0, 0, NO_PAD_CTRL) 377#define MX25_PAD_SD1_DATA1__GPIO_2_26 IOMUX_PAD(0x394, 0x19c, 0x15, 0, 0, NO_PAD_CTRL)
378 378
379#define MX25_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x398, 0x1a0, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) 379#define MX25_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x398, 0x1a0, 0x10, 0, 0, PAD_CTL_PUS_47K_UP)
380#define MX25_PAD_SD1_DATA2__FEC_RX_CLK IOMUX_PAD(0x398, 0x1a0, 0x15, 0x514, 2, NO_PAD_CTL) 380#define MX25_PAD_SD1_DATA2__FEC_RX_CLK IOMUX_PAD(0x398, 0x1a0, 0x15, 0x514, 2, NO_PAD_CTRL)
381#define MX25_PAD_SD1_DATA2__GPIO_2_27 IOMUX_PAD(0x398, 0x1a0, 0x15, 0, 0, NO_PAD_CTRL) 381#define MX25_PAD_SD1_DATA2__GPIO_2_27 IOMUX_PAD(0x398, 0x1a0, 0x15, 0, 0, NO_PAD_CTRL)
382 382
383#define MX25_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x39c, 0x1a4, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) 383#define MX25_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x39c, 0x1a4, 0x10, 0, 0, PAD_CTL_PUS_47K_UP)
384#define MX25_PAD_SD1_DATA3__FEC_CRS IOMUX_PAD(0x39c, 0x1a4, 0x10, 0x508, 2, NO_PAD_CTL) 384#define MX25_PAD_SD1_DATA3__FEC_CRS IOMUX_PAD(0x39c, 0x1a4, 0x10, 0x508, 2, NO_PAD_CTRL)
385#define MX25_PAD_SD1_DATA3__GPIO_2_28 IOMUX_PAD(0x39c, 0x1a4, 0x15, 0, 0, NO_PAD_CTRL) 385#define MX25_PAD_SD1_DATA3__GPIO_2_28 IOMUX_PAD(0x39c, 0x1a4, 0x15, 0, 0, NO_PAD_CTRL)
386 386
387#define MX25_PAD_KPP_ROW0__KPP_ROW0 IOMUX_PAD(0x3a0, 0x1a8, 0x10, 0, 0, PAD_CTL_PKE) 387#define MX25_PAD_KPP_ROW0__KPP_ROW0 IOMUX_PAD(0x3a0, 0x1a8, 0x10, 0, 0, PAD_CTL_PKE)
@@ -410,7 +410,7 @@
410#define MX25_PAD_KPP_COL3__KPP_COL3 IOMUX_PAD(0x3bc, 0x1c4, 0x10, 0, 0, PAD_CTL_PKE | PAD_CTL_ODE) 410#define MX25_PAD_KPP_COL3__KPP_COL3 IOMUX_PAD(0x3bc, 0x1c4, 0x10, 0, 0, PAD_CTL_PKE | PAD_CTL_ODE)
411#define MX25_PAD_KPP_COL3__GPIO_3_4 IOMUX_PAD(0x3bc, 0x1c4, 0x15, 0, 0, NO_PAD_CTRL) 411#define MX25_PAD_KPP_COL3__GPIO_3_4 IOMUX_PAD(0x3bc, 0x1c4, 0x15, 0, 0, NO_PAD_CTRL)
412 412
413#define MX25_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x3c0, 0x1c8, 0x10, 0, 0, NO_PAD_CTL) 413#define MX25_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x3c0, 0x1c8, 0x10, 0, 0, NO_PAD_CTRL)
414#define MX25_PAD_FEC_MDC__AUD4_TXD IOMUX_PAD(0x3c0, 0x1c8, 0x12, 0x464, 1, NO_PAD_CTRL) 414#define MX25_PAD_FEC_MDC__AUD4_TXD IOMUX_PAD(0x3c0, 0x1c8, 0x12, 0x464, 1, NO_PAD_CTRL)
415#define MX25_PAD_FEC_MDC__GPIO_3_5 IOMUX_PAD(0x3c0, 0x1c8, 0x15, 0, 0, NO_PAD_CTRL) 415#define MX25_PAD_FEC_MDC__GPIO_3_5 IOMUX_PAD(0x3c0, 0x1c8, 0x15, 0, 0, NO_PAD_CTRL)
416 416
@@ -418,23 +418,23 @@
418#define MX25_PAD_FEC_MDIO__AUD4_RXD IOMUX_PAD(0x3c4, 0x1cc, 0x12, 0x460, 1, NO_PAD_CTRL) 418#define MX25_PAD_FEC_MDIO__AUD4_RXD IOMUX_PAD(0x3c4, 0x1cc, 0x12, 0x460, 1, NO_PAD_CTRL)
419#define MX25_PAD_FEC_MDIO__GPIO_3_6 IOMUX_PAD(0x3c4, 0x1cc, 0x15, 0, 0, NO_PAD_CTRL) 419#define MX25_PAD_FEC_MDIO__GPIO_3_6 IOMUX_PAD(0x3c4, 0x1cc, 0x15, 0, 0, NO_PAD_CTRL)
420 420
421#define MX25_PAD_FEC_TDATA0__FEC_TDATA0 IOMUX_PAD(0x3c8, 0x1d0, 0x10, 0, 0, NO_PAD_CTL) 421#define MX25_PAD_FEC_TDATA0__FEC_TDATA0 IOMUX_PAD(0x3c8, 0x1d0, 0x10, 0, 0, NO_PAD_CTRL)
422#define MX25_PAD_FEC_TDATA0__GPIO_3_7 IOMUX_PAD(0x3c8, 0x1d0, 0x15, 0, 0, NO_PAD_CTRL) 422#define MX25_PAD_FEC_TDATA0__GPIO_3_7 IOMUX_PAD(0x3c8, 0x1d0, 0x15, 0, 0, NO_PAD_CTRL)
423 423
424#define MX25_PAD_FEC_TDATA1__FEC_TDATA1 IOMUX_PAD(0x3cc, 0x1d4, 0x10, 0, 0, NO_PAD_CTL) 424#define MX25_PAD_FEC_TDATA1__FEC_TDATA1 IOMUX_PAD(0x3cc, 0x1d4, 0x10, 0, 0, NO_PAD_CTRL)
425#define MX25_PAD_FEC_TDATA1__AUD4_TXFS IOMUX_PAD(0x3cc, 0x1d4, 0x12, 0x474, 1, NO_PAD_CTRL) 425#define MX25_PAD_FEC_TDATA1__AUD4_TXFS IOMUX_PAD(0x3cc, 0x1d4, 0x12, 0x474, 1, NO_PAD_CTRL)
426#define MX25_PAD_FEC_TDATA1__GPIO_3_8 IOMUX_PAD(0x3cc, 0x1d4, 0x15, 0, 0, NO_PAD_CTRL) 426#define MX25_PAD_FEC_TDATA1__GPIO_3_8 IOMUX_PAD(0x3cc, 0x1d4, 0x15, 0, 0, NO_PAD_CTRL)
427 427
428#define MX25_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x3d0, 0x1d8, 0x10, 0, 0, NO_PAD_CTL) 428#define MX25_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x3d0, 0x1d8, 0x10, 0, 0, NO_PAD_CTRL)
429#define MX25_PAD_FEC_TX_EN__GPIO_3_9 IOMUX_PAD(0x3d0, 0x1d8, 0x15, 0, 0, NO_PAD_CTRL) 429#define MX25_PAD_FEC_TX_EN__GPIO_3_9 IOMUX_PAD(0x3d0, 0x1d8, 0x15, 0, 0, NO_PAD_CTRL)
430 430
431#define MX25_PAD_FEC_RDATA0__FEC_RDATA0 IOMUX_PAD(0x3d4, 0x1dc, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTL) 431#define MX25_PAD_FEC_RDATA0__FEC_RDATA0 IOMUX_PAD(0x3d4, 0x1dc, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL)
432#define MX25_PAD_FEC_RDATA0__GPIO_3_10 IOMUX_PAD(0x3d4, 0x1dc, 0x15, 0, 0, NO_PAD_CTRL) 432#define MX25_PAD_FEC_RDATA0__GPIO_3_10 IOMUX_PAD(0x3d4, 0x1dc, 0x15, 0, 0, NO_PAD_CTRL)
433 433
434#define MX25_PAD_FEC_RDATA1__FEC_RDATA1 IOMUX_PAD(0x3d8, 0x1e0, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTL) 434#define MX25_PAD_FEC_RDATA1__FEC_RDATA1 IOMUX_PAD(0x3d8, 0x1e0, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL)
435#define MX25_PAD_FEC_RDATA1__GPIO_3_11 IOMUX_PAD(0x3d8, 0x1e0, 0x15, 0, 0, NO_PAD_CTRL) 435#define MX25_PAD_FEC_RDATA1__GPIO_3_11 IOMUX_PAD(0x3d8, 0x1e0, 0x15, 0, 0, NO_PAD_CTRL)
436 436
437#define MX25_PAD_FEC_RX_DV__FEC_RX_DV IOMUX_PAD(0x3dc, 0x1e4, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTL) 437#define MX25_PAD_FEC_RX_DV__FEC_RX_DV IOMUX_PAD(0x3dc, 0x1e4, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL)
438#define MX25_PAD_FEC_RX_DV__CAN2_RX IOMUX_PAD(0x3dc, 0x1e4, 0x14, 0x484, 0, PAD_CTL_PUS_22K_UP) 438#define MX25_PAD_FEC_RX_DV__CAN2_RX IOMUX_PAD(0x3dc, 0x1e4, 0x14, 0x484, 0, PAD_CTL_PUS_22K_UP)
439#define MX25_PAD_FEC_RX_DV__GPIO_3_12 IOMUX_PAD(0x3dc, 0x1e4, 0x15, 0, 0, NO_PAD_CTRL) 439#define MX25_PAD_FEC_RX_DV__GPIO_3_12 IOMUX_PAD(0x3dc, 0x1e4, 0x15, 0, 0, NO_PAD_CTRL)
440 440
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h
index 91e738144804..854e2dc58481 100644
--- a/arch/arm/plat-mxc/include/mach/mx25.h
+++ b/arch/arm/plat-mxc/include/mach/mx25.h
@@ -41,4 +41,8 @@
41#define UART1_BASE_ADDR 0x43f90000 41#define UART1_BASE_ADDR 0x43f90000
42#define UART2_BASE_ADDR 0x43f94000 42#define UART2_BASE_ADDR 0x43f94000
43 43
44#define MX25_FEC_BASE_ADDR 0x50038000
45
46#define MX25_INT_FEC 57
47
44#endif /* __MACH_MX25_H__ */ 48#endif /* __MACH_MX25_H__ */
diff --git a/arch/arm/plat-pxa/pwm.c b/arch/arm/plat-pxa/pwm.c
index a9eabdcfa163..51dc5c8106c0 100644
--- a/arch/arm/plat-pxa/pwm.c
+++ b/arch/arm/plat-pxa/pwm.c
@@ -204,14 +204,14 @@ static int __devinit pwm_probe(struct platform_device *pdev)
204 goto err_free_clk; 204 goto err_free_clk;
205 } 205 }
206 206
207 r = request_mem_region(r->start, r->end - r->start + 1, pdev->name); 207 r = request_mem_region(r->start, resource_size(r), pdev->name);
208 if (r == NULL) { 208 if (r == NULL) {
209 dev_err(&pdev->dev, "failed to request memory resource\n"); 209 dev_err(&pdev->dev, "failed to request memory resource\n");
210 ret = -EBUSY; 210 ret = -EBUSY;
211 goto err_free_clk; 211 goto err_free_clk;
212 } 212 }
213 213
214 pwm->mmio_base = ioremap(r->start, r->end - r->start + 1); 214 pwm->mmio_base = ioremap(r->start, resource_size(r));
215 if (pwm->mmio_base == NULL) { 215 if (pwm->mmio_base == NULL) {
216 dev_err(&pdev->dev, "failed to ioremap() registers\n"); 216 dev_err(&pdev->dev, "failed to ioremap() registers\n");
217 ret = -ENODEV; 217 ret = -ENODEV;
@@ -241,7 +241,7 @@ static int __devinit pwm_probe(struct platform_device *pdev)
241 return 0; 241 return 0;
242 242
243err_free_mem: 243err_free_mem:
244 release_mem_region(r->start, r->end - r->start + 1); 244 release_mem_region(r->start, resource_size(r));
245err_free_clk: 245err_free_clk:
246 clk_put(pwm->clk); 246 clk_put(pwm->clk);
247err_free: 247err_free:
@@ -271,7 +271,7 @@ static int __devexit pwm_remove(struct platform_device *pdev)
271 iounmap(pwm->mmio_base); 271 iounmap(pwm->mmio_base);
272 272
273 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); 273 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
274 release_mem_region(r->start, r->end - r->start + 1); 274 release_mem_region(r->start, resource_size(r));
275 275
276 clk_put(pwm->clk); 276 clk_put(pwm->clk);
277 kfree(pwm); 277 kfree(pwm);
diff --git a/arch/arm/plat-s3c/dev-nand.c b/arch/arm/plat-s3c/dev-nand.c
index e771e77dcd54..84808ccda70e 100644
--- a/arch/arm/plat-s3c/dev-nand.c
+++ b/arch/arm/plat-s3c/dev-nand.c
@@ -114,7 +114,7 @@ void __init s3c_nand_set_platdata(struct s3c2410_platform_nand *nand)
114 114
115 for (i = 0; i < npd->nr_sets; i++) { 115 for (i = 0; i < npd->nr_sets; i++) {
116 ret = s3c_nand_copy_set(to); 116 ret = s3c_nand_copy_set(to);
117 if (!ret) { 117 if (ret) {
118 printk(KERN_ERR "%s: failed to copy set %d\n", 118 printk(KERN_ERR "%s: failed to copy set %d\n",
119 __func__, i); 119 __func__, i);
120 return; 120 return;
@@ -122,6 +122,8 @@ void __init s3c_nand_set_platdata(struct s3c2410_platform_nand *nand)
122 to++; 122 to++;
123 } 123 }
124 } 124 }
125
126 s3c_device_nand.dev.platform_data = npd;
125} 127}
126 128
127EXPORT_SYMBOL_GPL(s3c_nand_set_platdata); 129EXPORT_SYMBOL_GPL(s3c_nand_set_platdata);
diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h
index 932cbbbb4273..c1c20b023917 100644
--- a/arch/arm/plat-s3c/include/plat/devs.h
+++ b/arch/arm/plat-s3c/include/plat/devs.h
@@ -31,6 +31,7 @@ extern struct platform_device s3c64xx_device_iisv4;
31extern struct platform_device s3c64xx_device_pcm0; 31extern struct platform_device s3c64xx_device_pcm0;
32extern struct platform_device s3c64xx_device_pcm1; 32extern struct platform_device s3c64xx_device_pcm1;
33 33
34extern struct platform_device s3c_device_ts;
34extern struct platform_device s3c_device_fb; 35extern struct platform_device s3c_device_fb;
35extern struct platform_device s3c_device_usb; 36extern struct platform_device s3c_device_usb;
36extern struct platform_device s3c_device_lcd; 37extern struct platform_device s3c_device_lcd;
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
index f52a92ce8dda..7f686a31e672 100644
--- a/arch/arm/plat-s3c24xx/devs.c
+++ b/arch/arm/plat-s3c24xx/devs.c
@@ -37,6 +37,8 @@
37#include <plat/cpu.h> 37#include <plat/cpu.h>
38#include <plat/regs-spi.h> 38#include <plat/regs-spi.h>
39 39
40#include <mach/ts.h>
41
40/* Serial port registrations */ 42/* Serial port registrations */
41 43
42static struct resource s3c2410_uart0_resource[] = { 44static struct resource s3c2410_uart0_resource[] = {
@@ -182,6 +184,22 @@ void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd)
182 } 184 }
183} 185}
184 186
187/* Touchscreen */
188struct platform_device s3c_device_ts = {
189 .name = "s3c2410-ts",
190 .id = -1,
191};
192EXPORT_SYMBOL(s3c_device_ts);
193
194static struct s3c2410_ts_mach_info s3c2410ts_info;
195
196void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *hard_s3c2410ts_info)
197{
198 memcpy(&s3c2410ts_info, hard_s3c2410ts_info, sizeof(struct s3c2410_ts_mach_info));
199 s3c_device_ts.dev.platform_data = &s3c2410ts_info;
200}
201EXPORT_SYMBOL(s3c24xx_ts_set_platdata);
202
185/* USB Device (Gadget)*/ 203/* USB Device (Gadget)*/
186 204
187static struct resource s3c_usbgadget_resource[] = { 205static struct resource s3c_usbgadget_resource[] = {
diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c
index 1364317d421e..12623a474b54 100644
--- a/arch/arm/plat-s3c24xx/s3c244x.c
+++ b/arch/arm/plat-s3c24xx/s3c244x.c
@@ -70,6 +70,7 @@ void __init s3c244x_map_io(void)
70 s3c_device_sdi.name = "s3c2440-sdi"; 70 s3c_device_sdi.name = "s3c2440-sdi";
71 s3c_device_i2c0.name = "s3c2440-i2c"; 71 s3c_device_i2c0.name = "s3c2440-i2c";
72 s3c_device_nand.name = "s3c2440-nand"; 72 s3c_device_nand.name = "s3c2440-nand";
73 s3c_device_ts.name = "s3c2440-ts";
73 s3c_device_usbgadget.name = "s3c2440-usbgadget"; 74 s3c_device_usbgadget.name = "s3c2440-usbgadget";
74} 75}
75 76
diff --git a/arch/blackfin/include/asm/page.h b/arch/blackfin/include/asm/page.h
index 944a07c6cfd6..1d04e4078340 100644
--- a/arch/blackfin/include/asm/page.h
+++ b/arch/blackfin/include/asm/page.h
@@ -10,4 +10,9 @@
10#include <asm-generic/page.h> 10#include <asm-generic/page.h>
11#define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT) 11#define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)
12 12
13#define VM_DATA_DEFAULT_FLAGS \
14 (VM_READ | VM_WRITE | \
15 ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
16 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
17
13#endif 18#endif
diff --git a/arch/frv/include/asm/page.h b/arch/frv/include/asm/page.h
index 25c6a5002355..8c97068ac8fc 100644
--- a/arch/frv/include/asm/page.h
+++ b/arch/frv/include/asm/page.h
@@ -63,12 +63,10 @@ extern unsigned long max_pfn;
63#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) 63#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
64 64
65 65
66#ifdef CONFIG_MMU
67#define VM_DATA_DEFAULT_FLAGS \ 66#define VM_DATA_DEFAULT_FLAGS \
68 (VM_READ | VM_WRITE | \ 67 (VM_READ | VM_WRITE | \
69 ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ 68 ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
70 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 69 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
71#endif
72 70
73#endif /* __ASSEMBLY__ */ 71#endif /* __ASSEMBLY__ */
74 72
diff --git a/arch/ia64/kvm/vcpu.h b/arch/ia64/kvm/vcpu.h
index 360724d3ae69..988911b4cc7a 100644
--- a/arch/ia64/kvm/vcpu.h
+++ b/arch/ia64/kvm/vcpu.h
@@ -388,6 +388,9 @@ static inline u64 __gpfn_is_io(u64 gpfn)
388#define _vmm_raw_spin_lock(x) do {}while(0) 388#define _vmm_raw_spin_lock(x) do {}while(0)
389#define _vmm_raw_spin_unlock(x) do {}while(0) 389#define _vmm_raw_spin_unlock(x) do {}while(0)
390#else 390#else
391typedef struct {
392 volatile unsigned int lock;
393} vmm_spinlock_t;
391#define _vmm_raw_spin_lock(x) \ 394#define _vmm_raw_spin_lock(x) \
392 do { \ 395 do { \
393 __u32 *ia64_spinlock_ptr = (__u32 *) (x); \ 396 __u32 *ia64_spinlock_ptr = (__u32 *) (x); \
@@ -405,12 +408,12 @@ static inline u64 __gpfn_is_io(u64 gpfn)
405 408
406#define _vmm_raw_spin_unlock(x) \ 409#define _vmm_raw_spin_unlock(x) \
407 do { barrier(); \ 410 do { barrier(); \
408 ((spinlock_t *)x)->raw_lock.lock = 0; } \ 411 ((vmm_spinlock_t *)x)->lock = 0; } \
409while (0) 412while (0)
410#endif 413#endif
411 414
412void vmm_spin_lock(spinlock_t *lock); 415void vmm_spin_lock(vmm_spinlock_t *lock);
413void vmm_spin_unlock(spinlock_t *lock); 416void vmm_spin_unlock(vmm_spinlock_t *lock);
414enum { 417enum {
415 I_TLB = 1, 418 I_TLB = 1,
416 D_TLB = 2 419 D_TLB = 2
diff --git a/arch/ia64/kvm/vmm.c b/arch/ia64/kvm/vmm.c
index f4b4c899bb6c..7a62f75778c5 100644
--- a/arch/ia64/kvm/vmm.c
+++ b/arch/ia64/kvm/vmm.c
@@ -60,12 +60,12 @@ static void __exit kvm_vmm_exit(void)
60 return ; 60 return ;
61} 61}
62 62
63void vmm_spin_lock(spinlock_t *lock) 63void vmm_spin_lock(vmm_spinlock_t *lock)
64{ 64{
65 _vmm_raw_spin_lock(lock); 65 _vmm_raw_spin_lock(lock);
66} 66}
67 67
68void vmm_spin_unlock(spinlock_t *lock) 68void vmm_spin_unlock(vmm_spinlock_t *lock)
69{ 69{
70 _vmm_raw_spin_unlock(lock); 70 _vmm_raw_spin_unlock(lock);
71} 71}
diff --git a/arch/ia64/kvm/vtlb.c b/arch/ia64/kvm/vtlb.c
index 20b3852f7a6e..4332f7ee5203 100644
--- a/arch/ia64/kvm/vtlb.c
+++ b/arch/ia64/kvm/vtlb.c
@@ -182,7 +182,7 @@ void mark_pages_dirty(struct kvm_vcpu *v, u64 pte, u64 ps)
182{ 182{
183 u64 i, dirty_pages = 1; 183 u64 i, dirty_pages = 1;
184 u64 base_gfn = (pte&_PAGE_PPN_MASK) >> PAGE_SHIFT; 184 u64 base_gfn = (pte&_PAGE_PPN_MASK) >> PAGE_SHIFT;
185 spinlock_t *lock = __kvm_va(v->arch.dirty_log_lock_pa); 185 vmm_spinlock_t *lock = __kvm_va(v->arch.dirty_log_lock_pa);
186 void *dirty_bitmap = (void *)KVM_MEM_DIRTY_LOG_BASE; 186 void *dirty_bitmap = (void *)KVM_MEM_DIRTY_LOG_BASE;
187 187
188 dirty_pages <<= ps <= PAGE_SHIFT ? 0 : ps - PAGE_SHIFT; 188 dirty_pages <<= ps <= PAGE_SHIFT ? 0 : ps - PAGE_SHIFT;
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index e8dfdbd9327a..cadbed679fbb 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1107,6 +1107,12 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus)
1107 list_for_each_entry(dev, &bus->devices, bus_list) { 1107 list_for_each_entry(dev, &bus->devices, bus_list) {
1108 struct dev_archdata *sd = &dev->dev.archdata; 1108 struct dev_archdata *sd = &dev->dev.archdata;
1109 1109
1110 /* Cardbus can call us to add new devices to a bus, so ignore
1111 * those who are already fully discovered
1112 */
1113 if (dev->is_added)
1114 continue;
1115
1110 /* Setup OF node pointer in archdata */ 1116 /* Setup OF node pointer in archdata */
1111 sd->of_node = pci_device_to_OF_node(dev); 1117 sd->of_node = pci_device_to_OF_node(dev);
1112 1118
@@ -1147,6 +1153,13 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
1147} 1153}
1148EXPORT_SYMBOL(pcibios_fixup_bus); 1154EXPORT_SYMBOL(pcibios_fixup_bus);
1149 1155
1156void __devinit pci_fixup_cardbus(struct pci_bus *bus)
1157{
1158 /* Now fixup devices on that bus */
1159 pcibios_setup_bus_devices(bus);
1160}
1161
1162
1150static int skip_isa_ioresource_align(struct pci_dev *dev) 1163static int skip_isa_ioresource_align(struct pci_dev *dev)
1151{ 1164{
1152 if ((ppc_pci_flags & PPC_PCI_CAN_SKIP_ISA_ALIGN) && 1165 if ((ppc_pci_flags & PPC_PCI_CAN_SKIP_ISA_ALIGN) &&
diff --git a/arch/powerpc/kvm/book3s_64_mmu.c b/arch/powerpc/kvm/book3s_64_mmu.c
index 5598f88f142e..e4beeb371a73 100644
--- a/arch/powerpc/kvm/book3s_64_mmu.c
+++ b/arch/powerpc/kvm/book3s_64_mmu.c
@@ -390,6 +390,26 @@ static void kvmppc_mmu_book3s_64_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
390{ 390{
391 u64 rb = 0, rs = 0; 391 u64 rb = 0, rs = 0;
392 392
393 /*
394 * According to Book3 2.01 mtsrin is implemented as:
395 *
396 * The SLB entry specified by (RB)32:35 is loaded from register
397 * RS, as follows.
398 *
399 * SLBE Bit Source SLB Field
400 *
401 * 0:31 0x0000_0000 ESID-0:31
402 * 32:35 (RB)32:35 ESID-32:35
403 * 36 0b1 V
404 * 37:61 0x00_0000|| 0b0 VSID-0:24
405 * 62:88 (RS)37:63 VSID-25:51
406 * 89:91 (RS)33:35 Ks Kp N
407 * 92 (RS)36 L ((RS)36 must be 0b0)
408 * 93 0b0 C
409 */
410
411 dprintk("KVM MMU: mtsrin(0x%x, 0x%lx)\n", srnum, value);
412
393 /* ESID = srnum */ 413 /* ESID = srnum */
394 rb |= (srnum & 0xf) << 28; 414 rb |= (srnum & 0xf) << 28;
395 /* Set the valid bit */ 415 /* Set the valid bit */
@@ -400,7 +420,7 @@ static void kvmppc_mmu_book3s_64_mtsrin(struct kvm_vcpu *vcpu, u32 srnum,
400 /* VSID = VSID */ 420 /* VSID = VSID */
401 rs |= (value & 0xfffffff) << 12; 421 rs |= (value & 0xfffffff) << 12;
402 /* flags = flags */ 422 /* flags = flags */
403 rs |= ((value >> 27) & 0xf) << 9; 423 rs |= ((value >> 28) & 0x7) << 9;
404 424
405 kvmppc_mmu_book3s_64_slbmte(vcpu, rs, rb); 425 kvmppc_mmu_book3s_64_slbmte(vcpu, rs, rb);
406} 426}
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index f4e53c6708dc..b416aa11b91e 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/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.31 3# Linux kernel version: 2.6.33-rc2
4# Tue Sep 22 17:43:13 2009 4# Mon Jan 4 09:03:07 2010
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -51,6 +51,7 @@ CONFIG_AUDIT=y
51# 51#
52CONFIG_TREE_RCU=y 52CONFIG_TREE_RCU=y
53# CONFIG_TREE_PREEMPT_RCU is not set 53# CONFIG_TREE_PREEMPT_RCU is not set
54# CONFIG_TINY_RCU is not set
54# CONFIG_RCU_TRACE is not set 55# CONFIG_RCU_TRACE is not set
55CONFIG_RCU_FANOUT=64 56CONFIG_RCU_FANOUT=64
56# CONFIG_RCU_FANOUT_EXACT is not set 57# CONFIG_RCU_FANOUT_EXACT is not set
@@ -113,7 +114,6 @@ CONFIG_HAVE_PERF_EVENTS=y
113# CONFIG_PERF_EVENTS is not set 114# CONFIG_PERF_EVENTS is not set
114# CONFIG_PERF_COUNTERS is not set 115# CONFIG_PERF_COUNTERS is not set
115CONFIG_VM_EVENT_COUNTERS=y 116CONFIG_VM_EVENT_COUNTERS=y
116# CONFIG_STRIP_ASM_SYMS is not set
117# CONFIG_COMPAT_BRK is not set 117# CONFIG_COMPAT_BRK is not set
118CONFIG_SLAB=y 118CONFIG_SLAB=y
119# CONFIG_SLUB is not set 119# CONFIG_SLUB is not set
@@ -149,21 +149,78 @@ CONFIG_STOP_MACHINE=y
149CONFIG_BLOCK=y 149CONFIG_BLOCK=y
150CONFIG_BLK_DEV_BSG=y 150CONFIG_BLK_DEV_BSG=y
151# CONFIG_BLK_DEV_INTEGRITY is not set 151# CONFIG_BLK_DEV_INTEGRITY is not set
152# CONFIG_BLK_CGROUP is not set
152CONFIG_BLOCK_COMPAT=y 153CONFIG_BLOCK_COMPAT=y
153 154
154# 155#
155# IO Schedulers 156# IO Schedulers
156# 157#
157CONFIG_IOSCHED_NOOP=y 158CONFIG_IOSCHED_NOOP=y
158CONFIG_IOSCHED_AS=y
159CONFIG_IOSCHED_DEADLINE=y 159CONFIG_IOSCHED_DEADLINE=y
160CONFIG_IOSCHED_CFQ=y 160CONFIG_IOSCHED_CFQ=y
161# CONFIG_DEFAULT_AS is not set 161# CONFIG_CFQ_GROUP_IOSCHED is not set
162CONFIG_DEFAULT_DEADLINE=y 162CONFIG_DEFAULT_DEADLINE=y
163# CONFIG_DEFAULT_CFQ is not set 163# CONFIG_DEFAULT_CFQ is not set
164# CONFIG_DEFAULT_NOOP is not set 164# CONFIG_DEFAULT_NOOP is not set
165CONFIG_DEFAULT_IOSCHED="deadline" 165CONFIG_DEFAULT_IOSCHED="deadline"
166CONFIG_PREEMPT_NOTIFIERS=y 166CONFIG_PREEMPT_NOTIFIERS=y
167CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y
168CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y
169CONFIG_ARCH_INLINE_SPIN_LOCK=y
170CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y
171CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y
172CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y
173CONFIG_ARCH_INLINE_SPIN_UNLOCK=y
174CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y
175CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y
176CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y
177CONFIG_ARCH_INLINE_READ_TRYLOCK=y
178CONFIG_ARCH_INLINE_READ_LOCK=y
179CONFIG_ARCH_INLINE_READ_LOCK_BH=y
180CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y
181CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y
182CONFIG_ARCH_INLINE_READ_UNLOCK=y
183CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y
184CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y
185CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y
186CONFIG_ARCH_INLINE_WRITE_TRYLOCK=y
187CONFIG_ARCH_INLINE_WRITE_LOCK=y
188CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y
189CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y
190CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y
191CONFIG_ARCH_INLINE_WRITE_UNLOCK=y
192CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y
193CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y
194CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y
195# CONFIG_INLINE_SPIN_TRYLOCK is not set
196# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
197# CONFIG_INLINE_SPIN_LOCK is not set
198# CONFIG_INLINE_SPIN_LOCK_BH is not set
199# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
200# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
201# CONFIG_INLINE_SPIN_UNLOCK is not set
202# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
203# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
204# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
205# CONFIG_INLINE_READ_TRYLOCK is not set
206# CONFIG_INLINE_READ_LOCK is not set
207# CONFIG_INLINE_READ_LOCK_BH is not set
208# CONFIG_INLINE_READ_LOCK_IRQ is not set
209# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
210# CONFIG_INLINE_READ_UNLOCK is not set
211# CONFIG_INLINE_READ_UNLOCK_BH is not set
212# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
213# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
214# CONFIG_INLINE_WRITE_TRYLOCK is not set
215# CONFIG_INLINE_WRITE_LOCK is not set
216# CONFIG_INLINE_WRITE_LOCK_BH is not set
217# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
218# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
219# CONFIG_INLINE_WRITE_UNLOCK is not set
220# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
221# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
222# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
223# CONFIG_MUTEX_SPIN_ON_OWNER is not set
167CONFIG_FREEZER=y 224CONFIG_FREEZER=y
168 225
169# 226#
@@ -227,14 +284,13 @@ CONFIG_MEMORY_HOTPLUG=y
227CONFIG_MEMORY_HOTPLUG_SPARSE=y 284CONFIG_MEMORY_HOTPLUG_SPARSE=y
228CONFIG_MEMORY_HOTREMOVE=y 285CONFIG_MEMORY_HOTREMOVE=y
229CONFIG_PAGEFLAGS_EXTENDED=y 286CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 287CONFIG_SPLIT_PTLOCK_CPUS=999999
231CONFIG_MIGRATION=y 288CONFIG_MIGRATION=y
232CONFIG_PHYS_ADDR_T_64BIT=y 289CONFIG_PHYS_ADDR_T_64BIT=y
233CONFIG_ZONE_DMA_FLAG=1 290CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 291CONFIG_BOUNCE=y
235CONFIG_VIRT_TO_BUS=y 292CONFIG_VIRT_TO_BUS=y
236CONFIG_HAVE_MLOCK=y 293# CONFIG_KSM is not set
237CONFIG_HAVE_MLOCKED_PAGE_BIT=y
238CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 294CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
239 295
240# 296#
@@ -339,6 +395,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
339CONFIG_INET6_XFRM_MODE_BEET=y 395CONFIG_INET6_XFRM_MODE_BEET=y
340# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 396# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
341CONFIG_IPV6_SIT=y 397CONFIG_IPV6_SIT=y
398# CONFIG_IPV6_SIT_6RD is not set
342CONFIG_IPV6_NDISC_NODETYPE=y 399CONFIG_IPV6_NDISC_NODETYPE=y
343# CONFIG_IPV6_TUNNEL is not set 400# CONFIG_IPV6_TUNNEL is not set
344# CONFIG_IPV6_MULTIPLE_TABLES is not set 401# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -504,6 +561,10 @@ CONFIG_BLK_DEV=y
504# CONFIG_BLK_DEV_COW_COMMON is not set 561# CONFIG_BLK_DEV_COW_COMMON is not set
505CONFIG_BLK_DEV_LOOP=m 562CONFIG_BLK_DEV_LOOP=m
506# CONFIG_BLK_DEV_CRYPTOLOOP is not set 563# CONFIG_BLK_DEV_CRYPTOLOOP is not set
564
565#
566# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
567#
507CONFIG_BLK_DEV_NBD=m 568CONFIG_BLK_DEV_NBD=m
508# CONFIG_BLK_DEV_OSD is not set 569# CONFIG_BLK_DEV_OSD is not set
509CONFIG_BLK_DEV_RAM=y 570CONFIG_BLK_DEV_RAM=y
@@ -710,7 +771,6 @@ CONFIG_S390_VMUR=m
710# CONFIG_PPS is not set 771# CONFIG_PPS is not set
711# CONFIG_POWER_SUPPLY is not set 772# CONFIG_POWER_SUPPLY is not set
712# CONFIG_THERMAL is not set 773# CONFIG_THERMAL is not set
713# CONFIG_THERMAL_HWMON is not set
714# CONFIG_WATCHDOG is not set 774# CONFIG_WATCHDOG is not set
715# CONFIG_REGULATOR is not set 775# CONFIG_REGULATOR is not set
716# CONFIG_MEMSTICK is not set 776# CONFIG_MEMSTICK is not set
@@ -864,6 +924,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
864CONFIG_ENABLE_MUST_CHECK=y 924CONFIG_ENABLE_MUST_CHECK=y
865CONFIG_FRAME_WARN=2048 925CONFIG_FRAME_WARN=2048
866CONFIG_MAGIC_SYSRQ=y 926CONFIG_MAGIC_SYSRQ=y
927# CONFIG_STRIP_ASM_SYMS is not set
867# CONFIG_UNUSED_SYMBOLS is not set 928# CONFIG_UNUSED_SYMBOLS is not set
868CONFIG_DEBUG_FS=y 929CONFIG_DEBUG_FS=y
869# CONFIG_HEADERS_CHECK is not set 930# CONFIG_HEADERS_CHECK is not set
@@ -931,7 +992,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
931CONFIG_SAMPLES=y 992CONFIG_SAMPLES=y
932# CONFIG_SAMPLE_KOBJECT is not set 993# CONFIG_SAMPLE_KOBJECT is not set
933# CONFIG_SAMPLE_KPROBES is not set 994# CONFIG_SAMPLE_KPROBES is not set
934# CONFIG_KMEMCHECK is not set
935 995
936# 996#
937# Security options 997# Security options
@@ -939,7 +999,11 @@ CONFIG_SAMPLES=y
939# CONFIG_KEYS is not set 999# CONFIG_KEYS is not set
940# CONFIG_SECURITY is not set 1000# CONFIG_SECURITY is not set
941# CONFIG_SECURITYFS is not set 1001# CONFIG_SECURITYFS is not set
942# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1002# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1003# CONFIG_DEFAULT_SECURITY_SMACK is not set
1004# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1005CONFIG_DEFAULT_SECURITY_DAC=y
1006CONFIG_DEFAULT_SECURITY=""
943CONFIG_CRYPTO=y 1007CONFIG_CRYPTO=y
944 1008
945# 1009#
diff --git a/arch/s390/include/asm/param.h b/arch/s390/include/asm/param.h
index 34aaa4603347..c616821bf2ac 100644
--- a/arch/s390/include/asm/param.h
+++ b/arch/s390/include/asm/param.h
@@ -1,30 +1,6 @@
1/*
2 * include/asm-s390/param.h
3 *
4 * S390 version
5 *
6 * Derived from "include/asm-i386/param.h"
7 */
8
9#ifndef _ASMS390_PARAM_H 1#ifndef _ASMS390_PARAM_H
10#define _ASMS390_PARAM_H 2#define _ASMS390_PARAM_H
11 3
12#ifdef __KERNEL__ 4#include <asm-generic/param.h>
13# define HZ CONFIG_HZ /* Internal kernel timer frequency */
14# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
15# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
16#endif
17
18#ifndef HZ
19#define HZ 100
20#endif
21
22#define EXEC_PAGESIZE 4096
23
24#ifndef NOGROUP
25#define NOGROUP (-1)
26#endif
27
28#define MAXHOSTNAMELEN 64 /* max length of hostname */
29 5
30#endif 6#endif /* _ASMS390_PARAM_H */
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 0031a6979f3a..2121fbb2ff4c 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -540,14 +540,16 @@ config SH_TIMER_MTU2
540 540
541config SH_PCLK_FREQ 541config SH_PCLK_FREQ
542 int "Peripheral clock frequency (in Hz)" 542 int "Peripheral clock frequency (in Hz)"
543 default "27000000" if CPU_SUBTYPE_SH7343 543 depends on SH_CLK_CPG_LEGACY
544 default "31250000" if CPU_SUBTYPE_SH7619 544 default "31250000" if CPU_SUBTYPE_SH7619
545 default "32000000" if CPU_SUBTYPE_SH7722 545 default "33333333" if CPU_SUBTYPE_SH7770 || \
546 default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \ 546 CPU_SUBTYPE_SH7760 || \
547 CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \ 547 CPU_SUBTYPE_SH7705 || \
548 CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \ 548 CPU_SUBTYPE_SH7203 || \
549 CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \ 549 CPU_SUBTYPE_SH7206 || \
550 CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724 550 CPU_SUBTYPE_SH7263 || \
551 CPU_SUBTYPE_MXG || \
552 CPU_SUBTYPE_SH7786
551 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R 553 default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
552 default "66000000" if CPU_SUBTYPE_SH4_202 554 default "66000000" if CPU_SUBTYPE_SH4_202
553 default "50000000" 555 default "50000000"
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 2f78d01cc6c0..8931a60e37a4 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_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.31 3# Linux kernel version: 2.6.33-rc2
4# Fri Sep 25 11:22:50 2009 4# Mon Jan 4 11:10:59 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y
62# 64#
63CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
64# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
65# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
66CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
67# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 102CONFIG_SHMEM=y
100CONFIG_AIO=y 103CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y 104CONFIG_HAVE_PERF_EVENTS=y
105CONFIG_PERF_USE_VMALLOC=y
102 106
103# 107#
104# Kernel Performance Events And Counters 108# Kernel Performance Events And Counters
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y
119CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
120CONFIG_HAVE_DMA_API_DEBUG=y 125CONFIG_HAVE_DMA_API_DEBUG=y
121 126
@@ -142,14 +147,41 @@ CONFIG_LBDAF=y
142# IO Schedulers 147# IO Schedulers
143# 148#
144CONFIG_IOSCHED_NOOP=y 149CONFIG_IOSCHED_NOOP=y
145CONFIG_IOSCHED_AS=y
146CONFIG_IOSCHED_DEADLINE=y 150CONFIG_IOSCHED_DEADLINE=y
147CONFIG_IOSCHED_CFQ=y 151CONFIG_IOSCHED_CFQ=y
148# CONFIG_DEFAULT_AS is not set
149# CONFIG_DEFAULT_DEADLINE is not set 152# CONFIG_DEFAULT_DEADLINE is not set
150CONFIG_DEFAULT_CFQ=y 153CONFIG_DEFAULT_CFQ=y
151# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="cfq" 155CONFIG_DEFAULT_IOSCHED="cfq"
156# CONFIG_INLINE_SPIN_TRYLOCK is not set
157# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
158# CONFIG_INLINE_SPIN_LOCK is not set
159# CONFIG_INLINE_SPIN_LOCK_BH is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
162# CONFIG_INLINE_SPIN_UNLOCK is not set
163# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
164# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
165# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
166# CONFIG_INLINE_READ_TRYLOCK is not set
167# CONFIG_INLINE_READ_LOCK is not set
168# CONFIG_INLINE_READ_LOCK_BH is not set
169# CONFIG_INLINE_READ_LOCK_IRQ is not set
170# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
171# CONFIG_INLINE_READ_UNLOCK is not set
172# CONFIG_INLINE_READ_UNLOCK_BH is not set
173# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
174# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
175# CONFIG_INLINE_WRITE_TRYLOCK is not set
176# CONFIG_INLINE_WRITE_LOCK is not set
177# CONFIG_INLINE_WRITE_LOCK_BH is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
180# CONFIG_INLINE_WRITE_UNLOCK is not set
181# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
182# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
183# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
184# CONFIG_MUTEX_SPIN_ON_OWNER is not set
153CONFIG_FREEZER=y 185CONFIG_FREEZER=y
154 186
155# 187#
@@ -205,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_MEMORY_START=0x08000000 237CONFIG_MEMORY_START=0x08000000
206CONFIG_MEMORY_SIZE=0x08000000 238CONFIG_MEMORY_SIZE=0x08000000
207CONFIG_29BIT=y 239CONFIG_29BIT=y
240# CONFIG_PMB_ENABLE is not set
208# CONFIG_X2TLB is not set 241# CONFIG_X2TLB is not set
209CONFIG_VSYSCALL=y 242CONFIG_VSYSCALL=y
210CONFIG_ARCH_FLATMEM_ENABLE=y 243CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -229,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
229# CONFIG_PHYS_ADDR_T_64BIT is not set 262# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=0 263CONFIG_ZONE_DMA_FLAG=0
231CONFIG_NR_QUICK=2 264CONFIG_NR_QUICK=2
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234# CONFIG_KSM is not set 265# CONFIG_KSM is not set
235CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 266CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
236 267
@@ -262,7 +293,6 @@ CONFIG_SH_AP325RXA=y
262# 293#
263CONFIG_SH_TIMER_TMU=y 294CONFIG_SH_TIMER_TMU=y
264# CONFIG_SH_TIMER_CMT is not set 295# CONFIG_SH_TIMER_CMT is not set
265CONFIG_SH_PCLK_FREQ=33333333
266CONFIG_SH_CLK_CPG=y 296CONFIG_SH_CLK_CPG=y
267CONFIG_TICK_ONESHOT=y 297CONFIG_TICK_ONESHOT=y
268# CONFIG_NO_HZ is not set 298# CONFIG_NO_HZ is not set
@@ -418,9 +448,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
418# CONFIG_AF_RXRPC is not set 448# CONFIG_AF_RXRPC is not set
419CONFIG_WIRELESS=y 449CONFIG_WIRELESS=y
420# CONFIG_CFG80211 is not set 450# CONFIG_CFG80211 is not set
421CONFIG_CFG80211_DEFAULT_PS_VALUE=0
422# CONFIG_WIRELESS_OLD_REGULATORY is not set
423# CONFIG_WIRELESS_EXT is not set
424# CONFIG_LIB80211 is not set 451# CONFIG_LIB80211 is not set
425 452
426# 453#
@@ -550,6 +577,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1
550CONFIG_BLK_DEV=y 577CONFIG_BLK_DEV=y
551# CONFIG_BLK_DEV_COW_COMMON is not set 578# CONFIG_BLK_DEV_COW_COMMON is not set
552# CONFIG_BLK_DEV_LOOP is not set 579# CONFIG_BLK_DEV_LOOP is not set
580
581#
582# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
583#
553# CONFIG_BLK_DEV_NBD is not set 584# CONFIG_BLK_DEV_NBD is not set
554CONFIG_BLK_DEV_RAM=y 585CONFIG_BLK_DEV_RAM=y
555CONFIG_BLK_DEV_RAM_COUNT=4 586CONFIG_BLK_DEV_RAM_COUNT=4
@@ -559,9 +590,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
559# CONFIG_ATA_OVER_ETH is not set 590# CONFIG_ATA_OVER_ETH is not set
560# CONFIG_BLK_DEV_HD is not set 591# CONFIG_BLK_DEV_HD is not set
561CONFIG_MISC_DEVICES=y 592CONFIG_MISC_DEVICES=y
593# CONFIG_AD525X_DPOT is not set
562# CONFIG_ICS932S401 is not set 594# CONFIG_ICS932S401 is not set
563# CONFIG_ENCLOSURE_SERVICES is not set 595# CONFIG_ENCLOSURE_SERVICES is not set
564# CONFIG_ISL29003 is not set 596# CONFIG_ISL29003 is not set
597# CONFIG_DS1682 is not set
598# CONFIG_TI_DAC7512 is not set
565# CONFIG_C2PORT is not set 599# CONFIG_C2PORT is not set
566 600
567# 601#
@@ -572,6 +606,7 @@ CONFIG_MISC_DEVICES=y
572# CONFIG_EEPROM_LEGACY is not set 606# CONFIG_EEPROM_LEGACY is not set
573# CONFIG_EEPROM_MAX6875 is not set 607# CONFIG_EEPROM_MAX6875 is not set
574# CONFIG_EEPROM_93CX6 is not set 608# CONFIG_EEPROM_93CX6 is not set
609# CONFIG_IWMC3200TOP is not set
575CONFIG_HAVE_IDE=y 610CONFIG_HAVE_IDE=y
576# CONFIG_IDE is not set 611# CONFIG_IDE is not set
577 612
@@ -664,11 +699,11 @@ CONFIG_SMSC911X=y
664# CONFIG_B44 is not set 699# CONFIG_B44 is not set
665# CONFIG_KS8842 is not set 700# CONFIG_KS8842 is not set
666# CONFIG_KS8851 is not set 701# CONFIG_KS8851 is not set
702# CONFIG_KS8851_MLL is not set
667# CONFIG_NETDEV_1000 is not set 703# CONFIG_NETDEV_1000 is not set
668# CONFIG_NETDEV_10000 is not set 704# CONFIG_NETDEV_10000 is not set
669CONFIG_WLAN=y 705CONFIG_WLAN=y
670# CONFIG_WLAN_PRE80211 is not set 706# CONFIG_HOSTAP is not set
671# CONFIG_WLAN_80211 is not set
672 707
673# 708#
674# Enable WiMAX (Networking options) to see the WiMAX drivers 709# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -688,6 +723,7 @@ CONFIG_WLAN=y
688CONFIG_INPUT=y 723CONFIG_INPUT=y
689# CONFIG_INPUT_FF_MEMLESS is not set 724# CONFIG_INPUT_FF_MEMLESS is not set
690# CONFIG_INPUT_POLLDEV is not set 725# CONFIG_INPUT_POLLDEV is not set
726# CONFIG_INPUT_SPARSEKMAP is not set
691 727
692# 728#
693# Userland interfaces 729# Userland interfaces
@@ -782,7 +818,6 @@ CONFIG_I2C_SH_MOBILE=y
782# 818#
783# Miscellaneous I2C Chip support 819# Miscellaneous I2C Chip support
784# 820#
785# CONFIG_DS1682 is not set
786# CONFIG_SENSORS_TSL2550 is not set 821# CONFIG_SENSORS_TSL2550 is not set
787# CONFIG_I2C_DEBUG_CORE is not set 822# CONFIG_I2C_DEBUG_CORE is not set
788# CONFIG_I2C_DEBUG_ALGO is not set 823# CONFIG_I2C_DEBUG_ALGO is not set
@@ -796,7 +831,10 @@ CONFIG_SPI_MASTER=y
796# 831#
797CONFIG_SPI_BITBANG=y 832CONFIG_SPI_BITBANG=y
798CONFIG_SPI_GPIO=y 833CONFIG_SPI_GPIO=y
834# CONFIG_SPI_SH_MSIOF is not set
799# CONFIG_SPI_SH_SCI is not set 835# CONFIG_SPI_SH_SCI is not set
836# CONFIG_SPI_XILINX is not set
837# CONFIG_SPI_DESIGNWARE is not set
800 838
801# 839#
802# SPI Protocol Masters 840# SPI Protocol Masters
@@ -854,11 +892,13 @@ CONFIG_SSB_POSSIBLE=y
854# 892#
855# CONFIG_MFD_CORE is not set 893# CONFIG_MFD_CORE is not set
856# CONFIG_MFD_SM501 is not set 894# CONFIG_MFD_SM501 is not set
895# CONFIG_MFD_SH_MOBILE_SDHI is not set
857# CONFIG_HTC_PASIC3 is not set 896# CONFIG_HTC_PASIC3 is not set
858# CONFIG_TPS65010 is not set 897# CONFIG_TPS65010 is not set
859# CONFIG_TWL4030_CORE is not set 898# CONFIG_TWL4030_CORE is not set
860# CONFIG_MFD_TMIO is not set 899# CONFIG_MFD_TMIO is not set
861# CONFIG_PMIC_DA903X is not set 900# CONFIG_PMIC_DA903X is not set
901# CONFIG_PMIC_ADP5520 is not set
862# CONFIG_MFD_WM8400 is not set 902# CONFIG_MFD_WM8400 is not set
863# CONFIG_MFD_WM831X is not set 903# CONFIG_MFD_WM831X is not set
864# CONFIG_MFD_WM8350_I2C is not set 904# CONFIG_MFD_WM8350_I2C is not set
@@ -866,6 +906,8 @@ CONFIG_SSB_POSSIBLE=y
866# CONFIG_MFD_MC13783 is not set 906# CONFIG_MFD_MC13783 is not set
867# CONFIG_AB3100_CORE is not set 907# CONFIG_AB3100_CORE is not set
868# CONFIG_EZX_PCAP is not set 908# CONFIG_EZX_PCAP is not set
909# CONFIG_MFD_88PM8607 is not set
910# CONFIG_AB4500_CORE is not set
869# CONFIG_REGULATOR is not set 911# CONFIG_REGULATOR is not set
870CONFIG_MEDIA_SUPPORT=y 912CONFIG_MEDIA_SUPPORT=y
871 913
@@ -882,6 +924,8 @@ CONFIG_VIDEO_MEDIA=y
882# 924#
883# Multimedia drivers 925# Multimedia drivers
884# 926#
927CONFIG_IR_CORE=y
928CONFIG_VIDEO_IR=y
885# CONFIG_MEDIA_ATTACH is not set 929# CONFIG_MEDIA_ATTACH is not set
886CONFIG_MEDIA_TUNER=y 930CONFIG_MEDIA_TUNER=y
887# CONFIG_MEDIA_TUNER_CUSTOMISE is not set 931# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
@@ -901,6 +945,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
901# CONFIG_VIDEO_ADV_DEBUG is not set 945# CONFIG_VIDEO_ADV_DEBUG is not set
902# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set 946# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
903CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 947CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
948CONFIG_VIDEO_IR_I2C=y
904# CONFIG_VIDEO_VIVI is not set 949# CONFIG_VIDEO_VIVI is not set
905# CONFIG_VIDEO_SAA5246A is not set 950# CONFIG_VIDEO_SAA5246A is not set
906# CONFIG_VIDEO_SAA5249 is not set 951# CONFIG_VIDEO_SAA5249 is not set
@@ -908,10 +953,13 @@ CONFIG_SOC_CAMERA=y
908# CONFIG_SOC_CAMERA_MT9M001 is not set 953# CONFIG_SOC_CAMERA_MT9M001 is not set
909# CONFIG_SOC_CAMERA_MT9M111 is not set 954# CONFIG_SOC_CAMERA_MT9M111 is not set
910# CONFIG_SOC_CAMERA_MT9T031 is not set 955# CONFIG_SOC_CAMERA_MT9T031 is not set
956# CONFIG_SOC_CAMERA_MT9T112 is not set
911# CONFIG_SOC_CAMERA_MT9V022 is not set 957# CONFIG_SOC_CAMERA_MT9V022 is not set
958# CONFIG_SOC_CAMERA_RJ54N1 is not set
912# CONFIG_SOC_CAMERA_TW9910 is not set 959# CONFIG_SOC_CAMERA_TW9910 is not set
913CONFIG_SOC_CAMERA_PLATFORM=y 960CONFIG_SOC_CAMERA_PLATFORM=y
914CONFIG_SOC_CAMERA_OV772X=y 961CONFIG_SOC_CAMERA_OV772X=y
962# CONFIG_SOC_CAMERA_OV9640 is not set
915CONFIG_VIDEO_SH_MOBILE_CEU=y 963CONFIG_VIDEO_SH_MOBILE_CEU=y
916# CONFIG_RADIO_ADAPTERS is not set 964# CONFIG_RADIO_ADAPTERS is not set
917# CONFIG_DAB is not set 965# CONFIG_DAB is not set
@@ -996,6 +1044,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
996# CONFIG_MMC_AT91 is not set 1044# CONFIG_MMC_AT91 is not set
997# CONFIG_MMC_ATMELMCI is not set 1045# CONFIG_MMC_ATMELMCI is not set
998CONFIG_MMC_SPI=y 1046CONFIG_MMC_SPI=y
1047# CONFIG_MMC_TMIO is not set
999# CONFIG_MEMSTICK is not set 1048# CONFIG_MEMSTICK is not set
1000# CONFIG_NEW_LEDS is not set 1049# CONFIG_NEW_LEDS is not set
1001# CONFIG_ACCESSIBILITY is not set 1050# CONFIG_ACCESSIBILITY is not set
@@ -1027,6 +1076,7 @@ CONFIG_RTC_INTF_DEV=y
1027CONFIG_RTC_DRV_PCF8563=y 1076CONFIG_RTC_DRV_PCF8563=y
1028# CONFIG_RTC_DRV_PCF8583 is not set 1077# CONFIG_RTC_DRV_PCF8583 is not set
1029# CONFIG_RTC_DRV_M41T80 is not set 1078# CONFIG_RTC_DRV_M41T80 is not set
1079# CONFIG_RTC_DRV_BQ32K is not set
1030# CONFIG_RTC_DRV_S35390A is not set 1080# CONFIG_RTC_DRV_S35390A is not set
1031# CONFIG_RTC_DRV_FM3130 is not set 1081# CONFIG_RTC_DRV_FM3130 is not set
1032# CONFIG_RTC_DRV_RX8581 is not set 1082# CONFIG_RTC_DRV_RX8581 is not set
@@ -1055,7 +1105,9 @@ CONFIG_RTC_DRV_PCF8563=y
1055# CONFIG_RTC_DRV_M48T86 is not set 1105# CONFIG_RTC_DRV_M48T86 is not set
1056# CONFIG_RTC_DRV_M48T35 is not set 1106# CONFIG_RTC_DRV_M48T35 is not set
1057# CONFIG_RTC_DRV_M48T59 is not set 1107# CONFIG_RTC_DRV_M48T59 is not set
1108# CONFIG_RTC_DRV_MSM6242 is not set
1058# CONFIG_RTC_DRV_BQ4802 is not set 1109# CONFIG_RTC_DRV_BQ4802 is not set
1110# CONFIG_RTC_DRV_RP5C01 is not set
1059# CONFIG_RTC_DRV_V3020 is not set 1111# CONFIG_RTC_DRV_V3020 is not set
1060 1112
1061# 1113#
@@ -1248,7 +1300,7 @@ CONFIG_FRAME_WARN=1024
1248# CONFIG_DEBUG_FS is not set 1300# CONFIG_DEBUG_FS is not set
1249# CONFIG_HEADERS_CHECK is not set 1301# CONFIG_HEADERS_CHECK is not set
1250# CONFIG_DEBUG_KERNEL is not set 1302# CONFIG_DEBUG_KERNEL is not set
1251# CONFIG_DEBUG_BUGVERBOSE is not set 1303CONFIG_DEBUG_BUGVERBOSE=y
1252# CONFIG_DEBUG_MEMORY_INIT is not set 1304# CONFIG_DEBUG_MEMORY_INIT is not set
1253# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1305# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1254# CONFIG_LATENCYTOP is not set 1306# CONFIG_LATENCYTOP is not set
@@ -1265,7 +1317,6 @@ CONFIG_TRACING_SUPPORT=y
1265# CONFIG_SAMPLES is not set 1317# CONFIG_SAMPLES is not set
1266CONFIG_HAVE_ARCH_KGDB=y 1318CONFIG_HAVE_ARCH_KGDB=y
1267# CONFIG_SH_STANDARD_BIOS is not set 1319# CONFIG_SH_STANDARD_BIOS is not set
1268# CONFIG_EARLY_SCIF_CONSOLE is not set
1269# CONFIG_DWARF_UNWINDER is not set 1320# CONFIG_DWARF_UNWINDER is not set
1270 1321
1271# 1322#
@@ -1274,7 +1325,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1274# CONFIG_KEYS is not set 1325# CONFIG_KEYS is not set
1275# CONFIG_SECURITY is not set 1326# CONFIG_SECURITY is not set
1276# CONFIG_SECURITYFS is not set 1327# CONFIG_SECURITYFS is not set
1277# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1328# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1329# CONFIG_DEFAULT_SECURITY_SMACK is not set
1330# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1331CONFIG_DEFAULT_SECURITY_DAC=y
1332CONFIG_DEFAULT_SECURITY=""
1278CONFIG_CRYPTO=y 1333CONFIG_CRYPTO=y
1279 1334
1280# 1335#
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig
index 6b863cb1e248..92589a950d07 100644
--- a/arch/sh/configs/cayman_defconfig
+++ b/arch/sh/configs/cayman_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.30 3# Linux kernel version: 2.6.33-rc2
4# Thu Jun 18 12:21:54 2009 4# Mon Jan 4 11:14:50 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7# CONFIG_SUPERH32 is not set 7# CONFIG_SUPERH32 is not set
@@ -14,11 +14,13 @@ CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 15CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
17CONFIG_IRQ_PER_CPU=y
17# CONFIG_GENERIC_GPIO is not set 18# CONFIG_GENERIC_GPIO is not set
18CONFIG_GENERIC_TIME=y 19CONFIG_GENERIC_TIME=y
19CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
20# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
21# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set 22# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
22CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
23CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -28,7 +30,10 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
28# CONFIG_ARCH_HAS_ILOG2_U64 is not set 30# CONFIG_ARCH_HAS_ILOG2_U64 is not set
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
31CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
36CONFIG_CONSTRUCTORS=y
32 37
33# 38#
34# General setup 39# General setup
@@ -39,6 +44,12 @@ CONFIG_LOCK_KERNEL=y
39CONFIG_INIT_ENV_ARG_LIMIT=32 44CONFIG_INIT_ENV_ARG_LIMIT=32
40CONFIG_LOCALVERSION="" 45CONFIG_LOCALVERSION=""
41CONFIG_LOCALVERSION_AUTO=y 46CONFIG_LOCALVERSION_AUTO=y
47CONFIG_HAVE_KERNEL_GZIP=y
48CONFIG_HAVE_KERNEL_BZIP2=y
49CONFIG_HAVE_KERNEL_LZMA=y
50CONFIG_KERNEL_GZIP=y
51# CONFIG_KERNEL_BZIP2 is not set
52# CONFIG_KERNEL_LZMA is not set
42CONFIG_SWAP=y 53CONFIG_SWAP=y
43# CONFIG_SYSVIPC is not set 54# CONFIG_SYSVIPC is not set
44CONFIG_POSIX_MQUEUE=y 55CONFIG_POSIX_MQUEUE=y
@@ -50,11 +61,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
50# 61#
51# RCU Subsystem 62# RCU Subsystem
52# 63#
53CONFIG_CLASSIC_RCU=y 64CONFIG_TREE_RCU=y
54# CONFIG_TREE_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
55# CONFIG_PREEMPT_RCU is not set 66# CONFIG_TINY_RCU is not set
67# CONFIG_RCU_TRACE is not set
68CONFIG_RCU_FANOUT=32
69# CONFIG_RCU_FANOUT_EXACT is not set
56# CONFIG_TREE_RCU_TRACE is not set 70# CONFIG_TREE_RCU_TRACE is not set
57# CONFIG_PREEMPT_RCU_TRACE is not set
58# CONFIG_IKCONFIG is not set 71# CONFIG_IKCONFIG is not set
59CONFIG_LOG_BUF_SHIFT=14 72CONFIG_LOG_BUF_SHIFT=14
60# CONFIG_GROUP_SCHED is not set 73# CONFIG_GROUP_SCHED is not set
@@ -85,24 +98,32 @@ CONFIG_TIMERFD=y
85CONFIG_EVENTFD=y 98CONFIG_EVENTFD=y
86CONFIG_SHMEM=y 99CONFIG_SHMEM=y
87CONFIG_AIO=y 100CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y
102CONFIG_PERF_USE_VMALLOC=y
88 103
89# 104#
90# Performance Counters 105# Kernel Performance Events And Counters
91# 106#
107# CONFIG_PERF_EVENTS is not set
108# CONFIG_PERF_COUNTERS is not set
92CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
93CONFIG_PCI_QUIRKS=y 110CONFIG_PCI_QUIRKS=y
94# CONFIG_STRIP_ASM_SYMS is not set
95CONFIG_COMPAT_BRK=y 111CONFIG_COMPAT_BRK=y
96CONFIG_SLAB=y 112CONFIG_SLAB=y
97# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
98# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
99# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
100# CONFIG_MARKERS is not set
101CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
102CONFIG_HAVE_IOREMAP_PROT=y 117CONFIG_HAVE_IOREMAP_PROT=y
103CONFIG_HAVE_ARCH_TRACEHOOK=y 118CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_DMA_ATTRS=y
104CONFIG_HAVE_CLK=y 120CONFIG_HAVE_CLK=y
105CONFIG_HAVE_DMA_API_DEBUG=y 121CONFIG_HAVE_DMA_API_DEBUG=y
122
123#
124# GCOV-based kernel profiling
125#
126# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set 127# CONFIG_SLOW_WORK is not set
107CONFIG_HAVE_GENERIC_DMA_COHERENT=y 128CONFIG_HAVE_GENERIC_DMA_COHERENT=y
108CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
@@ -115,7 +136,7 @@ CONFIG_MODULE_UNLOAD=y
115# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
116# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
117CONFIG_BLOCK=y 138CONFIG_BLOCK=y
118# CONFIG_LBD is not set 139CONFIG_LBDAF=y
119# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
120# CONFIG_BLK_DEV_INTEGRITY is not set 141# CONFIG_BLK_DEV_INTEGRITY is not set
121 142
@@ -123,14 +144,41 @@ CONFIG_BLOCK=y
123# IO Schedulers 144# IO Schedulers
124# 145#
125CONFIG_IOSCHED_NOOP=y 146CONFIG_IOSCHED_NOOP=y
126CONFIG_IOSCHED_AS=y
127CONFIG_IOSCHED_DEADLINE=y 147CONFIG_IOSCHED_DEADLINE=y
128CONFIG_IOSCHED_CFQ=y 148CONFIG_IOSCHED_CFQ=y
129# CONFIG_DEFAULT_AS is not set
130# CONFIG_DEFAULT_DEADLINE is not set 149# CONFIG_DEFAULT_DEADLINE is not set
131CONFIG_DEFAULT_CFQ=y 150CONFIG_DEFAULT_CFQ=y
132# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
133CONFIG_DEFAULT_IOSCHED="cfq" 152CONFIG_DEFAULT_IOSCHED="cfq"
153# CONFIG_INLINE_SPIN_TRYLOCK is not set
154# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
155# CONFIG_INLINE_SPIN_LOCK is not set
156# CONFIG_INLINE_SPIN_LOCK_BH is not set
157# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
158# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
159# CONFIG_INLINE_SPIN_UNLOCK is not set
160# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
161# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
162# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
163# CONFIG_INLINE_READ_TRYLOCK is not set
164# CONFIG_INLINE_READ_LOCK is not set
165# CONFIG_INLINE_READ_LOCK_BH is not set
166# CONFIG_INLINE_READ_LOCK_IRQ is not set
167# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
168# CONFIG_INLINE_READ_UNLOCK is not set
169# CONFIG_INLINE_READ_UNLOCK_BH is not set
170# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
171# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
172# CONFIG_INLINE_WRITE_TRYLOCK is not set
173# CONFIG_INLINE_WRITE_LOCK is not set
174# CONFIG_INLINE_WRITE_LOCK_BH is not set
175# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
176# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
177# CONFIG_INLINE_WRITE_UNLOCK is not set
178# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
179# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
180# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
181# CONFIG_MUTEX_SPIN_ON_OWNER is not set
134# CONFIG_FREEZER is not set 182# CONFIG_FREEZER is not set
135 183
136# 184#
@@ -178,8 +226,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
178# CONFIG_PHYS_ADDR_T_64BIT is not set 226# CONFIG_PHYS_ADDR_T_64BIT is not set
179CONFIG_ZONE_DMA_FLAG=0 227CONFIG_ZONE_DMA_FLAG=0
180CONFIG_NR_QUICK=2 228CONFIG_NR_QUICK=2
181CONFIG_HAVE_MLOCK=y 229# CONFIG_KSM is not set
182CONFIG_HAVE_MLOCKED_PAGE_BIT=y
183CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 230CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
184 231
185# 232#
@@ -255,13 +302,13 @@ CONFIG_PREEMPT=y
255CONFIG_ZERO_PAGE_OFFSET=0x00001000 302CONFIG_ZERO_PAGE_OFFSET=0x00001000
256CONFIG_BOOT_LINK_OFFSET=0x00400000 303CONFIG_BOOT_LINK_OFFSET=0x00400000
257CONFIG_ENTRY_OFFSET=0x00001000 304CONFIG_ENTRY_OFFSET=0x00001000
258# CONFIG_CMDLINE_BOOL is not set 305# CONFIG_CMDLINE_OVERWRITE is not set
306# CONFIG_CMDLINE_EXTEND is not set
259 307
260# 308#
261# Bus options 309# Bus options
262# 310#
263CONFIG_PCI=y 311CONFIG_PCI=y
264CONFIG_SH_PCIDMA_NONCOHERENT=y
265# CONFIG_PCIEPORTBUS is not set 312# CONFIG_PCIEPORTBUS is not set
266# CONFIG_ARCH_SUPPORTS_MSI is not set 313# CONFIG_ARCH_SUPPORTS_MSI is not set
267CONFIG_PCI_LEGACY=y 314CONFIG_PCI_LEGACY=y
@@ -330,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
330# CONFIG_NETFILTER is not set 377# CONFIG_NETFILTER is not set
331# CONFIG_IP_DCCP is not set 378# CONFIG_IP_DCCP is not set
332# CONFIG_IP_SCTP is not set 379# CONFIG_IP_SCTP is not set
380# CONFIG_RDS is not set
333# CONFIG_TIPC is not set 381# CONFIG_TIPC is not set
334# CONFIG_ATM is not set 382# CONFIG_ATM is not set
335# CONFIG_BRIDGE is not set 383# CONFIG_BRIDGE is not set
@@ -359,14 +407,11 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_AF_RXRPC is not set 407# CONFIG_AF_RXRPC is not set
360CONFIG_WIRELESS=y 408CONFIG_WIRELESS=y
361# CONFIG_CFG80211 is not set 409# CONFIG_CFG80211 is not set
362# CONFIG_WIRELESS_OLD_REGULATORY is not set
363# CONFIG_WIRELESS_EXT is not set
364# CONFIG_LIB80211 is not set 410# CONFIG_LIB80211 is not set
365 411
366# 412#
367# CFG80211 needs to be enabled for MAC80211 413# CFG80211 needs to be enabled for MAC80211
368# 414#
369CONFIG_MAC80211_DEFAULT_PS_VALUE=0
370# CONFIG_WIMAX is not set 415# CONFIG_WIMAX is not set
371# CONFIG_RFKILL is not set 416# CONFIG_RFKILL is not set
372# CONFIG_NET_9P is not set 417# CONFIG_NET_9P is not set
@@ -379,6 +424,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0
379# Generic Driver Options 424# Generic Driver Options
380# 425#
381CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 426CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
427# CONFIG_DEVTMPFS is not set
382CONFIG_STANDALONE=y 428CONFIG_STANDALONE=y
383CONFIG_PREVENT_FIRMWARE_BUILD=y 429CONFIG_PREVENT_FIRMWARE_BUILD=y
384# CONFIG_FW_LOADER is not set 430# CONFIG_FW_LOADER is not set
@@ -395,6 +441,10 @@ CONFIG_BLK_DEV=y
395# CONFIG_BLK_DEV_COW_COMMON is not set 441# CONFIG_BLK_DEV_COW_COMMON is not set
396CONFIG_BLK_DEV_LOOP=y 442CONFIG_BLK_DEV_LOOP=y
397# CONFIG_BLK_DEV_CRYPTOLOOP is not set 443# CONFIG_BLK_DEV_CRYPTOLOOP is not set
444
445#
446# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
447#
398# CONFIG_BLK_DEV_NBD is not set 448# CONFIG_BLK_DEV_NBD is not set
399# CONFIG_BLK_DEV_SX8 is not set 449# CONFIG_BLK_DEV_SX8 is not set
400CONFIG_BLK_DEV_RAM=y 450CONFIG_BLK_DEV_RAM=y
@@ -405,6 +455,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
405# CONFIG_ATA_OVER_ETH is not set 455# CONFIG_ATA_OVER_ETH is not set
406# CONFIG_BLK_DEV_HD is not set 456# CONFIG_BLK_DEV_HD is not set
407CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
458# CONFIG_AD525X_DPOT is not set
408# CONFIG_PHANTOM is not set 459# CONFIG_PHANTOM is not set
409# CONFIG_SGI_IOC4 is not set 460# CONFIG_SGI_IOC4 is not set
410# CONFIG_TIFM_CORE is not set 461# CONFIG_TIFM_CORE is not set
@@ -412,6 +463,7 @@ CONFIG_MISC_DEVICES=y
412# CONFIG_ENCLOSURE_SERVICES is not set 463# CONFIG_ENCLOSURE_SERVICES is not set
413# CONFIG_HP_ILO is not set 464# CONFIG_HP_ILO is not set
414# CONFIG_ISL29003 is not set 465# CONFIG_ISL29003 is not set
466# CONFIG_DS1682 is not set
415# CONFIG_C2PORT is not set 467# CONFIG_C2PORT is not set
416 468
417# 469#
@@ -462,8 +514,11 @@ CONFIG_SCSI_LOWLEVEL=y
462# CONFIG_ISCSI_TCP is not set 514# CONFIG_ISCSI_TCP is not set
463# CONFIG_SCSI_CXGB3_ISCSI is not set 515# CONFIG_SCSI_CXGB3_ISCSI is not set
464# CONFIG_SCSI_BNX2_ISCSI is not set 516# CONFIG_SCSI_BNX2_ISCSI is not set
517# CONFIG_BE2ISCSI is not set
465# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 518# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
519# CONFIG_SCSI_HPSA is not set
466# CONFIG_SCSI_3W_9XXX is not set 520# CONFIG_SCSI_3W_9XXX is not set
521# CONFIG_SCSI_3W_SAS is not set
467# CONFIG_SCSI_ACARD is not set 522# CONFIG_SCSI_ACARD is not set
468# CONFIG_SCSI_AACRAID is not set 523# CONFIG_SCSI_AACRAID is not set
469# CONFIG_SCSI_AIC7XXX is not set 524# CONFIG_SCSI_AIC7XXX is not set
@@ -495,7 +550,10 @@ CONFIG_SCSI_LOWLEVEL=y
495# CONFIG_SCSI_DC390T is not set 550# CONFIG_SCSI_DC390T is not set
496# CONFIG_SCSI_NSP32 is not set 551# CONFIG_SCSI_NSP32 is not set
497# CONFIG_SCSI_DEBUG is not set 552# CONFIG_SCSI_DEBUG is not set
553# CONFIG_SCSI_PMCRAID is not set
554# CONFIG_SCSI_PM8001 is not set
498# CONFIG_SCSI_SRP is not set 555# CONFIG_SCSI_SRP is not set
556# CONFIG_SCSI_BFA_FC is not set
499# CONFIG_SCSI_DH is not set 557# CONFIG_SCSI_DH is not set
500# CONFIG_SCSI_OSD_INITIATOR is not set 558# CONFIG_SCSI_OSD_INITIATOR is not set
501# CONFIG_ATA is not set 559# CONFIG_ATA is not set
@@ -507,7 +565,11 @@ CONFIG_SCSI_LOWLEVEL=y
507# 565#
508 566
509# 567#
510# Enable only one of the two stacks, unless you know what you are doing 568# You can enable one or both FireWire driver stacks.
569#
570
571#
572# See the help texts for more information.
511# 573#
512# CONFIG_FIREWIRE is not set 574# CONFIG_FIREWIRE is not set
513# CONFIG_IEEE1394 is not set 575# CONFIG_IEEE1394 is not set
@@ -546,6 +608,7 @@ CONFIG_NET_ETHERNET=y
546# CONFIG_NET_PCI is not set 608# CONFIG_NET_PCI is not set
547# CONFIG_B44 is not set 609# CONFIG_B44 is not set
548# CONFIG_KS8842 is not set 610# CONFIG_KS8842 is not set
611# CONFIG_KS8851_MLL is not set
549# CONFIG_ATL2 is not set 612# CONFIG_ATL2 is not set
550CONFIG_NETDEV_1000=y 613CONFIG_NETDEV_1000=y
551# CONFIG_ACENIC is not set 614# CONFIG_ACENIC is not set
@@ -565,6 +628,7 @@ CONFIG_NETDEV_1000=y
565# CONFIG_VIA_VELOCITY is not set 628# CONFIG_VIA_VELOCITY is not set
566# CONFIG_TIGON3 is not set 629# CONFIG_TIGON3 is not set
567# CONFIG_BNX2 is not set 630# CONFIG_BNX2 is not set
631# CONFIG_CNIC is not set
568# CONFIG_QLA3XXX is not set 632# CONFIG_QLA3XXX is not set
569# CONFIG_ATL1 is not set 633# CONFIG_ATL1 is not set
570# CONFIG_ATL1E is not set 634# CONFIG_ATL1E is not set
@@ -590,12 +654,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y
590# CONFIG_SFC is not set 654# CONFIG_SFC is not set
591# CONFIG_BE2NET is not set 655# CONFIG_BE2NET is not set
592# CONFIG_TR is not set 656# CONFIG_TR is not set
593 657CONFIG_WLAN=y
594# 658# CONFIG_ATMEL is not set
595# Wireless LAN 659# CONFIG_PRISM54 is not set
596# 660# CONFIG_HOSTAP is not set
597# CONFIG_WLAN_PRE80211 is not set
598# CONFIG_WLAN_80211 is not set
599 661
600# 662#
601# Enable WiMAX (Networking options) to see the WiMAX drivers 663# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -609,6 +671,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
609# CONFIG_NETCONSOLE is not set 671# CONFIG_NETCONSOLE is not set
610# CONFIG_NETPOLL is not set 672# CONFIG_NETPOLL is not set
611# CONFIG_NET_POLL_CONTROLLER is not set 673# CONFIG_NET_POLL_CONTROLLER is not set
674# CONFIG_VMXNET3 is not set
612# CONFIG_ISDN is not set 675# CONFIG_ISDN is not set
613# CONFIG_PHONE is not set 676# CONFIG_PHONE is not set
614 677
@@ -618,6 +681,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
618CONFIG_INPUT=y 681CONFIG_INPUT=y
619# CONFIG_INPUT_FF_MEMLESS is not set 682# CONFIG_INPUT_FF_MEMLESS is not set
620# CONFIG_INPUT_POLLDEV is not set 683# CONFIG_INPUT_POLLDEV is not set
684# CONFIG_INPUT_SPARSEKMAP is not set
621 685
622# 686#
623# Userland interfaces 687# Userland interfaces
@@ -682,6 +746,7 @@ CONFIG_HW_RANDOM=y
682CONFIG_DEVPORT=y 746CONFIG_DEVPORT=y
683CONFIG_I2C=m 747CONFIG_I2C=m
684CONFIG_I2C_BOARDINFO=y 748CONFIG_I2C_BOARDINFO=y
749CONFIG_I2C_COMPAT=y
685# CONFIG_I2C_CHARDEV is not set 750# CONFIG_I2C_CHARDEV is not set
686CONFIG_I2C_HELPER_AUTO=y 751CONFIG_I2C_HELPER_AUTO=y
687 752
@@ -710,6 +775,7 @@ CONFIG_I2C_HELPER_AUTO=y
710# 775#
711# I2C system bus drivers (mostly embedded / system-on-chip) 776# I2C system bus drivers (mostly embedded / system-on-chip)
712# 777#
778# CONFIG_I2C_DESIGNWARE is not set
713# CONFIG_I2C_OCORES is not set 779# CONFIG_I2C_OCORES is not set
714# CONFIG_I2C_SH_MOBILE is not set 780# CONFIG_I2C_SH_MOBILE is not set
715# CONFIG_I2C_SIMTEC is not set 781# CONFIG_I2C_SIMTEC is not set
@@ -721,11 +787,6 @@ CONFIG_I2C_HELPER_AUTO=y
721# CONFIG_I2C_TAOS_EVM is not set 787# CONFIG_I2C_TAOS_EVM is not set
722 788
723# 789#
724# Graphics adapter I2C/DDC channel drivers
725#
726# CONFIG_I2C_VOODOO3 is not set
727
728#
729# Other I2C/SMBus bus drivers 790# Other I2C/SMBus bus drivers
730# 791#
731# CONFIG_I2C_PCA_PLATFORM is not set 792# CONFIG_I2C_PCA_PLATFORM is not set
@@ -734,20 +795,26 @@ CONFIG_I2C_HELPER_AUTO=y
734# 795#
735# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
736# 797#
737# CONFIG_DS1682 is not set
738# CONFIG_SENSORS_PCF8574 is not set
739# CONFIG_PCF8575 is not set
740# CONFIG_SENSORS_PCA9539 is not set
741# CONFIG_SENSORS_TSL2550 is not set 798# CONFIG_SENSORS_TSL2550 is not set
742# CONFIG_I2C_DEBUG_CORE is not set 799# CONFIG_I2C_DEBUG_CORE is not set
743# CONFIG_I2C_DEBUG_ALGO is not set 800# CONFIG_I2C_DEBUG_ALGO is not set
744# CONFIG_I2C_DEBUG_BUS is not set 801# CONFIG_I2C_DEBUG_BUS is not set
745# CONFIG_I2C_DEBUG_CHIP is not set 802# CONFIG_I2C_DEBUG_CHIP is not set
746# CONFIG_SPI is not set 803# CONFIG_SPI is not set
804
805#
806# PPS support
807#
808# CONFIG_PPS is not set
747# CONFIG_W1 is not set 809# CONFIG_W1 is not set
748# CONFIG_POWER_SUPPLY is not set 810# CONFIG_POWER_SUPPLY is not set
749CONFIG_HWMON=y 811CONFIG_HWMON=y
750# CONFIG_HWMON_VID is not set 812# CONFIG_HWMON_VID is not set
813# CONFIG_HWMON_DEBUG_CHIP is not set
814
815#
816# Native drivers
817#
751# CONFIG_SENSORS_AD7414 is not set 818# CONFIG_SENSORS_AD7414 is not set
752# CONFIG_SENSORS_AD7418 is not set 819# CONFIG_SENSORS_AD7418 is not set
753# CONFIG_SENSORS_ADM1021 is not set 820# CONFIG_SENSORS_ADM1021 is not set
@@ -771,6 +838,7 @@ CONFIG_HWMON=y
771# CONFIG_SENSORS_GL520SM is not set 838# CONFIG_SENSORS_GL520SM is not set
772# CONFIG_SENSORS_IT87 is not set 839# CONFIG_SENSORS_IT87 is not set
773# CONFIG_SENSORS_LM63 is not set 840# CONFIG_SENSORS_LM63 is not set
841# CONFIG_SENSORS_LM73 is not set
774# CONFIG_SENSORS_LM75 is not set 842# CONFIG_SENSORS_LM75 is not set
775# CONFIG_SENSORS_LM77 is not set 843# CONFIG_SENSORS_LM77 is not set
776# CONFIG_SENSORS_LM78 is not set 844# CONFIG_SENSORS_LM78 is not set
@@ -797,6 +865,7 @@ CONFIG_HWMON=y
797# CONFIG_SENSORS_ADS7828 is not set 865# CONFIG_SENSORS_ADS7828 is not set
798# CONFIG_SENSORS_THMC50 is not set 866# CONFIG_SENSORS_THMC50 is not set
799# CONFIG_SENSORS_TMP401 is not set 867# CONFIG_SENSORS_TMP401 is not set
868# CONFIG_SENSORS_TMP421 is not set
800# CONFIG_SENSORS_VIA686A is not set 869# CONFIG_SENSORS_VIA686A is not set
801# CONFIG_SENSORS_VT1211 is not set 870# CONFIG_SENSORS_VT1211 is not set
802# CONFIG_SENSORS_VT8231 is not set 871# CONFIG_SENSORS_VT8231 is not set
@@ -808,9 +877,8 @@ CONFIG_HWMON=y
808# CONFIG_SENSORS_W83L786NG is not set 877# CONFIG_SENSORS_W83L786NG is not set
809# CONFIG_SENSORS_W83627HF is not set 878# CONFIG_SENSORS_W83627HF is not set
810# CONFIG_SENSORS_W83627EHF is not set 879# CONFIG_SENSORS_W83627EHF is not set
811# CONFIG_HWMON_DEBUG_CHIP is not set 880# CONFIG_SENSORS_LIS3_I2C is not set
812# CONFIG_THERMAL is not set 881# CONFIG_THERMAL is not set
813# CONFIG_THERMAL_HWMON is not set
814CONFIG_WATCHDOG=y 882CONFIG_WATCHDOG=y
815# CONFIG_WATCHDOG_NOWAYOUT is not set 883# CONFIG_WATCHDOG_NOWAYOUT is not set
816 884
@@ -837,17 +905,20 @@ CONFIG_SSB_POSSIBLE=y
837# 905#
838# CONFIG_MFD_CORE is not set 906# CONFIG_MFD_CORE is not set
839# CONFIG_MFD_SM501 is not set 907# CONFIG_MFD_SM501 is not set
908# CONFIG_MFD_SH_MOBILE_SDHI is not set
840# CONFIG_HTC_PASIC3 is not set 909# CONFIG_HTC_PASIC3 is not set
841# CONFIG_MFD_TMIO is not set 910# CONFIG_MFD_TMIO is not set
842# CONFIG_MFD_WM8400 is not set 911# CONFIG_MFD_WM8400 is not set
843# CONFIG_MFD_WM8350_I2C is not set 912# CONFIG_MFD_WM8350_I2C is not set
844# CONFIG_MFD_PCF50633 is not set 913# CONFIG_MFD_PCF50633 is not set
914# CONFIG_AB3100_CORE is not set
845# CONFIG_REGULATOR is not set 915# CONFIG_REGULATOR is not set
846# CONFIG_MEDIA_SUPPORT is not set 916# CONFIG_MEDIA_SUPPORT is not set
847 917
848# 918#
849# Graphics support 919# Graphics support
850# 920#
921CONFIG_VGA_ARB=y
851# CONFIG_DRM is not set 922# CONFIG_DRM is not set
852# CONFIG_VGASTATE is not set 923# CONFIG_VGASTATE is not set
853CONFIG_VIDEO_OUTPUT_CONTROL=y 924CONFIG_VIDEO_OUTPUT_CONTROL=y
@@ -939,7 +1010,6 @@ CONFIG_LOGO_SUPERH_CLUT224=y
939# CONFIG_SOUND is not set 1010# CONFIG_SOUND is not set
940CONFIG_HID_SUPPORT=y 1011CONFIG_HID_SUPPORT=y
941CONFIG_HID=y 1012CONFIG_HID=y
942# CONFIG_HID_DEBUG is not set
943# CONFIG_HIDRAW is not set 1013# CONFIG_HIDRAW is not set
944# CONFIG_HID_PID is not set 1014# CONFIG_HID_PID is not set
945 1015
@@ -1002,8 +1072,10 @@ CONFIG_FS_MBCACHE=y
1002# CONFIG_JFS_FS is not set 1072# CONFIG_JFS_FS is not set
1003# CONFIG_FS_POSIX_ACL is not set 1073# CONFIG_FS_POSIX_ACL is not set
1004# CONFIG_XFS_FS is not set 1074# CONFIG_XFS_FS is not set
1075# CONFIG_GFS2_FS is not set
1005# CONFIG_OCFS2_FS is not set 1076# CONFIG_OCFS2_FS is not set
1006# CONFIG_BTRFS_FS is not set 1077# CONFIG_BTRFS_FS is not set
1078# CONFIG_NILFS2_FS is not set
1007CONFIG_FILE_LOCKING=y 1079CONFIG_FILE_LOCKING=y
1008CONFIG_FSNOTIFY=y 1080CONFIG_FSNOTIFY=y
1009CONFIG_DNOTIFY=y 1081CONFIG_DNOTIFY=y
@@ -1067,7 +1139,6 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
1067CONFIG_ROMFS_ON_BLOCK=y 1139CONFIG_ROMFS_ON_BLOCK=y
1068# CONFIG_SYSV_FS is not set 1140# CONFIG_SYSV_FS is not set
1069# CONFIG_UFS_FS is not set 1141# CONFIG_UFS_FS is not set
1070# CONFIG_NILFS2_FS is not set
1071CONFIG_NETWORK_FILESYSTEMS=y 1142CONFIG_NETWORK_FILESYSTEMS=y
1072CONFIG_NFS_FS=y 1143CONFIG_NFS_FS=y
1073CONFIG_NFS_V3=y 1144CONFIG_NFS_V3=y
@@ -1120,6 +1191,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1120CONFIG_ENABLE_MUST_CHECK=y 1191CONFIG_ENABLE_MUST_CHECK=y
1121CONFIG_FRAME_WARN=1024 1192CONFIG_FRAME_WARN=1024
1122CONFIG_MAGIC_SYSRQ=y 1193CONFIG_MAGIC_SYSRQ=y
1194# CONFIG_STRIP_ASM_SYMS is not set
1123# CONFIG_UNUSED_SYMBOLS is not set 1195# CONFIG_UNUSED_SYMBOLS is not set
1124CONFIG_DEBUG_FS=y 1196CONFIG_DEBUG_FS=y
1125# CONFIG_HEADERS_CHECK is not set 1197# CONFIG_HEADERS_CHECK is not set
@@ -1155,21 +1227,25 @@ CONFIG_DEBUG_BUGVERBOSE=y
1155# CONFIG_DEBUG_LIST is not set 1227# CONFIG_DEBUG_LIST is not set
1156# CONFIG_DEBUG_SG is not set 1228# CONFIG_DEBUG_SG is not set
1157# CONFIG_DEBUG_NOTIFIERS is not set 1229# CONFIG_DEBUG_NOTIFIERS is not set
1230# CONFIG_DEBUG_CREDENTIALS is not set
1158CONFIG_FRAME_POINTER=y 1231CONFIG_FRAME_POINTER=y
1159# CONFIG_RCU_TORTURE_TEST is not set 1232# CONFIG_RCU_TORTURE_TEST is not set
1160# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1233# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1161# CONFIG_BACKTRACE_SELF_TEST is not set 1234# CONFIG_BACKTRACE_SELF_TEST is not set
1162# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1235# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1236# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1163# CONFIG_FAULT_INJECTION is not set 1237# CONFIG_FAULT_INJECTION is not set
1164# CONFIG_LATENCYTOP is not set 1238# CONFIG_LATENCYTOP is not set
1165# CONFIG_SYSCTL_SYSCALL_CHECK is not set 1239# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1166# CONFIG_PAGE_POISONING is not set 1240# CONFIG_PAGE_POISONING is not set
1241CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
1167CONFIG_TRACING_SUPPORT=y 1242CONFIG_TRACING_SUPPORT=y
1168CONFIG_FTRACE=y 1243CONFIG_FTRACE=y
1169# CONFIG_IRQSOFF_TRACER is not set 1244# CONFIG_IRQSOFF_TRACER is not set
1170# CONFIG_PREEMPT_TRACER is not set 1245# CONFIG_PREEMPT_TRACER is not set
1171# CONFIG_SCHED_TRACER is not set 1246# CONFIG_SCHED_TRACER is not set
1172# CONFIG_ENABLE_DEFAULT_TRACERS is not set 1247# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1248# CONFIG_FTRACE_SYSCALLS is not set
1173# CONFIG_BOOT_TRACER is not set 1249# CONFIG_BOOT_TRACER is not set
1174CONFIG_BRANCH_PROFILE_NONE=y 1250CONFIG_BRANCH_PROFILE_NONE=y
1175# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set 1251# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
@@ -1180,11 +1256,9 @@ CONFIG_BRANCH_PROFILE_NONE=y
1180# CONFIG_DYNAMIC_DEBUG is not set 1256# CONFIG_DYNAMIC_DEBUG is not set
1181# CONFIG_DMA_API_DEBUG is not set 1257# CONFIG_DMA_API_DEBUG is not set
1182# CONFIG_SAMPLES is not set 1258# CONFIG_SAMPLES is not set
1183# CONFIG_KMEMCHECK is not set
1184# CONFIG_EARLY_SCIF_CONSOLE is not set
1185# CONFIG_DEBUG_BOOTMEM is not set
1186# CONFIG_DEBUG_STACK_USAGE is not set 1259# CONFIG_DEBUG_STACK_USAGE is not set
1187# CONFIG_4KSTACKS is not set 1260# CONFIG_4KSTACKS is not set
1261# CONFIG_DWARF_UNWINDER is not set
1188# CONFIG_SH_NO_BSS_INIT is not set 1262# CONFIG_SH_NO_BSS_INIT is not set
1189CONFIG_SH64_SR_WATCH=y 1263CONFIG_SH64_SR_WATCH=y
1190 1264
@@ -1194,13 +1268,16 @@ CONFIG_SH64_SR_WATCH=y
1194# CONFIG_KEYS is not set 1268# CONFIG_KEYS is not set
1195# CONFIG_SECURITY is not set 1269# CONFIG_SECURITY is not set
1196# CONFIG_SECURITYFS is not set 1270# CONFIG_SECURITYFS is not set
1197# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1271# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1272# CONFIG_DEFAULT_SECURITY_SMACK is not set
1273# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1274CONFIG_DEFAULT_SECURITY_DAC=y
1275CONFIG_DEFAULT_SECURITY=""
1198CONFIG_CRYPTO=y 1276CONFIG_CRYPTO=y
1199 1277
1200# 1278#
1201# Crypto core or helper 1279# Crypto core or helper
1202# 1280#
1203# CONFIG_CRYPTO_FIPS is not set
1204# CONFIG_CRYPTO_MANAGER is not set 1281# CONFIG_CRYPTO_MANAGER is not set
1205# CONFIG_CRYPTO_MANAGER2 is not set 1282# CONFIG_CRYPTO_MANAGER2 is not set
1206# CONFIG_CRYPTO_GF128MUL is not set 1283# CONFIG_CRYPTO_GF128MUL is not set
@@ -1232,11 +1309,13 @@ CONFIG_CRYPTO=y
1232# 1309#
1233# CONFIG_CRYPTO_HMAC is not set 1310# CONFIG_CRYPTO_HMAC is not set
1234# CONFIG_CRYPTO_XCBC is not set 1311# CONFIG_CRYPTO_XCBC is not set
1312# CONFIG_CRYPTO_VMAC is not set
1235 1313
1236# 1314#
1237# Digest 1315# Digest
1238# 1316#
1239# CONFIG_CRYPTO_CRC32C is not set 1317# CONFIG_CRYPTO_CRC32C is not set
1318# CONFIG_CRYPTO_GHASH is not set
1240# CONFIG_CRYPTO_MD4 is not set 1319# CONFIG_CRYPTO_MD4 is not set
1241# CONFIG_CRYPTO_MD5 is not set 1320# CONFIG_CRYPTO_MD5 is not set
1242# CONFIG_CRYPTO_MICHAEL_MIC is not set 1321# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1299,5 +1378,6 @@ CONFIG_CRC32=y
1299CONFIG_HAS_IOMEM=y 1378CONFIG_HAS_IOMEM=y
1300CONFIG_HAS_IOPORT=y 1379CONFIG_HAS_IOPORT=y
1301CONFIG_HAS_DMA=y 1380CONFIG_HAS_DMA=y
1381CONFIG_HAVE_LMB=y
1302CONFIG_NLATTR=y 1382CONFIG_NLATTR=y
1303CONFIG_GENERIC_ATOMIC64=y 1383CONFIG_GENERIC_ATOMIC64=y
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig
index aedbd4f13046..55f652be954b 100644
--- a/arch/sh/configs/dreamcast_defconfig
+++ b/arch/sh/configs/dreamcast_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:56:07 2009 4# Mon Jan 4 11:17:35 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_GENERIC_CMOS_UPDATE=y 21CONFIG_GENERIC_CMOS_UPDATE=y
22# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 22# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
23CONFIG_ARCH_HIBERNATION_POSSIBLE=y 23CONFIG_ARCH_HIBERNATION_POSSIBLE=y
24CONFIG_SYS_SUPPORTS_HUGETLBFS=y
24CONFIG_SYS_SUPPORTS_PCI=y 25CONFIG_SYS_SUPPORTS_PCI=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
26CONFIG_STACKTRACE_SUPPORT=y 27CONFIG_STACKTRACE_SUPPORT=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y
63# 65#
64CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 69# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -97,6 +100,7 @@ CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 100CONFIG_SHMEM=y
98CONFIG_AIO=y 101CONFIG_AIO=y
99CONFIG_HAVE_PERF_EVENTS=y 102CONFIG_HAVE_PERF_EVENTS=y
103CONFIG_PERF_USE_VMALLOC=y
100 104
101# 105#
102# Kernel Performance Events And Counters 106# Kernel Performance Events And Counters
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
120CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
121CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
122 127
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y
143# IO Schedulers 148# IO Schedulers
144# 149#
145CONFIG_IOSCHED_NOOP=y 150CONFIG_IOSCHED_NOOP=y
146CONFIG_IOSCHED_AS=y
147CONFIG_IOSCHED_DEADLINE=y 151CONFIG_IOSCHED_DEADLINE=y
148CONFIG_IOSCHED_CFQ=y 152CONFIG_IOSCHED_CFQ=y
149CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_DEADLINE is not set 153# CONFIG_DEFAULT_DEADLINE is not set
151# CONFIG_DEFAULT_CFQ is not set 154CONFIG_DEFAULT_CFQ=y
152# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="cfq"
157# CONFIG_INLINE_SPIN_TRYLOCK is not set
158# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK is not set
160# CONFIG_INLINE_SPIN_LOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
162# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
163# CONFIG_INLINE_SPIN_UNLOCK is not set
164# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
165# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
166# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
167# CONFIG_INLINE_READ_TRYLOCK is not set
168# CONFIG_INLINE_READ_LOCK is not set
169# CONFIG_INLINE_READ_LOCK_BH is not set
170# CONFIG_INLINE_READ_LOCK_IRQ is not set
171# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
172# CONFIG_INLINE_READ_UNLOCK is not set
173# CONFIG_INLINE_READ_UNLOCK_BH is not set
174# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
175# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
176# CONFIG_INLINE_WRITE_TRYLOCK is not set
177# CONFIG_INLINE_WRITE_LOCK is not set
178# CONFIG_INLINE_WRITE_LOCK_BH is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
180# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
181# CONFIG_INLINE_WRITE_UNLOCK is not set
182# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
183# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
184# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
185# CONFIG_MUTEX_SPIN_ON_OWNER is not set
154# CONFIG_FREEZER is not set 186# CONFIG_FREEZER is not set
155 187
156# 188#
@@ -232,8 +264,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
232# CONFIG_PHYS_ADDR_T_64BIT is not set 264# CONFIG_PHYS_ADDR_T_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=0 265CONFIG_ZONE_DMA_FLAG=0
234CONFIG_NR_QUICK=2 266CONFIG_NR_QUICK=2
235CONFIG_HAVE_MLOCK=y
236CONFIG_HAVE_MLOCKED_PAGE_BIT=y
237# CONFIG_KSM is not set 267# CONFIG_KSM is not set
238CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 268CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
239 269
@@ -294,9 +324,9 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
294# 324#
295# DMA support 325# DMA support
296# 326#
297CONFIG_SH_DMA_API=y
298CONFIG_SH_DMA=y 327CONFIG_SH_DMA=y
299CONFIG_SH_DMA_IRQ_MULTI=y 328CONFIG_SH_DMA_IRQ_MULTI=y
329CONFIG_SH_DMA_API=y
300CONFIG_NR_ONCHIP_DMA_CHANNELS=4 330CONFIG_NR_ONCHIP_DMA_CHANNELS=4
301CONFIG_NR_DMA_CHANNELS_BOOL=y 331CONFIG_NR_DMA_CHANNELS_BOOL=y
302CONFIG_NR_DMA_CHANNELS=9 332CONFIG_NR_DMA_CHANNELS=9
@@ -338,7 +368,6 @@ CONFIG_GUSA=y
338CONFIG_ZERO_PAGE_OFFSET=0x00001000 368CONFIG_ZERO_PAGE_OFFSET=0x00001000
339CONFIG_BOOT_LINK_OFFSET=0x00800000 369CONFIG_BOOT_LINK_OFFSET=0x00800000
340CONFIG_ENTRY_OFFSET=0x00001000 370CONFIG_ENTRY_OFFSET=0x00001000
341# CONFIG_UBC_WAKEUP is not set
342CONFIG_CMDLINE_OVERWRITE=y 371CONFIG_CMDLINE_OVERWRITE=y
343# CONFIG_CMDLINE_EXTEND is not set 372# CONFIG_CMDLINE_EXTEND is not set
344CONFIG_CMDLINE="console=ttySC1,115200 panic=3" 373CONFIG_CMDLINE="console=ttySC1,115200 panic=3"
@@ -348,7 +377,6 @@ CONFIG_CMDLINE="console=ttySC1,115200 panic=3"
348# 377#
349CONFIG_MAPLE=y 378CONFIG_MAPLE=y
350CONFIG_PCI=y 379CONFIG_PCI=y
351CONFIG_SH_PCIDMA_NONCOHERENT=y
352# CONFIG_PCIEPORTBUS is not set 380# CONFIG_PCIEPORTBUS is not set
353# CONFIG_ARCH_SUPPORTS_MSI is not set 381# CONFIG_ARCH_SUPPORTS_MSI is not set
354CONFIG_PCI_LEGACY=y 382CONFIG_PCI_LEGACY=y
@@ -443,9 +471,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
443# CONFIG_AF_RXRPC is not set 471# CONFIG_AF_RXRPC is not set
444CONFIG_WIRELESS=y 472CONFIG_WIRELESS=y
445# CONFIG_CFG80211 is not set 473# CONFIG_CFG80211 is not set
446CONFIG_CFG80211_DEFAULT_PS_VALUE=0
447# CONFIG_WIRELESS_OLD_REGULATORY is not set
448# CONFIG_WIRELESS_EXT is not set
449# CONFIG_LIB80211 is not set 474# CONFIG_LIB80211 is not set
450 475
451# 476#
@@ -478,6 +503,10 @@ CONFIG_GDROM=y
478# CONFIG_BLK_DEV_UMEM is not set 503# CONFIG_BLK_DEV_UMEM is not set
479# CONFIG_BLK_DEV_COW_COMMON is not set 504# CONFIG_BLK_DEV_COW_COMMON is not set
480# CONFIG_BLK_DEV_LOOP is not set 505# CONFIG_BLK_DEV_LOOP is not set
506
507#
508# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
509#
481# CONFIG_BLK_DEV_NBD is not set 510# CONFIG_BLK_DEV_NBD is not set
482# CONFIG_BLK_DEV_SX8 is not set 511# CONFIG_BLK_DEV_SX8 is not set
483# CONFIG_BLK_DEV_RAM is not set 512# CONFIG_BLK_DEV_RAM is not set
@@ -579,6 +608,7 @@ CONFIG_8139TOO=y
579# CONFIG_SUNDANCE is not set 608# CONFIG_SUNDANCE is not set
580# CONFIG_TLAN is not set 609# CONFIG_TLAN is not set
581# CONFIG_KS8842 is not set 610# CONFIG_KS8842 is not set
611# CONFIG_KS8851_MLL is not set
582# CONFIG_VIA_RHINE is not set 612# CONFIG_VIA_RHINE is not set
583# CONFIG_SC92031 is not set 613# CONFIG_SC92031 is not set
584# CONFIG_ATL2 is not set 614# CONFIG_ATL2 is not set
@@ -586,8 +616,9 @@ CONFIG_8139TOO=y
586# CONFIG_NETDEV_10000 is not set 616# CONFIG_NETDEV_10000 is not set
587# CONFIG_TR is not set 617# CONFIG_TR is not set
588CONFIG_WLAN=y 618CONFIG_WLAN=y
589# CONFIG_WLAN_PRE80211 is not set 619# CONFIG_ATMEL is not set
590# CONFIG_WLAN_80211 is not set 620# CONFIG_PRISM54 is not set
621# CONFIG_HOSTAP is not set
591 622
592# 623#
593# Enable WiMAX (Networking options) to see the WiMAX drivers 624# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -600,6 +631,7 @@ CONFIG_WLAN=y
600# CONFIG_NETCONSOLE is not set 631# CONFIG_NETCONSOLE is not set
601# CONFIG_NETPOLL is not set 632# CONFIG_NETPOLL is not set
602# CONFIG_NET_POLL_CONTROLLER is not set 633# CONFIG_NET_POLL_CONTROLLER is not set
634# CONFIG_VMXNET3 is not set
603# CONFIG_ISDN is not set 635# CONFIG_ISDN is not set
604# CONFIG_PHONE is not set 636# CONFIG_PHONE is not set
605 637
@@ -609,6 +641,7 @@ CONFIG_WLAN=y
609CONFIG_INPUT=y 641CONFIG_INPUT=y
610# CONFIG_INPUT_FF_MEMLESS is not set 642# CONFIG_INPUT_FF_MEMLESS is not set
611# CONFIG_INPUT_POLLDEV is not set 643# CONFIG_INPUT_POLLDEV is not set
644# CONFIG_INPUT_SPARSEKMAP is not set
612 645
613# 646#
614# Userland interfaces 647# Userland interfaces
@@ -655,6 +688,7 @@ CONFIG_SERIO=y
655# CONFIG_SERIO_PCIPS2 is not set 688# CONFIG_SERIO_PCIPS2 is not set
656CONFIG_SERIO_LIBPS2=y 689CONFIG_SERIO_LIBPS2=y
657# CONFIG_SERIO_RAW is not set 690# CONFIG_SERIO_RAW is not set
691# CONFIG_SERIO_ALTERA_PS2 is not set
658# CONFIG_GAMEPORT is not set 692# CONFIG_GAMEPORT is not set
659 693
660# 694#
@@ -734,6 +768,7 @@ CONFIG_SSB_POSSIBLE=y
734# 768#
735# CONFIG_MFD_CORE is not set 769# CONFIG_MFD_CORE is not set
736# CONFIG_MFD_SM501 is not set 770# CONFIG_MFD_SM501 is not set
771# CONFIG_MFD_SH_MOBILE_SDHI is not set
737# CONFIG_HTC_PASIC3 is not set 772# CONFIG_HTC_PASIC3 is not set
738# CONFIG_MFD_TMIO is not set 773# CONFIG_MFD_TMIO is not set
739# CONFIG_REGULATOR is not set 774# CONFIG_REGULATOR is not set
@@ -883,6 +918,7 @@ CONFIG_RTC_LIB=y
883# CONFIG_EXT2_FS is not set 918# CONFIG_EXT2_FS is not set
884# CONFIG_EXT3_FS is not set 919# CONFIG_EXT3_FS is not set
885# CONFIG_EXT4_FS is not set 920# CONFIG_EXT4_FS is not set
921CONFIG_EXT4_USE_FOR_EXT23=y
886# CONFIG_REISERFS_FS is not set 922# CONFIG_REISERFS_FS is not set
887# CONFIG_JFS_FS is not set 923# CONFIG_JFS_FS is not set
888# CONFIG_FS_POSIX_ACL is not set 924# CONFIG_FS_POSIX_ACL is not set
@@ -981,10 +1017,11 @@ CONFIG_FRAME_WARN=1024
981# CONFIG_DEBUG_FS is not set 1017# CONFIG_DEBUG_FS is not set
982# CONFIG_HEADERS_CHECK is not set 1018# CONFIG_HEADERS_CHECK is not set
983# CONFIG_DEBUG_KERNEL is not set 1019# CONFIG_DEBUG_KERNEL is not set
984# CONFIG_DEBUG_BUGVERBOSE is not set 1020CONFIG_DEBUG_BUGVERBOSE=y
985# CONFIG_DEBUG_MEMORY_INIT is not set 1021# CONFIG_DEBUG_MEMORY_INIT is not set
986# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1022# CONFIG_RCU_CPU_STALL_DETECTOR is not set
987# CONFIG_LATENCYTOP is not set 1023# CONFIG_LATENCYTOP is not set
1024# CONFIG_SYSCTL_SYSCALL_CHECK is not set
988CONFIG_HAVE_FUNCTION_TRACER=y 1025CONFIG_HAVE_FUNCTION_TRACER=y
989CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1026CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
990CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 1027CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -997,7 +1034,6 @@ CONFIG_TRACING_SUPPORT=y
997# CONFIG_SAMPLES is not set 1034# CONFIG_SAMPLES is not set
998CONFIG_HAVE_ARCH_KGDB=y 1035CONFIG_HAVE_ARCH_KGDB=y
999# CONFIG_SH_STANDARD_BIOS is not set 1036# CONFIG_SH_STANDARD_BIOS is not set
1000# CONFIG_EARLY_SCIF_CONSOLE is not set
1001# CONFIG_DWARF_UNWINDER is not set 1037# CONFIG_DWARF_UNWINDER is not set
1002 1038
1003# 1039#
@@ -1006,7 +1042,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1006# CONFIG_KEYS is not set 1042# CONFIG_KEYS is not set
1007# CONFIG_SECURITY is not set 1043# CONFIG_SECURITY is not set
1008# CONFIG_SECURITYFS is not set 1044# CONFIG_SECURITYFS is not set
1009# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1045# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1046# CONFIG_DEFAULT_SECURITY_SMACK is not set
1047# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1048CONFIG_DEFAULT_SECURITY_DAC=y
1049CONFIG_DEFAULT_SECURITY=""
1010CONFIG_CRYPTO=y 1050CONFIG_CRYPTO=y
1011 1051
1012# 1052#
diff --git a/arch/sh/configs/ecovec24-romimage_defconfig b/arch/sh/configs/ecovec24-romimage_defconfig
index 46874704e4e7..662c1ad20494 100644
--- a/arch/sh/configs/ecovec24-romimage_defconfig
+++ b/arch/sh/configs/ecovec24-romimage_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:56:41 2009 4# Mon Jan 4 11:18:17 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -61,6 +63,7 @@ CONFIG_BSD_PROCESS_ACCT=y
61# 63#
62CONFIG_TREE_RCU=y 64CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
66# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 67# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 68CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 69# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -120,6 +124,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 126CONFIG_HAVE_ARCH_TRACEHOOK=y
127CONFIG_HAVE_DMA_ATTRS=y
123CONFIG_HAVE_CLK=y 128CONFIG_HAVE_CLK=y
124CONFIG_HAVE_DMA_API_DEBUG=y 129CONFIG_HAVE_DMA_API_DEBUG=y
125 130
@@ -142,14 +147,41 @@ CONFIG_BLOCK=y
142# IO Schedulers 147# IO Schedulers
143# 148#
144CONFIG_IOSCHED_NOOP=y 149CONFIG_IOSCHED_NOOP=y
145CONFIG_IOSCHED_AS=y
146CONFIG_IOSCHED_DEADLINE=y 150CONFIG_IOSCHED_DEADLINE=y
147CONFIG_IOSCHED_CFQ=y 151CONFIG_IOSCHED_CFQ=y
148# CONFIG_DEFAULT_AS is not set
149# CONFIG_DEFAULT_DEADLINE is not set 152# CONFIG_DEFAULT_DEADLINE is not set
150CONFIG_DEFAULT_CFQ=y 153CONFIG_DEFAULT_CFQ=y
151# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="cfq" 155CONFIG_DEFAULT_IOSCHED="cfq"
156# CONFIG_INLINE_SPIN_TRYLOCK is not set
157# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
158# CONFIG_INLINE_SPIN_LOCK is not set
159# CONFIG_INLINE_SPIN_LOCK_BH is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
162CONFIG_INLINE_SPIN_UNLOCK=y
163# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
164CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
165# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
166# CONFIG_INLINE_READ_TRYLOCK is not set
167# CONFIG_INLINE_READ_LOCK is not set
168# CONFIG_INLINE_READ_LOCK_BH is not set
169# CONFIG_INLINE_READ_LOCK_IRQ is not set
170# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
171CONFIG_INLINE_READ_UNLOCK=y
172# CONFIG_INLINE_READ_UNLOCK_BH is not set
173CONFIG_INLINE_READ_UNLOCK_IRQ=y
174# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
175# CONFIG_INLINE_WRITE_TRYLOCK is not set
176# CONFIG_INLINE_WRITE_LOCK is not set
177# CONFIG_INLINE_WRITE_LOCK_BH is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
180CONFIG_INLINE_WRITE_UNLOCK=y
181# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
182CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
183# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
184# CONFIG_MUTEX_SPIN_ON_OWNER is not set
153# CONFIG_FREEZER is not set 185# CONFIG_FREEZER is not set
154 186
155# 187#
@@ -205,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_MEMORY_START=0x08000000 237CONFIG_MEMORY_START=0x08000000
206CONFIG_MEMORY_SIZE=0x10000000 238CONFIG_MEMORY_SIZE=0x10000000
207CONFIG_29BIT=y 239CONFIG_29BIT=y
240# CONFIG_PMB_ENABLE is not set
208# CONFIG_X2TLB is not set 241# CONFIG_X2TLB is not set
209CONFIG_VSYSCALL=y 242CONFIG_VSYSCALL=y
210CONFIG_ARCH_FLATMEM_ENABLE=y 243CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -229,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
229# CONFIG_PHYS_ADDR_T_64BIT is not set 262# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=0 263CONFIG_ZONE_DMA_FLAG=0
231CONFIG_NR_QUICK=2 264CONFIG_NR_QUICK=2
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234# CONFIG_KSM is not set 265# CONFIG_KSM is not set
235CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 266CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
236 267
@@ -264,7 +295,6 @@ CONFIG_SH_ECOVEC=y
264# 295#
265# CONFIG_SH_TIMER_TMU is not set 296# CONFIG_SH_TIMER_TMU is not set
266CONFIG_SH_TIMER_CMT=y 297CONFIG_SH_TIMER_CMT=y
267CONFIG_SH_PCLK_FREQ=33333333
268CONFIG_SH_CLK_CPG=y 298CONFIG_SH_CLK_CPG=y
269# CONFIG_NO_HZ is not set 299# CONFIG_NO_HZ is not set
270# CONFIG_HIGH_RES_TIMERS is not set 300# CONFIG_HIGH_RES_TIMERS is not set
@@ -406,7 +436,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
406# CONFIG_IRDA is not set 436# CONFIG_IRDA is not set
407# CONFIG_BT is not set 437# CONFIG_BT is not set
408# CONFIG_AF_RXRPC is not set 438# CONFIG_AF_RXRPC is not set
409# CONFIG_WIRELESS is not set 439CONFIG_WIRELESS=y
440# CONFIG_CFG80211 is not set
441# CONFIG_LIB80211 is not set
442
443#
444# CFG80211 needs to be enabled for MAC80211
445#
410# CONFIG_WIMAX is not set 446# CONFIG_WIMAX is not set
411# CONFIG_RFKILL is not set 447# CONFIG_RFKILL is not set
412# CONFIG_NET_9P is not set 448# CONFIG_NET_9P is not set
@@ -432,6 +468,10 @@ CONFIG_EXTRA_FIRMWARE=""
432CONFIG_BLK_DEV=y 468CONFIG_BLK_DEV=y
433# CONFIG_BLK_DEV_COW_COMMON is not set 469# CONFIG_BLK_DEV_COW_COMMON is not set
434# CONFIG_BLK_DEV_LOOP is not set 470# CONFIG_BLK_DEV_LOOP is not set
471
472#
473# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
474#
435# CONFIG_BLK_DEV_NBD is not set 475# CONFIG_BLK_DEV_NBD is not set
436# CONFIG_BLK_DEV_UB is not set 476# CONFIG_BLK_DEV_UB is not set
437# CONFIG_BLK_DEV_RAM is not set 477# CONFIG_BLK_DEV_RAM is not set
@@ -526,11 +566,12 @@ CONFIG_SH_ETH=y
526# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 566# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
527# CONFIG_B44 is not set 567# CONFIG_B44 is not set
528# CONFIG_KS8842 is not set 568# CONFIG_KS8842 is not set
569# CONFIG_KS8851_MLL is not set
529# CONFIG_NETDEV_1000 is not set 570# CONFIG_NETDEV_1000 is not set
530# CONFIG_NETDEV_10000 is not set 571# CONFIG_NETDEV_10000 is not set
531CONFIG_WLAN=y 572CONFIG_WLAN=y
532# CONFIG_WLAN_PRE80211 is not set 573# CONFIG_USB_ZD1201 is not set
533# CONFIG_WLAN_80211 is not set 574# CONFIG_HOSTAP is not set
534 575
535# 576#
536# Enable WiMAX (Networking options) to see the WiMAX drivers 577# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -559,6 +600,7 @@ CONFIG_WLAN=y
559CONFIG_INPUT=y 600CONFIG_INPUT=y
560# CONFIG_INPUT_FF_MEMLESS is not set 601# CONFIG_INPUT_FF_MEMLESS is not set
561# CONFIG_INPUT_POLLDEV is not set 602# CONFIG_INPUT_POLLDEV is not set
603# CONFIG_INPUT_SPARSEKMAP is not set
562 604
563# 605#
564# Userland interfaces 606# Userland interfaces
@@ -652,7 +694,6 @@ CONFIG_I2C_SH_MOBILE=y
652# 694#
653# Miscellaneous I2C Chip support 695# Miscellaneous I2C Chip support
654# 696#
655# CONFIG_DS1682 is not set
656# CONFIG_SENSORS_TSL2550 is not set 697# CONFIG_SENSORS_TSL2550 is not set
657# CONFIG_I2C_DEBUG_CORE is not set 698# CONFIG_I2C_DEBUG_CORE is not set
658# CONFIG_I2C_DEBUG_ALGO is not set 699# CONFIG_I2C_DEBUG_ALGO is not set
@@ -707,16 +748,19 @@ CONFIG_SSB_POSSIBLE=y
707# 748#
708# CONFIG_MFD_CORE is not set 749# CONFIG_MFD_CORE is not set
709# CONFIG_MFD_SM501 is not set 750# CONFIG_MFD_SM501 is not set
751# CONFIG_MFD_SH_MOBILE_SDHI is not set
710# CONFIG_HTC_PASIC3 is not set 752# CONFIG_HTC_PASIC3 is not set
711# CONFIG_TPS65010 is not set 753# CONFIG_TPS65010 is not set
712# CONFIG_TWL4030_CORE is not set 754# CONFIG_TWL4030_CORE is not set
713# CONFIG_MFD_TMIO is not set 755# CONFIG_MFD_TMIO is not set
714# CONFIG_PMIC_DA903X is not set 756# CONFIG_PMIC_DA903X is not set
757# CONFIG_PMIC_ADP5520 is not set
715# CONFIG_MFD_WM8400 is not set 758# CONFIG_MFD_WM8400 is not set
716# CONFIG_MFD_WM831X is not set 759# CONFIG_MFD_WM831X is not set
717# CONFIG_MFD_WM8350_I2C is not set 760# CONFIG_MFD_WM8350_I2C is not set
718# CONFIG_MFD_PCF50633 is not set 761# CONFIG_MFD_PCF50633 is not set
719# CONFIG_AB3100_CORE is not set 762# CONFIG_AB3100_CORE is not set
763# CONFIG_MFD_88PM8607 is not set
720# CONFIG_REGULATOR is not set 764# CONFIG_REGULATOR is not set
721# CONFIG_MEDIA_SUPPORT is not set 765# CONFIG_MEDIA_SUPPORT is not set
722 766
@@ -867,6 +911,7 @@ CONFIG_EXT2_FS=y
867# CONFIG_EXT2_FS_XIP is not set 911# CONFIG_EXT2_FS_XIP is not set
868# CONFIG_EXT3_FS is not set 912# CONFIG_EXT3_FS is not set
869# CONFIG_EXT4_FS is not set 913# CONFIG_EXT4_FS is not set
914CONFIG_EXT4_USE_FOR_EXT23=y
870# CONFIG_REISERFS_FS is not set 915# CONFIG_REISERFS_FS is not set
871# CONFIG_JFS_FS is not set 916# CONFIG_JFS_FS is not set
872# CONFIG_FS_POSIX_ACL is not set 917# CONFIG_FS_POSIX_ACL is not set
@@ -979,7 +1024,7 @@ CONFIG_FRAME_WARN=1024
979CONFIG_DEBUG_FS=y 1024CONFIG_DEBUG_FS=y
980# CONFIG_HEADERS_CHECK is not set 1025# CONFIG_HEADERS_CHECK is not set
981# CONFIG_DEBUG_KERNEL is not set 1026# CONFIG_DEBUG_KERNEL is not set
982# CONFIG_DEBUG_BUGVERBOSE is not set 1027CONFIG_DEBUG_BUGVERBOSE=y
983# CONFIG_DEBUG_MEMORY_INIT is not set 1028# CONFIG_DEBUG_MEMORY_INIT is not set
984# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1029# CONFIG_RCU_CPU_STALL_DETECTOR is not set
985# CONFIG_LATENCYTOP is not set 1030# CONFIG_LATENCYTOP is not set
@@ -997,7 +1042,6 @@ CONFIG_TRACING_SUPPORT=y
997# CONFIG_SAMPLES is not set 1042# CONFIG_SAMPLES is not set
998CONFIG_HAVE_ARCH_KGDB=y 1043CONFIG_HAVE_ARCH_KGDB=y
999# CONFIG_SH_STANDARD_BIOS is not set 1044# CONFIG_SH_STANDARD_BIOS is not set
1000# CONFIG_EARLY_SCIF_CONSOLE is not set
1001# CONFIG_DWARF_UNWINDER is not set 1045# CONFIG_DWARF_UNWINDER is not set
1002 1046
1003# 1047#
@@ -1006,7 +1050,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1006# CONFIG_KEYS is not set 1050# CONFIG_KEYS is not set
1007# CONFIG_SECURITY is not set 1051# CONFIG_SECURITY is not set
1008# CONFIG_SECURITYFS is not set 1052# CONFIG_SECURITYFS is not set
1009# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1053# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1054# CONFIG_DEFAULT_SECURITY_SMACK is not set
1055# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1056CONFIG_DEFAULT_SECURITY_DAC=y
1057CONFIG_DEFAULT_SECURITY=""
1010# CONFIG_CRYPTO is not set 1058# CONFIG_CRYPTO is not set
1011# CONFIG_BINARY_PRINTF is not set 1059# CONFIG_BINARY_PRINTF is not set
1012 1060
diff --git a/arch/sh/configs/ecovec24_defconfig b/arch/sh/configs/ecovec24_defconfig
index cad918437ca7..18e3356406f3 100644
--- a/arch/sh/configs/ecovec24_defconfig
+++ b/arch/sh/configs/ecovec24_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:45:39 2009 4# Mon Jan 4 11:20:36 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y
62# 64#
63CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
64# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
65# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
66CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
67# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 102CONFIG_SHMEM=y
100CONFIG_AIO=y 103CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y 104CONFIG_HAVE_PERF_EVENTS=y
105CONFIG_PERF_USE_VMALLOC=y
102 106
103# 107#
104# Kernel Performance Events And Counters 108# Kernel Performance Events And Counters
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y
119CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
120CONFIG_HAVE_DMA_API_DEBUG=y 125CONFIG_HAVE_DMA_API_DEBUG=y
121 126
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y
143# IO Schedulers 148# IO Schedulers
144# 149#
145CONFIG_IOSCHED_NOOP=y 150CONFIG_IOSCHED_NOOP=y
146CONFIG_IOSCHED_AS=y
147CONFIG_IOSCHED_DEADLINE=y 151CONFIG_IOSCHED_DEADLINE=y
148CONFIG_IOSCHED_CFQ=y 152CONFIG_IOSCHED_CFQ=y
149# CONFIG_DEFAULT_AS is not set
150# CONFIG_DEFAULT_DEADLINE is not set 153# CONFIG_DEFAULT_DEADLINE is not set
151CONFIG_DEFAULT_CFQ=y 154CONFIG_DEFAULT_CFQ=y
152# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="cfq" 156CONFIG_DEFAULT_IOSCHED="cfq"
157# CONFIG_INLINE_SPIN_TRYLOCK is not set
158# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK is not set
160# CONFIG_INLINE_SPIN_LOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
162# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
163# CONFIG_INLINE_SPIN_UNLOCK is not set
164# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
165# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
166# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
167# CONFIG_INLINE_READ_TRYLOCK is not set
168# CONFIG_INLINE_READ_LOCK is not set
169# CONFIG_INLINE_READ_LOCK_BH is not set
170# CONFIG_INLINE_READ_LOCK_IRQ is not set
171# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
172# CONFIG_INLINE_READ_UNLOCK is not set
173# CONFIG_INLINE_READ_UNLOCK_BH is not set
174# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
175# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
176# CONFIG_INLINE_WRITE_TRYLOCK is not set
177# CONFIG_INLINE_WRITE_LOCK is not set
178# CONFIG_INLINE_WRITE_LOCK_BH is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
180# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
181# CONFIG_INLINE_WRITE_UNLOCK is not set
182# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
183# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
184# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
185# CONFIG_MUTEX_SPIN_ON_OWNER is not set
154CONFIG_FREEZER=y 186CONFIG_FREEZER=y
155 187
156# 188#
@@ -206,6 +238,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
206CONFIG_MEMORY_START=0x08000000 238CONFIG_MEMORY_START=0x08000000
207CONFIG_MEMORY_SIZE=0x10000000 239CONFIG_MEMORY_SIZE=0x10000000
208CONFIG_29BIT=y 240CONFIG_29BIT=y
241# CONFIG_PMB_ENABLE is not set
209# CONFIG_X2TLB is not set 242# CONFIG_X2TLB is not set
210CONFIG_VSYSCALL=y 243CONFIG_VSYSCALL=y
211CONFIG_ARCH_FLATMEM_ENABLE=y 244CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -230,8 +263,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
230# CONFIG_PHYS_ADDR_T_64BIT is not set 263# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=0 264CONFIG_ZONE_DMA_FLAG=0
232CONFIG_NR_QUICK=2 265CONFIG_NR_QUICK=2
233CONFIG_HAVE_MLOCK=y
234CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235# CONFIG_KSM is not set 266# CONFIG_KSM is not set
236CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 267CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
237 268
@@ -265,7 +296,6 @@ CONFIG_SH_ECOVEC=y
265# 296#
266CONFIG_SH_TIMER_TMU=y 297CONFIG_SH_TIMER_TMU=y
267# CONFIG_SH_TIMER_CMT is not set 298# CONFIG_SH_TIMER_CMT is not set
268CONFIG_SH_PCLK_FREQ=33333333
269CONFIG_SH_CLK_CPG=y 299CONFIG_SH_CLK_CPG=y
270# CONFIG_NO_HZ is not set 300# CONFIG_NO_HZ is not set
271# CONFIG_HIGH_RES_TIMERS is not set 301# CONFIG_HIGH_RES_TIMERS is not set
@@ -420,9 +450,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
420# CONFIG_AF_RXRPC is not set 450# CONFIG_AF_RXRPC is not set
421CONFIG_WIRELESS=y 451CONFIG_WIRELESS=y
422# CONFIG_CFG80211 is not set 452# CONFIG_CFG80211 is not set
423CONFIG_CFG80211_DEFAULT_PS_VALUE=0
424# CONFIG_WIRELESS_OLD_REGULATORY is not set
425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_LIB80211 is not set 453# CONFIG_LIB80211 is not set
427 454
428# 455#
@@ -552,6 +579,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1
552CONFIG_BLK_DEV=y 579CONFIG_BLK_DEV=y
553# CONFIG_BLK_DEV_COW_COMMON is not set 580# CONFIG_BLK_DEV_COW_COMMON is not set
554# CONFIG_BLK_DEV_LOOP is not set 581# CONFIG_BLK_DEV_LOOP is not set
582
583#
584# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
585#
555# CONFIG_BLK_DEV_NBD is not set 586# CONFIG_BLK_DEV_NBD is not set
556# CONFIG_BLK_DEV_UB is not set 587# CONFIG_BLK_DEV_UB is not set
557CONFIG_BLK_DEV_RAM=y 588CONFIG_BLK_DEV_RAM=y
@@ -562,9 +593,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
562# CONFIG_ATA_OVER_ETH is not set 593# CONFIG_ATA_OVER_ETH is not set
563# CONFIG_BLK_DEV_HD is not set 594# CONFIG_BLK_DEV_HD is not set
564CONFIG_MISC_DEVICES=y 595CONFIG_MISC_DEVICES=y
596# CONFIG_AD525X_DPOT is not set
565# CONFIG_ICS932S401 is not set 597# CONFIG_ICS932S401 is not set
566# CONFIG_ENCLOSURE_SERVICES is not set 598# CONFIG_ENCLOSURE_SERVICES is not set
567# CONFIG_ISL29003 is not set 599# CONFIG_ISL29003 is not set
600# CONFIG_DS1682 is not set
601# CONFIG_TI_DAC7512 is not set
568# CONFIG_C2PORT is not set 602# CONFIG_C2PORT is not set
569 603
570# 604#
@@ -575,6 +609,7 @@ CONFIG_MISC_DEVICES=y
575# CONFIG_EEPROM_LEGACY is not set 609# CONFIG_EEPROM_LEGACY is not set
576# CONFIG_EEPROM_MAX6875 is not set 610# CONFIG_EEPROM_MAX6875 is not set
577# CONFIG_EEPROM_93CX6 is not set 611# CONFIG_EEPROM_93CX6 is not set
612# CONFIG_IWMC3200TOP is not set
578CONFIG_HAVE_IDE=y 613CONFIG_HAVE_IDE=y
579# CONFIG_IDE is not set 614# CONFIG_IDE is not set
580 615
@@ -669,11 +704,12 @@ CONFIG_SH_ETH=y
669# CONFIG_B44 is not set 704# CONFIG_B44 is not set
670# CONFIG_KS8842 is not set 705# CONFIG_KS8842 is not set
671# CONFIG_KS8851 is not set 706# CONFIG_KS8851 is not set
707# CONFIG_KS8851_MLL is not set
672# CONFIG_NETDEV_1000 is not set 708# CONFIG_NETDEV_1000 is not set
673# CONFIG_NETDEV_10000 is not set 709# CONFIG_NETDEV_10000 is not set
674CONFIG_WLAN=y 710CONFIG_WLAN=y
675# CONFIG_WLAN_PRE80211 is not set 711# CONFIG_USB_ZD1201 is not set
676# CONFIG_WLAN_80211 is not set 712# CONFIG_HOSTAP is not set
677 713
678# 714#
679# Enable WiMAX (Networking options) to see the WiMAX drivers 715# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -702,6 +738,7 @@ CONFIG_WLAN=y
702CONFIG_INPUT=y 738CONFIG_INPUT=y
703# CONFIG_INPUT_FF_MEMLESS is not set 739# CONFIG_INPUT_FF_MEMLESS is not set
704# CONFIG_INPUT_POLLDEV is not set 740# CONFIG_INPUT_POLLDEV is not set
741# CONFIG_INPUT_SPARSEKMAP is not set
705 742
706# 743#
707# Userland interfaces 744# Userland interfaces
@@ -810,7 +847,6 @@ CONFIG_I2C_SH_MOBILE=y
810# 847#
811# Miscellaneous I2C Chip support 848# Miscellaneous I2C Chip support
812# 849#
813# CONFIG_DS1682 is not set
814# CONFIG_SENSORS_TSL2550 is not set 850# CONFIG_SENSORS_TSL2550 is not set
815# CONFIG_I2C_DEBUG_CORE is not set 851# CONFIG_I2C_DEBUG_CORE is not set
816# CONFIG_I2C_DEBUG_ALGO is not set 852# CONFIG_I2C_DEBUG_ALGO is not set
@@ -824,7 +860,10 @@ CONFIG_SPI_MASTER=y
824# 860#
825CONFIG_SPI_BITBANG=y 861CONFIG_SPI_BITBANG=y
826# CONFIG_SPI_GPIO is not set 862# CONFIG_SPI_GPIO is not set
863# CONFIG_SPI_SH_MSIOF is not set
827# CONFIG_SPI_SH_SCI is not set 864# CONFIG_SPI_SH_SCI is not set
865# CONFIG_SPI_XILINX is not set
866# CONFIG_SPI_DESIGNWARE is not set
828 867
829# 868#
830# SPI Protocol Masters 869# SPI Protocol Masters
@@ -882,11 +921,13 @@ CONFIG_SSB_POSSIBLE=y
882# 921#
883# CONFIG_MFD_CORE is not set 922# CONFIG_MFD_CORE is not set
884# CONFIG_MFD_SM501 is not set 923# CONFIG_MFD_SM501 is not set
924# CONFIG_MFD_SH_MOBILE_SDHI is not set
885# CONFIG_HTC_PASIC3 is not set 925# CONFIG_HTC_PASIC3 is not set
886# CONFIG_TPS65010 is not set 926# CONFIG_TPS65010 is not set
887# CONFIG_TWL4030_CORE is not set 927# CONFIG_TWL4030_CORE is not set
888# CONFIG_MFD_TMIO is not set 928# CONFIG_MFD_TMIO is not set
889# CONFIG_PMIC_DA903X is not set 929# CONFIG_PMIC_DA903X is not set
930# CONFIG_PMIC_ADP5520 is not set
890# CONFIG_MFD_WM8400 is not set 931# CONFIG_MFD_WM8400 is not set
891# CONFIG_MFD_WM831X is not set 932# CONFIG_MFD_WM831X is not set
892# CONFIG_MFD_WM8350_I2C is not set 933# CONFIG_MFD_WM8350_I2C is not set
@@ -894,6 +935,8 @@ CONFIG_SSB_POSSIBLE=y
894# CONFIG_MFD_MC13783 is not set 935# CONFIG_MFD_MC13783 is not set
895# CONFIG_AB3100_CORE is not set 936# CONFIG_AB3100_CORE is not set
896# CONFIG_EZX_PCAP is not set 937# CONFIG_EZX_PCAP is not set
938# CONFIG_MFD_88PM8607 is not set
939# CONFIG_AB4500_CORE is not set
897# CONFIG_REGULATOR is not set 940# CONFIG_REGULATOR is not set
898CONFIG_MEDIA_SUPPORT=y 941CONFIG_MEDIA_SUPPORT=y
899 942
@@ -910,6 +953,8 @@ CONFIG_VIDEO_MEDIA=y
910# 953#
911# Multimedia drivers 954# Multimedia drivers
912# 955#
956CONFIG_IR_CORE=y
957CONFIG_VIDEO_IR=y
913# CONFIG_MEDIA_ATTACH is not set 958# CONFIG_MEDIA_ATTACH is not set
914CONFIG_MEDIA_TUNER=y 959CONFIG_MEDIA_TUNER=y
915# CONFIG_MEDIA_TUNER_CUSTOMISE is not set 960# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
@@ -930,6 +975,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
930# CONFIG_VIDEO_ADV_DEBUG is not set 975# CONFIG_VIDEO_ADV_DEBUG is not set
931# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set 976# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
932CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 977CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
978CONFIG_VIDEO_IR_I2C=y
933# CONFIG_VIDEO_VIVI is not set 979# CONFIG_VIDEO_VIVI is not set
934# CONFIG_VIDEO_CPIA is not set 980# CONFIG_VIDEO_CPIA is not set
935# CONFIG_VIDEO_CPIA2 is not set 981# CONFIG_VIDEO_CPIA2 is not set
@@ -939,10 +985,13 @@ CONFIG_SOC_CAMERA=y
939# CONFIG_SOC_CAMERA_MT9M001 is not set 985# CONFIG_SOC_CAMERA_MT9M001 is not set
940# CONFIG_SOC_CAMERA_MT9M111 is not set 986# CONFIG_SOC_CAMERA_MT9M111 is not set
941# CONFIG_SOC_CAMERA_MT9T031 is not set 987# CONFIG_SOC_CAMERA_MT9T031 is not set
988# CONFIG_SOC_CAMERA_MT9T112 is not set
942# CONFIG_SOC_CAMERA_MT9V022 is not set 989# CONFIG_SOC_CAMERA_MT9V022 is not set
990# CONFIG_SOC_CAMERA_RJ54N1 is not set
943# CONFIG_SOC_CAMERA_TW9910 is not set 991# CONFIG_SOC_CAMERA_TW9910 is not set
944# CONFIG_SOC_CAMERA_PLATFORM is not set 992# CONFIG_SOC_CAMERA_PLATFORM is not set
945# CONFIG_SOC_CAMERA_OV772X is not set 993# CONFIG_SOC_CAMERA_OV772X is not set
994# CONFIG_SOC_CAMERA_OV9640 is not set
946CONFIG_VIDEO_SH_MOBILE_CEU=y 995CONFIG_VIDEO_SH_MOBILE_CEU=y
947# CONFIG_V4L_USB_DRIVERS is not set 996# CONFIG_V4L_USB_DRIVERS is not set
948CONFIG_RADIO_ADAPTERS=y 997CONFIG_RADIO_ADAPTERS=y
@@ -952,6 +1001,7 @@ CONFIG_RADIO_ADAPTERS=y
952# CONFIG_RADIO_SI470X is not set 1001# CONFIG_RADIO_SI470X is not set
953# CONFIG_USB_MR800 is not set 1002# CONFIG_USB_MR800 is not set
954# CONFIG_RADIO_TEA5764 is not set 1003# CONFIG_RADIO_TEA5764 is not set
1004# CONFIG_RADIO_TEF6862 is not set
955# CONFIG_DAB is not set 1005# CONFIG_DAB is not set
956 1006
957# 1007#
@@ -1177,6 +1227,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1177# CONFIG_MMC_AT91 is not set 1227# CONFIG_MMC_AT91 is not set
1178# CONFIG_MMC_ATMELMCI is not set 1228# CONFIG_MMC_ATMELMCI is not set
1179CONFIG_MMC_SPI=y 1229CONFIG_MMC_SPI=y
1230# CONFIG_MMC_TMIO is not set
1180# CONFIG_MEMSTICK is not set 1231# CONFIG_MEMSTICK is not set
1181# CONFIG_NEW_LEDS is not set 1232# CONFIG_NEW_LEDS is not set
1182# CONFIG_ACCESSIBILITY is not set 1233# CONFIG_ACCESSIBILITY is not set
@@ -1208,6 +1259,7 @@ CONFIG_RTC_INTF_DEV=y
1208CONFIG_RTC_DRV_PCF8563=y 1259CONFIG_RTC_DRV_PCF8563=y
1209# CONFIG_RTC_DRV_PCF8583 is not set 1260# CONFIG_RTC_DRV_PCF8583 is not set
1210# CONFIG_RTC_DRV_M41T80 is not set 1261# CONFIG_RTC_DRV_M41T80 is not set
1262# CONFIG_RTC_DRV_BQ32K is not set
1211# CONFIG_RTC_DRV_S35390A is not set 1263# CONFIG_RTC_DRV_S35390A is not set
1212# CONFIG_RTC_DRV_FM3130 is not set 1264# CONFIG_RTC_DRV_FM3130 is not set
1213# CONFIG_RTC_DRV_RX8581 is not set 1265# CONFIG_RTC_DRV_RX8581 is not set
@@ -1236,7 +1288,9 @@ CONFIG_RTC_DRV_PCF8563=y
1236# CONFIG_RTC_DRV_M48T86 is not set 1288# CONFIG_RTC_DRV_M48T86 is not set
1237# CONFIG_RTC_DRV_M48T35 is not set 1289# CONFIG_RTC_DRV_M48T35 is not set
1238# CONFIG_RTC_DRV_M48T59 is not set 1290# CONFIG_RTC_DRV_M48T59 is not set
1291# CONFIG_RTC_DRV_MSM6242 is not set
1239# CONFIG_RTC_DRV_BQ4802 is not set 1292# CONFIG_RTC_DRV_BQ4802 is not set
1293# CONFIG_RTC_DRV_RP5C01 is not set
1240# CONFIG_RTC_DRV_V3020 is not set 1294# CONFIG_RTC_DRV_V3020 is not set
1241 1295
1242# 1296#
@@ -1430,7 +1484,7 @@ CONFIG_FRAME_WARN=1024
1430CONFIG_DEBUG_FS=y 1484CONFIG_DEBUG_FS=y
1431# CONFIG_HEADERS_CHECK is not set 1485# CONFIG_HEADERS_CHECK is not set
1432# CONFIG_DEBUG_KERNEL is not set 1486# CONFIG_DEBUG_KERNEL is not set
1433# CONFIG_DEBUG_BUGVERBOSE is not set 1487CONFIG_DEBUG_BUGVERBOSE=y
1434# CONFIG_DEBUG_MEMORY_INIT is not set 1488# CONFIG_DEBUG_MEMORY_INIT is not set
1435# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1489# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1436# CONFIG_LATENCYTOP is not set 1490# CONFIG_LATENCYTOP is not set
@@ -1448,7 +1502,6 @@ CONFIG_TRACING_SUPPORT=y
1448# CONFIG_SAMPLES is not set 1502# CONFIG_SAMPLES is not set
1449CONFIG_HAVE_ARCH_KGDB=y 1503CONFIG_HAVE_ARCH_KGDB=y
1450# CONFIG_SH_STANDARD_BIOS is not set 1504# CONFIG_SH_STANDARD_BIOS is not set
1451# CONFIG_EARLY_SCIF_CONSOLE is not set
1452# CONFIG_DWARF_UNWINDER is not set 1505# CONFIG_DWARF_UNWINDER is not set
1453 1506
1454# 1507#
@@ -1457,7 +1510,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1457# CONFIG_KEYS is not set 1510# CONFIG_KEYS is not set
1458# CONFIG_SECURITY is not set 1511# CONFIG_SECURITY is not set
1459# CONFIG_SECURITYFS is not set 1512# CONFIG_SECURITYFS is not set
1460# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1513# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1514# CONFIG_DEFAULT_SECURITY_SMACK is not set
1515# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1516CONFIG_DEFAULT_SECURITY_DAC=y
1517CONFIG_DEFAULT_SECURITY=""
1461CONFIG_CRYPTO=y 1518CONFIG_CRYPTO=y
1462 1519
1463# 1520#
diff --git a/arch/sh/configs/edosk7705_defconfig b/arch/sh/configs/edosk7705_defconfig
index 86c9bc050629..72f8718dd738 100644
--- a/arch/sh/configs/edosk7705_defconfig
+++ b/arch/sh/configs/edosk7705_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:57:13 2009 4# Mon Jan 4 11:24:26 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -28,6 +28,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
28CONFIG_ARCH_NO_VIRT_TO_BUS=y 28CONFIG_ARCH_NO_VIRT_TO_BUS=y
29CONFIG_ARCH_HAS_DEFAULT_IDLE=y 29CONFIG_ARCH_HAS_DEFAULT_IDLE=y
30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
31CONFIG_DMA_NONCOHERENT=y
31CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
32CONFIG_CONSTRUCTORS=y 33CONFIG_CONSTRUCTORS=y
33 34
@@ -53,6 +54,7 @@ CONFIG_KERNEL_GZIP=y
53# 54#
54CONFIG_TREE_RCU=y 55CONFIG_TREE_RCU=y
55# CONFIG_TREE_PREEMPT_RCU is not set 56# CONFIG_TREE_PREEMPT_RCU is not set
57# CONFIG_TINY_RCU is not set
56# CONFIG_RCU_TRACE is not set 58# CONFIG_RCU_TRACE is not set
57CONFIG_RCU_FANOUT=32 59CONFIG_RCU_FANOUT=32
58# CONFIG_RCU_FANOUT_EXACT is not set 60# CONFIG_RCU_FANOUT_EXACT is not set
@@ -66,7 +68,6 @@ CONFIG_LOG_BUF_SHIFT=17
66# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 68# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
67CONFIG_EMBEDDED=y 69CONFIG_EMBEDDED=y
68# CONFIG_UID16 is not set 70# CONFIG_UID16 is not set
69# CONFIG_SYSCTL_SYSCALL is not set
70# CONFIG_KALLSYMS is not set 71# CONFIG_KALLSYMS is not set
71# CONFIG_HOTPLUG is not set 72# CONFIG_HOTPLUG is not set
72# CONFIG_PRINTK is not set 73# CONFIG_PRINTK is not set
@@ -81,6 +82,7 @@ CONFIG_EMBEDDED=y
81CONFIG_SHMEM=y 82CONFIG_SHMEM=y
82# CONFIG_AIO is not set 83# CONFIG_AIO is not set
83CONFIG_HAVE_PERF_EVENTS=y 84CONFIG_HAVE_PERF_EVENTS=y
85CONFIG_PERF_USE_VMALLOC=y
84 86
85# 87#
86# Kernel Performance Events And Counters 88# Kernel Performance Events And Counters
@@ -98,6 +100,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
98CONFIG_HAVE_KPROBES=y 100CONFIG_HAVE_KPROBES=y
99CONFIG_HAVE_KRETPROBES=y 101CONFIG_HAVE_KRETPROBES=y
100CONFIG_HAVE_ARCH_TRACEHOOK=y 102CONFIG_HAVE_ARCH_TRACEHOOK=y
103CONFIG_HAVE_DMA_ATTRS=y
101CONFIG_HAVE_CLK=y 104CONFIG_HAVE_CLK=y
102CONFIG_HAVE_DMA_API_DEBUG=y 105CONFIG_HAVE_DMA_API_DEBUG=y
103 106
@@ -109,6 +112,35 @@ CONFIG_HAVE_GENERIC_DMA_COHERENT=y
109CONFIG_BASE_SMALL=1 112CONFIG_BASE_SMALL=1
110# CONFIG_MODULES is not set 113# CONFIG_MODULES is not set
111# CONFIG_BLOCK is not set 114# CONFIG_BLOCK is not set
115# CONFIG_INLINE_SPIN_TRYLOCK is not set
116# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
117# CONFIG_INLINE_SPIN_LOCK is not set
118# CONFIG_INLINE_SPIN_LOCK_BH is not set
119# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
120# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
121CONFIG_INLINE_SPIN_UNLOCK=y
122# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
123CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
124# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
125# CONFIG_INLINE_READ_TRYLOCK is not set
126# CONFIG_INLINE_READ_LOCK is not set
127# CONFIG_INLINE_READ_LOCK_BH is not set
128# CONFIG_INLINE_READ_LOCK_IRQ is not set
129# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
130CONFIG_INLINE_READ_UNLOCK=y
131# CONFIG_INLINE_READ_UNLOCK_BH is not set
132CONFIG_INLINE_READ_UNLOCK_IRQ=y
133# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
134# CONFIG_INLINE_WRITE_TRYLOCK is not set
135# CONFIG_INLINE_WRITE_LOCK is not set
136# CONFIG_INLINE_WRITE_LOCK_BH is not set
137# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
138# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
139CONFIG_INLINE_WRITE_UNLOCK=y
140# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
141CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
142# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
143# CONFIG_MUTEX_SPIN_ON_OWNER is not set
112# CONFIG_FREEZER is not set 144# CONFIG_FREEZER is not set
113 145
114# 146#
@@ -186,8 +218,6 @@ CONFIG_MIGRATION=y
186# CONFIG_PHYS_ADDR_T_64BIT is not set 218# CONFIG_PHYS_ADDR_T_64BIT is not set
187CONFIG_ZONE_DMA_FLAG=0 219CONFIG_ZONE_DMA_FLAG=0
188CONFIG_NR_QUICK=2 220CONFIG_NR_QUICK=2
189CONFIG_HAVE_MLOCK=y
190CONFIG_HAVE_MLOCKED_PAGE_BIT=y
191# CONFIG_KSM is not set 221# CONFIG_KSM is not set
192CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 222CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
193 223
@@ -359,6 +389,7 @@ CONFIG_SSB_POSSIBLE=y
359# 389#
360# CONFIG_MFD_CORE is not set 390# CONFIG_MFD_CORE is not set
361# CONFIG_MFD_SM501 is not set 391# CONFIG_MFD_SM501 is not set
392# CONFIG_MFD_SH_MOBILE_SDHI is not set
362# CONFIG_HTC_PASIC3 is not set 393# CONFIG_HTC_PASIC3 is not set
363# CONFIG_MFD_TMIO is not set 394# CONFIG_MFD_TMIO is not set
364# CONFIG_REGULATOR is not set 395# CONFIG_REGULATOR is not set
@@ -416,7 +447,6 @@ CONFIG_INOTIFY_USER=y
416# CONFIG_PROC_FS is not set 447# CONFIG_PROC_FS is not set
417# CONFIG_SYSFS is not set 448# CONFIG_SYSFS is not set
418# CONFIG_TMPFS is not set 449# CONFIG_TMPFS is not set
419# CONFIG_HUGETLBFS is not set
420# CONFIG_HUGETLB_PAGE is not set 450# CONFIG_HUGETLB_PAGE is not set
421CONFIG_MISC_FILESYSTEMS=y 451CONFIG_MISC_FILESYSTEMS=y
422# CONFIG_NLS is not set 452# CONFIG_NLS is not set
@@ -448,7 +478,6 @@ CONFIG_TRACING_SUPPORT=y
448# CONFIG_SAMPLES is not set 478# CONFIG_SAMPLES is not set
449CONFIG_HAVE_ARCH_KGDB=y 479CONFIG_HAVE_ARCH_KGDB=y
450# CONFIG_SH_STANDARD_BIOS is not set 480# CONFIG_SH_STANDARD_BIOS is not set
451# CONFIG_EARLY_SCIF_CONSOLE is not set
452# CONFIG_DWARF_UNWINDER is not set 481# CONFIG_DWARF_UNWINDER is not set
453 482
454# 483#
@@ -456,7 +485,11 @@ CONFIG_HAVE_ARCH_KGDB=y
456# 485#
457# CONFIG_KEYS is not set 486# CONFIG_KEYS is not set
458# CONFIG_SECURITYFS is not set 487# CONFIG_SECURITYFS is not set
459# CONFIG_SECURITY_FILE_CAPABILITIES is not set 488# CONFIG_DEFAULT_SECURITY_SELINUX is not set
489# CONFIG_DEFAULT_SECURITY_SMACK is not set
490# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
491CONFIG_DEFAULT_SECURITY_DAC=y
492CONFIG_DEFAULT_SECURITY=""
460# CONFIG_CRYPTO is not set 493# CONFIG_CRYPTO is not set
461# CONFIG_BINARY_PRINTF is not set 494# CONFIG_BINARY_PRINTF is not set
462 495
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig
index 4c0f82b7def2..0932e6d656eb 100644
--- a/arch/sh/configs/edosk7760_defconfig
+++ b/arch/sh/configs/edosk7760_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:57:30 2009 4# Mon Jan 4 11:24:44 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y
62# 64#
63CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
64# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
65# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
66CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
67# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 105CONFIG_SHMEM=y
103CONFIG_AIO=y 106CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 107CONFIG_HAVE_PERF_EVENTS=y
108CONFIG_PERF_USE_VMALLOC=y
105 109
106# 110#
107# Kernel Performance Events And Counters 111# Kernel Performance Events And Counters
@@ -121,6 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_DMA_ATTRS=y
124CONFIG_HAVE_CLK=y 129CONFIG_HAVE_CLK=y
125CONFIG_HAVE_DMA_API_DEBUG=y 130CONFIG_HAVE_DMA_API_DEBUG=y
126 131
@@ -147,14 +152,41 @@ CONFIG_LBDAF=y
147# IO Schedulers 152# IO Schedulers
148# 153#
149CONFIG_IOSCHED_NOOP=y 154CONFIG_IOSCHED_NOOP=y
150CONFIG_IOSCHED_AS=y
151CONFIG_IOSCHED_DEADLINE=y 155CONFIG_IOSCHED_DEADLINE=y
152CONFIG_IOSCHED_CFQ=y 156CONFIG_IOSCHED_CFQ=y
153# CONFIG_DEFAULT_AS is not set
154# CONFIG_DEFAULT_DEADLINE is not set 157# CONFIG_DEFAULT_DEADLINE is not set
155CONFIG_DEFAULT_CFQ=y 158CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="cfq" 160CONFIG_DEFAULT_IOSCHED="cfq"
161# CONFIG_INLINE_SPIN_TRYLOCK is not set
162# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
163# CONFIG_INLINE_SPIN_LOCK is not set
164# CONFIG_INLINE_SPIN_LOCK_BH is not set
165# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
166# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
167# CONFIG_INLINE_SPIN_UNLOCK is not set
168# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
169# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
170# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
171# CONFIG_INLINE_READ_TRYLOCK is not set
172# CONFIG_INLINE_READ_LOCK is not set
173# CONFIG_INLINE_READ_LOCK_BH is not set
174# CONFIG_INLINE_READ_LOCK_IRQ is not set
175# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
176# CONFIG_INLINE_READ_UNLOCK is not set
177# CONFIG_INLINE_READ_UNLOCK_BH is not set
178# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
179# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
180# CONFIG_INLINE_WRITE_TRYLOCK is not set
181# CONFIG_INLINE_WRITE_LOCK is not set
182# CONFIG_INLINE_WRITE_LOCK_BH is not set
183# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
184# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
185# CONFIG_INLINE_WRITE_UNLOCK is not set
186# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
187# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
188# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
189# CONFIG_MUTEX_SPIN_ON_OWNER is not set
158# CONFIG_FREEZER is not set 190# CONFIG_FREEZER is not set
159 191
160# 192#
@@ -230,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
230# CONFIG_PHYS_ADDR_T_64BIT is not set 262# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=0 263CONFIG_ZONE_DMA_FLAG=0
232CONFIG_NR_QUICK=2 264CONFIG_NR_QUICK=2
233CONFIG_HAVE_MLOCK=y
234CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235# CONFIG_KSM is not set 265# CONFIG_KSM is not set
236CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 266CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
237 267
@@ -278,9 +308,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
278# 308#
279# DMA support 309# DMA support
280# 310#
281CONFIG_SH_DMA_API=y
282CONFIG_SH_DMA=y 311CONFIG_SH_DMA=y
283CONFIG_SH_DMA_IRQ_MULTI=y 312CONFIG_SH_DMA_IRQ_MULTI=y
313CONFIG_SH_DMA_API=y
284CONFIG_NR_ONCHIP_DMA_CHANNELS=8 314CONFIG_NR_ONCHIP_DMA_CHANNELS=8
285# CONFIG_NR_DMA_CHANNELS_BOOL is not set 315# CONFIG_NR_DMA_CHANNELS_BOOL is not set
286# CONFIG_SH_DMABRG is not set 316# CONFIG_SH_DMABRG is not set
@@ -320,7 +350,6 @@ CONFIG_GUSA=y
320CONFIG_ZERO_PAGE_OFFSET=0x00001000 350CONFIG_ZERO_PAGE_OFFSET=0x00001000
321CONFIG_BOOT_LINK_OFFSET=0x02000000 351CONFIG_BOOT_LINK_OFFSET=0x02000000
322CONFIG_ENTRY_OFFSET=0x00001000 352CONFIG_ENTRY_OFFSET=0x00001000
323# CONFIG_UBC_WAKEUP is not set
324CONFIG_CMDLINE_OVERWRITE=y 353CONFIG_CMDLINE_OVERWRITE=y
325# CONFIG_CMDLINE_EXTEND is not set 354# CONFIG_CMDLINE_EXTEND is not set
326CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0.3:/scripts/filesys ip=192.168.0.4" 355CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0.3:/scripts/filesys ip=192.168.0.4"
@@ -415,9 +444,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
415# CONFIG_AF_RXRPC is not set 444# CONFIG_AF_RXRPC is not set
416CONFIG_WIRELESS=y 445CONFIG_WIRELESS=y
417# CONFIG_CFG80211 is not set 446# CONFIG_CFG80211 is not set
418CONFIG_CFG80211_DEFAULT_PS_VALUE=0
419# CONFIG_WIRELESS_OLD_REGULATORY is not set
420# CONFIG_WIRELESS_EXT is not set
421# CONFIG_LIB80211 is not set 447# CONFIG_LIB80211 is not set
422 448
423# 449#
@@ -534,6 +560,10 @@ CONFIG_MTD_PHYSMAP=y
534CONFIG_BLK_DEV=y 560CONFIG_BLK_DEV=y
535# CONFIG_BLK_DEV_COW_COMMON is not set 561# CONFIG_BLK_DEV_COW_COMMON is not set
536# CONFIG_BLK_DEV_LOOP is not set 562# CONFIG_BLK_DEV_LOOP is not set
563
564#
565# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
566#
537# CONFIG_BLK_DEV_NBD is not set 567# CONFIG_BLK_DEV_NBD is not set
538CONFIG_BLK_DEV_RAM=y 568CONFIG_BLK_DEV_RAM=y
539CONFIG_BLK_DEV_RAM_COUNT=16 569CONFIG_BLK_DEV_RAM_COUNT=16
@@ -581,11 +611,11 @@ CONFIG_SMC91X=y
581# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 611# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
582# CONFIG_B44 is not set 612# CONFIG_B44 is not set
583# CONFIG_KS8842 is not set 613# CONFIG_KS8842 is not set
614# CONFIG_KS8851_MLL is not set
584# CONFIG_NETDEV_1000 is not set 615# CONFIG_NETDEV_1000 is not set
585# CONFIG_NETDEV_10000 is not set 616# CONFIG_NETDEV_10000 is not set
586CONFIG_WLAN=y 617CONFIG_WLAN=y
587# CONFIG_WLAN_PRE80211 is not set 618# CONFIG_HOSTAP is not set
588# CONFIG_WLAN_80211 is not set
589 619
590# 620#
591# Enable WiMAX (Networking options) to see the WiMAX drivers 621# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -605,6 +635,7 @@ CONFIG_WLAN=y
605CONFIG_INPUT=y 635CONFIG_INPUT=y
606# CONFIG_INPUT_FF_MEMLESS is not set 636# CONFIG_INPUT_FF_MEMLESS is not set
607# CONFIG_INPUT_POLLDEV is not set 637# CONFIG_INPUT_POLLDEV is not set
638# CONFIG_INPUT_SPARSEKMAP is not set
608 639
609# 640#
610# Userland interfaces 641# Userland interfaces
@@ -698,7 +729,6 @@ CONFIG_I2C_SH7760=y
698# 729#
699# Miscellaneous I2C Chip support 730# Miscellaneous I2C Chip support
700# 731#
701# CONFIG_DS1682 is not set
702# CONFIG_SENSORS_TSL2550 is not set 732# CONFIG_SENSORS_TSL2550 is not set
703CONFIG_I2C_DEBUG_CORE=y 733CONFIG_I2C_DEBUG_CORE=y
704CONFIG_I2C_DEBUG_ALGO=y 734CONFIG_I2C_DEBUG_ALGO=y
@@ -727,15 +757,18 @@ CONFIG_SSB_POSSIBLE=y
727# 757#
728# CONFIG_MFD_CORE is not set 758# CONFIG_MFD_CORE is not set
729# CONFIG_MFD_SM501 is not set 759# CONFIG_MFD_SM501 is not set
760# CONFIG_MFD_SH_MOBILE_SDHI is not set
730# CONFIG_HTC_PASIC3 is not set 761# CONFIG_HTC_PASIC3 is not set
731# CONFIG_TWL4030_CORE is not set 762# CONFIG_TWL4030_CORE is not set
732# CONFIG_MFD_TMIO is not set 763# CONFIG_MFD_TMIO is not set
733# CONFIG_PMIC_DA903X is not set 764# CONFIG_PMIC_DA903X is not set
765# CONFIG_PMIC_ADP5520 is not set
734# CONFIG_MFD_WM8400 is not set 766# CONFIG_MFD_WM8400 is not set
735# CONFIG_MFD_WM831X is not set 767# CONFIG_MFD_WM831X is not set
736# CONFIG_MFD_WM8350_I2C is not set 768# CONFIG_MFD_WM8350_I2C is not set
737# CONFIG_MFD_PCF50633 is not set 769# CONFIG_MFD_PCF50633 is not set
738# CONFIG_AB3100_CORE is not set 770# CONFIG_AB3100_CORE is not set
771# CONFIG_MFD_88PM8607 is not set
739# CONFIG_REGULATOR is not set 772# CONFIG_REGULATOR is not set
740# CONFIG_MEDIA_SUPPORT is not set 773# CONFIG_MEDIA_SUPPORT is not set
741 774
@@ -1072,9 +1105,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1072CONFIG_HAVE_ARCH_KGDB=y 1105CONFIG_HAVE_ARCH_KGDB=y
1073# CONFIG_KGDB is not set 1106# CONFIG_KGDB is not set
1074# CONFIG_SH_STANDARD_BIOS is not set 1107# CONFIG_SH_STANDARD_BIOS is not set
1075CONFIG_EARLY_SCIF_CONSOLE=y
1076CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1077CONFIG_EARLY_PRINTK=y
1078# CONFIG_STACK_DEBUG is not set 1108# CONFIG_STACK_DEBUG is not set
1079# CONFIG_DEBUG_STACK_USAGE is not set 1109# CONFIG_DEBUG_STACK_USAGE is not set
1080# CONFIG_4KSTACKS is not set 1110# CONFIG_4KSTACKS is not set
@@ -1088,7 +1118,11 @@ CONFIG_DUMP_CODE=y
1088# CONFIG_KEYS is not set 1118# CONFIG_KEYS is not set
1089# CONFIG_SECURITY is not set 1119# CONFIG_SECURITY is not set
1090# CONFIG_SECURITYFS is not set 1120# CONFIG_SECURITYFS is not set
1091# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1121# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1122# CONFIG_DEFAULT_SECURITY_SMACK is not set
1123# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1124CONFIG_DEFAULT_SECURITY_DAC=y
1125CONFIG_DEFAULT_SECURITY=""
1092CONFIG_CRYPTO=y 1126CONFIG_CRYPTO=y
1093 1127
1094# 1128#
diff --git a/arch/sh/configs/espt_defconfig b/arch/sh/configs/espt_defconfig
index 9b785517abcf..f899e5613f86 100644
--- a/arch/sh/configs/espt_defconfig
+++ b/arch/sh/configs/espt_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:58:18 2009 4# Mon Jan 4 11:26:55 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -59,6 +61,7 @@ CONFIG_SYSVIPC_SYSCTL=y
59# 61#
60CONFIG_TREE_RCU=y 62CONFIG_TREE_RCU=y
61# CONFIG_TREE_PREEMPT_RCU is not set 63# CONFIG_TREE_PREEMPT_RCU is not set
64# CONFIG_TINY_RCU is not set
62# CONFIG_RCU_TRACE is not set 65# CONFIG_RCU_TRACE is not set
63CONFIG_RCU_FANOUT=32 66CONFIG_RCU_FANOUT=32
64# CONFIG_RCU_FANOUT_EXACT is not set 67# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -124,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 128CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
131CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_HAVE_CLK=y 132CONFIG_HAVE_CLK=y
128CONFIG_HAVE_DMA_API_DEBUG=y 133CONFIG_HAVE_DMA_API_DEBUG=y
129 134
@@ -150,14 +155,41 @@ CONFIG_LBDAF=y
150# IO Schedulers 155# IO Schedulers
151# 156#
152CONFIG_IOSCHED_NOOP=y 157CONFIG_IOSCHED_NOOP=y
153CONFIG_IOSCHED_AS=y
154CONFIG_IOSCHED_DEADLINE=y 158CONFIG_IOSCHED_DEADLINE=y
155CONFIG_IOSCHED_CFQ=y 159CONFIG_IOSCHED_CFQ=y
156CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_DEADLINE is not set 160# CONFIG_DEFAULT_DEADLINE is not set
158# CONFIG_DEFAULT_CFQ is not set 161CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="anticipatory" 163CONFIG_DEFAULT_IOSCHED="cfq"
164# CONFIG_INLINE_SPIN_TRYLOCK is not set
165# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
166# CONFIG_INLINE_SPIN_LOCK is not set
167# CONFIG_INLINE_SPIN_LOCK_BH is not set
168# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
169# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
170CONFIG_INLINE_SPIN_UNLOCK=y
171# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
172CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
173# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
174# CONFIG_INLINE_READ_TRYLOCK is not set
175# CONFIG_INLINE_READ_LOCK is not set
176# CONFIG_INLINE_READ_LOCK_BH is not set
177# CONFIG_INLINE_READ_LOCK_IRQ is not set
178# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
179CONFIG_INLINE_READ_UNLOCK=y
180# CONFIG_INLINE_READ_UNLOCK_BH is not set
181CONFIG_INLINE_READ_UNLOCK_IRQ=y
182# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
183# CONFIG_INLINE_WRITE_TRYLOCK is not set
184# CONFIG_INLINE_WRITE_LOCK is not set
185# CONFIG_INLINE_WRITE_LOCK_BH is not set
186# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
187# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
188CONFIG_INLINE_WRITE_UNLOCK=y
189# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
190CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
191# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
192# CONFIG_MUTEX_SPIN_ON_OWNER is not set
161# CONFIG_FREEZER is not set 193# CONFIG_FREEZER is not set
162 194
163# 195#
@@ -211,6 +243,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
211CONFIG_MEMORY_START=0x0c000000 243CONFIG_MEMORY_START=0x0c000000
212CONFIG_MEMORY_SIZE=0x04000000 244CONFIG_MEMORY_SIZE=0x04000000
213CONFIG_29BIT=y 245CONFIG_29BIT=y
246# CONFIG_PMB_ENABLE is not set
214CONFIG_VSYSCALL=y 247CONFIG_VSYSCALL=y
215CONFIG_ARCH_FLATMEM_ENABLE=y 248CONFIG_ARCH_FLATMEM_ENABLE=y
216CONFIG_ARCH_SPARSEMEM_ENABLE=y 249CONFIG_ARCH_SPARSEMEM_ENABLE=y
@@ -237,8 +270,6 @@ CONFIG_MIGRATION=y
237# CONFIG_PHYS_ADDR_T_64BIT is not set 270# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=0 271CONFIG_ZONE_DMA_FLAG=0
239CONFIG_NR_QUICK=2 272CONFIG_NR_QUICK=2
240CONFIG_HAVE_MLOCK=y
241CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242# CONFIG_KSM is not set 273# CONFIG_KSM is not set
243CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 274CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
244 275
@@ -419,7 +450,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
419# CONFIG_IRDA is not set 450# CONFIG_IRDA is not set
420# CONFIG_BT is not set 451# CONFIG_BT is not set
421# CONFIG_AF_RXRPC is not set 452# CONFIG_AF_RXRPC is not set
422# CONFIG_WIRELESS is not set 453CONFIG_WIRELESS=y
454# CONFIG_CFG80211 is not set
455# CONFIG_LIB80211 is not set
456
457#
458# CFG80211 needs to be enabled for MAC80211
459#
423# CONFIG_WIMAX is not set 460# CONFIG_WIMAX is not set
424# CONFIG_RFKILL is not set 461# CONFIG_RFKILL is not set
425# CONFIG_NET_9P is not set 462# CONFIG_NET_9P is not set
@@ -498,7 +535,6 @@ CONFIG_MTD_CFI_UTIL=y
498CONFIG_MTD_COMPLEX_MAPPINGS=y 535CONFIG_MTD_COMPLEX_MAPPINGS=y
499CONFIG_MTD_PHYSMAP=y 536CONFIG_MTD_PHYSMAP=y
500# CONFIG_MTD_PHYSMAP_COMPAT is not set 537# CONFIG_MTD_PHYSMAP_COMPAT is not set
501# CONFIG_MTD_GPIO_ADDR is not set
502# CONFIG_MTD_PLATRAM is not set 538# CONFIG_MTD_PLATRAM is not set
503 539
504# 540#
@@ -531,6 +567,10 @@ CONFIG_MTD_PHYSMAP=y
531CONFIG_BLK_DEV=y 567CONFIG_BLK_DEV=y
532# CONFIG_BLK_DEV_COW_COMMON is not set 568# CONFIG_BLK_DEV_COW_COMMON is not set
533# CONFIG_BLK_DEV_LOOP is not set 569# CONFIG_BLK_DEV_LOOP is not set
570
571#
572# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
573#
534# CONFIG_BLK_DEV_NBD is not set 574# CONFIG_BLK_DEV_NBD is not set
535# CONFIG_BLK_DEV_UB is not set 575# CONFIG_BLK_DEV_UB is not set
536# CONFIG_BLK_DEV_RAM is not set 576# CONFIG_BLK_DEV_RAM is not set
@@ -629,11 +669,12 @@ CONFIG_SH_ETH=y
629# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 669# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
630# CONFIG_B44 is not set 670# CONFIG_B44 is not set
631# CONFIG_KS8842 is not set 671# CONFIG_KS8842 is not set
672# CONFIG_KS8851_MLL is not set
632# CONFIG_NETDEV_1000 is not set 673# CONFIG_NETDEV_1000 is not set
633# CONFIG_NETDEV_10000 is not set 674# CONFIG_NETDEV_10000 is not set
634CONFIG_WLAN=y 675CONFIG_WLAN=y
635# CONFIG_WLAN_PRE80211 is not set 676# CONFIG_USB_ZD1201 is not set
636# CONFIG_WLAN_80211 is not set 677# CONFIG_HOSTAP is not set
637 678
638# 679#
639# Enable WiMAX (Networking options) to see the WiMAX drivers 680# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -662,6 +703,7 @@ CONFIG_WLAN=y
662CONFIG_INPUT=y 703CONFIG_INPUT=y
663# CONFIG_INPUT_FF_MEMLESS is not set 704# CONFIG_INPUT_FF_MEMLESS is not set
664# CONFIG_INPUT_POLLDEV is not set 705# CONFIG_INPUT_POLLDEV is not set
706# CONFIG_INPUT_SPARSEKMAP is not set
665 707
666# 708#
667# Userland interfaces 709# Userland interfaces
@@ -745,6 +787,7 @@ CONFIG_SSB_POSSIBLE=y
745# 787#
746# CONFIG_MFD_CORE is not set 788# CONFIG_MFD_CORE is not set
747# CONFIG_MFD_SM501 is not set 789# CONFIG_MFD_SM501 is not set
790# CONFIG_MFD_SH_MOBILE_SDHI is not set
748# CONFIG_HTC_PASIC3 is not set 791# CONFIG_HTC_PASIC3 is not set
749# CONFIG_MFD_TMIO is not set 792# CONFIG_MFD_TMIO is not set
750# CONFIG_REGULATOR is not set 793# CONFIG_REGULATOR is not set
@@ -1102,10 +1145,11 @@ CONFIG_DEBUG_FS=y
1102# CONFIG_HEADERS_CHECK is not set 1145# CONFIG_HEADERS_CHECK is not set
1103# CONFIG_DEBUG_KERNEL is not set 1146# CONFIG_DEBUG_KERNEL is not set
1104CONFIG_STACKTRACE=y 1147CONFIG_STACKTRACE=y
1105# CONFIG_DEBUG_BUGVERBOSE is not set 1148CONFIG_DEBUG_BUGVERBOSE=y
1106# CONFIG_DEBUG_MEMORY_INIT is not set 1149# CONFIG_DEBUG_MEMORY_INIT is not set
1107# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1150# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1108# CONFIG_LATENCYTOP is not set 1151# CONFIG_LATENCYTOP is not set
1152# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1109CONFIG_NOP_TRACER=y 1153CONFIG_NOP_TRACER=y
1110CONFIG_HAVE_FUNCTION_TRACER=y 1154CONFIG_HAVE_FUNCTION_TRACER=y
1111CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1155CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1125,7 +1169,6 @@ CONFIG_TRACING_SUPPORT=y
1125# CONFIG_SAMPLES is not set 1169# CONFIG_SAMPLES is not set
1126CONFIG_HAVE_ARCH_KGDB=y 1170CONFIG_HAVE_ARCH_KGDB=y
1127# CONFIG_SH_STANDARD_BIOS is not set 1171# CONFIG_SH_STANDARD_BIOS is not set
1128# CONFIG_EARLY_SCIF_CONSOLE is not set
1129# CONFIG_DWARF_UNWINDER is not set 1172# CONFIG_DWARF_UNWINDER is not set
1130 1173
1131# 1174#
@@ -1134,7 +1177,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1134# CONFIG_KEYS is not set 1177# CONFIG_KEYS is not set
1135# CONFIG_SECURITY is not set 1178# CONFIG_SECURITY is not set
1136# CONFIG_SECURITYFS is not set 1179# CONFIG_SECURITYFS is not set
1137# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1180# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1181# CONFIG_DEFAULT_SECURITY_SMACK is not set
1182# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1183CONFIG_DEFAULT_SECURITY_DAC=y
1184CONFIG_DEFAULT_SECURITY=""
1138CONFIG_CRYPTO=y 1185CONFIG_CRYPTO=y
1139 1186
1140# 1187#
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig
index f59be446f829..06644908631e 100644
--- a/arch/sh/configs/hp6xx_defconfig
+++ b/arch/sh/configs/hp6xx_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 17:59:45 2009 4# Mon Jan 4 11:30:31 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
35 36
@@ -57,6 +58,7 @@ CONFIG_BSD_PROCESS_ACCT=y
57# 58#
58CONFIG_TREE_RCU=y 59CONFIG_TREE_RCU=y
59# CONFIG_TREE_PREEMPT_RCU is not set 60# CONFIG_TREE_PREEMPT_RCU is not set
61# CONFIG_TINY_RCU is not set
60# CONFIG_RCU_TRACE is not set 62# CONFIG_RCU_TRACE is not set
61CONFIG_RCU_FANOUT=32 63CONFIG_RCU_FANOUT=32
62# CONFIG_RCU_FANOUT_EXACT is not set 64# CONFIG_RCU_FANOUT_EXACT is not set
@@ -92,6 +94,7 @@ CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 94CONFIG_SHMEM=y
93CONFIG_AIO=y 95CONFIG_AIO=y
94CONFIG_HAVE_PERF_EVENTS=y 96CONFIG_HAVE_PERF_EVENTS=y
97CONFIG_PERF_USE_VMALLOC=y
95 98
96# 99#
97# Kernel Performance Events And Counters 100# Kernel Performance Events And Counters
@@ -109,6 +112,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 112CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 113CONFIG_HAVE_KRETPROBES=y
111CONFIG_HAVE_ARCH_TRACEHOOK=y 114CONFIG_HAVE_ARCH_TRACEHOOK=y
115CONFIG_HAVE_DMA_ATTRS=y
112CONFIG_HAVE_CLK=y 116CONFIG_HAVE_CLK=y
113CONFIG_HAVE_DMA_API_DEBUG=y 117CONFIG_HAVE_DMA_API_DEBUG=y
114 118
@@ -130,14 +134,41 @@ CONFIG_LBDAF=y
130# IO Schedulers 134# IO Schedulers
131# 135#
132CONFIG_IOSCHED_NOOP=y 136CONFIG_IOSCHED_NOOP=y
133CONFIG_IOSCHED_AS=y
134CONFIG_IOSCHED_DEADLINE=y 137CONFIG_IOSCHED_DEADLINE=y
135CONFIG_IOSCHED_CFQ=y 138CONFIG_IOSCHED_CFQ=y
136CONFIG_DEFAULT_AS=y
137# CONFIG_DEFAULT_DEADLINE is not set 139# CONFIG_DEFAULT_DEADLINE is not set
138# CONFIG_DEFAULT_CFQ is not set 140CONFIG_DEFAULT_CFQ=y
139# CONFIG_DEFAULT_NOOP is not set 141# CONFIG_DEFAULT_NOOP is not set
140CONFIG_DEFAULT_IOSCHED="anticipatory" 142CONFIG_DEFAULT_IOSCHED="cfq"
143# CONFIG_INLINE_SPIN_TRYLOCK is not set
144# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
145# CONFIG_INLINE_SPIN_LOCK is not set
146# CONFIG_INLINE_SPIN_LOCK_BH is not set
147# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
148# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
149CONFIG_INLINE_SPIN_UNLOCK=y
150# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
151CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
152# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
153# CONFIG_INLINE_READ_TRYLOCK is not set
154# CONFIG_INLINE_READ_LOCK is not set
155# CONFIG_INLINE_READ_LOCK_BH is not set
156# CONFIG_INLINE_READ_LOCK_IRQ is not set
157# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
158CONFIG_INLINE_READ_UNLOCK=y
159# CONFIG_INLINE_READ_UNLOCK_BH is not set
160CONFIG_INLINE_READ_UNLOCK_IRQ=y
161# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
162# CONFIG_INLINE_WRITE_TRYLOCK is not set
163# CONFIG_INLINE_WRITE_LOCK is not set
164# CONFIG_INLINE_WRITE_LOCK_BH is not set
165# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
166# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
167CONFIG_INLINE_WRITE_UNLOCK=y
168# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
169CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
170# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
171# CONFIG_MUTEX_SPIN_ON_OWNER is not set
141CONFIG_FREEZER=y 172CONFIG_FREEZER=y
142 173
143# 174#
@@ -213,8 +244,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
213# CONFIG_PHYS_ADDR_T_64BIT is not set 244# CONFIG_PHYS_ADDR_T_64BIT is not set
214CONFIG_ZONE_DMA_FLAG=0 245CONFIG_ZONE_DMA_FLAG=0
215CONFIG_NR_QUICK=2 246CONFIG_NR_QUICK=2
216CONFIG_HAVE_MLOCK=y
217CONFIG_HAVE_MLOCKED_PAGE_BIT=y
218# CONFIG_KSM is not set 247# CONFIG_KSM is not set
219CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 248CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
220 249
@@ -261,8 +290,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
261# 290#
262# DMA support 291# DMA support
263# 292#
264CONFIG_SH_DMA_API=y
265CONFIG_SH_DMA=y 293CONFIG_SH_DMA=y
294CONFIG_SH_DMA_API=y
266CONFIG_NR_ONCHIP_DMA_CHANNELS=6 295CONFIG_NR_ONCHIP_DMA_CHANNELS=6
267# CONFIG_NR_DMA_CHANNELS_BOOL is not set 296# CONFIG_NR_DMA_CHANNELS_BOOL is not set
268 297
@@ -313,7 +342,6 @@ CONFIG_ENTRY_OFFSET=0x00001000
313# 342#
314# CONFIG_ARCH_SUPPORTS_MSI is not set 343# CONFIG_ARCH_SUPPORTS_MSI is not set
315CONFIG_PCCARD=y 344CONFIG_PCCARD=y
316# CONFIG_PCMCIA_DEBUG is not set
317CONFIG_PCMCIA=y 345CONFIG_PCMCIA=y
318CONFIG_PCMCIA_LOAD_CIS=y 346CONFIG_PCMCIA_LOAD_CIS=y
319CONFIG_PCMCIA_IOCTL=y 347CONFIG_PCMCIA_IOCTL=y
@@ -363,6 +391,10 @@ CONFIG_EXTRA_FIRMWARE=""
363CONFIG_BLK_DEV=y 391CONFIG_BLK_DEV=y
364# CONFIG_BLK_DEV_COW_COMMON is not set 392# CONFIG_BLK_DEV_COW_COMMON is not set
365# CONFIG_BLK_DEV_LOOP is not set 393# CONFIG_BLK_DEV_LOOP is not set
394
395#
396# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
397#
366# CONFIG_BLK_DEV_RAM is not set 398# CONFIG_BLK_DEV_RAM is not set
367# CONFIG_CDROM_PKTCDVD is not set 399# CONFIG_CDROM_PKTCDVD is not set
368# CONFIG_BLK_DEV_HD is not set 400# CONFIG_BLK_DEV_HD is not set
@@ -432,6 +464,7 @@ CONFIG_PATA_PLATFORM=y
432CONFIG_INPUT=y 464CONFIG_INPUT=y
433# CONFIG_INPUT_FF_MEMLESS is not set 465# CONFIG_INPUT_FF_MEMLESS is not set
434CONFIG_INPUT_POLLDEV=y 466CONFIG_INPUT_POLLDEV=y
467# CONFIG_INPUT_SPARSEKMAP is not set
435 468
436# 469#
437# Userland interfaces 470# Userland interfaces
@@ -460,6 +493,7 @@ CONFIG_KEYBOARD_HP6XX=y
460# CONFIG_INPUT_TABLET is not set 493# CONFIG_INPUT_TABLET is not set
461CONFIG_INPUT_TOUCHSCREEN=y 494CONFIG_INPUT_TOUCHSCREEN=y
462# CONFIG_TOUCHSCREEN_AD7879 is not set 495# CONFIG_TOUCHSCREEN_AD7879 is not set
496# CONFIG_TOUCHSCREEN_DYNAPRO is not set
463# CONFIG_TOUCHSCREEN_FUJITSU is not set 497# CONFIG_TOUCHSCREEN_FUJITSU is not set
464# CONFIG_TOUCHSCREEN_GUNZE is not set 498# CONFIG_TOUCHSCREEN_GUNZE is not set
465# CONFIG_TOUCHSCREEN_ELO is not set 499# CONFIG_TOUCHSCREEN_ELO is not set
@@ -483,6 +517,7 @@ CONFIG_SERIO=y
483# CONFIG_SERIO_SERPORT is not set 517# CONFIG_SERIO_SERPORT is not set
484# CONFIG_SERIO_LIBPS2 is not set 518# CONFIG_SERIO_LIBPS2 is not set
485# CONFIG_SERIO_RAW is not set 519# CONFIG_SERIO_RAW is not set
520# CONFIG_SERIO_ALTERA_PS2 is not set
486# CONFIG_GAMEPORT is not set 521# CONFIG_GAMEPORT is not set
487 522
488# 523#
@@ -550,6 +585,7 @@ CONFIG_SSB_POSSIBLE=y
550# 585#
551# CONFIG_MFD_CORE is not set 586# CONFIG_MFD_CORE is not set
552# CONFIG_MFD_SM501 is not set 587# CONFIG_MFD_SM501 is not set
588# CONFIG_MFD_SH_MOBILE_SDHI is not set
553# CONFIG_HTC_PASIC3 is not set 589# CONFIG_HTC_PASIC3 is not set
554# CONFIG_MFD_TMIO is not set 590# CONFIG_MFD_TMIO is not set
555# CONFIG_REGULATOR is not set 591# CONFIG_REGULATOR is not set
@@ -659,7 +695,9 @@ CONFIG_RTC_INTF_DEV=y
659# CONFIG_RTC_DRV_M48T86 is not set 695# CONFIG_RTC_DRV_M48T86 is not set
660# CONFIG_RTC_DRV_M48T35 is not set 696# CONFIG_RTC_DRV_M48T35 is not set
661# CONFIG_RTC_DRV_M48T59 is not set 697# CONFIG_RTC_DRV_M48T59 is not set
698# CONFIG_RTC_DRV_MSM6242 is not set
662# CONFIG_RTC_DRV_BQ4802 is not set 699# CONFIG_RTC_DRV_BQ4802 is not set
700# CONFIG_RTC_DRV_RP5C01 is not set
663# CONFIG_RTC_DRV_V3020 is not set 701# CONFIG_RTC_DRV_V3020 is not set
664 702
665# 703#
@@ -684,6 +722,7 @@ CONFIG_EXT2_FS=y
684# CONFIG_EXT2_FS_XIP is not set 722# CONFIG_EXT2_FS_XIP is not set
685# CONFIG_EXT3_FS is not set 723# CONFIG_EXT3_FS is not set
686# CONFIG_EXT4_FS is not set 724# CONFIG_EXT4_FS is not set
725CONFIG_EXT4_USE_FOR_EXT23=y
687# CONFIG_REISERFS_FS is not set 726# CONFIG_REISERFS_FS is not set
688# CONFIG_JFS_FS is not set 727# CONFIG_JFS_FS is not set
689# CONFIG_FS_POSIX_ACL is not set 728# CONFIG_FS_POSIX_ACL is not set
@@ -731,7 +770,6 @@ CONFIG_PROC_SYSCTL=y
731CONFIG_PROC_PAGE_MONITOR=y 770CONFIG_PROC_PAGE_MONITOR=y
732CONFIG_SYSFS=y 771CONFIG_SYSFS=y
733# CONFIG_TMPFS is not set 772# CONFIG_TMPFS is not set
734# CONFIG_HUGETLBFS is not set
735# CONFIG_HUGETLB_PAGE is not set 773# CONFIG_HUGETLB_PAGE is not set
736# CONFIG_CONFIGFS_FS is not set 774# CONFIG_CONFIGFS_FS is not set
737CONFIG_MISC_FILESYSTEMS=y 775CONFIG_MISC_FILESYSTEMS=y
@@ -813,10 +851,11 @@ CONFIG_FRAME_WARN=1024
813# CONFIG_DEBUG_FS is not set 851# CONFIG_DEBUG_FS is not set
814# CONFIG_HEADERS_CHECK is not set 852# CONFIG_HEADERS_CHECK is not set
815# CONFIG_DEBUG_KERNEL is not set 853# CONFIG_DEBUG_KERNEL is not set
816# CONFIG_DEBUG_BUGVERBOSE is not set 854CONFIG_DEBUG_BUGVERBOSE=y
817# CONFIG_DEBUG_MEMORY_INIT is not set 855# CONFIG_DEBUG_MEMORY_INIT is not set
818# CONFIG_RCU_CPU_STALL_DETECTOR is not set 856# CONFIG_RCU_CPU_STALL_DETECTOR is not set
819# CONFIG_LATENCYTOP is not set 857# CONFIG_LATENCYTOP is not set
858# CONFIG_SYSCTL_SYSCALL_CHECK is not set
820CONFIG_HAVE_FUNCTION_TRACER=y 859CONFIG_HAVE_FUNCTION_TRACER=y
821CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 860CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
822CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 861CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -829,7 +868,6 @@ CONFIG_TRACING_SUPPORT=y
829# CONFIG_SAMPLES is not set 868# CONFIG_SAMPLES is not set
830CONFIG_HAVE_ARCH_KGDB=y 869CONFIG_HAVE_ARCH_KGDB=y
831# CONFIG_SH_STANDARD_BIOS is not set 870# CONFIG_SH_STANDARD_BIOS is not set
832# CONFIG_EARLY_SCIF_CONSOLE is not set
833# CONFIG_DWARF_UNWINDER is not set 871# CONFIG_DWARF_UNWINDER is not set
834 872
835# 873#
@@ -838,7 +876,11 @@ CONFIG_HAVE_ARCH_KGDB=y
838# CONFIG_KEYS is not set 876# CONFIG_KEYS is not set
839# CONFIG_SECURITY is not set 877# CONFIG_SECURITY is not set
840# CONFIG_SECURITYFS is not set 878# CONFIG_SECURITYFS is not set
841# CONFIG_SECURITY_FILE_CAPABILITIES is not set 879# CONFIG_DEFAULT_SECURITY_SELINUX is not set
880# CONFIG_DEFAULT_SECURITY_SMACK is not set
881# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
882CONFIG_DEFAULT_SECURITY_DAC=y
883CONFIG_DEFAULT_SECURITY=""
842CONFIG_CRYPTO=y 884CONFIG_CRYPTO=y
843 885
844# 886#
diff --git a/arch/sh/configs/kfr2r09-romimage_defconfig b/arch/sh/configs/kfr2r09-romimage_defconfig
index 02590e127f74..3d834e59e8f9 100644
--- a/arch/sh/configs/kfr2r09-romimage_defconfig
+++ b/arch/sh/configs/kfr2r09-romimage_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:01:48 2009 4# Mon Jan 4 11:31:09 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y
60# 62#
61CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 105CONFIG_SHMEM=y
103CONFIG_AIO=y 106CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 107CONFIG_HAVE_PERF_EVENTS=y
108CONFIG_PERF_USE_VMALLOC=y
105 109
106# 110#
107# Kernel Performance Events And Counters 111# Kernel Performance Events And Counters
@@ -119,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
122CONFIG_HAVE_CLK=y 127CONFIG_HAVE_CLK=y
123CONFIG_HAVE_DMA_API_DEBUG=y 128CONFIG_HAVE_DMA_API_DEBUG=y
124 129
@@ -133,6 +138,35 @@ CONFIG_RT_MUTEXES=y
133CONFIG_BASE_SMALL=0 138CONFIG_BASE_SMALL=0
134# CONFIG_MODULES is not set 139# CONFIG_MODULES is not set
135# CONFIG_BLOCK is not set 140# CONFIG_BLOCK is not set
141# CONFIG_INLINE_SPIN_TRYLOCK is not set
142# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
143# CONFIG_INLINE_SPIN_LOCK is not set
144# CONFIG_INLINE_SPIN_LOCK_BH is not set
145# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
146# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
147CONFIG_INLINE_SPIN_UNLOCK=y
148# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
149CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
150# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
151# CONFIG_INLINE_READ_TRYLOCK is not set
152# CONFIG_INLINE_READ_LOCK is not set
153# CONFIG_INLINE_READ_LOCK_BH is not set
154# CONFIG_INLINE_READ_LOCK_IRQ is not set
155# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
156CONFIG_INLINE_READ_UNLOCK=y
157# CONFIG_INLINE_READ_UNLOCK_BH is not set
158CONFIG_INLINE_READ_UNLOCK_IRQ=y
159# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
160# CONFIG_INLINE_WRITE_TRYLOCK is not set
161# CONFIG_INLINE_WRITE_LOCK is not set
162# CONFIG_INLINE_WRITE_LOCK_BH is not set
163# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
164# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
165CONFIG_INLINE_WRITE_UNLOCK=y
166# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
167CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
168# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
169# CONFIG_MUTEX_SPIN_ON_OWNER is not set
136# CONFIG_FREEZER is not set 170# CONFIG_FREEZER is not set
137 171
138# 172#
@@ -188,6 +222,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
188CONFIG_MEMORY_START=0x08000000 222CONFIG_MEMORY_START=0x08000000
189CONFIG_MEMORY_SIZE=0x08000000 223CONFIG_MEMORY_SIZE=0x08000000
190CONFIG_29BIT=y 224CONFIG_29BIT=y
225# CONFIG_PMB_ENABLE is not set
191# CONFIG_X2TLB is not set 226# CONFIG_X2TLB is not set
192CONFIG_VSYSCALL=y 227CONFIG_VSYSCALL=y
193CONFIG_ARCH_FLATMEM_ENABLE=y 228CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -212,8 +247,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
212# CONFIG_PHYS_ADDR_T_64BIT is not set 247# CONFIG_PHYS_ADDR_T_64BIT is not set
213CONFIG_ZONE_DMA_FLAG=0 248CONFIG_ZONE_DMA_FLAG=0
214CONFIG_NR_QUICK=2 249CONFIG_NR_QUICK=2
215CONFIG_HAVE_MLOCK=y
216CONFIG_HAVE_MLOCKED_PAGE_BIT=y
217# CONFIG_KSM is not set 250# CONFIG_KSM is not set
218CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 251CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
219 252
@@ -247,7 +280,6 @@ CONFIG_SH_KFR2R09=y
247# 280#
248# CONFIG_SH_TIMER_TMU is not set 281# CONFIG_SH_TIMER_TMU is not set
249CONFIG_SH_TIMER_CMT=y 282CONFIG_SH_TIMER_CMT=y
250CONFIG_SH_PCLK_FREQ=33333333
251CONFIG_SH_CLK_CPG=y 283CONFIG_SH_CLK_CPG=y
252# CONFIG_NO_HZ is not set 284# CONFIG_NO_HZ is not set
253# CONFIG_HIGH_RES_TIMERS is not set 285# CONFIG_HIGH_RES_TIMERS is not set
@@ -429,6 +461,7 @@ CONFIG_HAVE_IDE=y
429CONFIG_INPUT=y 461CONFIG_INPUT=y
430# CONFIG_INPUT_FF_MEMLESS is not set 462# CONFIG_INPUT_FF_MEMLESS is not set
431# CONFIG_INPUT_POLLDEV is not set 463# CONFIG_INPUT_POLLDEV is not set
464# CONFIG_INPUT_SPARSEKMAP is not set
432 465
433# 466#
434# Userland interfaces 467# Userland interfaces
@@ -520,7 +553,6 @@ CONFIG_I2C_SH_MOBILE=y
520# 553#
521# Miscellaneous I2C Chip support 554# Miscellaneous I2C Chip support
522# 555#
523# CONFIG_DS1682 is not set
524# CONFIG_SENSORS_TSL2550 is not set 556# CONFIG_SENSORS_TSL2550 is not set
525# CONFIG_I2C_DEBUG_CORE is not set 557# CONFIG_I2C_DEBUG_CORE is not set
526# CONFIG_I2C_DEBUG_ALGO is not set 558# CONFIG_I2C_DEBUG_ALGO is not set
@@ -575,16 +607,19 @@ CONFIG_SSB_POSSIBLE=y
575# 607#
576# CONFIG_MFD_CORE is not set 608# CONFIG_MFD_CORE is not set
577# CONFIG_MFD_SM501 is not set 609# CONFIG_MFD_SM501 is not set
610# CONFIG_MFD_SH_MOBILE_SDHI is not set
578# CONFIG_HTC_PASIC3 is not set 611# CONFIG_HTC_PASIC3 is not set
579# CONFIG_TPS65010 is not set 612# CONFIG_TPS65010 is not set
580# CONFIG_TWL4030_CORE is not set 613# CONFIG_TWL4030_CORE is not set
581# CONFIG_MFD_TMIO is not set 614# CONFIG_MFD_TMIO is not set
582# CONFIG_PMIC_DA903X is not set 615# CONFIG_PMIC_DA903X is not set
616# CONFIG_PMIC_ADP5520 is not set
583# CONFIG_MFD_WM8400 is not set 617# CONFIG_MFD_WM8400 is not set
584# CONFIG_MFD_WM831X is not set 618# CONFIG_MFD_WM831X is not set
585# CONFIG_MFD_WM8350_I2C is not set 619# CONFIG_MFD_WM8350_I2C is not set
586# CONFIG_MFD_PCF50633 is not set 620# CONFIG_MFD_PCF50633 is not set
587# CONFIG_AB3100_CORE is not set 621# CONFIG_AB3100_CORE is not set
622# CONFIG_MFD_88PM8607 is not set
588# CONFIG_REGULATOR is not set 623# CONFIG_REGULATOR is not set
589# CONFIG_MEDIA_SUPPORT is not set 624# CONFIG_MEDIA_SUPPORT is not set
590 625
@@ -650,10 +685,12 @@ CONFIG_USB_GADGET_DUALSPEED=y
650# CONFIG_USB_ETH is not set 685# CONFIG_USB_ETH is not set
651# CONFIG_USB_GADGETFS is not set 686# CONFIG_USB_GADGETFS is not set
652# CONFIG_USB_FILE_STORAGE is not set 687# CONFIG_USB_FILE_STORAGE is not set
688# CONFIG_USB_MASS_STORAGE is not set
653# CONFIG_USB_G_SERIAL is not set 689# CONFIG_USB_G_SERIAL is not set
654# CONFIG_USB_MIDI_GADGET is not set 690# CONFIG_USB_MIDI_GADGET is not set
655# CONFIG_USB_G_PRINTER is not set 691# CONFIG_USB_G_PRINTER is not set
656CONFIG_USB_CDC_COMPOSITE=y 692CONFIG_USB_CDC_COMPOSITE=y
693# CONFIG_USB_G_MULTI is not set
657 694
658# 695#
659# OTG and related infrastructure 696# OTG and related infrastructure
@@ -725,7 +762,7 @@ CONFIG_FRAME_WARN=1024
725CONFIG_DEBUG_FS=y 762CONFIG_DEBUG_FS=y
726# CONFIG_HEADERS_CHECK is not set 763# CONFIG_HEADERS_CHECK is not set
727# CONFIG_DEBUG_KERNEL is not set 764# CONFIG_DEBUG_KERNEL is not set
728# CONFIG_DEBUG_BUGVERBOSE is not set 765CONFIG_DEBUG_BUGVERBOSE=y
729# CONFIG_DEBUG_MEMORY_INIT is not set 766# CONFIG_DEBUG_MEMORY_INIT is not set
730# CONFIG_RCU_CPU_STALL_DETECTOR is not set 767# CONFIG_RCU_CPU_STALL_DETECTOR is not set
731# CONFIG_LATENCYTOP is not set 768# CONFIG_LATENCYTOP is not set
@@ -743,7 +780,6 @@ CONFIG_TRACING_SUPPORT=y
743# CONFIG_SAMPLES is not set 780# CONFIG_SAMPLES is not set
744CONFIG_HAVE_ARCH_KGDB=y 781CONFIG_HAVE_ARCH_KGDB=y
745# CONFIG_SH_STANDARD_BIOS is not set 782# CONFIG_SH_STANDARD_BIOS is not set
746# CONFIG_EARLY_SCIF_CONSOLE is not set
747# CONFIG_DWARF_UNWINDER is not set 783# CONFIG_DWARF_UNWINDER is not set
748 784
749# 785#
@@ -752,7 +788,11 @@ CONFIG_HAVE_ARCH_KGDB=y
752# CONFIG_KEYS is not set 788# CONFIG_KEYS is not set
753# CONFIG_SECURITY is not set 789# CONFIG_SECURITY is not set
754# CONFIG_SECURITYFS is not set 790# CONFIG_SECURITYFS is not set
755# CONFIG_SECURITY_FILE_CAPABILITIES is not set 791# CONFIG_DEFAULT_SECURITY_SELINUX is not set
792# CONFIG_DEFAULT_SECURITY_SMACK is not set
793# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
794CONFIG_DEFAULT_SECURITY_DAC=y
795CONFIG_DEFAULT_SECURITY=""
756# CONFIG_CRYPTO is not set 796# CONFIG_CRYPTO is not set
757# CONFIG_BINARY_PRINTF is not set 797# CONFIG_BINARY_PRINTF is not set
758 798
diff --git a/arch/sh/configs/kfr2r09_defconfig b/arch/sh/configs/kfr2r09_defconfig
index 8ae65d294b11..f22be494ed99 100644
--- a/arch/sh/configs/kfr2r09_defconfig
+++ b/arch/sh/configs/kfr2r09_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.31 3# Linux kernel version: 2.6.33-rc2
4# Fri Sep 25 11:54:22 2009 4# Mon Jan 4 11:32:55 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y
62# 64#
63CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
64# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
65# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
66CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
67# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -104,6 +107,7 @@ CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 107CONFIG_SHMEM=y
105CONFIG_AIO=y 108CONFIG_AIO=y
106CONFIG_HAVE_PERF_EVENTS=y 109CONFIG_HAVE_PERF_EVENTS=y
110CONFIG_PERF_USE_VMALLOC=y
107 111
108# 112#
109# Kernel Performance Events And Counters 113# Kernel Performance Events And Counters
@@ -121,6 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_DMA_ATTRS=y
124CONFIG_HAVE_CLK=y 129CONFIG_HAVE_CLK=y
125CONFIG_HAVE_DMA_API_DEBUG=y 130CONFIG_HAVE_DMA_API_DEBUG=y
126 131
@@ -148,14 +153,41 @@ CONFIG_LBDAF=y
148# IO Schedulers 153# IO Schedulers
149# 154#
150CONFIG_IOSCHED_NOOP=y 155CONFIG_IOSCHED_NOOP=y
151# CONFIG_IOSCHED_AS is not set
152# CONFIG_IOSCHED_DEADLINE is not set 156# CONFIG_IOSCHED_DEADLINE is not set
153# CONFIG_IOSCHED_CFQ is not set 157# CONFIG_IOSCHED_CFQ is not set
154# CONFIG_DEFAULT_AS is not set
155# CONFIG_DEFAULT_DEADLINE is not set 158# CONFIG_DEFAULT_DEADLINE is not set
156# CONFIG_DEFAULT_CFQ is not set 159# CONFIG_DEFAULT_CFQ is not set
157CONFIG_DEFAULT_NOOP=y 160CONFIG_DEFAULT_NOOP=y
158CONFIG_DEFAULT_IOSCHED="noop" 161CONFIG_DEFAULT_IOSCHED="noop"
162# CONFIG_INLINE_SPIN_TRYLOCK is not set
163# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
164# CONFIG_INLINE_SPIN_LOCK is not set
165# CONFIG_INLINE_SPIN_LOCK_BH is not set
166# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
167# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
168# CONFIG_INLINE_SPIN_UNLOCK is not set
169# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
170# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
171# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
172# CONFIG_INLINE_READ_TRYLOCK is not set
173# CONFIG_INLINE_READ_LOCK is not set
174# CONFIG_INLINE_READ_LOCK_BH is not set
175# CONFIG_INLINE_READ_LOCK_IRQ is not set
176# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
177# CONFIG_INLINE_READ_UNLOCK is not set
178# CONFIG_INLINE_READ_UNLOCK_BH is not set
179# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
180# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
181# CONFIG_INLINE_WRITE_TRYLOCK is not set
182# CONFIG_INLINE_WRITE_LOCK is not set
183# CONFIG_INLINE_WRITE_LOCK_BH is not set
184# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
185# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
186# CONFIG_INLINE_WRITE_UNLOCK is not set
187# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
188# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
189# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
190# CONFIG_MUTEX_SPIN_ON_OWNER is not set
159# CONFIG_FREEZER is not set 191# CONFIG_FREEZER is not set
160 192
161# 193#
@@ -211,6 +243,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
211CONFIG_MEMORY_START=0x08000000 243CONFIG_MEMORY_START=0x08000000
212CONFIG_MEMORY_SIZE=0x08000000 244CONFIG_MEMORY_SIZE=0x08000000
213CONFIG_29BIT=y 245CONFIG_29BIT=y
246# CONFIG_PMB_ENABLE is not set
214# CONFIG_X2TLB is not set 247# CONFIG_X2TLB is not set
215CONFIG_VSYSCALL=y 248CONFIG_VSYSCALL=y
216CONFIG_ARCH_FLATMEM_ENABLE=y 249CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -235,8 +268,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
235# CONFIG_PHYS_ADDR_T_64BIT is not set 268# CONFIG_PHYS_ADDR_T_64BIT is not set
236CONFIG_ZONE_DMA_FLAG=0 269CONFIG_ZONE_DMA_FLAG=0
237CONFIG_NR_QUICK=2 270CONFIG_NR_QUICK=2
238CONFIG_HAVE_MLOCK=y
239CONFIG_HAVE_MLOCKED_PAGE_BIT=y
240# CONFIG_KSM is not set 271# CONFIG_KSM is not set
241CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 272CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
242 273
@@ -270,7 +301,6 @@ CONFIG_SH_KFR2R09=y
270# 301#
271# CONFIG_SH_TIMER_TMU is not set 302# CONFIG_SH_TIMER_TMU is not set
272CONFIG_SH_TIMER_CMT=y 303CONFIG_SH_TIMER_CMT=y
273CONFIG_SH_PCLK_FREQ=33333333
274CONFIG_SH_CLK_CPG=y 304CONFIG_SH_CLK_CPG=y
275CONFIG_TICK_ONESHOT=y 305CONFIG_TICK_ONESHOT=y
276CONFIG_NO_HZ=y 306CONFIG_NO_HZ=y
@@ -534,6 +564,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1
534CONFIG_BLK_DEV=y 564CONFIG_BLK_DEV=y
535# CONFIG_BLK_DEV_COW_COMMON is not set 565# CONFIG_BLK_DEV_COW_COMMON is not set
536# CONFIG_BLK_DEV_LOOP is not set 566# CONFIG_BLK_DEV_LOOP is not set
567
568#
569# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
570#
537# CONFIG_BLK_DEV_NBD is not set 571# CONFIG_BLK_DEV_NBD is not set
538# CONFIG_BLK_DEV_RAM is not set 572# CONFIG_BLK_DEV_RAM is not set
539# CONFIG_CDROM_PKTCDVD is not set 573# CONFIG_CDROM_PKTCDVD is not set
@@ -562,6 +596,7 @@ CONFIG_HAVE_IDE=y
562CONFIG_INPUT=y 596CONFIG_INPUT=y
563# CONFIG_INPUT_FF_MEMLESS is not set 597# CONFIG_INPUT_FF_MEMLESS is not set
564# CONFIG_INPUT_POLLDEV is not set 598# CONFIG_INPUT_POLLDEV is not set
599# CONFIG_INPUT_SPARSEKMAP is not set
565 600
566# 601#
567# Userland interfaces 602# Userland interfaces
@@ -668,7 +703,6 @@ CONFIG_I2C_SH_MOBILE=y
668# 703#
669# Miscellaneous I2C Chip support 704# Miscellaneous I2C Chip support
670# 705#
671# CONFIG_DS1682 is not set
672# CONFIG_SENSORS_TSL2550 is not set 706# CONFIG_SENSORS_TSL2550 is not set
673# CONFIG_I2C_DEBUG_CORE is not set 707# CONFIG_I2C_DEBUG_CORE is not set
674# CONFIG_I2C_DEBUG_ALGO is not set 708# CONFIG_I2C_DEBUG_ALGO is not set
@@ -723,16 +757,19 @@ CONFIG_SSB_POSSIBLE=y
723# 757#
724# CONFIG_MFD_CORE is not set 758# CONFIG_MFD_CORE is not set
725# CONFIG_MFD_SM501 is not set 759# CONFIG_MFD_SM501 is not set
760# CONFIG_MFD_SH_MOBILE_SDHI is not set
726# CONFIG_HTC_PASIC3 is not set 761# CONFIG_HTC_PASIC3 is not set
727# CONFIG_TPS65010 is not set 762# CONFIG_TPS65010 is not set
728# CONFIG_TWL4030_CORE is not set 763# CONFIG_TWL4030_CORE is not set
729# CONFIG_MFD_TMIO is not set 764# CONFIG_MFD_TMIO is not set
730# CONFIG_PMIC_DA903X is not set 765# CONFIG_PMIC_DA903X is not set
766# CONFIG_PMIC_ADP5520 is not set
731# CONFIG_MFD_WM8400 is not set 767# CONFIG_MFD_WM8400 is not set
732# CONFIG_MFD_WM831X is not set 768# CONFIG_MFD_WM831X is not set
733# CONFIG_MFD_WM8350_I2C is not set 769# CONFIG_MFD_WM8350_I2C is not set
734# CONFIG_MFD_PCF50633 is not set 770# CONFIG_MFD_PCF50633 is not set
735# CONFIG_AB3100_CORE is not set 771# CONFIG_AB3100_CORE is not set
772# CONFIG_MFD_88PM8607 is not set
736# CONFIG_REGULATOR is not set 773# CONFIG_REGULATOR is not set
737# CONFIG_MEDIA_SUPPORT is not set 774# CONFIG_MEDIA_SUPPORT is not set
738 775
@@ -847,10 +884,12 @@ CONFIG_USB_GADGET_DUALSPEED=y
847# CONFIG_USB_ETH is not set 884# CONFIG_USB_ETH is not set
848# CONFIG_USB_GADGETFS is not set 885# CONFIG_USB_GADGETFS is not set
849# CONFIG_USB_FILE_STORAGE is not set 886# CONFIG_USB_FILE_STORAGE is not set
887# CONFIG_USB_MASS_STORAGE is not set
850# CONFIG_USB_G_SERIAL is not set 888# CONFIG_USB_G_SERIAL is not set
851# CONFIG_USB_MIDI_GADGET is not set 889# CONFIG_USB_MIDI_GADGET is not set
852# CONFIG_USB_G_PRINTER is not set 890# CONFIG_USB_G_PRINTER is not set
853CONFIG_USB_CDC_COMPOSITE=y 891CONFIG_USB_CDC_COMPOSITE=m
892# CONFIG_USB_G_MULTI is not set
854 893
855# 894#
856# OTG and related infrastructure 895# OTG and related infrastructure
@@ -875,6 +914,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
875# CONFIG_MMC_SDHCI is not set 914# CONFIG_MMC_SDHCI is not set
876# CONFIG_MMC_AT91 is not set 915# CONFIG_MMC_AT91 is not set
877# CONFIG_MMC_ATMELMCI is not set 916# CONFIG_MMC_ATMELMCI is not set
917# CONFIG_MMC_TMIO is not set
878# CONFIG_MEMSTICK is not set 918# CONFIG_MEMSTICK is not set
879# CONFIG_NEW_LEDS is not set 919# CONFIG_NEW_LEDS is not set
880# CONFIG_ACCESSIBILITY is not set 920# CONFIG_ACCESSIBILITY is not set
@@ -906,6 +946,7 @@ CONFIG_RTC_INTF_DEV=y
906# CONFIG_RTC_DRV_PCF8563 is not set 946# CONFIG_RTC_DRV_PCF8563 is not set
907# CONFIG_RTC_DRV_PCF8583 is not set 947# CONFIG_RTC_DRV_PCF8583 is not set
908# CONFIG_RTC_DRV_M41T80 is not set 948# CONFIG_RTC_DRV_M41T80 is not set
949# CONFIG_RTC_DRV_BQ32K is not set
909# CONFIG_RTC_DRV_S35390A is not set 950# CONFIG_RTC_DRV_S35390A is not set
910# CONFIG_RTC_DRV_FM3130 is not set 951# CONFIG_RTC_DRV_FM3130 is not set
911# CONFIG_RTC_DRV_RX8581 is not set 952# CONFIG_RTC_DRV_RX8581 is not set
@@ -926,7 +967,9 @@ CONFIG_RTC_INTF_DEV=y
926# CONFIG_RTC_DRV_M48T86 is not set 967# CONFIG_RTC_DRV_M48T86 is not set
927# CONFIG_RTC_DRV_M48T35 is not set 968# CONFIG_RTC_DRV_M48T35 is not set
928# CONFIG_RTC_DRV_M48T59 is not set 969# CONFIG_RTC_DRV_M48T59 is not set
970# CONFIG_RTC_DRV_MSM6242 is not set
929# CONFIG_RTC_DRV_BQ4802 is not set 971# CONFIG_RTC_DRV_BQ4802 is not set
972# CONFIG_RTC_DRV_RP5C01 is not set
930# CONFIG_RTC_DRV_V3020 is not set 973# CONFIG_RTC_DRV_V3020 is not set
931 974
932# 975#
@@ -953,6 +996,7 @@ CONFIG_UIO_PDRV_GENIRQ=y
953# CONFIG_EXT2_FS is not set 996# CONFIG_EXT2_FS is not set
954# CONFIG_EXT3_FS is not set 997# CONFIG_EXT3_FS is not set
955# CONFIG_EXT4_FS is not set 998# CONFIG_EXT4_FS is not set
999CONFIG_EXT4_USE_FOR_EXT23=y
956# CONFIG_REISERFS_FS is not set 1000# CONFIG_REISERFS_FS is not set
957# CONFIG_JFS_FS is not set 1001# CONFIG_JFS_FS is not set
958# CONFIG_FS_POSIX_ACL is not set 1002# CONFIG_FS_POSIX_ACL is not set
@@ -1027,7 +1071,7 @@ CONFIG_FRAME_WARN=1024
1027CONFIG_DEBUG_FS=y 1071CONFIG_DEBUG_FS=y
1028# CONFIG_HEADERS_CHECK is not set 1072# CONFIG_HEADERS_CHECK is not set
1029# CONFIG_DEBUG_KERNEL is not set 1073# CONFIG_DEBUG_KERNEL is not set
1030# CONFIG_DEBUG_BUGVERBOSE is not set 1074CONFIG_DEBUG_BUGVERBOSE=y
1031# CONFIG_DEBUG_MEMORY_INIT is not set 1075# CONFIG_DEBUG_MEMORY_INIT is not set
1032# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1076# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1033# CONFIG_LATENCYTOP is not set 1077# CONFIG_LATENCYTOP is not set
@@ -1045,7 +1089,6 @@ CONFIG_TRACING_SUPPORT=y
1045# CONFIG_SAMPLES is not set 1089# CONFIG_SAMPLES is not set
1046CONFIG_HAVE_ARCH_KGDB=y 1090CONFIG_HAVE_ARCH_KGDB=y
1047# CONFIG_SH_STANDARD_BIOS is not set 1091# CONFIG_SH_STANDARD_BIOS is not set
1048# CONFIG_EARLY_SCIF_CONSOLE is not set
1049# CONFIG_DWARF_UNWINDER is not set 1092# CONFIG_DWARF_UNWINDER is not set
1050 1093
1051# 1094#
@@ -1054,7 +1097,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1054# CONFIG_KEYS is not set 1097# CONFIG_KEYS is not set
1055# CONFIG_SECURITY is not set 1098# CONFIG_SECURITY is not set
1056# CONFIG_SECURITYFS is not set 1099# CONFIG_SECURITYFS is not set
1057# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1100# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1101# CONFIG_DEFAULT_SECURITY_SMACK is not set
1102# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1103CONFIG_DEFAULT_SECURITY_DAC=y
1104CONFIG_DEFAULT_SECURITY=""
1058# CONFIG_CRYPTO is not set 1105# CONFIG_CRYPTO is not set
1059# CONFIG_BINARY_PRINTF is not set 1106# CONFIG_BINARY_PRINTF is not set
1060 1107
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig
index c2a9a3996388..2a42d4977fe4 100644
--- a/arch/sh/configs/landisk_defconfig
+++ b/arch/sh/configs/landisk_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:05:49 2009 4# Mon Jan 4 11:35:31 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -60,6 +62,7 @@ CONFIG_SYSVIPC_SYSCTL=y
60# 62#
61CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -94,6 +97,7 @@ CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 97CONFIG_SHMEM=y
95CONFIG_AIO=y 98CONFIG_AIO=y
96CONFIG_HAVE_PERF_EVENTS=y 99CONFIG_HAVE_PERF_EVENTS=y
100CONFIG_PERF_USE_VMALLOC=y
97 101
98# 102#
99# Kernel Performance Events And Counters 103# Kernel Performance Events And Counters
@@ -113,6 +117,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_HAVE_DMA_ATTRS=y
116CONFIG_HAVE_CLK=y 121CONFIG_HAVE_CLK=y
117CONFIG_HAVE_DMA_API_DEBUG=y 122CONFIG_HAVE_DMA_API_DEBUG=y
118 123
@@ -139,14 +144,41 @@ CONFIG_LBDAF=y
139# IO Schedulers 144# IO Schedulers
140# 145#
141CONFIG_IOSCHED_NOOP=y 146CONFIG_IOSCHED_NOOP=y
142CONFIG_IOSCHED_AS=y
143CONFIG_IOSCHED_DEADLINE=y 147CONFIG_IOSCHED_DEADLINE=y
144CONFIG_IOSCHED_CFQ=y 148CONFIG_IOSCHED_CFQ=y
145CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_DEADLINE is not set 149# CONFIG_DEFAULT_DEADLINE is not set
147# CONFIG_DEFAULT_CFQ is not set 150CONFIG_DEFAULT_CFQ=y
148# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="cfq"
153# CONFIG_INLINE_SPIN_TRYLOCK is not set
154# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
155# CONFIG_INLINE_SPIN_LOCK is not set
156# CONFIG_INLINE_SPIN_LOCK_BH is not set
157# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
158# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
159CONFIG_INLINE_SPIN_UNLOCK=y
160# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
161CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
162# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
163# CONFIG_INLINE_READ_TRYLOCK is not set
164# CONFIG_INLINE_READ_LOCK is not set
165# CONFIG_INLINE_READ_LOCK_BH is not set
166# CONFIG_INLINE_READ_LOCK_IRQ is not set
167# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
168CONFIG_INLINE_READ_UNLOCK=y
169# CONFIG_INLINE_READ_UNLOCK_BH is not set
170CONFIG_INLINE_READ_UNLOCK_IRQ=y
171# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
172# CONFIG_INLINE_WRITE_TRYLOCK is not set
173# CONFIG_INLINE_WRITE_LOCK is not set
174# CONFIG_INLINE_WRITE_LOCK_BH is not set
175# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
176# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
177CONFIG_INLINE_WRITE_UNLOCK=y
178# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
179CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
180# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
181# CONFIG_MUTEX_SPIN_ON_OWNER is not set
150# CONFIG_FREEZER is not set 182# CONFIG_FREEZER is not set
151 183
152# 184#
@@ -222,8 +254,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
222# CONFIG_PHYS_ADDR_T_64BIT is not set 254# CONFIG_PHYS_ADDR_T_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=0 255CONFIG_ZONE_DMA_FLAG=0
224CONFIG_NR_QUICK=2 256CONFIG_NR_QUICK=2
225CONFIG_HAVE_MLOCK=y
226CONFIG_HAVE_MLOCKED_PAGE_BIT=y
227# CONFIG_KSM is not set 257# CONFIG_KSM is not set
228CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 258CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
229 259
@@ -311,7 +341,6 @@ CONFIG_GUSA=y
311CONFIG_ZERO_PAGE_OFFSET=0x00001000 341CONFIG_ZERO_PAGE_OFFSET=0x00001000
312CONFIG_BOOT_LINK_OFFSET=0x00800000 342CONFIG_BOOT_LINK_OFFSET=0x00800000
313CONFIG_ENTRY_OFFSET=0x00001000 343CONFIG_ENTRY_OFFSET=0x00001000
314# CONFIG_UBC_WAKEUP is not set
315# CONFIG_CMDLINE_OVERWRITE is not set 344# CONFIG_CMDLINE_OVERWRITE is not set
316# CONFIG_CMDLINE_EXTEND is not set 345# CONFIG_CMDLINE_EXTEND is not set
317 346
@@ -319,14 +348,12 @@ CONFIG_ENTRY_OFFSET=0x00001000
319# Bus options 348# Bus options
320# 349#
321CONFIG_PCI=y 350CONFIG_PCI=y
322CONFIG_SH_PCIDMA_NONCOHERENT=y
323# CONFIG_PCIEPORTBUS is not set 351# CONFIG_PCIEPORTBUS is not set
324# CONFIG_ARCH_SUPPORTS_MSI is not set 352# CONFIG_ARCH_SUPPORTS_MSI is not set
325CONFIG_PCI_LEGACY=y 353CONFIG_PCI_LEGACY=y
326# CONFIG_PCI_STUB is not set 354# CONFIG_PCI_STUB is not set
327# CONFIG_PCI_IOV is not set 355# CONFIG_PCI_IOV is not set
328CONFIG_PCCARD=y 356CONFIG_PCCARD=y
329# CONFIG_PCMCIA_DEBUG is not set
330CONFIG_PCMCIA=y 357CONFIG_PCMCIA=y
331CONFIG_PCMCIA_LOAD_CIS=y 358CONFIG_PCMCIA_LOAD_CIS=y
332CONFIG_PCMCIA_IOCTL=y 359CONFIG_PCMCIA_IOCTL=y
@@ -461,9 +488,6 @@ CONFIG_ATALK=m
461# CONFIG_AF_RXRPC is not set 488# CONFIG_AF_RXRPC is not set
462CONFIG_WIRELESS=y 489CONFIG_WIRELESS=y
463# CONFIG_CFG80211 is not set 490# CONFIG_CFG80211 is not set
464CONFIG_CFG80211_DEFAULT_PS_VALUE=0
465# CONFIG_WIRELESS_OLD_REGULATORY is not set
466# CONFIG_WIRELESS_EXT is not set
467# CONFIG_LIB80211 is not set 491# CONFIG_LIB80211 is not set
468 492
469# 493#
@@ -498,6 +522,10 @@ CONFIG_BLK_DEV=y
498# CONFIG_BLK_DEV_COW_COMMON is not set 522# CONFIG_BLK_DEV_COW_COMMON is not set
499CONFIG_BLK_DEV_LOOP=y 523CONFIG_BLK_DEV_LOOP=y
500# CONFIG_BLK_DEV_CRYPTOLOOP is not set 524# CONFIG_BLK_DEV_CRYPTOLOOP is not set
525
526#
527# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
528#
501# CONFIG_BLK_DEV_NBD is not set 529# CONFIG_BLK_DEV_NBD is not set
502# CONFIG_BLK_DEV_SX8 is not set 530# CONFIG_BLK_DEV_SX8 is not set
503# CONFIG_BLK_DEV_UB is not set 531# CONFIG_BLK_DEV_UB is not set
@@ -618,8 +646,11 @@ CONFIG_SCSI_LOWLEVEL=y
618# CONFIG_ISCSI_TCP is not set 646# CONFIG_ISCSI_TCP is not set
619# CONFIG_SCSI_CXGB3_ISCSI is not set 647# CONFIG_SCSI_CXGB3_ISCSI is not set
620# CONFIG_SCSI_BNX2_ISCSI is not set 648# CONFIG_SCSI_BNX2_ISCSI is not set
649# CONFIG_BE2ISCSI is not set
621# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 650# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
651# CONFIG_SCSI_HPSA is not set
622# CONFIG_SCSI_3W_9XXX is not set 652# CONFIG_SCSI_3W_9XXX is not set
653# CONFIG_SCSI_3W_SAS is not set
623# CONFIG_SCSI_ACARD is not set 654# CONFIG_SCSI_ACARD is not set
624# CONFIG_SCSI_AACRAID is not set 655# CONFIG_SCSI_AACRAID is not set
625# CONFIG_SCSI_AIC7XXX is not set 656# CONFIG_SCSI_AIC7XXX is not set
@@ -652,7 +683,9 @@ CONFIG_SCSI_LOWLEVEL=y
652# CONFIG_SCSI_NSP32 is not set 683# CONFIG_SCSI_NSP32 is not set
653# CONFIG_SCSI_DEBUG is not set 684# CONFIG_SCSI_DEBUG is not set
654# CONFIG_SCSI_PMCRAID is not set 685# CONFIG_SCSI_PMCRAID is not set
686# CONFIG_SCSI_PM8001 is not set
655# CONFIG_SCSI_SRP is not set 687# CONFIG_SCSI_SRP is not set
688# CONFIG_SCSI_BFA_FC is not set
656# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 689# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
657# CONFIG_SCSI_DH is not set 690# CONFIG_SCSI_DH is not set
658# CONFIG_SCSI_OSD_INITIATOR is not set 691# CONFIG_SCSI_OSD_INITIATOR is not set
@@ -733,6 +766,7 @@ CONFIG_8139CP=y
733# CONFIG_SUNDANCE is not set 766# CONFIG_SUNDANCE is not set
734# CONFIG_TLAN is not set 767# CONFIG_TLAN is not set
735# CONFIG_KS8842 is not set 768# CONFIG_KS8842 is not set
769# CONFIG_KS8851_MLL is not set
736# CONFIG_VIA_RHINE is not set 770# CONFIG_VIA_RHINE is not set
737# CONFIG_SC92031 is not set 771# CONFIG_SC92031 is not set
738# CONFIG_ATL2 is not set 772# CONFIG_ATL2 is not set
@@ -781,8 +815,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y
781# CONFIG_BE2NET is not set 815# CONFIG_BE2NET is not set
782# CONFIG_TR is not set 816# CONFIG_TR is not set
783CONFIG_WLAN=y 817CONFIG_WLAN=y
784# CONFIG_WLAN_PRE80211 is not set 818# CONFIG_PCMCIA_RAYCS is not set
785# CONFIG_WLAN_80211 is not set 819# CONFIG_ATMEL is not set
820# CONFIG_AIRO_CS is not set
821# CONFIG_PCMCIA_WL3501 is not set
822# CONFIG_PRISM54 is not set
823# CONFIG_USB_ZD1201 is not set
824# CONFIG_HOSTAP is not set
786 825
787# 826#
788# Enable WiMAX (Networking options) to see the WiMAX drivers 827# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -806,6 +845,7 @@ CONFIG_USB_RTL8150=m
806# CONFIG_NETCONSOLE is not set 845# CONFIG_NETCONSOLE is not set
807# CONFIG_NETPOLL is not set 846# CONFIG_NETPOLL is not set
808# CONFIG_NET_POLL_CONTROLLER is not set 847# CONFIG_NET_POLL_CONTROLLER is not set
848# CONFIG_VMXNET3 is not set
809# CONFIG_ISDN is not set 849# CONFIG_ISDN is not set
810# CONFIG_PHONE is not set 850# CONFIG_PHONE is not set
811 851
@@ -815,6 +855,7 @@ CONFIG_USB_RTL8150=m
815CONFIG_INPUT=y 855CONFIG_INPUT=y
816CONFIG_INPUT_FF_MEMLESS=m 856CONFIG_INPUT_FF_MEMLESS=m
817# CONFIG_INPUT_POLLDEV is not set 857# CONFIG_INPUT_POLLDEV is not set
858# CONFIG_INPUT_SPARSEKMAP is not set
818 859
819# 860#
820# Userland interfaces 861# Userland interfaces
@@ -933,6 +974,7 @@ CONFIG_SSB_POSSIBLE=y
933# 974#
934# CONFIG_MFD_CORE is not set 975# CONFIG_MFD_CORE is not set
935# CONFIG_MFD_SM501 is not set 976# CONFIG_MFD_SM501 is not set
977# CONFIG_MFD_SH_MOBILE_SDHI is not set
936# CONFIG_HTC_PASIC3 is not set 978# CONFIG_HTC_PASIC3 is not set
937# CONFIG_MFD_TMIO is not set 979# CONFIG_MFD_TMIO is not set
938# CONFIG_REGULATOR is not set 980# CONFIG_REGULATOR is not set
@@ -1371,10 +1413,11 @@ CONFIG_FRAME_WARN=1024
1371# CONFIG_DEBUG_FS is not set 1413# CONFIG_DEBUG_FS is not set
1372# CONFIG_HEADERS_CHECK is not set 1414# CONFIG_HEADERS_CHECK is not set
1373# CONFIG_DEBUG_KERNEL is not set 1415# CONFIG_DEBUG_KERNEL is not set
1374# CONFIG_DEBUG_BUGVERBOSE is not set 1416CONFIG_DEBUG_BUGVERBOSE=y
1375# CONFIG_DEBUG_MEMORY_INIT is not set 1417# CONFIG_DEBUG_MEMORY_INIT is not set
1376# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1418# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1377# CONFIG_LATENCYTOP is not set 1419# CONFIG_LATENCYTOP is not set
1420# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1378CONFIG_HAVE_FUNCTION_TRACER=y 1421CONFIG_HAVE_FUNCTION_TRACER=y
1379CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1422CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1380CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 1423CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -1387,8 +1430,6 @@ CONFIG_TRACING_SUPPORT=y
1387# CONFIG_SAMPLES is not set 1430# CONFIG_SAMPLES is not set
1388CONFIG_HAVE_ARCH_KGDB=y 1431CONFIG_HAVE_ARCH_KGDB=y
1389CONFIG_SH_STANDARD_BIOS=y 1432CONFIG_SH_STANDARD_BIOS=y
1390# CONFIG_EARLY_SCIF_CONSOLE is not set
1391# CONFIG_EARLY_PRINTK is not set
1392# CONFIG_DWARF_UNWINDER is not set 1433# CONFIG_DWARF_UNWINDER is not set
1393 1434
1394# 1435#
@@ -1397,7 +1438,11 @@ CONFIG_SH_STANDARD_BIOS=y
1397# CONFIG_KEYS is not set 1438# CONFIG_KEYS is not set
1398# CONFIG_SECURITY is not set 1439# CONFIG_SECURITY is not set
1399# CONFIG_SECURITYFS is not set 1440# CONFIG_SECURITYFS is not set
1400# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1441# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1442# CONFIG_DEFAULT_SECURITY_SMACK is not set
1443# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1444CONFIG_DEFAULT_SECURITY_DAC=y
1445CONFIG_DEFAULT_SECURITY=""
1401CONFIG_CRYPTO=y 1446CONFIG_CRYPTO=y
1402 1447
1403# 1448#
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig
index ec0c0b432c74..f2f1f8c73b2f 100644
--- a/arch/sh/configs/lboxre2_defconfig
+++ b/arch/sh/configs/lboxre2_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:09:59 2009 4# Mon Jan 4 11:37:01 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -60,6 +62,7 @@ CONFIG_SYSVIPC_SYSCTL=y
60# 62#
61CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -94,6 +97,7 @@ CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 97CONFIG_SHMEM=y
95CONFIG_AIO=y 98CONFIG_AIO=y
96CONFIG_HAVE_PERF_EVENTS=y 99CONFIG_HAVE_PERF_EVENTS=y
100CONFIG_PERF_USE_VMALLOC=y
97 101
98# 102#
99# Kernel Performance Events And Counters 103# Kernel Performance Events And Counters
@@ -113,6 +117,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_HAVE_DMA_ATTRS=y
116CONFIG_HAVE_CLK=y 121CONFIG_HAVE_CLK=y
117CONFIG_HAVE_DMA_API_DEBUG=y 122CONFIG_HAVE_DMA_API_DEBUG=y
118 123
@@ -139,14 +144,41 @@ CONFIG_LBDAF=y
139# IO Schedulers 144# IO Schedulers
140# 145#
141CONFIG_IOSCHED_NOOP=y 146CONFIG_IOSCHED_NOOP=y
142CONFIG_IOSCHED_AS=y
143CONFIG_IOSCHED_DEADLINE=y 147CONFIG_IOSCHED_DEADLINE=y
144CONFIG_IOSCHED_CFQ=y 148CONFIG_IOSCHED_CFQ=y
145CONFIG_DEFAULT_AS=y
146# CONFIG_DEFAULT_DEADLINE is not set 149# CONFIG_DEFAULT_DEADLINE is not set
147# CONFIG_DEFAULT_CFQ is not set 150CONFIG_DEFAULT_CFQ=y
148# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
149CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="cfq"
153# CONFIG_INLINE_SPIN_TRYLOCK is not set
154# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
155# CONFIG_INLINE_SPIN_LOCK is not set
156# CONFIG_INLINE_SPIN_LOCK_BH is not set
157# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
158# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
159CONFIG_INLINE_SPIN_UNLOCK=y
160# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
161CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
162# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
163# CONFIG_INLINE_READ_TRYLOCK is not set
164# CONFIG_INLINE_READ_LOCK is not set
165# CONFIG_INLINE_READ_LOCK_BH is not set
166# CONFIG_INLINE_READ_LOCK_IRQ is not set
167# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
168CONFIG_INLINE_READ_UNLOCK=y
169# CONFIG_INLINE_READ_UNLOCK_BH is not set
170CONFIG_INLINE_READ_UNLOCK_IRQ=y
171# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
172# CONFIG_INLINE_WRITE_TRYLOCK is not set
173# CONFIG_INLINE_WRITE_LOCK is not set
174# CONFIG_INLINE_WRITE_LOCK_BH is not set
175# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
176# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
177CONFIG_INLINE_WRITE_UNLOCK=y
178# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
179CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
180# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
181# CONFIG_MUTEX_SPIN_ON_OWNER is not set
150# CONFIG_FREEZER is not set 182# CONFIG_FREEZER is not set
151 183
152# 184#
@@ -222,8 +254,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
222# CONFIG_PHYS_ADDR_T_64BIT is not set 254# CONFIG_PHYS_ADDR_T_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=0 255CONFIG_ZONE_DMA_FLAG=0
224CONFIG_NR_QUICK=2 256CONFIG_NR_QUICK=2
225CONFIG_HAVE_MLOCK=y
226CONFIG_HAVE_MLOCKED_PAGE_BIT=y
227# CONFIG_KSM is not set 257# CONFIG_KSM is not set
228CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 258CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
229 259
@@ -311,7 +341,6 @@ CONFIG_GUSA=y
311CONFIG_ZERO_PAGE_OFFSET=0x00001000 341CONFIG_ZERO_PAGE_OFFSET=0x00001000
312CONFIG_BOOT_LINK_OFFSET=0x00800000 342CONFIG_BOOT_LINK_OFFSET=0x00800000
313CONFIG_ENTRY_OFFSET=0x00001000 343CONFIG_ENTRY_OFFSET=0x00001000
314# CONFIG_UBC_WAKEUP is not set
315CONFIG_CMDLINE_OVERWRITE=y 344CONFIG_CMDLINE_OVERWRITE=y
316# CONFIG_CMDLINE_EXTEND is not set 345# CONFIG_CMDLINE_EXTEND is not set
317CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1" 346CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1"
@@ -320,14 +349,12 @@ CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1"
320# Bus options 349# Bus options
321# 350#
322CONFIG_PCI=y 351CONFIG_PCI=y
323CONFIG_SH_PCIDMA_NONCOHERENT=y
324# CONFIG_PCIEPORTBUS is not set 352# CONFIG_PCIEPORTBUS is not set
325# CONFIG_ARCH_SUPPORTS_MSI is not set 353# CONFIG_ARCH_SUPPORTS_MSI is not set
326CONFIG_PCI_LEGACY=y 354CONFIG_PCI_LEGACY=y
327# CONFIG_PCI_STUB is not set 355# CONFIG_PCI_STUB is not set
328# CONFIG_PCI_IOV is not set 356# CONFIG_PCI_IOV is not set
329CONFIG_PCCARD=y 357CONFIG_PCCARD=y
330CONFIG_PCMCIA_DEBUG=y
331CONFIG_PCMCIA=y 358CONFIG_PCMCIA=y
332CONFIG_PCMCIA_LOAD_CIS=y 359CONFIG_PCMCIA_LOAD_CIS=y
333CONFIG_PCMCIA_IOCTL=y 360CONFIG_PCMCIA_IOCTL=y
@@ -459,9 +486,6 @@ CONFIG_NETFILTER_ADVANCED=y
459# CONFIG_AF_RXRPC is not set 486# CONFIG_AF_RXRPC is not set
460CONFIG_WIRELESS=y 487CONFIG_WIRELESS=y
461# CONFIG_CFG80211 is not set 488# CONFIG_CFG80211 is not set
462CONFIG_CFG80211_DEFAULT_PS_VALUE=0
463# CONFIG_WIRELESS_OLD_REGULATORY is not set
464# CONFIG_WIRELESS_EXT is not set
465# CONFIG_LIB80211 is not set 489# CONFIG_LIB80211 is not set
466 490
467# 491#
@@ -496,6 +520,10 @@ CONFIG_BLK_DEV=y
496# CONFIG_BLK_DEV_COW_COMMON is not set 520# CONFIG_BLK_DEV_COW_COMMON is not set
497CONFIG_BLK_DEV_LOOP=y 521CONFIG_BLK_DEV_LOOP=y
498# CONFIG_BLK_DEV_CRYPTOLOOP is not set 522# CONFIG_BLK_DEV_CRYPTOLOOP is not set
523
524#
525# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
526#
499# CONFIG_BLK_DEV_NBD is not set 527# CONFIG_BLK_DEV_NBD is not set
500# CONFIG_BLK_DEV_SX8 is not set 528# CONFIG_BLK_DEV_SX8 is not set
501CONFIG_BLK_DEV_RAM=y 529CONFIG_BLK_DEV_RAM=y
@@ -558,8 +586,11 @@ CONFIG_SCSI_LOWLEVEL=y
558# CONFIG_ISCSI_TCP is not set 586# CONFIG_ISCSI_TCP is not set
559# CONFIG_SCSI_CXGB3_ISCSI is not set 587# CONFIG_SCSI_CXGB3_ISCSI is not set
560# CONFIG_SCSI_BNX2_ISCSI is not set 588# CONFIG_SCSI_BNX2_ISCSI is not set
589# CONFIG_BE2ISCSI is not set
561# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 590# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
591# CONFIG_SCSI_HPSA is not set
562# CONFIG_SCSI_3W_9XXX is not set 592# CONFIG_SCSI_3W_9XXX is not set
593# CONFIG_SCSI_3W_SAS is not set
563# CONFIG_SCSI_ACARD is not set 594# CONFIG_SCSI_ACARD is not set
564# CONFIG_SCSI_AACRAID is not set 595# CONFIG_SCSI_AACRAID is not set
565# CONFIG_SCSI_AIC7XXX is not set 596# CONFIG_SCSI_AIC7XXX is not set
@@ -593,7 +624,9 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_SCSI_NSP32 is not set 624# CONFIG_SCSI_NSP32 is not set
594# CONFIG_SCSI_DEBUG is not set 625# CONFIG_SCSI_DEBUG is not set
595# CONFIG_SCSI_PMCRAID is not set 626# CONFIG_SCSI_PMCRAID is not set
627# CONFIG_SCSI_PM8001 is not set
596# CONFIG_SCSI_SRP is not set 628# CONFIG_SCSI_SRP is not set
629# CONFIG_SCSI_BFA_FC is not set
597# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 630# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
598# CONFIG_SCSI_DH is not set 631# CONFIG_SCSI_DH is not set
599# CONFIG_SCSI_OSD_INITIATOR is not set 632# CONFIG_SCSI_OSD_INITIATOR is not set
@@ -648,15 +681,16 @@ CONFIG_ATA_SFF=y
648# CONFIG_PATA_OPTI is not set 681# CONFIG_PATA_OPTI is not set
649# CONFIG_PATA_OPTIDMA is not set 682# CONFIG_PATA_OPTIDMA is not set
650# CONFIG_PATA_PCMCIA is not set 683# CONFIG_PATA_PCMCIA is not set
684# CONFIG_PATA_PDC2027X is not set
651# CONFIG_PATA_PDC_OLD is not set 685# CONFIG_PATA_PDC_OLD is not set
652# CONFIG_PATA_RADISYS is not set 686# CONFIG_PATA_RADISYS is not set
653# CONFIG_PATA_RDC is not set 687# CONFIG_PATA_RDC is not set
654# CONFIG_PATA_RZ1000 is not set 688# CONFIG_PATA_RZ1000 is not set
655# CONFIG_PATA_SC1200 is not set 689# CONFIG_PATA_SC1200 is not set
656# CONFIG_PATA_SERVERWORKS is not set 690# CONFIG_PATA_SERVERWORKS is not set
657# CONFIG_PATA_PDC2027X is not set
658# CONFIG_PATA_SIL680 is not set 691# CONFIG_PATA_SIL680 is not set
659# CONFIG_PATA_SIS is not set 692# CONFIG_PATA_SIS is not set
693# CONFIG_PATA_TOSHIBA is not set
660# CONFIG_PATA_VIA is not set 694# CONFIG_PATA_VIA is not set
661# CONFIG_PATA_WINBOND is not set 695# CONFIG_PATA_WINBOND is not set
662CONFIG_PATA_PLATFORM=y 696CONFIG_PATA_PLATFORM=y
@@ -732,6 +766,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
732# CONFIG_SUNDANCE is not set 766# CONFIG_SUNDANCE is not set
733# CONFIG_TLAN is not set 767# CONFIG_TLAN is not set
734# CONFIG_KS8842 is not set 768# CONFIG_KS8842 is not set
769# CONFIG_KS8851_MLL is not set
735# CONFIG_VIA_RHINE is not set 770# CONFIG_VIA_RHINE is not set
736# CONFIG_SC92031 is not set 771# CONFIG_SC92031 is not set
737# CONFIG_ATL2 is not set 772# CONFIG_ATL2 is not set
@@ -780,8 +815,12 @@ CONFIG_CHELSIO_T3_DEPENDS=y
780# CONFIG_BE2NET is not set 815# CONFIG_BE2NET is not set
781# CONFIG_TR is not set 816# CONFIG_TR is not set
782CONFIG_WLAN=y 817CONFIG_WLAN=y
783# CONFIG_WLAN_PRE80211 is not set 818# CONFIG_PCMCIA_RAYCS is not set
784# CONFIG_WLAN_80211 is not set 819# CONFIG_ATMEL is not set
820# CONFIG_AIRO_CS is not set
821# CONFIG_PCMCIA_WL3501 is not set
822# CONFIG_PRISM54 is not set
823# CONFIG_HOSTAP is not set
785 824
786# 825#
787# Enable WiMAX (Networking options) to see the WiMAX drivers 826# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -804,6 +843,7 @@ CONFIG_PCMCIA_PCNET=y
804# CONFIG_NETCONSOLE is not set 843# CONFIG_NETCONSOLE is not set
805# CONFIG_NETPOLL is not set 844# CONFIG_NETPOLL is not set
806# CONFIG_NET_POLL_CONTROLLER is not set 845# CONFIG_NET_POLL_CONTROLLER is not set
846# CONFIG_VMXNET3 is not set
807# CONFIG_ISDN is not set 847# CONFIG_ISDN is not set
808# CONFIG_PHONE is not set 848# CONFIG_PHONE is not set
809 849
@@ -813,6 +853,7 @@ CONFIG_PCMCIA_PCNET=y
813CONFIG_INPUT=y 853CONFIG_INPUT=y
814# CONFIG_INPUT_FF_MEMLESS is not set 854# CONFIG_INPUT_FF_MEMLESS is not set
815# CONFIG_INPUT_POLLDEV is not set 855# CONFIG_INPUT_POLLDEV is not set
856# CONFIG_INPUT_SPARSEKMAP is not set
816 857
817# 858#
818# Userland interfaces 859# Userland interfaces
@@ -931,6 +972,7 @@ CONFIG_SSB_POSSIBLE=y
931# 972#
932# CONFIG_MFD_CORE is not set 973# CONFIG_MFD_CORE is not set
933# CONFIG_MFD_SM501 is not set 974# CONFIG_MFD_SM501 is not set
975# CONFIG_MFD_SH_MOBILE_SDHI is not set
934# CONFIG_HTC_PASIC3 is not set 976# CONFIG_HTC_PASIC3 is not set
935# CONFIG_MFD_TMIO is not set 977# CONFIG_MFD_TMIO is not set
936# CONFIG_REGULATOR is not set 978# CONFIG_REGULATOR is not set
@@ -1020,7 +1062,9 @@ CONFIG_RTC_INTF_DEV=y
1020# CONFIG_RTC_DRV_M48T86 is not set 1062# CONFIG_RTC_DRV_M48T86 is not set
1021# CONFIG_RTC_DRV_M48T35 is not set 1063# CONFIG_RTC_DRV_M48T35 is not set
1022# CONFIG_RTC_DRV_M48T59 is not set 1064# CONFIG_RTC_DRV_M48T59 is not set
1065# CONFIG_RTC_DRV_MSM6242 is not set
1023# CONFIG_RTC_DRV_BQ4802 is not set 1066# CONFIG_RTC_DRV_BQ4802 is not set
1067# CONFIG_RTC_DRV_RP5C01 is not set
1024# CONFIG_RTC_DRV_V3020 is not set 1068# CONFIG_RTC_DRV_V3020 is not set
1025 1069
1026# 1070#
@@ -1195,10 +1239,11 @@ CONFIG_FRAME_WARN=1024
1195# CONFIG_DEBUG_FS is not set 1239# CONFIG_DEBUG_FS is not set
1196# CONFIG_HEADERS_CHECK is not set 1240# CONFIG_HEADERS_CHECK is not set
1197# CONFIG_DEBUG_KERNEL is not set 1241# CONFIG_DEBUG_KERNEL is not set
1198# CONFIG_DEBUG_BUGVERBOSE is not set 1242CONFIG_DEBUG_BUGVERBOSE=y
1199# CONFIG_DEBUG_MEMORY_INIT is not set 1243# CONFIG_DEBUG_MEMORY_INIT is not set
1200# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1244# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1201# CONFIG_LATENCYTOP is not set 1245# CONFIG_LATENCYTOP is not set
1246# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1202CONFIG_HAVE_FUNCTION_TRACER=y 1247CONFIG_HAVE_FUNCTION_TRACER=y
1203CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1248CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1204CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 1249CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -1211,8 +1256,6 @@ CONFIG_TRACING_SUPPORT=y
1211# CONFIG_SAMPLES is not set 1256# CONFIG_SAMPLES is not set
1212CONFIG_HAVE_ARCH_KGDB=y 1257CONFIG_HAVE_ARCH_KGDB=y
1213CONFIG_SH_STANDARD_BIOS=y 1258CONFIG_SH_STANDARD_BIOS=y
1214# CONFIG_EARLY_SCIF_CONSOLE is not set
1215# CONFIG_EARLY_PRINTK is not set
1216# CONFIG_DWARF_UNWINDER is not set 1259# CONFIG_DWARF_UNWINDER is not set
1217 1260
1218# 1261#
@@ -1221,7 +1264,11 @@ CONFIG_SH_STANDARD_BIOS=y
1221# CONFIG_KEYS is not set 1264# CONFIG_KEYS is not set
1222# CONFIG_SECURITY is not set 1265# CONFIG_SECURITY is not set
1223# CONFIG_SECURITYFS is not set 1266# CONFIG_SECURITYFS is not set
1224# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1267# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1268# CONFIG_DEFAULT_SECURITY_SMACK is not set
1269# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1270CONFIG_DEFAULT_SECURITY_DAC=y
1271CONFIG_DEFAULT_SECURITY=""
1225CONFIG_CRYPTO=y 1272CONFIG_CRYPTO=y
1226 1273
1227# 1274#
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig
index 79091e3e32c4..a7a16ce357ad 100644
--- a/arch/sh/configs/magicpanelr2_defconfig
+++ b/arch/sh/configs/magicpanelr2_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:10:49 2009 4# Mon Jan 4 11:37:42 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
35 36
@@ -63,6 +64,7 @@ CONFIG_AUDIT=y
63# 64#
64CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +104,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 104CONFIG_SHMEM=y
103CONFIG_AIO=y 105CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 106CONFIG_HAVE_PERF_EVENTS=y
107CONFIG_PERF_USE_VMALLOC=y
105 108
106# 109#
107# Kernel Performance Events And Counters 110# Kernel Performance Events And Counters
@@ -120,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
123CONFIG_HAVE_CLK=y 127CONFIG_HAVE_CLK=y
124CONFIG_HAVE_DMA_API_DEBUG=y 128CONFIG_HAVE_DMA_API_DEBUG=y
125 129
@@ -146,14 +150,41 @@ CONFIG_LBDAF=y
146# IO Schedulers 150# IO Schedulers
147# 151#
148CONFIG_IOSCHED_NOOP=y 152CONFIG_IOSCHED_NOOP=y
149# CONFIG_IOSCHED_AS is not set
150# CONFIG_IOSCHED_DEADLINE is not set 153# CONFIG_IOSCHED_DEADLINE is not set
151# CONFIG_IOSCHED_CFQ is not set 154# CONFIG_IOSCHED_CFQ is not set
152# CONFIG_DEFAULT_AS is not set
153# CONFIG_DEFAULT_DEADLINE is not set 155# CONFIG_DEFAULT_DEADLINE is not set
154# CONFIG_DEFAULT_CFQ is not set 156# CONFIG_DEFAULT_CFQ is not set
155CONFIG_DEFAULT_NOOP=y 157CONFIG_DEFAULT_NOOP=y
156CONFIG_DEFAULT_IOSCHED="noop" 158CONFIG_DEFAULT_IOSCHED="noop"
159# CONFIG_INLINE_SPIN_TRYLOCK is not set
160# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK is not set
162# CONFIG_INLINE_SPIN_LOCK_BH is not set
163# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
164# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
165CONFIG_INLINE_SPIN_UNLOCK=y
166# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
167CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
168# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
169# CONFIG_INLINE_READ_TRYLOCK is not set
170# CONFIG_INLINE_READ_LOCK is not set
171# CONFIG_INLINE_READ_LOCK_BH is not set
172# CONFIG_INLINE_READ_LOCK_IRQ is not set
173# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
174CONFIG_INLINE_READ_UNLOCK=y
175# CONFIG_INLINE_READ_UNLOCK_BH is not set
176CONFIG_INLINE_READ_UNLOCK_IRQ=y
177# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
178# CONFIG_INLINE_WRITE_TRYLOCK is not set
179# CONFIG_INLINE_WRITE_LOCK is not set
180# CONFIG_INLINE_WRITE_LOCK_BH is not set
181# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
182# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
183CONFIG_INLINE_WRITE_UNLOCK=y
184# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
185CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
186# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
187# CONFIG_MUTEX_SPIN_ON_OWNER is not set
157# CONFIG_FREEZER is not set 188# CONFIG_FREEZER is not set
158 189
159# 190#
@@ -229,8 +260,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
229# CONFIG_PHYS_ADDR_T_64BIT is not set 260# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=0 261CONFIG_ZONE_DMA_FLAG=0
231CONFIG_NR_QUICK=2 262CONFIG_NR_QUICK=2
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234# CONFIG_KSM is not set 263# CONFIG_KSM is not set
235CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 264CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
236 265
@@ -283,8 +312,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
283# 312#
284# DMA support 313# DMA support
285# 314#
286CONFIG_SH_DMA_API=y
287CONFIG_SH_DMA=y 315CONFIG_SH_DMA=y
316CONFIG_SH_DMA_API=y
288CONFIG_NR_ONCHIP_DMA_CHANNELS=6 317CONFIG_NR_ONCHIP_DMA_CHANNELS=6
289# CONFIG_NR_DMA_CHANNELS_BOOL is not set 318# CONFIG_NR_DMA_CHANNELS_BOOL is not set
290 319
@@ -416,9 +445,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
416# CONFIG_AF_RXRPC is not set 445# CONFIG_AF_RXRPC is not set
417CONFIG_WIRELESS=y 446CONFIG_WIRELESS=y
418# CONFIG_CFG80211 is not set 447# CONFIG_CFG80211 is not set
419CONFIG_CFG80211_DEFAULT_PS_VALUE=0
420# CONFIG_WIRELESS_OLD_REGULATORY is not set
421# CONFIG_WIRELESS_EXT is not set
422# CONFIG_LIB80211 is not set 448# CONFIG_LIB80211 is not set
423 449
424# 450#
@@ -534,6 +560,10 @@ CONFIG_MTD_PHYSMAP=y
534CONFIG_BLK_DEV=y 560CONFIG_BLK_DEV=y
535# CONFIG_BLK_DEV_COW_COMMON is not set 561# CONFIG_BLK_DEV_COW_COMMON is not set
536# CONFIG_BLK_DEV_LOOP is not set 562# CONFIG_BLK_DEV_LOOP is not set
563
564#
565# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
566#
537# CONFIG_BLK_DEV_NBD is not set 567# CONFIG_BLK_DEV_NBD is not set
538CONFIG_BLK_DEV_RAM=y 568CONFIG_BLK_DEV_RAM=y
539CONFIG_BLK_DEV_RAM_COUNT=16 569CONFIG_BLK_DEV_RAM_COUNT=16
@@ -607,11 +637,11 @@ CONFIG_SMSC911X=y
607# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 637# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
608# CONFIG_B44 is not set 638# CONFIG_B44 is not set
609# CONFIG_KS8842 is not set 639# CONFIG_KS8842 is not set
640# CONFIG_KS8851_MLL is not set
610# CONFIG_NETDEV_1000 is not set 641# CONFIG_NETDEV_1000 is not set
611# CONFIG_NETDEV_10000 is not set 642# CONFIG_NETDEV_10000 is not set
612CONFIG_WLAN=y 643CONFIG_WLAN=y
613# CONFIG_WLAN_PRE80211 is not set 644# CONFIG_HOSTAP is not set
614# CONFIG_WLAN_80211 is not set
615 645
616# 646#
617# Enable WiMAX (Networking options) to see the WiMAX drivers 647# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -631,6 +661,7 @@ CONFIG_WLAN=y
631CONFIG_INPUT=y 661CONFIG_INPUT=y
632# CONFIG_INPUT_FF_MEMLESS is not set 662# CONFIG_INPUT_FF_MEMLESS is not set
633# CONFIG_INPUT_POLLDEV is not set 663# CONFIG_INPUT_POLLDEV is not set
664# CONFIG_INPUT_SPARSEKMAP is not set
634 665
635# 666#
636# Userland interfaces 667# Userland interfaces
@@ -675,6 +706,7 @@ CONFIG_SERIO=y
675CONFIG_SERIO_SERPORT=y 706CONFIG_SERIO_SERPORT=y
676CONFIG_SERIO_LIBPS2=y 707CONFIG_SERIO_LIBPS2=y
677# CONFIG_SERIO_RAW is not set 708# CONFIG_SERIO_RAW is not set
709# CONFIG_SERIO_ALTERA_PS2 is not set
678# CONFIG_GAMEPORT is not set 710# CONFIG_GAMEPORT is not set
679 711
680# 712#
@@ -766,6 +798,7 @@ CONFIG_SSB_POSSIBLE=y
766# 798#
767# CONFIG_MFD_CORE is not set 799# CONFIG_MFD_CORE is not set
768# CONFIG_MFD_SM501 is not set 800# CONFIG_MFD_SM501 is not set
801# CONFIG_MFD_SH_MOBILE_SDHI is not set
769# CONFIG_HTC_PASIC3 is not set 802# CONFIG_HTC_PASIC3 is not set
770# CONFIG_MFD_TMIO is not set 803# CONFIG_MFD_TMIO is not set
771# CONFIG_REGULATOR is not set 804# CONFIG_REGULATOR is not set
@@ -824,7 +857,9 @@ CONFIG_RTC_INTF_DEV=y
824# CONFIG_RTC_DRV_M48T86 is not set 857# CONFIG_RTC_DRV_M48T86 is not set
825# CONFIG_RTC_DRV_M48T35 is not set 858# CONFIG_RTC_DRV_M48T35 is not set
826# CONFIG_RTC_DRV_M48T59 is not set 859# CONFIG_RTC_DRV_M48T59 is not set
860# CONFIG_RTC_DRV_MSM6242 is not set
827# CONFIG_RTC_DRV_BQ4802 is not set 861# CONFIG_RTC_DRV_BQ4802 is not set
862# CONFIG_RTC_DRV_RP5C01 is not set
828# CONFIG_RTC_DRV_V3020 is not set 863# CONFIG_RTC_DRV_V3020 is not set
829 864
830# 865#
@@ -898,7 +933,6 @@ CONFIG_PROC_PAGE_MONITOR=y
898CONFIG_SYSFS=y 933CONFIG_SYSFS=y
899CONFIG_TMPFS=y 934CONFIG_TMPFS=y
900# CONFIG_TMPFS_POSIX_ACL is not set 935# CONFIG_TMPFS_POSIX_ACL is not set
901# CONFIG_HUGETLBFS is not set
902# CONFIG_HUGETLB_PAGE is not set 936# CONFIG_HUGETLB_PAGE is not set
903# CONFIG_CONFIGFS_FS is not set 937# CONFIG_CONFIGFS_FS is not set
904CONFIG_MISC_FILESYSTEMS=y 938CONFIG_MISC_FILESYSTEMS=y
@@ -1072,9 +1106,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1072CONFIG_HAVE_ARCH_KGDB=y 1106CONFIG_HAVE_ARCH_KGDB=y
1073# CONFIG_KGDB is not set 1107# CONFIG_KGDB is not set
1074# CONFIG_SH_STANDARD_BIOS is not set 1108# CONFIG_SH_STANDARD_BIOS is not set
1075CONFIG_EARLY_SCIF_CONSOLE=y
1076CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000
1077CONFIG_EARLY_PRINTK=y
1078# CONFIG_STACK_DEBUG is not set 1109# CONFIG_STACK_DEBUG is not set
1079# CONFIG_DEBUG_STACK_USAGE is not set 1110# CONFIG_DEBUG_STACK_USAGE is not set
1080# CONFIG_4KSTACKS is not set 1111# CONFIG_4KSTACKS is not set
@@ -1088,7 +1119,11 @@ CONFIG_DUMP_CODE=y
1088# CONFIG_KEYS is not set 1119# CONFIG_KEYS is not set
1089# CONFIG_SECURITY is not set 1120# CONFIG_SECURITY is not set
1090# CONFIG_SECURITYFS is not set 1121# CONFIG_SECURITYFS is not set
1091# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1122# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1123# CONFIG_DEFAULT_SECURITY_SMACK is not set
1124# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1125CONFIG_DEFAULT_SECURITY_DAC=y
1126CONFIG_DEFAULT_SECURITY=""
1092# CONFIG_CRYPTO is not set 1127# CONFIG_CRYPTO is not set
1093# CONFIG_BINARY_PRINTF is not set 1128# CONFIG_BINARY_PRINTF is not set
1094 1129
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig
index 6bb5976aff2a..7d43fabdc073 100644
--- a/arch/sh/configs/microdev_defconfig
+++ b/arch/sh/configs/microdev_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:14:35 2009 4# Mon Jan 4 11:40:41 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y
60# 62#
61CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -98,6 +101,7 @@ CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 101CONFIG_SHMEM=y
99CONFIG_AIO=y 102CONFIG_AIO=y
100CONFIG_HAVE_PERF_EVENTS=y 103CONFIG_HAVE_PERF_EVENTS=y
104CONFIG_PERF_USE_VMALLOC=y
101 105
102# 106#
103# Kernel Performance Events And Counters 107# Kernel Performance Events And Counters
@@ -115,6 +119,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 121CONFIG_HAVE_ARCH_TRACEHOOK=y
122CONFIG_HAVE_DMA_ATTRS=y
118CONFIG_HAVE_CLK=y 123CONFIG_HAVE_CLK=y
119CONFIG_HAVE_DMA_API_DEBUG=y 124CONFIG_HAVE_DMA_API_DEBUG=y
120 125
@@ -136,14 +141,41 @@ CONFIG_LBDAF=y
136# IO Schedulers 141# IO Schedulers
137# 142#
138CONFIG_IOSCHED_NOOP=y 143CONFIG_IOSCHED_NOOP=y
139CONFIG_IOSCHED_AS=y
140CONFIG_IOSCHED_DEADLINE=y 144CONFIG_IOSCHED_DEADLINE=y
141CONFIG_IOSCHED_CFQ=y 145CONFIG_IOSCHED_CFQ=y
142CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_DEADLINE is not set 146# CONFIG_DEFAULT_DEADLINE is not set
144# CONFIG_DEFAULT_CFQ is not set 147CONFIG_DEFAULT_CFQ=y
145# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="cfq"
150# CONFIG_INLINE_SPIN_TRYLOCK is not set
151# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
152# CONFIG_INLINE_SPIN_LOCK is not set
153# CONFIG_INLINE_SPIN_LOCK_BH is not set
154# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
155# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
156# CONFIG_INLINE_SPIN_UNLOCK is not set
157# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
158# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
159# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
160# CONFIG_INLINE_READ_TRYLOCK is not set
161# CONFIG_INLINE_READ_LOCK is not set
162# CONFIG_INLINE_READ_LOCK_BH is not set
163# CONFIG_INLINE_READ_LOCK_IRQ is not set
164# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
165# CONFIG_INLINE_READ_UNLOCK is not set
166# CONFIG_INLINE_READ_UNLOCK_BH is not set
167# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
168# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
169# CONFIG_INLINE_WRITE_TRYLOCK is not set
170# CONFIG_INLINE_WRITE_LOCK is not set
171# CONFIG_INLINE_WRITE_LOCK_BH is not set
172# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
173# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
174# CONFIG_INLINE_WRITE_UNLOCK is not set
175# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
176# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
177# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
178# CONFIG_MUTEX_SPIN_ON_OWNER is not set
147# CONFIG_FREEZER is not set 179# CONFIG_FREEZER is not set
148 180
149# 181#
@@ -225,8 +257,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
225# CONFIG_PHYS_ADDR_T_64BIT is not set 257# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=0 258CONFIG_ZONE_DMA_FLAG=0
227CONFIG_NR_QUICK=2 259CONFIG_NR_QUICK=2
228CONFIG_HAVE_MLOCK=y
229CONFIG_HAVE_MLOCKED_PAGE_BIT=y
230# CONFIG_KSM is not set 260# CONFIG_KSM is not set
231CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 261CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
232 262
@@ -272,8 +302,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
272# 302#
273# DMA support 303# DMA support
274# 304#
275CONFIG_SH_DMA_API=y
276CONFIG_SH_DMA=y 305CONFIG_SH_DMA=y
306CONFIG_SH_DMA_API=y
277CONFIG_NR_ONCHIP_DMA_CHANNELS=6 307CONFIG_NR_ONCHIP_DMA_CHANNELS=6
278# CONFIG_NR_DMA_CHANNELS_BOOL is not set 308# CONFIG_NR_DMA_CHANNELS_BOOL is not set
279 309
@@ -312,7 +342,6 @@ CONFIG_GUSA=y
312CONFIG_ZERO_PAGE_OFFSET=0x00001000 342CONFIG_ZERO_PAGE_OFFSET=0x00001000
313CONFIG_BOOT_LINK_OFFSET=0x00800000 343CONFIG_BOOT_LINK_OFFSET=0x00800000
314CONFIG_ENTRY_OFFSET=0x00001000 344CONFIG_ENTRY_OFFSET=0x00001000
315# CONFIG_UBC_WAKEUP is not set
316CONFIG_CMDLINE_OVERWRITE=y 345CONFIG_CMDLINE_OVERWRITE=y
317# CONFIG_CMDLINE_EXTEND is not set 346# CONFIG_CMDLINE_EXTEND is not set
318CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1" 347CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1"
@@ -412,9 +441,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
412# CONFIG_AF_RXRPC is not set 441# CONFIG_AF_RXRPC is not set
413CONFIG_WIRELESS=y 442CONFIG_WIRELESS=y
414# CONFIG_CFG80211 is not set 443# CONFIG_CFG80211 is not set
415CONFIG_CFG80211_DEFAULT_PS_VALUE=0
416# CONFIG_WIRELESS_OLD_REGULATORY is not set
417# CONFIG_WIRELESS_EXT is not set
418# CONFIG_LIB80211 is not set 444# CONFIG_LIB80211 is not set
419 445
420# 446#
@@ -443,6 +469,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
443CONFIG_BLK_DEV=y 469CONFIG_BLK_DEV=y
444# CONFIG_BLK_DEV_COW_COMMON is not set 470# CONFIG_BLK_DEV_COW_COMMON is not set
445# CONFIG_BLK_DEV_LOOP is not set 471# CONFIG_BLK_DEV_LOOP is not set
472
473#
474# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
475#
446# CONFIG_BLK_DEV_NBD is not set 476# CONFIG_BLK_DEV_NBD is not set
447CONFIG_BLK_DEV_RAM=y 477CONFIG_BLK_DEV_RAM=y
448CONFIG_BLK_DEV_RAM_COUNT=16 478CONFIG_BLK_DEV_RAM_COUNT=16
@@ -517,11 +547,11 @@ CONFIG_SMC91X=y
517# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 547# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
518# CONFIG_B44 is not set 548# CONFIG_B44 is not set
519# CONFIG_KS8842 is not set 549# CONFIG_KS8842 is not set
550# CONFIG_KS8851_MLL is not set
520CONFIG_NETDEV_1000=y 551CONFIG_NETDEV_1000=y
521CONFIG_NETDEV_10000=y 552CONFIG_NETDEV_10000=y
522CONFIG_WLAN=y 553CONFIG_WLAN=y
523# CONFIG_WLAN_PRE80211 is not set 554# CONFIG_HOSTAP is not set
524# CONFIG_WLAN_80211 is not set
525 555
526# 556#
527# Enable WiMAX (Networking options) to see the WiMAX drivers 557# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -616,6 +646,7 @@ CONFIG_SSB_POSSIBLE=y
616# 646#
617# CONFIG_MFD_CORE is not set 647# CONFIG_MFD_CORE is not set
618# CONFIG_MFD_SM501 is not set 648# CONFIG_MFD_SM501 is not set
649# CONFIG_MFD_SH_MOBILE_SDHI is not set
619# CONFIG_HTC_PASIC3 is not set 650# CONFIG_HTC_PASIC3 is not set
620# CONFIG_MFD_TMIO is not set 651# CONFIG_MFD_TMIO is not set
621# CONFIG_REGULATOR is not set 652# CONFIG_REGULATOR is not set
@@ -835,10 +866,11 @@ CONFIG_FRAME_WARN=1024
835# CONFIG_DEBUG_FS is not set 866# CONFIG_DEBUG_FS is not set
836# CONFIG_HEADERS_CHECK is not set 867# CONFIG_HEADERS_CHECK is not set
837# CONFIG_DEBUG_KERNEL is not set 868# CONFIG_DEBUG_KERNEL is not set
838# CONFIG_DEBUG_BUGVERBOSE is not set 869CONFIG_DEBUG_BUGVERBOSE=y
839# CONFIG_DEBUG_MEMORY_INIT is not set 870# CONFIG_DEBUG_MEMORY_INIT is not set
840# CONFIG_RCU_CPU_STALL_DETECTOR is not set 871# CONFIG_RCU_CPU_STALL_DETECTOR is not set
841# CONFIG_LATENCYTOP is not set 872# CONFIG_LATENCYTOP is not set
873# CONFIG_SYSCTL_SYSCALL_CHECK is not set
842CONFIG_HAVE_FUNCTION_TRACER=y 874CONFIG_HAVE_FUNCTION_TRACER=y
843CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 875CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
844CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 876CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -851,7 +883,6 @@ CONFIG_TRACING_SUPPORT=y
851# CONFIG_SAMPLES is not set 883# CONFIG_SAMPLES is not set
852CONFIG_HAVE_ARCH_KGDB=y 884CONFIG_HAVE_ARCH_KGDB=y
853# CONFIG_SH_STANDARD_BIOS is not set 885# CONFIG_SH_STANDARD_BIOS is not set
854# CONFIG_EARLY_SCIF_CONSOLE is not set
855# CONFIG_DWARF_UNWINDER is not set 886# CONFIG_DWARF_UNWINDER is not set
856 887
857# 888#
@@ -860,7 +891,11 @@ CONFIG_HAVE_ARCH_KGDB=y
860# CONFIG_KEYS is not set 891# CONFIG_KEYS is not set
861# CONFIG_SECURITY is not set 892# CONFIG_SECURITY is not set
862# CONFIG_SECURITYFS is not set 893# CONFIG_SECURITYFS is not set
863# CONFIG_SECURITY_FILE_CAPABILITIES is not set 894# CONFIG_DEFAULT_SECURITY_SELINUX is not set
895# CONFIG_DEFAULT_SECURITY_SMACK is not set
896# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
897CONFIG_DEFAULT_SECURITY_DAC=y
898CONFIG_DEFAULT_SECURITY=""
864CONFIG_CRYPTO=y 899CONFIG_CRYPTO=y
865 900
866# 901#
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index 65018283c3a8..d2b183117771 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:17:41 2009 4# Mon Jan 4 11:41:41 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
24CONFIG_SYS_SUPPORTS_CMT=y 25CONFIG_SYS_SUPPORTS_CMT=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -61,6 +63,7 @@ CONFIG_SYSVIPC_SYSCTL=y
61# 63#
62CONFIG_TREE_RCU=y 64CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
66# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 67# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 68CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 69# CONFIG_RCU_FANOUT_EXACT is not set
@@ -100,6 +103,7 @@ CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 103CONFIG_SHMEM=y
101CONFIG_AIO=y 104CONFIG_AIO=y
102CONFIG_HAVE_PERF_EVENTS=y 105CONFIG_HAVE_PERF_EVENTS=y
106CONFIG_PERF_USE_VMALLOC=y
103 107
104# 108#
105# Kernel Performance Events And Counters 109# Kernel Performance Events And Counters
@@ -121,6 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y 127CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_DMA_ATTRS=y
124CONFIG_HAVE_CLK=y 129CONFIG_HAVE_CLK=y
125CONFIG_HAVE_DMA_API_DEBUG=y 130CONFIG_HAVE_DMA_API_DEBUG=y
126 131
@@ -147,14 +152,41 @@ CONFIG_LBDAF=y
147# IO Schedulers 152# IO Schedulers
148# 153#
149CONFIG_IOSCHED_NOOP=y 154CONFIG_IOSCHED_NOOP=y
150CONFIG_IOSCHED_AS=y
151CONFIG_IOSCHED_DEADLINE=y 155CONFIG_IOSCHED_DEADLINE=y
152CONFIG_IOSCHED_CFQ=y 156CONFIG_IOSCHED_CFQ=y
153CONFIG_DEFAULT_AS=y
154# CONFIG_DEFAULT_DEADLINE is not set 157# CONFIG_DEFAULT_DEADLINE is not set
155# CONFIG_DEFAULT_CFQ is not set 158CONFIG_DEFAULT_CFQ=y
156# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
157CONFIG_DEFAULT_IOSCHED="anticipatory" 160CONFIG_DEFAULT_IOSCHED="cfq"
161# CONFIG_INLINE_SPIN_TRYLOCK is not set
162# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
163# CONFIG_INLINE_SPIN_LOCK is not set
164# CONFIG_INLINE_SPIN_LOCK_BH is not set
165# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
166# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
167CONFIG_INLINE_SPIN_UNLOCK=y
168# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
169CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
170# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
171# CONFIG_INLINE_READ_TRYLOCK is not set
172# CONFIG_INLINE_READ_LOCK is not set
173# CONFIG_INLINE_READ_LOCK_BH is not set
174# CONFIG_INLINE_READ_LOCK_IRQ is not set
175# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
176CONFIG_INLINE_READ_UNLOCK=y
177# CONFIG_INLINE_READ_UNLOCK_BH is not set
178CONFIG_INLINE_READ_UNLOCK_IRQ=y
179# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
180# CONFIG_INLINE_WRITE_TRYLOCK is not set
181# CONFIG_INLINE_WRITE_LOCK is not set
182# CONFIG_INLINE_WRITE_LOCK_BH is not set
183# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
184# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
185CONFIG_INLINE_WRITE_UNLOCK=y
186# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
187CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
188# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
189# CONFIG_MUTEX_SPIN_ON_OWNER is not set
158CONFIG_FREEZER=y 190CONFIG_FREEZER=y
159 191
160# 192#
@@ -240,8 +272,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
240# CONFIG_PHYS_ADDR_T_64BIT is not set 272# CONFIG_PHYS_ADDR_T_64BIT is not set
241CONFIG_ZONE_DMA_FLAG=0 273CONFIG_ZONE_DMA_FLAG=0
242CONFIG_NR_QUICK=2 274CONFIG_NR_QUICK=2
243CONFIG_HAVE_MLOCK=y
244CONFIG_HAVE_MLOCKED_PAGE_BIT=y
245# CONFIG_KSM is not set 275# CONFIG_KSM is not set
246CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 276CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
247 277
@@ -277,7 +307,6 @@ CONFIG_SH_MIGOR_QVGA=y
277# 307#
278CONFIG_SH_TIMER_TMU=y 308CONFIG_SH_TIMER_TMU=y
279# CONFIG_SH_TIMER_CMT is not set 309# CONFIG_SH_TIMER_CMT is not set
280CONFIG_SH_PCLK_FREQ=33333333
281CONFIG_SH_CLK_CPG=y 310CONFIG_SH_CLK_CPG=y
282# CONFIG_NO_HZ is not set 311# CONFIG_NO_HZ is not set
283# CONFIG_HIGH_RES_TIMERS is not set 312# CONFIG_HIGH_RES_TIMERS is not set
@@ -433,10 +462,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
433# CONFIG_AF_RXRPC is not set 462# CONFIG_AF_RXRPC is not set
434CONFIG_WIRELESS=y 463CONFIG_WIRELESS=y
435# CONFIG_CFG80211 is not set 464# CONFIG_CFG80211 is not set
436CONFIG_CFG80211_DEFAULT_PS_VALUE=0
437# CONFIG_WIRELESS_OLD_REGULATORY is not set
438CONFIG_WIRELESS_EXT=y
439CONFIG_WIRELESS_EXT_SYSFS=y
440# CONFIG_LIB80211 is not set 465# CONFIG_LIB80211 is not set
441 466
442# 467#
@@ -554,6 +579,10 @@ CONFIG_MTD_NAND_PLATFORM=y
554CONFIG_BLK_DEV=y 579CONFIG_BLK_DEV=y
555# CONFIG_BLK_DEV_COW_COMMON is not set 580# CONFIG_BLK_DEV_COW_COMMON is not set
556# CONFIG_BLK_DEV_LOOP is not set 581# CONFIG_BLK_DEV_LOOP is not set
582
583#
584# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
585#
557# CONFIG_BLK_DEV_NBD is not set 586# CONFIG_BLK_DEV_NBD is not set
558CONFIG_BLK_DEV_RAM=y 587CONFIG_BLK_DEV_RAM=y
559CONFIG_BLK_DEV_RAM_COUNT=16 588CONFIG_BLK_DEV_RAM_COUNT=16
@@ -563,9 +592,11 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
563# CONFIG_ATA_OVER_ETH is not set 592# CONFIG_ATA_OVER_ETH is not set
564# CONFIG_BLK_DEV_HD is not set 593# CONFIG_BLK_DEV_HD is not set
565CONFIG_MISC_DEVICES=y 594CONFIG_MISC_DEVICES=y
595# CONFIG_AD525X_DPOT is not set
566# CONFIG_ICS932S401 is not set 596# CONFIG_ICS932S401 is not set
567# CONFIG_ENCLOSURE_SERVICES is not set 597# CONFIG_ENCLOSURE_SERVICES is not set
568# CONFIG_ISL29003 is not set 598# CONFIG_ISL29003 is not set
599# CONFIG_DS1682 is not set
569# CONFIG_C2PORT is not set 600# CONFIG_C2PORT is not set
570 601
571# 602#
@@ -646,11 +677,11 @@ CONFIG_SMC91X=y
646# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 677# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
647# CONFIG_B44 is not set 678# CONFIG_B44 is not set
648# CONFIG_KS8842 is not set 679# CONFIG_KS8842 is not set
680# CONFIG_KS8851_MLL is not set
649# CONFIG_NETDEV_1000 is not set 681# CONFIG_NETDEV_1000 is not set
650# CONFIG_NETDEV_10000 is not set 682# CONFIG_NETDEV_10000 is not set
651CONFIG_WLAN=y 683CONFIG_WLAN=y
652# CONFIG_WLAN_PRE80211 is not set 684# CONFIG_HOSTAP is not set
653# CONFIG_WLAN_80211 is not set
654 685
655# 686#
656# Enable WiMAX (Networking options) to see the WiMAX drivers 687# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -670,6 +701,7 @@ CONFIG_WLAN=y
670CONFIG_INPUT=y 701CONFIG_INPUT=y
671# CONFIG_INPUT_FF_MEMLESS is not set 702# CONFIG_INPUT_FF_MEMLESS is not set
672# CONFIG_INPUT_POLLDEV is not set 703# CONFIG_INPUT_POLLDEV is not set
704# CONFIG_INPUT_SPARSEKMAP is not set
673 705
674# 706#
675# Userland interfaces 707# Userland interfaces
@@ -776,7 +808,6 @@ CONFIG_I2C_SH_MOBILE=y
776# 808#
777# Miscellaneous I2C Chip support 809# Miscellaneous I2C Chip support
778# 810#
779# CONFIG_DS1682 is not set
780# CONFIG_SENSORS_TSL2550 is not set 811# CONFIG_SENSORS_TSL2550 is not set
781# CONFIG_I2C_DEBUG_CORE is not set 812# CONFIG_I2C_DEBUG_CORE is not set
782# CONFIG_I2C_DEBUG_ALGO is not set 813# CONFIG_I2C_DEBUG_ALGO is not set
@@ -831,16 +862,19 @@ CONFIG_SSB_POSSIBLE=y
831# 862#
832# CONFIG_MFD_CORE is not set 863# CONFIG_MFD_CORE is not set
833# CONFIG_MFD_SM501 is not set 864# CONFIG_MFD_SM501 is not set
865# CONFIG_MFD_SH_MOBILE_SDHI is not set
834# CONFIG_HTC_PASIC3 is not set 866# CONFIG_HTC_PASIC3 is not set
835# CONFIG_TPS65010 is not set 867# CONFIG_TPS65010 is not set
836# CONFIG_TWL4030_CORE is not set 868# CONFIG_TWL4030_CORE is not set
837# CONFIG_MFD_TMIO is not set 869# CONFIG_MFD_TMIO is not set
838# CONFIG_PMIC_DA903X is not set 870# CONFIG_PMIC_DA903X is not set
871# CONFIG_PMIC_ADP5520 is not set
839# CONFIG_MFD_WM8400 is not set 872# CONFIG_MFD_WM8400 is not set
840# CONFIG_MFD_WM831X is not set 873# CONFIG_MFD_WM831X is not set
841# CONFIG_MFD_WM8350_I2C is not set 874# CONFIG_MFD_WM8350_I2C is not set
842# CONFIG_MFD_PCF50633 is not set 875# CONFIG_MFD_PCF50633 is not set
843# CONFIG_AB3100_CORE is not set 876# CONFIG_AB3100_CORE is not set
877# CONFIG_MFD_88PM8607 is not set
844# CONFIG_REGULATOR is not set 878# CONFIG_REGULATOR is not set
845CONFIG_MEDIA_SUPPORT=y 879CONFIG_MEDIA_SUPPORT=y
846 880
@@ -857,6 +891,8 @@ CONFIG_VIDEO_MEDIA=y
857# 891#
858# Multimedia drivers 892# Multimedia drivers
859# 893#
894CONFIG_IR_CORE=y
895CONFIG_VIDEO_IR=y
860# CONFIG_MEDIA_ATTACH is not set 896# CONFIG_MEDIA_ATTACH is not set
861CONFIG_MEDIA_TUNER=y 897CONFIG_MEDIA_TUNER=y
862# CONFIG_MEDIA_TUNER_CUSTOMISE is not set 898# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
@@ -876,6 +912,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
876# CONFIG_VIDEO_ADV_DEBUG is not set 912# CONFIG_VIDEO_ADV_DEBUG is not set
877# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set 913# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
878CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 914CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
915CONFIG_VIDEO_IR_I2C=y
879# CONFIG_VIDEO_VIVI is not set 916# CONFIG_VIDEO_VIVI is not set
880# CONFIG_VIDEO_SAA5246A is not set 917# CONFIG_VIDEO_SAA5246A is not set
881# CONFIG_VIDEO_SAA5249 is not set 918# CONFIG_VIDEO_SAA5249 is not set
@@ -883,10 +920,13 @@ CONFIG_SOC_CAMERA=y
883# CONFIG_SOC_CAMERA_MT9M001 is not set 920# CONFIG_SOC_CAMERA_MT9M001 is not set
884# CONFIG_SOC_CAMERA_MT9M111 is not set 921# CONFIG_SOC_CAMERA_MT9M111 is not set
885# CONFIG_SOC_CAMERA_MT9T031 is not set 922# CONFIG_SOC_CAMERA_MT9T031 is not set
923# CONFIG_SOC_CAMERA_MT9T112 is not set
886# CONFIG_SOC_CAMERA_MT9V022 is not set 924# CONFIG_SOC_CAMERA_MT9V022 is not set
925# CONFIG_SOC_CAMERA_RJ54N1 is not set
887CONFIG_SOC_CAMERA_TW9910=y 926CONFIG_SOC_CAMERA_TW9910=y
888# CONFIG_SOC_CAMERA_PLATFORM is not set 927# CONFIG_SOC_CAMERA_PLATFORM is not set
889CONFIG_SOC_CAMERA_OV772X=y 928CONFIG_SOC_CAMERA_OV772X=y
929# CONFIG_SOC_CAMERA_OV9640 is not set
890CONFIG_VIDEO_SH_MOBILE_CEU=y 930CONFIG_VIDEO_SH_MOBILE_CEU=y
891# CONFIG_RADIO_ADAPTERS is not set 931# CONFIG_RADIO_ADAPTERS is not set
892# CONFIG_DAB is not set 932# CONFIG_DAB is not set
@@ -1009,10 +1049,12 @@ CONFIG_USB_GADGET_DUALSPEED=y
1009# CONFIG_USB_ETH is not set 1049# CONFIG_USB_ETH is not set
1010# CONFIG_USB_GADGETFS is not set 1050# CONFIG_USB_GADGETFS is not set
1011# CONFIG_USB_FILE_STORAGE is not set 1051# CONFIG_USB_FILE_STORAGE is not set
1012CONFIG_USB_G_SERIAL=y 1052# CONFIG_USB_MASS_STORAGE is not set
1053CONFIG_USB_G_SERIAL=m
1013# CONFIG_USB_MIDI_GADGET is not set 1054# CONFIG_USB_MIDI_GADGET is not set
1014# CONFIG_USB_G_PRINTER is not set 1055# CONFIG_USB_G_PRINTER is not set
1015# CONFIG_USB_CDC_COMPOSITE is not set 1056# CONFIG_USB_CDC_COMPOSITE is not set
1057# CONFIG_USB_G_MULTI is not set
1016 1058
1017# 1059#
1018# OTG and related infrastructure 1060# OTG and related infrastructure
@@ -1051,6 +1093,7 @@ CONFIG_RTC_DRV_RS5C372=y
1051# CONFIG_RTC_DRV_PCF8563 is not set 1093# CONFIG_RTC_DRV_PCF8563 is not set
1052# CONFIG_RTC_DRV_PCF8583 is not set 1094# CONFIG_RTC_DRV_PCF8583 is not set
1053# CONFIG_RTC_DRV_M41T80 is not set 1095# CONFIG_RTC_DRV_M41T80 is not set
1096# CONFIG_RTC_DRV_BQ32K is not set
1054# CONFIG_RTC_DRV_S35390A is not set 1097# CONFIG_RTC_DRV_S35390A is not set
1055# CONFIG_RTC_DRV_FM3130 is not set 1098# CONFIG_RTC_DRV_FM3130 is not set
1056# CONFIG_RTC_DRV_RX8581 is not set 1099# CONFIG_RTC_DRV_RX8581 is not set
@@ -1071,7 +1114,9 @@ CONFIG_RTC_DRV_RS5C372=y
1071# CONFIG_RTC_DRV_M48T86 is not set 1114# CONFIG_RTC_DRV_M48T86 is not set
1072# CONFIG_RTC_DRV_M48T35 is not set 1115# CONFIG_RTC_DRV_M48T35 is not set
1073# CONFIG_RTC_DRV_M48T59 is not set 1116# CONFIG_RTC_DRV_M48T59 is not set
1117# CONFIG_RTC_DRV_MSM6242 is not set
1074# CONFIG_RTC_DRV_BQ4802 is not set 1118# CONFIG_RTC_DRV_BQ4802 is not set
1119# CONFIG_RTC_DRV_RP5C01 is not set
1075# CONFIG_RTC_DRV_V3020 is not set 1120# CONFIG_RTC_DRV_V3020 is not set
1076 1121
1077# 1122#
@@ -1098,6 +1143,7 @@ CONFIG_UIO_PDRV_GENIRQ=y
1098# CONFIG_EXT2_FS is not set 1143# CONFIG_EXT2_FS is not set
1099# CONFIG_EXT3_FS is not set 1144# CONFIG_EXT3_FS is not set
1100# CONFIG_EXT4_FS is not set 1145# CONFIG_EXT4_FS is not set
1146CONFIG_EXT4_USE_FOR_EXT23=y
1101# CONFIG_REISERFS_FS is not set 1147# CONFIG_REISERFS_FS is not set
1102# CONFIG_JFS_FS is not set 1148# CONFIG_JFS_FS is not set
1103# CONFIG_FS_POSIX_ACL is not set 1149# CONFIG_FS_POSIX_ACL is not set
@@ -1206,10 +1252,11 @@ CONFIG_DEBUG_FS=y
1206# CONFIG_HEADERS_CHECK is not set 1252# CONFIG_HEADERS_CHECK is not set
1207# CONFIG_DEBUG_KERNEL is not set 1253# CONFIG_DEBUG_KERNEL is not set
1208CONFIG_STACKTRACE=y 1254CONFIG_STACKTRACE=y
1209# CONFIG_DEBUG_BUGVERBOSE is not set 1255CONFIG_DEBUG_BUGVERBOSE=y
1210# CONFIG_DEBUG_MEMORY_INIT is not set 1256# CONFIG_DEBUG_MEMORY_INIT is not set
1211# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1257# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1212# CONFIG_LATENCYTOP is not set 1258# CONFIG_LATENCYTOP is not set
1259# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1213CONFIG_NOP_TRACER=y 1260CONFIG_NOP_TRACER=y
1214CONFIG_HAVE_FUNCTION_TRACER=y 1261CONFIG_HAVE_FUNCTION_TRACER=y
1215CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1262CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1229,9 +1276,6 @@ CONFIG_TRACING_SUPPORT=y
1229# CONFIG_SAMPLES is not set 1276# CONFIG_SAMPLES is not set
1230CONFIG_HAVE_ARCH_KGDB=y 1277CONFIG_HAVE_ARCH_KGDB=y
1231# CONFIG_SH_STANDARD_BIOS is not set 1278# CONFIG_SH_STANDARD_BIOS is not set
1232CONFIG_EARLY_SCIF_CONSOLE=y
1233CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1234CONFIG_EARLY_PRINTK=y
1235# CONFIG_DWARF_UNWINDER is not set 1279# CONFIG_DWARF_UNWINDER is not set
1236 1280
1237# 1281#
@@ -1240,7 +1284,11 @@ CONFIG_EARLY_PRINTK=y
1240# CONFIG_KEYS is not set 1284# CONFIG_KEYS is not set
1241# CONFIG_SECURITY is not set 1285# CONFIG_SECURITY is not set
1242# CONFIG_SECURITYFS is not set 1286# CONFIG_SECURITYFS is not set
1243# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1287# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1288# CONFIG_DEFAULT_SECURITY_SMACK is not set
1289# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1290CONFIG_DEFAULT_SECURITY_DAC=y
1291CONFIG_DEFAULT_SECURITY=""
1244CONFIG_CRYPTO=y 1292CONFIG_CRYPTO=y
1245 1293
1246# 1294#
diff --git a/arch/sh/configs/polaris_defconfig b/arch/sh/configs/polaris_defconfig
index 7fc1952419aa..d50c0314281e 100644
--- a/arch/sh/configs/polaris_defconfig
+++ b/arch/sh/configs/polaris_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:20:53 2009 4# Mon Jan 4 11:45:25 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 29CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 30CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 34CONFIG_CONSTRUCTORS=y
34 35
@@ -63,6 +64,7 @@ CONFIG_AUDIT=y
63# 64#
64CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +104,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 104CONFIG_SHMEM=y
103CONFIG_AIO=y 105CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 106CONFIG_HAVE_PERF_EVENTS=y
107CONFIG_PERF_USE_VMALLOC=y
105 108
106# 109#
107# Kernel Performance Events And Counters 110# Kernel Performance Events And Counters
@@ -120,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
123CONFIG_HAVE_CLK=y 127CONFIG_HAVE_CLK=y
124CONFIG_HAVE_DMA_API_DEBUG=y 128CONFIG_HAVE_DMA_API_DEBUG=y
125 129
@@ -146,14 +150,41 @@ CONFIG_LBDAF=y
146# IO Schedulers 150# IO Schedulers
147# 151#
148CONFIG_IOSCHED_NOOP=y 152CONFIG_IOSCHED_NOOP=y
149# CONFIG_IOSCHED_AS is not set
150# CONFIG_IOSCHED_DEADLINE is not set 153# CONFIG_IOSCHED_DEADLINE is not set
151CONFIG_IOSCHED_CFQ=y 154CONFIG_IOSCHED_CFQ=y
152# CONFIG_DEFAULT_AS is not set
153# CONFIG_DEFAULT_DEADLINE is not set 155# CONFIG_DEFAULT_DEADLINE is not set
154CONFIG_DEFAULT_CFQ=y 156CONFIG_DEFAULT_CFQ=y
155# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="cfq" 158CONFIG_DEFAULT_IOSCHED="cfq"
159# CONFIG_INLINE_SPIN_TRYLOCK is not set
160# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK is not set
162# CONFIG_INLINE_SPIN_LOCK_BH is not set
163# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
164# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
165# CONFIG_INLINE_SPIN_UNLOCK is not set
166# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
167# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
168# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
169# CONFIG_INLINE_READ_TRYLOCK is not set
170# CONFIG_INLINE_READ_LOCK is not set
171# CONFIG_INLINE_READ_LOCK_BH is not set
172# CONFIG_INLINE_READ_LOCK_IRQ is not set
173# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
174# CONFIG_INLINE_READ_UNLOCK is not set
175# CONFIG_INLINE_READ_UNLOCK_BH is not set
176# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
177# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
178# CONFIG_INLINE_WRITE_TRYLOCK is not set
179# CONFIG_INLINE_WRITE_LOCK is not set
180# CONFIG_INLINE_WRITE_LOCK_BH is not set
181# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
182# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
183# CONFIG_INLINE_WRITE_UNLOCK is not set
184# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
185# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
186# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
187# CONFIG_MUTEX_SPIN_ON_OWNER is not set
157# CONFIG_FREEZER is not set 188# CONFIG_FREEZER is not set
158 189
159# 190#
@@ -225,12 +256,10 @@ CONFIG_FLATMEM=y
225CONFIG_FLAT_NODE_MEM_MAP=y 256CONFIG_FLAT_NODE_MEM_MAP=y
226CONFIG_SPARSEMEM_STATIC=y 257CONFIG_SPARSEMEM_STATIC=y
227CONFIG_PAGEFLAGS_EXTENDED=y 258CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 259CONFIG_SPLIT_PTLOCK_CPUS=999999
229# CONFIG_PHYS_ADDR_T_64BIT is not set 260# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=0 261CONFIG_ZONE_DMA_FLAG=0
231CONFIG_NR_QUICK=2 262CONFIG_NR_QUICK=2
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234# CONFIG_KSM is not set 263# CONFIG_KSM is not set
235CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 264CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
236 265
@@ -279,8 +308,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
279# 308#
280# DMA support 309# DMA support
281# 310#
282CONFIG_SH_DMA_API=y
283CONFIG_SH_DMA=y 311CONFIG_SH_DMA=y
312CONFIG_SH_DMA_API=y
284CONFIG_NR_ONCHIP_DMA_CHANNELS=6 313CONFIG_NR_ONCHIP_DMA_CHANNELS=6
285# CONFIG_NR_DMA_CHANNELS_BOOL is not set 314# CONFIG_NR_DMA_CHANNELS_BOOL is not set
286 315
@@ -409,7 +438,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
409# CONFIG_IRDA is not set 438# CONFIG_IRDA is not set
410# CONFIG_BT is not set 439# CONFIG_BT is not set
411# CONFIG_AF_RXRPC is not set 440# CONFIG_AF_RXRPC is not set
412# CONFIG_WIRELESS is not set 441CONFIG_WIRELESS=y
442# CONFIG_CFG80211 is not set
443# CONFIG_LIB80211 is not set
444
445#
446# CFG80211 needs to be enabled for MAC80211
447#
413# CONFIG_WIMAX is not set 448# CONFIG_WIMAX is not set
414# CONFIG_RFKILL is not set 449# CONFIG_RFKILL is not set
415# CONFIG_NET_9P is not set 450# CONFIG_NET_9P is not set
@@ -525,6 +560,10 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
525CONFIG_BLK_DEV=y 560CONFIG_BLK_DEV=y
526# CONFIG_BLK_DEV_COW_COMMON is not set 561# CONFIG_BLK_DEV_COW_COMMON is not set
527# CONFIG_BLK_DEV_LOOP is not set 562# CONFIG_BLK_DEV_LOOP is not set
563
564#
565# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
566#
528# CONFIG_BLK_DEV_NBD is not set 567# CONFIG_BLK_DEV_NBD is not set
529# CONFIG_BLK_DEV_RAM is not set 568# CONFIG_BLK_DEV_RAM is not set
530# CONFIG_CDROM_PKTCDVD is not set 569# CONFIG_CDROM_PKTCDVD is not set
@@ -595,11 +634,11 @@ CONFIG_SMSC911X=y
595# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 634# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
596# CONFIG_B44 is not set 635# CONFIG_B44 is not set
597# CONFIG_KS8842 is not set 636# CONFIG_KS8842 is not set
637# CONFIG_KS8851_MLL is not set
598# CONFIG_NETDEV_1000 is not set 638# CONFIG_NETDEV_1000 is not set
599# CONFIG_NETDEV_10000 is not set 639# CONFIG_NETDEV_10000 is not set
600CONFIG_WLAN=y 640CONFIG_WLAN=y
601# CONFIG_WLAN_PRE80211 is not set 641# CONFIG_HOSTAP is not set
602# CONFIG_WLAN_80211 is not set
603 642
604# 643#
605# Enable WiMAX (Networking options) to see the WiMAX drivers 644# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -619,6 +658,7 @@ CONFIG_WLAN=y
619CONFIG_INPUT=y 658CONFIG_INPUT=y
620# CONFIG_INPUT_FF_MEMLESS is not set 659# CONFIG_INPUT_FF_MEMLESS is not set
621# CONFIG_INPUT_POLLDEV is not set 660# CONFIG_INPUT_POLLDEV is not set
661# CONFIG_INPUT_SPARSEKMAP is not set
622 662
623# 663#
624# Userland interfaces 664# Userland interfaces
@@ -657,7 +697,6 @@ CONFIG_SERIAL_NONSTANDARD=y
657# CONFIG_N_HDLC is not set 697# CONFIG_N_HDLC is not set
658# CONFIG_RISCOM8 is not set 698# CONFIG_RISCOM8 is not set
659# CONFIG_SPECIALIX is not set 699# CONFIG_SPECIALIX is not set
660# CONFIG_RIO is not set
661# CONFIG_STALDRV is not set 700# CONFIG_STALDRV is not set
662 701
663# 702#
@@ -705,6 +744,7 @@ CONFIG_SSB_POSSIBLE=y
705# 744#
706# CONFIG_MFD_CORE is not set 745# CONFIG_MFD_CORE is not set
707# CONFIG_MFD_SM501 is not set 746# CONFIG_MFD_SM501 is not set
747# CONFIG_MFD_SH_MOBILE_SDHI is not set
708# CONFIG_HTC_PASIC3 is not set 748# CONFIG_HTC_PASIC3 is not set
709# CONFIG_MFD_TMIO is not set 749# CONFIG_MFD_TMIO is not set
710# CONFIG_REGULATOR is not set 750# CONFIG_REGULATOR is not set
@@ -764,7 +804,9 @@ CONFIG_RTC_INTF_DEV=y
764# CONFIG_RTC_DRV_M48T86 is not set 804# CONFIG_RTC_DRV_M48T86 is not set
765# CONFIG_RTC_DRV_M48T35 is not set 805# CONFIG_RTC_DRV_M48T35 is not set
766# CONFIG_RTC_DRV_M48T59 is not set 806# CONFIG_RTC_DRV_M48T59 is not set
807# CONFIG_RTC_DRV_MSM6242 is not set
767# CONFIG_RTC_DRV_BQ4802 is not set 808# CONFIG_RTC_DRV_BQ4802 is not set
809# CONFIG_RTC_DRV_RP5C01 is not set
768# CONFIG_RTC_DRV_V3020 is not set 810# CONFIG_RTC_DRV_V3020 is not set
769 811
770# 812#
@@ -787,6 +829,7 @@ CONFIG_RTC_DRV_SH=y
787# CONFIG_EXT2_FS is not set 829# CONFIG_EXT2_FS is not set
788# CONFIG_EXT3_FS is not set 830# CONFIG_EXT3_FS is not set
789# CONFIG_EXT4_FS is not set 831# CONFIG_EXT4_FS is not set
832CONFIG_EXT4_USE_FOR_EXT23=y
790# CONFIG_REISERFS_FS is not set 833# CONFIG_REISERFS_FS is not set
791# CONFIG_JFS_FS is not set 834# CONFIG_JFS_FS is not set
792# CONFIG_FS_POSIX_ACL is not set 835# CONFIG_FS_POSIX_ACL is not set
@@ -833,7 +876,6 @@ CONFIG_PROC_PAGE_MONITOR=y
833CONFIG_SYSFS=y 876CONFIG_SYSFS=y
834CONFIG_TMPFS=y 877CONFIG_TMPFS=y
835# CONFIG_TMPFS_POSIX_ACL is not set 878# CONFIG_TMPFS_POSIX_ACL is not set
836# CONFIG_HUGETLBFS is not set
837# CONFIG_HUGETLB_PAGE is not set 879# CONFIG_HUGETLB_PAGE is not set
838# CONFIG_CONFIGFS_FS is not set 880# CONFIG_CONFIGFS_FS is not set
839CONFIG_MISC_FILESYSTEMS=y 881CONFIG_MISC_FILESYSTEMS=y
@@ -977,9 +1019,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
977CONFIG_HAVE_ARCH_KGDB=y 1019CONFIG_HAVE_ARCH_KGDB=y
978# CONFIG_KGDB is not set 1020# CONFIG_KGDB is not set
979# CONFIG_SH_STANDARD_BIOS is not set 1021# CONFIG_SH_STANDARD_BIOS is not set
980CONFIG_EARLY_SCIF_CONSOLE=y
981CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4000150
982CONFIG_EARLY_PRINTK=y
983# CONFIG_STACK_DEBUG is not set 1022# CONFIG_STACK_DEBUG is not set
984# CONFIG_DEBUG_STACK_USAGE is not set 1023# CONFIG_DEBUG_STACK_USAGE is not set
985# CONFIG_4KSTACKS is not set 1024# CONFIG_4KSTACKS is not set
@@ -993,7 +1032,11 @@ CONFIG_DUMP_CODE=y
993# CONFIG_KEYS is not set 1032# CONFIG_KEYS is not set
994# CONFIG_SECURITY is not set 1033# CONFIG_SECURITY is not set
995# CONFIG_SECURITYFS is not set 1034# CONFIG_SECURITYFS is not set
996# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1035# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1036# CONFIG_DEFAULT_SECURITY_SMACK is not set
1037# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1038CONFIG_DEFAULT_SECURITY_DAC=y
1039CONFIG_DEFAULT_SECURITY=""
997# CONFIG_CRYPTO is not set 1040# CONFIG_CRYPTO is not set
998# CONFIG_BINARY_PRINTF is not set 1041# CONFIG_BINARY_PRINTF is not set
999 1042
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig
index 903b021e8d93..efda63d4070a 100644
--- a/arch/sh/configs/r7780mp_defconfig
+++ b/arch/sh/configs/r7780mp_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:24:31 2009 4# Mon Jan 4 13:16:13 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -31,6 +32,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_IO_TRAPPED=y 34CONFIG_IO_TRAPPED=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y
63# 65#
64CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 69# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -110,6 +114,7 @@ CONFIG_HAVE_PERF_EVENTS=y
110CONFIG_PERF_EVENTS=y 114CONFIG_PERF_EVENTS=y
111CONFIG_EVENT_PROFILE=y 115CONFIG_EVENT_PROFILE=y
112# CONFIG_PERF_COUNTERS is not set 116# CONFIG_PERF_COUNTERS is not set
117# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
113CONFIG_VM_EVENT_COUNTERS=y 118CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y 119CONFIG_PCI_QUIRKS=y
115CONFIG_COMPAT_BRK=y 120CONFIG_COMPAT_BRK=y
@@ -125,6 +130,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
125CONFIG_HAVE_KPROBES=y 130CONFIG_HAVE_KPROBES=y
126CONFIG_HAVE_KRETPROBES=y 131CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y 132CONFIG_HAVE_ARCH_TRACEHOOK=y
133CONFIG_HAVE_DMA_ATTRS=y
128CONFIG_HAVE_CLK=y 134CONFIG_HAVE_CLK=y
129CONFIG_HAVE_DMA_API_DEBUG=y 135CONFIG_HAVE_DMA_API_DEBUG=y
130 136
@@ -135,6 +141,7 @@ CONFIG_HAVE_DMA_API_DEBUG=y
135# CONFIG_SLOW_WORK is not set 141# CONFIG_SLOW_WORK is not set
136CONFIG_HAVE_GENERIC_DMA_COHERENT=y 142CONFIG_HAVE_GENERIC_DMA_COHERENT=y
137CONFIG_SLABINFO=y 143CONFIG_SLABINFO=y
144CONFIG_RT_MUTEXES=y
138CONFIG_BASE_SMALL=0 145CONFIG_BASE_SMALL=0
139CONFIG_MODULES=y 146CONFIG_MODULES=y
140# CONFIG_MODULE_FORCE_LOAD is not set 147# CONFIG_MODULE_FORCE_LOAD is not set
@@ -151,14 +158,41 @@ CONFIG_LBDAF=y
151# IO Schedulers 158# IO Schedulers
152# 159#
153CONFIG_IOSCHED_NOOP=y 160CONFIG_IOSCHED_NOOP=y
154# CONFIG_IOSCHED_AS is not set
155# CONFIG_IOSCHED_DEADLINE is not set 161# CONFIG_IOSCHED_DEADLINE is not set
156# CONFIG_IOSCHED_CFQ is not set 162# CONFIG_IOSCHED_CFQ is not set
157# CONFIG_DEFAULT_AS is not set
158# CONFIG_DEFAULT_DEADLINE is not set 163# CONFIG_DEFAULT_DEADLINE is not set
159# CONFIG_DEFAULT_CFQ is not set 164# CONFIG_DEFAULT_CFQ is not set
160CONFIG_DEFAULT_NOOP=y 165CONFIG_DEFAULT_NOOP=y
161CONFIG_DEFAULT_IOSCHED="noop" 166CONFIG_DEFAULT_IOSCHED="noop"
167# CONFIG_INLINE_SPIN_TRYLOCK is not set
168# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
169# CONFIG_INLINE_SPIN_LOCK is not set
170# CONFIG_INLINE_SPIN_LOCK_BH is not set
171# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
172# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
173# CONFIG_INLINE_SPIN_UNLOCK is not set
174# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
175# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
176# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
177# CONFIG_INLINE_READ_TRYLOCK is not set
178# CONFIG_INLINE_READ_LOCK is not set
179# CONFIG_INLINE_READ_LOCK_BH is not set
180# CONFIG_INLINE_READ_LOCK_IRQ is not set
181# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
182# CONFIG_INLINE_READ_UNLOCK is not set
183# CONFIG_INLINE_READ_UNLOCK_BH is not set
184# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
185# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
186# CONFIG_INLINE_WRITE_TRYLOCK is not set
187# CONFIG_INLINE_WRITE_LOCK is not set
188# CONFIG_INLINE_WRITE_LOCK_BH is not set
189# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
190# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
191# CONFIG_INLINE_WRITE_UNLOCK is not set
192# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
193# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
194# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
195# CONFIG_MUTEX_SPIN_ON_OWNER is not set
162# CONFIG_FREEZER is not set 196# CONFIG_FREEZER is not set
163 197
164# 198#
@@ -245,8 +279,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
245# CONFIG_PHYS_ADDR_T_64BIT is not set 279# CONFIG_PHYS_ADDR_T_64BIT is not set
246CONFIG_ZONE_DMA_FLAG=0 280CONFIG_ZONE_DMA_FLAG=0
247CONFIG_NR_QUICK=2 281CONFIG_NR_QUICK=2
248CONFIG_HAVE_MLOCK=y
249CONFIG_HAVE_MLOCKED_PAGE_BIT=y
250# CONFIG_KSM is not set 282# CONFIG_KSM is not set
251CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 283CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
252 284
@@ -342,7 +374,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
342# Bus options 374# Bus options
343# 375#
344CONFIG_PCI=y 376CONFIG_PCI=y
345CONFIG_SH_PCIDMA_NONCOHERENT=y
346# CONFIG_PCIEPORTBUS is not set 377# CONFIG_PCIEPORTBUS is not set
347# CONFIG_ARCH_SUPPORTS_MSI is not set 378# CONFIG_ARCH_SUPPORTS_MSI is not set
348CONFIG_PCI_LEGACY=y 379CONFIG_PCI_LEGACY=y
@@ -449,10 +480,6 @@ CONFIG_LLC=m
449# CONFIG_AF_RXRPC is not set 480# CONFIG_AF_RXRPC is not set
450CONFIG_WIRELESS=y 481CONFIG_WIRELESS=y
451# CONFIG_CFG80211 is not set 482# CONFIG_CFG80211 is not set
452CONFIG_CFG80211_DEFAULT_PS_VALUE=0
453# CONFIG_WIRELESS_OLD_REGULATORY is not set
454CONFIG_WIRELESS_EXT=y
455CONFIG_WIRELESS_EXT_SYSFS=y
456# CONFIG_LIB80211 is not set 483# CONFIG_LIB80211 is not set
457 484
458# 485#
@@ -535,7 +562,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
535CONFIG_MTD_PHYSMAP=y 562CONFIG_MTD_PHYSMAP=y
536# CONFIG_MTD_PHYSMAP_COMPAT is not set 563# CONFIG_MTD_PHYSMAP_COMPAT is not set
537# CONFIG_MTD_PCI is not set 564# CONFIG_MTD_PCI is not set
538# CONFIG_MTD_GPIO_ADDR is not set
539# CONFIG_MTD_INTEL_VR_NOR is not set 565# CONFIG_MTD_INTEL_VR_NOR is not set
540# CONFIG_MTD_PLATRAM is not set 566# CONFIG_MTD_PLATRAM is not set
541 567
@@ -573,6 +599,10 @@ CONFIG_BLK_DEV=y
573# CONFIG_BLK_DEV_UMEM is not set 599# CONFIG_BLK_DEV_UMEM is not set
574# CONFIG_BLK_DEV_COW_COMMON is not set 600# CONFIG_BLK_DEV_COW_COMMON is not set
575# CONFIG_BLK_DEV_LOOP is not set 601# CONFIG_BLK_DEV_LOOP is not set
602
603#
604# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
605#
576# CONFIG_BLK_DEV_NBD is not set 606# CONFIG_BLK_DEV_NBD is not set
577# CONFIG_BLK_DEV_SX8 is not set 607# CONFIG_BLK_DEV_SX8 is not set
578CONFIG_BLK_DEV_RAM=y 608CONFIG_BLK_DEV_RAM=y
@@ -583,6 +613,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
583# CONFIG_ATA_OVER_ETH is not set 613# CONFIG_ATA_OVER_ETH is not set
584# CONFIG_BLK_DEV_HD is not set 614# CONFIG_BLK_DEV_HD is not set
585CONFIG_MISC_DEVICES=y 615CONFIG_MISC_DEVICES=y
616# CONFIG_AD525X_DPOT is not set
586# CONFIG_PHANTOM is not set 617# CONFIG_PHANTOM is not set
587# CONFIG_SGI_IOC4 is not set 618# CONFIG_SGI_IOC4 is not set
588# CONFIG_TIFM_CORE is not set 619# CONFIG_TIFM_CORE is not set
@@ -590,6 +621,7 @@ CONFIG_MISC_DEVICES=y
590# CONFIG_ENCLOSURE_SERVICES is not set 621# CONFIG_ENCLOSURE_SERVICES is not set
591# CONFIG_HP_ILO is not set 622# CONFIG_HP_ILO is not set
592# CONFIG_ISL29003 is not set 623# CONFIG_ISL29003 is not set
624# CONFIG_DS1682 is not set
593# CONFIG_C2PORT is not set 625# CONFIG_C2PORT is not set
594 626
595# 627#
@@ -640,8 +672,11 @@ CONFIG_SCSI_LOWLEVEL=y
640# CONFIG_ISCSI_TCP is not set 672# CONFIG_ISCSI_TCP is not set
641# CONFIG_SCSI_CXGB3_ISCSI is not set 673# CONFIG_SCSI_CXGB3_ISCSI is not set
642# CONFIG_SCSI_BNX2_ISCSI is not set 674# CONFIG_SCSI_BNX2_ISCSI is not set
675# CONFIG_BE2ISCSI is not set
643# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 676# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
677# CONFIG_SCSI_HPSA is not set
644# CONFIG_SCSI_3W_9XXX is not set 678# CONFIG_SCSI_3W_9XXX is not set
679# CONFIG_SCSI_3W_SAS is not set
645# CONFIG_SCSI_ACARD is not set 680# CONFIG_SCSI_ACARD is not set
646# CONFIG_SCSI_AACRAID is not set 681# CONFIG_SCSI_AACRAID is not set
647# CONFIG_SCSI_AIC7XXX is not set 682# CONFIG_SCSI_AIC7XXX is not set
@@ -675,7 +710,9 @@ CONFIG_SCSI_LOWLEVEL=y
675# CONFIG_SCSI_NSP32 is not set 710# CONFIG_SCSI_NSP32 is not set
676# CONFIG_SCSI_DEBUG is not set 711# CONFIG_SCSI_DEBUG is not set
677# CONFIG_SCSI_PMCRAID is not set 712# CONFIG_SCSI_PMCRAID is not set
713# CONFIG_SCSI_PM8001 is not set
678# CONFIG_SCSI_SRP is not set 714# CONFIG_SCSI_SRP is not set
715# CONFIG_SCSI_BFA_FC is not set
679# CONFIG_SCSI_DH is not set 716# CONFIG_SCSI_DH is not set
680# CONFIG_SCSI_OSD_INITIATOR is not set 717# CONFIG_SCSI_OSD_INITIATOR is not set
681CONFIG_ATA=y 718CONFIG_ATA=y
@@ -728,15 +765,16 @@ CONFIG_SATA_SIL=y
728# CONFIG_PATA_NS87415 is not set 765# CONFIG_PATA_NS87415 is not set
729# CONFIG_PATA_OPTI is not set 766# CONFIG_PATA_OPTI is not set
730# CONFIG_PATA_OPTIDMA is not set 767# CONFIG_PATA_OPTIDMA is not set
768# CONFIG_PATA_PDC2027X is not set
731# CONFIG_PATA_PDC_OLD is not set 769# CONFIG_PATA_PDC_OLD is not set
732# CONFIG_PATA_RADISYS is not set 770# CONFIG_PATA_RADISYS is not set
733# CONFIG_PATA_RDC is not set 771# CONFIG_PATA_RDC is not set
734# CONFIG_PATA_RZ1000 is not set 772# CONFIG_PATA_RZ1000 is not set
735# CONFIG_PATA_SC1200 is not set 773# CONFIG_PATA_SC1200 is not set
736# CONFIG_PATA_SERVERWORKS is not set 774# CONFIG_PATA_SERVERWORKS is not set
737# CONFIG_PATA_PDC2027X is not set
738# CONFIG_PATA_SIL680 is not set 775# CONFIG_PATA_SIL680 is not set
739# CONFIG_PATA_SIS is not set 776# CONFIG_PATA_SIS is not set
777# CONFIG_PATA_TOSHIBA is not set
740# CONFIG_PATA_VIA is not set 778# CONFIG_PATA_VIA is not set
741# CONFIG_PATA_WINBOND is not set 779# CONFIG_PATA_WINBOND is not set
742CONFIG_PATA_PLATFORM=y 780CONFIG_PATA_PLATFORM=y
@@ -813,6 +851,7 @@ CONFIG_8139TOO_8129=y
813# CONFIG_SUNDANCE is not set 851# CONFIG_SUNDANCE is not set
814# CONFIG_TLAN is not set 852# CONFIG_TLAN is not set
815# CONFIG_KS8842 is not set 853# CONFIG_KS8842 is not set
854# CONFIG_KS8851_MLL is not set
816CONFIG_VIA_RHINE=m 855CONFIG_VIA_RHINE=m
817CONFIG_VIA_RHINE_MMIO=y 856CONFIG_VIA_RHINE_MMIO=y
818# CONFIG_SC92031 is not set 857# CONFIG_SC92031 is not set
@@ -862,8 +901,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y
862# CONFIG_BE2NET is not set 901# CONFIG_BE2NET is not set
863# CONFIG_TR is not set 902# CONFIG_TR is not set
864CONFIG_WLAN=y 903CONFIG_WLAN=y
865# CONFIG_WLAN_PRE80211 is not set 904# CONFIG_ATMEL is not set
866# CONFIG_WLAN_80211 is not set 905# CONFIG_PRISM54 is not set
906# CONFIG_HOSTAP is not set
867 907
868# 908#
869# Enable WiMAX (Networking options) to see the WiMAX drivers 909# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -877,6 +917,7 @@ CONFIG_WLAN=y
877# CONFIG_NETCONSOLE is not set 917# CONFIG_NETCONSOLE is not set
878# CONFIG_NETPOLL is not set 918# CONFIG_NETPOLL is not set
879# CONFIG_NET_POLL_CONTROLLER is not set 919# CONFIG_NET_POLL_CONTROLLER is not set
920# CONFIG_VMXNET3 is not set
880# CONFIG_ISDN is not set 921# CONFIG_ISDN is not set
881# CONFIG_PHONE is not set 922# CONFIG_PHONE is not set
882 923
@@ -886,6 +927,7 @@ CONFIG_WLAN=y
886CONFIG_INPUT=y 927CONFIG_INPUT=y
887# CONFIG_INPUT_FF_MEMLESS is not set 928# CONFIG_INPUT_FF_MEMLESS is not set
888# CONFIG_INPUT_POLLDEV is not set 929# CONFIG_INPUT_POLLDEV is not set
930# CONFIG_INPUT_SPARSEKMAP is not set
889 931
890# 932#
891# Userland interfaces 933# Userland interfaces
@@ -928,6 +970,7 @@ CONFIG_SERIO=y
928# CONFIG_SERIO_PCIPS2 is not set 970# CONFIG_SERIO_PCIPS2 is not set
929CONFIG_SERIO_LIBPS2=y 971CONFIG_SERIO_LIBPS2=y
930# CONFIG_SERIO_RAW is not set 972# CONFIG_SERIO_RAW is not set
973# CONFIG_SERIO_ALTERA_PS2 is not set
931# CONFIG_GAMEPORT is not set 974# CONFIG_GAMEPORT is not set
932 975
933# 976#
@@ -1008,11 +1051,6 @@ CONFIG_I2C_HIGHLANDER=y
1008# CONFIG_I2C_TAOS_EVM is not set 1051# CONFIG_I2C_TAOS_EVM is not set
1009 1052
1010# 1053#
1011# Graphics adapter I2C/DDC channel drivers
1012#
1013# CONFIG_I2C_VOODOO3 is not set
1014
1015#
1016# Other I2C/SMBus bus drivers 1054# Other I2C/SMBus bus drivers
1017# 1055#
1018# CONFIG_I2C_PCA_PLATFORM is not set 1056# CONFIG_I2C_PCA_PLATFORM is not set
@@ -1021,7 +1059,6 @@ CONFIG_I2C_HIGHLANDER=y
1021# 1059#
1022# Miscellaneous I2C Chip support 1060# Miscellaneous I2C Chip support
1023# 1061#
1024# CONFIG_DS1682 is not set
1025# CONFIG_SENSORS_TSL2550 is not set 1062# CONFIG_SENSORS_TSL2550 is not set
1026# CONFIG_I2C_DEBUG_CORE is not set 1063# CONFIG_I2C_DEBUG_CORE is not set
1027# CONFIG_I2C_DEBUG_ALGO is not set 1064# CONFIG_I2C_DEBUG_ALGO is not set
@@ -1065,6 +1102,7 @@ CONFIG_HWMON=y
1065# CONFIG_SENSORS_GL520SM is not set 1102# CONFIG_SENSORS_GL520SM is not set
1066# CONFIG_SENSORS_IT87 is not set 1103# CONFIG_SENSORS_IT87 is not set
1067# CONFIG_SENSORS_LM63 is not set 1104# CONFIG_SENSORS_LM63 is not set
1105# CONFIG_SENSORS_LM73 is not set
1068# CONFIG_SENSORS_LM75 is not set 1106# CONFIG_SENSORS_LM75 is not set
1069# CONFIG_SENSORS_LM77 is not set 1107# CONFIG_SENSORS_LM77 is not set
1070# CONFIG_SENSORS_LM78 is not set 1108# CONFIG_SENSORS_LM78 is not set
@@ -1103,6 +1141,7 @@ CONFIG_HWMON=y
1103# CONFIG_SENSORS_W83L786NG is not set 1141# CONFIG_SENSORS_W83L786NG is not set
1104# CONFIG_SENSORS_W83627HF is not set 1142# CONFIG_SENSORS_W83627HF is not set
1105# CONFIG_SENSORS_W83627EHF is not set 1143# CONFIG_SENSORS_W83627EHF is not set
1144# CONFIG_SENSORS_LIS3_I2C is not set
1106CONFIG_THERMAL=y 1145CONFIG_THERMAL=y
1107# CONFIG_THERMAL_HWMON is not set 1146# CONFIG_THERMAL_HWMON is not set
1108# CONFIG_WATCHDOG is not set 1147# CONFIG_WATCHDOG is not set
@@ -1118,15 +1157,18 @@ CONFIG_SSB_POSSIBLE=y
1118# 1157#
1119# CONFIG_MFD_CORE is not set 1158# CONFIG_MFD_CORE is not set
1120# CONFIG_MFD_SM501 is not set 1159# CONFIG_MFD_SM501 is not set
1160# CONFIG_MFD_SH_MOBILE_SDHI is not set
1121# CONFIG_HTC_PASIC3 is not set 1161# CONFIG_HTC_PASIC3 is not set
1122# CONFIG_TWL4030_CORE is not set 1162# CONFIG_TWL4030_CORE is not set
1123# CONFIG_MFD_TMIO is not set 1163# CONFIG_MFD_TMIO is not set
1124# CONFIG_PMIC_DA903X is not set 1164# CONFIG_PMIC_DA903X is not set
1165# CONFIG_PMIC_ADP5520 is not set
1125# CONFIG_MFD_WM8400 is not set 1166# CONFIG_MFD_WM8400 is not set
1126# CONFIG_MFD_WM831X is not set 1167# CONFIG_MFD_WM831X is not set
1127# CONFIG_MFD_WM8350_I2C is not set 1168# CONFIG_MFD_WM8350_I2C is not set
1128# CONFIG_MFD_PCF50633 is not set 1169# CONFIG_MFD_PCF50633 is not set
1129# CONFIG_AB3100_CORE is not set 1170# CONFIG_AB3100_CORE is not set
1171# CONFIG_MFD_88PM8607 is not set
1130# CONFIG_REGULATOR is not set 1172# CONFIG_REGULATOR is not set
1131# CONFIG_MEDIA_SUPPORT is not set 1173# CONFIG_MEDIA_SUPPORT is not set
1132 1174
@@ -1211,6 +1253,7 @@ CONFIG_RTC_DRV_RS5C372=y
1211# CONFIG_RTC_DRV_PCF8563 is not set 1253# CONFIG_RTC_DRV_PCF8563 is not set
1212# CONFIG_RTC_DRV_PCF8583 is not set 1254# CONFIG_RTC_DRV_PCF8583 is not set
1213# CONFIG_RTC_DRV_M41T80 is not set 1255# CONFIG_RTC_DRV_M41T80 is not set
1256# CONFIG_RTC_DRV_BQ32K is not set
1214# CONFIG_RTC_DRV_S35390A is not set 1257# CONFIG_RTC_DRV_S35390A is not set
1215# CONFIG_RTC_DRV_FM3130 is not set 1258# CONFIG_RTC_DRV_FM3130 is not set
1216# CONFIG_RTC_DRV_RX8581 is not set 1259# CONFIG_RTC_DRV_RX8581 is not set
@@ -1231,7 +1274,9 @@ CONFIG_RTC_DRV_RS5C372=y
1231# CONFIG_RTC_DRV_M48T86 is not set 1274# CONFIG_RTC_DRV_M48T86 is not set
1232# CONFIG_RTC_DRV_M48T35 is not set 1275# CONFIG_RTC_DRV_M48T35 is not set
1233# CONFIG_RTC_DRV_M48T59 is not set 1276# CONFIG_RTC_DRV_M48T59 is not set
1277# CONFIG_RTC_DRV_MSM6242 is not set
1234# CONFIG_RTC_DRV_BQ4802 is not set 1278# CONFIG_RTC_DRV_BQ4802 is not set
1279# CONFIG_RTC_DRV_RP5C01 is not set
1235# CONFIG_RTC_DRV_V3020 is not set 1280# CONFIG_RTC_DRV_V3020 is not set
1236 1281
1237# 1282#
@@ -1436,6 +1481,8 @@ CONFIG_SCHED_DEBUG=y
1436# CONFIG_DEBUG_OBJECTS is not set 1481# CONFIG_DEBUG_OBJECTS is not set
1437# CONFIG_DEBUG_SLAB is not set 1482# CONFIG_DEBUG_SLAB is not set
1438# CONFIG_DEBUG_PREEMPT is not set 1483# CONFIG_DEBUG_PREEMPT is not set
1484# CONFIG_DEBUG_RT_MUTEXES is not set
1485# CONFIG_RT_MUTEX_TESTER is not set
1439# CONFIG_DEBUG_SPINLOCK is not set 1486# CONFIG_DEBUG_SPINLOCK is not set
1440# CONFIG_DEBUG_MUTEXES is not set 1487# CONFIG_DEBUG_MUTEXES is not set
1441# CONFIG_DEBUG_LOCK_ALLOC is not set 1488# CONFIG_DEBUG_LOCK_ALLOC is not set
@@ -1462,6 +1509,7 @@ CONFIG_DEBUG_INFO=y
1462# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1509# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1463# CONFIG_FAULT_INJECTION is not set 1510# CONFIG_FAULT_INJECTION is not set
1464# CONFIG_LATENCYTOP is not set 1511# CONFIG_LATENCYTOP is not set
1512# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1465# CONFIG_PAGE_POISONING is not set 1513# CONFIG_PAGE_POISONING is not set
1466CONFIG_NOP_TRACER=y 1514CONFIG_NOP_TRACER=y
1467CONFIG_HAVE_FUNCTION_TRACER=y 1515CONFIG_HAVE_FUNCTION_TRACER=y
@@ -1498,9 +1546,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1498CONFIG_HAVE_ARCH_KGDB=y 1546CONFIG_HAVE_ARCH_KGDB=y
1499# CONFIG_KGDB is not set 1547# CONFIG_KGDB is not set
1500# CONFIG_SH_STANDARD_BIOS is not set 1548# CONFIG_SH_STANDARD_BIOS is not set
1501CONFIG_EARLY_SCIF_CONSOLE=y
1502CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1503# CONFIG_EARLY_PRINTK is not set
1504# CONFIG_STACK_DEBUG is not set 1549# CONFIG_STACK_DEBUG is not set
1505# CONFIG_DEBUG_STACK_USAGE is not set 1550# CONFIG_DEBUG_STACK_USAGE is not set
1506# CONFIG_4KSTACKS is not set 1551# CONFIG_4KSTACKS is not set
@@ -1514,7 +1559,11 @@ CONFIG_DUMP_CODE=y
1514# CONFIG_KEYS is not set 1559# CONFIG_KEYS is not set
1515# CONFIG_SECURITY is not set 1560# CONFIG_SECURITY is not set
1516# CONFIG_SECURITYFS is not set 1561# CONFIG_SECURITYFS is not set
1517# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1562# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1563# CONFIG_DEFAULT_SECURITY_SMACK is not set
1564# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1565CONFIG_DEFAULT_SECURITY_DAC=y
1566CONFIG_DEFAULT_SECURITY=""
1518CONFIG_CRYPTO=y 1567CONFIG_CRYPTO=y
1519 1568
1520# 1569#
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig
index 27ff46c13a87..f4b00451dcee 100644
--- a/arch/sh/configs/r7785rp_defconfig
+++ b/arch/sh/configs/r7785rp_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:29:23 2009 4# Mon Jan 4 13:19:35 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
24CONFIG_SYS_SUPPORTS_PCI=y 25CONFIG_SYS_SUPPORTS_PCI=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
@@ -32,6 +33,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_IO_TRAPPED=y 35CONFIG_IO_TRAPPED=y
36CONFIG_DMA_NONCOHERENT=y
35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 37CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
36CONFIG_CONSTRUCTORS=y 38CONFIG_CONSTRUCTORS=y
37 39
@@ -67,6 +69,7 @@ CONFIG_AUDIT_TREE=y
67# 69#
68CONFIG_TREE_RCU=y 70CONFIG_TREE_RCU=y
69# CONFIG_TREE_PREEMPT_RCU is not set 71# CONFIG_TREE_PREEMPT_RCU is not set
72# CONFIG_TINY_RCU is not set
70CONFIG_RCU_TRACE=y 73CONFIG_RCU_TRACE=y
71CONFIG_RCU_FANOUT=32 74CONFIG_RCU_FANOUT=32
72# CONFIG_RCU_FANOUT_EXACT is not set 75# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -110,6 +114,7 @@ CONFIG_HAVE_PERF_EVENTS=y
110CONFIG_PERF_EVENTS=y 114CONFIG_PERF_EVENTS=y
111CONFIG_EVENT_PROFILE=y 115CONFIG_EVENT_PROFILE=y
112# CONFIG_PERF_COUNTERS is not set 116# CONFIG_PERF_COUNTERS is not set
117# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
113CONFIG_VM_EVENT_COUNTERS=y 118CONFIG_VM_EVENT_COUNTERS=y
114CONFIG_PCI_QUIRKS=y 119CONFIG_PCI_QUIRKS=y
115CONFIG_COMPAT_BRK=y 120CONFIG_COMPAT_BRK=y
@@ -126,6 +131,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
126CONFIG_HAVE_KPROBES=y 131CONFIG_HAVE_KPROBES=y
127CONFIG_HAVE_KRETPROBES=y 132CONFIG_HAVE_KRETPROBES=y
128CONFIG_HAVE_ARCH_TRACEHOOK=y 133CONFIG_HAVE_ARCH_TRACEHOOK=y
134CONFIG_HAVE_DMA_ATTRS=y
129CONFIG_HAVE_CLK=y 135CONFIG_HAVE_CLK=y
130CONFIG_HAVE_DMA_API_DEBUG=y 136CONFIG_HAVE_DMA_API_DEBUG=y
131 137
@@ -153,14 +159,41 @@ CONFIG_LBDAF=y
153# IO Schedulers 159# IO Schedulers
154# 160#
155CONFIG_IOSCHED_NOOP=y 161CONFIG_IOSCHED_NOOP=y
156# CONFIG_IOSCHED_AS is not set
157# CONFIG_IOSCHED_DEADLINE is not set 162# CONFIG_IOSCHED_DEADLINE is not set
158# CONFIG_IOSCHED_CFQ is not set 163# CONFIG_IOSCHED_CFQ is not set
159# CONFIG_DEFAULT_AS is not set
160# CONFIG_DEFAULT_DEADLINE is not set 164# CONFIG_DEFAULT_DEADLINE is not set
161# CONFIG_DEFAULT_CFQ is not set 165# CONFIG_DEFAULT_CFQ is not set
162CONFIG_DEFAULT_NOOP=y 166CONFIG_DEFAULT_NOOP=y
163CONFIG_DEFAULT_IOSCHED="noop" 167CONFIG_DEFAULT_IOSCHED="noop"
168# CONFIG_INLINE_SPIN_TRYLOCK is not set
169# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
170# CONFIG_INLINE_SPIN_LOCK is not set
171# CONFIG_INLINE_SPIN_LOCK_BH is not set
172# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
173# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
174# CONFIG_INLINE_SPIN_UNLOCK is not set
175# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
176# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
177# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
178# CONFIG_INLINE_READ_TRYLOCK is not set
179# CONFIG_INLINE_READ_LOCK is not set
180# CONFIG_INLINE_READ_LOCK_BH is not set
181# CONFIG_INLINE_READ_LOCK_IRQ is not set
182# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
183# CONFIG_INLINE_READ_UNLOCK is not set
184# CONFIG_INLINE_READ_UNLOCK_BH is not set
185# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
186# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
187# CONFIG_INLINE_WRITE_TRYLOCK is not set
188# CONFIG_INLINE_WRITE_LOCK is not set
189# CONFIG_INLINE_WRITE_LOCK_BH is not set
190# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
191# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
192# CONFIG_INLINE_WRITE_UNLOCK is not set
193# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
194# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
195# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
196# CONFIG_MUTEX_SPIN_ON_OWNER is not set
164# CONFIG_FREEZER is not set 197# CONFIG_FREEZER is not set
165 198
166# 199#
@@ -248,13 +281,11 @@ CONFIG_SPARSEMEM=y
248CONFIG_HAVE_MEMORY_PRESENT=y 281CONFIG_HAVE_MEMORY_PRESENT=y
249CONFIG_SPARSEMEM_STATIC=y 282CONFIG_SPARSEMEM_STATIC=y
250# CONFIG_MEMORY_HOTPLUG is not set 283# CONFIG_MEMORY_HOTPLUG is not set
251CONFIG_SPLIT_PTLOCK_CPUS=4 284CONFIG_SPLIT_PTLOCK_CPUS=999999
252CONFIG_MIGRATION=y 285CONFIG_MIGRATION=y
253# CONFIG_PHYS_ADDR_T_64BIT is not set 286# CONFIG_PHYS_ADDR_T_64BIT is not set
254CONFIG_ZONE_DMA_FLAG=0 287CONFIG_ZONE_DMA_FLAG=0
255CONFIG_NR_QUICK=2 288CONFIG_NR_QUICK=2
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
258# CONFIG_KSM is not set 289# CONFIG_KSM is not set
259CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 290CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
260 291
@@ -289,7 +320,6 @@ CONFIG_SH_R7785RP=y
289# Timer and clock configuration 320# Timer and clock configuration
290# 321#
291CONFIG_SH_TIMER_TMU=y 322CONFIG_SH_TIMER_TMU=y
292CONFIG_SH_PCLK_FREQ=33333333
293CONFIG_SH_CLK_CPG=y 323CONFIG_SH_CLK_CPG=y
294CONFIG_TICK_ONESHOT=y 324CONFIG_TICK_ONESHOT=y
295CONFIG_NO_HZ=y 325CONFIG_NO_HZ=y
@@ -363,7 +393,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
363# Bus options 393# Bus options
364# 394#
365CONFIG_PCI=y 395CONFIG_PCI=y
366CONFIG_SH_PCIDMA_NONCOHERENT=y
367# CONFIG_PCIEPORTBUS is not set 396# CONFIG_PCIEPORTBUS is not set
368# CONFIG_ARCH_SUPPORTS_MSI is not set 397# CONFIG_ARCH_SUPPORTS_MSI is not set
369# CONFIG_PCI_LEGACY is not set 398# CONFIG_PCI_LEGACY is not set
@@ -471,10 +500,6 @@ CONFIG_LLC=m
471# CONFIG_AF_RXRPC is not set 500# CONFIG_AF_RXRPC is not set
472CONFIG_WIRELESS=y 501CONFIG_WIRELESS=y
473# CONFIG_CFG80211 is not set 502# CONFIG_CFG80211 is not set
474CONFIG_CFG80211_DEFAULT_PS_VALUE=0
475# CONFIG_WIRELESS_OLD_REGULATORY is not set
476CONFIG_WIRELESS_EXT=y
477CONFIG_WIRELESS_EXT_SYSFS=y
478# CONFIG_LIB80211 is not set 503# CONFIG_LIB80211 is not set
479 504
480# 505#
@@ -510,6 +535,10 @@ CONFIG_BLK_DEV=y
510# CONFIG_BLK_DEV_UMEM is not set 535# CONFIG_BLK_DEV_UMEM is not set
511# CONFIG_BLK_DEV_COW_COMMON is not set 536# CONFIG_BLK_DEV_COW_COMMON is not set
512# CONFIG_BLK_DEV_LOOP is not set 537# CONFIG_BLK_DEV_LOOP is not set
538
539#
540# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
541#
513# CONFIG_BLK_DEV_NBD is not set 542# CONFIG_BLK_DEV_NBD is not set
514# CONFIG_BLK_DEV_SX8 is not set 543# CONFIG_BLK_DEV_SX8 is not set
515CONFIG_BLK_DEV_RAM=y 544CONFIG_BLK_DEV_RAM=y
@@ -520,6 +549,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
520# CONFIG_ATA_OVER_ETH is not set 549# CONFIG_ATA_OVER_ETH is not set
521# CONFIG_BLK_DEV_HD is not set 550# CONFIG_BLK_DEV_HD is not set
522CONFIG_MISC_DEVICES=y 551CONFIG_MISC_DEVICES=y
552# CONFIG_AD525X_DPOT is not set
523# CONFIG_PHANTOM is not set 553# CONFIG_PHANTOM is not set
524# CONFIG_SGI_IOC4 is not set 554# CONFIG_SGI_IOC4 is not set
525# CONFIG_TIFM_CORE is not set 555# CONFIG_TIFM_CORE is not set
@@ -527,6 +557,7 @@ CONFIG_MISC_DEVICES=y
527# CONFIG_ENCLOSURE_SERVICES is not set 557# CONFIG_ENCLOSURE_SERVICES is not set
528# CONFIG_HP_ILO is not set 558# CONFIG_HP_ILO is not set
529# CONFIG_ISL29003 is not set 559# CONFIG_ISL29003 is not set
560# CONFIG_DS1682 is not set
530# CONFIG_C2PORT is not set 561# CONFIG_C2PORT is not set
531 562
532# 563#
@@ -577,8 +608,11 @@ CONFIG_SCSI_LOWLEVEL=y
577# CONFIG_ISCSI_TCP is not set 608# CONFIG_ISCSI_TCP is not set
578# CONFIG_SCSI_CXGB3_ISCSI is not set 609# CONFIG_SCSI_CXGB3_ISCSI is not set
579# CONFIG_SCSI_BNX2_ISCSI is not set 610# CONFIG_SCSI_BNX2_ISCSI is not set
611# CONFIG_BE2ISCSI is not set
580# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 612# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
613# CONFIG_SCSI_HPSA is not set
581# CONFIG_SCSI_3W_9XXX is not set 614# CONFIG_SCSI_3W_9XXX is not set
615# CONFIG_SCSI_3W_SAS is not set
582# CONFIG_SCSI_ACARD is not set 616# CONFIG_SCSI_ACARD is not set
583# CONFIG_SCSI_AACRAID is not set 617# CONFIG_SCSI_AACRAID is not set
584# CONFIG_SCSI_AIC7XXX is not set 618# CONFIG_SCSI_AIC7XXX is not set
@@ -612,7 +646,9 @@ CONFIG_SCSI_LOWLEVEL=y
612# CONFIG_SCSI_NSP32 is not set 646# CONFIG_SCSI_NSP32 is not set
613# CONFIG_SCSI_DEBUG is not set 647# CONFIG_SCSI_DEBUG is not set
614# CONFIG_SCSI_PMCRAID is not set 648# CONFIG_SCSI_PMCRAID is not set
649# CONFIG_SCSI_PM8001 is not set
615# CONFIG_SCSI_SRP is not set 650# CONFIG_SCSI_SRP is not set
651# CONFIG_SCSI_BFA_FC is not set
616# CONFIG_SCSI_DH is not set 652# CONFIG_SCSI_DH is not set
617# CONFIG_SCSI_OSD_INITIATOR is not set 653# CONFIG_SCSI_OSD_INITIATOR is not set
618CONFIG_ATA=y 654CONFIG_ATA=y
@@ -665,15 +701,16 @@ CONFIG_SATA_SIL=y
665# CONFIG_PATA_NS87415 is not set 701# CONFIG_PATA_NS87415 is not set
666# CONFIG_PATA_OPTI is not set 702# CONFIG_PATA_OPTI is not set
667# CONFIG_PATA_OPTIDMA is not set 703# CONFIG_PATA_OPTIDMA is not set
704# CONFIG_PATA_PDC2027X is not set
668# CONFIG_PATA_PDC_OLD is not set 705# CONFIG_PATA_PDC_OLD is not set
669# CONFIG_PATA_RADISYS is not set 706# CONFIG_PATA_RADISYS is not set
670# CONFIG_PATA_RDC is not set 707# CONFIG_PATA_RDC is not set
671# CONFIG_PATA_RZ1000 is not set 708# CONFIG_PATA_RZ1000 is not set
672# CONFIG_PATA_SC1200 is not set 709# CONFIG_PATA_SC1200 is not set
673# CONFIG_PATA_SERVERWORKS is not set 710# CONFIG_PATA_SERVERWORKS is not set
674# CONFIG_PATA_PDC2027X is not set
675# CONFIG_PATA_SIL680 is not set 711# CONFIG_PATA_SIL680 is not set
676# CONFIG_PATA_SIS is not set 712# CONFIG_PATA_SIS is not set
713# CONFIG_PATA_TOSHIBA is not set
677# CONFIG_PATA_VIA is not set 714# CONFIG_PATA_VIA is not set
678# CONFIG_PATA_WINBOND is not set 715# CONFIG_PATA_WINBOND is not set
679CONFIG_PATA_PLATFORM=y 716CONFIG_PATA_PLATFORM=y
@@ -730,6 +767,7 @@ CONFIG_AX88796_93CX6=y
730# CONFIG_NET_PCI is not set 767# CONFIG_NET_PCI is not set
731# CONFIG_B44 is not set 768# CONFIG_B44 is not set
732# CONFIG_KS8842 is not set 769# CONFIG_KS8842 is not set
770# CONFIG_KS8851_MLL is not set
733# CONFIG_ATL2 is not set 771# CONFIG_ATL2 is not set
734CONFIG_NETDEV_1000=y 772CONFIG_NETDEV_1000=y
735# CONFIG_ACENIC is not set 773# CONFIG_ACENIC is not set
@@ -776,8 +814,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y
776# CONFIG_BE2NET is not set 814# CONFIG_BE2NET is not set
777# CONFIG_TR is not set 815# CONFIG_TR is not set
778CONFIG_WLAN=y 816CONFIG_WLAN=y
779# CONFIG_WLAN_PRE80211 is not set 817# CONFIG_ATMEL is not set
780# CONFIG_WLAN_80211 is not set 818# CONFIG_PRISM54 is not set
819# CONFIG_HOSTAP is not set
781 820
782# 821#
783# Enable WiMAX (Networking options) to see the WiMAX drivers 822# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -791,6 +830,7 @@ CONFIG_WLAN=y
791# CONFIG_NETCONSOLE is not set 830# CONFIG_NETCONSOLE is not set
792# CONFIG_NETPOLL is not set 831# CONFIG_NETPOLL is not set
793# CONFIG_NET_POLL_CONTROLLER is not set 832# CONFIG_NET_POLL_CONTROLLER is not set
833# CONFIG_VMXNET3 is not set
794# CONFIG_ISDN is not set 834# CONFIG_ISDN is not set
795# CONFIG_PHONE is not set 835# CONFIG_PHONE is not set
796 836
@@ -800,6 +840,7 @@ CONFIG_WLAN=y
800CONFIG_INPUT=y 840CONFIG_INPUT=y
801# CONFIG_INPUT_FF_MEMLESS is not set 841# CONFIG_INPUT_FF_MEMLESS is not set
802# CONFIG_INPUT_POLLDEV is not set 842# CONFIG_INPUT_POLLDEV is not set
843# CONFIG_INPUT_SPARSEKMAP is not set
803 844
804# 845#
805# Userland interfaces 846# Userland interfaces
@@ -844,6 +885,7 @@ CONFIG_SERIO=y
844# CONFIG_SERIO_PCIPS2 is not set 885# CONFIG_SERIO_PCIPS2 is not set
845CONFIG_SERIO_LIBPS2=y 886CONFIG_SERIO_LIBPS2=y
846# CONFIG_SERIO_RAW is not set 887# CONFIG_SERIO_RAW is not set
888# CONFIG_SERIO_ALTERA_PS2 is not set
847# CONFIG_GAMEPORT is not set 889# CONFIG_GAMEPORT is not set
848 890
849# 891#
@@ -925,11 +967,6 @@ CONFIG_I2C_HIGHLANDER=y
925# CONFIG_I2C_TAOS_EVM is not set 967# CONFIG_I2C_TAOS_EVM is not set
926 968
927# 969#
928# Graphics adapter I2C/DDC channel drivers
929#
930# CONFIG_I2C_VOODOO3 is not set
931
932#
933# Other I2C/SMBus bus drivers 970# Other I2C/SMBus bus drivers
934# 971#
935# CONFIG_I2C_PCA_PLATFORM is not set 972# CONFIG_I2C_PCA_PLATFORM is not set
@@ -938,7 +975,6 @@ CONFIG_I2C_HIGHLANDER=y
938# 975#
939# Miscellaneous I2C Chip support 976# Miscellaneous I2C Chip support
940# 977#
941# CONFIG_DS1682 is not set
942# CONFIG_SENSORS_TSL2550 is not set 978# CONFIG_SENSORS_TSL2550 is not set
943# CONFIG_I2C_DEBUG_CORE is not set 979# CONFIG_I2C_DEBUG_CORE is not set
944# CONFIG_I2C_DEBUG_ALGO is not set 980# CONFIG_I2C_DEBUG_ALGO is not set
@@ -969,6 +1005,7 @@ CONFIG_GPIOLIB=y
969# 1005#
970# PCI GPIO expanders: 1006# PCI GPIO expanders:
971# 1007#
1008# CONFIG_GPIO_CS5535 is not set
972# CONFIG_GPIO_BT8XX is not set 1009# CONFIG_GPIO_BT8XX is not set
973# CONFIG_GPIO_LANGWELL is not set 1010# CONFIG_GPIO_LANGWELL is not set
974 1011
@@ -1011,6 +1048,7 @@ CONFIG_HWMON=y
1011# CONFIG_SENSORS_GL520SM is not set 1048# CONFIG_SENSORS_GL520SM is not set
1012# CONFIG_SENSORS_IT87 is not set 1049# CONFIG_SENSORS_IT87 is not set
1013# CONFIG_SENSORS_LM63 is not set 1050# CONFIG_SENSORS_LM63 is not set
1051# CONFIG_SENSORS_LM73 is not set
1014# CONFIG_SENSORS_LM75 is not set 1052# CONFIG_SENSORS_LM75 is not set
1015# CONFIG_SENSORS_LM77 is not set 1053# CONFIG_SENSORS_LM77 is not set
1016# CONFIG_SENSORS_LM78 is not set 1054# CONFIG_SENSORS_LM78 is not set
@@ -1050,6 +1088,7 @@ CONFIG_HWMON=y
1050# CONFIG_SENSORS_W83L786NG is not set 1088# CONFIG_SENSORS_W83L786NG is not set
1051# CONFIG_SENSORS_W83627HF is not set 1089# CONFIG_SENSORS_W83627HF is not set
1052# CONFIG_SENSORS_W83627EHF is not set 1090# CONFIG_SENSORS_W83627EHF is not set
1091# CONFIG_SENSORS_LIS3_I2C is not set
1053# CONFIG_THERMAL is not set 1092# CONFIG_THERMAL is not set
1054# CONFIG_WATCHDOG is not set 1093# CONFIG_WATCHDOG is not set
1055CONFIG_SSB_POSSIBLE=y 1094CONFIG_SSB_POSSIBLE=y
@@ -1064,16 +1103,19 @@ CONFIG_SSB_POSSIBLE=y
1064# 1103#
1065# CONFIG_MFD_CORE is not set 1104# CONFIG_MFD_CORE is not set
1066# CONFIG_MFD_SM501 is not set 1105# CONFIG_MFD_SM501 is not set
1106# CONFIG_MFD_SH_MOBILE_SDHI is not set
1067# CONFIG_HTC_PASIC3 is not set 1107# CONFIG_HTC_PASIC3 is not set
1068# CONFIG_TPS65010 is not set 1108# CONFIG_TPS65010 is not set
1069# CONFIG_TWL4030_CORE is not set 1109# CONFIG_TWL4030_CORE is not set
1070# CONFIG_MFD_TMIO is not set 1110# CONFIG_MFD_TMIO is not set
1071# CONFIG_PMIC_DA903X is not set 1111# CONFIG_PMIC_DA903X is not set
1112# CONFIG_PMIC_ADP5520 is not set
1072# CONFIG_MFD_WM8400 is not set 1113# CONFIG_MFD_WM8400 is not set
1073# CONFIG_MFD_WM831X is not set 1114# CONFIG_MFD_WM831X is not set
1074# CONFIG_MFD_WM8350_I2C is not set 1115# CONFIG_MFD_WM8350_I2C is not set
1075# CONFIG_MFD_PCF50633 is not set 1116# CONFIG_MFD_PCF50633 is not set
1076# CONFIG_AB3100_CORE is not set 1117# CONFIG_AB3100_CORE is not set
1118# CONFIG_MFD_88PM8607 is not set
1077# CONFIG_REGULATOR is not set 1119# CONFIG_REGULATOR is not set
1078# CONFIG_MEDIA_SUPPORT is not set 1120# CONFIG_MEDIA_SUPPORT is not set
1079 1121
@@ -1211,6 +1253,7 @@ CONFIG_RTC_DRV_RS5C372=y
1211# CONFIG_RTC_DRV_PCF8563 is not set 1253# CONFIG_RTC_DRV_PCF8563 is not set
1212# CONFIG_RTC_DRV_PCF8583 is not set 1254# CONFIG_RTC_DRV_PCF8583 is not set
1213# CONFIG_RTC_DRV_M41T80 is not set 1255# CONFIG_RTC_DRV_M41T80 is not set
1256# CONFIG_RTC_DRV_BQ32K is not set
1214# CONFIG_RTC_DRV_S35390A is not set 1257# CONFIG_RTC_DRV_S35390A is not set
1215# CONFIG_RTC_DRV_FM3130 is not set 1258# CONFIG_RTC_DRV_FM3130 is not set
1216# CONFIG_RTC_DRV_RX8581 is not set 1259# CONFIG_RTC_DRV_RX8581 is not set
@@ -1231,7 +1274,9 @@ CONFIG_RTC_DRV_RS5C372=y
1231# CONFIG_RTC_DRV_M48T86 is not set 1274# CONFIG_RTC_DRV_M48T86 is not set
1232# CONFIG_RTC_DRV_M48T35 is not set 1275# CONFIG_RTC_DRV_M48T35 is not set
1233# CONFIG_RTC_DRV_M48T59 is not set 1276# CONFIG_RTC_DRV_M48T59 is not set
1277# CONFIG_RTC_DRV_MSM6242 is not set
1234# CONFIG_RTC_DRV_BQ4802 is not set 1278# CONFIG_RTC_DRV_BQ4802 is not set
1279# CONFIG_RTC_DRV_RP5C01 is not set
1235# CONFIG_RTC_DRV_V3020 is not set 1280# CONFIG_RTC_DRV_V3020 is not set
1236 1281
1237# 1282#
@@ -1463,6 +1508,7 @@ CONFIG_FRAME_POINTER=y
1463# CONFIG_LKDTM is not set 1508# CONFIG_LKDTM is not set
1464# CONFIG_FAULT_INJECTION is not set 1509# CONFIG_FAULT_INJECTION is not set
1465# CONFIG_LATENCYTOP is not set 1510# CONFIG_LATENCYTOP is not set
1511# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1466# CONFIG_PAGE_POISONING is not set 1512# CONFIG_PAGE_POISONING is not set
1467CONFIG_NOP_TRACER=y 1513CONFIG_NOP_TRACER=y
1468CONFIG_HAVE_FUNCTION_TRACER=y 1514CONFIG_HAVE_FUNCTION_TRACER=y
@@ -1499,8 +1545,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1499CONFIG_HAVE_ARCH_KGDB=y 1545CONFIG_HAVE_ARCH_KGDB=y
1500# CONFIG_KGDB is not set 1546# CONFIG_KGDB is not set
1501CONFIG_SH_STANDARD_BIOS=y 1547CONFIG_SH_STANDARD_BIOS=y
1502# CONFIG_EARLY_SCIF_CONSOLE is not set
1503CONFIG_EARLY_PRINTK=y
1504# CONFIG_STACK_DEBUG is not set 1548# CONFIG_STACK_DEBUG is not set
1505CONFIG_DEBUG_STACK_USAGE=y 1549CONFIG_DEBUG_STACK_USAGE=y
1506CONFIG_4KSTACKS=y 1550CONFIG_4KSTACKS=y
@@ -1514,7 +1558,11 @@ CONFIG_DUMP_CODE=y
1514# CONFIG_KEYS is not set 1558# CONFIG_KEYS is not set
1515# CONFIG_SECURITY is not set 1559# CONFIG_SECURITY is not set
1516# CONFIG_SECURITYFS is not set 1560# CONFIG_SECURITYFS is not set
1517# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1561# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1562# CONFIG_DEFAULT_SECURITY_SMACK is not set
1563# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1564CONFIG_DEFAULT_SECURITY_DAC=y
1565CONFIG_DEFAULT_SECURITY=""
1518CONFIG_CRYPTO=y 1566CONFIG_CRYPTO=y
1519 1567
1520# 1568#
diff --git a/arch/sh/configs/rsk7201_defconfig b/arch/sh/configs/rsk7201_defconfig
index c40db12e9ad7..2fc635a5a8c5 100644
--- a/arch/sh/configs/rsk7201_defconfig
+++ b/arch/sh/configs/rsk7201_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:34:29 2009 4# Mon Jan 4 13:23:12 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 29CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 30CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 34CONFIG_CONSTRUCTORS=y
34 35
@@ -56,6 +57,7 @@ CONFIG_BSD_PROCESS_ACCT=y
56# 57#
57CONFIG_TREE_RCU=y 58CONFIG_TREE_RCU=y
58# CONFIG_TREE_PREEMPT_RCU is not set 59# CONFIG_TREE_PREEMPT_RCU is not set
60# CONFIG_TINY_RCU is not set
59# CONFIG_RCU_TRACE is not set 61# CONFIG_RCU_TRACE is not set
60CONFIG_RCU_FANOUT=32 62CONFIG_RCU_FANOUT=32
61# CONFIG_RCU_FANOUT_EXACT is not set 63# CONFIG_RCU_FANOUT_EXACT is not set
@@ -97,6 +99,7 @@ CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 99CONFIG_EVENTFD=y
98# CONFIG_AIO is not set 100# CONFIG_AIO is not set
99CONFIG_HAVE_PERF_EVENTS=y 101CONFIG_HAVE_PERF_EVENTS=y
102CONFIG_PERF_USE_VMALLOC=y
100 103
101# 104#
102# Kernel Performance Events And Counters 105# Kernel Performance Events And Counters
@@ -109,6 +112,7 @@ CONFIG_COMPAT_BRK=y
109# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
110# CONFIG_SLUB is not set 113# CONFIG_SLUB is not set
111CONFIG_SLOB=y 114CONFIG_SLOB=y
115# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
112CONFIG_PROFILING=y 116CONFIG_PROFILING=y
113CONFIG_TRACEPOINTS=y 117CONFIG_TRACEPOINTS=y
114CONFIG_OPROFILE=y 118CONFIG_OPROFILE=y
@@ -117,6 +121,7 @@ CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
120CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
121CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
122 127
@@ -142,14 +147,41 @@ CONFIG_LBDAF=y
142# IO Schedulers 147# IO Schedulers
143# 148#
144CONFIG_IOSCHED_NOOP=y 149CONFIG_IOSCHED_NOOP=y
145# CONFIG_IOSCHED_AS is not set
146# CONFIG_IOSCHED_DEADLINE is not set 150# CONFIG_IOSCHED_DEADLINE is not set
147# CONFIG_IOSCHED_CFQ is not set 151# CONFIG_IOSCHED_CFQ is not set
148# CONFIG_DEFAULT_AS is not set
149# CONFIG_DEFAULT_DEADLINE is not set 152# CONFIG_DEFAULT_DEADLINE is not set
150# CONFIG_DEFAULT_CFQ is not set 153# CONFIG_DEFAULT_CFQ is not set
151CONFIG_DEFAULT_NOOP=y 154CONFIG_DEFAULT_NOOP=y
152CONFIG_DEFAULT_IOSCHED="noop" 155CONFIG_DEFAULT_IOSCHED="noop"
156# CONFIG_INLINE_SPIN_TRYLOCK is not set
157# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
158# CONFIG_INLINE_SPIN_LOCK is not set
159# CONFIG_INLINE_SPIN_LOCK_BH is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
162CONFIG_INLINE_SPIN_UNLOCK=y
163# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
164CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
165# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
166# CONFIG_INLINE_READ_TRYLOCK is not set
167# CONFIG_INLINE_READ_LOCK is not set
168# CONFIG_INLINE_READ_LOCK_BH is not set
169# CONFIG_INLINE_READ_LOCK_IRQ is not set
170# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
171CONFIG_INLINE_READ_UNLOCK=y
172# CONFIG_INLINE_READ_UNLOCK_BH is not set
173CONFIG_INLINE_READ_UNLOCK_IRQ=y
174# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
175# CONFIG_INLINE_WRITE_TRYLOCK is not set
176# CONFIG_INLINE_WRITE_LOCK is not set
177# CONFIG_INLINE_WRITE_LOCK_BH is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
180CONFIG_INLINE_WRITE_UNLOCK=y
181# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
182CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
183# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
184# CONFIG_MUTEX_SPIN_ON_OWNER is not set
153# CONFIG_FREEZER is not set 185# CONFIG_FREEZER is not set
154 186
155# 187#
@@ -224,7 +256,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
224# CONFIG_PHYS_ADDR_T_64BIT is not set 256# CONFIG_PHYS_ADDR_T_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=0 257CONFIG_ZONE_DMA_FLAG=0
226CONFIG_NR_QUICK=2 258CONFIG_NR_QUICK=2
227CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
228CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 259CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
229 260
230# 261#
@@ -433,6 +464,10 @@ CONFIG_MTD_PHYSMAP=y
433CONFIG_BLK_DEV=y 464CONFIG_BLK_DEV=y
434# CONFIG_BLK_DEV_COW_COMMON is not set 465# CONFIG_BLK_DEV_COW_COMMON is not set
435# CONFIG_BLK_DEV_LOOP is not set 466# CONFIG_BLK_DEV_LOOP is not set
467
468#
469# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
470#
436# CONFIG_BLK_DEV_RAM is not set 471# CONFIG_BLK_DEV_RAM is not set
437# CONFIG_CDROM_PKTCDVD is not set 472# CONFIG_CDROM_PKTCDVD is not set
438# CONFIG_BLK_DEV_HD is not set 473# CONFIG_BLK_DEV_HD is not set
@@ -464,6 +499,7 @@ CONFIG_HAVE_IDE=y
464CONFIG_INPUT=y 499CONFIG_INPUT=y
465# CONFIG_INPUT_FF_MEMLESS is not set 500# CONFIG_INPUT_FF_MEMLESS is not set
466# CONFIG_INPUT_POLLDEV is not set 501# CONFIG_INPUT_POLLDEV is not set
502# CONFIG_INPUT_SPARSEKMAP is not set
467 503
468# 504#
469# Userland interfaces 505# Userland interfaces
@@ -540,6 +576,7 @@ CONFIG_SSB_POSSIBLE=y
540# 576#
541# CONFIG_MFD_CORE is not set 577# CONFIG_MFD_CORE is not set
542# CONFIG_MFD_SM501 is not set 578# CONFIG_MFD_SM501 is not set
579# CONFIG_MFD_SH_MOBILE_SDHI is not set
543# CONFIG_HTC_PASIC3 is not set 580# CONFIG_HTC_PASIC3 is not set
544# CONFIG_MFD_TMIO is not set 581# CONFIG_MFD_TMIO is not set
545# CONFIG_REGULATOR is not set 582# CONFIG_REGULATOR is not set
@@ -594,7 +631,9 @@ CONFIG_RTC_INTF_DEV=y
594# CONFIG_RTC_DRV_M48T86 is not set 631# CONFIG_RTC_DRV_M48T86 is not set
595# CONFIG_RTC_DRV_M48T35 is not set 632# CONFIG_RTC_DRV_M48T35 is not set
596# CONFIG_RTC_DRV_M48T59 is not set 633# CONFIG_RTC_DRV_M48T59 is not set
634# CONFIG_RTC_DRV_MSM6242 is not set
597# CONFIG_RTC_DRV_BQ4802 is not set 635# CONFIG_RTC_DRV_BQ4802 is not set
636# CONFIG_RTC_DRV_RP5C01 is not set
598# CONFIG_RTC_DRV_V3020 is not set 637# CONFIG_RTC_DRV_V3020 is not set
599 638
600# 639#
@@ -618,6 +657,7 @@ CONFIG_EXT2_FS=y
618# CONFIG_EXT2_FS_XATTR is not set 657# CONFIG_EXT2_FS_XATTR is not set
619# CONFIG_EXT3_FS is not set 658# CONFIG_EXT3_FS is not set
620# CONFIG_EXT4_FS is not set 659# CONFIG_EXT4_FS is not set
660CONFIG_EXT4_USE_FOR_EXT23=y
621# CONFIG_REISERFS_FS is not set 661# CONFIG_REISERFS_FS is not set
622# CONFIG_JFS_FS is not set 662# CONFIG_JFS_FS is not set
623# CONFIG_FS_POSIX_ACL is not set 663# CONFIG_FS_POSIX_ACL is not set
@@ -717,7 +757,7 @@ CONFIG_DEBUG_FS=y
717# CONFIG_HEADERS_CHECK is not set 757# CONFIG_HEADERS_CHECK is not set
718# CONFIG_DEBUG_KERNEL is not set 758# CONFIG_DEBUG_KERNEL is not set
719CONFIG_STACKTRACE=y 759CONFIG_STACKTRACE=y
720# CONFIG_DEBUG_BUGVERBOSE is not set 760CONFIG_DEBUG_BUGVERBOSE=y
721# CONFIG_DEBUG_MEMORY_INIT is not set 761# CONFIG_DEBUG_MEMORY_INIT is not set
722# CONFIG_RCU_CPU_STALL_DETECTOR is not set 762# CONFIG_RCU_CPU_STALL_DETECTOR is not set
723# CONFIG_LATENCYTOP is not set 763# CONFIG_LATENCYTOP is not set
@@ -741,7 +781,6 @@ CONFIG_TRACING_SUPPORT=y
741# CONFIG_SAMPLES is not set 781# CONFIG_SAMPLES is not set
742CONFIG_HAVE_ARCH_KGDB=y 782CONFIG_HAVE_ARCH_KGDB=y
743# CONFIG_SH_STANDARD_BIOS is not set 783# CONFIG_SH_STANDARD_BIOS is not set
744# CONFIG_EARLY_SCIF_CONSOLE is not set
745# CONFIG_DWARF_UNWINDER is not set 784# CONFIG_DWARF_UNWINDER is not set
746 785
747# 786#
@@ -750,7 +789,11 @@ CONFIG_HAVE_ARCH_KGDB=y
750# CONFIG_KEYS is not set 789# CONFIG_KEYS is not set
751# CONFIG_SECURITY is not set 790# CONFIG_SECURITY is not set
752# CONFIG_SECURITYFS is not set 791# CONFIG_SECURITYFS is not set
753# CONFIG_SECURITY_FILE_CAPABILITIES is not set 792# CONFIG_DEFAULT_SECURITY_SELINUX is not set
793# CONFIG_DEFAULT_SECURITY_SMACK is not set
794# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
795CONFIG_DEFAULT_SECURITY_DAC=y
796CONFIG_DEFAULT_SECURITY=""
754# CONFIG_CRYPTO is not set 797# CONFIG_CRYPTO is not set
755CONFIG_BINARY_PRINTF=y 798CONFIG_BINARY_PRINTF=y
756 799
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig
index 5cabdb3a84fb..0169e60e0947 100644
--- a/arch/sh/configs/rsk7203_defconfig
+++ b/arch/sh/configs/rsk7203_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:35:04 2009 4# Mon Jan 4 13:23:54 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
35 36
@@ -61,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y
61# 62#
62CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -104,6 +106,7 @@ CONFIG_TIMERFD=y
104CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
105CONFIG_AIO=y 107CONFIG_AIO=y
106CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
107 110
108# 111#
109# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -111,11 +114,13 @@ CONFIG_HAVE_PERF_EVENTS=y
111CONFIG_PERF_EVENTS=y 114CONFIG_PERF_EVENTS=y
112CONFIG_EVENT_PROFILE=y 115CONFIG_EVENT_PROFILE=y
113# CONFIG_PERF_COUNTERS is not set 116# CONFIG_PERF_COUNTERS is not set
117# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
114CONFIG_VM_EVENT_COUNTERS=y 118CONFIG_VM_EVENT_COUNTERS=y
115CONFIG_COMPAT_BRK=y 119CONFIG_COMPAT_BRK=y
116# CONFIG_SLAB is not set 120# CONFIG_SLAB is not set
117# CONFIG_SLUB is not set 121# CONFIG_SLUB is not set
118CONFIG_SLOB=y 122CONFIG_SLOB=y
123# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
119CONFIG_PROFILING=y 124CONFIG_PROFILING=y
120CONFIG_TRACEPOINTS=y 125CONFIG_TRACEPOINTS=y
121CONFIG_OPROFILE=y 126CONFIG_OPROFILE=y
@@ -124,6 +129,7 @@ CONFIG_HAVE_OPROFILE=y
124CONFIG_HAVE_KPROBES=y 129CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 130CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 131CONFIG_HAVE_ARCH_TRACEHOOK=y
132CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_HAVE_CLK=y 133CONFIG_HAVE_CLK=y
128CONFIG_HAVE_DMA_API_DEBUG=y 134CONFIG_HAVE_DMA_API_DEBUG=y
129 135
@@ -149,14 +155,41 @@ CONFIG_LBDAF=y
149# IO Schedulers 155# IO Schedulers
150# 156#
151CONFIG_IOSCHED_NOOP=y 157CONFIG_IOSCHED_NOOP=y
152# CONFIG_IOSCHED_AS is not set
153# CONFIG_IOSCHED_DEADLINE is not set 158# CONFIG_IOSCHED_DEADLINE is not set
154# CONFIG_IOSCHED_CFQ is not set 159# CONFIG_IOSCHED_CFQ is not set
155# CONFIG_DEFAULT_AS is not set
156# CONFIG_DEFAULT_DEADLINE is not set 160# CONFIG_DEFAULT_DEADLINE is not set
157# CONFIG_DEFAULT_CFQ is not set 161# CONFIG_DEFAULT_CFQ is not set
158CONFIG_DEFAULT_NOOP=y 162CONFIG_DEFAULT_NOOP=y
159CONFIG_DEFAULT_IOSCHED="noop" 163CONFIG_DEFAULT_IOSCHED="noop"
164# CONFIG_INLINE_SPIN_TRYLOCK is not set
165# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
166# CONFIG_INLINE_SPIN_LOCK is not set
167# CONFIG_INLINE_SPIN_LOCK_BH is not set
168# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
169# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
170CONFIG_INLINE_SPIN_UNLOCK=y
171# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
172CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
173# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
174# CONFIG_INLINE_READ_TRYLOCK is not set
175# CONFIG_INLINE_READ_LOCK is not set
176# CONFIG_INLINE_READ_LOCK_BH is not set
177# CONFIG_INLINE_READ_LOCK_IRQ is not set
178# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
179CONFIG_INLINE_READ_UNLOCK=y
180# CONFIG_INLINE_READ_UNLOCK_BH is not set
181CONFIG_INLINE_READ_UNLOCK_IRQ=y
182# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
183# CONFIG_INLINE_WRITE_TRYLOCK is not set
184# CONFIG_INLINE_WRITE_LOCK is not set
185# CONFIG_INLINE_WRITE_LOCK_BH is not set
186# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
187# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
188CONFIG_INLINE_WRITE_UNLOCK=y
189# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
190CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
191# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
192# CONFIG_MUTEX_SPIN_ON_OWNER is not set
160# CONFIG_FREEZER is not set 193# CONFIG_FREEZER is not set
161 194
162# 195#
@@ -231,7 +264,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
231# CONFIG_PHYS_ADDR_T_64BIT is not set 264# CONFIG_PHYS_ADDR_T_64BIT is not set
232CONFIG_ZONE_DMA_FLAG=0 265CONFIG_ZONE_DMA_FLAG=0
233CONFIG_NR_QUICK=2 266CONFIG_NR_QUICK=2
234CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
235CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 267CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
236 268
237# 269#
@@ -424,9 +456,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
424# CONFIG_AF_RXRPC is not set 456# CONFIG_AF_RXRPC is not set
425CONFIG_WIRELESS=y 457CONFIG_WIRELESS=y
426# CONFIG_CFG80211 is not set 458# CONFIG_CFG80211 is not set
427CONFIG_CFG80211_DEFAULT_PS_VALUE=0
428# CONFIG_WIRELESS_OLD_REGULATORY is not set
429# CONFIG_WIRELESS_EXT is not set
430# CONFIG_LIB80211 is not set 459# CONFIG_LIB80211 is not set
431 460
432# 461#
@@ -539,6 +568,10 @@ CONFIG_MTD_PHYSMAP=y
539CONFIG_BLK_DEV=y 568CONFIG_BLK_DEV=y
540# CONFIG_BLK_DEV_COW_COMMON is not set 569# CONFIG_BLK_DEV_COW_COMMON is not set
541# CONFIG_BLK_DEV_LOOP is not set 570# CONFIG_BLK_DEV_LOOP is not set
571
572#
573# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
574#
542# CONFIG_BLK_DEV_NBD is not set 575# CONFIG_BLK_DEV_NBD is not set
543# CONFIG_BLK_DEV_UB is not set 576# CONFIG_BLK_DEV_UB is not set
544# CONFIG_BLK_DEV_RAM is not set 577# CONFIG_BLK_DEV_RAM is not set
@@ -610,11 +643,12 @@ CONFIG_SMSC911X=y
610# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 643# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
611# CONFIG_B44 is not set 644# CONFIG_B44 is not set
612# CONFIG_KS8842 is not set 645# CONFIG_KS8842 is not set
646# CONFIG_KS8851_MLL is not set
613# CONFIG_NETDEV_1000 is not set 647# CONFIG_NETDEV_1000 is not set
614# CONFIG_NETDEV_10000 is not set 648# CONFIG_NETDEV_10000 is not set
615CONFIG_WLAN=y 649CONFIG_WLAN=y
616# CONFIG_WLAN_PRE80211 is not set 650# CONFIG_USB_ZD1201 is not set
617# CONFIG_WLAN_80211 is not set 651# CONFIG_HOSTAP is not set
618 652
619# 653#
620# Enable WiMAX (Networking options) to see the WiMAX drivers 654# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -643,6 +677,7 @@ CONFIG_WLAN=y
643CONFIG_INPUT=y 677CONFIG_INPUT=y
644CONFIG_INPUT_FF_MEMLESS=m 678CONFIG_INPUT_FF_MEMLESS=m
645# CONFIG_INPUT_POLLDEV is not set 679# CONFIG_INPUT_POLLDEV is not set
680# CONFIG_INPUT_SPARSEKMAP is not set
646 681
647# 682#
648# Userland interfaces 683# Userland interfaces
@@ -743,6 +778,7 @@ CONFIG_SSB_POSSIBLE=y
743# 778#
744# CONFIG_MFD_CORE is not set 779# CONFIG_MFD_CORE is not set
745# CONFIG_MFD_SM501 is not set 780# CONFIG_MFD_SM501 is not set
781# CONFIG_MFD_SH_MOBILE_SDHI is not set
746# CONFIG_HTC_PASIC3 is not set 782# CONFIG_HTC_PASIC3 is not set
747# CONFIG_MFD_TMIO is not set 783# CONFIG_MFD_TMIO is not set
748CONFIG_REGULATOR=y 784CONFIG_REGULATOR=y
@@ -910,6 +946,8 @@ CONFIG_LEDS_CLASS=y
910# 946#
911CONFIG_LEDS_GPIO=y 947CONFIG_LEDS_GPIO=y
912CONFIG_LEDS_GPIO_PLATFORM=y 948CONFIG_LEDS_GPIO_PLATFORM=y
949# CONFIG_LEDS_REGULATOR is not set
950# CONFIG_LEDS_LT3593 is not set
913 951
914# 952#
915# LED Triggers 953# LED Triggers
@@ -955,7 +993,9 @@ CONFIG_RTC_INTF_DEV=y
955# CONFIG_RTC_DRV_M48T86 is not set 993# CONFIG_RTC_DRV_M48T86 is not set
956# CONFIG_RTC_DRV_M48T35 is not set 994# CONFIG_RTC_DRV_M48T35 is not set
957# CONFIG_RTC_DRV_M48T59 is not set 995# CONFIG_RTC_DRV_M48T59 is not set
996# CONFIG_RTC_DRV_MSM6242 is not set
958# CONFIG_RTC_DRV_BQ4802 is not set 997# CONFIG_RTC_DRV_BQ4802 is not set
998# CONFIG_RTC_DRV_RP5C01 is not set
959# CONFIG_RTC_DRV_V3020 is not set 999# CONFIG_RTC_DRV_V3020 is not set
960 1000
961# 1001#
@@ -978,6 +1018,7 @@ CONFIG_RTC_DRV_SH=y
978# CONFIG_EXT2_FS is not set 1018# CONFIG_EXT2_FS is not set
979# CONFIG_EXT3_FS is not set 1019# CONFIG_EXT3_FS is not set
980# CONFIG_EXT4_FS is not set 1020# CONFIG_EXT4_FS is not set
1021CONFIG_EXT4_USE_FOR_EXT23=y
981# CONFIG_REISERFS_FS is not set 1022# CONFIG_REISERFS_FS is not set
982# CONFIG_JFS_FS is not set 1023# CONFIG_JFS_FS is not set
983# CONFIG_FS_POSIX_ACL is not set 1024# CONFIG_FS_POSIX_ACL is not set
@@ -1137,6 +1178,7 @@ CONFIG_DEBUG_OBJECTS=y
1137# CONFIG_DEBUG_OBJECTS_SELFTEST is not set 1178# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
1138# CONFIG_DEBUG_OBJECTS_FREE is not set 1179# CONFIG_DEBUG_OBJECTS_FREE is not set
1139# CONFIG_DEBUG_OBJECTS_TIMERS is not set 1180# CONFIG_DEBUG_OBJECTS_TIMERS is not set
1181# CONFIG_DEBUG_OBJECTS_WORK is not set
1140CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 1182CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
1141# CONFIG_DEBUG_RT_MUTEXES is not set 1183# CONFIG_DEBUG_RT_MUTEXES is not set
1142# CONFIG_RT_MUTEX_TESTER is not set 1184# CONFIG_RT_MUTEX_TESTER is not set
@@ -1203,9 +1245,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1203CONFIG_HAVE_ARCH_KGDB=y 1245CONFIG_HAVE_ARCH_KGDB=y
1204# CONFIG_KGDB is not set 1246# CONFIG_KGDB is not set
1205# CONFIG_SH_STANDARD_BIOS is not set 1247# CONFIG_SH_STANDARD_BIOS is not set
1206CONFIG_EARLY_SCIF_CONSOLE=y
1207CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000
1208CONFIG_EARLY_PRINTK=y
1209# CONFIG_STACK_DEBUG is not set 1248# CONFIG_STACK_DEBUG is not set
1210CONFIG_DEBUG_STACK_USAGE=y 1249CONFIG_DEBUG_STACK_USAGE=y
1211CONFIG_DUMP_CODE=y 1250CONFIG_DUMP_CODE=y
@@ -1218,7 +1257,11 @@ CONFIG_DUMP_CODE=y
1218# CONFIG_KEYS is not set 1257# CONFIG_KEYS is not set
1219# CONFIG_SECURITY is not set 1258# CONFIG_SECURITY is not set
1220# CONFIG_SECURITYFS is not set 1259# CONFIG_SECURITYFS is not set
1221# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1260# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1261# CONFIG_DEFAULT_SECURITY_SMACK is not set
1262# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1263CONFIG_DEFAULT_SECURITY_DAC=y
1264CONFIG_DEFAULT_SECURITY=""
1222# CONFIG_CRYPTO is not set 1265# CONFIG_CRYPTO is not set
1223CONFIG_BINARY_PRINTF=y 1266CONFIG_BINARY_PRINTF=y
1224 1267
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig
index 6f1126b3e487..fba1f62d56e7 100644
--- a/arch/sh/configs/rts7751r2d1_defconfig
+++ b/arch/sh/configs/rts7751r2d1_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:36:25 2009 4# Mon Jan 4 13:25:36 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -31,6 +32,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_IO_TRAPPED=y 34CONFIG_IO_TRAPPED=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -61,6 +63,7 @@ CONFIG_SYSVIPC_SYSCTL=y
61# 63#
62CONFIG_TREE_RCU=y 64CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
66# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 67# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 68CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 69# CONFIG_RCU_FANOUT_EXACT is not set
@@ -95,6 +98,7 @@ CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 98CONFIG_SHMEM=y
96CONFIG_AIO=y 99CONFIG_AIO=y
97CONFIG_HAVE_PERF_EVENTS=y 100CONFIG_HAVE_PERF_EVENTS=y
101CONFIG_PERF_USE_VMALLOC=y
98 102
99# 103#
100# Kernel Performance Events And Counters 104# Kernel Performance Events And Counters
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
120CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
121CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
122 127
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y
143# IO Schedulers 148# IO Schedulers
144# 149#
145CONFIG_IOSCHED_NOOP=y 150CONFIG_IOSCHED_NOOP=y
146CONFIG_IOSCHED_AS=y
147CONFIG_IOSCHED_DEADLINE=y 151CONFIG_IOSCHED_DEADLINE=y
148CONFIG_IOSCHED_CFQ=y 152CONFIG_IOSCHED_CFQ=y
149CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_DEADLINE is not set 153# CONFIG_DEFAULT_DEADLINE is not set
151# CONFIG_DEFAULT_CFQ is not set 154CONFIG_DEFAULT_CFQ=y
152# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="cfq"
157# CONFIG_INLINE_SPIN_TRYLOCK is not set
158# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK is not set
160# CONFIG_INLINE_SPIN_LOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
162# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
163CONFIG_INLINE_SPIN_UNLOCK=y
164# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
165CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
166# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
167# CONFIG_INLINE_READ_TRYLOCK is not set
168# CONFIG_INLINE_READ_LOCK is not set
169# CONFIG_INLINE_READ_LOCK_BH is not set
170# CONFIG_INLINE_READ_LOCK_IRQ is not set
171# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
172CONFIG_INLINE_READ_UNLOCK=y
173# CONFIG_INLINE_READ_UNLOCK_BH is not set
174CONFIG_INLINE_READ_UNLOCK_IRQ=y
175# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
176# CONFIG_INLINE_WRITE_TRYLOCK is not set
177# CONFIG_INLINE_WRITE_LOCK is not set
178# CONFIG_INLINE_WRITE_LOCK_BH is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
180# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
181CONFIG_INLINE_WRITE_UNLOCK=y
182# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
183CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
184# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
185# CONFIG_MUTEX_SPIN_ON_OWNER is not set
154# CONFIG_FREEZER is not set 186# CONFIG_FREEZER is not set
155 187
156# 188#
@@ -226,8 +258,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
226# CONFIG_PHYS_ADDR_T_64BIT is not set 258# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=0 259CONFIG_ZONE_DMA_FLAG=0
228CONFIG_NR_QUICK=2 260CONFIG_NR_QUICK=2
229CONFIG_HAVE_MLOCK=y
230CONFIG_HAVE_MLOCKED_PAGE_BIT=y
231# CONFIG_KSM is not set 261# CONFIG_KSM is not set
232CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 262CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
233 263
@@ -321,7 +351,6 @@ CONFIG_GUSA=y
321CONFIG_ZERO_PAGE_OFFSET=0x00010000 351CONFIG_ZERO_PAGE_OFFSET=0x00010000
322CONFIG_BOOT_LINK_OFFSET=0x00800000 352CONFIG_BOOT_LINK_OFFSET=0x00800000
323CONFIG_ENTRY_OFFSET=0x00001000 353CONFIG_ENTRY_OFFSET=0x00001000
324# CONFIG_UBC_WAKEUP is not set
325CONFIG_CMDLINE_OVERWRITE=y 354CONFIG_CMDLINE_OVERWRITE=y
326# CONFIG_CMDLINE_EXTEND is not set 355# CONFIG_CMDLINE_EXTEND is not set
327CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" 356CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1"
@@ -330,7 +359,6 @@ CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1"
330# Bus options 359# Bus options
331# 360#
332CONFIG_PCI=y 361CONFIG_PCI=y
333CONFIG_SH_PCIDMA_NONCOHERENT=y
334# CONFIG_PCIEPORTBUS is not set 362# CONFIG_PCIEPORTBUS is not set
335# CONFIG_ARCH_SUPPORTS_MSI is not set 363# CONFIG_ARCH_SUPPORTS_MSI is not set
336CONFIG_PCI_LEGACY=y 364CONFIG_PCI_LEGACY=y
@@ -429,10 +457,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
429# CONFIG_AF_RXRPC is not set 457# CONFIG_AF_RXRPC is not set
430CONFIG_WIRELESS=y 458CONFIG_WIRELESS=y
431# CONFIG_CFG80211 is not set 459# CONFIG_CFG80211 is not set
432CONFIG_CFG80211_DEFAULT_PS_VALUE=0
433# CONFIG_WIRELESS_OLD_REGULATORY is not set
434CONFIG_WIRELESS_EXT=y
435CONFIG_WIRELESS_EXT_SYSFS=y
436# CONFIG_LIB80211 is not set 460# CONFIG_LIB80211 is not set
437 461
438# 462#
@@ -466,6 +490,10 @@ CONFIG_BLK_DEV=y
466# CONFIG_BLK_DEV_UMEM is not set 490# CONFIG_BLK_DEV_UMEM is not set
467# CONFIG_BLK_DEV_COW_COMMON is not set 491# CONFIG_BLK_DEV_COW_COMMON is not set
468# CONFIG_BLK_DEV_LOOP is not set 492# CONFIG_BLK_DEV_LOOP is not set
493
494#
495# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
496#
469# CONFIG_BLK_DEV_NBD is not set 497# CONFIG_BLK_DEV_NBD is not set
470# CONFIG_BLK_DEV_SX8 is not set 498# CONFIG_BLK_DEV_SX8 is not set
471# CONFIG_BLK_DEV_UB is not set 499# CONFIG_BLK_DEV_UB is not set
@@ -482,6 +510,7 @@ CONFIG_MISC_DEVICES=y
482# CONFIG_TIFM_CORE is not set 510# CONFIG_TIFM_CORE is not set
483# CONFIG_ENCLOSURE_SERVICES is not set 511# CONFIG_ENCLOSURE_SERVICES is not set
484# CONFIG_HP_ILO is not set 512# CONFIG_HP_ILO is not set
513# CONFIG_TI_DAC7512 is not set
485# CONFIG_C2PORT is not set 514# CONFIG_C2PORT is not set
486 515
487# 516#
@@ -530,8 +559,11 @@ CONFIG_SCSI_LOWLEVEL=y
530# CONFIG_ISCSI_TCP is not set 559# CONFIG_ISCSI_TCP is not set
531# CONFIG_SCSI_CXGB3_ISCSI is not set 560# CONFIG_SCSI_CXGB3_ISCSI is not set
532# CONFIG_SCSI_BNX2_ISCSI is not set 561# CONFIG_SCSI_BNX2_ISCSI is not set
562# CONFIG_BE2ISCSI is not set
533# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 563# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
564# CONFIG_SCSI_HPSA is not set
534# CONFIG_SCSI_3W_9XXX is not set 565# CONFIG_SCSI_3W_9XXX is not set
566# CONFIG_SCSI_3W_SAS is not set
535# CONFIG_SCSI_ACARD is not set 567# CONFIG_SCSI_ACARD is not set
536# CONFIG_SCSI_AACRAID is not set 568# CONFIG_SCSI_AACRAID is not set
537# CONFIG_SCSI_AIC7XXX is not set 569# CONFIG_SCSI_AIC7XXX is not set
@@ -565,7 +597,9 @@ CONFIG_SCSI_LOWLEVEL=y
565# CONFIG_SCSI_NSP32 is not set 597# CONFIG_SCSI_NSP32 is not set
566# CONFIG_SCSI_DEBUG is not set 598# CONFIG_SCSI_DEBUG is not set
567# CONFIG_SCSI_PMCRAID is not set 599# CONFIG_SCSI_PMCRAID is not set
600# CONFIG_SCSI_PM8001 is not set
568# CONFIG_SCSI_SRP is not set 601# CONFIG_SCSI_SRP is not set
602# CONFIG_SCSI_BFA_FC is not set
569# CONFIG_SCSI_DH is not set 603# CONFIG_SCSI_DH is not set
570# CONFIG_SCSI_OSD_INITIATOR is not set 604# CONFIG_SCSI_OSD_INITIATOR is not set
571CONFIG_ATA=y 605CONFIG_ATA=y
@@ -618,15 +652,16 @@ CONFIG_ATA_SFF=y
618# CONFIG_PATA_NS87415 is not set 652# CONFIG_PATA_NS87415 is not set
619# CONFIG_PATA_OPTI is not set 653# CONFIG_PATA_OPTI is not set
620# CONFIG_PATA_OPTIDMA is not set 654# CONFIG_PATA_OPTIDMA is not set
655# CONFIG_PATA_PDC2027X is not set
621# CONFIG_PATA_PDC_OLD is not set 656# CONFIG_PATA_PDC_OLD is not set
622# CONFIG_PATA_RADISYS is not set 657# CONFIG_PATA_RADISYS is not set
623# CONFIG_PATA_RDC is not set 658# CONFIG_PATA_RDC is not set
624# CONFIG_PATA_RZ1000 is not set 659# CONFIG_PATA_RZ1000 is not set
625# CONFIG_PATA_SC1200 is not set 660# CONFIG_PATA_SC1200 is not set
626# CONFIG_PATA_SERVERWORKS is not set 661# CONFIG_PATA_SERVERWORKS is not set
627# CONFIG_PATA_PDC2027X is not set
628# CONFIG_PATA_SIL680 is not set 662# CONFIG_PATA_SIL680 is not set
629# CONFIG_PATA_SIS is not set 663# CONFIG_PATA_SIS is not set
664# CONFIG_PATA_TOSHIBA is not set
630# CONFIG_PATA_VIA is not set 665# CONFIG_PATA_VIA is not set
631# CONFIG_PATA_WINBOND is not set 666# CONFIG_PATA_WINBOND is not set
632CONFIG_PATA_PLATFORM=y 667CONFIG_PATA_PLATFORM=y
@@ -704,6 +739,7 @@ CONFIG_8139TOO=y
704# CONFIG_TLAN is not set 739# CONFIG_TLAN is not set
705# CONFIG_KS8842 is not set 740# CONFIG_KS8842 is not set
706# CONFIG_KS8851 is not set 741# CONFIG_KS8851 is not set
742# CONFIG_KS8851_MLL is not set
707# CONFIG_VIA_RHINE is not set 743# CONFIG_VIA_RHINE is not set
708# CONFIG_SC92031 is not set 744# CONFIG_SC92031 is not set
709# CONFIG_ATL2 is not set 745# CONFIG_ATL2 is not set
@@ -752,8 +788,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y
752# CONFIG_BE2NET is not set 788# CONFIG_BE2NET is not set
753# CONFIG_TR is not set 789# CONFIG_TR is not set
754CONFIG_WLAN=y 790CONFIG_WLAN=y
755# CONFIG_WLAN_PRE80211 is not set 791# CONFIG_ATMEL is not set
756# CONFIG_WLAN_80211 is not set 792# CONFIG_PRISM54 is not set
793# CONFIG_USB_ZD1201 is not set
794# CONFIG_HOSTAP is not set
757 795
758# 796#
759# Enable WiMAX (Networking options) to see the WiMAX drivers 797# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -776,6 +814,7 @@ CONFIG_WLAN=y
776# CONFIG_NETCONSOLE is not set 814# CONFIG_NETCONSOLE is not set
777# CONFIG_NETPOLL is not set 815# CONFIG_NETPOLL is not set
778# CONFIG_NET_POLL_CONTROLLER is not set 816# CONFIG_NET_POLL_CONTROLLER is not set
817# CONFIG_VMXNET3 is not set
779# CONFIG_ISDN is not set 818# CONFIG_ISDN is not set
780# CONFIG_PHONE is not set 819# CONFIG_PHONE is not set
781 820
@@ -785,6 +824,7 @@ CONFIG_WLAN=y
785CONFIG_INPUT=y 824CONFIG_INPUT=y
786CONFIG_INPUT_FF_MEMLESS=m 825CONFIG_INPUT_FF_MEMLESS=m
787# CONFIG_INPUT_POLLDEV is not set 826# CONFIG_INPUT_POLLDEV is not set
827# CONFIG_INPUT_SPARSEKMAP is not set
788 828
789# 829#
790# Userland interfaces 830# Userland interfaces
@@ -862,7 +902,10 @@ CONFIG_SPI_MASTER=y
862# SPI Master Controller Drivers 902# SPI Master Controller Drivers
863# 903#
864CONFIG_SPI_BITBANG=y 904CONFIG_SPI_BITBANG=y
905# CONFIG_SPI_SH_MSIOF is not set
865CONFIG_SPI_SH_SCI=y 906CONFIG_SPI_SH_SCI=y
907# CONFIG_SPI_XILINX is not set
908# CONFIG_SPI_DESIGNWARE is not set
866 909
867# 910#
868# SPI Protocol Masters 911# SPI Protocol Masters
@@ -915,10 +958,12 @@ CONFIG_SSB_POSSIBLE=y
915# 958#
916# CONFIG_MFD_CORE is not set 959# CONFIG_MFD_CORE is not set
917CONFIG_MFD_SM501=y 960CONFIG_MFD_SM501=y
961# CONFIG_MFD_SH_MOBILE_SDHI is not set
918# CONFIG_HTC_PASIC3 is not set 962# CONFIG_HTC_PASIC3 is not set
919# CONFIG_MFD_TMIO is not set 963# CONFIG_MFD_TMIO is not set
920# CONFIG_MFD_MC13783 is not set 964# CONFIG_MFD_MC13783 is not set
921# CONFIG_EZX_PCAP is not set 965# CONFIG_EZX_PCAP is not set
966# CONFIG_AB4500_CORE is not set
922# CONFIG_REGULATOR is not set 967# CONFIG_REGULATOR is not set
923# CONFIG_MEDIA_SUPPORT is not set 968# CONFIG_MEDIA_SUPPORT is not set
924 969
@@ -1055,6 +1100,7 @@ CONFIG_SND_PCI=y
1055# CONFIG_SND_OXYGEN is not set 1100# CONFIG_SND_OXYGEN is not set
1056# CONFIG_SND_CS4281 is not set 1101# CONFIG_SND_CS4281 is not set
1057# CONFIG_SND_CS46XX is not set 1102# CONFIG_SND_CS46XX is not set
1103# CONFIG_SND_CS5535AUDIO is not set
1058# CONFIG_SND_CTXFI is not set 1104# CONFIG_SND_CTXFI is not set
1059# CONFIG_SND_DARLA20 is not set 1105# CONFIG_SND_DARLA20 is not set
1060# CONFIG_SND_GINA20 is not set 1106# CONFIG_SND_GINA20 is not set
@@ -1308,7 +1354,9 @@ CONFIG_RTC_DRV_R9701=y
1308# CONFIG_RTC_DRV_M48T86 is not set 1354# CONFIG_RTC_DRV_M48T86 is not set
1309# CONFIG_RTC_DRV_M48T35 is not set 1355# CONFIG_RTC_DRV_M48T35 is not set
1310# CONFIG_RTC_DRV_M48T59 is not set 1356# CONFIG_RTC_DRV_M48T59 is not set
1357# CONFIG_RTC_DRV_MSM6242 is not set
1311# CONFIG_RTC_DRV_BQ4802 is not set 1358# CONFIG_RTC_DRV_BQ4802 is not set
1359# CONFIG_RTC_DRV_RP5C01 is not set
1312# CONFIG_RTC_DRV_V3020 is not set 1360# CONFIG_RTC_DRV_V3020 is not set
1313 1361
1314# 1362#
@@ -1333,6 +1381,7 @@ CONFIG_EXT2_FS=y
1333# CONFIG_EXT2_FS_XIP is not set 1381# CONFIG_EXT2_FS_XIP is not set
1334# CONFIG_EXT3_FS is not set 1382# CONFIG_EXT3_FS is not set
1335# CONFIG_EXT4_FS is not set 1383# CONFIG_EXT4_FS is not set
1384CONFIG_EXT4_USE_FOR_EXT23=y
1336# CONFIG_REISERFS_FS is not set 1385# CONFIG_REISERFS_FS is not set
1337# CONFIG_JFS_FS is not set 1386# CONFIG_JFS_FS is not set
1338# CONFIG_FS_POSIX_ACL is not set 1387# CONFIG_FS_POSIX_ACL is not set
@@ -1474,10 +1523,11 @@ CONFIG_DEBUG_FS=y
1474# CONFIG_HEADERS_CHECK is not set 1523# CONFIG_HEADERS_CHECK is not set
1475# CONFIG_DEBUG_KERNEL is not set 1524# CONFIG_DEBUG_KERNEL is not set
1476CONFIG_STACKTRACE=y 1525CONFIG_STACKTRACE=y
1477# CONFIG_DEBUG_BUGVERBOSE is not set 1526CONFIG_DEBUG_BUGVERBOSE=y
1478# CONFIG_DEBUG_MEMORY_INIT is not set 1527# CONFIG_DEBUG_MEMORY_INIT is not set
1479# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1528# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1480# CONFIG_LATENCYTOP is not set 1529# CONFIG_LATENCYTOP is not set
1530# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1481CONFIG_NOP_TRACER=y 1531CONFIG_NOP_TRACER=y
1482CONFIG_HAVE_FUNCTION_TRACER=y 1532CONFIG_HAVE_FUNCTION_TRACER=y
1483CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1533CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1497,9 +1547,6 @@ CONFIG_TRACING_SUPPORT=y
1497# CONFIG_SAMPLES is not set 1547# CONFIG_SAMPLES is not set
1498CONFIG_HAVE_ARCH_KGDB=y 1548CONFIG_HAVE_ARCH_KGDB=y
1499# CONFIG_SH_STANDARD_BIOS is not set 1549# CONFIG_SH_STANDARD_BIOS is not set
1500CONFIG_EARLY_SCIF_CONSOLE=y
1501CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1502CONFIG_EARLY_PRINTK=y
1503# CONFIG_DWARF_UNWINDER is not set 1550# CONFIG_DWARF_UNWINDER is not set
1504 1551
1505# 1552#
@@ -1508,7 +1555,11 @@ CONFIG_EARLY_PRINTK=y
1508# CONFIG_KEYS is not set 1555# CONFIG_KEYS is not set
1509# CONFIG_SECURITY is not set 1556# CONFIG_SECURITY is not set
1510# CONFIG_SECURITYFS is not set 1557# CONFIG_SECURITYFS is not set
1511# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1558# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1559# CONFIG_DEFAULT_SECURITY_SMACK is not set
1560# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1561CONFIG_DEFAULT_SECURITY_DAC=y
1562CONFIG_DEFAULT_SECURITY=""
1512CONFIG_CRYPTO=y 1563CONFIG_CRYPTO=y
1513 1564
1514# 1565#
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig
index 9215bbb13d6f..a8d538f06e67 100644
--- a/arch/sh/configs/rts7751r2dplus_defconfig
+++ b/arch/sh/configs/rts7751r2dplus_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:39:48 2009 4# Mon Jan 4 13:26:39 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -31,6 +32,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_IO_TRAPPED=y 34CONFIG_IO_TRAPPED=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -61,6 +63,7 @@ CONFIG_SYSVIPC_SYSCTL=y
61# 63#
62CONFIG_TREE_RCU=y 64CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
66# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 67# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 68CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 69# CONFIG_RCU_FANOUT_EXACT is not set
@@ -95,6 +98,7 @@ CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 98CONFIG_SHMEM=y
96CONFIG_AIO=y 99CONFIG_AIO=y
97CONFIG_HAVE_PERF_EVENTS=y 100CONFIG_HAVE_PERF_EVENTS=y
101CONFIG_PERF_USE_VMALLOC=y
98 102
99# 103#
100# Kernel Performance Events And Counters 104# Kernel Performance Events And Counters
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
120CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
121CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
122 127
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y
143# IO Schedulers 148# IO Schedulers
144# 149#
145CONFIG_IOSCHED_NOOP=y 150CONFIG_IOSCHED_NOOP=y
146CONFIG_IOSCHED_AS=y
147CONFIG_IOSCHED_DEADLINE=y 151CONFIG_IOSCHED_DEADLINE=y
148CONFIG_IOSCHED_CFQ=y 152CONFIG_IOSCHED_CFQ=y
149CONFIG_DEFAULT_AS=y
150# CONFIG_DEFAULT_DEADLINE is not set 153# CONFIG_DEFAULT_DEADLINE is not set
151# CONFIG_DEFAULT_CFQ is not set 154CONFIG_DEFAULT_CFQ=y
152# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
153CONFIG_DEFAULT_IOSCHED="anticipatory" 156CONFIG_DEFAULT_IOSCHED="cfq"
157# CONFIG_INLINE_SPIN_TRYLOCK is not set
158# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK is not set
160# CONFIG_INLINE_SPIN_LOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
162# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
163CONFIG_INLINE_SPIN_UNLOCK=y
164# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
165CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
166# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
167# CONFIG_INLINE_READ_TRYLOCK is not set
168# CONFIG_INLINE_READ_LOCK is not set
169# CONFIG_INLINE_READ_LOCK_BH is not set
170# CONFIG_INLINE_READ_LOCK_IRQ is not set
171# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
172CONFIG_INLINE_READ_UNLOCK=y
173# CONFIG_INLINE_READ_UNLOCK_BH is not set
174CONFIG_INLINE_READ_UNLOCK_IRQ=y
175# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
176# CONFIG_INLINE_WRITE_TRYLOCK is not set
177# CONFIG_INLINE_WRITE_LOCK is not set
178# CONFIG_INLINE_WRITE_LOCK_BH is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
180# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
181CONFIG_INLINE_WRITE_UNLOCK=y
182# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
183CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
184# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
185# CONFIG_MUTEX_SPIN_ON_OWNER is not set
154# CONFIG_FREEZER is not set 186# CONFIG_FREEZER is not set
155 187
156# 188#
@@ -226,8 +258,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
226# CONFIG_PHYS_ADDR_T_64BIT is not set 258# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=0 259CONFIG_ZONE_DMA_FLAG=0
228CONFIG_NR_QUICK=2 260CONFIG_NR_QUICK=2
229CONFIG_HAVE_MLOCK=y
230CONFIG_HAVE_MLOCKED_PAGE_BIT=y
231# CONFIG_KSM is not set 261# CONFIG_KSM is not set
232CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 262CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
233 263
@@ -321,7 +351,6 @@ CONFIG_GUSA=y
321CONFIG_ZERO_PAGE_OFFSET=0x00010000 351CONFIG_ZERO_PAGE_OFFSET=0x00010000
322CONFIG_BOOT_LINK_OFFSET=0x00800000 352CONFIG_BOOT_LINK_OFFSET=0x00800000
323CONFIG_ENTRY_OFFSET=0x00001000 353CONFIG_ENTRY_OFFSET=0x00001000
324# CONFIG_UBC_WAKEUP is not set
325CONFIG_CMDLINE_OVERWRITE=y 354CONFIG_CMDLINE_OVERWRITE=y
326# CONFIG_CMDLINE_EXTEND is not set 355# CONFIG_CMDLINE_EXTEND is not set
327CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" 356CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1"
@@ -330,7 +359,6 @@ CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1"
330# Bus options 359# Bus options
331# 360#
332CONFIG_PCI=y 361CONFIG_PCI=y
333CONFIG_SH_PCIDMA_NONCOHERENT=y
334# CONFIG_PCIEPORTBUS is not set 362# CONFIG_PCIEPORTBUS is not set
335# CONFIG_ARCH_SUPPORTS_MSI is not set 363# CONFIG_ARCH_SUPPORTS_MSI is not set
336CONFIG_PCI_LEGACY=y 364CONFIG_PCI_LEGACY=y
@@ -429,10 +457,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
429# CONFIG_AF_RXRPC is not set 457# CONFIG_AF_RXRPC is not set
430CONFIG_WIRELESS=y 458CONFIG_WIRELESS=y
431# CONFIG_CFG80211 is not set 459# CONFIG_CFG80211 is not set
432CONFIG_CFG80211_DEFAULT_PS_VALUE=0
433# CONFIG_WIRELESS_OLD_REGULATORY is not set
434CONFIG_WIRELESS_EXT=y
435CONFIG_WIRELESS_EXT_SYSFS=y
436# CONFIG_LIB80211 is not set 460# CONFIG_LIB80211 is not set
437 461
438# 462#
@@ -552,6 +576,10 @@ CONFIG_BLK_DEV=y
552# CONFIG_BLK_DEV_UMEM is not set 576# CONFIG_BLK_DEV_UMEM is not set
553# CONFIG_BLK_DEV_COW_COMMON is not set 577# CONFIG_BLK_DEV_COW_COMMON is not set
554# CONFIG_BLK_DEV_LOOP is not set 578# CONFIG_BLK_DEV_LOOP is not set
579
580#
581# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
582#
555# CONFIG_BLK_DEV_NBD is not set 583# CONFIG_BLK_DEV_NBD is not set
556# CONFIG_BLK_DEV_SX8 is not set 584# CONFIG_BLK_DEV_SX8 is not set
557# CONFIG_BLK_DEV_UB is not set 585# CONFIG_BLK_DEV_UB is not set
@@ -568,6 +596,7 @@ CONFIG_MISC_DEVICES=y
568# CONFIG_TIFM_CORE is not set 596# CONFIG_TIFM_CORE is not set
569# CONFIG_ENCLOSURE_SERVICES is not set 597# CONFIG_ENCLOSURE_SERVICES is not set
570# CONFIG_HP_ILO is not set 598# CONFIG_HP_ILO is not set
599# CONFIG_TI_DAC7512 is not set
571# CONFIG_C2PORT is not set 600# CONFIG_C2PORT is not set
572 601
573# 602#
@@ -616,8 +645,11 @@ CONFIG_SCSI_LOWLEVEL=y
616# CONFIG_ISCSI_TCP is not set 645# CONFIG_ISCSI_TCP is not set
617# CONFIG_SCSI_CXGB3_ISCSI is not set 646# CONFIG_SCSI_CXGB3_ISCSI is not set
618# CONFIG_SCSI_BNX2_ISCSI is not set 647# CONFIG_SCSI_BNX2_ISCSI is not set
648# CONFIG_BE2ISCSI is not set
619# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 649# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
650# CONFIG_SCSI_HPSA is not set
620# CONFIG_SCSI_3W_9XXX is not set 651# CONFIG_SCSI_3W_9XXX is not set
652# CONFIG_SCSI_3W_SAS is not set
621# CONFIG_SCSI_ACARD is not set 653# CONFIG_SCSI_ACARD is not set
622# CONFIG_SCSI_AACRAID is not set 654# CONFIG_SCSI_AACRAID is not set
623# CONFIG_SCSI_AIC7XXX is not set 655# CONFIG_SCSI_AIC7XXX is not set
@@ -651,7 +683,9 @@ CONFIG_SCSI_LOWLEVEL=y
651# CONFIG_SCSI_NSP32 is not set 683# CONFIG_SCSI_NSP32 is not set
652# CONFIG_SCSI_DEBUG is not set 684# CONFIG_SCSI_DEBUG is not set
653# CONFIG_SCSI_PMCRAID is not set 685# CONFIG_SCSI_PMCRAID is not set
686# CONFIG_SCSI_PM8001 is not set
654# CONFIG_SCSI_SRP is not set 687# CONFIG_SCSI_SRP is not set
688# CONFIG_SCSI_BFA_FC is not set
655# CONFIG_SCSI_DH is not set 689# CONFIG_SCSI_DH is not set
656# CONFIG_SCSI_OSD_INITIATOR is not set 690# CONFIG_SCSI_OSD_INITIATOR is not set
657CONFIG_ATA=y 691CONFIG_ATA=y
@@ -704,15 +738,16 @@ CONFIG_ATA_SFF=y
704# CONFIG_PATA_NS87415 is not set 738# CONFIG_PATA_NS87415 is not set
705# CONFIG_PATA_OPTI is not set 739# CONFIG_PATA_OPTI is not set
706# CONFIG_PATA_OPTIDMA is not set 740# CONFIG_PATA_OPTIDMA is not set
741# CONFIG_PATA_PDC2027X is not set
707# CONFIG_PATA_PDC_OLD is not set 742# CONFIG_PATA_PDC_OLD is not set
708# CONFIG_PATA_RADISYS is not set 743# CONFIG_PATA_RADISYS is not set
709# CONFIG_PATA_RDC is not set 744# CONFIG_PATA_RDC is not set
710# CONFIG_PATA_RZ1000 is not set 745# CONFIG_PATA_RZ1000 is not set
711# CONFIG_PATA_SC1200 is not set 746# CONFIG_PATA_SC1200 is not set
712# CONFIG_PATA_SERVERWORKS is not set 747# CONFIG_PATA_SERVERWORKS is not set
713# CONFIG_PATA_PDC2027X is not set
714# CONFIG_PATA_SIL680 is not set 748# CONFIG_PATA_SIL680 is not set
715# CONFIG_PATA_SIS is not set 749# CONFIG_PATA_SIS is not set
750# CONFIG_PATA_TOSHIBA is not set
716# CONFIG_PATA_VIA is not set 751# CONFIG_PATA_VIA is not set
717# CONFIG_PATA_WINBOND is not set 752# CONFIG_PATA_WINBOND is not set
718CONFIG_PATA_PLATFORM=y 753CONFIG_PATA_PLATFORM=y
@@ -790,6 +825,7 @@ CONFIG_8139TOO=y
790# CONFIG_TLAN is not set 825# CONFIG_TLAN is not set
791# CONFIG_KS8842 is not set 826# CONFIG_KS8842 is not set
792# CONFIG_KS8851 is not set 827# CONFIG_KS8851 is not set
828# CONFIG_KS8851_MLL is not set
793# CONFIG_VIA_RHINE is not set 829# CONFIG_VIA_RHINE is not set
794# CONFIG_SC92031 is not set 830# CONFIG_SC92031 is not set
795# CONFIG_ATL2 is not set 831# CONFIG_ATL2 is not set
@@ -838,8 +874,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y
838# CONFIG_BE2NET is not set 874# CONFIG_BE2NET is not set
839# CONFIG_TR is not set 875# CONFIG_TR is not set
840CONFIG_WLAN=y 876CONFIG_WLAN=y
841# CONFIG_WLAN_PRE80211 is not set 877# CONFIG_ATMEL is not set
842# CONFIG_WLAN_80211 is not set 878# CONFIG_PRISM54 is not set
879# CONFIG_USB_ZD1201 is not set
880# CONFIG_HOSTAP is not set
843 881
844# 882#
845# Enable WiMAX (Networking options) to see the WiMAX drivers 883# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -862,6 +900,7 @@ CONFIG_WLAN=y
862# CONFIG_NETCONSOLE is not set 900# CONFIG_NETCONSOLE is not set
863# CONFIG_NETPOLL is not set 901# CONFIG_NETPOLL is not set
864# CONFIG_NET_POLL_CONTROLLER is not set 902# CONFIG_NET_POLL_CONTROLLER is not set
903# CONFIG_VMXNET3 is not set
865# CONFIG_ISDN is not set 904# CONFIG_ISDN is not set
866# CONFIG_PHONE is not set 905# CONFIG_PHONE is not set
867 906
@@ -871,6 +910,7 @@ CONFIG_WLAN=y
871CONFIG_INPUT=y 910CONFIG_INPUT=y
872CONFIG_INPUT_FF_MEMLESS=m 911CONFIG_INPUT_FF_MEMLESS=m
873# CONFIG_INPUT_POLLDEV is not set 912# CONFIG_INPUT_POLLDEV is not set
913# CONFIG_INPUT_SPARSEKMAP is not set
874 914
875# 915#
876# Userland interfaces 916# Userland interfaces
@@ -948,7 +988,10 @@ CONFIG_SPI_MASTER=y
948# SPI Master Controller Drivers 988# SPI Master Controller Drivers
949# 989#
950CONFIG_SPI_BITBANG=y 990CONFIG_SPI_BITBANG=y
991# CONFIG_SPI_SH_MSIOF is not set
951CONFIG_SPI_SH_SCI=y 992CONFIG_SPI_SH_SCI=y
993# CONFIG_SPI_XILINX is not set
994# CONFIG_SPI_DESIGNWARE is not set
952 995
953# 996#
954# SPI Protocol Masters 997# SPI Protocol Masters
@@ -1001,10 +1044,12 @@ CONFIG_SSB_POSSIBLE=y
1001# 1044#
1002# CONFIG_MFD_CORE is not set 1045# CONFIG_MFD_CORE is not set
1003CONFIG_MFD_SM501=y 1046CONFIG_MFD_SM501=y
1047# CONFIG_MFD_SH_MOBILE_SDHI is not set
1004# CONFIG_HTC_PASIC3 is not set 1048# CONFIG_HTC_PASIC3 is not set
1005# CONFIG_MFD_TMIO is not set 1049# CONFIG_MFD_TMIO is not set
1006# CONFIG_MFD_MC13783 is not set 1050# CONFIG_MFD_MC13783 is not set
1007# CONFIG_EZX_PCAP is not set 1051# CONFIG_EZX_PCAP is not set
1052# CONFIG_AB4500_CORE is not set
1008# CONFIG_REGULATOR is not set 1053# CONFIG_REGULATOR is not set
1009# CONFIG_MEDIA_SUPPORT is not set 1054# CONFIG_MEDIA_SUPPORT is not set
1010 1055
@@ -1141,6 +1186,7 @@ CONFIG_SND_PCI=y
1141# CONFIG_SND_OXYGEN is not set 1186# CONFIG_SND_OXYGEN is not set
1142# CONFIG_SND_CS4281 is not set 1187# CONFIG_SND_CS4281 is not set
1143# CONFIG_SND_CS46XX is not set 1188# CONFIG_SND_CS46XX is not set
1189# CONFIG_SND_CS5535AUDIO is not set
1144# CONFIG_SND_CTXFI is not set 1190# CONFIG_SND_CTXFI is not set
1145# CONFIG_SND_DARLA20 is not set 1191# CONFIG_SND_DARLA20 is not set
1146# CONFIG_SND_GINA20 is not set 1192# CONFIG_SND_GINA20 is not set
@@ -1394,7 +1440,9 @@ CONFIG_RTC_DRV_R9701=y
1394# CONFIG_RTC_DRV_M48T86 is not set 1440# CONFIG_RTC_DRV_M48T86 is not set
1395# CONFIG_RTC_DRV_M48T35 is not set 1441# CONFIG_RTC_DRV_M48T35 is not set
1396# CONFIG_RTC_DRV_M48T59 is not set 1442# CONFIG_RTC_DRV_M48T59 is not set
1443# CONFIG_RTC_DRV_MSM6242 is not set
1397# CONFIG_RTC_DRV_BQ4802 is not set 1444# CONFIG_RTC_DRV_BQ4802 is not set
1445# CONFIG_RTC_DRV_RP5C01 is not set
1398# CONFIG_RTC_DRV_V3020 is not set 1446# CONFIG_RTC_DRV_V3020 is not set
1399 1447
1400# 1448#
@@ -1419,6 +1467,7 @@ CONFIG_EXT2_FS=y
1419# CONFIG_EXT2_FS_XIP is not set 1467# CONFIG_EXT2_FS_XIP is not set
1420# CONFIG_EXT3_FS is not set 1468# CONFIG_EXT3_FS is not set
1421# CONFIG_EXT4_FS is not set 1469# CONFIG_EXT4_FS is not set
1470CONFIG_EXT4_USE_FOR_EXT23=y
1422# CONFIG_REISERFS_FS is not set 1471# CONFIG_REISERFS_FS is not set
1423# CONFIG_JFS_FS is not set 1472# CONFIG_JFS_FS is not set
1424# CONFIG_FS_POSIX_ACL is not set 1473# CONFIG_FS_POSIX_ACL is not set
@@ -1561,10 +1610,11 @@ CONFIG_DEBUG_FS=y
1561# CONFIG_HEADERS_CHECK is not set 1610# CONFIG_HEADERS_CHECK is not set
1562# CONFIG_DEBUG_KERNEL is not set 1611# CONFIG_DEBUG_KERNEL is not set
1563CONFIG_STACKTRACE=y 1612CONFIG_STACKTRACE=y
1564# CONFIG_DEBUG_BUGVERBOSE is not set 1613CONFIG_DEBUG_BUGVERBOSE=y
1565# CONFIG_DEBUG_MEMORY_INIT is not set 1614# CONFIG_DEBUG_MEMORY_INIT is not set
1566# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1615# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1567# CONFIG_LATENCYTOP is not set 1616# CONFIG_LATENCYTOP is not set
1617# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1568CONFIG_NOP_TRACER=y 1618CONFIG_NOP_TRACER=y
1569CONFIG_HAVE_FUNCTION_TRACER=y 1619CONFIG_HAVE_FUNCTION_TRACER=y
1570CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1620CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1584,9 +1634,6 @@ CONFIG_TRACING_SUPPORT=y
1584# CONFIG_SAMPLES is not set 1634# CONFIG_SAMPLES is not set
1585CONFIG_HAVE_ARCH_KGDB=y 1635CONFIG_HAVE_ARCH_KGDB=y
1586# CONFIG_SH_STANDARD_BIOS is not set 1636# CONFIG_SH_STANDARD_BIOS is not set
1587CONFIG_EARLY_SCIF_CONSOLE=y
1588CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
1589CONFIG_EARLY_PRINTK=y
1590# CONFIG_DWARF_UNWINDER is not set 1637# CONFIG_DWARF_UNWINDER is not set
1591 1638
1592# 1639#
@@ -1595,7 +1642,11 @@ CONFIG_EARLY_PRINTK=y
1595# CONFIG_KEYS is not set 1642# CONFIG_KEYS is not set
1596# CONFIG_SECURITY is not set 1643# CONFIG_SECURITY is not set
1597# CONFIG_SECURITYFS is not set 1644# CONFIG_SECURITYFS is not set
1598# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1645# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1646# CONFIG_DEFAULT_SECURITY_SMACK is not set
1647# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1648CONFIG_DEFAULT_SECURITY_DAC=y
1649CONFIG_DEFAULT_SECURITY=""
1599CONFIG_CRYPTO=y 1650CONFIG_CRYPTO=y
1600 1651
1601# 1652#
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig
index 055536b5c5cd..1859ba099945 100644
--- a/arch/sh/configs/sdk7780_defconfig
+++ b/arch/sh/configs/sdk7780_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:40:25 2009 4# Mon Jan 4 13:27:20 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y
63# 65#
64CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 69# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 102CONFIG_SHMEM=y
100CONFIG_AIO=y 103CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y 104CONFIG_HAVE_PERF_EVENTS=y
105CONFIG_PERF_USE_VMALLOC=y
102 106
103# 107#
104# Kernel Performance Events And Counters 108# Kernel Performance Events And Counters
@@ -119,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
122CONFIG_HAVE_CLK=y 127CONFIG_HAVE_CLK=y
123CONFIG_HAVE_DMA_API_DEBUG=y 128CONFIG_HAVE_DMA_API_DEBUG=y
124 129
@@ -145,14 +150,41 @@ CONFIG_LBDAF=y
145# IO Schedulers 150# IO Schedulers
146# 151#
147CONFIG_IOSCHED_NOOP=y 152CONFIG_IOSCHED_NOOP=y
148CONFIG_IOSCHED_AS=y
149CONFIG_IOSCHED_DEADLINE=y 153CONFIG_IOSCHED_DEADLINE=y
150CONFIG_IOSCHED_CFQ=y 154CONFIG_IOSCHED_CFQ=y
151CONFIG_DEFAULT_AS=y
152# CONFIG_DEFAULT_DEADLINE is not set 155# CONFIG_DEFAULT_DEADLINE is not set
153# CONFIG_DEFAULT_CFQ is not set 156CONFIG_DEFAULT_CFQ=y
154# CONFIG_DEFAULT_NOOP is not set 157# CONFIG_DEFAULT_NOOP is not set
155CONFIG_DEFAULT_IOSCHED="anticipatory" 158CONFIG_DEFAULT_IOSCHED="cfq"
159# CONFIG_INLINE_SPIN_TRYLOCK is not set
160# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK is not set
162# CONFIG_INLINE_SPIN_LOCK_BH is not set
163# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
164# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
165# CONFIG_INLINE_SPIN_UNLOCK is not set
166# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
167# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
168# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
169# CONFIG_INLINE_READ_TRYLOCK is not set
170# CONFIG_INLINE_READ_LOCK is not set
171# CONFIG_INLINE_READ_LOCK_BH is not set
172# CONFIG_INLINE_READ_LOCK_IRQ is not set
173# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
174# CONFIG_INLINE_READ_UNLOCK is not set
175# CONFIG_INLINE_READ_UNLOCK_BH is not set
176# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
177# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
178# CONFIG_INLINE_WRITE_TRYLOCK is not set
179# CONFIG_INLINE_WRITE_LOCK is not set
180# CONFIG_INLINE_WRITE_LOCK_BH is not set
181# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
182# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
183# CONFIG_INLINE_WRITE_UNLOCK is not set
184# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
185# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
186# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
187# CONFIG_MUTEX_SPIN_ON_OWNER is not set
156# CONFIG_FREEZER is not set 188# CONFIG_FREEZER is not set
157 189
158# 190#
@@ -239,8 +271,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
239# CONFIG_PHYS_ADDR_T_64BIT is not set 271# CONFIG_PHYS_ADDR_T_64BIT is not set
240CONFIG_ZONE_DMA_FLAG=0 272CONFIG_ZONE_DMA_FLAG=0
241CONFIG_NR_QUICK=2 273CONFIG_NR_QUICK=2
242CONFIG_HAVE_MLOCK=y
243CONFIG_HAVE_MLOCKED_PAGE_BIT=y
244# CONFIG_KSM is not set 274# CONFIG_KSM is not set
245CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 275CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
246 276
@@ -291,9 +321,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
291# 321#
292# DMA support 322# DMA support
293# 323#
294CONFIG_SH_DMA_API=y
295CONFIG_SH_DMA=y 324CONFIG_SH_DMA=y
296CONFIG_SH_DMA_IRQ_MULTI=y 325CONFIG_SH_DMA_IRQ_MULTI=y
326CONFIG_SH_DMA_API=y
297CONFIG_NR_ONCHIP_DMA_CHANNELS=12 327CONFIG_NR_ONCHIP_DMA_CHANNELS=12
298# CONFIG_NR_DMA_CHANNELS_BOOL is not set 328# CONFIG_NR_DMA_CHANNELS_BOOL is not set
299 329
@@ -339,7 +369,6 @@ CONFIG_CMDLINE="mem=128M console=tty0 console=ttySC0,115200 ip=bootp root=/dev/n
339# Bus options 369# Bus options
340# 370#
341CONFIG_PCI=y 371CONFIG_PCI=y
342CONFIG_SH_PCIDMA_NONCOHERENT=y
343# CONFIG_PCIEPORTBUS is not set 372# CONFIG_PCIEPORTBUS is not set
344# CONFIG_ARCH_SUPPORTS_MSI is not set 373# CONFIG_ARCH_SUPPORTS_MSI is not set
345# CONFIG_PCI_LEGACY is not set 374# CONFIG_PCI_LEGACY is not set
@@ -347,7 +376,6 @@ CONFIG_PCI_DEBUG=y
347# CONFIG_PCI_STUB is not set 376# CONFIG_PCI_STUB is not set
348# CONFIG_PCI_IOV is not set 377# CONFIG_PCI_IOV is not set
349CONFIG_PCCARD=y 378CONFIG_PCCARD=y
350# CONFIG_PCMCIA_DEBUG is not set
351CONFIG_PCMCIA=y 379CONFIG_PCMCIA=y
352CONFIG_PCMCIA_LOAD_CIS=y 380CONFIG_PCMCIA_LOAD_CIS=y
353CONFIG_PCMCIA_IOCTL=y 381CONFIG_PCMCIA_IOCTL=y
@@ -445,6 +473,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
445# CONFIG_INET6_XFRM_MODE_BEET is not set 473# CONFIG_INET6_XFRM_MODE_BEET is not set
446# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 474# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
447CONFIG_IPV6_SIT=y 475CONFIG_IPV6_SIT=y
476# CONFIG_IPV6_SIT_6RD is not set
448CONFIG_IPV6_NDISC_NODETYPE=y 477CONFIG_IPV6_NDISC_NODETYPE=y
449# CONFIG_IPV6_TUNNEL is not set 478# CONFIG_IPV6_TUNNEL is not set
450# CONFIG_IPV6_MULTIPLE_TABLES is not set 479# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -515,9 +544,6 @@ CONFIG_NET_SCH_FIFO=y
515# CONFIG_AF_RXRPC is not set 544# CONFIG_AF_RXRPC is not set
516CONFIG_WIRELESS=y 545CONFIG_WIRELESS=y
517# CONFIG_CFG80211 is not set 546# CONFIG_CFG80211 is not set
518CONFIG_CFG80211_DEFAULT_PS_VALUE=0
519# CONFIG_WIRELESS_OLD_REGULATORY is not set
520# CONFIG_WIRELESS_EXT is not set
521# CONFIG_LIB80211 is not set 547# CONFIG_LIB80211 is not set
522 548
523# 549#
@@ -558,6 +584,10 @@ CONFIG_BLK_DEV=y
558# CONFIG_BLK_DEV_COW_COMMON is not set 584# CONFIG_BLK_DEV_COW_COMMON is not set
559CONFIG_BLK_DEV_LOOP=y 585CONFIG_BLK_DEV_LOOP=y
560# CONFIG_BLK_DEV_CRYPTOLOOP is not set 586# CONFIG_BLK_DEV_CRYPTOLOOP is not set
587
588#
589# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
590#
561# CONFIG_BLK_DEV_NBD is not set 591# CONFIG_BLK_DEV_NBD is not set
562# CONFIG_BLK_DEV_SX8 is not set 592# CONFIG_BLK_DEV_SX8 is not set
563# CONFIG_BLK_DEV_UB is not set 593# CONFIG_BLK_DEV_UB is not set
@@ -663,8 +693,11 @@ CONFIG_SCSI_FC_ATTRS=y
663CONFIG_SCSI_LOWLEVEL=y 693CONFIG_SCSI_LOWLEVEL=y
664# CONFIG_ISCSI_TCP is not set 694# CONFIG_ISCSI_TCP is not set
665# CONFIG_SCSI_BNX2_ISCSI is not set 695# CONFIG_SCSI_BNX2_ISCSI is not set
696# CONFIG_BE2ISCSI is not set
666# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 697# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
698# CONFIG_SCSI_HPSA is not set
667# CONFIG_SCSI_3W_9XXX is not set 699# CONFIG_SCSI_3W_9XXX is not set
700# CONFIG_SCSI_3W_SAS is not set
668# CONFIG_SCSI_ACARD is not set 701# CONFIG_SCSI_ACARD is not set
669# CONFIG_SCSI_AACRAID is not set 702# CONFIG_SCSI_AACRAID is not set
670# CONFIG_SCSI_AIC7XXX is not set 703# CONFIG_SCSI_AIC7XXX is not set
@@ -698,7 +731,9 @@ CONFIG_SCSI_LOWLEVEL=y
698# CONFIG_SCSI_NSP32 is not set 731# CONFIG_SCSI_NSP32 is not set
699# CONFIG_SCSI_DEBUG is not set 732# CONFIG_SCSI_DEBUG is not set
700# CONFIG_SCSI_PMCRAID is not set 733# CONFIG_SCSI_PMCRAID is not set
734# CONFIG_SCSI_PM8001 is not set
701# CONFIG_SCSI_SRP is not set 735# CONFIG_SCSI_SRP is not set
736# CONFIG_SCSI_BFA_FC is not set
702# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 737# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
703# CONFIG_SCSI_DH is not set 738# CONFIG_SCSI_DH is not set
704# CONFIG_SCSI_OSD_INITIATOR is not set 739# CONFIG_SCSI_OSD_INITIATOR is not set
@@ -753,15 +788,16 @@ CONFIG_ATA_SFF=y
753# CONFIG_PATA_OPTI is not set 788# CONFIG_PATA_OPTI is not set
754# CONFIG_PATA_OPTIDMA is not set 789# CONFIG_PATA_OPTIDMA is not set
755# CONFIG_PATA_PCMCIA is not set 790# CONFIG_PATA_PCMCIA is not set
791# CONFIG_PATA_PDC2027X is not set
756# CONFIG_PATA_PDC_OLD is not set 792# CONFIG_PATA_PDC_OLD is not set
757# CONFIG_PATA_RADISYS is not set 793# CONFIG_PATA_RADISYS is not set
758# CONFIG_PATA_RDC is not set 794# CONFIG_PATA_RDC is not set
759# CONFIG_PATA_RZ1000 is not set 795# CONFIG_PATA_RZ1000 is not set
760# CONFIG_PATA_SC1200 is not set 796# CONFIG_PATA_SC1200 is not set
761# CONFIG_PATA_SERVERWORKS is not set 797# CONFIG_PATA_SERVERWORKS is not set
762# CONFIG_PATA_PDC2027X is not set
763# CONFIG_PATA_SIL680 is not set 798# CONFIG_PATA_SIL680 is not set
764# CONFIG_PATA_SIS is not set 799# CONFIG_PATA_SIS is not set
800# CONFIG_PATA_TOSHIBA is not set
765# CONFIG_PATA_VIA is not set 801# CONFIG_PATA_VIA is not set
766# CONFIG_PATA_WINBOND is not set 802# CONFIG_PATA_WINBOND is not set
767# CONFIG_PATA_PLATFORM is not set 803# CONFIG_PATA_PLATFORM is not set
@@ -827,14 +863,20 @@ CONFIG_SMC91X=y
827# CONFIG_NET_PCI is not set 863# CONFIG_NET_PCI is not set
828# CONFIG_B44 is not set 864# CONFIG_B44 is not set
829# CONFIG_KS8842 is not set 865# CONFIG_KS8842 is not set
866# CONFIG_KS8851_MLL is not set
830# CONFIG_NET_POCKET is not set 867# CONFIG_NET_POCKET is not set
831# CONFIG_ATL2 is not set 868# CONFIG_ATL2 is not set
832# CONFIG_NETDEV_1000 is not set 869# CONFIG_NETDEV_1000 is not set
833# CONFIG_NETDEV_10000 is not set 870# CONFIG_NETDEV_10000 is not set
834# CONFIG_TR is not set 871# CONFIG_TR is not set
835CONFIG_WLAN=y 872CONFIG_WLAN=y
836# CONFIG_WLAN_PRE80211 is not set 873# CONFIG_PCMCIA_RAYCS is not set
837# CONFIG_WLAN_80211 is not set 874# CONFIG_ATMEL is not set
875# CONFIG_AIRO_CS is not set
876# CONFIG_PCMCIA_WL3501 is not set
877# CONFIG_PRISM54 is not set
878# CONFIG_USB_ZD1201 is not set
879# CONFIG_HOSTAP is not set
838 880
839# 881#
840# Enable WiMAX (Networking options) to see the WiMAX drivers 882# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -861,6 +903,7 @@ CONFIG_NETCONSOLE=y
861CONFIG_NETPOLL=y 903CONFIG_NETPOLL=y
862# CONFIG_NETPOLL_TRAP is not set 904# CONFIG_NETPOLL_TRAP is not set
863CONFIG_NET_POLL_CONTROLLER=y 905CONFIG_NET_POLL_CONTROLLER=y
906# CONFIG_VMXNET3 is not set
864# CONFIG_ISDN is not set 907# CONFIG_ISDN is not set
865# CONFIG_PHONE is not set 908# CONFIG_PHONE is not set
866 909
@@ -870,6 +913,7 @@ CONFIG_NET_POLL_CONTROLLER=y
870CONFIG_INPUT=y 913CONFIG_INPUT=y
871CONFIG_INPUT_FF_MEMLESS=m 914CONFIG_INPUT_FF_MEMLESS=m
872# CONFIG_INPUT_POLLDEV is not set 915# CONFIG_INPUT_POLLDEV is not set
916# CONFIG_INPUT_SPARSEKMAP is not set
873 917
874# 918#
875# Userland interfaces 919# Userland interfaces
@@ -922,6 +966,7 @@ CONFIG_SERIO=y
922# CONFIG_SERIO_PCIPS2 is not set 966# CONFIG_SERIO_PCIPS2 is not set
923CONFIG_SERIO_LIBPS2=y 967CONFIG_SERIO_LIBPS2=y
924# CONFIG_SERIO_RAW is not set 968# CONFIG_SERIO_RAW is not set
969# CONFIG_SERIO_ALTERA_PS2 is not set
925# CONFIG_GAMEPORT is not set 970# CONFIG_GAMEPORT is not set
926 971
927# 972#
@@ -1009,6 +1054,7 @@ CONFIG_SSB_DRIVER_PCICORE=y
1009# 1054#
1010# CONFIG_MFD_CORE is not set 1055# CONFIG_MFD_CORE is not set
1011# CONFIG_MFD_SM501 is not set 1056# CONFIG_MFD_SM501 is not set
1057# CONFIG_MFD_SH_MOBILE_SDHI is not set
1012# CONFIG_HTC_PASIC3 is not set 1058# CONFIG_HTC_PASIC3 is not set
1013# CONFIG_MFD_TMIO is not set 1059# CONFIG_MFD_TMIO is not set
1014# CONFIG_REGULATOR is not set 1060# CONFIG_REGULATOR is not set
@@ -1534,8 +1580,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1534CONFIG_HAVE_ARCH_KGDB=y 1580CONFIG_HAVE_ARCH_KGDB=y
1535# CONFIG_KGDB is not set 1581# CONFIG_KGDB is not set
1536CONFIG_SH_STANDARD_BIOS=y 1582CONFIG_SH_STANDARD_BIOS=y
1537# CONFIG_EARLY_SCIF_CONSOLE is not set
1538# CONFIG_EARLY_PRINTK is not set
1539# CONFIG_STACK_DEBUG is not set 1583# CONFIG_STACK_DEBUG is not set
1540# CONFIG_DEBUG_STACK_USAGE is not set 1584# CONFIG_DEBUG_STACK_USAGE is not set
1541# CONFIG_4KSTACKS is not set 1585# CONFIG_4KSTACKS is not set
@@ -1549,7 +1593,11 @@ CONFIG_DUMP_CODE=y
1549# CONFIG_KEYS is not set 1593# CONFIG_KEYS is not set
1550# CONFIG_SECURITY is not set 1594# CONFIG_SECURITY is not set
1551# CONFIG_SECURITYFS is not set 1595# CONFIG_SECURITYFS is not set
1552# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1596# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1597# CONFIG_DEFAULT_SECURITY_SMACK is not set
1598# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1599CONFIG_DEFAULT_SECURITY_DAC=y
1600CONFIG_DEFAULT_SECURITY=""
1553CONFIG_CRYPTO=y 1601CONFIG_CRYPTO=y
1554 1602
1555# 1603#
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig
index 1cd1777aa436..43e6780a89d1 100644
--- a/arch/sh/configs/se7206_defconfig
+++ b/arch/sh/configs/se7206_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:45:28 2009 4# Mon Jan 4 13:30:00 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
35 36
@@ -64,6 +65,7 @@ CONFIG_AUDIT_TREE=y
64# 65#
65CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
66# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
67CONFIG_RCU_TRACE=y 69CONFIG_RCU_TRACE=y
68CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
69# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -115,6 +117,7 @@ CONFIG_TIMERFD=y
115CONFIG_EVENTFD=y 117CONFIG_EVENTFD=y
116CONFIG_AIO=y 118CONFIG_AIO=y
117CONFIG_HAVE_PERF_EVENTS=y 119CONFIG_HAVE_PERF_EVENTS=y
120CONFIG_PERF_USE_VMALLOC=y
118 121
119# 122#
120# Kernel Performance Events And Counters 123# Kernel Performance Events And Counters
@@ -122,11 +125,13 @@ CONFIG_HAVE_PERF_EVENTS=y
122CONFIG_PERF_EVENTS=y 125CONFIG_PERF_EVENTS=y
123CONFIG_EVENT_PROFILE=y 126CONFIG_EVENT_PROFILE=y
124# CONFIG_PERF_COUNTERS is not set 127# CONFIG_PERF_COUNTERS is not set
128# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
125CONFIG_VM_EVENT_COUNTERS=y 129CONFIG_VM_EVENT_COUNTERS=y
126# CONFIG_COMPAT_BRK is not set 130# CONFIG_COMPAT_BRK is not set
127# CONFIG_SLAB is not set 131# CONFIG_SLAB is not set
128# CONFIG_SLUB is not set 132# CONFIG_SLUB is not set
129CONFIG_SLOB=y 133CONFIG_SLOB=y
134# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
130CONFIG_PROFILING=y 135CONFIG_PROFILING=y
131CONFIG_TRACEPOINTS=y 136CONFIG_TRACEPOINTS=y
132CONFIG_OPROFILE=y 137CONFIG_OPROFILE=y
@@ -135,6 +140,7 @@ CONFIG_HAVE_OPROFILE=y
135CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
136CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
137CONFIG_HAVE_ARCH_TRACEHOOK=y 142CONFIG_HAVE_ARCH_TRACEHOOK=y
143CONFIG_HAVE_DMA_ATTRS=y
138CONFIG_HAVE_CLK=y 144CONFIG_HAVE_CLK=y
139CONFIG_HAVE_DMA_API_DEBUG=y 145CONFIG_HAVE_DMA_API_DEBUG=y
140 146
@@ -156,19 +162,47 @@ CONFIG_BLOCK=y
156CONFIG_LBDAF=y 162CONFIG_LBDAF=y
157# CONFIG_BLK_DEV_BSG is not set 163# CONFIG_BLK_DEV_BSG is not set
158# CONFIG_BLK_DEV_INTEGRITY is not set 164# CONFIG_BLK_DEV_INTEGRITY is not set
165# CONFIG_BLK_CGROUP is not set
159 166
160# 167#
161# IO Schedulers 168# IO Schedulers
162# 169#
163CONFIG_IOSCHED_NOOP=y 170CONFIG_IOSCHED_NOOP=y
164# CONFIG_IOSCHED_AS is not set
165# CONFIG_IOSCHED_DEADLINE is not set 171# CONFIG_IOSCHED_DEADLINE is not set
166# CONFIG_IOSCHED_CFQ is not set 172# CONFIG_IOSCHED_CFQ is not set
167# CONFIG_DEFAULT_AS is not set
168# CONFIG_DEFAULT_DEADLINE is not set 173# CONFIG_DEFAULT_DEADLINE is not set
169# CONFIG_DEFAULT_CFQ is not set 174# CONFIG_DEFAULT_CFQ is not set
170CONFIG_DEFAULT_NOOP=y 175CONFIG_DEFAULT_NOOP=y
171CONFIG_DEFAULT_IOSCHED="noop" 176CONFIG_DEFAULT_IOSCHED="noop"
177# CONFIG_INLINE_SPIN_TRYLOCK is not set
178# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
179# CONFIG_INLINE_SPIN_LOCK is not set
180# CONFIG_INLINE_SPIN_LOCK_BH is not set
181# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
182# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
183# CONFIG_INLINE_SPIN_UNLOCK is not set
184# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
185# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
186# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
187# CONFIG_INLINE_READ_TRYLOCK is not set
188# CONFIG_INLINE_READ_LOCK is not set
189# CONFIG_INLINE_READ_LOCK_BH is not set
190# CONFIG_INLINE_READ_LOCK_IRQ is not set
191# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
192# CONFIG_INLINE_READ_UNLOCK is not set
193# CONFIG_INLINE_READ_UNLOCK_BH is not set
194# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
195# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
196# CONFIG_INLINE_WRITE_TRYLOCK is not set
197# CONFIG_INLINE_WRITE_LOCK is not set
198# CONFIG_INLINE_WRITE_LOCK_BH is not set
199# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
200# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
201# CONFIG_INLINE_WRITE_UNLOCK is not set
202# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
203# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
204# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
205# CONFIG_MUTEX_SPIN_ON_OWNER is not set
172# CONFIG_FREEZER is not set 206# CONFIG_FREEZER is not set
173 207
174# 208#
@@ -243,7 +277,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
243# CONFIG_PHYS_ADDR_T_64BIT is not set 277# CONFIG_PHYS_ADDR_T_64BIT is not set
244CONFIG_ZONE_DMA_FLAG=0 278CONFIG_ZONE_DMA_FLAG=0
245CONFIG_NR_QUICK=2 279CONFIG_NR_QUICK=2
246CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
247CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 280CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
248 281
249# 282#
@@ -438,9 +471,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
438# CONFIG_AF_RXRPC is not set 471# CONFIG_AF_RXRPC is not set
439CONFIG_WIRELESS=y 472CONFIG_WIRELESS=y
440# CONFIG_CFG80211 is not set 473# CONFIG_CFG80211 is not set
441CONFIG_CFG80211_DEFAULT_PS_VALUE=0
442# CONFIG_WIRELESS_OLD_REGULATORY is not set
443# CONFIG_WIRELESS_EXT is not set
444# CONFIG_LIB80211 is not set 474# CONFIG_LIB80211 is not set
445 475
446# 476#
@@ -551,6 +581,10 @@ CONFIG_BLK_DEV=y
551# CONFIG_BLK_DEV_COW_COMMON is not set 581# CONFIG_BLK_DEV_COW_COMMON is not set
552CONFIG_BLK_DEV_LOOP=y 582CONFIG_BLK_DEV_LOOP=y
553# CONFIG_BLK_DEV_CRYPTOLOOP is not set 583# CONFIG_BLK_DEV_CRYPTOLOOP is not set
584
585#
586# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
587#
554# CONFIG_BLK_DEV_NBD is not set 588# CONFIG_BLK_DEV_NBD is not set
555CONFIG_BLK_DEV_RAM=y 589CONFIG_BLK_DEV_RAM=y
556CONFIG_BLK_DEV_RAM_COUNT=16 590CONFIG_BLK_DEV_RAM_COUNT=16
@@ -605,11 +639,11 @@ CONFIG_SMC91X=y
605# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 639# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
606# CONFIG_B44 is not set 640# CONFIG_B44 is not set
607# CONFIG_KS8842 is not set 641# CONFIG_KS8842 is not set
642# CONFIG_KS8851_MLL is not set
608# CONFIG_NETDEV_1000 is not set 643# CONFIG_NETDEV_1000 is not set
609# CONFIG_NETDEV_10000 is not set 644# CONFIG_NETDEV_10000 is not set
610CONFIG_WLAN=y 645CONFIG_WLAN=y
611# CONFIG_WLAN_PRE80211 is not set 646# CONFIG_HOSTAP is not set
612# CONFIG_WLAN_80211 is not set
613 647
614# 648#
615# Enable WiMAX (Networking options) to see the WiMAX drivers 649# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -685,6 +719,7 @@ CONFIG_SSB_POSSIBLE=y
685# 719#
686# CONFIG_MFD_CORE is not set 720# CONFIG_MFD_CORE is not set
687# CONFIG_MFD_SM501 is not set 721# CONFIG_MFD_SM501 is not set
722# CONFIG_MFD_SH_MOBILE_SDHI is not set
688# CONFIG_HTC_PASIC3 is not set 723# CONFIG_HTC_PASIC3 is not set
689# CONFIG_MFD_TMIO is not set 724# CONFIG_MFD_TMIO is not set
690# CONFIG_REGULATOR is not set 725# CONFIG_REGULATOR is not set
@@ -738,7 +773,9 @@ CONFIG_RTC_INTF_DEV=y
738# CONFIG_RTC_DRV_M48T86 is not set 773# CONFIG_RTC_DRV_M48T86 is not set
739# CONFIG_RTC_DRV_M48T35 is not set 774# CONFIG_RTC_DRV_M48T35 is not set
740# CONFIG_RTC_DRV_M48T59 is not set 775# CONFIG_RTC_DRV_M48T59 is not set
776# CONFIG_RTC_DRV_MSM6242 is not set
741# CONFIG_RTC_DRV_BQ4802 is not set 777# CONFIG_RTC_DRV_BQ4802 is not set
778# CONFIG_RTC_DRV_RP5C01 is not set
742# CONFIG_RTC_DRV_V3020 is not set 779# CONFIG_RTC_DRV_V3020 is not set
743 780
744# 781#
@@ -762,6 +799,7 @@ CONFIG_EXT2_FS=y
762# CONFIG_EXT2_FS_XATTR is not set 799# CONFIG_EXT2_FS_XATTR is not set
763# CONFIG_EXT3_FS is not set 800# CONFIG_EXT3_FS is not set
764# CONFIG_EXT4_FS is not set 801# CONFIG_EXT4_FS is not set
802CONFIG_EXT4_USE_FOR_EXT23=y
765# CONFIG_REISERFS_FS is not set 803# CONFIG_REISERFS_FS is not set
766# CONFIG_JFS_FS is not set 804# CONFIG_JFS_FS is not set
767# CONFIG_FS_POSIX_ACL is not set 805# CONFIG_FS_POSIX_ACL is not set
@@ -911,6 +949,7 @@ CONFIG_FRAME_POINTER=y
911# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 949# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
912# CONFIG_FAULT_INJECTION is not set 950# CONFIG_FAULT_INJECTION is not set
913# CONFIG_LATENCYTOP is not set 951# CONFIG_LATENCYTOP is not set
952# CONFIG_SYSCTL_SYSCALL_CHECK is not set
914# CONFIG_PAGE_POISONING is not set 953# CONFIG_PAGE_POISONING is not set
915CONFIG_NOP_TRACER=y 954CONFIG_NOP_TRACER=y
916CONFIG_HAVE_FUNCTION_TRACER=y 955CONFIG_HAVE_FUNCTION_TRACER=y
@@ -947,7 +986,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
947CONFIG_HAVE_ARCH_KGDB=y 986CONFIG_HAVE_ARCH_KGDB=y
948# CONFIG_KGDB is not set 987# CONFIG_KGDB is not set
949# CONFIG_SH_STANDARD_BIOS is not set 988# CONFIG_SH_STANDARD_BIOS is not set
950# CONFIG_EARLY_SCIF_CONSOLE is not set
951# CONFIG_STACK_DEBUG is not set 989# CONFIG_STACK_DEBUG is not set
952CONFIG_DEBUG_STACK_USAGE=y 990CONFIG_DEBUG_STACK_USAGE=y
953CONFIG_DUMP_CODE=y 991CONFIG_DUMP_CODE=y
@@ -960,7 +998,11 @@ CONFIG_DUMP_CODE=y
960# CONFIG_KEYS is not set 998# CONFIG_KEYS is not set
961# CONFIG_SECURITY is not set 999# CONFIG_SECURITY is not set
962# CONFIG_SECURITYFS is not set 1000# CONFIG_SECURITYFS is not set
963# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1001# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1002# CONFIG_DEFAULT_SECURITY_SMACK is not set
1003# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1004CONFIG_DEFAULT_SECURITY_DAC=y
1005CONFIG_DEFAULT_SECURITY=""
964CONFIG_CRYPTO=y 1006CONFIG_CRYPTO=y
965 1007
966# 1008#
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig
index 5531444b808c..ec494e32fa2e 100644
--- a/arch/sh/configs/se7343_defconfig
+++ b/arch/sh/configs/se7343_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:46:55 2009 4# Mon Jan 4 13:30:41 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -61,6 +63,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
61# 63#
62CONFIG_TREE_RCU=y 64CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
66# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 67# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 68CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 69# CONFIG_RCU_FANOUT_EXACT is not set
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y
99# CONFIG_SHMEM is not set 102# CONFIG_SHMEM is not set
100CONFIG_AIO=y 103CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y 104CONFIG_HAVE_PERF_EVENTS=y
105CONFIG_PERF_USE_VMALLOC=y
102 106
103# 107#
104# Kernel Performance Events And Counters 108# Kernel Performance Events And Counters
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
120CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
121CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
122 127
@@ -126,6 +131,7 @@ CONFIG_HAVE_DMA_API_DEBUG=y
126# CONFIG_SLOW_WORK is not set 131# CONFIG_SLOW_WORK is not set
127CONFIG_HAVE_GENERIC_DMA_COHERENT=y 132CONFIG_HAVE_GENERIC_DMA_COHERENT=y
128CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
134CONFIG_RT_MUTEXES=y
129CONFIG_BASE_SMALL=0 135CONFIG_BASE_SMALL=0
130CONFIG_MODULES=y 136CONFIG_MODULES=y
131# CONFIG_MODULE_FORCE_LOAD is not set 137# CONFIG_MODULE_FORCE_LOAD is not set
@@ -142,14 +148,41 @@ CONFIG_LBDAF=y
142# IO Schedulers 148# IO Schedulers
143# 149#
144CONFIG_IOSCHED_NOOP=y 150CONFIG_IOSCHED_NOOP=y
145# CONFIG_IOSCHED_AS is not set
146CONFIG_IOSCHED_DEADLINE=y 151CONFIG_IOSCHED_DEADLINE=y
147# CONFIG_IOSCHED_CFQ is not set 152# CONFIG_IOSCHED_CFQ is not set
148# CONFIG_DEFAULT_AS is not set
149CONFIG_DEFAULT_DEADLINE=y 153CONFIG_DEFAULT_DEADLINE=y
150# CONFIG_DEFAULT_CFQ is not set 154# CONFIG_DEFAULT_CFQ is not set
151# CONFIG_DEFAULT_NOOP is not set 155# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="deadline" 156CONFIG_DEFAULT_IOSCHED="deadline"
157# CONFIG_INLINE_SPIN_TRYLOCK is not set
158# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK is not set
160# CONFIG_INLINE_SPIN_LOCK_BH is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
162# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
163CONFIG_INLINE_SPIN_UNLOCK=y
164# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
165CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
166# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
167# CONFIG_INLINE_READ_TRYLOCK is not set
168# CONFIG_INLINE_READ_LOCK is not set
169# CONFIG_INLINE_READ_LOCK_BH is not set
170# CONFIG_INLINE_READ_LOCK_IRQ is not set
171# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
172CONFIG_INLINE_READ_UNLOCK=y
173# CONFIG_INLINE_READ_UNLOCK_BH is not set
174CONFIG_INLINE_READ_UNLOCK_IRQ=y
175# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
176# CONFIG_INLINE_WRITE_TRYLOCK is not set
177# CONFIG_INLINE_WRITE_LOCK is not set
178# CONFIG_INLINE_WRITE_LOCK_BH is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
180# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
181CONFIG_INLINE_WRITE_UNLOCK=y
182# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
183CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
184# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
185# CONFIG_MUTEX_SPIN_ON_OWNER is not set
153CONFIG_FREEZER=y 186CONFIG_FREEZER=y
154 187
155# 188#
@@ -228,8 +261,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
228# CONFIG_PHYS_ADDR_T_64BIT is not set 261# CONFIG_PHYS_ADDR_T_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=0 262CONFIG_ZONE_DMA_FLAG=0
230CONFIG_NR_QUICK=2 263CONFIG_NR_QUICK=2
231CONFIG_HAVE_MLOCK=y
232CONFIG_HAVE_MLOCKED_PAGE_BIT=y
233# CONFIG_KSM is not set 264# CONFIG_KSM is not set
234CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 265CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
235 266
@@ -263,7 +294,6 @@ CONFIG_SH_7343_SOLUTION_ENGINE=y
263# 294#
264CONFIG_SH_TIMER_TMU=y 295CONFIG_SH_TIMER_TMU=y
265# CONFIG_SH_TIMER_CMT is not set 296# CONFIG_SH_TIMER_CMT is not set
266CONFIG_SH_PCLK_FREQ=33333333
267CONFIG_SH_CLK_CPG=y 297CONFIG_SH_CLK_CPG=y
268# CONFIG_NO_HZ is not set 298# CONFIG_NO_HZ is not set
269# CONFIG_HIGH_RES_TIMERS is not set 299# CONFIG_HIGH_RES_TIMERS is not set
@@ -413,9 +443,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
413# CONFIG_AF_RXRPC is not set 443# CONFIG_AF_RXRPC is not set
414CONFIG_WIRELESS=y 444CONFIG_WIRELESS=y
415# CONFIG_CFG80211 is not set 445# CONFIG_CFG80211 is not set
416CONFIG_CFG80211_DEFAULT_PS_VALUE=0
417# CONFIG_WIRELESS_OLD_REGULATORY is not set
418# CONFIG_WIRELESS_EXT is not set
419# CONFIG_LIB80211 is not set 446# CONFIG_LIB80211 is not set
420 447
421# 448#
@@ -525,6 +552,10 @@ CONFIG_MTD_PHYSMAP=y
525CONFIG_BLK_DEV=y 552CONFIG_BLK_DEV=y
526# CONFIG_BLK_DEV_COW_COMMON is not set 553# CONFIG_BLK_DEV_COW_COMMON is not set
527# CONFIG_BLK_DEV_LOOP is not set 554# CONFIG_BLK_DEV_LOOP is not set
555
556#
557# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
558#
528# CONFIG_BLK_DEV_NBD is not set 559# CONFIG_BLK_DEV_NBD is not set
529# CONFIG_BLK_DEV_UB is not set 560# CONFIG_BLK_DEV_UB is not set
530# CONFIG_BLK_DEV_RAM is not set 561# CONFIG_BLK_DEV_RAM is not set
@@ -585,8 +616,8 @@ CONFIG_MII=y
585# CONFIG_NETDEV_1000 is not set 616# CONFIG_NETDEV_1000 is not set
586# CONFIG_NETDEV_10000 is not set 617# CONFIG_NETDEV_10000 is not set
587CONFIG_WLAN=y 618CONFIG_WLAN=y
588# CONFIG_WLAN_PRE80211 is not set 619# CONFIG_USB_ZD1201 is not set
589# CONFIG_WLAN_80211 is not set 620# CONFIG_HOSTAP is not set
590 621
591# 622#
592# Enable WiMAX (Networking options) to see the WiMAX drivers 623# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -628,6 +659,7 @@ CONFIG_USB_NET_DM9601=y
628CONFIG_INPUT=y 659CONFIG_INPUT=y
629# CONFIG_INPUT_FF_MEMLESS is not set 660# CONFIG_INPUT_FF_MEMLESS is not set
630# CONFIG_INPUT_POLLDEV is not set 661# CONFIG_INPUT_POLLDEV is not set
662# CONFIG_INPUT_SPARSEKMAP is not set
631 663
632# 664#
633# Userland interfaces 665# Userland interfaces
@@ -724,7 +756,6 @@ CONFIG_I2C_SH_MOBILE=y
724# 756#
725# Miscellaneous I2C Chip support 757# Miscellaneous I2C Chip support
726# 758#
727# CONFIG_DS1682 is not set
728# CONFIG_SENSORS_TSL2550 is not set 759# CONFIG_SENSORS_TSL2550 is not set
729# CONFIG_I2C_DEBUG_CORE is not set 760# CONFIG_I2C_DEBUG_CORE is not set
730# CONFIG_I2C_DEBUG_ALGO is not set 761# CONFIG_I2C_DEBUG_ALGO is not set
@@ -753,15 +784,18 @@ CONFIG_SSB_POSSIBLE=y
753# 784#
754# CONFIG_MFD_CORE is not set 785# CONFIG_MFD_CORE is not set
755# CONFIG_MFD_SM501 is not set 786# CONFIG_MFD_SM501 is not set
787# CONFIG_MFD_SH_MOBILE_SDHI is not set
756# CONFIG_HTC_PASIC3 is not set 788# CONFIG_HTC_PASIC3 is not set
757# CONFIG_TWL4030_CORE is not set 789# CONFIG_TWL4030_CORE is not set
758# CONFIG_MFD_TMIO is not set 790# CONFIG_MFD_TMIO is not set
759# CONFIG_PMIC_DA903X is not set 791# CONFIG_PMIC_DA903X is not set
792# CONFIG_PMIC_ADP5520 is not set
760# CONFIG_MFD_WM8400 is not set 793# CONFIG_MFD_WM8400 is not set
761# CONFIG_MFD_WM831X is not set 794# CONFIG_MFD_WM831X is not set
762# CONFIG_MFD_WM8350_I2C is not set 795# CONFIG_MFD_WM8350_I2C is not set
763# CONFIG_MFD_PCF50633 is not set 796# CONFIG_MFD_PCF50633 is not set
764# CONFIG_AB3100_CORE is not set 797# CONFIG_AB3100_CORE is not set
798# CONFIG_MFD_88PM8607 is not set
765# CONFIG_REGULATOR is not set 799# CONFIG_REGULATOR is not set
766# CONFIG_MEDIA_SUPPORT is not set 800# CONFIG_MEDIA_SUPPORT is not set
767 801
@@ -1173,10 +1207,11 @@ CONFIG_FRAME_WARN=1024
1173# CONFIG_DEBUG_FS is not set 1207# CONFIG_DEBUG_FS is not set
1174# CONFIG_HEADERS_CHECK is not set 1208# CONFIG_HEADERS_CHECK is not set
1175# CONFIG_DEBUG_KERNEL is not set 1209# CONFIG_DEBUG_KERNEL is not set
1176# CONFIG_DEBUG_BUGVERBOSE is not set 1210CONFIG_DEBUG_BUGVERBOSE=y
1177# CONFIG_DEBUG_MEMORY_INIT is not set 1211# CONFIG_DEBUG_MEMORY_INIT is not set
1178# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1212# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1179# CONFIG_LATENCYTOP is not set 1213# CONFIG_LATENCYTOP is not set
1214# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1180CONFIG_HAVE_FUNCTION_TRACER=y 1215CONFIG_HAVE_FUNCTION_TRACER=y
1181CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1216CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1182CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 1217CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -1189,9 +1224,6 @@ CONFIG_TRACING_SUPPORT=y
1189# CONFIG_SAMPLES is not set 1224# CONFIG_SAMPLES is not set
1190CONFIG_HAVE_ARCH_KGDB=y 1225CONFIG_HAVE_ARCH_KGDB=y
1191# CONFIG_SH_STANDARD_BIOS is not set 1226# CONFIG_SH_STANDARD_BIOS is not set
1192CONFIG_EARLY_SCIF_CONSOLE=y
1193CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000
1194CONFIG_EARLY_PRINTK=y
1195# CONFIG_DWARF_UNWINDER is not set 1227# CONFIG_DWARF_UNWINDER is not set
1196 1228
1197# 1229#
@@ -1200,7 +1232,11 @@ CONFIG_EARLY_PRINTK=y
1200# CONFIG_KEYS is not set 1232# CONFIG_KEYS is not set
1201# CONFIG_SECURITY is not set 1233# CONFIG_SECURITY is not set
1202# CONFIG_SECURITYFS is not set 1234# CONFIG_SECURITYFS is not set
1203# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1235# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1236# CONFIG_DEFAULT_SECURITY_SMACK is not set
1237# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1238CONFIG_DEFAULT_SECURITY_DAC=y
1239CONFIG_DEFAULT_SECURITY=""
1204CONFIG_CRYPTO=y 1240CONFIG_CRYPTO=y
1205 1241
1206# 1242#
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig
index 6921b199b1d6..ee87e2b2168f 100644
--- a/arch/sh/configs/se7619_defconfig
+++ b/arch/sh/configs/se7619_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:50:05 2009 4# Mon Jan 4 13:34:15 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 29CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 30CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 34CONFIG_CONSTRUCTORS=y
34 35
@@ -54,6 +55,7 @@ CONFIG_KERNEL_GZIP=y
54# 55#
55CONFIG_TREE_RCU=y 56CONFIG_TREE_RCU=y
56# CONFIG_TREE_PREEMPT_RCU is not set 57# CONFIG_TREE_PREEMPT_RCU is not set
58# CONFIG_TINY_RCU is not set
57# CONFIG_RCU_TRACE is not set 59# CONFIG_RCU_TRACE is not set
58CONFIG_RCU_FANOUT=32 60CONFIG_RCU_FANOUT=32
59# CONFIG_RCU_FANOUT_EXACT is not set 61# CONFIG_RCU_FANOUT_EXACT is not set
@@ -84,6 +86,7 @@ CONFIG_TIMERFD=y
84CONFIG_EVENTFD=y 86CONFIG_EVENTFD=y
85CONFIG_AIO=y 87CONFIG_AIO=y
86CONFIG_HAVE_PERF_EVENTS=y 88CONFIG_HAVE_PERF_EVENTS=y
89CONFIG_PERF_USE_VMALLOC=y
87 90
88# 91#
89# Kernel Performance Events And Counters 92# Kernel Performance Events And Counters
@@ -95,11 +98,13 @@ CONFIG_COMPAT_BRK=y
95CONFIG_SLAB=y 98CONFIG_SLAB=y
96# CONFIG_SLUB is not set 99# CONFIG_SLUB is not set
97# CONFIG_SLOB is not set 100# CONFIG_SLOB is not set
101# CONFIG_MMAP_ALLOW_UNINITIALIZED is not set
98# CONFIG_PROFILING is not set 102# CONFIG_PROFILING is not set
99CONFIG_HAVE_OPROFILE=y 103CONFIG_HAVE_OPROFILE=y
100CONFIG_HAVE_KPROBES=y 104CONFIG_HAVE_KPROBES=y
101CONFIG_HAVE_KRETPROBES=y 105CONFIG_HAVE_KRETPROBES=y
102CONFIG_HAVE_ARCH_TRACEHOOK=y 106CONFIG_HAVE_ARCH_TRACEHOOK=y
107CONFIG_HAVE_DMA_ATTRS=y
103CONFIG_HAVE_CLK=y 108CONFIG_HAVE_CLK=y
104CONFIG_HAVE_DMA_API_DEBUG=y 109CONFIG_HAVE_DMA_API_DEBUG=y
105 110
@@ -120,14 +125,41 @@ CONFIG_LBDAF=y
120# IO Schedulers 125# IO Schedulers
121# 126#
122CONFIG_IOSCHED_NOOP=y 127CONFIG_IOSCHED_NOOP=y
123# CONFIG_IOSCHED_AS is not set
124# CONFIG_IOSCHED_DEADLINE is not set 128# CONFIG_IOSCHED_DEADLINE is not set
125# CONFIG_IOSCHED_CFQ is not set 129# CONFIG_IOSCHED_CFQ is not set
126# CONFIG_DEFAULT_AS is not set
127# CONFIG_DEFAULT_DEADLINE is not set 130# CONFIG_DEFAULT_DEADLINE is not set
128# CONFIG_DEFAULT_CFQ is not set 131# CONFIG_DEFAULT_CFQ is not set
129CONFIG_DEFAULT_NOOP=y 132CONFIG_DEFAULT_NOOP=y
130CONFIG_DEFAULT_IOSCHED="noop" 133CONFIG_DEFAULT_IOSCHED="noop"
134# CONFIG_INLINE_SPIN_TRYLOCK is not set
135# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
136# CONFIG_INLINE_SPIN_LOCK is not set
137# CONFIG_INLINE_SPIN_LOCK_BH is not set
138# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
139# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
140CONFIG_INLINE_SPIN_UNLOCK=y
141# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
142CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
143# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
144# CONFIG_INLINE_READ_TRYLOCK is not set
145# CONFIG_INLINE_READ_LOCK is not set
146# CONFIG_INLINE_READ_LOCK_BH is not set
147# CONFIG_INLINE_READ_LOCK_IRQ is not set
148# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
149CONFIG_INLINE_READ_UNLOCK=y
150# CONFIG_INLINE_READ_UNLOCK_BH is not set
151CONFIG_INLINE_READ_UNLOCK_IRQ=y
152# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
153# CONFIG_INLINE_WRITE_TRYLOCK is not set
154# CONFIG_INLINE_WRITE_LOCK is not set
155# CONFIG_INLINE_WRITE_LOCK_BH is not set
156# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
157# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
158CONFIG_INLINE_WRITE_UNLOCK=y
159# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
160CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
161# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
162# CONFIG_MUTEX_SPIN_ON_OWNER is not set
131# CONFIG_FREEZER is not set 163# CONFIG_FREEZER is not set
132 164
133# 165#
@@ -201,7 +233,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
201# CONFIG_PHYS_ADDR_T_64BIT is not set 233# CONFIG_PHYS_ADDR_T_64BIT is not set
202CONFIG_ZONE_DMA_FLAG=0 234CONFIG_ZONE_DMA_FLAG=0
203CONFIG_NR_QUICK=2 235CONFIG_NR_QUICK=2
204CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
205CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 236CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
206 237
207# 238#
@@ -401,6 +432,10 @@ CONFIG_MTD_PHYSMAP=y
401CONFIG_BLK_DEV=y 432CONFIG_BLK_DEV=y
402# CONFIG_BLK_DEV_COW_COMMON is not set 433# CONFIG_BLK_DEV_COW_COMMON is not set
403# CONFIG_BLK_DEV_LOOP is not set 434# CONFIG_BLK_DEV_LOOP is not set
435
436#
437# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
438#
404# CONFIG_BLK_DEV_RAM is not set 439# CONFIG_BLK_DEV_RAM is not set
405# CONFIG_CDROM_PKTCDVD is not set 440# CONFIG_CDROM_PKTCDVD is not set
406# CONFIG_BLK_DEV_HD is not set 441# CONFIG_BLK_DEV_HD is not set
@@ -432,6 +467,7 @@ CONFIG_HAVE_IDE=y
432CONFIG_INPUT=y 467CONFIG_INPUT=y
433# CONFIG_INPUT_FF_MEMLESS is not set 468# CONFIG_INPUT_FF_MEMLESS is not set
434# CONFIG_INPUT_POLLDEV is not set 469# CONFIG_INPUT_POLLDEV is not set
470# CONFIG_INPUT_SPARSEKMAP is not set
435 471
436# 472#
437# Userland interfaces 473# Userland interfaces
@@ -508,6 +544,7 @@ CONFIG_SSB_POSSIBLE=y
508# 544#
509# CONFIG_MFD_CORE is not set 545# CONFIG_MFD_CORE is not set
510# CONFIG_MFD_SM501 is not set 546# CONFIG_MFD_SM501 is not set
547# CONFIG_MFD_SH_MOBILE_SDHI is not set
511# CONFIG_HTC_PASIC3 is not set 548# CONFIG_HTC_PASIC3 is not set
512# CONFIG_MFD_TMIO is not set 549# CONFIG_MFD_TMIO is not set
513# CONFIG_REGULATOR is not set 550# CONFIG_REGULATOR is not set
@@ -575,6 +612,7 @@ CONFIG_RTC_LIB=y
575# CONFIG_EXT2_FS is not set 612# CONFIG_EXT2_FS is not set
576# CONFIG_EXT3_FS is not set 613# CONFIG_EXT3_FS is not set
577# CONFIG_EXT4_FS is not set 614# CONFIG_EXT4_FS is not set
615CONFIG_EXT4_USE_FOR_EXT23=y
578# CONFIG_REISERFS_FS is not set 616# CONFIG_REISERFS_FS is not set
579# CONFIG_JFS_FS is not set 617# CONFIG_JFS_FS is not set
580# CONFIG_FS_POSIX_ACL is not set 618# CONFIG_FS_POSIX_ACL is not set
@@ -661,10 +699,11 @@ CONFIG_FRAME_WARN=1024
661# CONFIG_UNUSED_SYMBOLS is not set 699# CONFIG_UNUSED_SYMBOLS is not set
662# CONFIG_HEADERS_CHECK is not set 700# CONFIG_HEADERS_CHECK is not set
663# CONFIG_DEBUG_KERNEL is not set 701# CONFIG_DEBUG_KERNEL is not set
664# CONFIG_DEBUG_BUGVERBOSE is not set 702CONFIG_DEBUG_BUGVERBOSE=y
665# CONFIG_DEBUG_MEMORY_INIT is not set 703# CONFIG_DEBUG_MEMORY_INIT is not set
666# CONFIG_RCU_CPU_STALL_DETECTOR is not set 704# CONFIG_RCU_CPU_STALL_DETECTOR is not set
667# CONFIG_LATENCYTOP is not set 705# CONFIG_LATENCYTOP is not set
706# CONFIG_SYSCTL_SYSCALL_CHECK is not set
668CONFIG_HAVE_FUNCTION_TRACER=y 707CONFIG_HAVE_FUNCTION_TRACER=y
669CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 708CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
670CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 709CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -677,7 +716,6 @@ CONFIG_TRACING_SUPPORT=y
677# CONFIG_SAMPLES is not set 716# CONFIG_SAMPLES is not set
678CONFIG_HAVE_ARCH_KGDB=y 717CONFIG_HAVE_ARCH_KGDB=y
679# CONFIG_SH_STANDARD_BIOS is not set 718# CONFIG_SH_STANDARD_BIOS is not set
680# CONFIG_EARLY_SCIF_CONSOLE is not set
681# CONFIG_DWARF_UNWINDER is not set 719# CONFIG_DWARF_UNWINDER is not set
682 720
683# 721#
@@ -685,7 +723,11 @@ CONFIG_HAVE_ARCH_KGDB=y
685# 723#
686# CONFIG_KEYS is not set 724# CONFIG_KEYS is not set
687# CONFIG_SECURITYFS is not set 725# CONFIG_SECURITYFS is not set
688# CONFIG_SECURITY_FILE_CAPABILITIES is not set 726# CONFIG_DEFAULT_SECURITY_SELINUX is not set
727# CONFIG_DEFAULT_SECURITY_SMACK is not set
728# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
729CONFIG_DEFAULT_SECURITY_DAC=y
730CONFIG_DEFAULT_SECURITY=""
689# CONFIG_CRYPTO is not set 731# CONFIG_CRYPTO is not set
690# CONFIG_BINARY_PRINTF is not set 732# CONFIG_BINARY_PRINTF is not set
691 733
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig
index 3abb06879f02..03f4219f2086 100644
--- a/arch/sh/configs/se7705_defconfig
+++ b/arch/sh/configs/se7705_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:50:52 2009 4# Mon Jan 4 13:34:37 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 29CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 30CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 34CONFIG_CONSTRUCTORS=y
34 35
@@ -59,6 +60,7 @@ CONFIG_KERNEL_GZIP=y
59# 60#
60CONFIG_TREE_RCU=y 61CONFIG_TREE_RCU=y
61# CONFIG_TREE_PREEMPT_RCU is not set 62# CONFIG_TREE_PREEMPT_RCU is not set
63# CONFIG_TINY_RCU is not set
62# CONFIG_RCU_TRACE is not set 64# CONFIG_RCU_TRACE is not set
63CONFIG_RCU_FANOUT=32 65CONFIG_RCU_FANOUT=32
64# CONFIG_RCU_FANOUT_EXACT is not set 66# CONFIG_RCU_FANOUT_EXACT is not set
@@ -94,6 +96,7 @@ CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 96CONFIG_SHMEM=y
95CONFIG_AIO=y 97CONFIG_AIO=y
96CONFIG_HAVE_PERF_EVENTS=y 98CONFIG_HAVE_PERF_EVENTS=y
99CONFIG_PERF_USE_VMALLOC=y
97 100
98# 101#
99# Kernel Performance Events And Counters 102# Kernel Performance Events And Counters
@@ -111,6 +114,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
113CONFIG_HAVE_ARCH_TRACEHOOK=y 116CONFIG_HAVE_ARCH_TRACEHOOK=y
117CONFIG_HAVE_DMA_ATTRS=y
114CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
115CONFIG_HAVE_DMA_API_DEBUG=y 119CONFIG_HAVE_DMA_API_DEBUG=y
116 120
@@ -136,14 +140,41 @@ CONFIG_LBDAF=y
136# IO Schedulers 140# IO Schedulers
137# 141#
138CONFIG_IOSCHED_NOOP=y 142CONFIG_IOSCHED_NOOP=y
139CONFIG_IOSCHED_AS=y
140# CONFIG_IOSCHED_DEADLINE is not set 143# CONFIG_IOSCHED_DEADLINE is not set
141# CONFIG_IOSCHED_CFQ is not set 144# CONFIG_IOSCHED_CFQ is not set
142CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_DEADLINE is not set 145# CONFIG_DEFAULT_DEADLINE is not set
144# CONFIG_DEFAULT_CFQ is not set 146# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 147CONFIG_DEFAULT_NOOP=y
146CONFIG_DEFAULT_IOSCHED="anticipatory" 148CONFIG_DEFAULT_IOSCHED="noop"
149# CONFIG_INLINE_SPIN_TRYLOCK is not set
150# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
151# CONFIG_INLINE_SPIN_LOCK is not set
152# CONFIG_INLINE_SPIN_LOCK_BH is not set
153# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
154# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
155# CONFIG_INLINE_SPIN_UNLOCK is not set
156# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
157# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
158# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
159# CONFIG_INLINE_READ_TRYLOCK is not set
160# CONFIG_INLINE_READ_LOCK is not set
161# CONFIG_INLINE_READ_LOCK_BH is not set
162# CONFIG_INLINE_READ_LOCK_IRQ is not set
163# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
164# CONFIG_INLINE_READ_UNLOCK is not set
165# CONFIG_INLINE_READ_UNLOCK_BH is not set
166# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
167# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
168# CONFIG_INLINE_WRITE_TRYLOCK is not set
169# CONFIG_INLINE_WRITE_LOCK is not set
170# CONFIG_INLINE_WRITE_LOCK_BH is not set
171# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
172# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
173# CONFIG_INLINE_WRITE_UNLOCK is not set
174# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
175# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
176# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
177# CONFIG_MUTEX_SPIN_ON_OWNER is not set
147# CONFIG_FREEZER is not set 178# CONFIG_FREEZER is not set
148 179
149# 180#
@@ -219,8 +250,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
219# CONFIG_PHYS_ADDR_T_64BIT is not set 250# CONFIG_PHYS_ADDR_T_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=0 251CONFIG_ZONE_DMA_FLAG=0
221CONFIG_NR_QUICK=2 252CONFIG_NR_QUICK=2
222CONFIG_HAVE_MLOCK=y
223CONFIG_HAVE_MLOCKED_PAGE_BIT=y
224# CONFIG_KSM is not set 253# CONFIG_KSM is not set
225CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 254CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
226 255
@@ -403,9 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
403# CONFIG_AF_RXRPC is not set 432# CONFIG_AF_RXRPC is not set
404CONFIG_WIRELESS=y 433CONFIG_WIRELESS=y
405# CONFIG_CFG80211 is not set 434# CONFIG_CFG80211 is not set
406CONFIG_CFG80211_DEFAULT_PS_VALUE=0
407# CONFIG_WIRELESS_OLD_REGULATORY is not set
408# CONFIG_WIRELESS_EXT is not set
409# CONFIG_LIB80211 is not set 435# CONFIG_LIB80211 is not set
410 436
411# 437#
@@ -510,6 +536,10 @@ CONFIG_MTD_CFI_UTIL=y
510CONFIG_BLK_DEV=y 536CONFIG_BLK_DEV=y
511# CONFIG_BLK_DEV_COW_COMMON is not set 537# CONFIG_BLK_DEV_COW_COMMON is not set
512# CONFIG_BLK_DEV_LOOP is not set 538# CONFIG_BLK_DEV_LOOP is not set
539
540#
541# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
542#
513# CONFIG_BLK_DEV_NBD is not set 543# CONFIG_BLK_DEV_NBD is not set
514CONFIG_BLK_DEV_RAM=y 544CONFIG_BLK_DEV_RAM=y
515CONFIG_BLK_DEV_RAM_COUNT=16 545CONFIG_BLK_DEV_RAM_COUNT=16
@@ -564,11 +594,11 @@ CONFIG_STNIC=y
564# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 594# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
565# CONFIG_B44 is not set 595# CONFIG_B44 is not set
566# CONFIG_KS8842 is not set 596# CONFIG_KS8842 is not set
597# CONFIG_KS8851_MLL is not set
567CONFIG_NETDEV_1000=y 598CONFIG_NETDEV_1000=y
568CONFIG_NETDEV_10000=y 599CONFIG_NETDEV_10000=y
569CONFIG_WLAN=y 600CONFIG_WLAN=y
570# CONFIG_WLAN_PRE80211 is not set 601# CONFIG_HOSTAP is not set
571# CONFIG_WLAN_80211 is not set
572 602
573# 603#
574# Enable WiMAX (Networking options) to see the WiMAX drivers 604# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -598,6 +628,7 @@ CONFIG_SLHC=y
598CONFIG_INPUT=y 628CONFIG_INPUT=y
599# CONFIG_INPUT_FF_MEMLESS is not set 629# CONFIG_INPUT_FF_MEMLESS is not set
600# CONFIG_INPUT_POLLDEV is not set 630# CONFIG_INPUT_POLLDEV is not set
631# CONFIG_INPUT_SPARSEKMAP is not set
601 632
602# 633#
603# Userland interfaces 634# Userland interfaces
@@ -625,6 +656,7 @@ CONFIG_SERIO=y
625# CONFIG_SERIO_SERPORT is not set 656# CONFIG_SERIO_SERPORT is not set
626# CONFIG_SERIO_LIBPS2 is not set 657# CONFIG_SERIO_LIBPS2 is not set
627# CONFIG_SERIO_RAW is not set 658# CONFIG_SERIO_RAW is not set
659# CONFIG_SERIO_ALTERA_PS2 is not set
628# CONFIG_GAMEPORT is not set 660# CONFIG_GAMEPORT is not set
629 661
630# 662#
@@ -696,6 +728,7 @@ CONFIG_SSB_POSSIBLE=y
696# 728#
697# CONFIG_MFD_CORE is not set 729# CONFIG_MFD_CORE is not set
698# CONFIG_MFD_SM501 is not set 730# CONFIG_MFD_SM501 is not set
731# CONFIG_MFD_SH_MOBILE_SDHI is not set
699# CONFIG_HTC_PASIC3 is not set 732# CONFIG_HTC_PASIC3 is not set
700# CONFIG_MFD_TMIO is not set 733# CONFIG_MFD_TMIO is not set
701# CONFIG_REGULATOR is not set 734# CONFIG_REGULATOR is not set
@@ -765,6 +798,7 @@ CONFIG_EXT2_FS=y
765# CONFIG_EXT2_FS_XIP is not set 798# CONFIG_EXT2_FS_XIP is not set
766# CONFIG_EXT3_FS is not set 799# CONFIG_EXT3_FS is not set
767# CONFIG_EXT4_FS is not set 800# CONFIG_EXT4_FS is not set
801CONFIG_EXT4_USE_FOR_EXT23=y
768# CONFIG_REISERFS_FS is not set 802# CONFIG_REISERFS_FS is not set
769# CONFIG_JFS_FS is not set 803# CONFIG_JFS_FS is not set
770# CONFIG_FS_POSIX_ACL is not set 804# CONFIG_FS_POSIX_ACL is not set
@@ -809,7 +843,6 @@ CONFIG_PROC_SYSCTL=y
809CONFIG_PROC_PAGE_MONITOR=y 843CONFIG_PROC_PAGE_MONITOR=y
810# CONFIG_SYSFS is not set 844# CONFIG_SYSFS is not set
811# CONFIG_TMPFS is not set 845# CONFIG_TMPFS is not set
812# CONFIG_HUGETLBFS is not set
813# CONFIG_HUGETLB_PAGE is not set 846# CONFIG_HUGETLB_PAGE is not set
814CONFIG_MISC_FILESYSTEMS=y 847CONFIG_MISC_FILESYSTEMS=y
815# CONFIG_ADFS_FS is not set 848# CONFIG_ADFS_FS is not set
@@ -877,10 +910,11 @@ CONFIG_FRAME_WARN=1024
877# CONFIG_UNUSED_SYMBOLS is not set 910# CONFIG_UNUSED_SYMBOLS is not set
878# CONFIG_HEADERS_CHECK is not set 911# CONFIG_HEADERS_CHECK is not set
879# CONFIG_DEBUG_KERNEL is not set 912# CONFIG_DEBUG_KERNEL is not set
880# CONFIG_DEBUG_BUGVERBOSE is not set 913CONFIG_DEBUG_BUGVERBOSE=y
881# CONFIG_DEBUG_MEMORY_INIT is not set 914# CONFIG_DEBUG_MEMORY_INIT is not set
882# CONFIG_RCU_CPU_STALL_DETECTOR is not set 915# CONFIG_RCU_CPU_STALL_DETECTOR is not set
883# CONFIG_LATENCYTOP is not set 916# CONFIG_LATENCYTOP is not set
917# CONFIG_SYSCTL_SYSCALL_CHECK is not set
884CONFIG_HAVE_FUNCTION_TRACER=y 918CONFIG_HAVE_FUNCTION_TRACER=y
885CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 919CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
886CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 920CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -893,7 +927,6 @@ CONFIG_TRACING_SUPPORT=y
893# CONFIG_SAMPLES is not set 927# CONFIG_SAMPLES is not set
894CONFIG_HAVE_ARCH_KGDB=y 928CONFIG_HAVE_ARCH_KGDB=y
895# CONFIG_SH_STANDARD_BIOS is not set 929# CONFIG_SH_STANDARD_BIOS is not set
896# CONFIG_EARLY_SCIF_CONSOLE is not set
897# CONFIG_DWARF_UNWINDER is not set 930# CONFIG_DWARF_UNWINDER is not set
898 931
899# 932#
@@ -901,7 +934,11 @@ CONFIG_HAVE_ARCH_KGDB=y
901# 934#
902# CONFIG_KEYS is not set 935# CONFIG_KEYS is not set
903# CONFIG_SECURITYFS is not set 936# CONFIG_SECURITYFS is not set
904# CONFIG_SECURITY_FILE_CAPABILITIES is not set 937# CONFIG_DEFAULT_SECURITY_SELINUX is not set
938# CONFIG_DEFAULT_SECURITY_SMACK is not set
939# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
940CONFIG_DEFAULT_SECURITY_DAC=y
941CONFIG_DEFAULT_SECURITY=""
905CONFIG_CRYPTO=y 942CONFIG_CRYPTO=y
906 943
907# 944#
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig
index 1a43cfecb392..cfa58199a368 100644
--- a/arch/sh/configs/se7712_defconfig
+++ b/arch/sh/configs/se7712_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:53:32 2009 4# Mon Jan 4 13:44:56 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -28,6 +28,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
28CONFIG_ARCH_NO_VIRT_TO_BUS=y 28CONFIG_ARCH_NO_VIRT_TO_BUS=y
29CONFIG_ARCH_HAS_DEFAULT_IDLE=y 29CONFIG_ARCH_HAS_DEFAULT_IDLE=y
30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
31CONFIG_DMA_NONCOHERENT=y
31CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
32CONFIG_CONSTRUCTORS=y 33CONFIG_CONSTRUCTORS=y
33 34
@@ -60,6 +61,7 @@ CONFIG_BSD_PROCESS_ACCT=y
60# 61#
61CONFIG_TREE_RCU=y 62CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 63# CONFIG_TREE_PREEMPT_RCU is not set
64# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 65# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 66CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 67# CONFIG_RCU_FANOUT_EXACT is not set
@@ -95,6 +97,7 @@ CONFIG_EVENTFD=y
95# CONFIG_SHMEM is not set 97# CONFIG_SHMEM is not set
96CONFIG_AIO=y 98CONFIG_AIO=y
97CONFIG_HAVE_PERF_EVENTS=y 99CONFIG_HAVE_PERF_EVENTS=y
100CONFIG_PERF_USE_VMALLOC=y
98 101
99# 102#
100# Kernel Performance Events And Counters 103# Kernel Performance Events And Counters
@@ -113,6 +116,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 118CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_DMA_ATTRS=y
116CONFIG_HAVE_CLK=y 120CONFIG_HAVE_CLK=y
117CONFIG_HAVE_DMA_API_DEBUG=y 121CONFIG_HAVE_DMA_API_DEBUG=y
118 122
@@ -138,14 +142,41 @@ CONFIG_LBDAF=y
138# IO Schedulers 142# IO Schedulers
139# 143#
140CONFIG_IOSCHED_NOOP=y 144CONFIG_IOSCHED_NOOP=y
141# CONFIG_IOSCHED_AS is not set
142# CONFIG_IOSCHED_DEADLINE is not set 145# CONFIG_IOSCHED_DEADLINE is not set
143# CONFIG_IOSCHED_CFQ is not set 146# CONFIG_IOSCHED_CFQ is not set
144# CONFIG_DEFAULT_AS is not set
145# CONFIG_DEFAULT_DEADLINE is not set 147# CONFIG_DEFAULT_DEADLINE is not set
146# CONFIG_DEFAULT_CFQ is not set 148# CONFIG_DEFAULT_CFQ is not set
147CONFIG_DEFAULT_NOOP=y 149CONFIG_DEFAULT_NOOP=y
148CONFIG_DEFAULT_IOSCHED="noop" 150CONFIG_DEFAULT_IOSCHED="noop"
151# CONFIG_INLINE_SPIN_TRYLOCK is not set
152# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
153# CONFIG_INLINE_SPIN_LOCK is not set
154# CONFIG_INLINE_SPIN_LOCK_BH is not set
155# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
156# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
157CONFIG_INLINE_SPIN_UNLOCK=y
158# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
159CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
160# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
161# CONFIG_INLINE_READ_TRYLOCK is not set
162# CONFIG_INLINE_READ_LOCK is not set
163# CONFIG_INLINE_READ_LOCK_BH is not set
164# CONFIG_INLINE_READ_LOCK_IRQ is not set
165# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
166CONFIG_INLINE_READ_UNLOCK=y
167# CONFIG_INLINE_READ_UNLOCK_BH is not set
168CONFIG_INLINE_READ_UNLOCK_IRQ=y
169# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
170# CONFIG_INLINE_WRITE_TRYLOCK is not set
171# CONFIG_INLINE_WRITE_LOCK is not set
172# CONFIG_INLINE_WRITE_LOCK_BH is not set
173# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
174# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
175CONFIG_INLINE_WRITE_UNLOCK=y
176# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
177CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
178# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
179# CONFIG_MUTEX_SPIN_ON_OWNER is not set
149# CONFIG_FREEZER is not set 180# CONFIG_FREEZER is not set
150 181
151# 182#
@@ -221,8 +252,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
221# CONFIG_PHYS_ADDR_T_64BIT is not set 252# CONFIG_PHYS_ADDR_T_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=0 253CONFIG_ZONE_DMA_FLAG=0
223CONFIG_NR_QUICK=2 254CONFIG_NR_QUICK=2
224CONFIG_HAVE_MLOCK=y
225CONFIG_HAVE_MLOCKED_PAGE_BIT=y
226# CONFIG_KSM is not set 255# CONFIG_KSM is not set
227CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 256CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
228 257
@@ -452,9 +481,6 @@ CONFIG_NET_SCH_FIFO=y
452CONFIG_FIB_RULES=y 481CONFIG_FIB_RULES=y
453CONFIG_WIRELESS=y 482CONFIG_WIRELESS=y
454# CONFIG_CFG80211 is not set 483# CONFIG_CFG80211 is not set
455CONFIG_CFG80211_DEFAULT_PS_VALUE=0
456# CONFIG_WIRELESS_OLD_REGULATORY is not set
457# CONFIG_WIRELESS_EXT is not set
458# CONFIG_LIB80211 is not set 484# CONFIG_LIB80211 is not set
459 485
460# 486#
@@ -565,6 +591,10 @@ CONFIG_MTD_CFI_UTIL=y
565CONFIG_BLK_DEV=y 591CONFIG_BLK_DEV=y
566# CONFIG_BLK_DEV_COW_COMMON is not set 592# CONFIG_BLK_DEV_COW_COMMON is not set
567# CONFIG_BLK_DEV_LOOP is not set 593# CONFIG_BLK_DEV_LOOP is not set
594
595#
596# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
597#
568# CONFIG_BLK_DEV_NBD is not set 598# CONFIG_BLK_DEV_NBD is not set
569# CONFIG_BLK_DEV_RAM is not set 599# CONFIG_BLK_DEV_RAM is not set
570# CONFIG_CDROM_PKTCDVD is not set 600# CONFIG_CDROM_PKTCDVD is not set
@@ -675,11 +705,11 @@ CONFIG_SH_ETH=y
675# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 705# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
676# CONFIG_B44 is not set 706# CONFIG_B44 is not set
677# CONFIG_KS8842 is not set 707# CONFIG_KS8842 is not set
708# CONFIG_KS8851_MLL is not set
678CONFIG_NETDEV_1000=y 709CONFIG_NETDEV_1000=y
679CONFIG_NETDEV_10000=y 710CONFIG_NETDEV_10000=y
680CONFIG_WLAN=y 711CONFIG_WLAN=y
681# CONFIG_WLAN_PRE80211 is not set 712# CONFIG_HOSTAP is not set
682# CONFIG_WLAN_80211 is not set
683 713
684# 714#
685# Enable WiMAX (Networking options) to see the WiMAX drivers 715# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -757,6 +787,7 @@ CONFIG_SSB_POSSIBLE=y
757# 787#
758# CONFIG_MFD_CORE is not set 788# CONFIG_MFD_CORE is not set
759# CONFIG_MFD_SM501 is not set 789# CONFIG_MFD_SM501 is not set
790# CONFIG_MFD_SH_MOBILE_SDHI is not set
760# CONFIG_HTC_PASIC3 is not set 791# CONFIG_HTC_PASIC3 is not set
761# CONFIG_MFD_TMIO is not set 792# CONFIG_MFD_TMIO is not set
762# CONFIG_REGULATOR is not set 793# CONFIG_REGULATOR is not set
@@ -888,7 +919,6 @@ CONFIG_PROC_FS=y
888CONFIG_PROC_SYSCTL=y 919CONFIG_PROC_SYSCTL=y
889CONFIG_PROC_PAGE_MONITOR=y 920CONFIG_PROC_PAGE_MONITOR=y
890CONFIG_SYSFS=y 921CONFIG_SYSFS=y
891# CONFIG_HUGETLBFS is not set
892# CONFIG_HUGETLB_PAGE is not set 922# CONFIG_HUGETLB_PAGE is not set
893# CONFIG_CONFIGFS_FS is not set 923# CONFIG_CONFIGFS_FS is not set
894CONFIG_MISC_FILESYSTEMS=y 924CONFIG_MISC_FILESYSTEMS=y
@@ -1021,7 +1051,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1021CONFIG_HAVE_ARCH_KGDB=y 1051CONFIG_HAVE_ARCH_KGDB=y
1022# CONFIG_KGDB is not set 1052# CONFIG_KGDB is not set
1023# CONFIG_SH_STANDARD_BIOS is not set 1053# CONFIG_SH_STANDARD_BIOS is not set
1024# CONFIG_EARLY_SCIF_CONSOLE is not set
1025# CONFIG_STACK_DEBUG is not set 1054# CONFIG_STACK_DEBUG is not set
1026# CONFIG_DEBUG_STACK_USAGE is not set 1055# CONFIG_DEBUG_STACK_USAGE is not set
1027# CONFIG_4KSTACKS is not set 1056# CONFIG_4KSTACKS is not set
@@ -1035,7 +1064,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1035# CONFIG_KEYS is not set 1064# CONFIG_KEYS is not set
1036# CONFIG_SECURITY is not set 1065# CONFIG_SECURITY is not set
1037# CONFIG_SECURITYFS is not set 1066# CONFIG_SECURITYFS is not set
1038# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1067# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1068# CONFIG_DEFAULT_SECURITY_SMACK is not set
1069# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1070CONFIG_DEFAULT_SECURITY_DAC=y
1071CONFIG_DEFAULT_SECURITY=""
1039CONFIG_CRYPTO=y 1072CONFIG_CRYPTO=y
1040 1073
1041# 1074#
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig
index b8a3c8c4bac3..201283c829a1 100644
--- a/arch/sh/configs/se7721_defconfig
+++ b/arch/sh/configs/se7721_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:57:11 2009 4# Mon Jan 4 13:46:58 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 29CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 30CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 34CONFIG_CONSTRUCTORS=y
34 35
@@ -61,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y
61# 62#
62CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -100,6 +102,7 @@ CONFIG_EVENTFD=y
100# CONFIG_SHMEM is not set 102# CONFIG_SHMEM is not set
101CONFIG_AIO=y 103CONFIG_AIO=y
102CONFIG_HAVE_PERF_EVENTS=y 104CONFIG_HAVE_PERF_EVENTS=y
105CONFIG_PERF_USE_VMALLOC=y
103 106
104# 107#
105# Kernel Performance Events And Counters 108# Kernel Performance Events And Counters
@@ -118,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
121CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
122CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
123 127
@@ -143,14 +147,41 @@ CONFIG_LBDAF=y
143# IO Schedulers 147# IO Schedulers
144# 148#
145CONFIG_IOSCHED_NOOP=y 149CONFIG_IOSCHED_NOOP=y
146# CONFIG_IOSCHED_AS is not set
147# CONFIG_IOSCHED_DEADLINE is not set 150# CONFIG_IOSCHED_DEADLINE is not set
148# CONFIG_IOSCHED_CFQ is not set 151# CONFIG_IOSCHED_CFQ is not set
149# CONFIG_DEFAULT_AS is not set
150# CONFIG_DEFAULT_DEADLINE is not set 152# CONFIG_DEFAULT_DEADLINE is not set
151# CONFIG_DEFAULT_CFQ is not set 153# CONFIG_DEFAULT_CFQ is not set
152CONFIG_DEFAULT_NOOP=y 154CONFIG_DEFAULT_NOOP=y
153CONFIG_DEFAULT_IOSCHED="noop" 155CONFIG_DEFAULT_IOSCHED="noop"
156# CONFIG_INLINE_SPIN_TRYLOCK is not set
157# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
158# CONFIG_INLINE_SPIN_LOCK is not set
159# CONFIG_INLINE_SPIN_LOCK_BH is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
162CONFIG_INLINE_SPIN_UNLOCK=y
163# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
164CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
165# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
166# CONFIG_INLINE_READ_TRYLOCK is not set
167# CONFIG_INLINE_READ_LOCK is not set
168# CONFIG_INLINE_READ_LOCK_BH is not set
169# CONFIG_INLINE_READ_LOCK_IRQ is not set
170# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
171CONFIG_INLINE_READ_UNLOCK=y
172# CONFIG_INLINE_READ_UNLOCK_BH is not set
173CONFIG_INLINE_READ_UNLOCK_IRQ=y
174# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
175# CONFIG_INLINE_WRITE_TRYLOCK is not set
176# CONFIG_INLINE_WRITE_LOCK is not set
177# CONFIG_INLINE_WRITE_LOCK_BH is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
180CONFIG_INLINE_WRITE_UNLOCK=y
181# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
182CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
183# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
184# CONFIG_MUTEX_SPIN_ON_OWNER is not set
154# CONFIG_FREEZER is not set 185# CONFIG_FREEZER is not set
155 186
156# 187#
@@ -226,8 +257,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
226# CONFIG_PHYS_ADDR_T_64BIT is not set 257# CONFIG_PHYS_ADDR_T_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=0 258CONFIG_ZONE_DMA_FLAG=0
228CONFIG_NR_QUICK=2 259CONFIG_NR_QUICK=2
229CONFIG_HAVE_MLOCK=y
230CONFIG_HAVE_MLOCKED_PAGE_BIT=y
231# CONFIG_KSM is not set 260# CONFIG_KSM is not set
232CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 261CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
233 262
@@ -457,9 +486,6 @@ CONFIG_NET_SCH_FIFO=y
457CONFIG_FIB_RULES=y 486CONFIG_FIB_RULES=y
458CONFIG_WIRELESS=y 487CONFIG_WIRELESS=y
459# CONFIG_CFG80211 is not set 488# CONFIG_CFG80211 is not set
460CONFIG_CFG80211_DEFAULT_PS_VALUE=0
461# CONFIG_WIRELESS_OLD_REGULATORY is not set
462# CONFIG_WIRELESS_EXT is not set
463# CONFIG_LIB80211 is not set 489# CONFIG_LIB80211 is not set
464 490
465# 491#
@@ -570,6 +596,10 @@ CONFIG_MTD_CFI_UTIL=y
570CONFIG_BLK_DEV=y 596CONFIG_BLK_DEV=y
571# CONFIG_BLK_DEV_COW_COMMON is not set 597# CONFIG_BLK_DEV_COW_COMMON is not set
572# CONFIG_BLK_DEV_LOOP is not set 598# CONFIG_BLK_DEV_LOOP is not set
599
600#
601# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
602#
573# CONFIG_BLK_DEV_NBD is not set 603# CONFIG_BLK_DEV_NBD is not set
574# CONFIG_BLK_DEV_UB is not set 604# CONFIG_BLK_DEV_UB is not set
575# CONFIG_BLK_DEV_RAM is not set 605# CONFIG_BLK_DEV_RAM is not set
@@ -642,8 +672,8 @@ CONFIG_NETDEVICES=y
642CONFIG_NETDEV_1000=y 672CONFIG_NETDEV_1000=y
643CONFIG_NETDEV_10000=y 673CONFIG_NETDEV_10000=y
644CONFIG_WLAN=y 674CONFIG_WLAN=y
645# CONFIG_WLAN_PRE80211 is not set 675# CONFIG_USB_ZD1201 is not set
646# CONFIG_WLAN_80211 is not set 676# CONFIG_HOSTAP is not set
647 677
648# 678#
649# Enable WiMAX (Networking options) to see the WiMAX drivers 679# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -672,6 +702,7 @@ CONFIG_WLAN=y
672CONFIG_INPUT=y 702CONFIG_INPUT=y
673CONFIG_INPUT_FF_MEMLESS=m 703CONFIG_INPUT_FF_MEMLESS=m
674# CONFIG_INPUT_POLLDEV is not set 704# CONFIG_INPUT_POLLDEV is not set
705# CONFIG_INPUT_SPARSEKMAP is not set
675 706
676# 707#
677# Userland interfaces 708# Userland interfaces
@@ -765,6 +796,7 @@ CONFIG_SSB_POSSIBLE=y
765# 796#
766# CONFIG_MFD_CORE is not set 797# CONFIG_MFD_CORE is not set
767# CONFIG_MFD_SM501 is not set 798# CONFIG_MFD_SM501 is not set
799# CONFIG_MFD_SH_MOBILE_SDHI is not set
768# CONFIG_HTC_PASIC3 is not set 800# CONFIG_HTC_PASIC3 is not set
769# CONFIG_MFD_TMIO is not set 801# CONFIG_MFD_TMIO is not set
770# CONFIG_REGULATOR is not set 802# CONFIG_REGULATOR is not set
@@ -1029,7 +1061,6 @@ CONFIG_PROC_FS=y
1029CONFIG_PROC_SYSCTL=y 1061CONFIG_PROC_SYSCTL=y
1030CONFIG_PROC_PAGE_MONITOR=y 1062CONFIG_PROC_PAGE_MONITOR=y
1031CONFIG_SYSFS=y 1063CONFIG_SYSFS=y
1032# CONFIG_HUGETLBFS is not set
1033# CONFIG_HUGETLB_PAGE is not set 1064# CONFIG_HUGETLB_PAGE is not set
1034# CONFIG_CONFIGFS_FS is not set 1065# CONFIG_CONFIGFS_FS is not set
1035CONFIG_MISC_FILESYSTEMS=y 1066CONFIG_MISC_FILESYSTEMS=y
@@ -1186,7 +1217,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1186CONFIG_HAVE_ARCH_KGDB=y 1217CONFIG_HAVE_ARCH_KGDB=y
1187# CONFIG_KGDB is not set 1218# CONFIG_KGDB is not set
1188# CONFIG_SH_STANDARD_BIOS is not set 1219# CONFIG_SH_STANDARD_BIOS is not set
1189# CONFIG_EARLY_SCIF_CONSOLE is not set
1190# CONFIG_STACK_DEBUG is not set 1220# CONFIG_STACK_DEBUG is not set
1191# CONFIG_DEBUG_STACK_USAGE is not set 1221# CONFIG_DEBUG_STACK_USAGE is not set
1192# CONFIG_4KSTACKS is not set 1222# CONFIG_4KSTACKS is not set
@@ -1200,7 +1230,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1200# CONFIG_KEYS is not set 1230# CONFIG_KEYS is not set
1201# CONFIG_SECURITY is not set 1231# CONFIG_SECURITY is not set
1202# CONFIG_SECURITYFS is not set 1232# CONFIG_SECURITYFS is not set
1203# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1233# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1234# CONFIG_DEFAULT_SECURITY_SMACK is not set
1235# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1236CONFIG_DEFAULT_SECURITY_DAC=y
1237CONFIG_DEFAULT_SECURITY=""
1204CONFIG_CRYPTO=y 1238CONFIG_CRYPTO=y
1205 1239
1206# 1240#
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig
index d709b7f35ace..4a4efd261d03 100644
--- a/arch/sh/configs/se7722_defconfig
+++ b/arch/sh/configs/se7722_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:57:41 2009 4# Mon Jan 4 13:49:15 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
24CONFIG_SYS_SUPPORTS_CMT=y 25CONFIG_SYS_SUPPORTS_CMT=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y
63# 65#
64CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 69# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 105CONFIG_SHMEM=y
103CONFIG_AIO=y 106CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 107CONFIG_HAVE_PERF_EVENTS=y
108CONFIG_PERF_USE_VMALLOC=y
105 109
106# 110#
107# Kernel Performance Events And Counters 111# Kernel Performance Events And Counters
@@ -122,6 +126,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
129CONFIG_HAVE_DMA_ATTRS=y
125CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
126CONFIG_HAVE_DMA_API_DEBUG=y 131CONFIG_HAVE_DMA_API_DEBUG=y
127 132
@@ -149,14 +154,41 @@ CONFIG_LBDAF=y
149# IO Schedulers 154# IO Schedulers
150# 155#
151CONFIG_IOSCHED_NOOP=y 156CONFIG_IOSCHED_NOOP=y
152# CONFIG_IOSCHED_AS is not set
153# CONFIG_IOSCHED_DEADLINE is not set 157# CONFIG_IOSCHED_DEADLINE is not set
154# CONFIG_IOSCHED_CFQ is not set 158# CONFIG_IOSCHED_CFQ is not set
155# CONFIG_DEFAULT_AS is not set
156# CONFIG_DEFAULT_DEADLINE is not set 159# CONFIG_DEFAULT_DEADLINE is not set
157# CONFIG_DEFAULT_CFQ is not set 160# CONFIG_DEFAULT_CFQ is not set
158CONFIG_DEFAULT_NOOP=y 161CONFIG_DEFAULT_NOOP=y
159CONFIG_DEFAULT_IOSCHED="noop" 162CONFIG_DEFAULT_IOSCHED="noop"
163# CONFIG_INLINE_SPIN_TRYLOCK is not set
164# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
165# CONFIG_INLINE_SPIN_LOCK is not set
166# CONFIG_INLINE_SPIN_LOCK_BH is not set
167# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
168# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
169# CONFIG_INLINE_SPIN_UNLOCK is not set
170# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
171# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
172# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
173# CONFIG_INLINE_READ_TRYLOCK is not set
174# CONFIG_INLINE_READ_LOCK is not set
175# CONFIG_INLINE_READ_LOCK_BH is not set
176# CONFIG_INLINE_READ_LOCK_IRQ is not set
177# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
178# CONFIG_INLINE_READ_UNLOCK is not set
179# CONFIG_INLINE_READ_UNLOCK_BH is not set
180# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
181# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
182# CONFIG_INLINE_WRITE_TRYLOCK is not set
183# CONFIG_INLINE_WRITE_LOCK is not set
184# CONFIG_INLINE_WRITE_LOCK_BH is not set
185# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
186# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
187# CONFIG_INLINE_WRITE_UNLOCK is not set
188# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
189# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
190# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
191# CONFIG_MUTEX_SPIN_ON_OWNER is not set
160CONFIG_FREEZER=y 192CONFIG_FREEZER=y
161 193
162# 194#
@@ -248,8 +280,6 @@ CONFIG_MIGRATION=y
248# CONFIG_PHYS_ADDR_T_64BIT is not set 280# CONFIG_PHYS_ADDR_T_64BIT is not set
249CONFIG_ZONE_DMA_FLAG=0 281CONFIG_ZONE_DMA_FLAG=0
250CONFIG_NR_QUICK=2 282CONFIG_NR_QUICK=2
251CONFIG_HAVE_MLOCK=y
252CONFIG_HAVE_MLOCKED_PAGE_BIT=y
253# CONFIG_KSM is not set 283# CONFIG_KSM is not set
254CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 284CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
255 285
@@ -284,7 +314,6 @@ CONFIG_SH_7722_SOLUTION_ENGINE=y
284# 314#
285CONFIG_SH_TIMER_TMU=y 315CONFIG_SH_TIMER_TMU=y
286# CONFIG_SH_TIMER_CMT is not set 316# CONFIG_SH_TIMER_CMT is not set
287CONFIG_SH_PCLK_FREQ=33333333
288CONFIG_SH_CLK_CPG=y 317CONFIG_SH_CLK_CPG=y
289CONFIG_TICK_ONESHOT=y 318CONFIG_TICK_ONESHOT=y
290CONFIG_NO_HZ=y 319CONFIG_NO_HZ=y
@@ -436,9 +465,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
436# CONFIG_AF_RXRPC is not set 465# CONFIG_AF_RXRPC is not set
437CONFIG_WIRELESS=y 466CONFIG_WIRELESS=y
438# CONFIG_CFG80211 is not set 467# CONFIG_CFG80211 is not set
439CONFIG_CFG80211_DEFAULT_PS_VALUE=0
440# CONFIG_WIRELESS_OLD_REGULATORY is not set
441# CONFIG_WIRELESS_EXT is not set
442# CONFIG_LIB80211 is not set 468# CONFIG_LIB80211 is not set
443 469
444# 470#
@@ -467,6 +493,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
467CONFIG_BLK_DEV=y 493CONFIG_BLK_DEV=y
468# CONFIG_BLK_DEV_COW_COMMON is not set 494# CONFIG_BLK_DEV_COW_COMMON is not set
469# CONFIG_BLK_DEV_LOOP is not set 495# CONFIG_BLK_DEV_LOOP is not set
496
497#
498# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
499#
470# CONFIG_BLK_DEV_NBD is not set 500# CONFIG_BLK_DEV_NBD is not set
471CONFIG_BLK_DEV_RAM=y 501CONFIG_BLK_DEV_RAM=y
472CONFIG_BLK_DEV_RAM_COUNT=16 502CONFIG_BLK_DEV_RAM_COUNT=16
@@ -560,11 +590,11 @@ CONFIG_SMC91X=y
560# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 590# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
561# CONFIG_B44 is not set 591# CONFIG_B44 is not set
562# CONFIG_KS8842 is not set 592# CONFIG_KS8842 is not set
593# CONFIG_KS8851_MLL is not set
563CONFIG_NETDEV_1000=y 594CONFIG_NETDEV_1000=y
564CONFIG_NETDEV_10000=y 595CONFIG_NETDEV_10000=y
565CONFIG_WLAN=y 596CONFIG_WLAN=y
566# CONFIG_WLAN_PRE80211 is not set 597# CONFIG_HOSTAP is not set
567# CONFIG_WLAN_80211 is not set
568 598
569# 599#
570# Enable WiMAX (Networking options) to see the WiMAX drivers 600# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -584,6 +614,7 @@ CONFIG_WLAN=y
584CONFIG_INPUT=y 614CONFIG_INPUT=y
585# CONFIG_INPUT_FF_MEMLESS is not set 615# CONFIG_INPUT_FF_MEMLESS is not set
586# CONFIG_INPUT_POLLDEV is not set 616# CONFIG_INPUT_POLLDEV is not set
617# CONFIG_INPUT_SPARSEKMAP is not set
587 618
588# 619#
589# Userland interfaces 620# Userland interfaces
@@ -622,6 +653,7 @@ CONFIG_SERIO=y
622# CONFIG_SERIO_SERPORT is not set 653# CONFIG_SERIO_SERPORT is not set
623CONFIG_SERIO_LIBPS2=y 654CONFIG_SERIO_LIBPS2=y
624# CONFIG_SERIO_RAW is not set 655# CONFIG_SERIO_RAW is not set
656# CONFIG_SERIO_ALTERA_PS2 is not set
625# CONFIG_GAMEPORT is not set 657# CONFIG_GAMEPORT is not set
626 658
627# 659#
@@ -694,6 +726,7 @@ CONFIG_SSB_POSSIBLE=y
694# 726#
695# CONFIG_MFD_CORE is not set 727# CONFIG_MFD_CORE is not set
696# CONFIG_MFD_SM501 is not set 728# CONFIG_MFD_SM501 is not set
729# CONFIG_MFD_SH_MOBILE_SDHI is not set
697# CONFIG_HTC_PASIC3 is not set 730# CONFIG_HTC_PASIC3 is not set
698# CONFIG_MFD_TMIO is not set 731# CONFIG_MFD_TMIO is not set
699# CONFIG_REGULATOR is not set 732# CONFIG_REGULATOR is not set
@@ -774,7 +807,9 @@ CONFIG_RTC_INTF_DEV=y
774# CONFIG_RTC_DRV_M48T86 is not set 807# CONFIG_RTC_DRV_M48T86 is not set
775# CONFIG_RTC_DRV_M48T35 is not set 808# CONFIG_RTC_DRV_M48T35 is not set
776# CONFIG_RTC_DRV_M48T59 is not set 809# CONFIG_RTC_DRV_M48T59 is not set
810# CONFIG_RTC_DRV_MSM6242 is not set
777# CONFIG_RTC_DRV_BQ4802 is not set 811# CONFIG_RTC_DRV_BQ4802 is not set
812# CONFIG_RTC_DRV_RP5C01 is not set
778# CONFIG_RTC_DRV_V3020 is not set 813# CONFIG_RTC_DRV_V3020 is not set
779 814
780# 815#
@@ -906,7 +941,7 @@ CONFIG_DEBUG_FS=y
906# CONFIG_DEBUG_KERNEL is not set 941# CONFIG_DEBUG_KERNEL is not set
907# CONFIG_SLUB_DEBUG_ON is not set 942# CONFIG_SLUB_DEBUG_ON is not set
908# CONFIG_SLUB_STATS is not set 943# CONFIG_SLUB_STATS is not set
909# CONFIG_DEBUG_BUGVERBOSE is not set 944CONFIG_DEBUG_BUGVERBOSE=y
910# CONFIG_DEBUG_MEMORY_INIT is not set 945# CONFIG_DEBUG_MEMORY_INIT is not set
911# CONFIG_RCU_CPU_STALL_DETECTOR is not set 946# CONFIG_RCU_CPU_STALL_DETECTOR is not set
912# CONFIG_LATENCYTOP is not set 947# CONFIG_LATENCYTOP is not set
@@ -924,8 +959,6 @@ CONFIG_TRACING_SUPPORT=y
924# CONFIG_SAMPLES is not set 959# CONFIG_SAMPLES is not set
925CONFIG_HAVE_ARCH_KGDB=y 960CONFIG_HAVE_ARCH_KGDB=y
926CONFIG_SH_STANDARD_BIOS=y 961CONFIG_SH_STANDARD_BIOS=y
927# CONFIG_EARLY_SCIF_CONSOLE is not set
928# CONFIG_EARLY_PRINTK is not set
929# CONFIG_DWARF_UNWINDER is not set 962# CONFIG_DWARF_UNWINDER is not set
930 963
931# 964#
@@ -934,7 +967,11 @@ CONFIG_SH_STANDARD_BIOS=y
934# CONFIG_KEYS is not set 967# CONFIG_KEYS is not set
935# CONFIG_SECURITY is not set 968# CONFIG_SECURITY is not set
936# CONFIG_SECURITYFS is not set 969# CONFIG_SECURITYFS is not set
937# CONFIG_SECURITY_FILE_CAPABILITIES is not set 970# CONFIG_DEFAULT_SECURITY_SELINUX is not set
971# CONFIG_DEFAULT_SECURITY_SMACK is not set
972# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
973CONFIG_DEFAULT_SECURITY_DAC=y
974CONFIG_DEFAULT_SECURITY=""
938CONFIG_CRYPTO=y 975CONFIG_CRYPTO=y
939 976
940# 977#
diff --git a/arch/sh/configs/se7724_defconfig b/arch/sh/configs/se7724_defconfig
index 56b0b9ff9e05..ab371afe3595 100644
--- a/arch/sh/configs/se7724_defconfig
+++ b/arch/sh/configs/se7724_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.31 3# Linux kernel version: 2.6.33-rc2
4# Fri Sep 25 11:50:59 2009 4# Mon Jan 4 14:36:56 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y
62# 64#
63CONFIG_TREE_RCU=y 65CONFIG_TREE_RCU=y
64# CONFIG_TREE_PREEMPT_RCU is not set 66# CONFIG_TREE_PREEMPT_RCU is not set
67# CONFIG_TINY_RCU is not set
65# CONFIG_RCU_TRACE is not set 68# CONFIG_RCU_TRACE is not set
66CONFIG_RCU_FANOUT=32 69CONFIG_RCU_FANOUT=32
67# CONFIG_RCU_FANOUT_EXACT is not set 70# CONFIG_RCU_FANOUT_EXACT is not set
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 102CONFIG_SHMEM=y
100CONFIG_AIO=y 103CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y 104CONFIG_HAVE_PERF_EVENTS=y
105CONFIG_PERF_USE_VMALLOC=y
102 106
103# 107#
104# Kernel Performance Events And Counters 108# Kernel Performance Events And Counters
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y
119CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
120CONFIG_HAVE_DMA_API_DEBUG=y 125CONFIG_HAVE_DMA_API_DEBUG=y
121 126
@@ -142,14 +147,41 @@ CONFIG_LBDAF=y
142# IO Schedulers 147# IO Schedulers
143# 148#
144CONFIG_IOSCHED_NOOP=y 149CONFIG_IOSCHED_NOOP=y
145CONFIG_IOSCHED_AS=y
146CONFIG_IOSCHED_DEADLINE=y 150CONFIG_IOSCHED_DEADLINE=y
147CONFIG_IOSCHED_CFQ=y 151CONFIG_IOSCHED_CFQ=y
148# CONFIG_DEFAULT_AS is not set
149# CONFIG_DEFAULT_DEADLINE is not set 152# CONFIG_DEFAULT_DEADLINE is not set
150CONFIG_DEFAULT_CFQ=y 153CONFIG_DEFAULT_CFQ=y
151# CONFIG_DEFAULT_NOOP is not set 154# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="cfq" 155CONFIG_DEFAULT_IOSCHED="cfq"
156# CONFIG_INLINE_SPIN_TRYLOCK is not set
157# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
158# CONFIG_INLINE_SPIN_LOCK is not set
159# CONFIG_INLINE_SPIN_LOCK_BH is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
161# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
162# CONFIG_INLINE_SPIN_UNLOCK is not set
163# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
164# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
165# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
166# CONFIG_INLINE_READ_TRYLOCK is not set
167# CONFIG_INLINE_READ_LOCK is not set
168# CONFIG_INLINE_READ_LOCK_BH is not set
169# CONFIG_INLINE_READ_LOCK_IRQ is not set
170# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
171# CONFIG_INLINE_READ_UNLOCK is not set
172# CONFIG_INLINE_READ_UNLOCK_BH is not set
173# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
174# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
175# CONFIG_INLINE_WRITE_TRYLOCK is not set
176# CONFIG_INLINE_WRITE_LOCK is not set
177# CONFIG_INLINE_WRITE_LOCK_BH is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
179# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
180# CONFIG_INLINE_WRITE_UNLOCK is not set
181# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
182# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
183# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
184# CONFIG_MUTEX_SPIN_ON_OWNER is not set
153CONFIG_FREEZER=y 185CONFIG_FREEZER=y
154 186
155# 187#
@@ -205,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_MEMORY_START=0x08000000 237CONFIG_MEMORY_START=0x08000000
206CONFIG_MEMORY_SIZE=0x08000000 238CONFIG_MEMORY_SIZE=0x08000000
207CONFIG_29BIT=y 239CONFIG_29BIT=y
240# CONFIG_PMB_ENABLE is not set
208# CONFIG_X2TLB is not set 241# CONFIG_X2TLB is not set
209CONFIG_VSYSCALL=y 242CONFIG_VSYSCALL=y
210CONFIG_ARCH_FLATMEM_ENABLE=y 243CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -229,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
229# CONFIG_PHYS_ADDR_T_64BIT is not set 262# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=0 263CONFIG_ZONE_DMA_FLAG=0
231CONFIG_NR_QUICK=2 264CONFIG_NR_QUICK=2
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234# CONFIG_KSM is not set 265# CONFIG_KSM is not set
235CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 266CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
236 267
@@ -265,7 +296,6 @@ CONFIG_SH_7724_SOLUTION_ENGINE=y
265# 296#
266CONFIG_SH_TIMER_TMU=y 297CONFIG_SH_TIMER_TMU=y
267# CONFIG_SH_TIMER_CMT is not set 298# CONFIG_SH_TIMER_CMT is not set
268CONFIG_SH_PCLK_FREQ=33333333
269CONFIG_SH_CLK_CPG=y 299CONFIG_SH_CLK_CPG=y
270# CONFIG_NO_HZ is not set 300# CONFIG_NO_HZ is not set
271# CONFIG_HIGH_RES_TIMERS is not set 301# CONFIG_HIGH_RES_TIMERS is not set
@@ -279,8 +309,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
279# 309#
280# DMA support 310# DMA support
281# 311#
282CONFIG_SH_DMA_API=y
283CONFIG_SH_DMA=y 312CONFIG_SH_DMA=y
313CONFIG_SH_DMA_API=y
284CONFIG_NR_ONCHIP_DMA_CHANNELS=12 314CONFIG_NR_ONCHIP_DMA_CHANNELS=12
285# CONFIG_NR_DMA_CHANNELS_BOOL is not set 315# CONFIG_NR_DMA_CHANNELS_BOOL is not set
286 316
@@ -423,9 +453,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
423# CONFIG_AF_RXRPC is not set 453# CONFIG_AF_RXRPC is not set
424CONFIG_WIRELESS=y 454CONFIG_WIRELESS=y
425# CONFIG_CFG80211 is not set 455# CONFIG_CFG80211 is not set
426CONFIG_CFG80211_DEFAULT_PS_VALUE=0
427# CONFIG_WIRELESS_OLD_REGULATORY is not set
428# CONFIG_WIRELESS_EXT is not set
429# CONFIG_LIB80211 is not set 456# CONFIG_LIB80211 is not set
430 457
431# 458#
@@ -555,6 +582,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1
555CONFIG_BLK_DEV=y 582CONFIG_BLK_DEV=y
556# CONFIG_BLK_DEV_COW_COMMON is not set 583# CONFIG_BLK_DEV_COW_COMMON is not set
557# CONFIG_BLK_DEV_LOOP is not set 584# CONFIG_BLK_DEV_LOOP is not set
585
586#
587# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
588#
558# CONFIG_BLK_DEV_NBD is not set 589# CONFIG_BLK_DEV_NBD is not set
559# CONFIG_BLK_DEV_UB is not set 590# CONFIG_BLK_DEV_UB is not set
560CONFIG_BLK_DEV_RAM=y 591CONFIG_BLK_DEV_RAM=y
@@ -565,9 +596,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
565# CONFIG_ATA_OVER_ETH is not set 596# CONFIG_ATA_OVER_ETH is not set
566# CONFIG_BLK_DEV_HD is not set 597# CONFIG_BLK_DEV_HD is not set
567CONFIG_MISC_DEVICES=y 598CONFIG_MISC_DEVICES=y
599# CONFIG_AD525X_DPOT is not set
568# CONFIG_ICS932S401 is not set 600# CONFIG_ICS932S401 is not set
569# CONFIG_ENCLOSURE_SERVICES is not set 601# CONFIG_ENCLOSURE_SERVICES is not set
570# CONFIG_ISL29003 is not set 602# CONFIG_ISL29003 is not set
603# CONFIG_DS1682 is not set
604# CONFIG_TI_DAC7512 is not set
571# CONFIG_C2PORT is not set 605# CONFIG_C2PORT is not set
572 606
573# 607#
@@ -578,6 +612,7 @@ CONFIG_MISC_DEVICES=y
578# CONFIG_EEPROM_LEGACY is not set 612# CONFIG_EEPROM_LEGACY is not set
579# CONFIG_EEPROM_MAX6875 is not set 613# CONFIG_EEPROM_MAX6875 is not set
580# CONFIG_EEPROM_93CX6 is not set 614# CONFIG_EEPROM_93CX6 is not set
615# CONFIG_IWMC3200TOP is not set
581CONFIG_HAVE_IDE=y 616CONFIG_HAVE_IDE=y
582# CONFIG_IDE is not set 617# CONFIG_IDE is not set
583 618
@@ -672,11 +707,12 @@ CONFIG_SMC91X=y
672# CONFIG_B44 is not set 707# CONFIG_B44 is not set
673# CONFIG_KS8842 is not set 708# CONFIG_KS8842 is not set
674# CONFIG_KS8851 is not set 709# CONFIG_KS8851 is not set
710# CONFIG_KS8851_MLL is not set
675# CONFIG_NETDEV_1000 is not set 711# CONFIG_NETDEV_1000 is not set
676# CONFIG_NETDEV_10000 is not set 712# CONFIG_NETDEV_10000 is not set
677CONFIG_WLAN=y 713CONFIG_WLAN=y
678# CONFIG_WLAN_PRE80211 is not set 714# CONFIG_USB_ZD1201 is not set
679# CONFIG_WLAN_80211 is not set 715# CONFIG_HOSTAP is not set
680 716
681# 717#
682# Enable WiMAX (Networking options) to see the WiMAX drivers 718# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -705,6 +741,7 @@ CONFIG_WLAN=y
705CONFIG_INPUT=y 741CONFIG_INPUT=y
706# CONFIG_INPUT_FF_MEMLESS is not set 742# CONFIG_INPUT_FF_MEMLESS is not set
707# CONFIG_INPUT_POLLDEV is not set 743# CONFIG_INPUT_POLLDEV is not set
744# CONFIG_INPUT_SPARSEKMAP is not set
708 745
709# 746#
710# Userland interfaces 747# Userland interfaces
@@ -813,7 +850,6 @@ CONFIG_I2C_SH_MOBILE=y
813# 850#
814# Miscellaneous I2C Chip support 851# Miscellaneous I2C Chip support
815# 852#
816# CONFIG_DS1682 is not set
817# CONFIG_SENSORS_TSL2550 is not set 853# CONFIG_SENSORS_TSL2550 is not set
818# CONFIG_I2C_DEBUG_CORE is not set 854# CONFIG_I2C_DEBUG_CORE is not set
819# CONFIG_I2C_DEBUG_ALGO is not set 855# CONFIG_I2C_DEBUG_ALGO is not set
@@ -827,7 +863,10 @@ CONFIG_SPI_MASTER=y
827# 863#
828CONFIG_SPI_BITBANG=y 864CONFIG_SPI_BITBANG=y
829# CONFIG_SPI_GPIO is not set 865# CONFIG_SPI_GPIO is not set
866# CONFIG_SPI_SH_MSIOF is not set
830# CONFIG_SPI_SH_SCI is not set 867# CONFIG_SPI_SH_SCI is not set
868# CONFIG_SPI_XILINX is not set
869# CONFIG_SPI_DESIGNWARE is not set
831 870
832# 871#
833# SPI Protocol Masters 872# SPI Protocol Masters
@@ -885,11 +924,13 @@ CONFIG_SSB_POSSIBLE=y
885# 924#
886# CONFIG_MFD_CORE is not set 925# CONFIG_MFD_CORE is not set
887# CONFIG_MFD_SM501 is not set 926# CONFIG_MFD_SM501 is not set
927# CONFIG_MFD_SH_MOBILE_SDHI is not set
888# CONFIG_HTC_PASIC3 is not set 928# CONFIG_HTC_PASIC3 is not set
889# CONFIG_TPS65010 is not set 929# CONFIG_TPS65010 is not set
890# CONFIG_TWL4030_CORE is not set 930# CONFIG_TWL4030_CORE is not set
891# CONFIG_MFD_TMIO is not set 931# CONFIG_MFD_TMIO is not set
892# CONFIG_PMIC_DA903X is not set 932# CONFIG_PMIC_DA903X is not set
933# CONFIG_PMIC_ADP5520 is not set
893# CONFIG_MFD_WM8400 is not set 934# CONFIG_MFD_WM8400 is not set
894# CONFIG_MFD_WM831X is not set 935# CONFIG_MFD_WM831X is not set
895# CONFIG_MFD_WM8350_I2C is not set 936# CONFIG_MFD_WM8350_I2C is not set
@@ -897,6 +938,8 @@ CONFIG_SSB_POSSIBLE=y
897# CONFIG_MFD_MC13783 is not set 938# CONFIG_MFD_MC13783 is not set
898# CONFIG_AB3100_CORE is not set 939# CONFIG_AB3100_CORE is not set
899# CONFIG_EZX_PCAP is not set 940# CONFIG_EZX_PCAP is not set
941# CONFIG_MFD_88PM8607 is not set
942# CONFIG_AB4500_CORE is not set
900# CONFIG_REGULATOR is not set 943# CONFIG_REGULATOR is not set
901CONFIG_MEDIA_SUPPORT=y 944CONFIG_MEDIA_SUPPORT=y
902 945
@@ -913,6 +956,8 @@ CONFIG_VIDEO_MEDIA=m
913# 956#
914# Multimedia drivers 957# Multimedia drivers
915# 958#
959CONFIG_IR_CORE=y
960CONFIG_VIDEO_IR=y
916# CONFIG_MEDIA_ATTACH is not set 961# CONFIG_MEDIA_ATTACH is not set
917CONFIG_MEDIA_TUNER=m 962CONFIG_MEDIA_TUNER=m
918# CONFIG_MEDIA_TUNER_CUSTOMISE is not set 963# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
@@ -932,6 +977,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
932# CONFIG_VIDEO_ADV_DEBUG is not set 977# CONFIG_VIDEO_ADV_DEBUG is not set
933# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set 978# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
934CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 979CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
980CONFIG_VIDEO_IR_I2C=y
935# CONFIG_VIDEO_VIVI is not set 981# CONFIG_VIDEO_VIVI is not set
936# CONFIG_VIDEO_SAA5246A is not set 982# CONFIG_VIDEO_SAA5246A is not set
937# CONFIG_VIDEO_SAA5249 is not set 983# CONFIG_VIDEO_SAA5249 is not set
@@ -940,10 +986,13 @@ CONFIG_SOC_CAMERA=y
940# CONFIG_SOC_CAMERA_MT9M001 is not set 986# CONFIG_SOC_CAMERA_MT9M001 is not set
941# CONFIG_SOC_CAMERA_MT9M111 is not set 987# CONFIG_SOC_CAMERA_MT9M111 is not set
942# CONFIG_SOC_CAMERA_MT9T031 is not set 988# CONFIG_SOC_CAMERA_MT9T031 is not set
989# CONFIG_SOC_CAMERA_MT9T112 is not set
943# CONFIG_SOC_CAMERA_MT9V022 is not set 990# CONFIG_SOC_CAMERA_MT9V022 is not set
991# CONFIG_SOC_CAMERA_RJ54N1 is not set
944# CONFIG_SOC_CAMERA_TW9910 is not set 992# CONFIG_SOC_CAMERA_TW9910 is not set
945# CONFIG_SOC_CAMERA_PLATFORM is not set 993# CONFIG_SOC_CAMERA_PLATFORM is not set
946CONFIG_SOC_CAMERA_OV772X=y 994CONFIG_SOC_CAMERA_OV772X=y
995# CONFIG_SOC_CAMERA_OV9640 is not set
947CONFIG_VIDEO_SH_MOBILE_CEU=y 996CONFIG_VIDEO_SH_MOBILE_CEU=y
948CONFIG_V4L_USB_DRIVERS=y 997CONFIG_V4L_USB_DRIVERS=y
949# CONFIG_USB_VIDEO_CLASS is not set 998# CONFIG_USB_VIDEO_CLASS is not set
@@ -961,6 +1010,7 @@ CONFIG_USB_GSPCA=m
961# CONFIG_USB_GSPCA_OV519 is not set 1010# CONFIG_USB_GSPCA_OV519 is not set
962# CONFIG_USB_GSPCA_OV534 is not set 1011# CONFIG_USB_GSPCA_OV534 is not set
963# CONFIG_USB_GSPCA_PAC207 is not set 1012# CONFIG_USB_GSPCA_PAC207 is not set
1013# CONFIG_USB_GSPCA_PAC7302 is not set
964# CONFIG_USB_GSPCA_PAC7311 is not set 1014# CONFIG_USB_GSPCA_PAC7311 is not set
965# CONFIG_USB_GSPCA_SN9C20X is not set 1015# CONFIG_USB_GSPCA_SN9C20X is not set
966# CONFIG_USB_GSPCA_SONIXB is not set 1016# CONFIG_USB_GSPCA_SONIXB is not set
@@ -974,6 +1024,7 @@ CONFIG_USB_GSPCA=m
974# CONFIG_USB_GSPCA_SQ905 is not set 1024# CONFIG_USB_GSPCA_SQ905 is not set
975# CONFIG_USB_GSPCA_SQ905C is not set 1025# CONFIG_USB_GSPCA_SQ905C is not set
976# CONFIG_USB_GSPCA_STK014 is not set 1026# CONFIG_USB_GSPCA_STK014 is not set
1027# CONFIG_USB_GSPCA_STV0680 is not set
977# CONFIG_USB_GSPCA_SUNPLUS is not set 1028# CONFIG_USB_GSPCA_SUNPLUS is not set
978# CONFIG_USB_GSPCA_T613 is not set 1029# CONFIG_USB_GSPCA_T613 is not set
979# CONFIG_USB_GSPCA_TV8532 is not set 1030# CONFIG_USB_GSPCA_TV8532 is not set
@@ -1110,9 +1161,11 @@ CONFIG_SND_SOC_WM_HUBS=m
1110CONFIG_SND_SOC_AD1836=m 1161CONFIG_SND_SOC_AD1836=m
1111CONFIG_SND_SOC_AD1938=m 1162CONFIG_SND_SOC_AD1938=m
1112CONFIG_SND_SOC_AD73311=m 1163CONFIG_SND_SOC_AD73311=m
1164CONFIG_SND_SOC_ADS117X=m
1113CONFIG_SND_SOC_AK4104=m 1165CONFIG_SND_SOC_AK4104=m
1114CONFIG_SND_SOC_AK4535=m 1166CONFIG_SND_SOC_AK4535=m
1115CONFIG_SND_SOC_AK4642=m 1167CONFIG_SND_SOC_AK4642=m
1168CONFIG_SND_SOC_AK4671=m
1116CONFIG_SND_SOC_CS4270=m 1169CONFIG_SND_SOC_CS4270=m
1117CONFIG_SND_SOC_L3=m 1170CONFIG_SND_SOC_L3=m
1118CONFIG_SND_SOC_PCM3008=m 1171CONFIG_SND_SOC_PCM3008=m
@@ -1121,11 +1174,14 @@ CONFIG_SND_SOC_SSM2602=m
1121CONFIG_SND_SOC_TLV320AIC23=m 1174CONFIG_SND_SOC_TLV320AIC23=m
1122CONFIG_SND_SOC_TLV320AIC26=m 1175CONFIG_SND_SOC_TLV320AIC26=m
1123CONFIG_SND_SOC_TLV320AIC3X=m 1176CONFIG_SND_SOC_TLV320AIC3X=m
1177CONFIG_SND_SOC_TLV320DAC33=m
1124CONFIG_SND_SOC_UDA134X=m 1178CONFIG_SND_SOC_UDA134X=m
1125CONFIG_SND_SOC_UDA1380=m 1179CONFIG_SND_SOC_UDA1380=m
1126CONFIG_SND_SOC_WM8510=m 1180CONFIG_SND_SOC_WM8510=m
1127CONFIG_SND_SOC_WM8523=m 1181CONFIG_SND_SOC_WM8523=m
1128CONFIG_SND_SOC_WM8580=m 1182CONFIG_SND_SOC_WM8580=m
1183CONFIG_SND_SOC_WM8711=m
1184CONFIG_SND_SOC_WM8727=m
1129CONFIG_SND_SOC_WM8728=m 1185CONFIG_SND_SOC_WM8728=m
1130CONFIG_SND_SOC_WM8731=m 1186CONFIG_SND_SOC_WM8731=m
1131CONFIG_SND_SOC_WM8750=m 1187CONFIG_SND_SOC_WM8750=m
@@ -1143,6 +1199,7 @@ CONFIG_SND_SOC_WM8990=m
1143CONFIG_SND_SOC_WM8993=m 1199CONFIG_SND_SOC_WM8993=m
1144CONFIG_SND_SOC_WM9081=m 1200CONFIG_SND_SOC_WM9081=m
1145CONFIG_SND_SOC_MAX9877=m 1201CONFIG_SND_SOC_MAX9877=m
1202CONFIG_SND_SOC_TPA6130A2=m
1146# CONFIG_SOUND_PRIME is not set 1203# CONFIG_SOUND_PRIME is not set
1147CONFIG_HID_SUPPORT=y 1204CONFIG_HID_SUPPORT=y
1148CONFIG_HID=y 1205CONFIG_HID=y
@@ -1316,10 +1373,12 @@ CONFIG_USB_ETH_RNDIS=y
1316CONFIG_USB_GADGETFS=m 1373CONFIG_USB_GADGETFS=m
1317CONFIG_USB_FILE_STORAGE=m 1374CONFIG_USB_FILE_STORAGE=m
1318# CONFIG_USB_FILE_STORAGE_TEST is not set 1375# CONFIG_USB_FILE_STORAGE_TEST is not set
1376# CONFIG_USB_MASS_STORAGE is not set
1319CONFIG_USB_G_SERIAL=m 1377CONFIG_USB_G_SERIAL=m
1320# CONFIG_USB_MIDI_GADGET is not set 1378# CONFIG_USB_MIDI_GADGET is not set
1321# CONFIG_USB_G_PRINTER is not set 1379# CONFIG_USB_G_PRINTER is not set
1322# CONFIG_USB_CDC_COMPOSITE is not set 1380# CONFIG_USB_CDC_COMPOSITE is not set
1381# CONFIG_USB_G_MULTI is not set
1323 1382
1324# 1383#
1325# OTG and related infrastructure 1384# OTG and related infrastructure
@@ -1345,6 +1404,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1345# CONFIG_MMC_AT91 is not set 1404# CONFIG_MMC_AT91 is not set
1346# CONFIG_MMC_ATMELMCI is not set 1405# CONFIG_MMC_ATMELMCI is not set
1347CONFIG_MMC_SPI=y 1406CONFIG_MMC_SPI=y
1407# CONFIG_MMC_TMIO is not set
1348# CONFIG_MEMSTICK is not set 1408# CONFIG_MEMSTICK is not set
1349# CONFIG_NEW_LEDS is not set 1409# CONFIG_NEW_LEDS is not set
1350# CONFIG_ACCESSIBILITY is not set 1410# CONFIG_ACCESSIBILITY is not set
@@ -1376,6 +1436,7 @@ CONFIG_RTC_INTF_DEV=y
1376CONFIG_RTC_DRV_PCF8563=y 1436CONFIG_RTC_DRV_PCF8563=y
1377# CONFIG_RTC_DRV_PCF8583 is not set 1437# CONFIG_RTC_DRV_PCF8583 is not set
1378# CONFIG_RTC_DRV_M41T80 is not set 1438# CONFIG_RTC_DRV_M41T80 is not set
1439# CONFIG_RTC_DRV_BQ32K is not set
1379# CONFIG_RTC_DRV_S35390A is not set 1440# CONFIG_RTC_DRV_S35390A is not set
1380# CONFIG_RTC_DRV_FM3130 is not set 1441# CONFIG_RTC_DRV_FM3130 is not set
1381# CONFIG_RTC_DRV_RX8581 is not set 1442# CONFIG_RTC_DRV_RX8581 is not set
@@ -1404,7 +1465,9 @@ CONFIG_RTC_DRV_PCF8563=y
1404# CONFIG_RTC_DRV_M48T86 is not set 1465# CONFIG_RTC_DRV_M48T86 is not set
1405# CONFIG_RTC_DRV_M48T35 is not set 1466# CONFIG_RTC_DRV_M48T35 is not set
1406# CONFIG_RTC_DRV_M48T59 is not set 1467# CONFIG_RTC_DRV_M48T59 is not set
1468# CONFIG_RTC_DRV_MSM6242 is not set
1407# CONFIG_RTC_DRV_BQ4802 is not set 1469# CONFIG_RTC_DRV_BQ4802 is not set
1470# CONFIG_RTC_DRV_RP5C01 is not set
1408# CONFIG_RTC_DRV_V3020 is not set 1471# CONFIG_RTC_DRV_V3020 is not set
1409 1472
1410# 1473#
@@ -1597,7 +1660,7 @@ CONFIG_FRAME_WARN=1024
1597# CONFIG_DEBUG_FS is not set 1660# CONFIG_DEBUG_FS is not set
1598# CONFIG_HEADERS_CHECK is not set 1661# CONFIG_HEADERS_CHECK is not set
1599# CONFIG_DEBUG_KERNEL is not set 1662# CONFIG_DEBUG_KERNEL is not set
1600# CONFIG_DEBUG_BUGVERBOSE is not set 1663CONFIG_DEBUG_BUGVERBOSE=y
1601# CONFIG_DEBUG_MEMORY_INIT is not set 1664# CONFIG_DEBUG_MEMORY_INIT is not set
1602# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1665# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1603# CONFIG_LATENCYTOP is not set 1666# CONFIG_LATENCYTOP is not set
@@ -1614,7 +1677,6 @@ CONFIG_TRACING_SUPPORT=y
1614# CONFIG_SAMPLES is not set 1677# CONFIG_SAMPLES is not set
1615CONFIG_HAVE_ARCH_KGDB=y 1678CONFIG_HAVE_ARCH_KGDB=y
1616# CONFIG_SH_STANDARD_BIOS is not set 1679# CONFIG_SH_STANDARD_BIOS is not set
1617# CONFIG_EARLY_SCIF_CONSOLE is not set
1618# CONFIG_DWARF_UNWINDER is not set 1680# CONFIG_DWARF_UNWINDER is not set
1619 1681
1620# 1682#
@@ -1623,7 +1685,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1623# CONFIG_KEYS is not set 1685# CONFIG_KEYS is not set
1624# CONFIG_SECURITY is not set 1686# CONFIG_SECURITY is not set
1625# CONFIG_SECURITYFS is not set 1687# CONFIG_SECURITYFS is not set
1626# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1688# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1689# CONFIG_DEFAULT_SECURITY_SMACK is not set
1690# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1691CONFIG_DEFAULT_SECURITY_DAC=y
1692CONFIG_DEFAULT_SECURITY=""
1627CONFIG_CRYPTO=y 1693CONFIG_CRYPTO=y
1628 1694
1629# 1695#
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig
index 7bc926c17b79..b15a44e2ec43 100644
--- a/arch/sh/configs/se7750_defconfig
+++ b/arch/sh/configs/se7750_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 18:58:58 2009 4# Mon Jan 4 14:39:10 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y
60# 62#
61CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -95,6 +98,7 @@ CONFIG_EVENTFD=y
95CONFIG_SHMEM=y 98CONFIG_SHMEM=y
96CONFIG_AIO=y 99CONFIG_AIO=y
97CONFIG_HAVE_PERF_EVENTS=y 100CONFIG_HAVE_PERF_EVENTS=y
101CONFIG_PERF_USE_VMALLOC=y
98 102
99# 103#
100# Kernel Performance Events And Counters 104# Kernel Performance Events And Counters
@@ -113,6 +117,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
115CONFIG_HAVE_ARCH_TRACEHOOK=y 119CONFIG_HAVE_ARCH_TRACEHOOK=y
120CONFIG_HAVE_DMA_ATTRS=y
116CONFIG_HAVE_CLK=y 121CONFIG_HAVE_CLK=y
117CONFIG_HAVE_DMA_API_DEBUG=y 122CONFIG_HAVE_DMA_API_DEBUG=y
118 123
@@ -138,14 +143,41 @@ CONFIG_LBDAF=y
138# IO Schedulers 143# IO Schedulers
139# 144#
140CONFIG_IOSCHED_NOOP=y 145CONFIG_IOSCHED_NOOP=y
141CONFIG_IOSCHED_AS=y
142CONFIG_IOSCHED_DEADLINE=y 146CONFIG_IOSCHED_DEADLINE=y
143CONFIG_IOSCHED_CFQ=y 147CONFIG_IOSCHED_CFQ=y
144CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_DEADLINE is not set 148# CONFIG_DEFAULT_DEADLINE is not set
146# CONFIG_DEFAULT_CFQ is not set 149CONFIG_DEFAULT_CFQ=y
147# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="cfq"
152# CONFIG_INLINE_SPIN_TRYLOCK is not set
153# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
154# CONFIG_INLINE_SPIN_LOCK is not set
155# CONFIG_INLINE_SPIN_LOCK_BH is not set
156# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
157# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
158CONFIG_INLINE_SPIN_UNLOCK=y
159# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
160CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
161# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
162# CONFIG_INLINE_READ_TRYLOCK is not set
163# CONFIG_INLINE_READ_LOCK is not set
164# CONFIG_INLINE_READ_LOCK_BH is not set
165# CONFIG_INLINE_READ_LOCK_IRQ is not set
166# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
167CONFIG_INLINE_READ_UNLOCK=y
168# CONFIG_INLINE_READ_UNLOCK_BH is not set
169CONFIG_INLINE_READ_UNLOCK_IRQ=y
170# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
171# CONFIG_INLINE_WRITE_TRYLOCK is not set
172# CONFIG_INLINE_WRITE_LOCK is not set
173# CONFIG_INLINE_WRITE_LOCK_BH is not set
174# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
175# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
176CONFIG_INLINE_WRITE_UNLOCK=y
177# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
178CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
179# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
180# CONFIG_MUTEX_SPIN_ON_OWNER is not set
149# CONFIG_FREEZER is not set 181# CONFIG_FREEZER is not set
150 182
151# 183#
@@ -221,8 +253,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
221# CONFIG_PHYS_ADDR_T_64BIT is not set 253# CONFIG_PHYS_ADDR_T_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=0 254CONFIG_ZONE_DMA_FLAG=0
223CONFIG_NR_QUICK=2 255CONFIG_NR_QUICK=2
224CONFIG_HAVE_MLOCK=y
225CONFIG_HAVE_MLOCKED_PAGE_BIT=y
226# CONFIG_KSM is not set 256# CONFIG_KSM is not set
227CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 257CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
228 258
@@ -307,7 +337,6 @@ CONFIG_GUSA=y
307CONFIG_ZERO_PAGE_OFFSET=0x00001000 337CONFIG_ZERO_PAGE_OFFSET=0x00001000
308CONFIG_BOOT_LINK_OFFSET=0x00800000 338CONFIG_BOOT_LINK_OFFSET=0x00800000
309CONFIG_ENTRY_OFFSET=0x00001000 339CONFIG_ENTRY_OFFSET=0x00001000
310# CONFIG_UBC_WAKEUP is not set
311# CONFIG_CMDLINE_OVERWRITE is not set 340# CONFIG_CMDLINE_OVERWRITE is not set
312# CONFIG_CMDLINE_EXTEND is not set 341# CONFIG_CMDLINE_EXTEND is not set
313 342
@@ -406,9 +435,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
406# CONFIG_AF_RXRPC is not set 435# CONFIG_AF_RXRPC is not set
407CONFIG_WIRELESS=y 436CONFIG_WIRELESS=y
408# CONFIG_CFG80211 is not set 437# CONFIG_CFG80211 is not set
409CONFIG_CFG80211_DEFAULT_PS_VALUE=0
410# CONFIG_WIRELESS_OLD_REGULATORY is not set
411# CONFIG_WIRELESS_EXT is not set
412# CONFIG_LIB80211 is not set 438# CONFIG_LIB80211 is not set
413 439
414# 440#
@@ -513,6 +539,10 @@ CONFIG_MTD_ROM=y
513CONFIG_BLK_DEV=y 539CONFIG_BLK_DEV=y
514# CONFIG_BLK_DEV_COW_COMMON is not set 540# CONFIG_BLK_DEV_COW_COMMON is not set
515# CONFIG_BLK_DEV_LOOP is not set 541# CONFIG_BLK_DEV_LOOP is not set
542
543#
544# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
545#
516# CONFIG_BLK_DEV_NBD is not set 546# CONFIG_BLK_DEV_NBD is not set
517# CONFIG_BLK_DEV_RAM is not set 547# CONFIG_BLK_DEV_RAM is not set
518# CONFIG_CDROM_PKTCDVD is not set 548# CONFIG_CDROM_PKTCDVD is not set
@@ -615,11 +645,11 @@ CONFIG_STNIC=y
615# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 645# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
616# CONFIG_B44 is not set 646# CONFIG_B44 is not set
617# CONFIG_KS8842 is not set 647# CONFIG_KS8842 is not set
648# CONFIG_KS8851_MLL is not set
618CONFIG_NETDEV_1000=y 649CONFIG_NETDEV_1000=y
619CONFIG_NETDEV_10000=y 650CONFIG_NETDEV_10000=y
620CONFIG_WLAN=y 651CONFIG_WLAN=y
621# CONFIG_WLAN_PRE80211 is not set 652# CONFIG_HOSTAP is not set
622# CONFIG_WLAN_80211 is not set
623 653
624# 654#
625# Enable WiMAX (Networking options) to see the WiMAX drivers 655# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -726,6 +756,7 @@ CONFIG_SSB_POSSIBLE=y
726# 756#
727# CONFIG_MFD_CORE is not set 757# CONFIG_MFD_CORE is not set
728# CONFIG_MFD_SM501 is not set 758# CONFIG_MFD_SM501 is not set
759# CONFIG_MFD_SH_MOBILE_SDHI is not set
729# CONFIG_HTC_PASIC3 is not set 760# CONFIG_HTC_PASIC3 is not set
730# CONFIG_MFD_TMIO is not set 761# CONFIG_MFD_TMIO is not set
731# CONFIG_REGULATOR is not set 762# CONFIG_REGULATOR is not set
@@ -785,6 +816,7 @@ CONFIG_RTC_LIB=y
785# CONFIG_EXT2_FS is not set 816# CONFIG_EXT2_FS is not set
786# CONFIG_EXT3_FS is not set 817# CONFIG_EXT3_FS is not set
787# CONFIG_EXT4_FS is not set 818# CONFIG_EXT4_FS is not set
819CONFIG_EXT4_USE_FOR_EXT23=y
788# CONFIG_REISERFS_FS is not set 820# CONFIG_REISERFS_FS is not set
789# CONFIG_JFS_FS is not set 821# CONFIG_JFS_FS is not set
790# CONFIG_FS_POSIX_ACL is not set 822# CONFIG_FS_POSIX_ACL is not set
@@ -914,10 +946,11 @@ CONFIG_FRAME_WARN=1024
914# CONFIG_DEBUG_FS is not set 946# CONFIG_DEBUG_FS is not set
915# CONFIG_HEADERS_CHECK is not set 947# CONFIG_HEADERS_CHECK is not set
916# CONFIG_DEBUG_KERNEL is not set 948# CONFIG_DEBUG_KERNEL is not set
917# CONFIG_DEBUG_BUGVERBOSE is not set 949CONFIG_DEBUG_BUGVERBOSE=y
918# CONFIG_DEBUG_MEMORY_INIT is not set 950# CONFIG_DEBUG_MEMORY_INIT is not set
919# CONFIG_RCU_CPU_STALL_DETECTOR is not set 951# CONFIG_RCU_CPU_STALL_DETECTOR is not set
920# CONFIG_LATENCYTOP is not set 952# CONFIG_LATENCYTOP is not set
953# CONFIG_SYSCTL_SYSCALL_CHECK is not set
921CONFIG_HAVE_FUNCTION_TRACER=y 954CONFIG_HAVE_FUNCTION_TRACER=y
922CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 955CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
923CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 956CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -930,7 +963,6 @@ CONFIG_TRACING_SUPPORT=y
930# CONFIG_SAMPLES is not set 963# CONFIG_SAMPLES is not set
931CONFIG_HAVE_ARCH_KGDB=y 964CONFIG_HAVE_ARCH_KGDB=y
932# CONFIG_SH_STANDARD_BIOS is not set 965# CONFIG_SH_STANDARD_BIOS is not set
933# CONFIG_EARLY_SCIF_CONSOLE is not set
934# CONFIG_DWARF_UNWINDER is not set 966# CONFIG_DWARF_UNWINDER is not set
935 967
936# 968#
@@ -939,7 +971,11 @@ CONFIG_HAVE_ARCH_KGDB=y
939# CONFIG_KEYS is not set 971# CONFIG_KEYS is not set
940# CONFIG_SECURITY is not set 972# CONFIG_SECURITY is not set
941# CONFIG_SECURITYFS is not set 973# CONFIG_SECURITYFS is not set
942# CONFIG_SECURITY_FILE_CAPABILITIES is not set 974# CONFIG_DEFAULT_SECURITY_SELINUX is not set
975# CONFIG_DEFAULT_SECURITY_SMACK is not set
976# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
977CONFIG_DEFAULT_SECURITY_DAC=y
978CONFIG_DEFAULT_SECURITY=""
943CONFIG_CRYPTO=y 979CONFIG_CRYPTO=y
944 980
945# 981#
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig
index c20ae5e35c81..d1effdeaa416 100644
--- a/arch/sh/configs/se7751_defconfig
+++ b/arch/sh/configs/se7751_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:01:41 2009 4# Mon Jan 4 14:39:56 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y
60# 62#
61CONFIG_TREE_RCU=y 63CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 64# CONFIG_TREE_PREEMPT_RCU is not set
65# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 66# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 67CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 68# CONFIG_RCU_FANOUT_EXACT is not set
@@ -98,6 +101,7 @@ CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 101CONFIG_SHMEM=y
99CONFIG_AIO=y 102CONFIG_AIO=y
100CONFIG_HAVE_PERF_EVENTS=y 103CONFIG_HAVE_PERF_EVENTS=y
104CONFIG_PERF_USE_VMALLOC=y
101 105
102# 106#
103# Kernel Performance Events And Counters 107# Kernel Performance Events And Counters
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y
119CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
120CONFIG_HAVE_DMA_API_DEBUG=y 125CONFIG_HAVE_DMA_API_DEBUG=y
121 126
@@ -141,14 +146,41 @@ CONFIG_LBDAF=y
141# IO Schedulers 146# IO Schedulers
142# 147#
143CONFIG_IOSCHED_NOOP=y 148CONFIG_IOSCHED_NOOP=y
144CONFIG_IOSCHED_AS=y
145CONFIG_IOSCHED_DEADLINE=y 149CONFIG_IOSCHED_DEADLINE=y
146CONFIG_IOSCHED_CFQ=y 150CONFIG_IOSCHED_CFQ=y
147CONFIG_DEFAULT_AS=y
148# CONFIG_DEFAULT_DEADLINE is not set 151# CONFIG_DEFAULT_DEADLINE is not set
149# CONFIG_DEFAULT_CFQ is not set 152CONFIG_DEFAULT_CFQ=y
150# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 154CONFIG_DEFAULT_IOSCHED="cfq"
155# CONFIG_INLINE_SPIN_TRYLOCK is not set
156# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
157# CONFIG_INLINE_SPIN_LOCK is not set
158# CONFIG_INLINE_SPIN_LOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
161CONFIG_INLINE_SPIN_UNLOCK=y
162# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
163CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
164# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
165# CONFIG_INLINE_READ_TRYLOCK is not set
166# CONFIG_INLINE_READ_LOCK is not set
167# CONFIG_INLINE_READ_LOCK_BH is not set
168# CONFIG_INLINE_READ_LOCK_IRQ is not set
169# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
170CONFIG_INLINE_READ_UNLOCK=y
171# CONFIG_INLINE_READ_UNLOCK_BH is not set
172CONFIG_INLINE_READ_UNLOCK_IRQ=y
173# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
174# CONFIG_INLINE_WRITE_TRYLOCK is not set
175# CONFIG_INLINE_WRITE_LOCK is not set
176# CONFIG_INLINE_WRITE_LOCK_BH is not set
177# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
179CONFIG_INLINE_WRITE_UNLOCK=y
180# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
181CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
182# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
183# CONFIG_MUTEX_SPIN_ON_OWNER is not set
152# CONFIG_FREEZER is not set 184# CONFIG_FREEZER is not set
153 185
154# 186#
@@ -224,8 +256,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
224# CONFIG_PHYS_ADDR_T_64BIT is not set 256# CONFIG_PHYS_ADDR_T_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=0 257CONFIG_ZONE_DMA_FLAG=0
226CONFIG_NR_QUICK=2 258CONFIG_NR_QUICK=2
227CONFIG_HAVE_MLOCK=y
228CONFIG_HAVE_MLOCKED_PAGE_BIT=y
229# CONFIG_KSM is not set 259# CONFIG_KSM is not set
230CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 260CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
231 261
@@ -311,7 +341,6 @@ CONFIG_GUSA=y
311CONFIG_ZERO_PAGE_OFFSET=0x00010000 341CONFIG_ZERO_PAGE_OFFSET=0x00010000
312CONFIG_BOOT_LINK_OFFSET=0x00800000 342CONFIG_BOOT_LINK_OFFSET=0x00800000
313CONFIG_ENTRY_OFFSET=0x00001000 343CONFIG_ENTRY_OFFSET=0x00001000
314# CONFIG_UBC_WAKEUP is not set
315CONFIG_CMDLINE_OVERWRITE=y 344CONFIG_CMDLINE_OVERWRITE=y
316# CONFIG_CMDLINE_EXTEND is not set 345# CONFIG_CMDLINE_EXTEND is not set
317CONFIG_CMDLINE="console=ttySC1,38400" 346CONFIG_CMDLINE="console=ttySC1,38400"
@@ -430,9 +459,6 @@ CONFIG_IP_NF_QUEUE=y
430# CONFIG_AF_RXRPC is not set 459# CONFIG_AF_RXRPC is not set
431CONFIG_WIRELESS=y 460CONFIG_WIRELESS=y
432# CONFIG_CFG80211 is not set 461# CONFIG_CFG80211 is not set
433CONFIG_CFG80211_DEFAULT_PS_VALUE=0
434# CONFIG_WIRELESS_OLD_REGULATORY is not set
435# CONFIG_WIRELESS_EXT is not set
436# CONFIG_LIB80211 is not set 462# CONFIG_LIB80211 is not set
437 463
438# 464#
@@ -537,6 +563,10 @@ CONFIG_MTD_RAM=y
537CONFIG_BLK_DEV=y 563CONFIG_BLK_DEV=y
538# CONFIG_BLK_DEV_COW_COMMON is not set 564# CONFIG_BLK_DEV_COW_COMMON is not set
539# CONFIG_BLK_DEV_LOOP is not set 565# CONFIG_BLK_DEV_LOOP is not set
566
567#
568# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
569#
540# CONFIG_BLK_DEV_NBD is not set 570# CONFIG_BLK_DEV_NBD is not set
541CONFIG_BLK_DEV_RAM=y 571CONFIG_BLK_DEV_RAM=y
542CONFIG_BLK_DEV_RAM_COUNT=16 572CONFIG_BLK_DEV_RAM_COUNT=16
@@ -591,11 +621,11 @@ CONFIG_MII=y
591# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 621# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
592# CONFIG_B44 is not set 622# CONFIG_B44 is not set
593# CONFIG_KS8842 is not set 623# CONFIG_KS8842 is not set
624# CONFIG_KS8851_MLL is not set
594CONFIG_NETDEV_1000=y 625CONFIG_NETDEV_1000=y
595CONFIG_NETDEV_10000=y 626CONFIG_NETDEV_10000=y
596CONFIG_WLAN=y 627CONFIG_WLAN=y
597# CONFIG_WLAN_PRE80211 is not set 628# CONFIG_HOSTAP is not set
598# CONFIG_WLAN_80211 is not set
599 629
600# 630#
601# Enable WiMAX (Networking options) to see the WiMAX drivers 631# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -693,6 +723,7 @@ CONFIG_SSB_POSSIBLE=y
693# 723#
694# CONFIG_MFD_CORE is not set 724# CONFIG_MFD_CORE is not set
695# CONFIG_MFD_SM501 is not set 725# CONFIG_MFD_SM501 is not set
726# CONFIG_MFD_SH_MOBILE_SDHI is not set
696# CONFIG_HTC_PASIC3 is not set 727# CONFIG_HTC_PASIC3 is not set
697# CONFIG_MFD_TMIO is not set 728# CONFIG_MFD_TMIO is not set
698# CONFIG_REGULATOR is not set 729# CONFIG_REGULATOR is not set
@@ -754,6 +785,7 @@ CONFIG_EXT2_FS=y
754# CONFIG_EXT2_FS_XIP is not set 785# CONFIG_EXT2_FS_XIP is not set
755# CONFIG_EXT3_FS is not set 786# CONFIG_EXT3_FS is not set
756# CONFIG_EXT4_FS is not set 787# CONFIG_EXT4_FS is not set
788CONFIG_EXT4_USE_FOR_EXT23=y
757# CONFIG_REISERFS_FS is not set 789# CONFIG_REISERFS_FS is not set
758# CONFIG_JFS_FS is not set 790# CONFIG_JFS_FS is not set
759# CONFIG_FS_POSIX_ACL is not set 791# CONFIG_FS_POSIX_ACL is not set
@@ -863,10 +895,11 @@ CONFIG_FRAME_WARN=1024
863# CONFIG_DEBUG_FS is not set 895# CONFIG_DEBUG_FS is not set
864# CONFIG_HEADERS_CHECK is not set 896# CONFIG_HEADERS_CHECK is not set
865# CONFIG_DEBUG_KERNEL is not set 897# CONFIG_DEBUG_KERNEL is not set
866# CONFIG_DEBUG_BUGVERBOSE is not set 898CONFIG_DEBUG_BUGVERBOSE=y
867# CONFIG_DEBUG_MEMORY_INIT is not set 899# CONFIG_DEBUG_MEMORY_INIT is not set
868# CONFIG_RCU_CPU_STALL_DETECTOR is not set 900# CONFIG_RCU_CPU_STALL_DETECTOR is not set
869# CONFIG_LATENCYTOP is not set 901# CONFIG_LATENCYTOP is not set
902# CONFIG_SYSCTL_SYSCALL_CHECK is not set
870CONFIG_HAVE_FUNCTION_TRACER=y 903CONFIG_HAVE_FUNCTION_TRACER=y
871CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 904CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
872CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 905CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -879,7 +912,6 @@ CONFIG_TRACING_SUPPORT=y
879# CONFIG_SAMPLES is not set 912# CONFIG_SAMPLES is not set
880CONFIG_HAVE_ARCH_KGDB=y 913CONFIG_HAVE_ARCH_KGDB=y
881# CONFIG_SH_STANDARD_BIOS is not set 914# CONFIG_SH_STANDARD_BIOS is not set
882# CONFIG_EARLY_SCIF_CONSOLE is not set
883# CONFIG_DWARF_UNWINDER is not set 915# CONFIG_DWARF_UNWINDER is not set
884 916
885# 917#
@@ -888,7 +920,11 @@ CONFIG_HAVE_ARCH_KGDB=y
888# CONFIG_KEYS is not set 920# CONFIG_KEYS is not set
889# CONFIG_SECURITY is not set 921# CONFIG_SECURITY is not set
890# CONFIG_SECURITYFS is not set 922# CONFIG_SECURITYFS is not set
891# CONFIG_SECURITY_FILE_CAPABILITIES is not set 923# CONFIG_DEFAULT_SECURITY_SELINUX is not set
924# CONFIG_DEFAULT_SECURITY_SMACK is not set
925# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
926CONFIG_DEFAULT_SECURITY_DAC=y
927CONFIG_DEFAULT_SECURITY=""
892CONFIG_CRYPTO=y 928CONFIG_CRYPTO=y
893 929
894# 930#
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig
index 82baeef40a96..58533d50f06e 100644
--- a/arch/sh/configs/se7780_defconfig
+++ b/arch/sh/configs/se7780_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:03:59 2009 4# Mon Jan 4 14:40:32 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -59,6 +61,7 @@ CONFIG_SYSVIPC_SYSCTL=y
59# 61#
60CONFIG_TREE_RCU=y 62CONFIG_TREE_RCU=y
61# CONFIG_TREE_PREEMPT_RCU is not set 63# CONFIG_TREE_PREEMPT_RCU is not set
64# CONFIG_TINY_RCU is not set
62# CONFIG_RCU_TRACE is not set 65# CONFIG_RCU_TRACE is not set
63CONFIG_RCU_FANOUT=32 66CONFIG_RCU_FANOUT=32
64# CONFIG_RCU_FANOUT_EXACT is not set 67# CONFIG_RCU_FANOUT_EXACT is not set
@@ -92,6 +95,7 @@ CONFIG_EVENTFD=y
92CONFIG_SHMEM=y 95CONFIG_SHMEM=y
93CONFIG_AIO=y 96CONFIG_AIO=y
94CONFIG_HAVE_PERF_EVENTS=y 97CONFIG_HAVE_PERF_EVENTS=y
98CONFIG_PERF_USE_VMALLOC=y
95 99
96# 100#
97# Kernel Performance Events And Counters 101# Kernel Performance Events And Counters
@@ -110,6 +114,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
110CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
112CONFIG_HAVE_ARCH_TRACEHOOK=y 116CONFIG_HAVE_ARCH_TRACEHOOK=y
117CONFIG_HAVE_DMA_ATTRS=y
113CONFIG_HAVE_CLK=y 118CONFIG_HAVE_CLK=y
114CONFIG_HAVE_DMA_API_DEBUG=y 119CONFIG_HAVE_DMA_API_DEBUG=y
115 120
@@ -136,14 +141,41 @@ CONFIG_BLK_DEV_BSG=y
136# IO Schedulers 141# IO Schedulers
137# 142#
138CONFIG_IOSCHED_NOOP=y 143CONFIG_IOSCHED_NOOP=y
139# CONFIG_IOSCHED_AS is not set
140CONFIG_IOSCHED_DEADLINE=y 144CONFIG_IOSCHED_DEADLINE=y
141# CONFIG_IOSCHED_CFQ is not set 145# CONFIG_IOSCHED_CFQ is not set
142# CONFIG_DEFAULT_AS is not set
143CONFIG_DEFAULT_DEADLINE=y 146CONFIG_DEFAULT_DEADLINE=y
144# CONFIG_DEFAULT_CFQ is not set 147# CONFIG_DEFAULT_CFQ is not set
145# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="deadline" 149CONFIG_DEFAULT_IOSCHED="deadline"
150# CONFIG_INLINE_SPIN_TRYLOCK is not set
151# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
152# CONFIG_INLINE_SPIN_LOCK is not set
153# CONFIG_INLINE_SPIN_LOCK_BH is not set
154# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
155# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
156CONFIG_INLINE_SPIN_UNLOCK=y
157# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
158CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
159# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
160# CONFIG_INLINE_READ_TRYLOCK is not set
161# CONFIG_INLINE_READ_LOCK is not set
162# CONFIG_INLINE_READ_LOCK_BH is not set
163# CONFIG_INLINE_READ_LOCK_IRQ is not set
164# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
165CONFIG_INLINE_READ_UNLOCK=y
166# CONFIG_INLINE_READ_UNLOCK_BH is not set
167CONFIG_INLINE_READ_UNLOCK_IRQ=y
168# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
169# CONFIG_INLINE_WRITE_TRYLOCK is not set
170# CONFIG_INLINE_WRITE_LOCK is not set
171# CONFIG_INLINE_WRITE_LOCK_BH is not set
172# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
173# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
174CONFIG_INLINE_WRITE_UNLOCK=y
175# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
176CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
177# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
178# CONFIG_MUTEX_SPIN_ON_OWNER is not set
147# CONFIG_FREEZER is not set 179# CONFIG_FREEZER is not set
148 180
149# 181#
@@ -222,8 +254,6 @@ CONFIG_MIGRATION=y
222# CONFIG_PHYS_ADDR_T_64BIT is not set 254# CONFIG_PHYS_ADDR_T_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=0 255CONFIG_ZONE_DMA_FLAG=0
224CONFIG_NR_QUICK=2 256CONFIG_NR_QUICK=2
225CONFIG_HAVE_MLOCK=y
226CONFIG_HAVE_MLOCKED_PAGE_BIT=y
227# CONFIG_KSM is not set 257# CONFIG_KSM is not set
228CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 258CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
229 259
@@ -313,7 +343,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
313# Bus options 343# Bus options
314# 344#
315CONFIG_PCI=y 345CONFIG_PCI=y
316CONFIG_SH_PCIDMA_NONCOHERENT=y
317# CONFIG_PCIEPORTBUS is not set 346# CONFIG_PCIEPORTBUS is not set
318# CONFIG_ARCH_SUPPORTS_MSI is not set 347# CONFIG_ARCH_SUPPORTS_MSI is not set
319CONFIG_PCI_LEGACY=y 348CONFIG_PCI_LEGACY=y
@@ -401,9 +430,6 @@ CONFIG_IPV6=y
401# CONFIG_BT is not set 430# CONFIG_BT is not set
402CONFIG_WIRELESS=y 431CONFIG_WIRELESS=y
403# CONFIG_CFG80211 is not set 432# CONFIG_CFG80211 is not set
404CONFIG_CFG80211_DEFAULT_PS_VALUE=0
405# CONFIG_WIRELESS_OLD_REGULATORY is not set
406# CONFIG_WIRELESS_EXT is not set
407# CONFIG_LIB80211 is not set 433# CONFIG_LIB80211 is not set
408 434
409# 435#
@@ -517,6 +543,10 @@ CONFIG_BLK_DEV=y
517# CONFIG_BLK_DEV_COW_COMMON is not set 543# CONFIG_BLK_DEV_COW_COMMON is not set
518CONFIG_BLK_DEV_LOOP=y 544CONFIG_BLK_DEV_LOOP=y
519# CONFIG_BLK_DEV_CRYPTOLOOP is not set 545# CONFIG_BLK_DEV_CRYPTOLOOP is not set
546
547#
548# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
549#
520# CONFIG_BLK_DEV_NBD is not set 550# CONFIG_BLK_DEV_NBD is not set
521# CONFIG_BLK_DEV_SX8 is not set 551# CONFIG_BLK_DEV_SX8 is not set
522# CONFIG_BLK_DEV_UB is not set 552# CONFIG_BLK_DEV_UB is not set
@@ -574,8 +604,11 @@ CONFIG_SCSI_WAIT_SCAN=m
574CONFIG_SCSI_LOWLEVEL=y 604CONFIG_SCSI_LOWLEVEL=y
575# CONFIG_ISCSI_TCP is not set 605# CONFIG_ISCSI_TCP is not set
576# CONFIG_SCSI_BNX2_ISCSI is not set 606# CONFIG_SCSI_BNX2_ISCSI is not set
607# CONFIG_BE2ISCSI is not set
577# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 608# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
609# CONFIG_SCSI_HPSA is not set
578# CONFIG_SCSI_3W_9XXX is not set 610# CONFIG_SCSI_3W_9XXX is not set
611# CONFIG_SCSI_3W_SAS is not set
579# CONFIG_SCSI_ACARD is not set 612# CONFIG_SCSI_ACARD is not set
580# CONFIG_SCSI_AACRAID is not set 613# CONFIG_SCSI_AACRAID is not set
581# CONFIG_SCSI_AIC7XXX is not set 614# CONFIG_SCSI_AIC7XXX is not set
@@ -608,7 +641,9 @@ CONFIG_SCSI_LOWLEVEL=y
608# CONFIG_SCSI_NSP32 is not set 641# CONFIG_SCSI_NSP32 is not set
609# CONFIG_SCSI_DEBUG is not set 642# CONFIG_SCSI_DEBUG is not set
610# CONFIG_SCSI_PMCRAID is not set 643# CONFIG_SCSI_PMCRAID is not set
644# CONFIG_SCSI_PM8001 is not set
611# CONFIG_SCSI_SRP is not set 645# CONFIG_SCSI_SRP is not set
646# CONFIG_SCSI_BFA_FC is not set
612# CONFIG_SCSI_DH is not set 647# CONFIG_SCSI_DH is not set
613# CONFIG_SCSI_OSD_INITIATOR is not set 648# CONFIG_SCSI_OSD_INITIATOR is not set
614CONFIG_ATA=y 649CONFIG_ATA=y
@@ -642,6 +677,8 @@ CONFIG_SATA_SIL=y
642# CONFIG_PATA_EFAR is not set 677# CONFIG_PATA_EFAR is not set
643# CONFIG_ATA_GENERIC is not set 678# CONFIG_ATA_GENERIC is not set
644# CONFIG_PATA_HPT366 is not set 679# CONFIG_PATA_HPT366 is not set
680# CONFIG_PATA_HPT37X is not set
681# CONFIG_PATA_HPT3X2N is not set
645# CONFIG_PATA_HPT3X3 is not set 682# CONFIG_PATA_HPT3X3 is not set
646# CONFIG_PATA_IT821X is not set 683# CONFIG_PATA_IT821X is not set
647# CONFIG_PATA_JMICRON is not set 684# CONFIG_PATA_JMICRON is not set
@@ -650,14 +687,15 @@ CONFIG_SATA_SIL=y
650# CONFIG_PATA_MPIIX is not set 687# CONFIG_PATA_MPIIX is not set
651# CONFIG_PATA_OLDPIIX is not set 688# CONFIG_PATA_OLDPIIX is not set
652# CONFIG_PATA_NETCELL is not set 689# CONFIG_PATA_NETCELL is not set
690# CONFIG_PATA_NINJA32 is not set
653# CONFIG_PATA_NS87410 is not set 691# CONFIG_PATA_NS87410 is not set
654# CONFIG_PATA_NS87415 is not set 692# CONFIG_PATA_NS87415 is not set
693# CONFIG_PATA_PDC2027X is not set
655# CONFIG_PATA_PDC_OLD is not set 694# CONFIG_PATA_PDC_OLD is not set
656# CONFIG_PATA_RDC is not set 695# CONFIG_PATA_RDC is not set
657# CONFIG_PATA_RZ1000 is not set 696# CONFIG_PATA_RZ1000 is not set
658# CONFIG_PATA_SC1200 is not set 697# CONFIG_PATA_SC1200 is not set
659# CONFIG_PATA_SERVERWORKS is not set 698# CONFIG_PATA_SERVERWORKS is not set
660# CONFIG_PATA_PDC2027X is not set
661# CONFIG_PATA_SIL680 is not set 699# CONFIG_PATA_SIL680 is not set
662# CONFIG_PATA_SIS is not set 700# CONFIG_PATA_SIS is not set
663# CONFIG_PATA_VIA is not set 701# CONFIG_PATA_VIA is not set
@@ -748,14 +786,16 @@ CONFIG_NET_PCI=y
748# CONFIG_SUNDANCE is not set 786# CONFIG_SUNDANCE is not set
749# CONFIG_TLAN is not set 787# CONFIG_TLAN is not set
750# CONFIG_KS8842 is not set 788# CONFIG_KS8842 is not set
789# CONFIG_KS8851_MLL is not set
751# CONFIG_VIA_RHINE is not set 790# CONFIG_VIA_RHINE is not set
752# CONFIG_ATL2 is not set 791# CONFIG_ATL2 is not set
753# CONFIG_NETDEV_1000 is not set 792# CONFIG_NETDEV_1000 is not set
754# CONFIG_NETDEV_10000 is not set 793# CONFIG_NETDEV_10000 is not set
755# CONFIG_TR is not set 794# CONFIG_TR is not set
756CONFIG_WLAN=y 795CONFIG_WLAN=y
757# CONFIG_WLAN_PRE80211 is not set 796# CONFIG_ATMEL is not set
758# CONFIG_WLAN_80211 is not set 797# CONFIG_USB_ZD1201 is not set
798# CONFIG_HOSTAP is not set
759 799
760# 800#
761# Enable WiMAX (Networking options) to see the WiMAX drivers 801# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -774,6 +814,7 @@ CONFIG_WLAN=y
774# CONFIG_NET_FC is not set 814# CONFIG_NET_FC is not set
775# CONFIG_NETPOLL is not set 815# CONFIG_NETPOLL is not set
776# CONFIG_NET_POLL_CONTROLLER is not set 816# CONFIG_NET_POLL_CONTROLLER is not set
817# CONFIG_VMXNET3 is not set
777# CONFIG_ISDN is not set 818# CONFIG_ISDN is not set
778# CONFIG_PHONE is not set 819# CONFIG_PHONE is not set
779 820
@@ -783,6 +824,7 @@ CONFIG_WLAN=y
783CONFIG_INPUT=y 824CONFIG_INPUT=y
784CONFIG_INPUT_FF_MEMLESS=m 825CONFIG_INPUT_FF_MEMLESS=m
785# CONFIG_INPUT_POLLDEV is not set 826# CONFIG_INPUT_POLLDEV is not set
827# CONFIG_INPUT_SPARSEKMAP is not set
786 828
787# 829#
788# Userland interfaces 830# Userland interfaces
@@ -883,6 +925,7 @@ CONFIG_SSB_POSSIBLE=y
883# 925#
884# CONFIG_MFD_CORE is not set 926# CONFIG_MFD_CORE is not set
885# CONFIG_MFD_SM501 is not set 927# CONFIG_MFD_SM501 is not set
928# CONFIG_MFD_SH_MOBILE_SDHI is not set
886# CONFIG_HTC_PASIC3 is not set 929# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set 930# CONFIG_MFD_TMIO is not set
888# CONFIG_REGULATOR is not set 931# CONFIG_REGULATOR is not set
@@ -1149,6 +1192,7 @@ CONFIG_EXT2_FS=y
1149# CONFIG_EXT2_FS_XIP is not set 1192# CONFIG_EXT2_FS_XIP is not set
1150# CONFIG_EXT3_FS is not set 1193# CONFIG_EXT3_FS is not set
1151# CONFIG_EXT4_FS is not set 1194# CONFIG_EXT4_FS is not set
1195CONFIG_EXT4_USE_FOR_EXT23=y
1152# CONFIG_REISERFS_FS is not set 1196# CONFIG_REISERFS_FS is not set
1153# CONFIG_JFS_FS is not set 1197# CONFIG_JFS_FS is not set
1154# CONFIG_FS_POSIX_ACL is not set 1198# CONFIG_FS_POSIX_ACL is not set
@@ -1285,7 +1329,7 @@ CONFIG_FRAME_WARN=1024
1285CONFIG_DEBUG_FS=y 1329CONFIG_DEBUG_FS=y
1286# CONFIG_HEADERS_CHECK is not set 1330# CONFIG_HEADERS_CHECK is not set
1287# CONFIG_DEBUG_KERNEL is not set 1331# CONFIG_DEBUG_KERNEL is not set
1288# CONFIG_DEBUG_BUGVERBOSE is not set 1332CONFIG_DEBUG_BUGVERBOSE=y
1289# CONFIG_DEBUG_MEMORY_INIT is not set 1333# CONFIG_DEBUG_MEMORY_INIT is not set
1290# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1334# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1291# CONFIG_LATENCYTOP is not set 1335# CONFIG_LATENCYTOP is not set
@@ -1303,7 +1347,6 @@ CONFIG_TRACING_SUPPORT=y
1303# CONFIG_SAMPLES is not set 1347# CONFIG_SAMPLES is not set
1304CONFIG_HAVE_ARCH_KGDB=y 1348CONFIG_HAVE_ARCH_KGDB=y
1305# CONFIG_SH_STANDARD_BIOS is not set 1349# CONFIG_SH_STANDARD_BIOS is not set
1306# CONFIG_EARLY_SCIF_CONSOLE is not set
1307# CONFIG_DWARF_UNWINDER is not set 1350# CONFIG_DWARF_UNWINDER is not set
1308 1351
1309# 1352#
@@ -1312,7 +1355,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1312# CONFIG_KEYS is not set 1355# CONFIG_KEYS is not set
1313# CONFIG_SECURITY is not set 1356# CONFIG_SECURITY is not set
1314# CONFIG_SECURITYFS is not set 1357# CONFIG_SECURITYFS is not set
1315# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1358# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1359# CONFIG_DEFAULT_SECURITY_SMACK is not set
1360# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1361CONFIG_DEFAULT_SECURITY_DAC=y
1362CONFIG_DEFAULT_SECURITY=""
1316CONFIG_CRYPTO=y 1363CONFIG_CRYPTO=y
1317 1364
1318# 1365#
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig
index dd0e8900afb7..666fde110b27 100644
--- a/arch/sh/configs/sh03_defconfig
+++ b/arch/sh/configs/sh03_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:07:14 2009 4# Mon Jan 4 14:41:25 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_GENERIC_CMOS_UPDATE=y 21CONFIG_GENERIC_CMOS_UPDATE=y
22# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 22# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
23CONFIG_ARCH_HIBERNATION_POSSIBLE=y 23CONFIG_ARCH_HIBERNATION_POSSIBLE=y
24CONFIG_SYS_SUPPORTS_HUGETLBFS=y
24CONFIG_SYS_SUPPORTS_PCI=y 25CONFIG_SYS_SUPPORTS_PCI=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
26CONFIG_STACKTRACE_SUPPORT=y 27CONFIG_STACKTRACE_SUPPORT=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -64,6 +66,7 @@ CONFIG_BSD_PROCESS_ACCT=y
64# 66#
65CONFIG_TREE_RCU=y 67CONFIG_TREE_RCU=y
66# CONFIG_TREE_PREEMPT_RCU is not set 68# CONFIG_TREE_PREEMPT_RCU is not set
69# CONFIG_TINY_RCU is not set
67# CONFIG_RCU_TRACE is not set 70# CONFIG_RCU_TRACE is not set
68CONFIG_RCU_FANOUT=32 71CONFIG_RCU_FANOUT=32
69# CONFIG_RCU_FANOUT_EXACT is not set 72# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 105CONFIG_SHMEM=y
103CONFIG_AIO=y 106CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 107CONFIG_HAVE_PERF_EVENTS=y
108CONFIG_PERF_USE_VMALLOC=y
105 109
106# 110#
107# Kernel Performance Events And Counters 111# Kernel Performance Events And Counters
@@ -124,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 128CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
131CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_HAVE_CLK=y 132CONFIG_HAVE_CLK=y
128CONFIG_HAVE_DMA_API_DEBUG=y 133CONFIG_HAVE_DMA_API_DEBUG=y
129 134
@@ -151,14 +156,41 @@ CONFIG_LBDAF=y
151# IO Schedulers 156# IO Schedulers
152# 157#
153CONFIG_IOSCHED_NOOP=y 158CONFIG_IOSCHED_NOOP=y
154CONFIG_IOSCHED_AS=y
155CONFIG_IOSCHED_DEADLINE=y 159CONFIG_IOSCHED_DEADLINE=y
156CONFIG_IOSCHED_CFQ=y 160CONFIG_IOSCHED_CFQ=y
157CONFIG_DEFAULT_AS=y
158# CONFIG_DEFAULT_DEADLINE is not set 161# CONFIG_DEFAULT_DEADLINE is not set
159# CONFIG_DEFAULT_CFQ is not set 162CONFIG_DEFAULT_CFQ=y
160# CONFIG_DEFAULT_NOOP is not set 163# CONFIG_DEFAULT_NOOP is not set
161CONFIG_DEFAULT_IOSCHED="anticipatory" 164CONFIG_DEFAULT_IOSCHED="cfq"
165# CONFIG_INLINE_SPIN_TRYLOCK is not set
166# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
167# CONFIG_INLINE_SPIN_LOCK is not set
168# CONFIG_INLINE_SPIN_LOCK_BH is not set
169# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
170# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
171# CONFIG_INLINE_SPIN_UNLOCK is not set
172# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
173# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
174# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
175# CONFIG_INLINE_READ_TRYLOCK is not set
176# CONFIG_INLINE_READ_LOCK is not set
177# CONFIG_INLINE_READ_LOCK_BH is not set
178# CONFIG_INLINE_READ_LOCK_IRQ is not set
179# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
180# CONFIG_INLINE_READ_UNLOCK is not set
181# CONFIG_INLINE_READ_UNLOCK_BH is not set
182# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
183# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
184# CONFIG_INLINE_WRITE_TRYLOCK is not set
185# CONFIG_INLINE_WRITE_LOCK is not set
186# CONFIG_INLINE_WRITE_LOCK_BH is not set
187# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
188# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
189# CONFIG_INLINE_WRITE_UNLOCK is not set
190# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
191# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
192# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
193# CONFIG_MUTEX_SPIN_ON_OWNER is not set
162# CONFIG_FREEZER is not set 194# CONFIG_FREEZER is not set
163 195
164# 196#
@@ -234,8 +266,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
234# CONFIG_PHYS_ADDR_T_64BIT is not set 266# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=0 267CONFIG_ZONE_DMA_FLAG=0
236CONFIG_NR_QUICK=2 268CONFIG_NR_QUICK=2
237CONFIG_HAVE_MLOCK=y
238CONFIG_HAVE_MLOCKED_PAGE_BIT=y
239# CONFIG_KSM is not set 269# CONFIG_KSM is not set
240CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 270CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
241 271
@@ -320,7 +350,6 @@ CONFIG_GUSA=y
320CONFIG_ZERO_PAGE_OFFSET=0x00004000 350CONFIG_ZERO_PAGE_OFFSET=0x00004000
321CONFIG_BOOT_LINK_OFFSET=0x00800000 351CONFIG_BOOT_LINK_OFFSET=0x00800000
322CONFIG_ENTRY_OFFSET=0x00001000 352CONFIG_ENTRY_OFFSET=0x00001000
323# CONFIG_UBC_WAKEUP is not set
324CONFIG_CMDLINE_OVERWRITE=y 353CONFIG_CMDLINE_OVERWRITE=y
325# CONFIG_CMDLINE_EXTEND is not set 354# CONFIG_CMDLINE_EXTEND is not set
326CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs" 355CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
@@ -329,7 +358,6 @@ CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
329# Bus options 358# Bus options
330# 359#
331CONFIG_PCI=y 360CONFIG_PCI=y
332CONFIG_SH_PCIDMA_NONCOHERENT=y
333# CONFIG_PCIEPORTBUS is not set 361# CONFIG_PCIEPORTBUS is not set
334# CONFIG_ARCH_SUPPORTS_MSI is not set 362# CONFIG_ARCH_SUPPORTS_MSI is not set
335CONFIG_PCI_LEGACY=y 363CONFIG_PCI_LEGACY=y
@@ -433,9 +461,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
433# CONFIG_AF_RXRPC is not set 461# CONFIG_AF_RXRPC is not set
434CONFIG_WIRELESS=y 462CONFIG_WIRELESS=y
435# CONFIG_CFG80211 is not set 463# CONFIG_CFG80211 is not set
436CONFIG_CFG80211_DEFAULT_PS_VALUE=0
437# CONFIG_WIRELESS_OLD_REGULATORY is not set
438# CONFIG_WIRELESS_EXT is not set
439# CONFIG_LIB80211 is not set 464# CONFIG_LIB80211 is not set
440 465
441# 466#
@@ -468,6 +493,10 @@ CONFIG_BLK_DEV=y
468# CONFIG_BLK_DEV_COW_COMMON is not set 493# CONFIG_BLK_DEV_COW_COMMON is not set
469CONFIG_BLK_DEV_LOOP=y 494CONFIG_BLK_DEV_LOOP=y
470# CONFIG_BLK_DEV_CRYPTOLOOP is not set 495# CONFIG_BLK_DEV_CRYPTOLOOP is not set
496
497#
498# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
499#
471CONFIG_BLK_DEV_NBD=y 500CONFIG_BLK_DEV_NBD=y
472# CONFIG_BLK_DEV_SX8 is not set 501# CONFIG_BLK_DEV_SX8 is not set
473CONFIG_BLK_DEV_RAM=y 502CONFIG_BLK_DEV_RAM=y
@@ -580,8 +609,11 @@ CONFIG_SCSI_LOWLEVEL=y
580# CONFIG_ISCSI_TCP is not set 609# CONFIG_ISCSI_TCP is not set
581# CONFIG_SCSI_CXGB3_ISCSI is not set 610# CONFIG_SCSI_CXGB3_ISCSI is not set
582# CONFIG_SCSI_BNX2_ISCSI is not set 611# CONFIG_SCSI_BNX2_ISCSI is not set
612# CONFIG_BE2ISCSI is not set
583# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 613# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
614# CONFIG_SCSI_HPSA is not set
584# CONFIG_SCSI_3W_9XXX is not set 615# CONFIG_SCSI_3W_9XXX is not set
616# CONFIG_SCSI_3W_SAS is not set
585# CONFIG_SCSI_ACARD is not set 617# CONFIG_SCSI_ACARD is not set
586# CONFIG_SCSI_AACRAID is not set 618# CONFIG_SCSI_AACRAID is not set
587# CONFIG_SCSI_AIC7XXX is not set 619# CONFIG_SCSI_AIC7XXX is not set
@@ -614,7 +646,9 @@ CONFIG_SCSI_LOWLEVEL=y
614# CONFIG_SCSI_NSP32 is not set 646# CONFIG_SCSI_NSP32 is not set
615# CONFIG_SCSI_DEBUG is not set 647# CONFIG_SCSI_DEBUG is not set
616# CONFIG_SCSI_PMCRAID is not set 648# CONFIG_SCSI_PMCRAID is not set
649# CONFIG_SCSI_PM8001 is not set
617# CONFIG_SCSI_SRP is not set 650# CONFIG_SCSI_SRP is not set
651# CONFIG_SCSI_BFA_FC is not set
618# CONFIG_SCSI_DH is not set 652# CONFIG_SCSI_DH is not set
619# CONFIG_SCSI_OSD_INITIATOR is not set 653# CONFIG_SCSI_OSD_INITIATOR is not set
620# CONFIG_ATA is not set 654# CONFIG_ATA is not set
@@ -685,6 +719,7 @@ CONFIG_8139CP=y
685# CONFIG_SUNDANCE is not set 719# CONFIG_SUNDANCE is not set
686# CONFIG_TLAN is not set 720# CONFIG_TLAN is not set
687# CONFIG_KS8842 is not set 721# CONFIG_KS8842 is not set
722# CONFIG_KS8851_MLL is not set
688# CONFIG_VIA_RHINE is not set 723# CONFIG_VIA_RHINE is not set
689# CONFIG_SC92031 is not set 724# CONFIG_SC92031 is not set
690# CONFIG_ATL2 is not set 725# CONFIG_ATL2 is not set
@@ -733,8 +768,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y
733# CONFIG_BE2NET is not set 768# CONFIG_BE2NET is not set
734# CONFIG_TR is not set 769# CONFIG_TR is not set
735CONFIG_WLAN=y 770CONFIG_WLAN=y
736# CONFIG_WLAN_PRE80211 is not set 771# CONFIG_ATMEL is not set
737# CONFIG_WLAN_80211 is not set 772# CONFIG_PRISM54 is not set
773# CONFIG_HOSTAP is not set
738 774
739# 775#
740# Enable WiMAX (Networking options) to see the WiMAX drivers 776# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -748,6 +784,7 @@ CONFIG_WLAN=y
748# CONFIG_NETCONSOLE is not set 784# CONFIG_NETCONSOLE is not set
749# CONFIG_NETPOLL is not set 785# CONFIG_NETPOLL is not set
750# CONFIG_NET_POLL_CONTROLLER is not set 786# CONFIG_NET_POLL_CONTROLLER is not set
787# CONFIG_VMXNET3 is not set
751# CONFIG_ISDN is not set 788# CONFIG_ISDN is not set
752# CONFIG_PHONE is not set 789# CONFIG_PHONE is not set
753 790
@@ -757,6 +794,7 @@ CONFIG_WLAN=y
757CONFIG_INPUT=y 794CONFIG_INPUT=y
758# CONFIG_INPUT_FF_MEMLESS is not set 795# CONFIG_INPUT_FF_MEMLESS is not set
759# CONFIG_INPUT_POLLDEV is not set 796# CONFIG_INPUT_POLLDEV is not set
797# CONFIG_INPUT_SPARSEKMAP is not set
760 798
761# 799#
762# Userland interfaces 800# Userland interfaces
@@ -886,6 +924,7 @@ CONFIG_SSB_POSSIBLE=y
886# 924#
887# CONFIG_MFD_CORE is not set 925# CONFIG_MFD_CORE is not set
888# CONFIG_MFD_SM501 is not set 926# CONFIG_MFD_SM501 is not set
927# CONFIG_MFD_SH_MOBILE_SDHI is not set
889# CONFIG_HTC_PASIC3 is not set 928# CONFIG_HTC_PASIC3 is not set
890# CONFIG_MFD_TMIO is not set 929# CONFIG_MFD_TMIO is not set
891# CONFIG_REGULATOR is not set 930# CONFIG_REGULATOR is not set
@@ -1149,10 +1188,11 @@ CONFIG_DEBUG_FS=y
1149# CONFIG_HEADERS_CHECK is not set 1188# CONFIG_HEADERS_CHECK is not set
1150# CONFIG_DEBUG_KERNEL is not set 1189# CONFIG_DEBUG_KERNEL is not set
1151CONFIG_STACKTRACE=y 1190CONFIG_STACKTRACE=y
1152# CONFIG_DEBUG_BUGVERBOSE is not set 1191CONFIG_DEBUG_BUGVERBOSE=y
1153# CONFIG_DEBUG_MEMORY_INIT is not set 1192# CONFIG_DEBUG_MEMORY_INIT is not set
1154# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1193# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1155# CONFIG_LATENCYTOP is not set 1194# CONFIG_LATENCYTOP is not set
1195# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1156CONFIG_NOP_TRACER=y 1196CONFIG_NOP_TRACER=y
1157CONFIG_HAVE_FUNCTION_TRACER=y 1197CONFIG_HAVE_FUNCTION_TRACER=y
1158CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1198CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1172,8 +1212,6 @@ CONFIG_TRACING_SUPPORT=y
1172# CONFIG_SAMPLES is not set 1212# CONFIG_SAMPLES is not set
1173CONFIG_HAVE_ARCH_KGDB=y 1213CONFIG_HAVE_ARCH_KGDB=y
1174CONFIG_SH_STANDARD_BIOS=y 1214CONFIG_SH_STANDARD_BIOS=y
1175# CONFIG_EARLY_SCIF_CONSOLE is not set
1176# CONFIG_EARLY_PRINTK is not set
1177# CONFIG_DWARF_UNWINDER is not set 1215# CONFIG_DWARF_UNWINDER is not set
1178 1216
1179# 1217#
@@ -1182,7 +1220,11 @@ CONFIG_SH_STANDARD_BIOS=y
1182# CONFIG_KEYS is not set 1220# CONFIG_KEYS is not set
1183# CONFIG_SECURITY is not set 1221# CONFIG_SECURITY is not set
1184# CONFIG_SECURITYFS is not set 1222# CONFIG_SECURITYFS is not set
1185# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1223# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1224# CONFIG_DEFAULT_SECURITY_SMACK is not set
1225# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1226CONFIG_DEFAULT_SECURITY_DAC=y
1227CONFIG_DEFAULT_SECURITY=""
1186CONFIG_CRYPTO=y 1228CONFIG_CRYPTO=y
1187 1229
1188# 1230#
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig
index 662156ec9211..35a3beeba182 100644
--- a/arch/sh/configs/sh7710voipgw_defconfig
+++ b/arch/sh/configs/sh7710voipgw_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:11:49 2009 4# Mon Jan 4 14:43:04 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 29CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 30CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
32CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 34CONFIG_CONSTRUCTORS=y
34 35
@@ -60,6 +61,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
60# 61#
61CONFIG_TREE_RCU=y 62CONFIG_TREE_RCU=y
62# CONFIG_TREE_PREEMPT_RCU is not set 63# CONFIG_TREE_PREEMPT_RCU is not set
64# CONFIG_TINY_RCU is not set
63# CONFIG_RCU_TRACE is not set 65# CONFIG_RCU_TRACE is not set
64CONFIG_RCU_FANOUT=32 66CONFIG_RCU_FANOUT=32
65# CONFIG_RCU_FANOUT_EXACT is not set 67# CONFIG_RCU_FANOUT_EXACT is not set
@@ -98,6 +100,7 @@ CONFIG_EVENTFD=y
98# CONFIG_SHMEM is not set 100# CONFIG_SHMEM is not set
99CONFIG_AIO=y 101CONFIG_AIO=y
100CONFIG_HAVE_PERF_EVENTS=y 102CONFIG_HAVE_PERF_EVENTS=y
103CONFIG_PERF_USE_VMALLOC=y
101 104
102# 105#
103# Kernel Performance Events And Counters 106# Kernel Performance Events And Counters
@@ -116,6 +119,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y 121CONFIG_HAVE_ARCH_TRACEHOOK=y
122CONFIG_HAVE_DMA_ATTRS=y
119CONFIG_HAVE_CLK=y 123CONFIG_HAVE_CLK=y
120CONFIG_HAVE_DMA_API_DEBUG=y 124CONFIG_HAVE_DMA_API_DEBUG=y
121 125
@@ -142,14 +146,41 @@ CONFIG_LBDAF=y
142# IO Schedulers 146# IO Schedulers
143# 147#
144CONFIG_IOSCHED_NOOP=y 148CONFIG_IOSCHED_NOOP=y
145# CONFIG_IOSCHED_AS is not set
146CONFIG_IOSCHED_DEADLINE=y 149CONFIG_IOSCHED_DEADLINE=y
147# CONFIG_IOSCHED_CFQ is not set 150# CONFIG_IOSCHED_CFQ is not set
148# CONFIG_DEFAULT_AS is not set
149CONFIG_DEFAULT_DEADLINE=y 151CONFIG_DEFAULT_DEADLINE=y
150# CONFIG_DEFAULT_CFQ is not set 152# CONFIG_DEFAULT_CFQ is not set
151# CONFIG_DEFAULT_NOOP is not set 153# CONFIG_DEFAULT_NOOP is not set
152CONFIG_DEFAULT_IOSCHED="deadline" 154CONFIG_DEFAULT_IOSCHED="deadline"
155# CONFIG_INLINE_SPIN_TRYLOCK is not set
156# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
157# CONFIG_INLINE_SPIN_LOCK is not set
158# CONFIG_INLINE_SPIN_LOCK_BH is not set
159# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
160# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
161CONFIG_INLINE_SPIN_UNLOCK=y
162# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
163CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
164# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
165# CONFIG_INLINE_READ_TRYLOCK is not set
166# CONFIG_INLINE_READ_LOCK is not set
167# CONFIG_INLINE_READ_LOCK_BH is not set
168# CONFIG_INLINE_READ_LOCK_IRQ is not set
169# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
170CONFIG_INLINE_READ_UNLOCK=y
171# CONFIG_INLINE_READ_UNLOCK_BH is not set
172CONFIG_INLINE_READ_UNLOCK_IRQ=y
173# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
174# CONFIG_INLINE_WRITE_TRYLOCK is not set
175# CONFIG_INLINE_WRITE_LOCK is not set
176# CONFIG_INLINE_WRITE_LOCK_BH is not set
177# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
178# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
179CONFIG_INLINE_WRITE_UNLOCK=y
180# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
181CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
182# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
183# CONFIG_MUTEX_SPIN_ON_OWNER is not set
153# CONFIG_FREEZER is not set 184# CONFIG_FREEZER is not set
154 185
155# 186#
@@ -225,8 +256,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
225# CONFIG_PHYS_ADDR_T_64BIT is not set 256# CONFIG_PHYS_ADDR_T_64BIT is not set
226CONFIG_ZONE_DMA_FLAG=0 257CONFIG_ZONE_DMA_FLAG=0
227CONFIG_NR_QUICK=2 258CONFIG_NR_QUICK=2
228CONFIG_HAVE_MLOCK=y
229CONFIG_HAVE_MLOCKED_PAGE_BIT=y
230# CONFIG_KSM is not set 259# CONFIG_KSM is not set
231CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 260CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
232 261
@@ -460,9 +489,6 @@ CONFIG_NET_SCH_FIFO=y
460# CONFIG_AF_RXRPC is not set 489# CONFIG_AF_RXRPC is not set
461CONFIG_WIRELESS=y 490CONFIG_WIRELESS=y
462# CONFIG_CFG80211 is not set 491# CONFIG_CFG80211 is not set
463CONFIG_CFG80211_DEFAULT_PS_VALUE=0
464# CONFIG_WIRELESS_OLD_REGULATORY is not set
465# CONFIG_WIRELESS_EXT is not set
466# CONFIG_LIB80211 is not set 492# CONFIG_LIB80211 is not set
467 493
468# 494#
@@ -571,6 +597,10 @@ CONFIG_MTD_RAM=y
571CONFIG_BLK_DEV=y 597CONFIG_BLK_DEV=y
572# CONFIG_BLK_DEV_COW_COMMON is not set 598# CONFIG_BLK_DEV_COW_COMMON is not set
573# CONFIG_BLK_DEV_LOOP is not set 599# CONFIG_BLK_DEV_LOOP is not set
600
601#
602# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
603#
574# CONFIG_BLK_DEV_NBD is not set 604# CONFIG_BLK_DEV_NBD is not set
575# CONFIG_BLK_DEV_RAM is not set 605# CONFIG_BLK_DEV_RAM is not set
576# CONFIG_CDROM_PKTCDVD is not set 606# CONFIG_CDROM_PKTCDVD is not set
@@ -623,11 +653,11 @@ CONFIG_NET_ETHERNET=y
623# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 653# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
624# CONFIG_B44 is not set 654# CONFIG_B44 is not set
625# CONFIG_KS8842 is not set 655# CONFIG_KS8842 is not set
656# CONFIG_KS8851_MLL is not set
626CONFIG_NETDEV_1000=y 657CONFIG_NETDEV_1000=y
627CONFIG_NETDEV_10000=y 658CONFIG_NETDEV_10000=y
628CONFIG_WLAN=y 659CONFIG_WLAN=y
629# CONFIG_WLAN_PRE80211 is not set 660# CONFIG_HOSTAP is not set
630# CONFIG_WLAN_80211 is not set
631 661
632# 662#
633# Enable WiMAX (Networking options) to see the WiMAX drivers 663# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -647,6 +677,7 @@ CONFIG_PHONE=y
647CONFIG_INPUT=y 677CONFIG_INPUT=y
648# CONFIG_INPUT_FF_MEMLESS is not set 678# CONFIG_INPUT_FF_MEMLESS is not set
649# CONFIG_INPUT_POLLDEV is not set 679# CONFIG_INPUT_POLLDEV is not set
680# CONFIG_INPUT_SPARSEKMAP is not set
650 681
651# 682#
652# Userland interfaces 683# Userland interfaces
@@ -725,6 +756,7 @@ CONFIG_SSB_POSSIBLE=y
725# 756#
726# CONFIG_MFD_CORE is not set 757# CONFIG_MFD_CORE is not set
727# CONFIG_MFD_SM501 is not set 758# CONFIG_MFD_SM501 is not set
759# CONFIG_MFD_SH_MOBILE_SDHI is not set
728# CONFIG_HTC_PASIC3 is not set 760# CONFIG_HTC_PASIC3 is not set
729# CONFIG_MFD_TMIO is not set 761# CONFIG_MFD_TMIO is not set
730# CONFIG_REGULATOR is not set 762# CONFIG_REGULATOR is not set
@@ -792,6 +824,7 @@ CONFIG_RTC_LIB=y
792# CONFIG_EXT2_FS is not set 824# CONFIG_EXT2_FS is not set
793# CONFIG_EXT3_FS is not set 825# CONFIG_EXT3_FS is not set
794# CONFIG_EXT4_FS is not set 826# CONFIG_EXT4_FS is not set
827CONFIG_EXT4_USE_FOR_EXT23=y
795# CONFIG_REISERFS_FS is not set 828# CONFIG_REISERFS_FS is not set
796# CONFIG_JFS_FS is not set 829# CONFIG_JFS_FS is not set
797# CONFIG_FS_POSIX_ACL is not set 830# CONFIG_FS_POSIX_ACL is not set
@@ -836,7 +869,6 @@ CONFIG_PROC_FS=y
836CONFIG_PROC_SYSCTL=y 869CONFIG_PROC_SYSCTL=y
837CONFIG_PROC_PAGE_MONITOR=y 870CONFIG_PROC_PAGE_MONITOR=y
838CONFIG_SYSFS=y 871CONFIG_SYSFS=y
839# CONFIG_HUGETLBFS is not set
840# CONFIG_HUGETLB_PAGE is not set 872# CONFIG_HUGETLB_PAGE is not set
841# CONFIG_CONFIGFS_FS is not set 873# CONFIG_CONFIGFS_FS is not set
842CONFIG_MISC_FILESYSTEMS=y 874CONFIG_MISC_FILESYSTEMS=y
@@ -899,10 +931,11 @@ CONFIG_FRAME_WARN=1024
899CONFIG_DEBUG_FS=y 931CONFIG_DEBUG_FS=y
900# CONFIG_HEADERS_CHECK is not set 932# CONFIG_HEADERS_CHECK is not set
901# CONFIG_DEBUG_KERNEL is not set 933# CONFIG_DEBUG_KERNEL is not set
902# CONFIG_DEBUG_BUGVERBOSE is not set 934CONFIG_DEBUG_BUGVERBOSE=y
903# CONFIG_DEBUG_MEMORY_INIT is not set 935# CONFIG_DEBUG_MEMORY_INIT is not set
904# CONFIG_RCU_CPU_STALL_DETECTOR is not set 936# CONFIG_RCU_CPU_STALL_DETECTOR is not set
905# CONFIG_LATENCYTOP is not set 937# CONFIG_LATENCYTOP is not set
938# CONFIG_SYSCTL_SYSCALL_CHECK is not set
906CONFIG_HAVE_FUNCTION_TRACER=y 939CONFIG_HAVE_FUNCTION_TRACER=y
907CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 940CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
908CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 941CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -916,7 +949,6 @@ CONFIG_TRACING_SUPPORT=y
916# CONFIG_SAMPLES is not set 949# CONFIG_SAMPLES is not set
917CONFIG_HAVE_ARCH_KGDB=y 950CONFIG_HAVE_ARCH_KGDB=y
918# CONFIG_SH_STANDARD_BIOS is not set 951# CONFIG_SH_STANDARD_BIOS is not set
919# CONFIG_EARLY_SCIF_CONSOLE is not set
920# CONFIG_DWARF_UNWINDER is not set 952# CONFIG_DWARF_UNWINDER is not set
921 953
922# 954#
@@ -925,7 +957,11 @@ CONFIG_HAVE_ARCH_KGDB=y
925# CONFIG_KEYS is not set 957# CONFIG_KEYS is not set
926# CONFIG_SECURITY is not set 958# CONFIG_SECURITY is not set
927# CONFIG_SECURITYFS is not set 959# CONFIG_SECURITYFS is not set
928# CONFIG_SECURITY_FILE_CAPABILITIES is not set 960# CONFIG_DEFAULT_SECURITY_SELINUX is not set
961# CONFIG_DEFAULT_SECURITY_SMACK is not set
962# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
963CONFIG_DEFAULT_SECURITY_DAC=y
964CONFIG_DEFAULT_SECURITY=""
929CONFIG_CRYPTO=y 965CONFIG_CRYPTO=y
930 966
931# 967#
diff --git a/arch/sh/configs/sh7724_generic_defconfig b/arch/sh/configs/sh7724_generic_defconfig
index e06719a30ba1..a3056b69d2ba 100644
--- a/arch/sh/configs/sh7724_generic_defconfig
+++ b/arch/sh/configs/sh7724_generic_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:14:00 2009 4# Mon Jan 4 15:03:45 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_CMT=y 24CONFIG_SYS_SUPPORTS_CMT=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -49,7 +51,6 @@ CONFIG_KERNEL_GZIP=y
49# CONFIG_KERNEL_LZMA is not set 51# CONFIG_KERNEL_LZMA is not set
50CONFIG_SWAP=y 52CONFIG_SWAP=y
51CONFIG_SYSVIPC=y 53CONFIG_SYSVIPC=y
52CONFIG_SYSVIPC_SYSCTL=y
53# CONFIG_BSD_PROCESS_ACCT is not set 54# CONFIG_BSD_PROCESS_ACCT is not set
54 55
55# 56#
@@ -57,6 +58,7 @@ CONFIG_SYSVIPC_SYSCTL=y
57# 58#
58CONFIG_TREE_RCU=y 59CONFIG_TREE_RCU=y
59# CONFIG_TREE_PREEMPT_RCU is not set 60# CONFIG_TREE_PREEMPT_RCU is not set
61# CONFIG_TINY_RCU is not set
60# CONFIG_RCU_TRACE is not set 62# CONFIG_RCU_TRACE is not set
61CONFIG_RCU_FANOUT=32 63CONFIG_RCU_FANOUT=32
62# CONFIG_RCU_FANOUT_EXACT is not set 64# CONFIG_RCU_FANOUT_EXACT is not set
@@ -80,11 +82,9 @@ CONFIG_CGROUPS=y
80# CONFIG_NAMESPACES is not set 82# CONFIG_NAMESPACES is not set
81# CONFIG_BLK_DEV_INITRD is not set 83# CONFIG_BLK_DEV_INITRD is not set
82CONFIG_CC_OPTIMIZE_FOR_SIZE=y 84CONFIG_CC_OPTIMIZE_FOR_SIZE=y
83CONFIG_SYSCTL=y
84CONFIG_ANON_INODES=y 85CONFIG_ANON_INODES=y
85CONFIG_EMBEDDED=y 86CONFIG_EMBEDDED=y
86# CONFIG_UID16 is not set 87# CONFIG_UID16 is not set
87CONFIG_SYSCTL_SYSCALL=y
88CONFIG_KALLSYMS=y 88CONFIG_KALLSYMS=y
89# CONFIG_KALLSYMS_EXTRA_PASS is not set 89# CONFIG_KALLSYMS_EXTRA_PASS is not set
90CONFIG_HOTPLUG=y 90CONFIG_HOTPLUG=y
@@ -100,6 +100,7 @@ CONFIG_EVENTFD=y
100CONFIG_SHMEM=y 100CONFIG_SHMEM=y
101CONFIG_AIO=y 101CONFIG_AIO=y
102CONFIG_HAVE_PERF_EVENTS=y 102CONFIG_HAVE_PERF_EVENTS=y
103CONFIG_PERF_USE_VMALLOC=y
103 104
104# 105#
105# Kernel Performance Events And Counters 106# Kernel Performance Events And Counters
@@ -120,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 123CONFIG_HAVE_ARCH_TRACEHOOK=y
124CONFIG_HAVE_DMA_ATTRS=y
123CONFIG_HAVE_CLK=y 125CONFIG_HAVE_CLK=y
124CONFIG_HAVE_DMA_API_DEBUG=y 126CONFIG_HAVE_DMA_API_DEBUG=y
125 127
@@ -136,19 +138,48 @@ CONFIG_BLOCK=y
136CONFIG_LBDAF=y 138CONFIG_LBDAF=y
137# CONFIG_BLK_DEV_BSG is not set 139# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set 140# CONFIG_BLK_DEV_INTEGRITY is not set
141# CONFIG_BLK_CGROUP is not set
139 142
140# 143#
141# IO Schedulers 144# IO Schedulers
142# 145#
143CONFIG_IOSCHED_NOOP=y 146CONFIG_IOSCHED_NOOP=y
144CONFIG_IOSCHED_AS=y
145CONFIG_IOSCHED_DEADLINE=y 147CONFIG_IOSCHED_DEADLINE=y
146CONFIG_IOSCHED_CFQ=y 148CONFIG_IOSCHED_CFQ=y
147CONFIG_DEFAULT_AS=y 149# CONFIG_CFQ_GROUP_IOSCHED is not set
148# CONFIG_DEFAULT_DEADLINE is not set 150# CONFIG_DEFAULT_DEADLINE is not set
149# CONFIG_DEFAULT_CFQ is not set 151CONFIG_DEFAULT_CFQ=y
150# CONFIG_DEFAULT_NOOP is not set 152# CONFIG_DEFAULT_NOOP is not set
151CONFIG_DEFAULT_IOSCHED="anticipatory" 153CONFIG_DEFAULT_IOSCHED="cfq"
154# CONFIG_INLINE_SPIN_TRYLOCK is not set
155# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
156# CONFIG_INLINE_SPIN_LOCK is not set
157# CONFIG_INLINE_SPIN_LOCK_BH is not set
158# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
159# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
160CONFIG_INLINE_SPIN_UNLOCK=y
161# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
162CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
163# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
164# CONFIG_INLINE_READ_TRYLOCK is not set
165# CONFIG_INLINE_READ_LOCK is not set
166# CONFIG_INLINE_READ_LOCK_BH is not set
167# CONFIG_INLINE_READ_LOCK_IRQ is not set
168# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
169CONFIG_INLINE_READ_UNLOCK=y
170# CONFIG_INLINE_READ_UNLOCK_BH is not set
171CONFIG_INLINE_READ_UNLOCK_IRQ=y
172# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
173# CONFIG_INLINE_WRITE_TRYLOCK is not set
174# CONFIG_INLINE_WRITE_LOCK is not set
175# CONFIG_INLINE_WRITE_LOCK_BH is not set
176# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
177# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
178CONFIG_INLINE_WRITE_UNLOCK=y
179# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
180CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
181# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
182# CONFIG_MUTEX_SPIN_ON_OWNER is not set
152CONFIG_FREEZER=y 183CONFIG_FREEZER=y
153 184
154# 185#
@@ -204,6 +235,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
204CONFIG_MEMORY_START=0x08000000 235CONFIG_MEMORY_START=0x08000000
205CONFIG_MEMORY_SIZE=0x04000000 236CONFIG_MEMORY_SIZE=0x04000000
206CONFIG_29BIT=y 237CONFIG_29BIT=y
238# CONFIG_PMB_ENABLE is not set
207# CONFIG_X2TLB is not set 239# CONFIG_X2TLB is not set
208CONFIG_VSYSCALL=y 240CONFIG_VSYSCALL=y
209CONFIG_ARCH_FLATMEM_ENABLE=y 241CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -225,17 +257,12 @@ CONFIG_SPARSEMEM_MANUAL=y
225CONFIG_SPARSEMEM=y 257CONFIG_SPARSEMEM=y
226CONFIG_HAVE_MEMORY_PRESENT=y 258CONFIG_HAVE_MEMORY_PRESENT=y
227CONFIG_SPARSEMEM_STATIC=y 259CONFIG_SPARSEMEM_STATIC=y
228 260# CONFIG_MEMORY_HOTPLUG is not set
229#
230# Memory hotplug is currently incompatible with Software Suspend
231#
232CONFIG_SPLIT_PTLOCK_CPUS=4 261CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y 262CONFIG_MIGRATION=y
234# CONFIG_PHYS_ADDR_T_64BIT is not set 263# CONFIG_PHYS_ADDR_T_64BIT is not set
235CONFIG_ZONE_DMA_FLAG=0 264CONFIG_ZONE_DMA_FLAG=0
236CONFIG_NR_QUICK=2 265CONFIG_NR_QUICK=2
237CONFIG_HAVE_MLOCK=y
238CONFIG_HAVE_MLOCKED_PAGE_BIT=y
239# CONFIG_KSM is not set 266# CONFIG_KSM is not set
240CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 267CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
241 268
@@ -269,7 +296,6 @@ CONFIG_CPU_HAS_FPU=y
269# 296#
270CONFIG_SH_TIMER_TMU=y 297CONFIG_SH_TIMER_TMU=y
271CONFIG_SH_TIMER_CMT=y 298CONFIG_SH_TIMER_CMT=y
272CONFIG_SH_PCLK_FREQ=41666666
273CONFIG_SH_CLK_CPG=y 299CONFIG_SH_CLK_CPG=y
274CONFIG_TICK_ONESHOT=y 300CONFIG_TICK_ONESHOT=y
275CONFIG_NO_HZ=y 301CONFIG_NO_HZ=y
@@ -388,6 +414,10 @@ CONFIG_EXTRA_FIRMWARE=""
388CONFIG_BLK_DEV=y 414CONFIG_BLK_DEV=y
389# CONFIG_BLK_DEV_COW_COMMON is not set 415# CONFIG_BLK_DEV_COW_COMMON is not set
390# CONFIG_BLK_DEV_LOOP is not set 416# CONFIG_BLK_DEV_LOOP is not set
417
418#
419# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
420#
391# CONFIG_BLK_DEV_RAM is not set 421# CONFIG_BLK_DEV_RAM is not set
392# CONFIG_CDROM_PKTCDVD is not set 422# CONFIG_CDROM_PKTCDVD is not set
393# CONFIG_BLK_DEV_HD is not set 423# CONFIG_BLK_DEV_HD is not set
@@ -476,7 +506,6 @@ CONFIG_I2C_SH_MOBILE=y
476# 506#
477# Miscellaneous I2C Chip support 507# Miscellaneous I2C Chip support
478# 508#
479# CONFIG_DS1682 is not set
480# CONFIG_SENSORS_TSL2550 is not set 509# CONFIG_SENSORS_TSL2550 is not set
481# CONFIG_I2C_DEBUG_CORE is not set 510# CONFIG_I2C_DEBUG_CORE is not set
482# CONFIG_I2C_DEBUG_ALGO is not set 511# CONFIG_I2C_DEBUG_ALGO is not set
@@ -505,15 +534,18 @@ CONFIG_SSB_POSSIBLE=y
505# 534#
506# CONFIG_MFD_CORE is not set 535# CONFIG_MFD_CORE is not set
507# CONFIG_MFD_SM501 is not set 536# CONFIG_MFD_SM501 is not set
537# CONFIG_MFD_SH_MOBILE_SDHI is not set
508# CONFIG_HTC_PASIC3 is not set 538# CONFIG_HTC_PASIC3 is not set
509# CONFIG_TWL4030_CORE is not set 539# CONFIG_TWL4030_CORE is not set
510# CONFIG_MFD_TMIO is not set 540# CONFIG_MFD_TMIO is not set
511# CONFIG_PMIC_DA903X is not set 541# CONFIG_PMIC_DA903X is not set
542# CONFIG_PMIC_ADP5520 is not set
512# CONFIG_MFD_WM8400 is not set 543# CONFIG_MFD_WM8400 is not set
513# CONFIG_MFD_WM831X is not set 544# CONFIG_MFD_WM831X is not set
514# CONFIG_MFD_WM8350_I2C is not set 545# CONFIG_MFD_WM8350_I2C is not set
515# CONFIG_MFD_PCF50633 is not set 546# CONFIG_MFD_PCF50633 is not set
516# CONFIG_AB3100_CORE is not set 547# CONFIG_AB3100_CORE is not set
548# CONFIG_MFD_88PM8607 is not set
517# CONFIG_REGULATOR is not set 549# CONFIG_REGULATOR is not set
518# CONFIG_MEDIA_SUPPORT is not set 550# CONFIG_MEDIA_SUPPORT is not set
519 551
@@ -561,6 +593,7 @@ CONFIG_RTC_INTF_DEV=y
561# CONFIG_RTC_DRV_PCF8563 is not set 593# CONFIG_RTC_DRV_PCF8563 is not set
562# CONFIG_RTC_DRV_PCF8583 is not set 594# CONFIG_RTC_DRV_PCF8583 is not set
563# CONFIG_RTC_DRV_M41T80 is not set 595# CONFIG_RTC_DRV_M41T80 is not set
596# CONFIG_RTC_DRV_BQ32K is not set
564# CONFIG_RTC_DRV_S35390A is not set 597# CONFIG_RTC_DRV_S35390A is not set
565# CONFIG_RTC_DRV_FM3130 is not set 598# CONFIG_RTC_DRV_FM3130 is not set
566# CONFIG_RTC_DRV_RX8581 is not set 599# CONFIG_RTC_DRV_RX8581 is not set
@@ -581,7 +614,9 @@ CONFIG_RTC_INTF_DEV=y
581# CONFIG_RTC_DRV_M48T86 is not set 614# CONFIG_RTC_DRV_M48T86 is not set
582# CONFIG_RTC_DRV_M48T35 is not set 615# CONFIG_RTC_DRV_M48T35 is not set
583# CONFIG_RTC_DRV_M48T59 is not set 616# CONFIG_RTC_DRV_M48T59 is not set
617# CONFIG_RTC_DRV_MSM6242 is not set
584# CONFIG_RTC_DRV_BQ4802 is not set 618# CONFIG_RTC_DRV_BQ4802 is not set
619# CONFIG_RTC_DRV_RP5C01 is not set
585# CONFIG_RTC_DRV_V3020 is not set 620# CONFIG_RTC_DRV_V3020 is not set
586 621
587# 622#
@@ -608,6 +643,7 @@ CONFIG_UIO_PDRV_GENIRQ=y
608# CONFIG_EXT2_FS is not set 643# CONFIG_EXT2_FS is not set
609# CONFIG_EXT3_FS is not set 644# CONFIG_EXT3_FS is not set
610# CONFIG_EXT4_FS is not set 645# CONFIG_EXT4_FS is not set
646CONFIG_EXT4_USE_FOR_EXT23=y
611# CONFIG_REISERFS_FS is not set 647# CONFIG_REISERFS_FS is not set
612# CONFIG_JFS_FS is not set 648# CONFIG_JFS_FS is not set
613# CONFIG_FS_POSIX_ACL is not set 649# CONFIG_FS_POSIX_ACL is not set
@@ -675,11 +711,10 @@ CONFIG_DEBUG_FS=y
675# CONFIG_HEADERS_CHECK is not set 711# CONFIG_HEADERS_CHECK is not set
676# CONFIG_DEBUG_KERNEL is not set 712# CONFIG_DEBUG_KERNEL is not set
677CONFIG_STACKTRACE=y 713CONFIG_STACKTRACE=y
678# CONFIG_DEBUG_BUGVERBOSE is not set 714CONFIG_DEBUG_BUGVERBOSE=y
679# CONFIG_DEBUG_MEMORY_INIT is not set 715# CONFIG_DEBUG_MEMORY_INIT is not set
680# CONFIG_RCU_CPU_STALL_DETECTOR is not set 716# CONFIG_RCU_CPU_STALL_DETECTOR is not set
681# CONFIG_LATENCYTOP is not set 717# CONFIG_LATENCYTOP is not set
682# CONFIG_SYSCTL_SYSCALL_CHECK is not set
683CONFIG_NOP_TRACER=y 718CONFIG_NOP_TRACER=y
684CONFIG_HAVE_FUNCTION_TRACER=y 719CONFIG_HAVE_FUNCTION_TRACER=y
685CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 720CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -699,7 +734,6 @@ CONFIG_TRACING_SUPPORT=y
699# CONFIG_SAMPLES is not set 734# CONFIG_SAMPLES is not set
700CONFIG_HAVE_ARCH_KGDB=y 735CONFIG_HAVE_ARCH_KGDB=y
701# CONFIG_SH_STANDARD_BIOS is not set 736# CONFIG_SH_STANDARD_BIOS is not set
702# CONFIG_EARLY_SCIF_CONSOLE is not set
703# CONFIG_DWARF_UNWINDER is not set 737# CONFIG_DWARF_UNWINDER is not set
704 738
705# 739#
@@ -707,7 +741,11 @@ CONFIG_HAVE_ARCH_KGDB=y
707# 741#
708# CONFIG_KEYS is not set 742# CONFIG_KEYS is not set
709# CONFIG_SECURITYFS is not set 743# CONFIG_SECURITYFS is not set
710# CONFIG_SECURITY_FILE_CAPABILITIES is not set 744# CONFIG_DEFAULT_SECURITY_SELINUX is not set
745# CONFIG_DEFAULT_SECURITY_SMACK is not set
746# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
747CONFIG_DEFAULT_SECURITY_DAC=y
748CONFIG_DEFAULT_SECURITY=""
711# CONFIG_CRYPTO is not set 749# CONFIG_CRYPTO is not set
712CONFIG_BINARY_PRINTF=y 750CONFIG_BINARY_PRINTF=y
713 751
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig
index 194ff703e23d..04b841b29427 100644
--- a/arch/sh/configs/sh7763rdp_defconfig
+++ b/arch/sh/configs/sh7763rdp_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:15:37 2009 4# Mon Jan 4 15:05:29 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -59,6 +61,7 @@ CONFIG_SYSVIPC_SYSCTL=y
59# 61#
60CONFIG_TREE_RCU=y 62CONFIG_TREE_RCU=y
61# CONFIG_TREE_PREEMPT_RCU is not set 63# CONFIG_TREE_PREEMPT_RCU is not set
64# CONFIG_TINY_RCU is not set
62# CONFIG_RCU_TRACE is not set 65# CONFIG_RCU_TRACE is not set
63CONFIG_RCU_FANOUT=32 66CONFIG_RCU_FANOUT=32
64# CONFIG_RCU_FANOUT_EXACT is not set 67# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -124,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 128CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
131CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_HAVE_CLK=y 132CONFIG_HAVE_CLK=y
128CONFIG_HAVE_DMA_API_DEBUG=y 133CONFIG_HAVE_DMA_API_DEBUG=y
129 134
@@ -150,14 +155,41 @@ CONFIG_LBDAF=y
150# IO Schedulers 155# IO Schedulers
151# 156#
152CONFIG_IOSCHED_NOOP=y 157CONFIG_IOSCHED_NOOP=y
153CONFIG_IOSCHED_AS=y
154CONFIG_IOSCHED_DEADLINE=y 158CONFIG_IOSCHED_DEADLINE=y
155CONFIG_IOSCHED_CFQ=y 159CONFIG_IOSCHED_CFQ=y
156CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_DEADLINE is not set 160# CONFIG_DEFAULT_DEADLINE is not set
158# CONFIG_DEFAULT_CFQ is not set 161CONFIG_DEFAULT_CFQ=y
159# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
160CONFIG_DEFAULT_IOSCHED="anticipatory" 163CONFIG_DEFAULT_IOSCHED="cfq"
164# CONFIG_INLINE_SPIN_TRYLOCK is not set
165# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
166# CONFIG_INLINE_SPIN_LOCK is not set
167# CONFIG_INLINE_SPIN_LOCK_BH is not set
168# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
169# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
170CONFIG_INLINE_SPIN_UNLOCK=y
171# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
172CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
173# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
174# CONFIG_INLINE_READ_TRYLOCK is not set
175# CONFIG_INLINE_READ_LOCK is not set
176# CONFIG_INLINE_READ_LOCK_BH is not set
177# CONFIG_INLINE_READ_LOCK_IRQ is not set
178# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
179CONFIG_INLINE_READ_UNLOCK=y
180# CONFIG_INLINE_READ_UNLOCK_BH is not set
181CONFIG_INLINE_READ_UNLOCK_IRQ=y
182# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
183# CONFIG_INLINE_WRITE_TRYLOCK is not set
184# CONFIG_INLINE_WRITE_LOCK is not set
185# CONFIG_INLINE_WRITE_LOCK_BH is not set
186# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
187# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
188CONFIG_INLINE_WRITE_UNLOCK=y
189# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
190CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
191# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
192# CONFIG_MUTEX_SPIN_ON_OWNER is not set
161# CONFIG_FREEZER is not set 193# CONFIG_FREEZER is not set
162 194
163# 195#
@@ -211,6 +243,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
211CONFIG_MEMORY_START=0x0c000000 243CONFIG_MEMORY_START=0x0c000000
212CONFIG_MEMORY_SIZE=0x04000000 244CONFIG_MEMORY_SIZE=0x04000000
213CONFIG_29BIT=y 245CONFIG_29BIT=y
246# CONFIG_PMB_ENABLE is not set
214CONFIG_VSYSCALL=y 247CONFIG_VSYSCALL=y
215CONFIG_ARCH_FLATMEM_ENABLE=y 248CONFIG_ARCH_FLATMEM_ENABLE=y
216CONFIG_ARCH_SPARSEMEM_ENABLE=y 249CONFIG_ARCH_SPARSEMEM_ENABLE=y
@@ -237,8 +270,6 @@ CONFIG_MIGRATION=y
237# CONFIG_PHYS_ADDR_T_64BIT is not set 270# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=0 271CONFIG_ZONE_DMA_FLAG=0
239CONFIG_NR_QUICK=2 272CONFIG_NR_QUICK=2
240CONFIG_HAVE_MLOCK=y
241CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242# CONFIG_KSM is not set 273# CONFIG_KSM is not set
243CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 274CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
244 275
@@ -421,10 +452,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
421# CONFIG_AF_RXRPC is not set 452# CONFIG_AF_RXRPC is not set
422CONFIG_WIRELESS=y 453CONFIG_WIRELESS=y
423# CONFIG_CFG80211 is not set 454# CONFIG_CFG80211 is not set
424CONFIG_CFG80211_DEFAULT_PS_VALUE=0
425# CONFIG_WIRELESS_OLD_REGULATORY is not set
426CONFIG_WIRELESS_EXT=y
427CONFIG_WIRELESS_EXT_SYSFS=y
428# CONFIG_LIB80211 is not set 455# CONFIG_LIB80211 is not set
429 456
430# 457#
@@ -509,7 +536,6 @@ CONFIG_MTD_CFI_UTIL=y
509CONFIG_MTD_COMPLEX_MAPPINGS=y 536CONFIG_MTD_COMPLEX_MAPPINGS=y
510CONFIG_MTD_PHYSMAP=y 537CONFIG_MTD_PHYSMAP=y
511# CONFIG_MTD_PHYSMAP_COMPAT is not set 538# CONFIG_MTD_PHYSMAP_COMPAT is not set
512# CONFIG_MTD_GPIO_ADDR is not set
513# CONFIG_MTD_PLATRAM is not set 539# CONFIG_MTD_PLATRAM is not set
514 540
515# 541#
@@ -542,6 +568,10 @@ CONFIG_MTD_PHYSMAP=y
542CONFIG_BLK_DEV=y 568CONFIG_BLK_DEV=y
543# CONFIG_BLK_DEV_COW_COMMON is not set 569# CONFIG_BLK_DEV_COW_COMMON is not set
544# CONFIG_BLK_DEV_LOOP is not set 570# CONFIG_BLK_DEV_LOOP is not set
571
572#
573# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
574#
545# CONFIG_BLK_DEV_NBD is not set 575# CONFIG_BLK_DEV_NBD is not set
546# CONFIG_BLK_DEV_UB is not set 576# CONFIG_BLK_DEV_UB is not set
547# CONFIG_BLK_DEV_RAM is not set 577# CONFIG_BLK_DEV_RAM is not set
@@ -640,11 +670,12 @@ CONFIG_SH_ETH=y
640# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 670# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
641# CONFIG_B44 is not set 671# CONFIG_B44 is not set
642# CONFIG_KS8842 is not set 672# CONFIG_KS8842 is not set
673# CONFIG_KS8851_MLL is not set
643# CONFIG_NETDEV_1000 is not set 674# CONFIG_NETDEV_1000 is not set
644# CONFIG_NETDEV_10000 is not set 675# CONFIG_NETDEV_10000 is not set
645CONFIG_WLAN=y 676CONFIG_WLAN=y
646# CONFIG_WLAN_PRE80211 is not set 677# CONFIG_USB_ZD1201 is not set
647# CONFIG_WLAN_80211 is not set 678# CONFIG_HOSTAP is not set
648 679
649# 680#
650# Enable WiMAX (Networking options) to see the WiMAX drivers 681# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -673,6 +704,7 @@ CONFIG_WLAN=y
673CONFIG_INPUT=y 704CONFIG_INPUT=y
674# CONFIG_INPUT_FF_MEMLESS is not set 705# CONFIG_INPUT_FF_MEMLESS is not set
675# CONFIG_INPUT_POLLDEV is not set 706# CONFIG_INPUT_POLLDEV is not set
707# CONFIG_INPUT_SPARSEKMAP is not set
676 708
677# 709#
678# Userland interfaces 710# Userland interfaces
@@ -756,6 +788,7 @@ CONFIG_SSB_POSSIBLE=y
756# 788#
757# CONFIG_MFD_CORE is not set 789# CONFIG_MFD_CORE is not set
758# CONFIG_MFD_SM501 is not set 790# CONFIG_MFD_SM501 is not set
791# CONFIG_MFD_SH_MOBILE_SDHI is not set
759# CONFIG_HTC_PASIC3 is not set 792# CONFIG_HTC_PASIC3 is not set
760# CONFIG_MFD_TMIO is not set 793# CONFIG_MFD_TMIO is not set
761# CONFIG_REGULATOR is not set 794# CONFIG_REGULATOR is not set
@@ -949,6 +982,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
949# CONFIG_MMC_SDHCI is not set 982# CONFIG_MMC_SDHCI is not set
950# CONFIG_MMC_AT91 is not set 983# CONFIG_MMC_AT91 is not set
951# CONFIG_MMC_ATMELMCI is not set 984# CONFIG_MMC_ATMELMCI is not set
985# CONFIG_MMC_TMIO is not set
952# CONFIG_MEMSTICK is not set 986# CONFIG_MEMSTICK is not set
953# CONFIG_NEW_LEDS is not set 987# CONFIG_NEW_LEDS is not set
954# CONFIG_ACCESSIBILITY is not set 988# CONFIG_ACCESSIBILITY is not set
@@ -1129,10 +1163,11 @@ CONFIG_DEBUG_FS=y
1129# CONFIG_HEADERS_CHECK is not set 1163# CONFIG_HEADERS_CHECK is not set
1130# CONFIG_DEBUG_KERNEL is not set 1164# CONFIG_DEBUG_KERNEL is not set
1131CONFIG_STACKTRACE=y 1165CONFIG_STACKTRACE=y
1132# CONFIG_DEBUG_BUGVERBOSE is not set 1166CONFIG_DEBUG_BUGVERBOSE=y
1133# CONFIG_DEBUG_MEMORY_INIT is not set 1167# CONFIG_DEBUG_MEMORY_INIT is not set
1134# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1168# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1135# CONFIG_LATENCYTOP is not set 1169# CONFIG_LATENCYTOP is not set
1170# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1136CONFIG_NOP_TRACER=y 1171CONFIG_NOP_TRACER=y
1137CONFIG_HAVE_FUNCTION_TRACER=y 1172CONFIG_HAVE_FUNCTION_TRACER=y
1138CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1173CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1152,7 +1187,6 @@ CONFIG_TRACING_SUPPORT=y
1152# CONFIG_SAMPLES is not set 1187# CONFIG_SAMPLES is not set
1153CONFIG_HAVE_ARCH_KGDB=y 1188CONFIG_HAVE_ARCH_KGDB=y
1154# CONFIG_SH_STANDARD_BIOS is not set 1189# CONFIG_SH_STANDARD_BIOS is not set
1155# CONFIG_EARLY_SCIF_CONSOLE is not set
1156# CONFIG_DWARF_UNWINDER is not set 1190# CONFIG_DWARF_UNWINDER is not set
1157 1191
1158# 1192#
@@ -1161,7 +1195,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1161# CONFIG_KEYS is not set 1195# CONFIG_KEYS is not set
1162# CONFIG_SECURITY is not set 1196# CONFIG_SECURITY is not set
1163# CONFIG_SECURITYFS is not set 1197# CONFIG_SECURITYFS is not set
1164# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1198# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1199# CONFIG_DEFAULT_SECURITY_SMACK is not set
1200# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1201CONFIG_DEFAULT_SECURITY_DAC=y
1202CONFIG_DEFAULT_SECURITY=""
1165CONFIG_CRYPTO=y 1203CONFIG_CRYPTO=y
1166 1204
1167# 1205#
diff --git a/arch/sh/configs/sh7770_generic_defconfig b/arch/sh/configs/sh7770_generic_defconfig
index 34bed5541f31..7b247053ece6 100644
--- a/arch/sh/configs/sh7770_generic_defconfig
+++ b/arch/sh/configs/sh7770_generic_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:17:16 2009 4# Mon Jan 4 15:06:28 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -48,7 +50,6 @@ CONFIG_KERNEL_GZIP=y
48# CONFIG_KERNEL_LZMA is not set 50# CONFIG_KERNEL_LZMA is not set
49CONFIG_SWAP=y 51CONFIG_SWAP=y
50CONFIG_SYSVIPC=y 52CONFIG_SYSVIPC=y
51CONFIG_SYSVIPC_SYSCTL=y
52# CONFIG_BSD_PROCESS_ACCT is not set 53# CONFIG_BSD_PROCESS_ACCT is not set
53 54
54# 55#
@@ -56,6 +57,7 @@ CONFIG_SYSVIPC_SYSCTL=y
56# 57#
57CONFIG_TREE_RCU=y 58CONFIG_TREE_RCU=y
58# CONFIG_TREE_PREEMPT_RCU is not set 59# CONFIG_TREE_PREEMPT_RCU is not set
60# CONFIG_TINY_RCU is not set
59# CONFIG_RCU_TRACE is not set 61# CONFIG_RCU_TRACE is not set
60CONFIG_RCU_FANOUT=32 62CONFIG_RCU_FANOUT=32
61# CONFIG_RCU_FANOUT_EXACT is not set 63# CONFIG_RCU_FANOUT_EXACT is not set
@@ -79,11 +81,9 @@ CONFIG_CGROUPS=y
79# CONFIG_NAMESPACES is not set 81# CONFIG_NAMESPACES is not set
80# CONFIG_BLK_DEV_INITRD is not set 82# CONFIG_BLK_DEV_INITRD is not set
81CONFIG_CC_OPTIMIZE_FOR_SIZE=y 83CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y
83CONFIG_ANON_INODES=y 84CONFIG_ANON_INODES=y
84CONFIG_EMBEDDED=y 85CONFIG_EMBEDDED=y
85# CONFIG_UID16 is not set 86# CONFIG_UID16 is not set
86CONFIG_SYSCTL_SYSCALL=y
87CONFIG_KALLSYMS=y 87CONFIG_KALLSYMS=y
88# CONFIG_KALLSYMS_EXTRA_PASS is not set 88# CONFIG_KALLSYMS_EXTRA_PASS is not set
89CONFIG_HOTPLUG=y 89CONFIG_HOTPLUG=y
@@ -99,6 +99,7 @@ CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 99CONFIG_SHMEM=y
100CONFIG_AIO=y 100CONFIG_AIO=y
101CONFIG_HAVE_PERF_EVENTS=y 101CONFIG_HAVE_PERF_EVENTS=y
102CONFIG_PERF_USE_VMALLOC=y
102 103
103# 104#
104# Kernel Performance Events And Counters 105# Kernel Performance Events And Counters
@@ -119,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y 122CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y
122CONFIG_HAVE_CLK=y 124CONFIG_HAVE_CLK=y
123CONFIG_HAVE_DMA_API_DEBUG=y 125CONFIG_HAVE_DMA_API_DEBUG=y
124 126
@@ -135,19 +137,48 @@ CONFIG_BLOCK=y
135CONFIG_LBDAF=y 137CONFIG_LBDAF=y
136# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set 139# CONFIG_BLK_DEV_INTEGRITY is not set
140# CONFIG_BLK_CGROUP is not set
138 141
139# 142#
140# IO Schedulers 143# IO Schedulers
141# 144#
142CONFIG_IOSCHED_NOOP=y 145CONFIG_IOSCHED_NOOP=y
143CONFIG_IOSCHED_AS=y
144CONFIG_IOSCHED_DEADLINE=y 146CONFIG_IOSCHED_DEADLINE=y
145CONFIG_IOSCHED_CFQ=y 147CONFIG_IOSCHED_CFQ=y
146CONFIG_DEFAULT_AS=y 148# CONFIG_CFQ_GROUP_IOSCHED is not set
147# CONFIG_DEFAULT_DEADLINE is not set 149# CONFIG_DEFAULT_DEADLINE is not set
148# CONFIG_DEFAULT_CFQ is not set 150CONFIG_DEFAULT_CFQ=y
149# CONFIG_DEFAULT_NOOP is not set 151# CONFIG_DEFAULT_NOOP is not set
150CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="cfq"
153# CONFIG_INLINE_SPIN_TRYLOCK is not set
154# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
155# CONFIG_INLINE_SPIN_LOCK is not set
156# CONFIG_INLINE_SPIN_LOCK_BH is not set
157# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
158# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
159CONFIG_INLINE_SPIN_UNLOCK=y
160# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
161CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
162# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
163# CONFIG_INLINE_READ_TRYLOCK is not set
164# CONFIG_INLINE_READ_LOCK is not set
165# CONFIG_INLINE_READ_LOCK_BH is not set
166# CONFIG_INLINE_READ_LOCK_IRQ is not set
167# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
168CONFIG_INLINE_READ_UNLOCK=y
169# CONFIG_INLINE_READ_UNLOCK_BH is not set
170CONFIG_INLINE_READ_UNLOCK_IRQ=y
171# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
172# CONFIG_INLINE_WRITE_TRYLOCK is not set
173# CONFIG_INLINE_WRITE_LOCK is not set
174# CONFIG_INLINE_WRITE_LOCK_BH is not set
175# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
176# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
177CONFIG_INLINE_WRITE_UNLOCK=y
178# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
179CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
180# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
181# CONFIG_MUTEX_SPIN_ON_OWNER is not set
151CONFIG_FREEZER=y 182CONFIG_FREEZER=y
152 183
153# 184#
@@ -201,6 +232,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
201CONFIG_MEMORY_START=0x08000000 232CONFIG_MEMORY_START=0x08000000
202CONFIG_MEMORY_SIZE=0x04000000 233CONFIG_MEMORY_SIZE=0x04000000
203CONFIG_29BIT=y 234CONFIG_29BIT=y
235# CONFIG_PMB_ENABLE is not set
204CONFIG_VSYSCALL=y 236CONFIG_VSYSCALL=y
205CONFIG_ARCH_FLATMEM_ENABLE=y 237CONFIG_ARCH_FLATMEM_ENABLE=y
206CONFIG_ARCH_SPARSEMEM_ENABLE=y 238CONFIG_ARCH_SPARSEMEM_ENABLE=y
@@ -221,17 +253,12 @@ CONFIG_SPARSEMEM_MANUAL=y
221CONFIG_SPARSEMEM=y 253CONFIG_SPARSEMEM=y
222CONFIG_HAVE_MEMORY_PRESENT=y 254CONFIG_HAVE_MEMORY_PRESENT=y
223CONFIG_SPARSEMEM_STATIC=y 255CONFIG_SPARSEMEM_STATIC=y
224 256# CONFIG_MEMORY_HOTPLUG is not set
225#
226# Memory hotplug is currently incompatible with Software Suspend
227#
228CONFIG_SPLIT_PTLOCK_CPUS=4 257CONFIG_SPLIT_PTLOCK_CPUS=4
229CONFIG_MIGRATION=y 258CONFIG_MIGRATION=y
230# CONFIG_PHYS_ADDR_T_64BIT is not set 259# CONFIG_PHYS_ADDR_T_64BIT is not set
231CONFIG_ZONE_DMA_FLAG=0 260CONFIG_ZONE_DMA_FLAG=0
232CONFIG_NR_QUICK=2 261CONFIG_NR_QUICK=2
233CONFIG_HAVE_MLOCK=y
234CONFIG_HAVE_MLOCKED_PAGE_BIT=y
235# CONFIG_KSM is not set 262# CONFIG_KSM is not set
236CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 263CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
237 264
@@ -379,6 +406,10 @@ CONFIG_EXTRA_FIRMWARE=""
379CONFIG_BLK_DEV=y 406CONFIG_BLK_DEV=y
380# CONFIG_BLK_DEV_COW_COMMON is not set 407# CONFIG_BLK_DEV_COW_COMMON is not set
381# CONFIG_BLK_DEV_LOOP is not set 408# CONFIG_BLK_DEV_LOOP is not set
409
410#
411# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
412#
382# CONFIG_BLK_DEV_RAM is not set 413# CONFIG_BLK_DEV_RAM is not set
383# CONFIG_CDROM_PKTCDVD is not set 414# CONFIG_CDROM_PKTCDVD is not set
384# CONFIG_BLK_DEV_HD is not set 415# CONFIG_BLK_DEV_HD is not set
@@ -467,7 +498,6 @@ CONFIG_I2C_SH_MOBILE=y
467# 498#
468# Miscellaneous I2C Chip support 499# Miscellaneous I2C Chip support
469# 500#
470# CONFIG_DS1682 is not set
471# CONFIG_SENSORS_TSL2550 is not set 501# CONFIG_SENSORS_TSL2550 is not set
472# CONFIG_I2C_DEBUG_CORE is not set 502# CONFIG_I2C_DEBUG_CORE is not set
473# CONFIG_I2C_DEBUG_ALGO is not set 503# CONFIG_I2C_DEBUG_ALGO is not set
@@ -496,15 +526,18 @@ CONFIG_SSB_POSSIBLE=y
496# 526#
497# CONFIG_MFD_CORE is not set 527# CONFIG_MFD_CORE is not set
498# CONFIG_MFD_SM501 is not set 528# CONFIG_MFD_SM501 is not set
529# CONFIG_MFD_SH_MOBILE_SDHI is not set
499# CONFIG_HTC_PASIC3 is not set 530# CONFIG_HTC_PASIC3 is not set
500# CONFIG_TWL4030_CORE is not set 531# CONFIG_TWL4030_CORE is not set
501# CONFIG_MFD_TMIO is not set 532# CONFIG_MFD_TMIO is not set
502# CONFIG_PMIC_DA903X is not set 533# CONFIG_PMIC_DA903X is not set
534# CONFIG_PMIC_ADP5520 is not set
503# CONFIG_MFD_WM8400 is not set 535# CONFIG_MFD_WM8400 is not set
504# CONFIG_MFD_WM831X is not set 536# CONFIG_MFD_WM831X is not set
505# CONFIG_MFD_WM8350_I2C is not set 537# CONFIG_MFD_WM8350_I2C is not set
506# CONFIG_MFD_PCF50633 is not set 538# CONFIG_MFD_PCF50633 is not set
507# CONFIG_AB3100_CORE is not set 539# CONFIG_AB3100_CORE is not set
540# CONFIG_MFD_88PM8607 is not set
508# CONFIG_REGULATOR is not set 541# CONFIG_REGULATOR is not set
509# CONFIG_MEDIA_SUPPORT is not set 542# CONFIG_MEDIA_SUPPORT is not set
510 543
@@ -552,6 +585,7 @@ CONFIG_RTC_INTF_DEV=y
552# CONFIG_RTC_DRV_PCF8563 is not set 585# CONFIG_RTC_DRV_PCF8563 is not set
553# CONFIG_RTC_DRV_PCF8583 is not set 586# CONFIG_RTC_DRV_PCF8583 is not set
554# CONFIG_RTC_DRV_M41T80 is not set 587# CONFIG_RTC_DRV_M41T80 is not set
588# CONFIG_RTC_DRV_BQ32K is not set
555# CONFIG_RTC_DRV_S35390A is not set 589# CONFIG_RTC_DRV_S35390A is not set
556# CONFIG_RTC_DRV_FM3130 is not set 590# CONFIG_RTC_DRV_FM3130 is not set
557# CONFIG_RTC_DRV_RX8581 is not set 591# CONFIG_RTC_DRV_RX8581 is not set
@@ -572,7 +606,9 @@ CONFIG_RTC_INTF_DEV=y
572# CONFIG_RTC_DRV_M48T86 is not set 606# CONFIG_RTC_DRV_M48T86 is not set
573# CONFIG_RTC_DRV_M48T35 is not set 607# CONFIG_RTC_DRV_M48T35 is not set
574# CONFIG_RTC_DRV_M48T59 is not set 608# CONFIG_RTC_DRV_M48T59 is not set
609# CONFIG_RTC_DRV_MSM6242 is not set
575# CONFIG_RTC_DRV_BQ4802 is not set 610# CONFIG_RTC_DRV_BQ4802 is not set
611# CONFIG_RTC_DRV_RP5C01 is not set
576# CONFIG_RTC_DRV_V3020 is not set 612# CONFIG_RTC_DRV_V3020 is not set
577 613
578# 614#
@@ -599,6 +635,7 @@ CONFIG_UIO_PDRV_GENIRQ=y
599# CONFIG_EXT2_FS is not set 635# CONFIG_EXT2_FS is not set
600# CONFIG_EXT3_FS is not set 636# CONFIG_EXT3_FS is not set
601# CONFIG_EXT4_FS is not set 637# CONFIG_EXT4_FS is not set
638CONFIG_EXT4_USE_FOR_EXT23=y
602# CONFIG_REISERFS_FS is not set 639# CONFIG_REISERFS_FS is not set
603# CONFIG_JFS_FS is not set 640# CONFIG_JFS_FS is not set
604# CONFIG_FS_POSIX_ACL is not set 641# CONFIG_FS_POSIX_ACL is not set
@@ -666,11 +703,10 @@ CONFIG_DEBUG_FS=y
666# CONFIG_HEADERS_CHECK is not set 703# CONFIG_HEADERS_CHECK is not set
667# CONFIG_DEBUG_KERNEL is not set 704# CONFIG_DEBUG_KERNEL is not set
668CONFIG_STACKTRACE=y 705CONFIG_STACKTRACE=y
669# CONFIG_DEBUG_BUGVERBOSE is not set 706CONFIG_DEBUG_BUGVERBOSE=y
670# CONFIG_DEBUG_MEMORY_INIT is not set 707# CONFIG_DEBUG_MEMORY_INIT is not set
671# CONFIG_RCU_CPU_STALL_DETECTOR is not set 708# CONFIG_RCU_CPU_STALL_DETECTOR is not set
672# CONFIG_LATENCYTOP is not set 709# CONFIG_LATENCYTOP is not set
673# CONFIG_SYSCTL_SYSCALL_CHECK is not set
674CONFIG_NOP_TRACER=y 710CONFIG_NOP_TRACER=y
675CONFIG_HAVE_FUNCTION_TRACER=y 711CONFIG_HAVE_FUNCTION_TRACER=y
676CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 712CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -690,7 +726,6 @@ CONFIG_TRACING_SUPPORT=y
690# CONFIG_SAMPLES is not set 726# CONFIG_SAMPLES is not set
691CONFIG_HAVE_ARCH_KGDB=y 727CONFIG_HAVE_ARCH_KGDB=y
692# CONFIG_SH_STANDARD_BIOS is not set 728# CONFIG_SH_STANDARD_BIOS is not set
693# CONFIG_EARLY_SCIF_CONSOLE is not set
694# CONFIG_DWARF_UNWINDER is not set 729# CONFIG_DWARF_UNWINDER is not set
695 730
696# 731#
@@ -698,7 +733,11 @@ CONFIG_HAVE_ARCH_KGDB=y
698# 733#
699# CONFIG_KEYS is not set 734# CONFIG_KEYS is not set
700# CONFIG_SECURITYFS is not set 735# CONFIG_SECURITYFS is not set
701# CONFIG_SECURITY_FILE_CAPABILITIES is not set 736# CONFIG_DEFAULT_SECURITY_SELINUX is not set
737# CONFIG_DEFAULT_SECURITY_SMACK is not set
738# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
739CONFIG_DEFAULT_SECURITY_DAC=y
740CONFIG_DEFAULT_SECURITY=""
702# CONFIG_CRYPTO is not set 741# CONFIG_CRYPTO is not set
703CONFIG_BINARY_PRINTF=y 742CONFIG_BINARY_PRINTF=y
704 743
diff --git a/arch/sh/configs/sh7785lcr_32bit_defconfig b/arch/sh/configs/sh7785lcr_32bit_defconfig
index 51cbaedf7a56..8330813b0c1d 100644
--- a/arch/sh/configs/sh7785lcr_32bit_defconfig
+++ b/arch/sh/configs/sh7785lcr_32bit_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.31 3# Linux kernel version: 2.6.33-rc2
4# Fri Sep 25 11:39:20 2009 4# Mon Jan 4 15:07:40 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
24CONFIG_SYS_SUPPORTS_PCI=y 25CONFIG_SYS_SUPPORTS_PCI=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -64,6 +66,7 @@ CONFIG_BSD_PROCESS_ACCT=y
64# 66#
65CONFIG_TREE_RCU=y 67CONFIG_TREE_RCU=y
66# CONFIG_TREE_PREEMPT_RCU is not set 68# CONFIG_TREE_PREEMPT_RCU is not set
69# CONFIG_TINY_RCU is not set
67# CONFIG_RCU_TRACE is not set 70# CONFIG_RCU_TRACE is not set
68CONFIG_RCU_FANOUT=32 71CONFIG_RCU_FANOUT=32
69# CONFIG_RCU_FANOUT_EXACT is not set 72# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
@@ -126,6 +130,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
126CONFIG_HAVE_KPROBES=y 130CONFIG_HAVE_KPROBES=y
127CONFIG_HAVE_KRETPROBES=y 131CONFIG_HAVE_KRETPROBES=y
128CONFIG_HAVE_ARCH_TRACEHOOK=y 132CONFIG_HAVE_ARCH_TRACEHOOK=y
133CONFIG_HAVE_DMA_ATTRS=y
129CONFIG_HAVE_CLK=y 134CONFIG_HAVE_CLK=y
130CONFIG_HAVE_DMA_API_DEBUG=y 135CONFIG_HAVE_DMA_API_DEBUG=y
131 136
@@ -153,14 +158,41 @@ CONFIG_BLOCK=y
153# IO Schedulers 158# IO Schedulers
154# 159#
155CONFIG_IOSCHED_NOOP=y 160CONFIG_IOSCHED_NOOP=y
156CONFIG_IOSCHED_AS=y
157CONFIG_IOSCHED_DEADLINE=y 161CONFIG_IOSCHED_DEADLINE=y
158CONFIG_IOSCHED_CFQ=y 162CONFIG_IOSCHED_CFQ=y
159# CONFIG_DEFAULT_AS is not set
160# CONFIG_DEFAULT_DEADLINE is not set 163# CONFIG_DEFAULT_DEADLINE is not set
161CONFIG_DEFAULT_CFQ=y 164CONFIG_DEFAULT_CFQ=y
162# CONFIG_DEFAULT_NOOP is not set 165# CONFIG_DEFAULT_NOOP is not set
163CONFIG_DEFAULT_IOSCHED="cfq" 166CONFIG_DEFAULT_IOSCHED="cfq"
167# CONFIG_INLINE_SPIN_TRYLOCK is not set
168# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
169# CONFIG_INLINE_SPIN_LOCK is not set
170# CONFIG_INLINE_SPIN_LOCK_BH is not set
171# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
172# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
173# CONFIG_INLINE_SPIN_UNLOCK is not set
174# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
175# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
176# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
177# CONFIG_INLINE_READ_TRYLOCK is not set
178# CONFIG_INLINE_READ_LOCK is not set
179# CONFIG_INLINE_READ_LOCK_BH is not set
180# CONFIG_INLINE_READ_LOCK_IRQ is not set
181# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
182# CONFIG_INLINE_READ_UNLOCK is not set
183# CONFIG_INLINE_READ_UNLOCK_BH is not set
184# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
185# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
186# CONFIG_INLINE_WRITE_TRYLOCK is not set
187# CONFIG_INLINE_WRITE_LOCK is not set
188# CONFIG_INLINE_WRITE_LOCK_BH is not set
189# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
190# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
191# CONFIG_INLINE_WRITE_UNLOCK is not set
192# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
193# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
194# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
195# CONFIG_MUTEX_SPIN_ON_OWNER is not set
164# CONFIG_FREEZER is not set 196# CONFIG_FREEZER is not set
165 197
166# 198#
@@ -253,8 +285,6 @@ CONFIG_MIGRATION=y
253# CONFIG_PHYS_ADDR_T_64BIT is not set 285# CONFIG_PHYS_ADDR_T_64BIT is not set
254CONFIG_ZONE_DMA_FLAG=0 286CONFIG_ZONE_DMA_FLAG=0
255CONFIG_NR_QUICK=2 287CONFIG_NR_QUICK=2
256CONFIG_HAVE_MLOCK=y
257CONFIG_HAVE_MLOCKED_PAGE_BIT=y
258# CONFIG_KSM is not set 288# CONFIG_KSM is not set
259CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 289CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
260 290
@@ -287,7 +317,6 @@ CONFIG_SH_SH7785LCR=y
287# Timer and clock configuration 317# Timer and clock configuration
288# 318#
289CONFIG_SH_TIMER_TMU=y 319CONFIG_SH_TIMER_TMU=y
290CONFIG_SH_PCLK_FREQ=50000000
291CONFIG_SH_CLK_CPG=y 320CONFIG_SH_CLK_CPG=y
292CONFIG_TICK_ONESHOT=y 321CONFIG_TICK_ONESHOT=y
293CONFIG_NO_HZ=y 322CONFIG_NO_HZ=y
@@ -360,7 +389,6 @@ CONFIG_ENTRY_OFFSET=0x00001000
360# Bus options 389# Bus options
361# 390#
362CONFIG_PCI=y 391CONFIG_PCI=y
363CONFIG_SH_PCIDMA_NONCOHERENT=y
364# CONFIG_PCIEPORTBUS is not set 392# CONFIG_PCIEPORTBUS is not set
365# CONFIG_ARCH_SUPPORTS_MSI is not set 393# CONFIG_ARCH_SUPPORTS_MSI is not set
366# CONFIG_PCI_LEGACY is not set 394# CONFIG_PCI_LEGACY is not set
@@ -470,10 +498,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
470# CONFIG_AF_RXRPC is not set 498# CONFIG_AF_RXRPC is not set
471CONFIG_WIRELESS=y 499CONFIG_WIRELESS=y
472# CONFIG_CFG80211 is not set 500# CONFIG_CFG80211 is not set
473CONFIG_CFG80211_DEFAULT_PS_VALUE=0
474# CONFIG_WIRELESS_OLD_REGULATORY is not set
475CONFIG_WIRELESS_EXT=y
476CONFIG_WIRELESS_EXT_SYSFS=y
477# CONFIG_LIB80211 is not set 501# CONFIG_LIB80211 is not set
478 502
479# 503#
@@ -588,6 +612,10 @@ CONFIG_BLK_DEV=y
588# CONFIG_BLK_DEV_COW_COMMON is not set 612# CONFIG_BLK_DEV_COW_COMMON is not set
589CONFIG_BLK_DEV_LOOP=y 613CONFIG_BLK_DEV_LOOP=y
590CONFIG_BLK_DEV_CRYPTOLOOP=m 614CONFIG_BLK_DEV_CRYPTOLOOP=m
615
616#
617# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
618#
591# CONFIG_BLK_DEV_NBD is not set 619# CONFIG_BLK_DEV_NBD is not set
592# CONFIG_BLK_DEV_SX8 is not set 620# CONFIG_BLK_DEV_SX8 is not set
593# CONFIG_BLK_DEV_UB is not set 621# CONFIG_BLK_DEV_UB is not set
@@ -688,15 +716,16 @@ CONFIG_SATA_SIL=y
688# CONFIG_PATA_NS87415 is not set 716# CONFIG_PATA_NS87415 is not set
689# CONFIG_PATA_OPTI is not set 717# CONFIG_PATA_OPTI is not set
690# CONFIG_PATA_OPTIDMA is not set 718# CONFIG_PATA_OPTIDMA is not set
719# CONFIG_PATA_PDC2027X is not set
691# CONFIG_PATA_PDC_OLD is not set 720# CONFIG_PATA_PDC_OLD is not set
692# CONFIG_PATA_RADISYS is not set 721# CONFIG_PATA_RADISYS is not set
693# CONFIG_PATA_RDC is not set 722# CONFIG_PATA_RDC is not set
694# CONFIG_PATA_RZ1000 is not set 723# CONFIG_PATA_RZ1000 is not set
695# CONFIG_PATA_SC1200 is not set 724# CONFIG_PATA_SC1200 is not set
696# CONFIG_PATA_SERVERWORKS is not set 725# CONFIG_PATA_SERVERWORKS is not set
697# CONFIG_PATA_PDC2027X is not set
698# CONFIG_PATA_SIL680 is not set 726# CONFIG_PATA_SIL680 is not set
699# CONFIG_PATA_SIS is not set 727# CONFIG_PATA_SIS is not set
728# CONFIG_PATA_TOSHIBA is not set
700# CONFIG_PATA_VIA is not set 729# CONFIG_PATA_VIA is not set
701# CONFIG_PATA_WINBOND is not set 730# CONFIG_PATA_WINBOND is not set
702# CONFIG_PATA_PLATFORM is not set 731# CONFIG_PATA_PLATFORM is not set
@@ -777,6 +806,7 @@ CONFIG_R8169=y
777# CONFIG_NETCONSOLE is not set 806# CONFIG_NETCONSOLE is not set
778# CONFIG_NETPOLL is not set 807# CONFIG_NETPOLL is not set
779# CONFIG_NET_POLL_CONTROLLER is not set 808# CONFIG_NET_POLL_CONTROLLER is not set
809# CONFIG_VMXNET3 is not set
780# CONFIG_ISDN is not set 810# CONFIG_ISDN is not set
781# CONFIG_PHONE is not set 811# CONFIG_PHONE is not set
782 812
@@ -786,6 +816,7 @@ CONFIG_R8169=y
786CONFIG_INPUT=y 816CONFIG_INPUT=y
787CONFIG_INPUT_FF_MEMLESS=m 817CONFIG_INPUT_FF_MEMLESS=m
788# CONFIG_INPUT_POLLDEV is not set 818# CONFIG_INPUT_POLLDEV is not set
819# CONFIG_INPUT_SPARSEKMAP is not set
789 820
790# 821#
791# Userland interfaces 822# Userland interfaces
@@ -841,6 +872,7 @@ CONFIG_SERIO_SERPORT=y
841# CONFIG_SERIO_PCIPS2 is not set 872# CONFIG_SERIO_PCIPS2 is not set
842CONFIG_SERIO_LIBPS2=y 873CONFIG_SERIO_LIBPS2=y
843# CONFIG_SERIO_RAW is not set 874# CONFIG_SERIO_RAW is not set
875# CONFIG_SERIO_ALTERA_PS2 is not set
844# CONFIG_GAMEPORT is not set 876# CONFIG_GAMEPORT is not set
845 877
846# 878#
@@ -924,11 +956,6 @@ CONFIG_I2C_ALGOPCA=y
924# CONFIG_I2C_TINY_USB is not set 956# CONFIG_I2C_TINY_USB is not set
925 957
926# 958#
927# Graphics adapter I2C/DDC channel drivers
928#
929# CONFIG_I2C_VOODOO3 is not set
930
931#
932# Other I2C/SMBus bus drivers 959# Other I2C/SMBus bus drivers
933# 960#
934CONFIG_I2C_PCA_PLATFORM=y 961CONFIG_I2C_PCA_PLATFORM=y
@@ -937,7 +964,6 @@ CONFIG_I2C_PCA_PLATFORM=y
937# 964#
938# Miscellaneous I2C Chip support 965# Miscellaneous I2C Chip support
939# 966#
940# CONFIG_DS1682 is not set
941# CONFIG_SENSORS_TSL2550 is not set 967# CONFIG_SENSORS_TSL2550 is not set
942# CONFIG_I2C_DEBUG_CORE is not set 968# CONFIG_I2C_DEBUG_CORE is not set
943# CONFIG_I2C_DEBUG_ALGO is not set 969# CONFIG_I2C_DEBUG_ALGO is not set
@@ -986,15 +1012,18 @@ CONFIG_SSB_POSSIBLE=y
986# 1012#
987# CONFIG_MFD_CORE is not set 1013# CONFIG_MFD_CORE is not set
988CONFIG_MFD_SM501=y 1014CONFIG_MFD_SM501=y
1015# CONFIG_MFD_SH_MOBILE_SDHI is not set
989# CONFIG_HTC_PASIC3 is not set 1016# CONFIG_HTC_PASIC3 is not set
990# CONFIG_TWL4030_CORE is not set 1017# CONFIG_TWL4030_CORE is not set
991# CONFIG_MFD_TMIO is not set 1018# CONFIG_MFD_TMIO is not set
992# CONFIG_PMIC_DA903X is not set 1019# CONFIG_PMIC_DA903X is not set
1020# CONFIG_PMIC_ADP5520 is not set
993# CONFIG_MFD_WM8400 is not set 1021# CONFIG_MFD_WM8400 is not set
994# CONFIG_MFD_WM831X is not set 1022# CONFIG_MFD_WM831X is not set
995# CONFIG_MFD_WM8350_I2C is not set 1023# CONFIG_MFD_WM8350_I2C is not set
996# CONFIG_MFD_PCF50633 is not set 1024# CONFIG_MFD_PCF50633 is not set
997# CONFIG_AB3100_CORE is not set 1025# CONFIG_AB3100_CORE is not set
1026# CONFIG_MFD_88PM8607 is not set
998# CONFIG_REGULATOR is not set 1027# CONFIG_REGULATOR is not set
999# CONFIG_MEDIA_SUPPORT is not set 1028# CONFIG_MEDIA_SUPPORT is not set
1000 1029
@@ -1129,6 +1158,7 @@ CONFIG_SND_CMIPCI=y
1129# CONFIG_SND_OXYGEN is not set 1158# CONFIG_SND_OXYGEN is not set
1130# CONFIG_SND_CS4281 is not set 1159# CONFIG_SND_CS4281 is not set
1131# CONFIG_SND_CS46XX is not set 1160# CONFIG_SND_CS46XX is not set
1161# CONFIG_SND_CS5535AUDIO is not set
1132# CONFIG_SND_CTXFI is not set 1162# CONFIG_SND_CTXFI is not set
1133# CONFIG_SND_DARLA20 is not set 1163# CONFIG_SND_DARLA20 is not set
1134# CONFIG_SND_GINA20 is not set 1164# CONFIG_SND_GINA20 is not set
@@ -1363,6 +1393,7 @@ CONFIG_MMC_SDHCI_PLTFM=m
1363# CONFIG_MMC_AT91 is not set 1393# CONFIG_MMC_AT91 is not set
1364# CONFIG_MMC_ATMELMCI is not set 1394# CONFIG_MMC_ATMELMCI is not set
1365# CONFIG_MMC_TIFM_SD is not set 1395# CONFIG_MMC_TIFM_SD is not set
1396# CONFIG_MMC_TMIO is not set
1366# CONFIG_MMC_CB710 is not set 1397# CONFIG_MMC_CB710 is not set
1367# CONFIG_MMC_VIA_SDMMC is not set 1398# CONFIG_MMC_VIA_SDMMC is not set
1368# CONFIG_MEMSTICK is not set 1399# CONFIG_MEMSTICK is not set
@@ -1397,6 +1428,7 @@ CONFIG_RTC_DRV_RS5C372=y
1397# CONFIG_RTC_DRV_PCF8563 is not set 1428# CONFIG_RTC_DRV_PCF8563 is not set
1398# CONFIG_RTC_DRV_PCF8583 is not set 1429# CONFIG_RTC_DRV_PCF8583 is not set
1399# CONFIG_RTC_DRV_M41T80 is not set 1430# CONFIG_RTC_DRV_M41T80 is not set
1431# CONFIG_RTC_DRV_BQ32K is not set
1400# CONFIG_RTC_DRV_S35390A is not set 1432# CONFIG_RTC_DRV_S35390A is not set
1401# CONFIG_RTC_DRV_FM3130 is not set 1433# CONFIG_RTC_DRV_FM3130 is not set
1402# CONFIG_RTC_DRV_RX8581 is not set 1434# CONFIG_RTC_DRV_RX8581 is not set
@@ -1417,7 +1449,9 @@ CONFIG_RTC_DRV_RS5C372=y
1417# CONFIG_RTC_DRV_M48T86 is not set 1449# CONFIG_RTC_DRV_M48T86 is not set
1418# CONFIG_RTC_DRV_M48T35 is not set 1450# CONFIG_RTC_DRV_M48T35 is not set
1419# CONFIG_RTC_DRV_M48T59 is not set 1451# CONFIG_RTC_DRV_M48T59 is not set
1452# CONFIG_RTC_DRV_MSM6242 is not set
1420# CONFIG_RTC_DRV_BQ4802 is not set 1453# CONFIG_RTC_DRV_BQ4802 is not set
1454# CONFIG_RTC_DRV_RP5C01 is not set
1421# CONFIG_RTC_DRV_V3020 is not set 1455# CONFIG_RTC_DRV_V3020 is not set
1422 1456
1423# 1457#
@@ -1622,13 +1656,14 @@ CONFIG_SCHED_DEBUG=y
1622CONFIG_SCHEDSTATS=y 1656CONFIG_SCHEDSTATS=y
1623CONFIG_TRACE_IRQFLAGS=y 1657CONFIG_TRACE_IRQFLAGS=y
1624CONFIG_STACKTRACE=y 1658CONFIG_STACKTRACE=y
1625# CONFIG_DEBUG_BUGVERBOSE is not set 1659CONFIG_DEBUG_BUGVERBOSE=y
1626# CONFIG_DEBUG_MEMORY_INIT is not set 1660# CONFIG_DEBUG_MEMORY_INIT is not set
1627CONFIG_FRAME_POINTER=y 1661CONFIG_FRAME_POINTER=y
1628# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1662# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1629CONFIG_LATENCYTOP=y 1663CONFIG_LATENCYTOP=y
1630CONFIG_SYSCTL_SYSCALL_CHECK=y 1664CONFIG_SYSCTL_SYSCALL_CHECK=y
1631CONFIG_NOP_TRACER=y 1665CONFIG_NOP_TRACER=y
1666CONFIG_HAVE_FTRACE_NMI_ENTER=y
1632CONFIG_HAVE_FUNCTION_TRACER=y 1667CONFIG_HAVE_FUNCTION_TRACER=y
1633CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1668CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1634CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 1669CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -1637,6 +1672,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1637CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 1672CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
1638CONFIG_TRACER_MAX_TRACE=y 1673CONFIG_TRACER_MAX_TRACE=y
1639CONFIG_RING_BUFFER=y 1674CONFIG_RING_BUFFER=y
1675CONFIG_FTRACE_NMI_ENTER=y
1640CONFIG_EVENT_TRACING=y 1676CONFIG_EVENT_TRACING=y
1641CONFIG_CONTEXT_SWITCH_TRACER=y 1677CONFIG_CONTEXT_SWITCH_TRACER=y
1642CONFIG_RING_BUFFER_ALLOW_SWAP=y 1678CONFIG_RING_BUFFER_ALLOW_SWAP=y
@@ -1668,7 +1704,6 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
1668# CONFIG_SAMPLES is not set 1704# CONFIG_SAMPLES is not set
1669CONFIG_HAVE_ARCH_KGDB=y 1705CONFIG_HAVE_ARCH_KGDB=y
1670# CONFIG_SH_STANDARD_BIOS is not set 1706# CONFIG_SH_STANDARD_BIOS is not set
1671# CONFIG_EARLY_SCIF_CONSOLE is not set
1672CONFIG_DWARF_UNWINDER=y 1707CONFIG_DWARF_UNWINDER=y
1673CONFIG_MCOUNT=y 1708CONFIG_MCOUNT=y
1674 1709
@@ -1678,7 +1713,11 @@ CONFIG_MCOUNT=y
1678# CONFIG_KEYS is not set 1713# CONFIG_KEYS is not set
1679# CONFIG_SECURITY is not set 1714# CONFIG_SECURITY is not set
1680# CONFIG_SECURITYFS is not set 1715# CONFIG_SECURITYFS is not set
1681# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1716# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1717# CONFIG_DEFAULT_SECURITY_SMACK is not set
1718# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1719CONFIG_DEFAULT_SECURITY_DAC=y
1720CONFIG_DEFAULT_SECURITY=""
1682CONFIG_CRYPTO=y 1721CONFIG_CRYPTO=y
1683 1722
1684# 1723#
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig
index 8c2c47ed3991..f196e87c7665 100644
--- a/arch/sh/configs/sh7785lcr_defconfig
+++ b/arch/sh/configs/sh7785lcr_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:23:18 2009 4# Mon Jan 4 15:09:09 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
24CONFIG_SYS_SUPPORTS_PCI=y 25CONFIG_SYS_SUPPORTS_PCI=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y
63# 65#
64CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 69# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -103,12 +106,14 @@ CONFIG_EVENTFD=y
103CONFIG_SHMEM=y 106CONFIG_SHMEM=y
104CONFIG_AIO=y 107CONFIG_AIO=y
105CONFIG_HAVE_PERF_EVENTS=y 108CONFIG_HAVE_PERF_EVENTS=y
109CONFIG_PERF_USE_VMALLOC=y
106 110
107# 111#
108# Kernel Performance Events And Counters 112# Kernel Performance Events And Counters
109# 113#
110CONFIG_PERF_EVENTS=y 114CONFIG_PERF_EVENTS=y
111# CONFIG_PERF_COUNTERS is not set 115# CONFIG_PERF_COUNTERS is not set
116# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
112CONFIG_VM_EVENT_COUNTERS=y 117CONFIG_VM_EVENT_COUNTERS=y
113CONFIG_PCI_QUIRKS=y 118CONFIG_PCI_QUIRKS=y
114CONFIG_COMPAT_BRK=y 119CONFIG_COMPAT_BRK=y
@@ -123,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 128CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 129CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y 130CONFIG_HAVE_ARCH_TRACEHOOK=y
131CONFIG_HAVE_DMA_ATTRS=y
126CONFIG_HAVE_CLK=y 132CONFIG_HAVE_CLK=y
127CONFIG_HAVE_DMA_API_DEBUG=y 133CONFIG_HAVE_DMA_API_DEBUG=y
128 134
@@ -149,14 +155,41 @@ CONFIG_LBDAF=y
149# IO Schedulers 155# IO Schedulers
150# 156#
151CONFIG_IOSCHED_NOOP=y 157CONFIG_IOSCHED_NOOP=y
152CONFIG_IOSCHED_AS=y
153CONFIG_IOSCHED_DEADLINE=y 158CONFIG_IOSCHED_DEADLINE=y
154CONFIG_IOSCHED_CFQ=y 159CONFIG_IOSCHED_CFQ=y
155# CONFIG_DEFAULT_AS is not set
156# CONFIG_DEFAULT_DEADLINE is not set 160# CONFIG_DEFAULT_DEADLINE is not set
157CONFIG_DEFAULT_CFQ=y 161CONFIG_DEFAULT_CFQ=y
158# CONFIG_DEFAULT_NOOP is not set 162# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="cfq" 163CONFIG_DEFAULT_IOSCHED="cfq"
164# CONFIG_INLINE_SPIN_TRYLOCK is not set
165# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
166# CONFIG_INLINE_SPIN_LOCK is not set
167# CONFIG_INLINE_SPIN_LOCK_BH is not set
168# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
169# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
170# CONFIG_INLINE_SPIN_UNLOCK is not set
171# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
172# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
173# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
174# CONFIG_INLINE_READ_TRYLOCK is not set
175# CONFIG_INLINE_READ_LOCK is not set
176# CONFIG_INLINE_READ_LOCK_BH is not set
177# CONFIG_INLINE_READ_LOCK_IRQ is not set
178# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
179# CONFIG_INLINE_READ_UNLOCK is not set
180# CONFIG_INLINE_READ_UNLOCK_BH is not set
181# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
182# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
183# CONFIG_INLINE_WRITE_TRYLOCK is not set
184# CONFIG_INLINE_WRITE_LOCK is not set
185# CONFIG_INLINE_WRITE_LOCK_BH is not set
186# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
187# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
188# CONFIG_INLINE_WRITE_UNLOCK is not set
189# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
190# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
191# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
192# CONFIG_MUTEX_SPIN_ON_OWNER is not set
160# CONFIG_FREEZER is not set 193# CONFIG_FREEZER is not set
161 194
162# 195#
@@ -237,8 +270,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
237# CONFIG_PHYS_ADDR_T_64BIT is not set 270# CONFIG_PHYS_ADDR_T_64BIT is not set
238CONFIG_ZONE_DMA_FLAG=0 271CONFIG_ZONE_DMA_FLAG=0
239CONFIG_NR_QUICK=2 272CONFIG_NR_QUICK=2
240CONFIG_HAVE_MLOCK=y
241CONFIG_HAVE_MLOCKED_PAGE_BIT=y
242# CONFIG_KSM is not set 273# CONFIG_KSM is not set
243CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 274CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
244 275
@@ -271,7 +302,6 @@ CONFIG_SH_SH7785LCR_29BIT_PHYSMAPS=y
271# Timer and clock configuration 302# Timer and clock configuration
272# 303#
273CONFIG_SH_TIMER_TMU=y 304CONFIG_SH_TIMER_TMU=y
274CONFIG_SH_PCLK_FREQ=50000000
275CONFIG_SH_CLK_CPG=y 305CONFIG_SH_CLK_CPG=y
276CONFIG_TICK_ONESHOT=y 306CONFIG_TICK_ONESHOT=y
277# CONFIG_NO_HZ is not set 307# CONFIG_NO_HZ is not set
@@ -329,7 +359,6 @@ CONFIG_ENTRY_OFFSET=0x00001000
329# Bus options 359# Bus options
330# 360#
331CONFIG_PCI=y 361CONFIG_PCI=y
332CONFIG_SH_PCIDMA_NONCOHERENT=y
333# CONFIG_PCIEPORTBUS is not set 362# CONFIG_PCIEPORTBUS is not set
334# CONFIG_ARCH_SUPPORTS_MSI is not set 363# CONFIG_ARCH_SUPPORTS_MSI is not set
335CONFIG_PCI_LEGACY=y 364CONFIG_PCI_LEGACY=y
@@ -433,10 +462,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
433# CONFIG_AF_RXRPC is not set 462# CONFIG_AF_RXRPC is not set
434CONFIG_WIRELESS=y 463CONFIG_WIRELESS=y
435# CONFIG_CFG80211 is not set 464# CONFIG_CFG80211 is not set
436CONFIG_CFG80211_DEFAULT_PS_VALUE=0
437# CONFIG_WIRELESS_OLD_REGULATORY is not set
438CONFIG_WIRELESS_EXT=y
439CONFIG_WIRELESS_EXT_SYSFS=y
440# CONFIG_LIB80211 is not set 465# CONFIG_LIB80211 is not set
441 466
442# 467#
@@ -552,6 +577,10 @@ CONFIG_BLK_DEV=y
552# CONFIG_BLK_DEV_UMEM is not set 577# CONFIG_BLK_DEV_UMEM is not set
553# CONFIG_BLK_DEV_COW_COMMON is not set 578# CONFIG_BLK_DEV_COW_COMMON is not set
554# CONFIG_BLK_DEV_LOOP is not set 579# CONFIG_BLK_DEV_LOOP is not set
580
581#
582# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
583#
555# CONFIG_BLK_DEV_NBD is not set 584# CONFIG_BLK_DEV_NBD is not set
556# CONFIG_BLK_DEV_SX8 is not set 585# CONFIG_BLK_DEV_SX8 is not set
557# CONFIG_BLK_DEV_UB is not set 586# CONFIG_BLK_DEV_UB is not set
@@ -652,15 +681,16 @@ CONFIG_SATA_SIL=y
652# CONFIG_PATA_NS87415 is not set 681# CONFIG_PATA_NS87415 is not set
653# CONFIG_PATA_OPTI is not set 682# CONFIG_PATA_OPTI is not set
654# CONFIG_PATA_OPTIDMA is not set 683# CONFIG_PATA_OPTIDMA is not set
684# CONFIG_PATA_PDC2027X is not set
655# CONFIG_PATA_PDC_OLD is not set 685# CONFIG_PATA_PDC_OLD is not set
656# CONFIG_PATA_RADISYS is not set 686# CONFIG_PATA_RADISYS is not set
657# CONFIG_PATA_RDC is not set 687# CONFIG_PATA_RDC is not set
658# CONFIG_PATA_RZ1000 is not set 688# CONFIG_PATA_RZ1000 is not set
659# CONFIG_PATA_SC1200 is not set 689# CONFIG_PATA_SC1200 is not set
660# CONFIG_PATA_SERVERWORKS is not set 690# CONFIG_PATA_SERVERWORKS is not set
661# CONFIG_PATA_PDC2027X is not set
662# CONFIG_PATA_SIL680 is not set 691# CONFIG_PATA_SIL680 is not set
663# CONFIG_PATA_SIS is not set 692# CONFIG_PATA_SIS is not set
693# CONFIG_PATA_TOSHIBA is not set
664# CONFIG_PATA_VIA is not set 694# CONFIG_PATA_VIA is not set
665# CONFIG_PATA_WINBOND is not set 695# CONFIG_PATA_WINBOND is not set
666# CONFIG_PATA_PLATFORM is not set 696# CONFIG_PATA_PLATFORM is not set
@@ -719,8 +749,10 @@ CONFIG_R8169=y
719# CONFIG_NETDEV_10000 is not set 749# CONFIG_NETDEV_10000 is not set
720# CONFIG_TR is not set 750# CONFIG_TR is not set
721CONFIG_WLAN=y 751CONFIG_WLAN=y
722# CONFIG_WLAN_PRE80211 is not set 752# CONFIG_ATMEL is not set
723# CONFIG_WLAN_80211 is not set 753# CONFIG_PRISM54 is not set
754# CONFIG_USB_ZD1201 is not set
755# CONFIG_HOSTAP is not set
724 756
725# 757#
726# Enable WiMAX (Networking options) to see the WiMAX drivers 758# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -743,6 +775,7 @@ CONFIG_WLAN=y
743# CONFIG_NETCONSOLE is not set 775# CONFIG_NETCONSOLE is not set
744# CONFIG_NETPOLL is not set 776# CONFIG_NETPOLL is not set
745# CONFIG_NET_POLL_CONTROLLER is not set 777# CONFIG_NET_POLL_CONTROLLER is not set
778# CONFIG_VMXNET3 is not set
746# CONFIG_ISDN is not set 779# CONFIG_ISDN is not set
747# CONFIG_PHONE is not set 780# CONFIG_PHONE is not set
748 781
@@ -752,6 +785,7 @@ CONFIG_WLAN=y
752CONFIG_INPUT=y 785CONFIG_INPUT=y
753CONFIG_INPUT_FF_MEMLESS=m 786CONFIG_INPUT_FF_MEMLESS=m
754# CONFIG_INPUT_POLLDEV is not set 787# CONFIG_INPUT_POLLDEV is not set
788# CONFIG_INPUT_SPARSEKMAP is not set
755 789
756# 790#
757# Userland interfaces 791# Userland interfaces
@@ -874,11 +908,6 @@ CONFIG_I2C_ALGOPCA=y
874# CONFIG_I2C_TINY_USB is not set 908# CONFIG_I2C_TINY_USB is not set
875 909
876# 910#
877# Graphics adapter I2C/DDC channel drivers
878#
879# CONFIG_I2C_VOODOO3 is not set
880
881#
882# Other I2C/SMBus bus drivers 911# Other I2C/SMBus bus drivers
883# 912#
884CONFIG_I2C_PCA_PLATFORM=y 913CONFIG_I2C_PCA_PLATFORM=y
@@ -887,7 +916,6 @@ CONFIG_I2C_PCA_PLATFORM=y
887# 916#
888# Miscellaneous I2C Chip support 917# Miscellaneous I2C Chip support
889# 918#
890# CONFIG_DS1682 is not set
891# CONFIG_SENSORS_TSL2550 is not set 919# CONFIG_SENSORS_TSL2550 is not set
892# CONFIG_I2C_DEBUG_CORE is not set 920# CONFIG_I2C_DEBUG_CORE is not set
893# CONFIG_I2C_DEBUG_ALGO is not set 921# CONFIG_I2C_DEBUG_ALGO is not set
@@ -916,15 +944,18 @@ CONFIG_SSB_POSSIBLE=y
916# 944#
917# CONFIG_MFD_CORE is not set 945# CONFIG_MFD_CORE is not set
918CONFIG_MFD_SM501=y 946CONFIG_MFD_SM501=y
947# CONFIG_MFD_SH_MOBILE_SDHI is not set
919# CONFIG_HTC_PASIC3 is not set 948# CONFIG_HTC_PASIC3 is not set
920# CONFIG_TWL4030_CORE is not set 949# CONFIG_TWL4030_CORE is not set
921# CONFIG_MFD_TMIO is not set 950# CONFIG_MFD_TMIO is not set
922# CONFIG_PMIC_DA903X is not set 951# CONFIG_PMIC_DA903X is not set
952# CONFIG_PMIC_ADP5520 is not set
923# CONFIG_MFD_WM8400 is not set 953# CONFIG_MFD_WM8400 is not set
924# CONFIG_MFD_WM831X is not set 954# CONFIG_MFD_WM831X is not set
925# CONFIG_MFD_WM8350_I2C is not set 955# CONFIG_MFD_WM8350_I2C is not set
926# CONFIG_MFD_PCF50633 is not set 956# CONFIG_MFD_PCF50633 is not set
927# CONFIG_AB3100_CORE is not set 957# CONFIG_AB3100_CORE is not set
958# CONFIG_MFD_88PM8607 is not set
928# CONFIG_REGULATOR is not set 959# CONFIG_REGULATOR is not set
929# CONFIG_MEDIA_SUPPORT is not set 960# CONFIG_MEDIA_SUPPORT is not set
930 961
@@ -1205,6 +1236,7 @@ CONFIG_RTC_DRV_RS5C372=y
1205# CONFIG_RTC_DRV_PCF8563 is not set 1236# CONFIG_RTC_DRV_PCF8563 is not set
1206# CONFIG_RTC_DRV_PCF8583 is not set 1237# CONFIG_RTC_DRV_PCF8583 is not set
1207# CONFIG_RTC_DRV_M41T80 is not set 1238# CONFIG_RTC_DRV_M41T80 is not set
1239# CONFIG_RTC_DRV_BQ32K is not set
1208# CONFIG_RTC_DRV_S35390A is not set 1240# CONFIG_RTC_DRV_S35390A is not set
1209# CONFIG_RTC_DRV_FM3130 is not set 1241# CONFIG_RTC_DRV_FM3130 is not set
1210# CONFIG_RTC_DRV_RX8581 is not set 1242# CONFIG_RTC_DRV_RX8581 is not set
@@ -1225,7 +1257,9 @@ CONFIG_RTC_DRV_RS5C372=y
1225# CONFIG_RTC_DRV_M48T86 is not set 1257# CONFIG_RTC_DRV_M48T86 is not set
1226# CONFIG_RTC_DRV_M48T35 is not set 1258# CONFIG_RTC_DRV_M48T35 is not set
1227# CONFIG_RTC_DRV_M48T59 is not set 1259# CONFIG_RTC_DRV_M48T59 is not set
1260# CONFIG_RTC_DRV_MSM6242 is not set
1228# CONFIG_RTC_DRV_BQ4802 is not set 1261# CONFIG_RTC_DRV_BQ4802 is not set
1262# CONFIG_RTC_DRV_RP5C01 is not set
1229# CONFIG_RTC_DRV_V3020 is not set 1263# CONFIG_RTC_DRV_V3020 is not set
1230 1264
1231# 1265#
@@ -1484,7 +1518,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1484CONFIG_HAVE_ARCH_KGDB=y 1518CONFIG_HAVE_ARCH_KGDB=y
1485# CONFIG_KGDB is not set 1519# CONFIG_KGDB is not set
1486# CONFIG_SH_STANDARD_BIOS is not set 1520# CONFIG_SH_STANDARD_BIOS is not set
1487# CONFIG_EARLY_SCIF_CONSOLE is not set
1488# CONFIG_STACK_DEBUG is not set 1521# CONFIG_STACK_DEBUG is not set
1489# CONFIG_DEBUG_STACK_USAGE is not set 1522# CONFIG_DEBUG_STACK_USAGE is not set
1490# CONFIG_4KSTACKS is not set 1523# CONFIG_4KSTACKS is not set
@@ -1498,7 +1531,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1498# CONFIG_KEYS is not set 1531# CONFIG_KEYS is not set
1499# CONFIG_SECURITY is not set 1532# CONFIG_SECURITY is not set
1500# CONFIG_SECURITYFS is not set 1533# CONFIG_SECURITYFS is not set
1501# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1534# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1535# CONFIG_DEFAULT_SECURITY_SMACK is not set
1536# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1537CONFIG_DEFAULT_SECURITY_DAC=y
1538CONFIG_DEFAULT_SECURITY=""
1502CONFIG_CRYPTO=y 1539CONFIG_CRYPTO=y
1503 1540
1504# 1541#
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig
index 92115e612750..45441c0ab30c 100644
--- a/arch/sh/configs/shmin_defconfig
+++ b/arch/sh/configs/shmin_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:27:17 2009 4# Mon Jan 4 15:10:09 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -28,6 +28,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
28CONFIG_ARCH_NO_VIRT_TO_BUS=y 28CONFIG_ARCH_NO_VIRT_TO_BUS=y
29CONFIG_ARCH_HAS_DEFAULT_IDLE=y 29CONFIG_ARCH_HAS_DEFAULT_IDLE=y
30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 30CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
31CONFIG_DMA_NONCOHERENT=y
31CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
32CONFIG_CONSTRUCTORS=y 33CONFIG_CONSTRUCTORS=y
33 34
@@ -57,6 +58,7 @@ CONFIG_KERNEL_GZIP=y
57# 58#
58CONFIG_TREE_RCU=y 59CONFIG_TREE_RCU=y
59# CONFIG_TREE_PREEMPT_RCU is not set 60# CONFIG_TREE_PREEMPT_RCU is not set
61# CONFIG_TINY_RCU is not set
60# CONFIG_RCU_TRACE is not set 62# CONFIG_RCU_TRACE is not set
61CONFIG_RCU_FANOUT=32 63CONFIG_RCU_FANOUT=32
62# CONFIG_RCU_FANOUT_EXACT is not set 64# CONFIG_RCU_FANOUT_EXACT is not set
@@ -88,6 +90,7 @@ CONFIG_EVENTFD=y
88# CONFIG_SHMEM is not set 90# CONFIG_SHMEM is not set
89CONFIG_AIO=y 91CONFIG_AIO=y
90CONFIG_HAVE_PERF_EVENTS=y 92CONFIG_HAVE_PERF_EVENTS=y
93CONFIG_PERF_USE_VMALLOC=y
91 94
92# 95#
93# Kernel Performance Events And Counters 96# Kernel Performance Events And Counters
@@ -105,6 +108,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
105CONFIG_HAVE_KPROBES=y 108CONFIG_HAVE_KPROBES=y
106CONFIG_HAVE_KRETPROBES=y 109CONFIG_HAVE_KRETPROBES=y
107CONFIG_HAVE_ARCH_TRACEHOOK=y 110CONFIG_HAVE_ARCH_TRACEHOOK=y
111CONFIG_HAVE_DMA_ATTRS=y
108CONFIG_HAVE_CLK=y 112CONFIG_HAVE_CLK=y
109CONFIG_HAVE_DMA_API_DEBUG=y 113CONFIG_HAVE_DMA_API_DEBUG=y
110 114
@@ -124,14 +128,41 @@ CONFIG_LBDAF=y
124# IO Schedulers 128# IO Schedulers
125# 129#
126CONFIG_IOSCHED_NOOP=y 130CONFIG_IOSCHED_NOOP=y
127# CONFIG_IOSCHED_AS is not set
128# CONFIG_IOSCHED_DEADLINE is not set 131# CONFIG_IOSCHED_DEADLINE is not set
129# CONFIG_IOSCHED_CFQ is not set 132# CONFIG_IOSCHED_CFQ is not set
130# CONFIG_DEFAULT_AS is not set
131# CONFIG_DEFAULT_DEADLINE is not set 133# CONFIG_DEFAULT_DEADLINE is not set
132# CONFIG_DEFAULT_CFQ is not set 134# CONFIG_DEFAULT_CFQ is not set
133CONFIG_DEFAULT_NOOP=y 135CONFIG_DEFAULT_NOOP=y
134CONFIG_DEFAULT_IOSCHED="noop" 136CONFIG_DEFAULT_IOSCHED="noop"
137# CONFIG_INLINE_SPIN_TRYLOCK is not set
138# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
139# CONFIG_INLINE_SPIN_LOCK is not set
140# CONFIG_INLINE_SPIN_LOCK_BH is not set
141# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
142# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
143CONFIG_INLINE_SPIN_UNLOCK=y
144# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
145CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
146# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
147# CONFIG_INLINE_READ_TRYLOCK is not set
148# CONFIG_INLINE_READ_LOCK is not set
149# CONFIG_INLINE_READ_LOCK_BH is not set
150# CONFIG_INLINE_READ_LOCK_IRQ is not set
151# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
152CONFIG_INLINE_READ_UNLOCK=y
153# CONFIG_INLINE_READ_UNLOCK_BH is not set
154CONFIG_INLINE_READ_UNLOCK_IRQ=y
155# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
156# CONFIG_INLINE_WRITE_TRYLOCK is not set
157# CONFIG_INLINE_WRITE_LOCK is not set
158# CONFIG_INLINE_WRITE_LOCK_BH is not set
159# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
160# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
161CONFIG_INLINE_WRITE_UNLOCK=y
162# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
163CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
164# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
165# CONFIG_MUTEX_SPIN_ON_OWNER is not set
135# CONFIG_FREEZER is not set 166# CONFIG_FREEZER is not set
136 167
137# 168#
@@ -207,8 +238,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
207# CONFIG_PHYS_ADDR_T_64BIT is not set 238# CONFIG_PHYS_ADDR_T_64BIT is not set
208CONFIG_ZONE_DMA_FLAG=0 239CONFIG_ZONE_DMA_FLAG=0
209CONFIG_NR_QUICK=2 240CONFIG_NR_QUICK=2
210CONFIG_HAVE_MLOCK=y
211CONFIG_HAVE_MLOCKED_PAGE_BIT=y
212# CONFIG_KSM is not set 241# CONFIG_KSM is not set
213CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 242CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
214 243
@@ -387,9 +416,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
387# CONFIG_AF_RXRPC is not set 416# CONFIG_AF_RXRPC is not set
388CONFIG_WIRELESS=y 417CONFIG_WIRELESS=y
389# CONFIG_CFG80211 is not set 418# CONFIG_CFG80211 is not set
390CONFIG_CFG80211_DEFAULT_PS_VALUE=0
391# CONFIG_WIRELESS_OLD_REGULATORY is not set
392# CONFIG_WIRELESS_EXT is not set
393# CONFIG_LIB80211 is not set 419# CONFIG_LIB80211 is not set
394 420
395# 421#
@@ -495,6 +521,10 @@ CONFIG_BLK_DEV=y
495# CONFIG_BLK_DEV_COW_COMMON is not set 521# CONFIG_BLK_DEV_COW_COMMON is not set
496CONFIG_BLK_DEV_LOOP=y 522CONFIG_BLK_DEV_LOOP=y
497# CONFIG_BLK_DEV_CRYPTOLOOP is not set 523# CONFIG_BLK_DEV_CRYPTOLOOP is not set
524
525#
526# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
527#
498# CONFIG_BLK_DEV_NBD is not set 528# CONFIG_BLK_DEV_NBD is not set
499# CONFIG_BLK_DEV_RAM is not set 529# CONFIG_BLK_DEV_RAM is not set
500# CONFIG_CDROM_PKTCDVD is not set 530# CONFIG_CDROM_PKTCDVD is not set
@@ -546,11 +576,11 @@ CONFIG_NET_ETHERNET=y
546# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 576# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
547# CONFIG_B44 is not set 577# CONFIG_B44 is not set
548# CONFIG_KS8842 is not set 578# CONFIG_KS8842 is not set
579# CONFIG_KS8851_MLL is not set
549CONFIG_NETDEV_1000=y 580CONFIG_NETDEV_1000=y
550CONFIG_NETDEV_10000=y 581CONFIG_NETDEV_10000=y
551CONFIG_WLAN=y 582CONFIG_WLAN=y
552# CONFIG_WLAN_PRE80211 is not set 583# CONFIG_HOSTAP is not set
553# CONFIG_WLAN_80211 is not set
554 584
555# 585#
556# Enable WiMAX (Networking options) to see the WiMAX drivers 586# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -629,6 +659,7 @@ CONFIG_SSB_POSSIBLE=y
629# 659#
630# CONFIG_MFD_CORE is not set 660# CONFIG_MFD_CORE is not set
631# CONFIG_MFD_SM501 is not set 661# CONFIG_MFD_SM501 is not set
662# CONFIG_MFD_SH_MOBILE_SDHI is not set
632# CONFIG_HTC_PASIC3 is not set 663# CONFIG_HTC_PASIC3 is not set
633# CONFIG_MFD_TMIO is not set 664# CONFIG_MFD_TMIO is not set
634# CONFIG_REGULATOR is not set 665# CONFIG_REGULATOR is not set
@@ -688,6 +719,7 @@ CONFIG_RTC_LIB=y
688# CONFIG_EXT2_FS is not set 719# CONFIG_EXT2_FS is not set
689# CONFIG_EXT3_FS is not set 720# CONFIG_EXT3_FS is not set
690# CONFIG_EXT4_FS is not set 721# CONFIG_EXT4_FS is not set
722CONFIG_EXT4_USE_FOR_EXT23=y
691# CONFIG_REISERFS_FS is not set 723# CONFIG_REISERFS_FS is not set
692# CONFIG_JFS_FS is not set 724# CONFIG_JFS_FS is not set
693# CONFIG_FS_POSIX_ACL is not set 725# CONFIG_FS_POSIX_ACL is not set
@@ -731,7 +763,6 @@ CONFIG_PROC_FS=y
731CONFIG_PROC_SYSCTL=y 763CONFIG_PROC_SYSCTL=y
732CONFIG_PROC_PAGE_MONITOR=y 764CONFIG_PROC_PAGE_MONITOR=y
733# CONFIG_SYSFS is not set 765# CONFIG_SYSFS is not set
734# CONFIG_HUGETLBFS is not set
735# CONFIG_HUGETLB_PAGE is not set 766# CONFIG_HUGETLB_PAGE is not set
736CONFIG_MISC_FILESYSTEMS=y 767CONFIG_MISC_FILESYSTEMS=y
737# CONFIG_ADFS_FS is not set 768# CONFIG_ADFS_FS is not set
@@ -794,6 +825,7 @@ CONFIG_FRAME_WARN=1024
794# CONFIG_DEBUG_MEMORY_INIT is not set 825# CONFIG_DEBUG_MEMORY_INIT is not set
795# CONFIG_RCU_CPU_STALL_DETECTOR is not set 826# CONFIG_RCU_CPU_STALL_DETECTOR is not set
796# CONFIG_LATENCYTOP is not set 827# CONFIG_LATENCYTOP is not set
828# CONFIG_SYSCTL_SYSCALL_CHECK is not set
797CONFIG_HAVE_FUNCTION_TRACER=y 829CONFIG_HAVE_FUNCTION_TRACER=y
798CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 830CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
799CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 831CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -806,8 +838,6 @@ CONFIG_TRACING_SUPPORT=y
806# CONFIG_SAMPLES is not set 838# CONFIG_SAMPLES is not set
807CONFIG_HAVE_ARCH_KGDB=y 839CONFIG_HAVE_ARCH_KGDB=y
808CONFIG_SH_STANDARD_BIOS=y 840CONFIG_SH_STANDARD_BIOS=y
809# CONFIG_EARLY_SCIF_CONSOLE is not set
810CONFIG_EARLY_PRINTK=y
811# CONFIG_DWARF_UNWINDER is not set 841# CONFIG_DWARF_UNWINDER is not set
812 842
813# 843#
@@ -815,7 +845,11 @@ CONFIG_EARLY_PRINTK=y
815# 845#
816# CONFIG_KEYS is not set 846# CONFIG_KEYS is not set
817# CONFIG_SECURITYFS is not set 847# CONFIG_SECURITYFS is not set
818# CONFIG_SECURITY_FILE_CAPABILITIES is not set 848# CONFIG_DEFAULT_SECURITY_SELINUX is not set
849# CONFIG_DEFAULT_SECURITY_SMACK is not set
850# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
851CONFIG_DEFAULT_SECURITY_DAC=y
852CONFIG_DEFAULT_SECURITY=""
819CONFIG_CRYPTO=y 853CONFIG_CRYPTO=y
820 854
821# 855#
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig
index e3858d757d5e..ecf50cda4cbc 100644
--- a/arch/sh/configs/shx3_defconfig
+++ b/arch/sh/configs/shx3_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:29:26 2009 4# Mon Jan 4 15:10:45 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -22,6 +22,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
22CONFIG_GENERIC_LOCKBREAK=y 22CONFIG_GENERIC_LOCKBREAK=y
23# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 23# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
24CONFIG_ARCH_HIBERNATION_POSSIBLE=y 24CONFIG_ARCH_HIBERNATION_POSSIBLE=y
25CONFIG_SYS_SUPPORTS_HUGETLBFS=y
25CONFIG_SYS_SUPPORTS_SMP=y 26CONFIG_SYS_SUPPORTS_SMP=y
26CONFIG_SYS_SUPPORTS_NUMA=y 27CONFIG_SYS_SUPPORTS_NUMA=y
27CONFIG_SYS_SUPPORTS_TMU=y 28CONFIG_SYS_SUPPORTS_TMU=y
@@ -32,6 +33,8 @@ CONFIG_LOCKDEP_SUPPORT=y
32CONFIG_ARCH_NO_VIRT_TO_BUS=y 33CONFIG_ARCH_NO_VIRT_TO_BUS=y
33CONFIG_ARCH_HAS_DEFAULT_IDLE=y 34CONFIG_ARCH_HAS_DEFAULT_IDLE=y
34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 35CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
36CONFIG_DMA_COHERENT=y
37# CONFIG_DMA_NONCOHERENT is not set
35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 38CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
36CONFIG_CONSTRUCTORS=y 39CONFIG_CONSTRUCTORS=y
37 40
@@ -66,6 +69,7 @@ CONFIG_AUDIT_TREE=y
66# 69#
67CONFIG_TREE_RCU=y 70CONFIG_TREE_RCU=y
68# CONFIG_TREE_PREEMPT_RCU is not set 71# CONFIG_TREE_PREEMPT_RCU is not set
72# CONFIG_TINY_RCU is not set
69CONFIG_RCU_TRACE=y 73CONFIG_RCU_TRACE=y
70CONFIG_RCU_FANOUT=32 74CONFIG_RCU_FANOUT=32
71# CONFIG_RCU_FANOUT_EXACT is not set 75# CONFIG_RCU_FANOUT_EXACT is not set
@@ -121,6 +125,7 @@ CONFIG_EVENTFD=y
121CONFIG_SHMEM=y 125CONFIG_SHMEM=y
122CONFIG_AIO=y 126CONFIG_AIO=y
123CONFIG_HAVE_PERF_EVENTS=y 127CONFIG_HAVE_PERF_EVENTS=y
128CONFIG_PERF_USE_VMALLOC=y
124 129
125# 130#
126# Kernel Performance Events And Counters 131# Kernel Performance Events And Counters
@@ -128,6 +133,7 @@ CONFIG_HAVE_PERF_EVENTS=y
128CONFIG_PERF_EVENTS=y 133CONFIG_PERF_EVENTS=y
129CONFIG_EVENT_PROFILE=y 134CONFIG_EVENT_PROFILE=y
130# CONFIG_PERF_COUNTERS is not set 135# CONFIG_PERF_COUNTERS is not set
136# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
131CONFIG_VM_EVENT_COUNTERS=y 137CONFIG_VM_EVENT_COUNTERS=y
132CONFIG_COMPAT_BRK=y 138CONFIG_COMPAT_BRK=y
133# CONFIG_SLAB is not set 139# CONFIG_SLAB is not set
@@ -143,6 +149,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
143CONFIG_HAVE_KPROBES=y 149CONFIG_HAVE_KPROBES=y
144CONFIG_HAVE_KRETPROBES=y 150CONFIG_HAVE_KRETPROBES=y
145CONFIG_HAVE_ARCH_TRACEHOOK=y 151CONFIG_HAVE_ARCH_TRACEHOOK=y
152CONFIG_HAVE_DMA_ATTRS=y
146CONFIG_USE_GENERIC_SMP_HELPERS=y 153CONFIG_USE_GENERIC_SMP_HELPERS=y
147CONFIG_HAVE_CLK=y 154CONFIG_HAVE_CLK=y
148CONFIG_HAVE_DMA_API_DEBUG=y 155CONFIG_HAVE_DMA_API_DEBUG=y
@@ -166,19 +173,48 @@ CONFIG_BLOCK=y
166CONFIG_LBDAF=y 173CONFIG_LBDAF=y
167# CONFIG_BLK_DEV_BSG is not set 174# CONFIG_BLK_DEV_BSG is not set
168# CONFIG_BLK_DEV_INTEGRITY is not set 175# CONFIG_BLK_DEV_INTEGRITY is not set
176# CONFIG_BLK_CGROUP is not set
169 177
170# 178#
171# IO Schedulers 179# IO Schedulers
172# 180#
173CONFIG_IOSCHED_NOOP=y 181CONFIG_IOSCHED_NOOP=y
174CONFIG_IOSCHED_AS=y
175CONFIG_IOSCHED_DEADLINE=y 182CONFIG_IOSCHED_DEADLINE=y
176CONFIG_IOSCHED_CFQ=y 183CONFIG_IOSCHED_CFQ=y
177CONFIG_DEFAULT_AS=y 184# CONFIG_CFQ_GROUP_IOSCHED is not set
178# CONFIG_DEFAULT_DEADLINE is not set 185# CONFIG_DEFAULT_DEADLINE is not set
179# CONFIG_DEFAULT_CFQ is not set 186CONFIG_DEFAULT_CFQ=y
180# CONFIG_DEFAULT_NOOP is not set 187# CONFIG_DEFAULT_NOOP is not set
181CONFIG_DEFAULT_IOSCHED="anticipatory" 188CONFIG_DEFAULT_IOSCHED="cfq"
189# CONFIG_INLINE_SPIN_TRYLOCK is not set
190# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
191# CONFIG_INLINE_SPIN_LOCK is not set
192# CONFIG_INLINE_SPIN_LOCK_BH is not set
193# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
194# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
195# CONFIG_INLINE_SPIN_UNLOCK is not set
196# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
197# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
198# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
199# CONFIG_INLINE_READ_TRYLOCK is not set
200# CONFIG_INLINE_READ_LOCK is not set
201# CONFIG_INLINE_READ_LOCK_BH is not set
202# CONFIG_INLINE_READ_LOCK_IRQ is not set
203# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
204# CONFIG_INLINE_READ_UNLOCK is not set
205# CONFIG_INLINE_READ_UNLOCK_BH is not set
206# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
207# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
208# CONFIG_INLINE_WRITE_TRYLOCK is not set
209# CONFIG_INLINE_WRITE_LOCK is not set
210# CONFIG_INLINE_WRITE_LOCK_BH is not set
211# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
212# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
213# CONFIG_INLINE_WRITE_UNLOCK is not set
214# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
215# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
216# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
217CONFIG_MUTEX_SPIN_ON_OWNER=y
182CONFIG_FREEZER=y 218CONFIG_FREEZER=y
183 219
184# 220#
@@ -233,6 +269,7 @@ CONFIG_FORCE_MAX_ZONEORDER=7
233CONFIG_MEMORY_START=0x0c000000 269CONFIG_MEMORY_START=0x0c000000
234CONFIG_MEMORY_SIZE=0x04000000 270CONFIG_MEMORY_SIZE=0x04000000
235CONFIG_29BIT=y 271CONFIG_29BIT=y
272# CONFIG_PMB_ENABLE is not set
236# CONFIG_X2TLB is not set 273# CONFIG_X2TLB is not set
237CONFIG_VSYSCALL=y 274CONFIG_VSYSCALL=y
238CONFIG_NUMA=y 275CONFIG_NUMA=y
@@ -271,10 +308,9 @@ CONFIG_MIGRATION=y
271# CONFIG_PHYS_ADDR_T_64BIT is not set 308# CONFIG_PHYS_ADDR_T_64BIT is not set
272CONFIG_ZONE_DMA_FLAG=0 309CONFIG_ZONE_DMA_FLAG=0
273CONFIG_NR_QUICK=2 310CONFIG_NR_QUICK=2
274CONFIG_HAVE_MLOCK=y
275CONFIG_HAVE_MLOCKED_PAGE_BIT=y
276# CONFIG_KSM is not set 311# CONFIG_KSM is not set
277CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 312CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
313CONFIG_SCHED_MC=y
278 314
279# 315#
280# Cache configuration 316# Cache configuration
@@ -449,6 +485,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
449CONFIG_INET6_XFRM_MODE_BEET=m 485CONFIG_INET6_XFRM_MODE_BEET=m
450# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 486# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
451CONFIG_IPV6_SIT=m 487CONFIG_IPV6_SIT=m
488# CONFIG_IPV6_SIT_6RD is not set
452CONFIG_IPV6_NDISC_NODETYPE=y 489CONFIG_IPV6_NDISC_NODETYPE=y
453# CONFIG_IPV6_TUNNEL is not set 490# CONFIG_IPV6_TUNNEL is not set
454# CONFIG_IPV6_MULTIPLE_TABLES is not set 491# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -496,7 +533,13 @@ CONFIG_CAN_VCAN=m
496# CONFIG_IRDA is not set 533# CONFIG_IRDA is not set
497# CONFIG_BT is not set 534# CONFIG_BT is not set
498# CONFIG_AF_RXRPC is not set 535# CONFIG_AF_RXRPC is not set
499# CONFIG_WIRELESS is not set 536CONFIG_WIRELESS=y
537# CONFIG_CFG80211 is not set
538# CONFIG_LIB80211 is not set
539
540#
541# CFG80211 needs to be enabled for MAC80211
542#
500# CONFIG_WIMAX is not set 543# CONFIG_WIMAX is not set
501# CONFIG_RFKILL is not set 544# CONFIG_RFKILL is not set
502# CONFIG_NET_9P is not set 545# CONFIG_NET_9P is not set
@@ -522,6 +565,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
522CONFIG_BLK_DEV=y 565CONFIG_BLK_DEV=y
523# CONFIG_BLK_DEV_COW_COMMON is not set 566# CONFIG_BLK_DEV_COW_COMMON is not set
524# CONFIG_BLK_DEV_LOOP is not set 567# CONFIG_BLK_DEV_LOOP is not set
568
569#
570# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
571#
525# CONFIG_BLK_DEV_NBD is not set 572# CONFIG_BLK_DEV_NBD is not set
526# CONFIG_BLK_DEV_UB is not set 573# CONFIG_BLK_DEV_UB is not set
527CONFIG_BLK_DEV_RAM=y 574CONFIG_BLK_DEV_RAM=y
@@ -532,9 +579,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
532# CONFIG_ATA_OVER_ETH is not set 579# CONFIG_ATA_OVER_ETH is not set
533# CONFIG_BLK_DEV_HD is not set 580# CONFIG_BLK_DEV_HD is not set
534CONFIG_MISC_DEVICES=y 581CONFIG_MISC_DEVICES=y
582# CONFIG_AD525X_DPOT is not set
535# CONFIG_ICS932S401 is not set 583# CONFIG_ICS932S401 is not set
536# CONFIG_ENCLOSURE_SERVICES is not set 584# CONFIG_ENCLOSURE_SERVICES is not set
537# CONFIG_ISL29003 is not set 585# CONFIG_ISL29003 is not set
586# CONFIG_DS1682 is not set
587# CONFIG_TI_DAC7512 is not set
538# CONFIG_C2PORT is not set 588# CONFIG_C2PORT is not set
539 589
540# 590#
@@ -624,11 +674,12 @@ CONFIG_SMC91X=y
624# CONFIG_B44 is not set 674# CONFIG_B44 is not set
625# CONFIG_KS8842 is not set 675# CONFIG_KS8842 is not set
626# CONFIG_KS8851 is not set 676# CONFIG_KS8851 is not set
677# CONFIG_KS8851_MLL is not set
627# CONFIG_NETDEV_1000 is not set 678# CONFIG_NETDEV_1000 is not set
628# CONFIG_NETDEV_10000 is not set 679# CONFIG_NETDEV_10000 is not set
629CONFIG_WLAN=y 680CONFIG_WLAN=y
630# CONFIG_WLAN_PRE80211 is not set 681# CONFIG_USB_ZD1201 is not set
631# CONFIG_WLAN_80211 is not set 682# CONFIG_HOSTAP is not set
632 683
633# 684#
634# Enable WiMAX (Networking options) to see the WiMAX drivers 685# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -726,7 +777,6 @@ CONFIG_I2C_HELPER_AUTO=y
726# 777#
727# Miscellaneous I2C Chip support 778# Miscellaneous I2C Chip support
728# 779#
729# CONFIG_DS1682 is not set
730# CONFIG_SENSORS_TSL2550 is not set 780# CONFIG_SENSORS_TSL2550 is not set
731# CONFIG_I2C_DEBUG_CORE is not set 781# CONFIG_I2C_DEBUG_CORE is not set
732# CONFIG_I2C_DEBUG_ALGO is not set 782# CONFIG_I2C_DEBUG_ALGO is not set
@@ -740,7 +790,10 @@ CONFIG_SPI_MASTER=y
740# SPI Master Controller Drivers 790# SPI Master Controller Drivers
741# 791#
742# CONFIG_SPI_BITBANG is not set 792# CONFIG_SPI_BITBANG is not set
793# CONFIG_SPI_SH_MSIOF is not set
743# CONFIG_SPI_SH_SCI is not set 794# CONFIG_SPI_SH_SCI is not set
795# CONFIG_SPI_XILINX is not set
796# CONFIG_SPI_DESIGNWARE is not set
744 797
745# 798#
746# SPI Protocol Masters 799# SPI Protocol Masters
@@ -781,15 +834,16 @@ CONFIG_SSB_POSSIBLE=y
781# 834#
782# CONFIG_MFD_CORE is not set 835# CONFIG_MFD_CORE is not set
783# CONFIG_MFD_SM501 is not set 836# CONFIG_MFD_SM501 is not set
837# CONFIG_MFD_SH_MOBILE_SDHI is not set
784# CONFIG_HTC_PASIC3 is not set 838# CONFIG_HTC_PASIC3 is not set
785# CONFIG_MFD_TMIO is not set 839# CONFIG_MFD_TMIO is not set
786# CONFIG_MFD_WM8400 is not set 840# CONFIG_MFD_WM8400 is not set
787# CONFIG_MFD_WM831X is not set
788# CONFIG_MFD_WM8350_I2C is not set 841# CONFIG_MFD_WM8350_I2C is not set
789# CONFIG_MFD_PCF50633 is not set 842# CONFIG_MFD_PCF50633 is not set
790# CONFIG_MFD_MC13783 is not set 843# CONFIG_MFD_MC13783 is not set
791# CONFIG_AB3100_CORE is not set 844# CONFIG_AB3100_CORE is not set
792# CONFIG_EZX_PCAP is not set 845# CONFIG_EZX_PCAP is not set
846# CONFIG_AB4500_CORE is not set
793# CONFIG_REGULATOR is not set 847# CONFIG_REGULATOR is not set
794# CONFIG_MEDIA_SUPPORT is not set 848# CONFIG_MEDIA_SUPPORT is not set
795 849
@@ -924,10 +978,12 @@ CONFIG_USB_GADGET_DUALSPEED=y
924# CONFIG_USB_ETH is not set 978# CONFIG_USB_ETH is not set
925# CONFIG_USB_GADGETFS is not set 979# CONFIG_USB_GADGETFS is not set
926# CONFIG_USB_FILE_STORAGE is not set 980# CONFIG_USB_FILE_STORAGE is not set
981# CONFIG_USB_MASS_STORAGE is not set
927# CONFIG_USB_G_SERIAL is not set 982# CONFIG_USB_G_SERIAL is not set
928# CONFIG_USB_MIDI_GADGET is not set 983# CONFIG_USB_MIDI_GADGET is not set
929# CONFIG_USB_G_PRINTER is not set 984# CONFIG_USB_G_PRINTER is not set
930# CONFIG_USB_CDC_COMPOSITE is not set 985# CONFIG_USB_CDC_COMPOSITE is not set
986# CONFIG_USB_G_MULTI is not set
931 987
932# 988#
933# OTG and related infrastructure 989# OTG and related infrastructure
@@ -965,6 +1021,7 @@ CONFIG_RTC_INTF_DEV=y
965# CONFIG_RTC_DRV_PCF8563 is not set 1021# CONFIG_RTC_DRV_PCF8563 is not set
966# CONFIG_RTC_DRV_PCF8583 is not set 1022# CONFIG_RTC_DRV_PCF8583 is not set
967# CONFIG_RTC_DRV_M41T80 is not set 1023# CONFIG_RTC_DRV_M41T80 is not set
1024# CONFIG_RTC_DRV_BQ32K is not set
968# CONFIG_RTC_DRV_S35390A is not set 1025# CONFIG_RTC_DRV_S35390A is not set
969# CONFIG_RTC_DRV_FM3130 is not set 1026# CONFIG_RTC_DRV_FM3130 is not set
970# CONFIG_RTC_DRV_RX8581 is not set 1027# CONFIG_RTC_DRV_RX8581 is not set
@@ -993,7 +1050,9 @@ CONFIG_RTC_INTF_DEV=y
993# CONFIG_RTC_DRV_M48T86 is not set 1050# CONFIG_RTC_DRV_M48T86 is not set
994# CONFIG_RTC_DRV_M48T35 is not set 1051# CONFIG_RTC_DRV_M48T35 is not set
995# CONFIG_RTC_DRV_M48T59 is not set 1052# CONFIG_RTC_DRV_M48T59 is not set
1053# CONFIG_RTC_DRV_MSM6242 is not set
996# CONFIG_RTC_DRV_BQ4802 is not set 1054# CONFIG_RTC_DRV_BQ4802 is not set
1055# CONFIG_RTC_DRV_RP5C01 is not set
997# CONFIG_RTC_DRV_V3020 is not set 1056# CONFIG_RTC_DRV_V3020 is not set
998 1057
999# 1058#
@@ -1244,8 +1303,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1244CONFIG_HAVE_ARCH_KGDB=y 1303CONFIG_HAVE_ARCH_KGDB=y
1245# CONFIG_KGDB is not set 1304# CONFIG_KGDB is not set
1246CONFIG_SH_STANDARD_BIOS=y 1305CONFIG_SH_STANDARD_BIOS=y
1247# CONFIG_EARLY_SCIF_CONSOLE is not set
1248CONFIG_EARLY_PRINTK=y
1249# CONFIG_STACK_DEBUG is not set 1306# CONFIG_STACK_DEBUG is not set
1250CONFIG_DEBUG_STACK_USAGE=y 1307CONFIG_DEBUG_STACK_USAGE=y
1251CONFIG_DUMP_CODE=y 1308CONFIG_DUMP_CODE=y
@@ -1258,7 +1315,11 @@ CONFIG_DUMP_CODE=y
1258# CONFIG_KEYS is not set 1315# CONFIG_KEYS is not set
1259# CONFIG_SECURITY is not set 1316# CONFIG_SECURITY is not set
1260# CONFIG_SECURITYFS is not set 1317# CONFIG_SECURITYFS is not set
1261# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1318# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1319# CONFIG_DEFAULT_SECURITY_SMACK is not set
1320# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1321CONFIG_DEFAULT_SECURITY_DAC=y
1322CONFIG_DEFAULT_SECURITY=""
1262CONFIG_CRYPTO=y 1323CONFIG_CRYPTO=y
1263 1324
1264# 1325#
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig
index cb919a0de4b2..98352d757851 100644
--- a/arch/sh/configs/snapgear_defconfig
+++ b/arch/sh/configs/snapgear_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:33:00 2009 4# Mon Jan 4 15:14:18 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -59,6 +61,7 @@ CONFIG_KERNEL_GZIP=y
59# 61#
60CONFIG_TREE_RCU=y 62CONFIG_TREE_RCU=y
61# CONFIG_TREE_PREEMPT_RCU is not set 63# CONFIG_TREE_PREEMPT_RCU is not set
64# CONFIG_TINY_RCU is not set
62# CONFIG_RCU_TRACE is not set 65# CONFIG_RCU_TRACE is not set
63CONFIG_RCU_FANOUT=32 66CONFIG_RCU_FANOUT=32
64# CONFIG_RCU_FANOUT_EXACT is not set 67# CONFIG_RCU_FANOUT_EXACT is not set
@@ -97,6 +100,7 @@ CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 100CONFIG_SHMEM=y
98CONFIG_AIO=y 101CONFIG_AIO=y
99CONFIG_HAVE_PERF_EVENTS=y 102CONFIG_HAVE_PERF_EVENTS=y
103CONFIG_PERF_USE_VMALLOC=y
100 104
101# 105#
102# Kernel Performance Events And Counters 106# Kernel Performance Events And Counters
@@ -115,6 +119,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y 121CONFIG_HAVE_ARCH_TRACEHOOK=y
122CONFIG_HAVE_DMA_ATTRS=y
118CONFIG_HAVE_CLK=y 123CONFIG_HAVE_CLK=y
119CONFIG_HAVE_DMA_API_DEBUG=y 124CONFIG_HAVE_DMA_API_DEBUG=y
120 125
@@ -136,14 +141,41 @@ CONFIG_LBDAF=y
136# IO Schedulers 141# IO Schedulers
137# 142#
138CONFIG_IOSCHED_NOOP=y 143CONFIG_IOSCHED_NOOP=y
139CONFIG_IOSCHED_AS=y
140CONFIG_IOSCHED_DEADLINE=y 144CONFIG_IOSCHED_DEADLINE=y
141CONFIG_IOSCHED_CFQ=y 145CONFIG_IOSCHED_CFQ=y
142CONFIG_DEFAULT_AS=y
143# CONFIG_DEFAULT_DEADLINE is not set 146# CONFIG_DEFAULT_DEADLINE is not set
144# CONFIG_DEFAULT_CFQ is not set 147CONFIG_DEFAULT_CFQ=y
145# CONFIG_DEFAULT_NOOP is not set 148# CONFIG_DEFAULT_NOOP is not set
146CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="cfq"
150# CONFIG_INLINE_SPIN_TRYLOCK is not set
151# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
152# CONFIG_INLINE_SPIN_LOCK is not set
153# CONFIG_INLINE_SPIN_LOCK_BH is not set
154# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
155# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
156CONFIG_INLINE_SPIN_UNLOCK=y
157# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
158CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
159# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
160# CONFIG_INLINE_READ_TRYLOCK is not set
161# CONFIG_INLINE_READ_LOCK is not set
162# CONFIG_INLINE_READ_LOCK_BH is not set
163# CONFIG_INLINE_READ_LOCK_IRQ is not set
164# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
165CONFIG_INLINE_READ_UNLOCK=y
166# CONFIG_INLINE_READ_UNLOCK_BH is not set
167CONFIG_INLINE_READ_UNLOCK_IRQ=y
168# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
169# CONFIG_INLINE_WRITE_TRYLOCK is not set
170# CONFIG_INLINE_WRITE_LOCK is not set
171# CONFIG_INLINE_WRITE_LOCK_BH is not set
172# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
173# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
174CONFIG_INLINE_WRITE_UNLOCK=y
175# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
176CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
177# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
178# CONFIG_MUTEX_SPIN_ON_OWNER is not set
147# CONFIG_FREEZER is not set 179# CONFIG_FREEZER is not set
148 180
149# 181#
@@ -219,8 +251,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
219# CONFIG_PHYS_ADDR_T_64BIT is not set 251# CONFIG_PHYS_ADDR_T_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=0 252CONFIG_ZONE_DMA_FLAG=0
221CONFIG_NR_QUICK=2 253CONFIG_NR_QUICK=2
222CONFIG_HAVE_MLOCK=y
223CONFIG_HAVE_MLOCKED_PAGE_BIT=y
224# CONFIG_KSM is not set 254# CONFIG_KSM is not set
225CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 255CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
226 256
@@ -272,9 +302,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
272# 302#
273# DMA support 303# DMA support
274# 304#
275CONFIG_SH_DMA_API=y
276CONFIG_SH_DMA=y 305CONFIG_SH_DMA=y
277CONFIG_SH_DMA_IRQ_MULTI=y 306CONFIG_SH_DMA_IRQ_MULTI=y
307CONFIG_SH_DMA_API=y
278CONFIG_NR_ONCHIP_DMA_CHANNELS=8 308CONFIG_NR_ONCHIP_DMA_CHANNELS=8
279# CONFIG_NR_DMA_CHANNELS_BOOL is not set 309# CONFIG_NR_DMA_CHANNELS_BOOL is not set
280 310
@@ -313,7 +343,6 @@ CONFIG_GUSA=y
313CONFIG_ZERO_PAGE_OFFSET=0x00001000 343CONFIG_ZERO_PAGE_OFFSET=0x00001000
314CONFIG_BOOT_LINK_OFFSET=0x00800000 344CONFIG_BOOT_LINK_OFFSET=0x00800000
315CONFIG_ENTRY_OFFSET=0x00001000 345CONFIG_ENTRY_OFFSET=0x00001000
316# CONFIG_UBC_WAKEUP is not set
317# CONFIG_CMDLINE_OVERWRITE is not set 346# CONFIG_CMDLINE_OVERWRITE is not set
318# CONFIG_CMDLINE_EXTEND is not set 347# CONFIG_CMDLINE_EXTEND is not set
319 348
@@ -321,7 +350,6 @@ CONFIG_ENTRY_OFFSET=0x00001000
321# Bus options 350# Bus options
322# 351#
323CONFIG_PCI=y 352CONFIG_PCI=y
324CONFIG_SH_PCIDMA_NONCOHERENT=y
325# CONFIG_PCIEPORTBUS is not set 353# CONFIG_PCIEPORTBUS is not set
326# CONFIG_ARCH_SUPPORTS_MSI is not set 354# CONFIG_ARCH_SUPPORTS_MSI is not set
327CONFIG_PCI_LEGACY=y 355CONFIG_PCI_LEGACY=y
@@ -407,9 +435,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
407# CONFIG_AF_RXRPC is not set 435# CONFIG_AF_RXRPC is not set
408CONFIG_WIRELESS=y 436CONFIG_WIRELESS=y
409# CONFIG_CFG80211 is not set 437# CONFIG_CFG80211 is not set
410CONFIG_CFG80211_DEFAULT_PS_VALUE=0
411# CONFIG_WIRELESS_OLD_REGULATORY is not set
412# CONFIG_WIRELESS_EXT is not set
413# CONFIG_LIB80211 is not set 438# CONFIG_LIB80211 is not set
414 439
415# 440#
@@ -524,6 +549,10 @@ CONFIG_BLK_DEV=y
524# CONFIG_BLK_DEV_UMEM is not set 549# CONFIG_BLK_DEV_UMEM is not set
525# CONFIG_BLK_DEV_COW_COMMON is not set 550# CONFIG_BLK_DEV_COW_COMMON is not set
526# CONFIG_BLK_DEV_LOOP is not set 551# CONFIG_BLK_DEV_LOOP is not set
552
553#
554# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
555#
527# CONFIG_BLK_DEV_NBD is not set 556# CONFIG_BLK_DEV_NBD is not set
528# CONFIG_BLK_DEV_SX8 is not set 557# CONFIG_BLK_DEV_SX8 is not set
529CONFIG_BLK_DEV_RAM=y 558CONFIG_BLK_DEV_RAM=y
@@ -616,6 +645,7 @@ CONFIG_8139TOO_PIO=y
616# CONFIG_SUNDANCE is not set 645# CONFIG_SUNDANCE is not set
617# CONFIG_TLAN is not set 646# CONFIG_TLAN is not set
618# CONFIG_KS8842 is not set 647# CONFIG_KS8842 is not set
648# CONFIG_KS8851_MLL is not set
619# CONFIG_VIA_RHINE is not set 649# CONFIG_VIA_RHINE is not set
620# CONFIG_SC92031 is not set 650# CONFIG_SC92031 is not set
621# CONFIG_ATL2 is not set 651# CONFIG_ATL2 is not set
@@ -623,8 +653,9 @@ CONFIG_8139TOO_PIO=y
623# CONFIG_NETDEV_10000 is not set 653# CONFIG_NETDEV_10000 is not set
624# CONFIG_TR is not set 654# CONFIG_TR is not set
625CONFIG_WLAN=y 655CONFIG_WLAN=y
626# CONFIG_WLAN_PRE80211 is not set 656# CONFIG_ATMEL is not set
627# CONFIG_WLAN_80211 is not set 657# CONFIG_PRISM54 is not set
658# CONFIG_HOSTAP is not set
628 659
629# 660#
630# Enable WiMAX (Networking options) to see the WiMAX drivers 661# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -637,6 +668,7 @@ CONFIG_WLAN=y
637# CONFIG_NETCONSOLE is not set 668# CONFIG_NETCONSOLE is not set
638# CONFIG_NETPOLL is not set 669# CONFIG_NETPOLL is not set
639# CONFIG_NET_POLL_CONTROLLER is not set 670# CONFIG_NET_POLL_CONTROLLER is not set
671# CONFIG_VMXNET3 is not set
640# CONFIG_ISDN is not set 672# CONFIG_ISDN is not set
641# CONFIG_PHONE is not set 673# CONFIG_PHONE is not set
642 674
@@ -646,6 +678,7 @@ CONFIG_WLAN=y
646CONFIG_INPUT=y 678CONFIG_INPUT=y
647# CONFIG_INPUT_FF_MEMLESS is not set 679# CONFIG_INPUT_FF_MEMLESS is not set
648# CONFIG_INPUT_POLLDEV is not set 680# CONFIG_INPUT_POLLDEV is not set
681# CONFIG_INPUT_SPARSEKMAP is not set
649 682
650# 683#
651# Userland interfaces 684# Userland interfaces
@@ -728,6 +761,7 @@ CONFIG_SSB_POSSIBLE=y
728# 761#
729# CONFIG_MFD_CORE is not set 762# CONFIG_MFD_CORE is not set
730# CONFIG_MFD_SM501 is not set 763# CONFIG_MFD_SM501 is not set
764# CONFIG_MFD_SH_MOBILE_SDHI is not set
731# CONFIG_HTC_PASIC3 is not set 765# CONFIG_HTC_PASIC3 is not set
732# CONFIG_MFD_TMIO is not set 766# CONFIG_MFD_TMIO is not set
733# CONFIG_REGULATOR is not set 767# CONFIG_REGULATOR is not set
@@ -787,7 +821,9 @@ CONFIG_RTC_DRV_DS1302=y
787# CONFIG_RTC_DRV_M48T86 is not set 821# CONFIG_RTC_DRV_M48T86 is not set
788# CONFIG_RTC_DRV_M48T35 is not set 822# CONFIG_RTC_DRV_M48T35 is not set
789# CONFIG_RTC_DRV_M48T59 is not set 823# CONFIG_RTC_DRV_M48T59 is not set
824# CONFIG_RTC_DRV_MSM6242 is not set
790# CONFIG_RTC_DRV_BQ4802 is not set 825# CONFIG_RTC_DRV_BQ4802 is not set
826# CONFIG_RTC_DRV_RP5C01 is not set
791# CONFIG_RTC_DRV_V3020 is not set 827# CONFIG_RTC_DRV_V3020 is not set
792 828
793# 829#
@@ -812,6 +848,7 @@ CONFIG_EXT2_FS=y
812# CONFIG_EXT2_FS_XIP is not set 848# CONFIG_EXT2_FS_XIP is not set
813# CONFIG_EXT3_FS is not set 849# CONFIG_EXT3_FS is not set
814# CONFIG_EXT4_FS is not set 850# CONFIG_EXT4_FS is not set
851CONFIG_EXT4_USE_FOR_EXT23=y
815# CONFIG_REISERFS_FS is not set 852# CONFIG_REISERFS_FS is not set
816# CONFIG_JFS_FS is not set 853# CONFIG_JFS_FS is not set
817# CONFIG_FS_POSIX_ACL is not set 854# CONFIG_FS_POSIX_ACL is not set
@@ -915,10 +952,11 @@ CONFIG_FRAME_WARN=1024
915# CONFIG_DEBUG_FS is not set 952# CONFIG_DEBUG_FS is not set
916# CONFIG_HEADERS_CHECK is not set 953# CONFIG_HEADERS_CHECK is not set
917# CONFIG_DEBUG_KERNEL is not set 954# CONFIG_DEBUG_KERNEL is not set
918# CONFIG_DEBUG_BUGVERBOSE is not set 955CONFIG_DEBUG_BUGVERBOSE=y
919# CONFIG_DEBUG_MEMORY_INIT is not set 956# CONFIG_DEBUG_MEMORY_INIT is not set
920# CONFIG_RCU_CPU_STALL_DETECTOR is not set 957# CONFIG_RCU_CPU_STALL_DETECTOR is not set
921# CONFIG_LATENCYTOP is not set 958# CONFIG_LATENCYTOP is not set
959# CONFIG_SYSCTL_SYSCALL_CHECK is not set
922CONFIG_HAVE_FUNCTION_TRACER=y 960CONFIG_HAVE_FUNCTION_TRACER=y
923CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 961CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
924CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 962CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -931,7 +969,6 @@ CONFIG_TRACING_SUPPORT=y
931# CONFIG_SAMPLES is not set 969# CONFIG_SAMPLES is not set
932CONFIG_HAVE_ARCH_KGDB=y 970CONFIG_HAVE_ARCH_KGDB=y
933# CONFIG_SH_STANDARD_BIOS is not set 971# CONFIG_SH_STANDARD_BIOS is not set
934# CONFIG_EARLY_SCIF_CONSOLE is not set
935# CONFIG_DWARF_UNWINDER is not set 972# CONFIG_DWARF_UNWINDER is not set
936 973
937# 974#
@@ -940,7 +977,11 @@ CONFIG_HAVE_ARCH_KGDB=y
940# CONFIG_KEYS is not set 977# CONFIG_KEYS is not set
941# CONFIG_SECURITY is not set 978# CONFIG_SECURITY is not set
942# CONFIG_SECURITYFS is not set 979# CONFIG_SECURITYFS is not set
943# CONFIG_SECURITY_FILE_CAPABILITIES is not set 980# CONFIG_DEFAULT_SECURITY_SELINUX is not set
981# CONFIG_DEFAULT_SECURITY_SMACK is not set
982# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
983CONFIG_DEFAULT_SECURITY_DAC=y
984CONFIG_DEFAULT_SECURITY=""
944# CONFIG_CRYPTO is not set 985# CONFIG_CRYPTO is not set
945# CONFIG_BINARY_PRINTF is not set 986# CONFIG_BINARY_PRINTF is not set
946 987
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig
index b9fe960309f5..72982e360e3f 100644
--- a/arch/sh/configs/systemh_defconfig
+++ b/arch/sh/configs/systemh_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:35:03 2009 4# Mon Jan 4 15:14:50 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_TMU=y 24CONFIG_SYS_SUPPORTS_TMU=y
24CONFIG_STACKTRACE_SUPPORT=y 25CONFIG_STACKTRACE_SUPPORT=y
25CONFIG_LOCKDEP_SUPPORT=y 26CONFIG_LOCKDEP_SUPPORT=y
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
29CONFIG_ARCH_NO_VIRT_TO_BUS=y 30CONFIG_ARCH_NO_VIRT_TO_BUS=y
30CONFIG_ARCH_HAS_DEFAULT_IDLE=y 31CONFIG_ARCH_HAS_DEFAULT_IDLE=y
31CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
33CONFIG_DMA_NONCOHERENT=y
32CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
33CONFIG_CONSTRUCTORS=y 35CONFIG_CONSTRUCTORS=y
34 36
@@ -56,6 +58,7 @@ CONFIG_SWAP=y
56# 58#
57CONFIG_TREE_RCU=y 59CONFIG_TREE_RCU=y
58# CONFIG_TREE_PREEMPT_RCU is not set 60# CONFIG_TREE_PREEMPT_RCU is not set
61# CONFIG_TINY_RCU is not set
59# CONFIG_RCU_TRACE is not set 62# CONFIG_RCU_TRACE is not set
60CONFIG_RCU_FANOUT=32 63CONFIG_RCU_FANOUT=32
61# CONFIG_RCU_FANOUT_EXACT is not set 64# CONFIG_RCU_FANOUT_EXACT is not set
@@ -94,6 +97,7 @@ CONFIG_EVENTFD=y
94CONFIG_SHMEM=y 97CONFIG_SHMEM=y
95CONFIG_AIO=y 98CONFIG_AIO=y
96CONFIG_HAVE_PERF_EVENTS=y 99CONFIG_HAVE_PERF_EVENTS=y
100CONFIG_PERF_USE_VMALLOC=y
97 101
98# 102#
99# Kernel Performance Events And Counters 103# Kernel Performance Events And Counters
@@ -112,6 +116,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
112CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
114CONFIG_HAVE_ARCH_TRACEHOOK=y 118CONFIG_HAVE_ARCH_TRACEHOOK=y
119CONFIG_HAVE_DMA_ATTRS=y
115CONFIG_HAVE_CLK=y 120CONFIG_HAVE_CLK=y
116CONFIG_HAVE_DMA_API_DEBUG=y 121CONFIG_HAVE_DMA_API_DEBUG=y
117 122
@@ -138,14 +143,41 @@ CONFIG_LBDAF=y
138# IO Schedulers 143# IO Schedulers
139# 144#
140CONFIG_IOSCHED_NOOP=y 145CONFIG_IOSCHED_NOOP=y
141CONFIG_IOSCHED_AS=y
142CONFIG_IOSCHED_DEADLINE=y 146CONFIG_IOSCHED_DEADLINE=y
143CONFIG_IOSCHED_CFQ=y 147CONFIG_IOSCHED_CFQ=y
144CONFIG_DEFAULT_AS=y
145# CONFIG_DEFAULT_DEADLINE is not set 148# CONFIG_DEFAULT_DEADLINE is not set
146# CONFIG_DEFAULT_CFQ is not set 149CONFIG_DEFAULT_CFQ=y
147# CONFIG_DEFAULT_NOOP is not set 150# CONFIG_DEFAULT_NOOP is not set
148CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="cfq"
152# CONFIG_INLINE_SPIN_TRYLOCK is not set
153# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
154# CONFIG_INLINE_SPIN_LOCK is not set
155# CONFIG_INLINE_SPIN_LOCK_BH is not set
156# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
157# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
158# CONFIG_INLINE_SPIN_UNLOCK is not set
159# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
160# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
161# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
162# CONFIG_INLINE_READ_TRYLOCK is not set
163# CONFIG_INLINE_READ_LOCK is not set
164# CONFIG_INLINE_READ_LOCK_BH is not set
165# CONFIG_INLINE_READ_LOCK_IRQ is not set
166# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
167# CONFIG_INLINE_READ_UNLOCK is not set
168# CONFIG_INLINE_READ_UNLOCK_BH is not set
169# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
170# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
171# CONFIG_INLINE_WRITE_TRYLOCK is not set
172# CONFIG_INLINE_WRITE_LOCK is not set
173# CONFIG_INLINE_WRITE_LOCK_BH is not set
174# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
175# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
176# CONFIG_INLINE_WRITE_UNLOCK is not set
177# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
178# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
179# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
180# CONFIG_MUTEX_SPIN_ON_OWNER is not set
149# CONFIG_FREEZER is not set 181# CONFIG_FREEZER is not set
150 182
151# 183#
@@ -221,8 +253,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
221# CONFIG_PHYS_ADDR_T_64BIT is not set 253# CONFIG_PHYS_ADDR_T_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=0 254CONFIG_ZONE_DMA_FLAG=0
223CONFIG_NR_QUICK=2 255CONFIG_NR_QUICK=2
224CONFIG_HAVE_MLOCK=y
225CONFIG_HAVE_MLOCKED_PAGE_BIT=y
226# CONFIG_KSM is not set 256# CONFIG_KSM is not set
227CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 257CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
228 258
@@ -310,7 +340,6 @@ CONFIG_GUSA=y
310CONFIG_ZERO_PAGE_OFFSET=0x00001000 340CONFIG_ZERO_PAGE_OFFSET=0x00001000
311CONFIG_BOOT_LINK_OFFSET=0x00800000 341CONFIG_BOOT_LINK_OFFSET=0x00800000
312CONFIG_ENTRY_OFFSET=0x00001000 342CONFIG_ENTRY_OFFSET=0x00001000
313# CONFIG_UBC_WAKEUP is not set
314# CONFIG_CMDLINE_OVERWRITE is not set 343# CONFIG_CMDLINE_OVERWRITE is not set
315# CONFIG_CMDLINE_EXTEND is not set 344# CONFIG_CMDLINE_EXTEND is not set
316 345
@@ -349,6 +378,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
349CONFIG_BLK_DEV=y 378CONFIG_BLK_DEV=y
350# CONFIG_BLK_DEV_COW_COMMON is not set 379# CONFIG_BLK_DEV_COW_COMMON is not set
351# CONFIG_BLK_DEV_LOOP is not set 380# CONFIG_BLK_DEV_LOOP is not set
381
382#
383# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
384#
352CONFIG_BLK_DEV_RAM=y 385CONFIG_BLK_DEV_RAM=y
353CONFIG_BLK_DEV_RAM_COUNT=16 386CONFIG_BLK_DEV_RAM_COUNT=16
354CONFIG_BLK_DEV_RAM_SIZE=1024 387CONFIG_BLK_DEV_RAM_SIZE=1024
@@ -390,6 +423,7 @@ CONFIG_SERIO=y
390# CONFIG_SERIO_SERPORT is not set 423# CONFIG_SERIO_SERPORT is not set
391# CONFIG_SERIO_LIBPS2 is not set 424# CONFIG_SERIO_LIBPS2 is not set
392# CONFIG_SERIO_RAW is not set 425# CONFIG_SERIO_RAW is not set
426# CONFIG_SERIO_ALTERA_PS2 is not set
393# CONFIG_GAMEPORT is not set 427# CONFIG_GAMEPORT is not set
394 428
395# 429#
@@ -458,6 +492,7 @@ CONFIG_SSB_POSSIBLE=y
458# 492#
459# CONFIG_MFD_CORE is not set 493# CONFIG_MFD_CORE is not set
460# CONFIG_MFD_SM501 is not set 494# CONFIG_MFD_SM501 is not set
495# CONFIG_MFD_SH_MOBILE_SDHI is not set
461# CONFIG_HTC_PASIC3 is not set 496# CONFIG_HTC_PASIC3 is not set
462# CONFIG_MFD_TMIO is not set 497# CONFIG_MFD_TMIO is not set
463# CONFIG_REGULATOR is not set 498# CONFIG_REGULATOR is not set
@@ -517,6 +552,7 @@ CONFIG_RTC_LIB=y
517# CONFIG_EXT2_FS is not set 552# CONFIG_EXT2_FS is not set
518# CONFIG_EXT3_FS is not set 553# CONFIG_EXT3_FS is not set
519# CONFIG_EXT4_FS is not set 554# CONFIG_EXT4_FS is not set
555CONFIG_EXT4_USE_FOR_EXT23=y
520# CONFIG_REISERFS_FS is not set 556# CONFIG_REISERFS_FS is not set
521# CONFIG_JFS_FS is not set 557# CONFIG_JFS_FS is not set
522# CONFIG_FS_POSIX_ACL is not set 558# CONFIG_FS_POSIX_ACL is not set
@@ -609,10 +645,11 @@ CONFIG_FRAME_WARN=1024
609# CONFIG_DEBUG_FS is not set 645# CONFIG_DEBUG_FS is not set
610# CONFIG_HEADERS_CHECK is not set 646# CONFIG_HEADERS_CHECK is not set
611# CONFIG_DEBUG_KERNEL is not set 647# CONFIG_DEBUG_KERNEL is not set
612# CONFIG_DEBUG_BUGVERBOSE is not set 648CONFIG_DEBUG_BUGVERBOSE=y
613# CONFIG_DEBUG_MEMORY_INIT is not set 649# CONFIG_DEBUG_MEMORY_INIT is not set
614# CONFIG_RCU_CPU_STALL_DETECTOR is not set 650# CONFIG_RCU_CPU_STALL_DETECTOR is not set
615# CONFIG_LATENCYTOP is not set 651# CONFIG_LATENCYTOP is not set
652# CONFIG_SYSCTL_SYSCALL_CHECK is not set
616CONFIG_HAVE_FUNCTION_TRACER=y 653CONFIG_HAVE_FUNCTION_TRACER=y
617CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 654CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
618CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y 655CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
@@ -625,7 +662,6 @@ CONFIG_TRACING_SUPPORT=y
625# CONFIG_SAMPLES is not set 662# CONFIG_SAMPLES is not set
626CONFIG_HAVE_ARCH_KGDB=y 663CONFIG_HAVE_ARCH_KGDB=y
627# CONFIG_SH_STANDARD_BIOS is not set 664# CONFIG_SH_STANDARD_BIOS is not set
628# CONFIG_EARLY_SCIF_CONSOLE is not set
629# CONFIG_DWARF_UNWINDER is not set 665# CONFIG_DWARF_UNWINDER is not set
630 666
631# 667#
@@ -634,7 +670,11 @@ CONFIG_HAVE_ARCH_KGDB=y
634# CONFIG_KEYS is not set 670# CONFIG_KEYS is not set
635# CONFIG_SECURITY is not set 671# CONFIG_SECURITY is not set
636# CONFIG_SECURITYFS is not set 672# CONFIG_SECURITYFS is not set
637# CONFIG_SECURITY_FILE_CAPABILITIES is not set 673# CONFIG_DEFAULT_SECURITY_SELINUX is not set
674# CONFIG_DEFAULT_SECURITY_SMACK is not set
675# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
676CONFIG_DEFAULT_SECURITY_DAC=y
677CONFIG_DEFAULT_SECURITY=""
638# CONFIG_CRYPTO is not set 678# CONFIG_CRYPTO is not set
639# CONFIG_BINARY_PRINTF is not set 679# CONFIG_BINARY_PRINTF is not set
640 680
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig
index 2ca79ed9fb62..78c257053c79 100644
--- a/arch/sh/configs/titan_defconfig
+++ b/arch/sh/configs/titan_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:36:36 2009 4# Mon Jan 4 15:17:20 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_PCI=y 24CONFIG_SYS_SUPPORTS_PCI=y
24CONFIG_SYS_SUPPORTS_TMU=y 25CONFIG_SYS_SUPPORTS_TMU=y
25CONFIG_STACKTRACE_SUPPORT=y 26CONFIG_STACKTRACE_SUPPORT=y
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
30CONFIG_ARCH_NO_VIRT_TO_BUS=y 31CONFIG_ARCH_NO_VIRT_TO_BUS=y
31CONFIG_ARCH_HAS_DEFAULT_IDLE=y 32CONFIG_ARCH_HAS_DEFAULT_IDLE=y
32CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
34CONFIG_DMA_NONCOHERENT=y
33CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
34CONFIG_CONSTRUCTORS=y 36CONFIG_CONSTRUCTORS=y
35 37
@@ -61,6 +63,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
61# 63#
62CONFIG_TREE_RCU=y 64CONFIG_TREE_RCU=y
63# CONFIG_TREE_PREEMPT_RCU is not set 65# CONFIG_TREE_PREEMPT_RCU is not set
66# CONFIG_TINY_RCU is not set
64# CONFIG_RCU_TRACE is not set 67# CONFIG_RCU_TRACE is not set
65CONFIG_RCU_FANOUT=32 68CONFIG_RCU_FANOUT=32
66# CONFIG_RCU_FANOUT_EXACT is not set 69# CONFIG_RCU_FANOUT_EXACT is not set
@@ -101,6 +104,7 @@ CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 104CONFIG_SHMEM=y
102CONFIG_AIO=y 105CONFIG_AIO=y
103CONFIG_HAVE_PERF_EVENTS=y 106CONFIG_HAVE_PERF_EVENTS=y
107CONFIG_PERF_USE_VMALLOC=y
104 108
105# 109#
106# Kernel Performance Events And Counters 110# Kernel Performance Events And Counters
@@ -120,13 +124,14 @@ CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y 126CONFIG_HAVE_ARCH_TRACEHOOK=y
127CONFIG_HAVE_DMA_ATTRS=y
123CONFIG_HAVE_CLK=y 128CONFIG_HAVE_CLK=y
124CONFIG_HAVE_DMA_API_DEBUG=y 129CONFIG_HAVE_DMA_API_DEBUG=y
125 130
126# 131#
127# GCOV-based kernel profiling 132# GCOV-based kernel profiling
128# 133#
129# CONFIG_SLOW_WORK is not set 134CONFIG_SLOW_WORK=y
130CONFIG_HAVE_GENERIC_DMA_COHERENT=y 135CONFIG_HAVE_GENERIC_DMA_COHERENT=y
131CONFIG_SLABINFO=y 136CONFIG_SLABINFO=y
132CONFIG_RT_MUTEXES=y 137CONFIG_RT_MUTEXES=y
@@ -146,14 +151,41 @@ CONFIG_LBDAF=y
146# IO Schedulers 151# IO Schedulers
147# 152#
148CONFIG_IOSCHED_NOOP=y 153CONFIG_IOSCHED_NOOP=y
149CONFIG_IOSCHED_AS=y
150CONFIG_IOSCHED_DEADLINE=y 154CONFIG_IOSCHED_DEADLINE=y
151CONFIG_IOSCHED_CFQ=y 155CONFIG_IOSCHED_CFQ=y
152CONFIG_DEFAULT_AS=y
153# CONFIG_DEFAULT_DEADLINE is not set 156# CONFIG_DEFAULT_DEADLINE is not set
154# CONFIG_DEFAULT_CFQ is not set 157CONFIG_DEFAULT_CFQ=y
155# CONFIG_DEFAULT_NOOP is not set 158# CONFIG_DEFAULT_NOOP is not set
156CONFIG_DEFAULT_IOSCHED="anticipatory" 159CONFIG_DEFAULT_IOSCHED="cfq"
160# CONFIG_INLINE_SPIN_TRYLOCK is not set
161# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
162# CONFIG_INLINE_SPIN_LOCK is not set
163# CONFIG_INLINE_SPIN_LOCK_BH is not set
164# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
165# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
166CONFIG_INLINE_SPIN_UNLOCK=y
167# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
168CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
169# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
170# CONFIG_INLINE_READ_TRYLOCK is not set
171# CONFIG_INLINE_READ_LOCK is not set
172# CONFIG_INLINE_READ_LOCK_BH is not set
173# CONFIG_INLINE_READ_LOCK_IRQ is not set
174# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
175CONFIG_INLINE_READ_UNLOCK=y
176# CONFIG_INLINE_READ_UNLOCK_BH is not set
177CONFIG_INLINE_READ_UNLOCK_IRQ=y
178# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
179# CONFIG_INLINE_WRITE_TRYLOCK is not set
180# CONFIG_INLINE_WRITE_LOCK is not set
181# CONFIG_INLINE_WRITE_LOCK_BH is not set
182# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
183# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
184CONFIG_INLINE_WRITE_UNLOCK=y
185# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
186CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
187# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
188# CONFIG_MUTEX_SPIN_ON_OWNER is not set
157# CONFIG_FREEZER is not set 189# CONFIG_FREEZER is not set
158 190
159# 191#
@@ -229,8 +261,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
229# CONFIG_PHYS_ADDR_T_64BIT is not set 261# CONFIG_PHYS_ADDR_T_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=0 262CONFIG_ZONE_DMA_FLAG=0
231CONFIG_NR_QUICK=2 263CONFIG_NR_QUICK=2
232CONFIG_HAVE_MLOCK=y
233CONFIG_HAVE_MLOCKED_PAGE_BIT=y
234# CONFIG_KSM is not set 264# CONFIG_KSM is not set
235CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 265CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
236 266
@@ -282,9 +312,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
282# 312#
283# DMA support 313# DMA support
284# 314#
285CONFIG_SH_DMA_API=y
286CONFIG_SH_DMA=y 315CONFIG_SH_DMA=y
287CONFIG_SH_DMA_IRQ_MULTI=y 316CONFIG_SH_DMA_IRQ_MULTI=y
317CONFIG_SH_DMA_API=y
288CONFIG_NR_ONCHIP_DMA_CHANNELS=8 318CONFIG_NR_ONCHIP_DMA_CHANNELS=8
289# CONFIG_NR_DMA_CHANNELS_BOOL is not set 319# CONFIG_NR_DMA_CHANNELS_BOOL is not set
290 320
@@ -323,7 +353,6 @@ CONFIG_GUSA=y
323CONFIG_ZERO_PAGE_OFFSET=0x00001000 353CONFIG_ZERO_PAGE_OFFSET=0x00001000
324CONFIG_BOOT_LINK_OFFSET=0x009e0000 354CONFIG_BOOT_LINK_OFFSET=0x009e0000
325CONFIG_ENTRY_OFFSET=0x00001000 355CONFIG_ENTRY_OFFSET=0x00001000
326# CONFIG_UBC_WAKEUP is not set
327CONFIG_CMDLINE_OVERWRITE=y 356CONFIG_CMDLINE_OVERWRITE=y
328# CONFIG_CMDLINE_EXTEND is not set 357# CONFIG_CMDLINE_EXTEND is not set
329CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw" 358CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw"
@@ -332,7 +361,6 @@ CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw"
332# Bus options 361# Bus options
333# 362#
334CONFIG_PCI=y 363CONFIG_PCI=y
335CONFIG_SH_PCIDMA_NONCOHERENT=y
336# CONFIG_PCIEPORTBUS is not set 364# CONFIG_PCIEPORTBUS is not set
337# CONFIG_ARCH_SUPPORTS_MSI is not set 365# CONFIG_ARCH_SUPPORTS_MSI is not set
338CONFIG_PCI_LEGACY=y 366CONFIG_PCI_LEGACY=y
@@ -425,6 +453,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
425CONFIG_INET6_XFRM_MODE_BEET=y 453CONFIG_INET6_XFRM_MODE_BEET=y
426# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 454# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
427CONFIG_IPV6_SIT=m 455CONFIG_IPV6_SIT=m
456# CONFIG_IPV6_SIT_6RD is not set
428CONFIG_IPV6_NDISC_NODETYPE=y 457CONFIG_IPV6_NDISC_NODETYPE=y
429CONFIG_IPV6_TUNNEL=y 458CONFIG_IPV6_TUNNEL=y
430# CONFIG_IPV6_MULTIPLE_TABLES is not set 459# CONFIG_IPV6_MULTIPLE_TABLES is not set
@@ -614,10 +643,6 @@ CONFIG_NET_SCH_FIFO=y
614CONFIG_FIB_RULES=y 643CONFIG_FIB_RULES=y
615CONFIG_WIRELESS=y 644CONFIG_WIRELESS=y
616# CONFIG_CFG80211 is not set 645# CONFIG_CFG80211 is not set
617CONFIG_CFG80211_DEFAULT_PS_VALUE=0
618# CONFIG_WIRELESS_OLD_REGULATORY is not set
619CONFIG_WIRELESS_EXT=y
620CONFIG_WIRELESS_EXT_SYSFS=y
621# CONFIG_LIB80211 is not set 646# CONFIG_LIB80211 is not set
622 647
623# 648#
@@ -743,6 +768,11 @@ CONFIG_BLK_DEV=y
743# CONFIG_BLK_DEV_COW_COMMON is not set 768# CONFIG_BLK_DEV_COW_COMMON is not set
744CONFIG_BLK_DEV_LOOP=m 769CONFIG_BLK_DEV_LOOP=m
745CONFIG_BLK_DEV_CRYPTOLOOP=m 770CONFIG_BLK_DEV_CRYPTOLOOP=m
771
772#
773# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
774#
775# CONFIG_BLK_DEV_DRBD is not set
746# CONFIG_BLK_DEV_NBD is not set 776# CONFIG_BLK_DEV_NBD is not set
747# CONFIG_BLK_DEV_SX8 is not set 777# CONFIG_BLK_DEV_SX8 is not set
748# CONFIG_BLK_DEV_UB is not set 778# CONFIG_BLK_DEV_UB is not set
@@ -807,8 +837,11 @@ CONFIG_SCSI_LOWLEVEL=y
807# CONFIG_ISCSI_TCP is not set 837# CONFIG_ISCSI_TCP is not set
808# CONFIG_SCSI_CXGB3_ISCSI is not set 838# CONFIG_SCSI_CXGB3_ISCSI is not set
809# CONFIG_SCSI_BNX2_ISCSI is not set 839# CONFIG_SCSI_BNX2_ISCSI is not set
840# CONFIG_BE2ISCSI is not set
810# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 841# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
842# CONFIG_SCSI_HPSA is not set
811# CONFIG_SCSI_3W_9XXX is not set 843# CONFIG_SCSI_3W_9XXX is not set
844# CONFIG_SCSI_3W_SAS is not set
812# CONFIG_SCSI_ACARD is not set 845# CONFIG_SCSI_ACARD is not set
813# CONFIG_SCSI_AACRAID is not set 846# CONFIG_SCSI_AACRAID is not set
814# CONFIG_SCSI_AIC7XXX is not set 847# CONFIG_SCSI_AIC7XXX is not set
@@ -841,7 +874,9 @@ CONFIG_SCSI_LOWLEVEL=y
841# CONFIG_SCSI_NSP32 is not set 874# CONFIG_SCSI_NSP32 is not set
842# CONFIG_SCSI_DEBUG is not set 875# CONFIG_SCSI_DEBUG is not set
843# CONFIG_SCSI_PMCRAID is not set 876# CONFIG_SCSI_PMCRAID is not set
877# CONFIG_SCSI_PM8001 is not set
844# CONFIG_SCSI_SRP is not set 878# CONFIG_SCSI_SRP is not set
879# CONFIG_SCSI_BFA_FC is not set
845# CONFIG_SCSI_DH is not set 880# CONFIG_SCSI_DH is not set
846# CONFIG_SCSI_OSD_INITIATOR is not set 881# CONFIG_SCSI_OSD_INITIATOR is not set
847# CONFIG_ATA is not set 882# CONFIG_ATA is not set
@@ -935,6 +970,7 @@ CONFIG_8139_OLD_RX_RESET=y
935# CONFIG_SUNDANCE is not set 970# CONFIG_SUNDANCE is not set
936# CONFIG_TLAN is not set 971# CONFIG_TLAN is not set
937# CONFIG_KS8842 is not set 972# CONFIG_KS8842 is not set
973# CONFIG_KS8851_MLL is not set
938# CONFIG_VIA_RHINE is not set 974# CONFIG_VIA_RHINE is not set
939# CONFIG_SC92031 is not set 975# CONFIG_SC92031 is not set
940# CONFIG_ATL2 is not set 976# CONFIG_ATL2 is not set
@@ -983,8 +1019,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y
983# CONFIG_BE2NET is not set 1019# CONFIG_BE2NET is not set
984# CONFIG_TR is not set 1020# CONFIG_TR is not set
985CONFIG_WLAN=y 1021CONFIG_WLAN=y
986# CONFIG_WLAN_PRE80211 is not set 1022# CONFIG_ATMEL is not set
987# CONFIG_WLAN_80211 is not set 1023# CONFIG_PRISM54 is not set
1024# CONFIG_USB_ZD1201 is not set
1025# CONFIG_HOSTAP is not set
988 1026
989# 1027#
990# Enable WiMAX (Networking options) to see the WiMAX drivers 1028# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -1033,6 +1071,7 @@ CONFIG_SLIP_SMART=y
1033# CONFIG_NETCONSOLE is not set 1071# CONFIG_NETCONSOLE is not set
1034# CONFIG_NETPOLL is not set 1072# CONFIG_NETPOLL is not set
1035# CONFIG_NET_POLL_CONTROLLER is not set 1073# CONFIG_NET_POLL_CONTROLLER is not set
1074# CONFIG_VMXNET3 is not set
1036# CONFIG_ISDN is not set 1075# CONFIG_ISDN is not set
1037# CONFIG_PHONE is not set 1076# CONFIG_PHONE is not set
1038 1077
@@ -1042,6 +1081,7 @@ CONFIG_SLIP_SMART=y
1042CONFIG_INPUT=y 1081CONFIG_INPUT=y
1043# CONFIG_INPUT_FF_MEMLESS is not set 1082# CONFIG_INPUT_FF_MEMLESS is not set
1044# CONFIG_INPUT_POLLDEV is not set 1083# CONFIG_INPUT_POLLDEV is not set
1084# CONFIG_INPUT_SPARSEKMAP is not set
1045 1085
1046# 1086#
1047# Userland interfaces 1087# Userland interfaces
@@ -1172,6 +1212,7 @@ CONFIG_SSB_POSSIBLE=y
1172# 1212#
1173# CONFIG_MFD_CORE is not set 1213# CONFIG_MFD_CORE is not set
1174# CONFIG_MFD_SM501 is not set 1214# CONFIG_MFD_SM501 is not set
1215# CONFIG_MFD_SH_MOBILE_SDHI is not set
1175# CONFIG_HTC_PASIC3 is not set 1216# CONFIG_HTC_PASIC3 is not set
1176# CONFIG_MFD_TMIO is not set 1217# CONFIG_MFD_TMIO is not set
1177# CONFIG_REGULATOR is not set 1218# CONFIG_REGULATOR is not set
@@ -1409,7 +1450,9 @@ CONFIG_RTC_INTF_DEV=y
1409# CONFIG_RTC_DRV_M48T86 is not set 1450# CONFIG_RTC_DRV_M48T86 is not set
1410# CONFIG_RTC_DRV_M48T35 is not set 1451# CONFIG_RTC_DRV_M48T35 is not set
1411# CONFIG_RTC_DRV_M48T59 is not set 1452# CONFIG_RTC_DRV_M48T59 is not set
1453# CONFIG_RTC_DRV_MSM6242 is not set
1412# CONFIG_RTC_DRV_BQ4802 is not set 1454# CONFIG_RTC_DRV_BQ4802 is not set
1455# CONFIG_RTC_DRV_RP5C01 is not set
1413# CONFIG_RTC_DRV_V3020 is not set 1456# CONFIG_RTC_DRV_V3020 is not set
1414 1457
1415# 1458#
@@ -1664,6 +1707,7 @@ CONFIG_SCHED_DEBUG=y
1664# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set 1707# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1665# CONFIG_FAULT_INJECTION is not set 1708# CONFIG_FAULT_INJECTION is not set
1666# CONFIG_LATENCYTOP is not set 1709# CONFIG_LATENCYTOP is not set
1710# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1667# CONFIG_PAGE_POISONING is not set 1711# CONFIG_PAGE_POISONING is not set
1668CONFIG_HAVE_FUNCTION_TRACER=y 1712CONFIG_HAVE_FUNCTION_TRACER=y
1669CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1713CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -1691,7 +1735,6 @@ CONFIG_BRANCH_PROFILE_NONE=y
1691CONFIG_HAVE_ARCH_KGDB=y 1735CONFIG_HAVE_ARCH_KGDB=y
1692# CONFIG_KGDB is not set 1736# CONFIG_KGDB is not set
1693# CONFIG_SH_STANDARD_BIOS is not set 1737# CONFIG_SH_STANDARD_BIOS is not set
1694# CONFIG_EARLY_SCIF_CONSOLE is not set
1695# CONFIG_STACK_DEBUG is not set 1738# CONFIG_STACK_DEBUG is not set
1696# CONFIG_DEBUG_STACK_USAGE is not set 1739# CONFIG_DEBUG_STACK_USAGE is not set
1697# CONFIG_4KSTACKS is not set 1740# CONFIG_4KSTACKS is not set
@@ -1705,7 +1748,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1705# CONFIG_KEYS is not set 1748# CONFIG_KEYS is not set
1706# CONFIG_SECURITY is not set 1749# CONFIG_SECURITY is not set
1707# CONFIG_SECURITYFS is not set 1750# CONFIG_SECURITYFS is not set
1708# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1751# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1752# CONFIG_DEFAULT_SECURITY_SMACK is not set
1753# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1754CONFIG_DEFAULT_SECURITY_DAC=y
1755CONFIG_DEFAULT_SECURITY=""
1709CONFIG_CRYPTO=y 1756CONFIG_CRYPTO=y
1710 1757
1711# 1758#
diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig
index b012ca77f029..4fa03bf086dd 100644
--- a/arch/sh/configs/ul2_defconfig
+++ b/arch/sh/configs/ul2_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:42:33 2009 4# Mon Jan 4 15:18:53 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21CONFIG_ARCH_SUSPEND_POSSIBLE=y 21CONFIG_ARCH_SUSPEND_POSSIBLE=y
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_NUMA=y 24CONFIG_SYS_SUPPORTS_NUMA=y
24CONFIG_SYS_SUPPORTS_CMT=y 25CONFIG_SYS_SUPPORTS_CMT=y
25CONFIG_SYS_SUPPORTS_TMU=y 26CONFIG_SYS_SUPPORTS_TMU=y
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
31CONFIG_ARCH_NO_VIRT_TO_BUS=y 32CONFIG_ARCH_NO_VIRT_TO_BUS=y
32CONFIG_ARCH_HAS_DEFAULT_IDLE=y 33CONFIG_ARCH_HAS_DEFAULT_IDLE=y
33CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
35CONFIG_DMA_NONCOHERENT=y
34CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 36CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
35CONFIG_CONSTRUCTORS=y 37CONFIG_CONSTRUCTORS=y
36 38
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y
63# 65#
64CONFIG_TREE_RCU=y 66CONFIG_TREE_RCU=y
65# CONFIG_TREE_PREEMPT_RCU is not set 67# CONFIG_TREE_PREEMPT_RCU is not set
68# CONFIG_TINY_RCU is not set
66# CONFIG_RCU_TRACE is not set 69# CONFIG_RCU_TRACE is not set
67CONFIG_RCU_FANOUT=32 70CONFIG_RCU_FANOUT=32
68# CONFIG_RCU_FANOUT_EXACT is not set 71# CONFIG_RCU_FANOUT_EXACT is not set
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 105CONFIG_SHMEM=y
103CONFIG_AIO=y 106CONFIG_AIO=y
104CONFIG_HAVE_PERF_EVENTS=y 107CONFIG_HAVE_PERF_EVENTS=y
108CONFIG_PERF_USE_VMALLOC=y
105 109
106# 110#
107# Kernel Performance Events And Counters 111# Kernel Performance Events And Counters
@@ -122,6 +126,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 126CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 127CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 128CONFIG_HAVE_ARCH_TRACEHOOK=y
129CONFIG_HAVE_DMA_ATTRS=y
125CONFIG_HAVE_CLK=y 130CONFIG_HAVE_CLK=y
126CONFIG_HAVE_DMA_API_DEBUG=y 131CONFIG_HAVE_DMA_API_DEBUG=y
127 132
@@ -148,14 +153,41 @@ CONFIG_LBDAF=y
148# IO Schedulers 153# IO Schedulers
149# 154#
150CONFIG_IOSCHED_NOOP=y 155CONFIG_IOSCHED_NOOP=y
151# CONFIG_IOSCHED_AS is not set
152# CONFIG_IOSCHED_DEADLINE is not set 156# CONFIG_IOSCHED_DEADLINE is not set
153# CONFIG_IOSCHED_CFQ is not set 157# CONFIG_IOSCHED_CFQ is not set
154# CONFIG_DEFAULT_AS is not set
155# CONFIG_DEFAULT_DEADLINE is not set 158# CONFIG_DEFAULT_DEADLINE is not set
156# CONFIG_DEFAULT_CFQ is not set 159# CONFIG_DEFAULT_CFQ is not set
157CONFIG_DEFAULT_NOOP=y 160CONFIG_DEFAULT_NOOP=y
158CONFIG_DEFAULT_IOSCHED="noop" 161CONFIG_DEFAULT_IOSCHED="noop"
162# CONFIG_INLINE_SPIN_TRYLOCK is not set
163# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
164# CONFIG_INLINE_SPIN_LOCK is not set
165# CONFIG_INLINE_SPIN_LOCK_BH is not set
166# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
167# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
168# CONFIG_INLINE_SPIN_UNLOCK is not set
169# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
170# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
171# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
172# CONFIG_INLINE_READ_TRYLOCK is not set
173# CONFIG_INLINE_READ_LOCK is not set
174# CONFIG_INLINE_READ_LOCK_BH is not set
175# CONFIG_INLINE_READ_LOCK_IRQ is not set
176# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
177# CONFIG_INLINE_READ_UNLOCK is not set
178# CONFIG_INLINE_READ_UNLOCK_BH is not set
179# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
180# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
181# CONFIG_INLINE_WRITE_TRYLOCK is not set
182# CONFIG_INLINE_WRITE_LOCK is not set
183# CONFIG_INLINE_WRITE_LOCK_BH is not set
184# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
185# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
186# CONFIG_INLINE_WRITE_UNLOCK is not set
187# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
188# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
189# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
190# CONFIG_MUTEX_SPIN_ON_OWNER is not set
159CONFIG_FREEZER=y 191CONFIG_FREEZER=y
160 192
161# 193#
@@ -247,8 +279,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
247# CONFIG_PHYS_ADDR_T_64BIT is not set 279# CONFIG_PHYS_ADDR_T_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=0 280CONFIG_ZONE_DMA_FLAG=0
249CONFIG_NR_QUICK=2 281CONFIG_NR_QUICK=2
250CONFIG_HAVE_MLOCK=y
251CONFIG_HAVE_MLOCKED_PAGE_BIT=y
252# CONFIG_KSM is not set 282# CONFIG_KSM is not set
253CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 283CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
254 284
@@ -280,7 +310,6 @@ CONFIG_CPU_HAS_DSP=y
280# 310#
281CONFIG_SH_TIMER_TMU=y 311CONFIG_SH_TIMER_TMU=y
282# CONFIG_SH_TIMER_CMT is not set 312# CONFIG_SH_TIMER_CMT is not set
283CONFIG_SH_PCLK_FREQ=33333333
284CONFIG_SH_CLK_CPG=y 313CONFIG_SH_CLK_CPG=y
285CONFIG_TICK_ONESHOT=y 314CONFIG_TICK_ONESHOT=y
286# CONFIG_NO_HZ is not set 315# CONFIG_NO_HZ is not set
@@ -435,14 +464,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
435# CONFIG_BT is not set 464# CONFIG_BT is not set
436# CONFIG_AF_RXRPC is not set 465# CONFIG_AF_RXRPC is not set
437CONFIG_WIRELESS=y 466CONFIG_WIRELESS=y
467CONFIG_WIRELESS_EXT=y
468CONFIG_WEXT_CORE=y
469CONFIG_WEXT_PROC=y
470CONFIG_WEXT_SPY=y
438CONFIG_CFG80211=y 471CONFIG_CFG80211=y
439# CONFIG_NL80211_TESTMODE is not set 472# CONFIG_NL80211_TESTMODE is not set
440# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set 473# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
441# CONFIG_CFG80211_REG_DEBUG is not set 474# CONFIG_CFG80211_REG_DEBUG is not set
442CONFIG_CFG80211_DEFAULT_PS=y 475CONFIG_CFG80211_DEFAULT_PS=y
443CONFIG_CFG80211_DEFAULT_PS_VALUE=1
444# CONFIG_WIRELESS_OLD_REGULATORY is not set 476# CONFIG_WIRELESS_OLD_REGULATORY is not set
445CONFIG_WIRELESS_EXT=y 477CONFIG_CFG80211_WEXT=y
446CONFIG_WIRELESS_EXT_SYSFS=y 478CONFIG_WIRELESS_EXT_SYSFS=y
447CONFIG_LIB80211=m 479CONFIG_LIB80211=m
448# CONFIG_LIB80211_DEBUG is not set 480# CONFIG_LIB80211_DEBUG is not set
@@ -559,6 +591,10 @@ CONFIG_MTD_RAM=y
559CONFIG_BLK_DEV=y 591CONFIG_BLK_DEV=y
560# CONFIG_BLK_DEV_COW_COMMON is not set 592# CONFIG_BLK_DEV_COW_COMMON is not set
561# CONFIG_BLK_DEV_LOOP is not set 593# CONFIG_BLK_DEV_LOOP is not set
594
595#
596# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
597#
562# CONFIG_BLK_DEV_NBD is not set 598# CONFIG_BLK_DEV_NBD is not set
563# CONFIG_BLK_DEV_UB is not set 599# CONFIG_BLK_DEV_UB is not set
564CONFIG_BLK_DEV_RAM=y 600CONFIG_BLK_DEV_RAM=y
@@ -576,6 +612,7 @@ CONFIG_MISC_DEVICES=y
576# EEPROM support 612# EEPROM support
577# 613#
578# CONFIG_EEPROM_93CX6 is not set 614# CONFIG_EEPROM_93CX6 is not set
615# CONFIG_IWMC3200TOP is not set
579CONFIG_HAVE_IDE=y 616CONFIG_HAVE_IDE=y
580# CONFIG_IDE is not set 617# CONFIG_IDE is not set
581 618
@@ -653,30 +690,29 @@ CONFIG_MII=y
653# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 690# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
654# CONFIG_B44 is not set 691# CONFIG_B44 is not set
655# CONFIG_KS8842 is not set 692# CONFIG_KS8842 is not set
693# CONFIG_KS8851_MLL is not set
656# CONFIG_NETDEV_1000 is not set 694# CONFIG_NETDEV_1000 is not set
657# CONFIG_NETDEV_10000 is not set 695# CONFIG_NETDEV_10000 is not set
658CONFIG_WLAN=y 696CONFIG_WLAN=y
659# CONFIG_WLAN_PRE80211 is not set
660CONFIG_WLAN_80211=y
661CONFIG_LIBERTAS=m
662# CONFIG_LIBERTAS_USB is not set
663CONFIG_LIBERTAS_SDIO=m
664CONFIG_LIBERTAS_DEBUG=y
665# CONFIG_LIBERTAS_THINFIRM is not set 697# CONFIG_LIBERTAS_THINFIRM is not set
666# CONFIG_AT76C50X_USB is not set 698# CONFIG_AT76C50X_USB is not set
667# CONFIG_USB_ZD1201 is not set 699# CONFIG_USB_ZD1201 is not set
668# CONFIG_USB_NET_RNDIS_WLAN is not set 700# CONFIG_USB_NET_RNDIS_WLAN is not set
669# CONFIG_RTL8187 is not set 701# CONFIG_RTL8187 is not set
670# CONFIG_MAC80211_HWSIM is not set 702# CONFIG_MAC80211_HWSIM is not set
671# CONFIG_P54_COMMON is not set
672# CONFIG_ATH_COMMON is not set 703# CONFIG_ATH_COMMON is not set
673# CONFIG_HOSTAP is not set
674# CONFIG_B43 is not set 704# CONFIG_B43 is not set
675# CONFIG_B43LEGACY is not set 705# CONFIG_B43LEGACY is not set
676# CONFIG_ZD1211RW is not set 706# CONFIG_HOSTAP is not set
707# CONFIG_IWM is not set
708CONFIG_LIBERTAS=m
709# CONFIG_LIBERTAS_USB is not set
710CONFIG_LIBERTAS_SDIO=m
711CONFIG_LIBERTAS_DEBUG=y
712# CONFIG_P54_COMMON is not set
677# CONFIG_RT2X00 is not set 713# CONFIG_RT2X00 is not set
678# CONFIG_WL12XX is not set 714# CONFIG_WL12XX is not set
679# CONFIG_IWM is not set 715# CONFIG_ZD1211RW is not set
680 716
681# 717#
682# Enable WiMAX (Networking options) to see the WiMAX drivers 718# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -718,6 +754,7 @@ CONFIG_USB_NET_CDCETHER=y
718CONFIG_INPUT=y 754CONFIG_INPUT=y
719# CONFIG_INPUT_FF_MEMLESS is not set 755# CONFIG_INPUT_FF_MEMLESS is not set
720# CONFIG_INPUT_POLLDEV is not set 756# CONFIG_INPUT_POLLDEV is not set
757# CONFIG_INPUT_SPARSEKMAP is not set
721 758
722# 759#
723# Userland interfaces 760# Userland interfaces
@@ -810,6 +847,7 @@ CONFIG_SSB_POSSIBLE=y
810# 847#
811# CONFIG_MFD_CORE is not set 848# CONFIG_MFD_CORE is not set
812# CONFIG_MFD_SM501 is not set 849# CONFIG_MFD_SM501 is not set
850# CONFIG_MFD_SH_MOBILE_SDHI is not set
813# CONFIG_HTC_PASIC3 is not set 851# CONFIG_HTC_PASIC3 is not set
814# CONFIG_MFD_TMIO is not set 852# CONFIG_MFD_TMIO is not set
815# CONFIG_REGULATOR is not set 853# CONFIG_REGULATOR is not set
@@ -951,6 +989,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y
951# CONFIG_MMC_SDHCI is not set 989# CONFIG_MMC_SDHCI is not set
952# CONFIG_MMC_AT91 is not set 990# CONFIG_MMC_AT91 is not set
953# CONFIG_MMC_ATMELMCI is not set 991# CONFIG_MMC_ATMELMCI is not set
992# CONFIG_MMC_TMIO is not set
954# CONFIG_MEMSTICK is not set 993# CONFIG_MEMSTICK is not set
955# CONFIG_NEW_LEDS is not set 994# CONFIG_NEW_LEDS is not set
956# CONFIG_ACCESSIBILITY is not set 995# CONFIG_ACCESSIBILITY is not set
@@ -1133,7 +1172,7 @@ CONFIG_FRAME_WARN=1024
1133# CONFIG_DEBUG_KERNEL is not set 1172# CONFIG_DEBUG_KERNEL is not set
1134# CONFIG_SLUB_DEBUG_ON is not set 1173# CONFIG_SLUB_DEBUG_ON is not set
1135# CONFIG_SLUB_STATS is not set 1174# CONFIG_SLUB_STATS is not set
1136# CONFIG_DEBUG_BUGVERBOSE is not set 1175CONFIG_DEBUG_BUGVERBOSE=y
1137# CONFIG_DEBUG_MEMORY_INIT is not set 1176# CONFIG_DEBUG_MEMORY_INIT is not set
1138# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1177# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1139# CONFIG_LATENCYTOP is not set 1178# CONFIG_LATENCYTOP is not set
@@ -1150,7 +1189,6 @@ CONFIG_TRACING_SUPPORT=y
1150# CONFIG_SAMPLES is not set 1189# CONFIG_SAMPLES is not set
1151CONFIG_HAVE_ARCH_KGDB=y 1190CONFIG_HAVE_ARCH_KGDB=y
1152# CONFIG_SH_STANDARD_BIOS is not set 1191# CONFIG_SH_STANDARD_BIOS is not set
1153# CONFIG_EARLY_SCIF_CONSOLE is not set
1154# CONFIG_DWARF_UNWINDER is not set 1192# CONFIG_DWARF_UNWINDER is not set
1155 1193
1156# 1194#
@@ -1159,7 +1197,11 @@ CONFIG_HAVE_ARCH_KGDB=y
1159# CONFIG_KEYS is not set 1197# CONFIG_KEYS is not set
1160# CONFIG_SECURITY is not set 1198# CONFIG_SECURITY is not set
1161# CONFIG_SECURITYFS is not set 1199# CONFIG_SECURITYFS is not set
1162# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1200# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1201# CONFIG_DEFAULT_SECURITY_SMACK is not set
1202# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1203CONFIG_DEFAULT_SECURITY_DAC=y
1204CONFIG_DEFAULT_SECURITY=""
1163CONFIG_CRYPTO=y 1205CONFIG_CRYPTO=y
1164 1206
1165# 1207#
diff --git a/arch/sh/configs/urquell_defconfig b/arch/sh/configs/urquell_defconfig
index 9f8aee5bc559..23bda1916f4d 100644
--- a/arch/sh/configs/urquell_defconfig
+++ b/arch/sh/configs/urquell_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.31 3# Linux kernel version: 2.6.33-rc2
4# Thu Sep 24 19:46:13 2009 4# Mon Jan 4 15:27:53 2010
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y
20CONFIG_GENERIC_CLOCKEVENTS=y 20CONFIG_GENERIC_CLOCKEVENTS=y
21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set 21# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
22CONFIG_ARCH_HIBERNATION_POSSIBLE=y 22CONFIG_ARCH_HIBERNATION_POSSIBLE=y
23CONFIG_SYS_SUPPORTS_HUGETLBFS=y
23CONFIG_SYS_SUPPORTS_SMP=y 24CONFIG_SYS_SUPPORTS_SMP=y
24CONFIG_SYS_SUPPORTS_NUMA=y 25CONFIG_SYS_SUPPORTS_NUMA=y
25CONFIG_SYS_SUPPORTS_PCI=y 26CONFIG_SYS_SUPPORTS_PCI=y
@@ -32,6 +33,8 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_ARCH_NO_VIRT_TO_BUS=y 33CONFIG_ARCH_NO_VIRT_TO_BUS=y
33CONFIG_ARCH_HAS_DEFAULT_IDLE=y 34CONFIG_ARCH_HAS_DEFAULT_IDLE=y
34CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y 35CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
36CONFIG_DMA_COHERENT=y
37# CONFIG_DMA_NONCOHERENT is not set
35CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 38CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
36CONFIG_CONSTRUCTORS=y 39CONFIG_CONSTRUCTORS=y
37 40
@@ -66,6 +69,7 @@ CONFIG_AUDIT_TREE=y
66# 69#
67CONFIG_TREE_RCU=y 70CONFIG_TREE_RCU=y
68# CONFIG_TREE_PREEMPT_RCU is not set 71# CONFIG_TREE_PREEMPT_RCU is not set
72# CONFIG_TINY_RCU is not set
69# CONFIG_RCU_TRACE is not set 73# CONFIG_RCU_TRACE is not set
70CONFIG_RCU_FANOUT=32 74CONFIG_RCU_FANOUT=32
71# CONFIG_RCU_FANOUT_EXACT is not set 75# CONFIG_RCU_FANOUT_EXACT is not set
@@ -120,12 +124,14 @@ CONFIG_EVENTFD=y
120CONFIG_SHMEM=y 124CONFIG_SHMEM=y
121CONFIG_AIO=y 125CONFIG_AIO=y
122CONFIG_HAVE_PERF_EVENTS=y 126CONFIG_HAVE_PERF_EVENTS=y
127CONFIG_PERF_USE_VMALLOC=y
123 128
124# 129#
125# Kernel Performance Events And Counters 130# Kernel Performance Events And Counters
126# 131#
127CONFIG_PERF_EVENTS=y 132CONFIG_PERF_EVENTS=y
128# CONFIG_PERF_COUNTERS is not set 133# CONFIG_PERF_COUNTERS is not set
134# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
129CONFIG_VM_EVENT_COUNTERS=y 135CONFIG_VM_EVENT_COUNTERS=y
130CONFIG_PCI_QUIRKS=y 136CONFIG_PCI_QUIRKS=y
131CONFIG_COMPAT_BRK=y 137CONFIG_COMPAT_BRK=y
@@ -140,6 +146,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
140CONFIG_HAVE_KPROBES=y 146CONFIG_HAVE_KPROBES=y
141CONFIG_HAVE_KRETPROBES=y 147CONFIG_HAVE_KRETPROBES=y
142CONFIG_HAVE_ARCH_TRACEHOOK=y 148CONFIG_HAVE_ARCH_TRACEHOOK=y
149CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_HAVE_CLK=y 150CONFIG_HAVE_CLK=y
144CONFIG_HAVE_DMA_API_DEBUG=y 151CONFIG_HAVE_DMA_API_DEBUG=y
145 152
@@ -162,19 +169,48 @@ CONFIG_BLOCK=y
162CONFIG_LBDAF=y 169CONFIG_LBDAF=y
163# CONFIG_BLK_DEV_BSG is not set 170# CONFIG_BLK_DEV_BSG is not set
164# CONFIG_BLK_DEV_INTEGRITY is not set 171# CONFIG_BLK_DEV_INTEGRITY is not set
172# CONFIG_BLK_CGROUP is not set
165 173
166# 174#
167# IO Schedulers 175# IO Schedulers
168# 176#
169CONFIG_IOSCHED_NOOP=y 177CONFIG_IOSCHED_NOOP=y
170CONFIG_IOSCHED_AS=y
171CONFIG_IOSCHED_DEADLINE=y 178CONFIG_IOSCHED_DEADLINE=y
172CONFIG_IOSCHED_CFQ=y 179CONFIG_IOSCHED_CFQ=y
173CONFIG_DEFAULT_AS=y 180# CONFIG_CFQ_GROUP_IOSCHED is not set
174# CONFIG_DEFAULT_DEADLINE is not set 181# CONFIG_DEFAULT_DEADLINE is not set
175# CONFIG_DEFAULT_CFQ is not set 182CONFIG_DEFAULT_CFQ=y
176# CONFIG_DEFAULT_NOOP is not set 183# CONFIG_DEFAULT_NOOP is not set
177CONFIG_DEFAULT_IOSCHED="anticipatory" 184CONFIG_DEFAULT_IOSCHED="cfq"
185# CONFIG_INLINE_SPIN_TRYLOCK is not set
186# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
187# CONFIG_INLINE_SPIN_LOCK is not set
188# CONFIG_INLINE_SPIN_LOCK_BH is not set
189# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
190# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
191CONFIG_INLINE_SPIN_UNLOCK=y
192# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
193CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
194# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
195# CONFIG_INLINE_READ_TRYLOCK is not set
196# CONFIG_INLINE_READ_LOCK is not set
197# CONFIG_INLINE_READ_LOCK_BH is not set
198# CONFIG_INLINE_READ_LOCK_IRQ is not set
199# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
200CONFIG_INLINE_READ_UNLOCK=y
201# CONFIG_INLINE_READ_UNLOCK_BH is not set
202CONFIG_INLINE_READ_UNLOCK_IRQ=y
203# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
204# CONFIG_INLINE_WRITE_TRYLOCK is not set
205# CONFIG_INLINE_WRITE_LOCK is not set
206# CONFIG_INLINE_WRITE_LOCK_BH is not set
207# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
208# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
209CONFIG_INLINE_WRITE_UNLOCK=y
210# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
211CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
212# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
213# CONFIG_MUTEX_SPIN_ON_OWNER is not set
178CONFIG_FREEZER=y 214CONFIG_FREEZER=y
179 215
180# 216#
@@ -229,6 +265,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_MEMORY_START=0x08000000 265CONFIG_MEMORY_START=0x08000000
230CONFIG_MEMORY_SIZE=0x08000000 266CONFIG_MEMORY_SIZE=0x08000000
231CONFIG_29BIT=y 267CONFIG_29BIT=y
268# CONFIG_PMB_ENABLE is not set
232# CONFIG_X2TLB is not set 269# CONFIG_X2TLB is not set
233CONFIG_VSYSCALL=y 270CONFIG_VSYSCALL=y
234# CONFIG_NUMA is not set 271# CONFIG_NUMA is not set
@@ -263,8 +300,6 @@ CONFIG_MIGRATION=y
263# CONFIG_PHYS_ADDR_T_64BIT is not set 300# CONFIG_PHYS_ADDR_T_64BIT is not set
264CONFIG_ZONE_DMA_FLAG=0 301CONFIG_ZONE_DMA_FLAG=0
265CONFIG_NR_QUICK=2 302CONFIG_NR_QUICK=2
266CONFIG_HAVE_MLOCK=y
267CONFIG_HAVE_MLOCKED_PAGE_BIT=y
268# CONFIG_KSM is not set 303# CONFIG_KSM is not set
269CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 304CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
270 305
@@ -356,7 +391,6 @@ CONFIG_ENTRY_OFFSET=0x00001000
356# Bus options 391# Bus options
357# 392#
358CONFIG_PCI=y 393CONFIG_PCI=y
359# CONFIG_SH_PCIDMA_NONCOHERENT is not set
360CONFIG_PCIEPORTBUS=y 394CONFIG_PCIEPORTBUS=y
361CONFIG_PCIEAER=y 395CONFIG_PCIEAER=y
362# CONFIG_PCIE_ECRC is not set 396# CONFIG_PCIE_ECRC is not set
@@ -469,10 +503,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
469# CONFIG_AF_RXRPC is not set 503# CONFIG_AF_RXRPC is not set
470CONFIG_WIRELESS=y 504CONFIG_WIRELESS=y
471# CONFIG_CFG80211 is not set 505# CONFIG_CFG80211 is not set
472CONFIG_CFG80211_DEFAULT_PS_VALUE=0
473# CONFIG_WIRELESS_OLD_REGULATORY is not set
474CONFIG_WIRELESS_EXT=y
475CONFIG_WIRELESS_EXT_SYSFS=y
476# CONFIG_LIB80211 is not set 506# CONFIG_LIB80211 is not set
477 507
478# 508#
@@ -588,6 +618,10 @@ CONFIG_BLK_DEV=y
588# CONFIG_BLK_DEV_UMEM is not set 618# CONFIG_BLK_DEV_UMEM is not set
589# CONFIG_BLK_DEV_COW_COMMON is not set 619# CONFIG_BLK_DEV_COW_COMMON is not set
590# CONFIG_BLK_DEV_LOOP is not set 620# CONFIG_BLK_DEV_LOOP is not set
621
622#
623# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
624#
591# CONFIG_BLK_DEV_NBD is not set 625# CONFIG_BLK_DEV_NBD is not set
592# CONFIG_BLK_DEV_SX8 is not set 626# CONFIG_BLK_DEV_SX8 is not set
593# CONFIG_BLK_DEV_UB is not set 627# CONFIG_BLK_DEV_UB is not set
@@ -688,15 +722,16 @@ CONFIG_ATA_SFF=y
688# CONFIG_PATA_NS87415 is not set 722# CONFIG_PATA_NS87415 is not set
689# CONFIG_PATA_OPTI is not set 723# CONFIG_PATA_OPTI is not set
690# CONFIG_PATA_OPTIDMA is not set 724# CONFIG_PATA_OPTIDMA is not set
725# CONFIG_PATA_PDC2027X is not set
691# CONFIG_PATA_PDC_OLD is not set 726# CONFIG_PATA_PDC_OLD is not set
692# CONFIG_PATA_RADISYS is not set 727# CONFIG_PATA_RADISYS is not set
693# CONFIG_PATA_RDC is not set 728# CONFIG_PATA_RDC is not set
694# CONFIG_PATA_RZ1000 is not set 729# CONFIG_PATA_RZ1000 is not set
695# CONFIG_PATA_SC1200 is not set 730# CONFIG_PATA_SC1200 is not set
696# CONFIG_PATA_SERVERWORKS is not set 731# CONFIG_PATA_SERVERWORKS is not set
697# CONFIG_PATA_PDC2027X is not set
698# CONFIG_PATA_SIL680 is not set 732# CONFIG_PATA_SIL680 is not set
699# CONFIG_PATA_SIS is not set 733# CONFIG_PATA_SIS is not set
734# CONFIG_PATA_TOSHIBA is not set
700# CONFIG_PATA_VIA is not set 735# CONFIG_PATA_VIA is not set
701# CONFIG_PATA_WINBOND is not set 736# CONFIG_PATA_WINBOND is not set
702# CONFIG_PATA_PLATFORM is not set 737# CONFIG_PATA_PLATFORM is not set
@@ -787,6 +822,7 @@ CONFIG_8139CP=y
787# CONFIG_SUNDANCE is not set 822# CONFIG_SUNDANCE is not set
788# CONFIG_TLAN is not set 823# CONFIG_TLAN is not set
789# CONFIG_KS8842 is not set 824# CONFIG_KS8842 is not set
825# CONFIG_KS8851_MLL is not set
790# CONFIG_VIA_RHINE is not set 826# CONFIG_VIA_RHINE is not set
791# CONFIG_SC92031 is not set 827# CONFIG_SC92031 is not set
792# CONFIG_ATL2 is not set 828# CONFIG_ATL2 is not set
@@ -818,8 +854,10 @@ CONFIG_SKY2_DEBUG=y
818# CONFIG_NETDEV_10000 is not set 854# CONFIG_NETDEV_10000 is not set
819# CONFIG_TR is not set 855# CONFIG_TR is not set
820CONFIG_WLAN=y 856CONFIG_WLAN=y
821# CONFIG_WLAN_PRE80211 is not set 857# CONFIG_ATMEL is not set
822# CONFIG_WLAN_80211 is not set 858# CONFIG_PRISM54 is not set
859# CONFIG_USB_ZD1201 is not set
860# CONFIG_HOSTAP is not set
823 861
824# 862#
825# Enable WiMAX (Networking options) to see the WiMAX drivers 863# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -842,6 +880,7 @@ CONFIG_WLAN=y
842# CONFIG_NETCONSOLE is not set 880# CONFIG_NETCONSOLE is not set
843# CONFIG_NETPOLL is not set 881# CONFIG_NETPOLL is not set
844# CONFIG_NET_POLL_CONTROLLER is not set 882# CONFIG_NET_POLL_CONTROLLER is not set
883# CONFIG_VMXNET3 is not set
845# CONFIG_ISDN is not set 884# CONFIG_ISDN is not set
846# CONFIG_PHONE is not set 885# CONFIG_PHONE is not set
847 886
@@ -851,6 +890,7 @@ CONFIG_WLAN=y
851CONFIG_INPUT=y 890CONFIG_INPUT=y
852CONFIG_INPUT_FF_MEMLESS=m 891CONFIG_INPUT_FF_MEMLESS=m
853# CONFIG_INPUT_POLLDEV is not set 892# CONFIG_INPUT_POLLDEV is not set
893# CONFIG_INPUT_SPARSEKMAP is not set
854 894
855# 895#
856# Userland interfaces 896# Userland interfaces
@@ -976,11 +1016,6 @@ CONFIG_I2C_ALGOPCA=y
976# CONFIG_I2C_TINY_USB is not set 1016# CONFIG_I2C_TINY_USB is not set
977 1017
978# 1018#
979# Graphics adapter I2C/DDC channel drivers
980#
981# CONFIG_I2C_VOODOO3 is not set
982
983#
984# Other I2C/SMBus bus drivers 1019# Other I2C/SMBus bus drivers
985# 1020#
986CONFIG_I2C_PCA_PLATFORM=y 1021CONFIG_I2C_PCA_PLATFORM=y
@@ -989,7 +1024,6 @@ CONFIG_I2C_PCA_PLATFORM=y
989# 1024#
990# Miscellaneous I2C Chip support 1025# Miscellaneous I2C Chip support
991# 1026#
992# CONFIG_DS1682 is not set
993# CONFIG_SENSORS_TSL2550 is not set 1027# CONFIG_SENSORS_TSL2550 is not set
994# CONFIG_I2C_DEBUG_CORE is not set 1028# CONFIG_I2C_DEBUG_CORE is not set
995# CONFIG_I2C_DEBUG_ALGO is not set 1029# CONFIG_I2C_DEBUG_ALGO is not set
@@ -1020,6 +1054,7 @@ CONFIG_GPIOLIB=y
1020# 1054#
1021# PCI GPIO expanders: 1055# PCI GPIO expanders:
1022# 1056#
1057# CONFIG_GPIO_CS5535 is not set
1023# CONFIG_GPIO_BT8XX is not set 1058# CONFIG_GPIO_BT8XX is not set
1024# CONFIG_GPIO_LANGWELL is not set 1059# CONFIG_GPIO_LANGWELL is not set
1025 1060
@@ -1062,6 +1097,7 @@ CONFIG_HWMON=y
1062# CONFIG_SENSORS_GL520SM is not set 1097# CONFIG_SENSORS_GL520SM is not set
1063# CONFIG_SENSORS_IT87 is not set 1098# CONFIG_SENSORS_IT87 is not set
1064# CONFIG_SENSORS_LM63 is not set 1099# CONFIG_SENSORS_LM63 is not set
1100# CONFIG_SENSORS_LM73 is not set
1065# CONFIG_SENSORS_LM75 is not set 1101# CONFIG_SENSORS_LM75 is not set
1066# CONFIG_SENSORS_LM77 is not set 1102# CONFIG_SENSORS_LM77 is not set
1067# CONFIG_SENSORS_LM78 is not set 1103# CONFIG_SENSORS_LM78 is not set
@@ -1101,6 +1137,7 @@ CONFIG_HWMON=y
1101# CONFIG_SENSORS_W83L786NG is not set 1137# CONFIG_SENSORS_W83L786NG is not set
1102# CONFIG_SENSORS_W83627HF is not set 1138# CONFIG_SENSORS_W83627HF is not set
1103# CONFIG_SENSORS_W83627EHF is not set 1139# CONFIG_SENSORS_W83627EHF is not set
1140# CONFIG_SENSORS_LIS3_I2C is not set
1104# CONFIG_THERMAL is not set 1141# CONFIG_THERMAL is not set
1105# CONFIG_WATCHDOG is not set 1142# CONFIG_WATCHDOG is not set
1106CONFIG_SSB_POSSIBLE=y 1143CONFIG_SSB_POSSIBLE=y
@@ -1116,16 +1153,19 @@ CONFIG_SSB_POSSIBLE=y
1116# CONFIG_MFD_CORE is not set 1153# CONFIG_MFD_CORE is not set
1117CONFIG_MFD_SM501=y 1154CONFIG_MFD_SM501=y
1118# CONFIG_MFD_SM501_GPIO is not set 1155# CONFIG_MFD_SM501_GPIO is not set
1156# CONFIG_MFD_SH_MOBILE_SDHI is not set
1119# CONFIG_HTC_PASIC3 is not set 1157# CONFIG_HTC_PASIC3 is not set
1120# CONFIG_TPS65010 is not set 1158# CONFIG_TPS65010 is not set
1121# CONFIG_TWL4030_CORE is not set 1159# CONFIG_TWL4030_CORE is not set
1122# CONFIG_MFD_TMIO is not set 1160# CONFIG_MFD_TMIO is not set
1123# CONFIG_PMIC_DA903X is not set 1161# CONFIG_PMIC_DA903X is not set
1162# CONFIG_PMIC_ADP5520 is not set
1124# CONFIG_MFD_WM8400 is not set 1163# CONFIG_MFD_WM8400 is not set
1125# CONFIG_MFD_WM831X is not set 1164# CONFIG_MFD_WM831X is not set
1126# CONFIG_MFD_WM8350_I2C is not set 1165# CONFIG_MFD_WM8350_I2C is not set
1127# CONFIG_MFD_PCF50633 is not set 1166# CONFIG_MFD_PCF50633 is not set
1128# CONFIG_AB3100_CORE is not set 1167# CONFIG_AB3100_CORE is not set
1168# CONFIG_MFD_88PM8607 is not set
1129# CONFIG_REGULATOR is not set 1169# CONFIG_REGULATOR is not set
1130CONFIG_MEDIA_SUPPORT=y 1170CONFIG_MEDIA_SUPPORT=y
1131 1171
@@ -1139,6 +1179,8 @@ CONFIG_MEDIA_SUPPORT=y
1139# 1179#
1140# Multimedia drivers 1180# Multimedia drivers
1141# 1181#
1182CONFIG_IR_CORE=y
1183CONFIG_VIDEO_IR=y
1142# CONFIG_DAB is not set 1184# CONFIG_DAB is not set
1143 1185
1144# 1186#
@@ -1417,6 +1459,7 @@ CONFIG_RTC_INTF_DEV=y
1417# CONFIG_RTC_DRV_PCF8563 is not set 1459# CONFIG_RTC_DRV_PCF8563 is not set
1418# CONFIG_RTC_DRV_PCF8583 is not set 1460# CONFIG_RTC_DRV_PCF8583 is not set
1419# CONFIG_RTC_DRV_M41T80 is not set 1461# CONFIG_RTC_DRV_M41T80 is not set
1462# CONFIG_RTC_DRV_BQ32K is not set
1420# CONFIG_RTC_DRV_S35390A is not set 1463# CONFIG_RTC_DRV_S35390A is not set
1421# CONFIG_RTC_DRV_FM3130 is not set 1464# CONFIG_RTC_DRV_FM3130 is not set
1422# CONFIG_RTC_DRV_RX8581 is not set 1465# CONFIG_RTC_DRV_RX8581 is not set
@@ -1437,7 +1480,9 @@ CONFIG_RTC_INTF_DEV=y
1437# CONFIG_RTC_DRV_M48T86 is not set 1480# CONFIG_RTC_DRV_M48T86 is not set
1438# CONFIG_RTC_DRV_M48T35 is not set 1481# CONFIG_RTC_DRV_M48T35 is not set
1439# CONFIG_RTC_DRV_M48T59 is not set 1482# CONFIG_RTC_DRV_M48T59 is not set
1483# CONFIG_RTC_DRV_MSM6242 is not set
1440# CONFIG_RTC_DRV_BQ4802 is not set 1484# CONFIG_RTC_DRV_BQ4802 is not set
1485# CONFIG_RTC_DRV_RP5C01 is not set
1441# CONFIG_RTC_DRV_V3020 is not set 1486# CONFIG_RTC_DRV_V3020 is not set
1442 1487
1443# 1488#
@@ -1466,7 +1511,6 @@ CONFIG_EXT3_FS_XATTR=y
1466# CONFIG_EXT3_FS_POSIX_ACL is not set 1511# CONFIG_EXT3_FS_POSIX_ACL is not set
1467# CONFIG_EXT3_FS_SECURITY is not set 1512# CONFIG_EXT3_FS_SECURITY is not set
1468CONFIG_EXT4_FS=y 1513CONFIG_EXT4_FS=y
1469# CONFIG_EXT4DEV_COMPAT is not set
1470CONFIG_EXT4_FS_XATTR=y 1514CONFIG_EXT4_FS_XATTR=y
1471# CONFIG_EXT4_FS_POSIX_ACL is not set 1515# CONFIG_EXT4_FS_POSIX_ACL is not set
1472# CONFIG_EXT4_FS_SECURITY is not set 1516# CONFIG_EXT4_FS_SECURITY is not set
@@ -1687,9 +1731,6 @@ CONFIG_TRACING_SUPPORT=y
1687CONFIG_HAVE_ARCH_KGDB=y 1731CONFIG_HAVE_ARCH_KGDB=y
1688# CONFIG_KGDB is not set 1732# CONFIG_KGDB is not set
1689# CONFIG_SH_STANDARD_BIOS is not set 1733# CONFIG_SH_STANDARD_BIOS is not set
1690CONFIG_EARLY_SCIF_CONSOLE=y
1691CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffeb0000
1692CONFIG_EARLY_PRINTK=y
1693# CONFIG_STACK_DEBUG is not set 1734# CONFIG_STACK_DEBUG is not set
1694# CONFIG_DEBUG_STACK_USAGE is not set 1735# CONFIG_DEBUG_STACK_USAGE is not set
1695# CONFIG_4KSTACKS is not set 1736# CONFIG_4KSTACKS is not set
@@ -1703,7 +1744,11 @@ CONFIG_EARLY_PRINTK=y
1703# CONFIG_KEYS is not set 1744# CONFIG_KEYS is not set
1704# CONFIG_SECURITY is not set 1745# CONFIG_SECURITY is not set
1705# CONFIG_SECURITYFS is not set 1746# CONFIG_SECURITYFS is not set
1706# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1747# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1748# CONFIG_DEFAULT_SECURITY_SMACK is not set
1749# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1750CONFIG_DEFAULT_SECURITY_DAC=y
1751CONFIG_DEFAULT_SECURITY=""
1707CONFIG_CRYPTO=y 1752CONFIG_CRYPTO=y
1708 1753
1709# 1754#
diff --git a/arch/sh/include/asm/timex.h b/arch/sh/include/asm/timex.h
index b556d49e5f2b..18bf06d9c764 100644
--- a/arch/sh/include/asm/timex.h
+++ b/arch/sh/include/asm/timex.h
@@ -6,7 +6,17 @@
6#ifndef __ASM_SH_TIMEX_H 6#ifndef __ASM_SH_TIMEX_H
7#define __ASM_SH_TIMEX_H 7#define __ASM_SH_TIMEX_H
8 8
9/*
10 * Only parts using the legacy CPG code for their clock framework
11 * implementation need to define their own Pclk value. If provided, this
12 * can be used for accurately setting CLOCK_TICK_RATE, otherwise we
13 * simply fall back on the i8253 PIT value.
14 */
15#ifdef CONFIG_SH_PCLK_FREQ
9#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */ 16#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */
17#else
18#define CLOCK_TICK_RATE 1193180
19#endif
10 20
11#include <asm-generic/timex.h> 21#include <asm-generic/timex.h>
12 22
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index 0e7ba8e891cf..986a71b88ca3 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -82,8 +82,7 @@ config 32BIT
82 82
83config PMB_ENABLE 83config PMB_ENABLE
84 bool "Support 32-bit physical addressing through PMB" 84 bool "Support 32-bit physical addressing through PMB"
85 depends on MMU && EXPERIMENTAL && CPU_SH4A 85 depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP
86 default y
87 help 86 help
88 If you say Y here, physical addressing will be extended to 87 If you say Y here, physical addressing will be extended to
89 32-bits through the SH-4A PMB. If this is not set, legacy 88 32-bits through the SH-4A PMB. If this is not set, legacy
@@ -96,7 +95,7 @@ choice
96 95
97config PMB 96config PMB
98 bool "PMB" 97 bool "PMB"
99 depends on MMU && EXPERIMENTAL && CPU_SH4A 98 depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP
100 help 99 help
101 If you say Y here, physical addressing will be extended to 100 If you say Y here, physical addressing will be extended to
102 32-bits through the SH-4A PMB. If this is not set, legacy 101 32-bits through the SH-4A PMB. If this is not set, legacy
@@ -104,7 +103,7 @@ config PMB
104 103
105config PMB_FIXED 104config PMB_FIXED
106 bool "fixed PMB" 105 bool "fixed PMB"
107 depends on MMU && EXPERIMENTAL && CPU_SH4A 106 depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP
108 select 32BIT 107 select 32BIT
109 help 108 help
110 If this option is enabled, fixed PMB mappings are inherited 109 If this option is enabled, fixed PMB mappings are inherited
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c
index f30f4a1ead23..d242a7340541 100644
--- a/arch/sparc/kernel/nmi.c
+++ b/arch/sparc/kernel/nmi.c
@@ -96,7 +96,6 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
96 int cpu = smp_processor_id(); 96 int cpu = smp_processor_id();
97 97
98 clear_softint(1 << irq); 98 clear_softint(1 << irq);
99 pcr_ops->write(PCR_PIC_PRIV);
100 99
101 local_cpu_data().__nmi_count++; 100 local_cpu_data().__nmi_count++;
102 101
@@ -105,6 +104,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs)
105 if (notify_die(DIE_NMI, "nmi", regs, 0, 104 if (notify_die(DIE_NMI, "nmi", regs, 0,
106 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) 105 pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP)
107 touched = 1; 106 touched = 1;
107 else
108 pcr_ops->write(PCR_PIC_PRIV);
108 109
109 sum = kstat_irqs_cpu(0, cpu); 110 sum = kstat_irqs_cpu(0, cpu);
110 if (__get_cpu_var(nmi_touch)) { 111 if (__get_cpu_var(nmi_touch)) {
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c
index fa5936e1c3b9..198fb4e79ba2 100644
--- a/arch/sparc/kernel/perf_event.c
+++ b/arch/sparc/kernel/perf_event.c
@@ -986,6 +986,17 @@ static int __kprobes perf_event_nmi_handler(struct notifier_block *self,
986 data.addr = 0; 986 data.addr = 0;
987 987
988 cpuc = &__get_cpu_var(cpu_hw_events); 988 cpuc = &__get_cpu_var(cpu_hw_events);
989
990 /* If the PMU has the TOE IRQ enable bits, we need to do a
991 * dummy write to the %pcr to clear the overflow bits and thus
992 * the interrupt.
993 *
994 * Do this before we peek at the counters to determine
995 * overflow so we don't lose any events.
996 */
997 if (sparc_pmu->irq_bit)
998 pcr_ops->write(cpuc->pcr);
999
989 for (idx = 0; idx < MAX_HWEVENTS; idx++) { 1000 for (idx = 0; idx < MAX_HWEVENTS; idx++) {
990 struct perf_event *event = cpuc->events[idx]; 1001 struct perf_event *event = cpuc->events[idx];
991 struct hw_perf_event *hwc; 1002 struct hw_perf_event *hwc;
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 08e442bc3ab9..f20ddf84a893 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -396,7 +396,7 @@ config X86_TSC
396 396
397config X86_CMPXCHG64 397config X86_CMPXCHG64
398 def_bool y 398 def_bool y
399 depends on !M386 && !M486 399 depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM
400 400
401# this should be set for all -march=.. options where the compiler 401# this should be set for all -march=.. options where the compiler
402# generates cmov. 402# generates cmov.
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index f8ed0658404c..f25bbd37765a 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -9,6 +9,7 @@ targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinu
9KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 9KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
10KBUILD_CFLAGS += -fno-strict-aliasing -fPIC 10KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
11KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING 11KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
12cflags-$(CONFIG_X86_32) := -march=i386
12cflags-$(CONFIG_X86_64) := -mcmodel=small 13cflags-$(CONFIG_X86_64) := -mcmodel=small
13KBUILD_CFLAGS += $(cflags-y) 14KBUILD_CFLAGS += $(cflags-y)
14KBUILD_CFLAGS += $(call cc-option,-ffreestanding) 15KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h
index 950df434763f..f46b79f6c16c 100644
--- a/arch/x86/include/asm/kvm.h
+++ b/arch/x86/include/asm/kvm.h
@@ -254,6 +254,10 @@ struct kvm_reinject_control {
254 __u8 reserved[31]; 254 __u8 reserved[31];
255}; 255};
256 256
257/* When set in flags, include corresponding fields on KVM_SET_VCPU_EVENTS */
258#define KVM_VCPUEVENT_VALID_NMI_PENDING 0x00000001
259#define KVM_VCPUEVENT_VALID_SIPI_VECTOR 0x00000002
260
257/* for KVM_GET/SET_VCPU_EVENTS */ 261/* for KVM_GET/SET_VCPU_EVENTS */
258struct kvm_vcpu_events { 262struct kvm_vcpu_events {
259 struct { 263 struct {
diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
index 811bfabc80b7..bc54fa965af3 100644
--- a/arch/x86/include/asm/uv/uv_hub.h
+++ b/arch/x86/include/asm/uv/uv_hub.h
@@ -31,20 +31,20 @@
31 * contiguous (although various IO spaces may punch holes in 31 * contiguous (although various IO spaces may punch holes in
32 * it).. 32 * it)..
33 * 33 *
34 * N - Number of bits in the node portion of a socket physical 34 * N - Number of bits in the node portion of a socket physical
35 * address. 35 * address.
36 * 36 *
37 * NASID - network ID of a router, Mbrick or Cbrick. Nasid values of 37 * NASID - network ID of a router, Mbrick or Cbrick. Nasid values of
38 * routers always have low bit of 1, C/MBricks have low bit 38 * routers always have low bit of 1, C/MBricks have low bit
39 * equal to 0. Most addressing macros that target UV hub chips 39 * equal to 0. Most addressing macros that target UV hub chips
40 * right shift the NASID by 1 to exclude the always-zero bit. 40 * right shift the NASID by 1 to exclude the always-zero bit.
41 * NASIDs contain up to 15 bits. 41 * NASIDs contain up to 15 bits.
42 * 42 *
43 * GNODE - NASID right shifted by 1 bit. Most mmrs contain gnodes instead 43 * GNODE - NASID right shifted by 1 bit. Most mmrs contain gnodes instead
44 * of nasids. 44 * of nasids.
45 * 45 *
46 * PNODE - the low N bits of the GNODE. The PNODE is the most useful variant 46 * PNODE - the low N bits of the GNODE. The PNODE is the most useful variant
47 * of the nasid for socket usage. 47 * of the nasid for socket usage.
48 * 48 *
49 * 49 *
50 * NumaLink Global Physical Address Format: 50 * NumaLink Global Physical Address Format:
@@ -71,12 +71,12 @@
71 * 71 *
72 * 72 *
73 * APICID format 73 * APICID format
74 * NOTE!!!!!! This is the current format of the APICID. However, code 74 * NOTE!!!!!! This is the current format of the APICID. However, code
75 * should assume that this will change in the future. Use functions 75 * should assume that this will change in the future. Use functions
76 * in this file for all APICID bit manipulations and conversion. 76 * in this file for all APICID bit manipulations and conversion.
77 * 77 *
78 * 1111110000000000 78 * 1111110000000000
79 * 5432109876543210 79 * 5432109876543210
80 * pppppppppplc0cch 80 * pppppppppplc0cch
81 * sssssssssss 81 * sssssssssss
82 * 82 *
@@ -89,9 +89,9 @@
89 * Note: Processor only supports 12 bits in the APICID register. The ACPI 89 * Note: Processor only supports 12 bits in the APICID register. The ACPI
90 * tables hold all 16 bits. Software needs to be aware of this. 90 * tables hold all 16 bits. Software needs to be aware of this.
91 * 91 *
92 * Unless otherwise specified, all references to APICID refer to 92 * Unless otherwise specified, all references to APICID refer to
93 * the FULL value contained in ACPI tables, not the subset in the 93 * the FULL value contained in ACPI tables, not the subset in the
94 * processor APICID register. 94 * processor APICID register.
95 */ 95 */
96 96
97 97
@@ -151,16 +151,16 @@ struct uv_hub_info_s {
151}; 151};
152 152
153DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); 153DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
154#define uv_hub_info (&__get_cpu_var(__uv_hub_info)) 154#define uv_hub_info (&__get_cpu_var(__uv_hub_info))
155#define uv_cpu_hub_info(cpu) (&per_cpu(__uv_hub_info, cpu)) 155#define uv_cpu_hub_info(cpu) (&per_cpu(__uv_hub_info, cpu))
156 156
157/* 157/*
158 * Local & Global MMR space macros. 158 * Local & Global MMR space macros.
159 * Note: macros are intended to be used ONLY by inline functions 159 * Note: macros are intended to be used ONLY by inline functions
160 * in this file - not by other kernel code. 160 * in this file - not by other kernel code.
161 * n - NASID (full 15-bit global nasid) 161 * n - NASID (full 15-bit global nasid)
162 * g - GNODE (full 15-bit global nasid, right shifted 1) 162 * g - GNODE (full 15-bit global nasid, right shifted 1)
163 * p - PNODE (local part of nsids, right shifted 1) 163 * p - PNODE (local part of nsids, right shifted 1)
164 */ 164 */
165#define UV_NASID_TO_PNODE(n) (((n) >> 1) & uv_hub_info->pnode_mask) 165#define UV_NASID_TO_PNODE(n) (((n) >> 1) & uv_hub_info->pnode_mask)
166#define UV_PNODE_TO_GNODE(p) ((p) |uv_hub_info->gnode_extra) 166#define UV_PNODE_TO_GNODE(p) ((p) |uv_hub_info->gnode_extra)
@@ -215,8 +215,8 @@ DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
215/* 215/*
216 * Macros for converting between kernel virtual addresses, socket local physical 216 * Macros for converting between kernel virtual addresses, socket local physical
217 * addresses, and UV global physical addresses. 217 * addresses, and UV global physical addresses.
218 * Note: use the standard __pa() & __va() macros for converting 218 * Note: use the standard __pa() & __va() macros for converting
219 * between socket virtual and socket physical addresses. 219 * between socket virtual and socket physical addresses.
220 */ 220 */
221 221
222/* socket phys RAM --> UV global physical address */ 222/* socket phys RAM --> UV global physical address */
@@ -287,21 +287,18 @@ static inline int uv_apicid_to_pnode(int apicid)
287 * Access global MMRs using the low memory MMR32 space. This region supports 287 * Access global MMRs using the low memory MMR32 space. This region supports
288 * faster MMR access but not all MMRs are accessible in this space. 288 * faster MMR access but not all MMRs are accessible in this space.
289 */ 289 */
290static inline unsigned long *uv_global_mmr32_address(int pnode, 290static inline unsigned long *uv_global_mmr32_address(int pnode, unsigned long offset)
291 unsigned long offset)
292{ 291{
293 return __va(UV_GLOBAL_MMR32_BASE | 292 return __va(UV_GLOBAL_MMR32_BASE |
294 UV_GLOBAL_MMR32_PNODE_BITS(pnode) | offset); 293 UV_GLOBAL_MMR32_PNODE_BITS(pnode) | offset);
295} 294}
296 295
297static inline void uv_write_global_mmr32(int pnode, unsigned long offset, 296static inline void uv_write_global_mmr32(int pnode, unsigned long offset, unsigned long val)
298 unsigned long val)
299{ 297{
300 writeq(val, uv_global_mmr32_address(pnode, offset)); 298 writeq(val, uv_global_mmr32_address(pnode, offset));
301} 299}
302 300
303static inline unsigned long uv_read_global_mmr32(int pnode, 301static inline unsigned long uv_read_global_mmr32(int pnode, unsigned long offset)
304 unsigned long offset)
305{ 302{
306 return readq(uv_global_mmr32_address(pnode, offset)); 303 return readq(uv_global_mmr32_address(pnode, offset));
307} 304}
@@ -310,21 +307,18 @@ static inline unsigned long uv_read_global_mmr32(int pnode,
310 * Access Global MMR space using the MMR space located at the top of physical 307 * Access Global MMR space using the MMR space located at the top of physical
311 * memory. 308 * memory.
312 */ 309 */
313static inline unsigned long *uv_global_mmr64_address(int pnode, 310static inline unsigned long *uv_global_mmr64_address(int pnode, unsigned long offset)
314 unsigned long offset)
315{ 311{
316 return __va(UV_GLOBAL_MMR64_BASE | 312 return __va(UV_GLOBAL_MMR64_BASE |
317 UV_GLOBAL_MMR64_PNODE_BITS(pnode) | offset); 313 UV_GLOBAL_MMR64_PNODE_BITS(pnode) | offset);
318} 314}
319 315
320static inline void uv_write_global_mmr64(int pnode, unsigned long offset, 316static inline void uv_write_global_mmr64(int pnode, unsigned long offset, unsigned long val)
321 unsigned long val)
322{ 317{
323 writeq(val, uv_global_mmr64_address(pnode, offset)); 318 writeq(val, uv_global_mmr64_address(pnode, offset));
324} 319}
325 320
326static inline unsigned long uv_read_global_mmr64(int pnode, 321static inline unsigned long uv_read_global_mmr64(int pnode, unsigned long offset)
327 unsigned long offset)
328{ 322{
329 return readq(uv_global_mmr64_address(pnode, offset)); 323 return readq(uv_global_mmr64_address(pnode, offset));
330} 324}
@@ -338,6 +332,16 @@ static inline unsigned long uv_global_gru_mmr_address(int pnode, unsigned long o
338 return UV_GLOBAL_GRU_MMR_BASE | offset | (pnode << uv_hub_info->m_val); 332 return UV_GLOBAL_GRU_MMR_BASE | offset | (pnode << uv_hub_info->m_val);
339} 333}
340 334
335static inline void uv_write_global_mmr8(int pnode, unsigned long offset, unsigned char val)
336{
337 writeb(val, uv_global_mmr64_address(pnode, offset));
338}
339
340static inline unsigned char uv_read_global_mmr8(int pnode, unsigned long offset)
341{
342 return readb(uv_global_mmr64_address(pnode, offset));
343}
344
341/* 345/*
342 * Access hub local MMRs. Faster than using global space but only local MMRs 346 * Access hub local MMRs. Faster than using global space but only local MMRs
343 * are accessible. 347 * are accessible.
@@ -457,11 +461,17 @@ static inline void uv_set_scir_bits(unsigned char value)
457 } 461 }
458} 462}
459 463
464static inline unsigned long uv_scir_offset(int apicid)
465{
466 return SCIR_LOCAL_MMR_BASE | (apicid & 0x3f);
467}
468
460static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value) 469static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value)
461{ 470{
462 if (uv_cpu_hub_info(cpu)->scir.state != value) { 471 if (uv_cpu_hub_info(cpu)->scir.state != value) {
472 uv_write_global_mmr8(uv_cpu_to_pnode(cpu),
473 uv_cpu_hub_info(cpu)->scir.offset, value);
463 uv_cpu_hub_info(cpu)->scir.state = value; 474 uv_cpu_hub_info(cpu)->scir.state = value;
464 uv_write_local_mmr8(uv_cpu_hub_info(cpu)->scir.offset, value);
465 } 475 }
466} 476}
467 477
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index 82e508677b91..f9961034e557 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -162,6 +162,8 @@ static int __init acpi_sleep_setup(char *str)
162#endif 162#endif
163 if (strncmp(str, "old_ordering", 12) == 0) 163 if (strncmp(str, "old_ordering", 12) == 0)
164 acpi_old_suspend_ordering(); 164 acpi_old_suspend_ordering();
165 if (strncmp(str, "sci_force_enable", 16) == 0)
166 acpi_set_sci_en_on_resume();
165 str = strchr(str, ','); 167 str = strchr(str, ',');
166 if (str != NULL) 168 if (str != NULL)
167 str += strspn(str, ", \t"); 169 str += strspn(str, ", \t");
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
index 1dca9c34eaeb..fb490ce7dd55 100644
--- a/arch/x86/kernel/amd_iommu_init.c
+++ b/arch/x86/kernel/amd_iommu_init.c
@@ -138,6 +138,11 @@ int amd_iommus_present;
138bool amd_iommu_np_cache __read_mostly; 138bool amd_iommu_np_cache __read_mostly;
139 139
140/* 140/*
141 * Set to true if ACPI table parsing and hardware intialization went properly
142 */
143static bool amd_iommu_initialized;
144
145/*
141 * List of protection domains - used during resume 146 * List of protection domains - used during resume
142 */ 147 */
143LIST_HEAD(amd_iommu_pd_list); 148LIST_HEAD(amd_iommu_pd_list);
@@ -929,6 +934,8 @@ static int __init init_iommu_all(struct acpi_table_header *table)
929 } 934 }
930 WARN_ON(p != end); 935 WARN_ON(p != end);
931 936
937 amd_iommu_initialized = true;
938
932 return 0; 939 return 0;
933} 940}
934 941
@@ -1263,6 +1270,9 @@ static int __init amd_iommu_init(void)
1263 if (acpi_table_parse("IVRS", init_iommu_all) != 0) 1270 if (acpi_table_parse("IVRS", init_iommu_all) != 0)
1264 goto free; 1271 goto free;
1265 1272
1273 if (!amd_iommu_initialized)
1274 goto free;
1275
1266 if (acpi_table_parse("IVRS", init_memory_definitions) != 0) 1276 if (acpi_table_parse("IVRS", init_memory_definitions) != 0)
1267 goto free; 1277 goto free;
1268 1278
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
index d56b0efb2057..5f92494dab61 100644
--- a/arch/x86/kernel/apic/x2apic_uv_x.c
+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
@@ -629,8 +629,10 @@ void __init uv_system_init(void)
629 uv_rtc_init(); 629 uv_rtc_init();
630 630
631 for_each_present_cpu(cpu) { 631 for_each_present_cpu(cpu) {
632 int apicid = per_cpu(x86_cpu_to_apicid, cpu);
633
632 nid = cpu_to_node(cpu); 634 nid = cpu_to_node(cpu);
633 pnode = uv_apicid_to_pnode(per_cpu(x86_cpu_to_apicid, cpu)); 635 pnode = uv_apicid_to_pnode(apicid);
634 blade = boot_pnode_to_blade(pnode); 636 blade = boot_pnode_to_blade(pnode);
635 lcpu = uv_blade_info[blade].nr_possible_cpus; 637 lcpu = uv_blade_info[blade].nr_possible_cpus;
636 uv_blade_info[blade].nr_possible_cpus++; 638 uv_blade_info[blade].nr_possible_cpus++;
@@ -651,15 +653,13 @@ void __init uv_system_init(void)
651 uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra; 653 uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra;
652 uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; 654 uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
653 uv_cpu_hub_info(cpu)->coherency_domain_number = sn_coherency_id; 655 uv_cpu_hub_info(cpu)->coherency_domain_number = sn_coherency_id;
654 uv_cpu_hub_info(cpu)->scir.offset = SCIR_LOCAL_MMR_BASE + lcpu; 656 uv_cpu_hub_info(cpu)->scir.offset = uv_scir_offset(apicid);
655 uv_node_to_blade[nid] = blade; 657 uv_node_to_blade[nid] = blade;
656 uv_cpu_to_blade[cpu] = blade; 658 uv_cpu_to_blade[cpu] = blade;
657 max_pnode = max(pnode, max_pnode); 659 max_pnode = max(pnode, max_pnode);
658 660
659 printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, " 661 printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, lcpu %d, blade %d\n",
660 "lcpu %d, blade %d\n", 662 cpu, apicid, pnode, nid, lcpu, blade);
661 cpu, per_cpu(x86_cpu_to_apicid, cpu), pnode, nid,
662 lcpu, blade);
663 } 663 }
664 664
665 /* Add blade/pnode info for nodes without cpus */ 665 /* Add blade/pnode info for nodes without cpus */
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index c223b7e895d9..d616c06e99b4 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -2347,7 +2347,7 @@ perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry)
2347 callchain_store(entry, PERF_CONTEXT_KERNEL); 2347 callchain_store(entry, PERF_CONTEXT_KERNEL);
2348 callchain_store(entry, regs->ip); 2348 callchain_store(entry, regs->ip);
2349 2349
2350 dump_trace(NULL, regs, NULL, 0, &backtrace_ops, entry); 2350 dump_trace(NULL, regs, NULL, regs->bp, &backtrace_ops, entry);
2351} 2351}
2352 2352
2353/* 2353/*
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 98c2cdeb599e..c6ee241c8a98 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -103,8 +103,8 @@ void show_regs_common(void)
103 if (!product) 103 if (!product)
104 product = ""; 104 product = "";
105 105
106 printk("\n"); 106 printk(KERN_CONT "\n");
107 printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s/%s\n", 107 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s %s/%s\n",
108 current->pid, current->comm, print_tainted(), 108 current->pid, current->comm, print_tainted(),
109 init_utsname()->release, 109 init_utsname()->release,
110 (int)strcspn(init_utsname()->version, " "), 110 (int)strcspn(init_utsname()->version, " "),
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 9c517b5858f0..37ad1e046aae 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -139,16 +139,16 @@ void __show_regs(struct pt_regs *regs, int all)
139 139
140 show_regs_common(); 140 show_regs_common();
141 141
142 printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", 142 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
143 (u16)regs->cs, regs->ip, regs->flags, 143 (u16)regs->cs, regs->ip, regs->flags,
144 smp_processor_id()); 144 smp_processor_id());
145 print_symbol("EIP is at %s\n", regs->ip); 145 print_symbol("EIP is at %s\n", regs->ip);
146 146
147 printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", 147 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
148 regs->ax, regs->bx, regs->cx, regs->dx); 148 regs->ax, regs->bx, regs->cx, regs->dx);
149 printk("ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n", 149 printk(KERN_DEFAULT "ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n",
150 regs->si, regs->di, regs->bp, sp); 150 regs->si, regs->di, regs->bp, sp);
151 printk(" DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n", 151 printk(KERN_DEFAULT " DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n",
152 (u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss); 152 (u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss);
153 153
154 if (!all) 154 if (!all)
@@ -158,19 +158,19 @@ void __show_regs(struct pt_regs *regs, int all)
158 cr2 = read_cr2(); 158 cr2 = read_cr2();
159 cr3 = read_cr3(); 159 cr3 = read_cr3();
160 cr4 = read_cr4_safe(); 160 cr4 = read_cr4_safe();
161 printk("CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", 161 printk(KERN_DEFAULT "CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n",
162 cr0, cr2, cr3, cr4); 162 cr0, cr2, cr3, cr4);
163 163
164 get_debugreg(d0, 0); 164 get_debugreg(d0, 0);
165 get_debugreg(d1, 1); 165 get_debugreg(d1, 1);
166 get_debugreg(d2, 2); 166 get_debugreg(d2, 2);
167 get_debugreg(d3, 3); 167 get_debugreg(d3, 3);
168 printk("DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n", 168 printk(KERN_DEFAULT "DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n",
169 d0, d1, d2, d3); 169 d0, d1, d2, d3);
170 170
171 get_debugreg(d6, 6); 171 get_debugreg(d6, 6);
172 get_debugreg(d7, 7); 172 get_debugreg(d7, 7);
173 printk("DR6: %08lx DR7: %08lx\n", 173 printk(KERN_DEFAULT "DR6: %08lx DR7: %08lx\n",
174 d6, d7); 174 d6, d7);
175} 175}
176 176
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 52fbd0c60198..f9e033150cdf 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -161,19 +161,19 @@ void __show_regs(struct pt_regs *regs, int all)
161 unsigned int ds, cs, es; 161 unsigned int ds, cs, es;
162 162
163 show_regs_common(); 163 show_regs_common();
164 printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); 164 printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
165 printk_address(regs->ip, 1); 165 printk_address(regs->ip, 1);
166 printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, 166 printk(KERN_DEFAULT "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss,
167 regs->sp, regs->flags); 167 regs->sp, regs->flags);
168 printk(KERN_INFO "RAX: %016lx RBX: %016lx RCX: %016lx\n", 168 printk(KERN_DEFAULT "RAX: %016lx RBX: %016lx RCX: %016lx\n",
169 regs->ax, regs->bx, regs->cx); 169 regs->ax, regs->bx, regs->cx);
170 printk(KERN_INFO "RDX: %016lx RSI: %016lx RDI: %016lx\n", 170 printk(KERN_DEFAULT "RDX: %016lx RSI: %016lx RDI: %016lx\n",
171 regs->dx, regs->si, regs->di); 171 regs->dx, regs->si, regs->di);
172 printk(KERN_INFO "RBP: %016lx R08: %016lx R09: %016lx\n", 172 printk(KERN_DEFAULT "RBP: %016lx R08: %016lx R09: %016lx\n",
173 regs->bp, regs->r8, regs->r9); 173 regs->bp, regs->r8, regs->r9);
174 printk(KERN_INFO "R10: %016lx R11: %016lx R12: %016lx\n", 174 printk(KERN_DEFAULT "R10: %016lx R11: %016lx R12: %016lx\n",
175 regs->r10, regs->r11, regs->r12); 175 regs->r10, regs->r11, regs->r12);
176 printk(KERN_INFO "R13: %016lx R14: %016lx R15: %016lx\n", 176 printk(KERN_DEFAULT "R13: %016lx R14: %016lx R15: %016lx\n",
177 regs->r13, regs->r14, regs->r15); 177 regs->r13, regs->r14, regs->r15);
178 178
179 asm("movl %%ds,%0" : "=r" (ds)); 179 asm("movl %%ds,%0" : "=r" (ds));
@@ -194,21 +194,21 @@ void __show_regs(struct pt_regs *regs, int all)
194 cr3 = read_cr3(); 194 cr3 = read_cr3();
195 cr4 = read_cr4(); 195 cr4 = read_cr4();
196 196
197 printk(KERN_INFO "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", 197 printk(KERN_DEFAULT "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n",
198 fs, fsindex, gs, gsindex, shadowgs); 198 fs, fsindex, gs, gsindex, shadowgs);
199 printk(KERN_INFO "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, 199 printk(KERN_DEFAULT "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds,
200 es, cr0); 200 es, cr0);
201 printk(KERN_INFO "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, 201 printk(KERN_DEFAULT "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3,
202 cr4); 202 cr4);
203 203
204 get_debugreg(d0, 0); 204 get_debugreg(d0, 0);
205 get_debugreg(d1, 1); 205 get_debugreg(d1, 1);
206 get_debugreg(d2, 2); 206 get_debugreg(d2, 2);
207 printk(KERN_INFO "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); 207 printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
208 get_debugreg(d3, 3); 208 get_debugreg(d3, 3);
209 get_debugreg(d6, 6); 209 get_debugreg(d6, 6);
210 get_debugreg(d7, 7); 210 get_debugreg(d7, 7);
211 printk(KERN_INFO "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); 211 printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
212} 212}
213 213
214void show_regs(struct pt_regs *regs) 214void show_regs(struct pt_regs *regs)
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index cd60c0bd1b32..3063a0c4858b 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -1150,6 +1150,7 @@ void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu)
1150 hrtimer_cancel(&apic->lapic_timer.timer); 1150 hrtimer_cancel(&apic->lapic_timer.timer);
1151 update_divide_count(apic); 1151 update_divide_count(apic);
1152 start_apic_timer(apic); 1152 start_apic_timer(apic);
1153 apic->irr_pending = true;
1153} 1154}
1154 1155
1155void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) 1156void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu)
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index a6017132fba8..58a0f1e88596 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -455,8 +455,6 @@ out_unlock:
455static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva) 455static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva)
456{ 456{
457 struct kvm_shadow_walk_iterator iterator; 457 struct kvm_shadow_walk_iterator iterator;
458 pt_element_t gpte;
459 gpa_t pte_gpa = -1;
460 int level; 458 int level;
461 u64 *sptep; 459 u64 *sptep;
462 int need_flush = 0; 460 int need_flush = 0;
@@ -470,10 +468,6 @@ static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva)
470 if (level == PT_PAGE_TABLE_LEVEL || 468 if (level == PT_PAGE_TABLE_LEVEL ||
471 ((level == PT_DIRECTORY_LEVEL && is_large_pte(*sptep))) || 469 ((level == PT_DIRECTORY_LEVEL && is_large_pte(*sptep))) ||
472 ((level == PT_PDPE_LEVEL && is_large_pte(*sptep)))) { 470 ((level == PT_PDPE_LEVEL && is_large_pte(*sptep)))) {
473 struct kvm_mmu_page *sp = page_header(__pa(sptep));
474
475 pte_gpa = (sp->gfn << PAGE_SHIFT);
476 pte_gpa += (sptep - sp->spt) * sizeof(pt_element_t);
477 471
478 if (is_shadow_present_pte(*sptep)) { 472 if (is_shadow_present_pte(*sptep)) {
479 rmap_remove(vcpu->kvm, sptep); 473 rmap_remove(vcpu->kvm, sptep);
@@ -492,18 +486,6 @@ static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva)
492 if (need_flush) 486 if (need_flush)
493 kvm_flush_remote_tlbs(vcpu->kvm); 487 kvm_flush_remote_tlbs(vcpu->kvm);
494 spin_unlock(&vcpu->kvm->mmu_lock); 488 spin_unlock(&vcpu->kvm->mmu_lock);
495
496 if (pte_gpa == -1)
497 return;
498 if (kvm_read_guest_atomic(vcpu->kvm, pte_gpa, &gpte,
499 sizeof(pt_element_t)))
500 return;
501 if (is_present_gpte(gpte) && (gpte & PT_ACCESSED_MASK)) {
502 if (mmu_topup_memory_caches(vcpu))
503 return;
504 kvm_mmu_pte_write(vcpu, pte_gpa, (const u8 *)&gpte,
505 sizeof(pt_element_t), 0);
506 }
507} 489}
508 490
509static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr) 491static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 9d068966fb2a..6651dbf58675 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1913,7 +1913,8 @@ static void kvm_vcpu_ioctl_x86_get_vcpu_events(struct kvm_vcpu *vcpu,
1913 1913
1914 events->sipi_vector = vcpu->arch.sipi_vector; 1914 events->sipi_vector = vcpu->arch.sipi_vector;
1915 1915
1916 events->flags = 0; 1916 events->flags = (KVM_VCPUEVENT_VALID_NMI_PENDING
1917 | KVM_VCPUEVENT_VALID_SIPI_VECTOR);
1917 1918
1918 vcpu_put(vcpu); 1919 vcpu_put(vcpu);
1919} 1920}
@@ -1921,7 +1922,8 @@ static void kvm_vcpu_ioctl_x86_get_vcpu_events(struct kvm_vcpu *vcpu,
1921static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, 1922static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,
1922 struct kvm_vcpu_events *events) 1923 struct kvm_vcpu_events *events)
1923{ 1924{
1924 if (events->flags) 1925 if (events->flags & ~(KVM_VCPUEVENT_VALID_NMI_PENDING
1926 | KVM_VCPUEVENT_VALID_SIPI_VECTOR))
1925 return -EINVAL; 1927 return -EINVAL;
1926 1928
1927 vcpu_load(vcpu); 1929 vcpu_load(vcpu);
@@ -1938,10 +1940,12 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,
1938 kvm_pic_clear_isr_ack(vcpu->kvm); 1940 kvm_pic_clear_isr_ack(vcpu->kvm);
1939 1941
1940 vcpu->arch.nmi_injected = events->nmi.injected; 1942 vcpu->arch.nmi_injected = events->nmi.injected;
1941 vcpu->arch.nmi_pending = events->nmi.pending; 1943 if (events->flags & KVM_VCPUEVENT_VALID_NMI_PENDING)
1944 vcpu->arch.nmi_pending = events->nmi.pending;
1942 kvm_x86_ops->set_nmi_mask(vcpu, events->nmi.masked); 1945 kvm_x86_ops->set_nmi_mask(vcpu, events->nmi.masked);
1943 1946
1944 vcpu->arch.sipi_vector = events->sipi_vector; 1947 if (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR)
1948 vcpu->arch.sipi_vector = events->sipi_vector;
1945 1949
1946 vcpu_put(vcpu); 1950 vcpu_put(vcpu);
1947 1951
diff --git a/arch/x86/mm/kmemcheck/error.c b/arch/x86/mm/kmemcheck/error.c
index 4901d0dafda6..af3b6c8a436f 100644
--- a/arch/x86/mm/kmemcheck/error.c
+++ b/arch/x86/mm/kmemcheck/error.c
@@ -106,26 +106,25 @@ void kmemcheck_error_recall(void)
106 106
107 switch (e->type) { 107 switch (e->type) {
108 case KMEMCHECK_ERROR_INVALID_ACCESS: 108 case KMEMCHECK_ERROR_INVALID_ACCESS:
109 printk(KERN_ERR "WARNING: kmemcheck: Caught %d-bit read " 109 printk(KERN_WARNING "WARNING: kmemcheck: Caught %d-bit read from %s memory (%p)\n",
110 "from %s memory (%p)\n",
111 8 * e->size, e->state < ARRAY_SIZE(desc) ? 110 8 * e->size, e->state < ARRAY_SIZE(desc) ?
112 desc[e->state] : "(invalid shadow state)", 111 desc[e->state] : "(invalid shadow state)",
113 (void *) e->address); 112 (void *) e->address);
114 113
115 printk(KERN_INFO); 114 printk(KERN_WARNING);
116 for (i = 0; i < SHADOW_COPY_SIZE; ++i) 115 for (i = 0; i < SHADOW_COPY_SIZE; ++i)
117 printk("%02x", e->memory_copy[i]); 116 printk(KERN_CONT "%02x", e->memory_copy[i]);
118 printk("\n"); 117 printk(KERN_CONT "\n");
119 118
120 printk(KERN_INFO); 119 printk(KERN_WARNING);
121 for (i = 0; i < SHADOW_COPY_SIZE; ++i) { 120 for (i = 0; i < SHADOW_COPY_SIZE; ++i) {
122 if (e->shadow_copy[i] < ARRAY_SIZE(short_desc)) 121 if (e->shadow_copy[i] < ARRAY_SIZE(short_desc))
123 printk(" %c", short_desc[e->shadow_copy[i]]); 122 printk(KERN_CONT " %c", short_desc[e->shadow_copy[i]]);
124 else 123 else
125 printk(" ?"); 124 printk(KERN_CONT " ?");
126 } 125 }
127 printk("\n"); 126 printk(KERN_CONT "\n");
128 printk(KERN_INFO "%*c\n", 2 + 2 127 printk(KERN_WARNING "%*c\n", 2 + 2
129 * (int) (e->address & (SHADOW_COPY_SIZE - 1)), '^'); 128 * (int) (e->address & (SHADOW_COPY_SIZE - 1)), '^');
130 break; 129 break;
131 case KMEMCHECK_ERROR_BUG: 130 case KMEMCHECK_ERROR_BUG:
diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index 145df00e0387..f939d603adfa 100644
--- a/arch/x86/pci/bus_numa.c
+++ b/arch/x86/pci/bus_numa.c
@@ -51,7 +51,7 @@ void x86_pci_root_bus_res_quirks(struct pci_bus *b)
51 } 51 }
52} 52}
53 53
54void __init update_res(struct pci_root_info *info, size_t start, 54void __devinit update_res(struct pci_root_info *info, size_t start,
55 size_t end, unsigned long flags, int merge) 55 size_t end, unsigned long flags, int merge)
56{ 56{
57 int i; 57 int i;
diff --git a/arch/x86/tools/chkobjdump.awk b/arch/x86/tools/chkobjdump.awk
index 5bbb5a33f220..fd1ab80be0de 100644
--- a/arch/x86/tools/chkobjdump.awk
+++ b/arch/x86/tools/chkobjdump.awk
@@ -8,14 +8,24 @@ BEGIN {
8 od_sver = 19; 8 od_sver = 19;
9} 9}
10 10
11/^GNU/ { 11/^GNU objdump/ {
12 split($3, ver, "."); 12 verstr = ""
13 for (i = 3; i <= NF; i++)
14 if (match($(i), "^[0-9]")) {
15 verstr = $(i);
16 break;
17 }
18 if (verstr == "") {
19 printf("Warning: Failed to find objdump version number.\n");
20 exit 0;
21 }
22 split(verstr, ver, ".");
13 if (ver[1] > od_ver || 23 if (ver[1] > od_ver ||
14 (ver[1] == od_ver && ver[2] >= od_sver)) { 24 (ver[1] == od_ver && ver[2] >= od_sver)) {
15 exit 1; 25 exit 1;
16 } else { 26 } else {
17 printf("Warning: objdump version %s is older than %d.%d\n", 27 printf("Warning: objdump version %s is older than %d.%d\n",
18 $4, od_ver, od_sver); 28 verstr, od_ver, od_sver);
19 print("Warning: Skipping posttest."); 29 print("Warning: Skipping posttest.");
20 # Logic is inverted, because we just skip test without error. 30 # Logic is inverted, because we just skip test without error.
21 exit 0; 31 exit 0;
diff --git a/block/blk-barrier.c b/block/blk-barrier.c
index 8873b9b439ff..8618d8996fea 100644
--- a/block/blk-barrier.c
+++ b/block/blk-barrier.c
@@ -402,7 +402,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
402 * our current implementations need. If we'll ever need 402 * our current implementations need. If we'll ever need
403 * more the interface will need revisiting. 403 * more the interface will need revisiting.
404 */ 404 */
405 page = alloc_page(GFP_KERNEL | __GFP_ZERO); 405 page = alloc_page(gfp_mask | __GFP_ZERO);
406 if (!page) 406 if (!page)
407 goto out_free_bio; 407 goto out_free_bio;
408 if (bio_add_pc_page(q, bio, page, sector_size, 0) < sector_size) 408 if (bio_add_pc_page(q, bio, page, sector_size, 0) < sector_size)
diff --git a/block/blk-settings.c b/block/blk-settings.c
index 6ae118d6e193..d52d4adc440b 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -505,21 +505,30 @@ static unsigned int lcm(unsigned int a, unsigned int b)
505 505
506/** 506/**
507 * blk_stack_limits - adjust queue_limits for stacked devices 507 * blk_stack_limits - adjust queue_limits for stacked devices
508 * @t: the stacking driver limits (top) 508 * @t: the stacking driver limits (top device)
509 * @b: the underlying queue limits (bottom) 509 * @b: the underlying queue limits (bottom, component device)
510 * @offset: offset to beginning of data within component device 510 * @offset: offset to beginning of data within component device
511 * 511 *
512 * Description: 512 * Description:
513 * Merges two queue_limit structs. Returns 0 if alignment didn't 513 * This function is used by stacking drivers like MD and DM to ensure
514 * change. Returns -1 if adding the bottom device caused 514 * that all component devices have compatible block sizes and
515 * misalignment. 515 * alignments. The stacking driver must provide a queue_limits
516 * struct (top) and then iteratively call the stacking function for
517 * all component (bottom) devices. The stacking function will
518 * attempt to combine the values and ensure proper alignment.
519 *
520 * Returns 0 if the top and bottom queue_limits are compatible. The
521 * top device's block sizes and alignment offsets may be adjusted to
522 * ensure alignment with the bottom device. If no compatible sizes
523 * and alignments exist, -1 is returned and the resulting top
524 * queue_limits will have the misaligned flag set to indicate that
525 * the alignment_offset is undefined.
516 */ 526 */
517int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, 527int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
518 sector_t offset) 528 sector_t offset)
519{ 529{
520 int ret; 530 sector_t alignment;
521 531 unsigned int top, bottom;
522 ret = 0;
523 532
524 t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors); 533 t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors);
525 t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors); 534 t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors);
@@ -537,6 +546,22 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
537 t->max_segment_size = min_not_zero(t->max_segment_size, 546 t->max_segment_size = min_not_zero(t->max_segment_size,
538 b->max_segment_size); 547 b->max_segment_size);
539 548
549 alignment = queue_limit_alignment_offset(b, offset);
550
551 /* Bottom device has different alignment. Check that it is
552 * compatible with the current top alignment.
553 */
554 if (t->alignment_offset != alignment) {
555
556 top = max(t->physical_block_size, t->io_min)
557 + t->alignment_offset;
558 bottom = max(b->physical_block_size, b->io_min) + alignment;
559
560 /* Verify that top and bottom intervals line up */
561 if (max(top, bottom) & (min(top, bottom) - 1))
562 t->misaligned = 1;
563 }
564
540 t->logical_block_size = max(t->logical_block_size, 565 t->logical_block_size = max(t->logical_block_size,
541 b->logical_block_size); 566 b->logical_block_size);
542 567
@@ -544,54 +569,64 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
544 b->physical_block_size); 569 b->physical_block_size);
545 570
546 t->io_min = max(t->io_min, b->io_min); 571 t->io_min = max(t->io_min, b->io_min);
572 t->io_opt = lcm(t->io_opt, b->io_opt);
573
547 t->no_cluster |= b->no_cluster; 574 t->no_cluster |= b->no_cluster;
548 t->discard_zeroes_data &= b->discard_zeroes_data; 575 t->discard_zeroes_data &= b->discard_zeroes_data;
549 576
550 /* Bottom device offset aligned? */ 577 /* Physical block size a multiple of the logical block size? */
551 if (offset && 578 if (t->physical_block_size & (t->logical_block_size - 1)) {
552 (offset & (b->physical_block_size - 1)) != b->alignment_offset) { 579 t->physical_block_size = t->logical_block_size;
553 t->misaligned = 1; 580 t->misaligned = 1;
554 ret = -1;
555 } 581 }
556 582
557 /* 583 /* Minimum I/O a multiple of the physical block size? */
558 * Temporarily disable discard granularity. It's currently buggy 584 if (t->io_min & (t->physical_block_size - 1)) {
559 * since we default to 0 for discard_granularity, hence this 585 t->io_min = t->physical_block_size;
560 * "failure" will always trigger for non-zero offsets. 586 t->misaligned = 1;
561 */
562#if 0
563 if (offset &&
564 (offset & (b->discard_granularity - 1)) != b->discard_alignment) {
565 t->discard_misaligned = 1;
566 ret = -1;
567 } 587 }
568#endif
569
570 /* If top has no alignment offset, inherit from bottom */
571 if (!t->alignment_offset)
572 t->alignment_offset =
573 b->alignment_offset & (b->physical_block_size - 1);
574 588
575 if (!t->discard_alignment) 589 /* Optimal I/O a multiple of the physical block size? */
576 t->discard_alignment = 590 if (t->io_opt & (t->physical_block_size - 1)) {
577 b->discard_alignment & (b->discard_granularity - 1); 591 t->io_opt = 0;
578
579 /* Top device aligned on logical block boundary? */
580 if (t->alignment_offset & (t->logical_block_size - 1)) {
581 t->misaligned = 1; 592 t->misaligned = 1;
582 ret = -1;
583 } 593 }
584 594
585 /* Find lcm() of optimal I/O size and granularity */ 595 /* Find lowest common alignment_offset */
586 t->io_opt = lcm(t->io_opt, b->io_opt); 596 t->alignment_offset = lcm(t->alignment_offset, alignment)
587 t->discard_granularity = lcm(t->discard_granularity, 597 & (max(t->physical_block_size, t->io_min) - 1);
588 b->discard_granularity);
589 598
590 /* Verify that optimal I/O size is a multiple of io_min */ 599 /* Verify that new alignment_offset is on a logical block boundary */
591 if (t->io_min && t->io_opt % t->io_min) 600 if (t->alignment_offset & (t->logical_block_size - 1))
592 ret = -1; 601 t->misaligned = 1;
602
603 /* Discard alignment and granularity */
604 if (b->discard_granularity) {
605 unsigned int granularity = b->discard_granularity;
606 offset &= granularity - 1;
607
608 alignment = (granularity + b->discard_alignment - offset)
609 & (granularity - 1);
610
611 if (t->discard_granularity != 0 &&
612 t->discard_alignment != alignment) {
613 top = t->discard_granularity + t->discard_alignment;
614 bottom = b->discard_granularity + alignment;
615
616 /* Verify that top and bottom intervals line up */
617 if (max(top, bottom) & (min(top, bottom) - 1))
618 t->discard_misaligned = 1;
619 }
620
621 t->max_discard_sectors = min_not_zero(t->max_discard_sectors,
622 b->max_discard_sectors);
623 t->discard_granularity = max(t->discard_granularity,
624 b->discard_granularity);
625 t->discard_alignment = lcm(t->discard_alignment, alignment) &
626 (t->discard_granularity - 1);
627 }
593 628
594 return ret; 629 return t->misaligned ? -1 : 0;
595} 630}
596EXPORT_SYMBOL(blk_stack_limits); 631EXPORT_SYMBOL(blk_stack_limits);
597 632
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index e2f80463ed0d..918c7fd9aeb1 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -208,8 +208,6 @@ struct cfq_data {
208 /* Root service tree for cfq_groups */ 208 /* Root service tree for cfq_groups */
209 struct cfq_rb_root grp_service_tree; 209 struct cfq_rb_root grp_service_tree;
210 struct cfq_group root_group; 210 struct cfq_group root_group;
211 /* Number of active cfq groups on group service tree */
212 int nr_groups;
213 211
214 /* 212 /*
215 * The priority currently being served 213 * The priority currently being served
@@ -294,8 +292,7 @@ static struct cfq_group *cfq_get_next_cfqg(struct cfq_data *cfqd);
294 292
295static struct cfq_rb_root *service_tree_for(struct cfq_group *cfqg, 293static struct cfq_rb_root *service_tree_for(struct cfq_group *cfqg,
296 enum wl_prio_t prio, 294 enum wl_prio_t prio,
297 enum wl_type_t type, 295 enum wl_type_t type)
298 struct cfq_data *cfqd)
299{ 296{
300 if (!cfqg) 297 if (!cfqg)
301 return NULL; 298 return NULL;
@@ -842,7 +839,6 @@ cfq_group_service_tree_add(struct cfq_data *cfqd, struct cfq_group *cfqg)
842 839
843 __cfq_group_service_tree_add(st, cfqg); 840 __cfq_group_service_tree_add(st, cfqg);
844 cfqg->on_st = true; 841 cfqg->on_st = true;
845 cfqd->nr_groups++;
846 st->total_weight += cfqg->weight; 842 st->total_weight += cfqg->weight;
847} 843}
848 844
@@ -863,7 +859,6 @@ cfq_group_service_tree_del(struct cfq_data *cfqd, struct cfq_group *cfqg)
863 859
864 cfq_log_cfqg(cfqd, cfqg, "del_from_rr group"); 860 cfq_log_cfqg(cfqd, cfqg, "del_from_rr group");
865 cfqg->on_st = false; 861 cfqg->on_st = false;
866 cfqd->nr_groups--;
867 st->total_weight -= cfqg->weight; 862 st->total_weight -= cfqg->weight;
868 if (!RB_EMPTY_NODE(&cfqg->rb_node)) 863 if (!RB_EMPTY_NODE(&cfqg->rb_node))
869 cfq_rb_erase(&cfqg->rb_node, st); 864 cfq_rb_erase(&cfqg->rb_node, st);
@@ -1150,7 +1145,7 @@ static void cfq_service_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq,
1150#endif 1145#endif
1151 1146
1152 service_tree = service_tree_for(cfqq->cfqg, cfqq_prio(cfqq), 1147 service_tree = service_tree_for(cfqq->cfqg, cfqq_prio(cfqq),
1153 cfqq_type(cfqq), cfqd); 1148 cfqq_type(cfqq));
1154 if (cfq_class_idle(cfqq)) { 1149 if (cfq_class_idle(cfqq)) {
1155 rb_key = CFQ_IDLE_DELAY; 1150 rb_key = CFQ_IDLE_DELAY;
1156 parent = rb_last(&service_tree->rb); 1151 parent = rb_last(&service_tree->rb);
@@ -1513,9 +1508,6 @@ static int cfq_allow_merge(struct request_queue *q, struct request *rq,
1513 struct cfq_io_context *cic; 1508 struct cfq_io_context *cic;
1514 struct cfq_queue *cfqq; 1509 struct cfq_queue *cfqq;
1515 1510
1516 /* Deny merge if bio and rq don't belong to same cfq group */
1517 if ((RQ_CFQQ(rq))->cfqg != cfq_get_cfqg(cfqd, 0))
1518 return false;
1519 /* 1511 /*
1520 * Disallow merge of a sync bio into an async request. 1512 * Disallow merge of a sync bio into an async request.
1521 */ 1513 */
@@ -1616,7 +1608,7 @@ static struct cfq_queue *cfq_get_next_queue(struct cfq_data *cfqd)
1616{ 1608{
1617 struct cfq_rb_root *service_tree = 1609 struct cfq_rb_root *service_tree =
1618 service_tree_for(cfqd->serving_group, cfqd->serving_prio, 1610 service_tree_for(cfqd->serving_group, cfqd->serving_prio,
1619 cfqd->serving_type, cfqd); 1611 cfqd->serving_type);
1620 1612
1621 if (!cfqd->rq_queued) 1613 if (!cfqd->rq_queued)
1622 return NULL; 1614 return NULL;
@@ -1675,13 +1667,17 @@ static inline sector_t cfq_dist_from_last(struct cfq_data *cfqd,
1675#define CFQQ_SEEKY(cfqq) ((cfqq)->seek_mean > CFQQ_SEEK_THR) 1667#define CFQQ_SEEKY(cfqq) ((cfqq)->seek_mean > CFQQ_SEEK_THR)
1676 1668
1677static inline int cfq_rq_close(struct cfq_data *cfqd, struct cfq_queue *cfqq, 1669static inline int cfq_rq_close(struct cfq_data *cfqd, struct cfq_queue *cfqq,
1678 struct request *rq) 1670 struct request *rq, bool for_preempt)
1679{ 1671{
1680 sector_t sdist = cfqq->seek_mean; 1672 sector_t sdist = cfqq->seek_mean;
1681 1673
1682 if (!sample_valid(cfqq->seek_samples)) 1674 if (!sample_valid(cfqq->seek_samples))
1683 sdist = CFQQ_SEEK_THR; 1675 sdist = CFQQ_SEEK_THR;
1684 1676
1677 /* if seek_mean is big, using it as close criteria is meaningless */
1678 if (sdist > CFQQ_SEEK_THR && !for_preempt)
1679 sdist = CFQQ_SEEK_THR;
1680
1685 return cfq_dist_from_last(cfqd, rq) <= sdist; 1681 return cfq_dist_from_last(cfqd, rq) <= sdist;
1686} 1682}
1687 1683
@@ -1709,7 +1705,7 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd,
1709 * will contain the closest sector. 1705 * will contain the closest sector.
1710 */ 1706 */
1711 __cfqq = rb_entry(parent, struct cfq_queue, p_node); 1707 __cfqq = rb_entry(parent, struct cfq_queue, p_node);
1712 if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq)) 1708 if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq, false))
1713 return __cfqq; 1709 return __cfqq;
1714 1710
1715 if (blk_rq_pos(__cfqq->next_rq) < sector) 1711 if (blk_rq_pos(__cfqq->next_rq) < sector)
@@ -1720,7 +1716,7 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd,
1720 return NULL; 1716 return NULL;
1721 1717
1722 __cfqq = rb_entry(node, struct cfq_queue, p_node); 1718 __cfqq = rb_entry(node, struct cfq_queue, p_node);
1723 if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq)) 1719 if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq, false))
1724 return __cfqq; 1720 return __cfqq;
1725 1721
1726 return NULL; 1722 return NULL;
@@ -1963,8 +1959,7 @@ static void cfq_setup_merge(struct cfq_queue *cfqq, struct cfq_queue *new_cfqq)
1963} 1959}
1964 1960
1965static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd, 1961static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd,
1966 struct cfq_group *cfqg, enum wl_prio_t prio, 1962 struct cfq_group *cfqg, enum wl_prio_t prio)
1967 bool prio_changed)
1968{ 1963{
1969 struct cfq_queue *queue; 1964 struct cfq_queue *queue;
1970 int i; 1965 int i;
@@ -1972,24 +1967,9 @@ static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd,
1972 unsigned long lowest_key = 0; 1967 unsigned long lowest_key = 0;
1973 enum wl_type_t cur_best = SYNC_NOIDLE_WORKLOAD; 1968 enum wl_type_t cur_best = SYNC_NOIDLE_WORKLOAD;
1974 1969
1975 if (prio_changed) { 1970 for (i = 0; i <= SYNC_WORKLOAD; ++i) {
1976 /* 1971 /* select the one with lowest rb_key */
1977 * When priorities switched, we prefer starting 1972 queue = cfq_rb_first(service_tree_for(cfqg, prio, i));
1978 * from SYNC_NOIDLE (first choice), or just SYNC
1979 * over ASYNC
1980 */
1981 if (service_tree_for(cfqg, prio, cur_best, cfqd)->count)
1982 return cur_best;
1983 cur_best = SYNC_WORKLOAD;
1984 if (service_tree_for(cfqg, prio, cur_best, cfqd)->count)
1985 return cur_best;
1986
1987 return ASYNC_WORKLOAD;
1988 }
1989
1990 for (i = 0; i < 3; ++i) {
1991 /* otherwise, select the one with lowest rb_key */
1992 queue = cfq_rb_first(service_tree_for(cfqg, prio, i, cfqd));
1993 if (queue && 1973 if (queue &&
1994 (!key_valid || time_before(queue->rb_key, lowest_key))) { 1974 (!key_valid || time_before(queue->rb_key, lowest_key))) {
1995 lowest_key = queue->rb_key; 1975 lowest_key = queue->rb_key;
@@ -2003,8 +1983,6 @@ static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd,
2003 1983
2004static void choose_service_tree(struct cfq_data *cfqd, struct cfq_group *cfqg) 1984static void choose_service_tree(struct cfq_data *cfqd, struct cfq_group *cfqg)
2005{ 1985{
2006 enum wl_prio_t previous_prio = cfqd->serving_prio;
2007 bool prio_changed;
2008 unsigned slice; 1986 unsigned slice;
2009 unsigned count; 1987 unsigned count;
2010 struct cfq_rb_root *st; 1988 struct cfq_rb_root *st;
@@ -2032,24 +2010,19 @@ static void choose_service_tree(struct cfq_data *cfqd, struct cfq_group *cfqg)
2032 * (SYNC, SYNC_NOIDLE, ASYNC), and to compute a workload 2010 * (SYNC, SYNC_NOIDLE, ASYNC), and to compute a workload
2033 * expiration time 2011 * expiration time
2034 */ 2012 */
2035 prio_changed = (cfqd->serving_prio != previous_prio); 2013 st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type);
2036 st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type,
2037 cfqd);
2038 count = st->count; 2014 count = st->count;
2039 2015
2040 /* 2016 /*
2041 * If priority didn't change, check workload expiration, 2017 * check workload expiration, and that we still have other queues ready
2042 * and that we still have other queues ready
2043 */ 2018 */
2044 if (!prio_changed && count && 2019 if (count && !time_after(jiffies, cfqd->workload_expires))
2045 !time_after(jiffies, cfqd->workload_expires))
2046 return; 2020 return;
2047 2021
2048 /* otherwise select new workload type */ 2022 /* otherwise select new workload type */
2049 cfqd->serving_type = 2023 cfqd->serving_type =
2050 cfq_choose_wl(cfqd, cfqg, cfqd->serving_prio, prio_changed); 2024 cfq_choose_wl(cfqd, cfqg, cfqd->serving_prio);
2051 st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type, 2025 st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type);
2052 cfqd);
2053 count = st->count; 2026 count = st->count;
2054 2027
2055 /* 2028 /*
@@ -3143,7 +3116,7 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq,
3143 * if this request is as-good as one we would expect from the 3116 * if this request is as-good as one we would expect from the
3144 * current cfqq, let it preempt 3117 * current cfqq, let it preempt
3145 */ 3118 */
3146 if (cfq_rq_close(cfqd, cfqq, rq)) 3119 if (cfq_rq_close(cfqd, cfqq, rq, true))
3147 return true; 3120 return true;
3148 3121
3149 return false; 3122 return false;
diff --git a/crypto/async_tx/raid6test.c b/crypto/async_tx/raid6test.c
index 3ec27c7e62ea..f84f6b4301d9 100644
--- a/crypto/async_tx/raid6test.c
+++ b/crypto/async_tx/raid6test.c
@@ -214,6 +214,13 @@ static int raid6_test(void)
214 err += test(4, &tests); 214 err += test(4, &tests);
215 if (NDISKS > 5) 215 if (NDISKS > 5)
216 err += test(5, &tests); 216 err += test(5, &tests);
217 /* the 11 and 12 disk cases are special for ioatdma (p-disabled
218 * q-continuation without extended descriptor)
219 */
220 if (NDISKS > 12) {
221 err += test(11, &tests);
222 err += test(12, &tests);
223 }
217 err += test(NDISKS, &tests); 224 err += test(NDISKS, &tests);
218 225
219 pr("\n"); 226 pr("\n");
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 8a07363417ed..368ae6d3a096 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -28,7 +28,7 @@ source "drivers/md/Kconfig"
28 28
29source "drivers/message/fusion/Kconfig" 29source "drivers/message/fusion/Kconfig"
30 30
31source "drivers/ieee1394/Kconfig" 31source "drivers/firewire/Kconfig"
32 32
33source "drivers/message/i2o/Kconfig" 33source "drivers/message/i2o/Kconfig"
34 34
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 5f2c379ab7bf..79d33d908b5a 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -81,6 +81,23 @@ static int acpi_sleep_prepare(u32 acpi_state)
81#ifdef CONFIG_ACPI_SLEEP 81#ifdef CONFIG_ACPI_SLEEP
82static u32 acpi_target_sleep_state = ACPI_STATE_S0; 82static u32 acpi_target_sleep_state = ACPI_STATE_S0;
83/* 83/*
84 * According to the ACPI specification the BIOS should make sure that ACPI is
85 * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still,
86 * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI
87 * on such systems during resume. Unfortunately that doesn't help in
88 * particularly pathological cases in which SCI_EN has to be set directly on
89 * resume, although the specification states very clearly that this flag is
90 * owned by the hardware. The set_sci_en_on_resume variable will be set in such
91 * cases.
92 */
93static bool set_sci_en_on_resume;
94
95void __init acpi_set_sci_en_on_resume(void)
96{
97 set_sci_en_on_resume = true;
98}
99
100/*
84 * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the 101 * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the
85 * user to request that behavior by using the 'acpi_old_suspend_ordering' 102 * user to request that behavior by using the 'acpi_old_suspend_ordering'
86 * kernel command line option that causes the following variable to be set. 103 * kernel command line option that causes the following variable to be set.
@@ -170,18 +187,6 @@ static void acpi_pm_end(void)
170#endif /* CONFIG_ACPI_SLEEP */ 187#endif /* CONFIG_ACPI_SLEEP */
171 188
172#ifdef CONFIG_SUSPEND 189#ifdef CONFIG_SUSPEND
173/*
174 * According to the ACPI specification the BIOS should make sure that ACPI is
175 * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still,
176 * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI
177 * on such systems during resume. Unfortunately that doesn't help in
178 * particularly pathological cases in which SCI_EN has to be set directly on
179 * resume, although the specification states very clearly that this flag is
180 * owned by the hardware. The set_sci_en_on_resume variable will be set in such
181 * cases.
182 */
183static bool set_sci_en_on_resume;
184
185extern void do_suspend_lowlevel(void); 190extern void do_suspend_lowlevel(void);
186 191
187static u32 acpi_suspend_states[] = { 192static u32 acpi_suspend_states[] = {
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 05dff631591c..72e76b4b6538 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -999,8 +999,10 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
999 sprintf(name, "acpi_video%d", count++); 999 sprintf(name, "acpi_video%d", count++);
1000 device->backlight = backlight_device_register(name, 1000 device->backlight = backlight_device_register(name,
1001 NULL, device, &acpi_backlight_ops); 1001 NULL, device, &acpi_backlight_ops);
1002 device->backlight->props.max_brightness = device->brightness->count-3;
1003 kfree(name); 1002 kfree(name);
1003 if (IS_ERR(device->backlight))
1004 return;
1005 device->backlight->props.max_brightness = device->brightness->count-3;
1004 1006
1005 result = sysfs_create_link(&device->backlight->dev.kobj, 1007 result = sysfs_create_link(&device->backlight->dev.kobj,
1006 &device->dev->dev.kobj, "device"); 1008 &device->dev->dev.kobj, "device");
@@ -1979,6 +1981,10 @@ acpi_video_switch_brightness(struct acpi_video_device *device, int event)
1979 unsigned long long level_current, level_next; 1981 unsigned long long level_current, level_next;
1980 int result = -EINVAL; 1982 int result = -EINVAL;
1981 1983
1984 /* no warning message if acpi_backlight=vendor is used */
1985 if (!acpi_video_backlight_support())
1986 return 0;
1987
1982 if (!device->brightness) 1988 if (!device->brightness)
1983 goto out; 1989 goto out;
1984 1990
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c
index eb4fa1943944..ce1fa923c414 100644
--- a/drivers/block/DAC960.c
+++ b/drivers/block/DAC960.c
@@ -7101,7 +7101,7 @@ static struct DAC960_privdata DAC960_BA_privdata = {
7101 7101
7102static struct DAC960_privdata DAC960_LP_privdata = { 7102static struct DAC960_privdata DAC960_LP_privdata = {
7103 .HardwareType = DAC960_LP_Controller, 7103 .HardwareType = DAC960_LP_Controller,
7104 .FirmwareType = DAC960_LP_Controller, 7104 .FirmwareType = DAC960_V2_Controller,
7105 .InterruptHandler = DAC960_LP_InterruptHandler, 7105 .InterruptHandler = DAC960_LP_InterruptHandler,
7106 .MemoryWindowSize = DAC960_LP_RegisterWindowSize, 7106 .MemoryWindowSize = DAC960_LP_RegisterWindowSize,
7107}; 7107};
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 13bb69d2abb3..64a223b0cc22 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -735,21 +735,6 @@ diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector
735 part_stat_unlock(); 735 part_stat_unlock();
736} 736}
737 737
738/*
739 * Ensure we don't create aliases in VI caches
740 */
741static inline void
742killalias(struct bio *bio)
743{
744 struct bio_vec *bv;
745 int i;
746
747 if (bio_data_dir(bio) == READ)
748 __bio_for_each_segment(bv, bio, i, 0) {
749 flush_dcache_page(bv->bv_page);
750 }
751}
752
753void 738void
754aoecmd_ata_rsp(struct sk_buff *skb) 739aoecmd_ata_rsp(struct sk_buff *skb)
755{ 740{
@@ -871,7 +856,7 @@ aoecmd_ata_rsp(struct sk_buff *skb)
871 if (buf->flags & BUFFL_FAIL) 856 if (buf->flags & BUFFL_FAIL)
872 bio_endio(buf->bio, -EIO); 857 bio_endio(buf->bio, -EIO);
873 else { 858 else {
874 killalias(buf->bio); 859 bio_flush_dcache_pages(buf->bio);
875 bio_endio(buf->bio, 0); 860 bio_endio(buf->bio, 0);
876 } 861 }
877 mempool_free(buf, d->bufpool); 862 mempool_free(buf, d->bufpool);
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index 2312d782fe99..c97558763430 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -1490,7 +1490,7 @@ void drbd_bump_write_ordering(struct drbd_conf *mdev, enum write_ordering_e wo);
1490 1490
1491/* drbd_proc.c */ 1491/* drbd_proc.c */
1492extern struct proc_dir_entry *drbd_proc; 1492extern struct proc_dir_entry *drbd_proc;
1493extern struct file_operations drbd_proc_fops; 1493extern const struct file_operations drbd_proc_fops;
1494extern const char *drbd_conn_str(enum drbd_conns s); 1494extern const char *drbd_conn_str(enum drbd_conns s);
1495extern const char *drbd_role_str(enum drbd_role s); 1495extern const char *drbd_role_str(enum drbd_role s);
1496 1496
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 157d1e4343c2..9348f33f6242 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -27,7 +27,6 @@
27 */ 27 */
28 28
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/version.h>
31#include <linux/drbd.h> 30#include <linux/drbd.h>
32#include <asm/uaccess.h> 31#include <asm/uaccess.h>
33#include <asm/types.h> 32#include <asm/types.h>
@@ -151,7 +150,7 @@ wait_queue_head_t drbd_pp_wait;
151 150
152DEFINE_RATELIMIT_STATE(drbd_ratelimit_state, 5 * HZ, 5); 151DEFINE_RATELIMIT_STATE(drbd_ratelimit_state, 5 * HZ, 5);
153 152
154static struct block_device_operations drbd_ops = { 153static const struct block_device_operations drbd_ops = {
155 .owner = THIS_MODULE, 154 .owner = THIS_MODULE,
156 .open = drbd_open, 155 .open = drbd_open,
157 .release = drbd_release, 156 .release = drbd_release,
@@ -3623,7 +3622,7 @@ _drbd_fault_random(struct fault_random_state *rsp)
3623{ 3622{
3624 long refresh; 3623 long refresh;
3625 3624
3626 if (--rsp->count < 0) { 3625 if (!rsp->count--) {
3627 get_random_bytes(&refresh, sizeof(refresh)); 3626 get_random_bytes(&refresh, sizeof(refresh));
3628 rsp->state += refresh; 3627 rsp->state += refresh;
3629 rsp->count = FAULT_RANDOM_REFRESH; 3628 rsp->count = FAULT_RANDOM_REFRESH;
diff --git a/drivers/block/drbd/drbd_proc.c b/drivers/block/drbd/drbd_proc.c
index bdd0b4943b10..df8ad9660d8f 100644
--- a/drivers/block/drbd/drbd_proc.c
+++ b/drivers/block/drbd/drbd_proc.c
@@ -38,7 +38,7 @@ static int drbd_proc_open(struct inode *inode, struct file *file);
38 38
39 39
40struct proc_dir_entry *drbd_proc; 40struct proc_dir_entry *drbd_proc;
41struct file_operations drbd_proc_fops = { 41const struct file_operations drbd_proc_fops = {
42 .owner = THIS_MODULE, 42 .owner = THIS_MODULE,
43 .open = drbd_proc_open, 43 .open = drbd_proc_open,
44 .read = seq_read, 44 .read = seq_read,
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index c548f24f54a1..259c1351b152 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -28,7 +28,6 @@
28#include <asm/uaccess.h> 28#include <asm/uaccess.h>
29#include <net/sock.h> 29#include <net/sock.h>
30 30
31#include <linux/version.h>
32#include <linux/drbd.h> 31#include <linux/drbd.h>
33#include <linux/fs.h> 32#include <linux/fs.h>
34#include <linux/file.h> 33#include <linux/file.h>
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
index ed8796f1112d..b453c2bca3be 100644
--- a/drivers/block/drbd/drbd_worker.c
+++ b/drivers/block/drbd/drbd_worker.c
@@ -24,7 +24,6 @@
24 */ 24 */
25 25
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/version.h>
28#include <linux/drbd.h> 27#include <linux/drbd.h>
29#include <linux/sched.h> 28#include <linux/sched.h>
30#include <linux/smp_lock.h> 29#include <linux/smp_lock.h>
@@ -34,7 +33,6 @@
34#include <linux/mm_inline.h> 33#include <linux/mm_inline.h>
35#include <linux/slab.h> 34#include <linux/slab.h>
36#include <linux/random.h> 35#include <linux/random.h>
37#include <linux/mm.h>
38#include <linux/string.h> 36#include <linux/string.h>
39#include <linux/scatterlist.h> 37#include <linux/scatterlist.h>
40 38
diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c
index e0339aaa1815..02b2583df7fc 100644
--- a/drivers/block/mg_disk.c
+++ b/drivers/block/mg_disk.c
@@ -860,7 +860,7 @@ static int mg_probe(struct platform_device *plat_dev)
860 err = -EINVAL; 860 err = -EINVAL;
861 goto probe_err_2; 861 goto probe_err_2;
862 } 862 }
863 host->dev_base = ioremap(rsc->start , rsc->end + 1); 863 host->dev_base = ioremap(rsc->start, resource_size(rsc));
864 if (!host->dev_base) { 864 if (!host->dev_base) {
865 printk(KERN_ERR "%s:%d ioremap fail\n", 865 printk(KERN_ERR "%s:%d ioremap fail\n",
866 __func__, __LINE__); 866 __func__, __LINE__);
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c
index 2fb2e6cc322a..5aa7a586a7ff 100644
--- a/drivers/char/agp/amd64-agp.c
+++ b/drivers/char/agp/amd64-agp.c
@@ -725,9 +725,14 @@ static struct pci_driver agp_amd64_pci_driver = {
725int __init agp_amd64_init(void) 725int __init agp_amd64_init(void)
726{ 726{
727 int err = 0; 727 int err = 0;
728 static int done = 0;
728 729
729 if (agp_off) 730 if (agp_off)
730 return -EINVAL; 731 return -EINVAL;
732
733 if (done++)
734 return agp_bridges_found ? 0 : -ENODEV;
735
731 err = pci_register_driver(&agp_amd64_pci_driver); 736 err = pci_register_driver(&agp_amd64_pci_driver);
732 if (err < 0) 737 if (err < 0)
733 return err; 738 return err;
@@ -771,12 +776,8 @@ static void __exit agp_amd64_cleanup(void)
771 pci_unregister_driver(&agp_amd64_pci_driver); 776 pci_unregister_driver(&agp_amd64_pci_driver);
772} 777}
773 778
774/* On AMD64 the PCI driver needs to initialize this driver early
775 for the IOMMU, so it has to be called via a backdoor. */
776#ifndef CONFIG_GART_IOMMU
777module_init(agp_amd64_init); 779module_init(agp_amd64_init);
778module_exit(agp_amd64_cleanup); 780module_exit(agp_amd64_cleanup);
779#endif
780 781
781MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen"); 782MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen");
782module_param(agp_try_unsupported, bool, 0); 783module_param(agp_try_unsupported, bool, 0);
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index e989f67bb61f..3d9c61e5acbf 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -158,10 +158,11 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
158 goto out; 158 goto out;
159 } 159 }
160 } 160 }
161out_unlock:
162 mutex_unlock(&rng_mutex);
163out: 161out:
164 return ret ? : err; 162 return ret ? : err;
163out_unlock:
164 mutex_unlock(&rng_mutex);
165 goto out;
165} 166}
166 167
167 168
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 679cd08b80b4..176f1751237f 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -3204,7 +3204,7 @@ static __devinit int init_ipmi_si(void)
3204#ifdef CONFIG_ACPI 3204#ifdef CONFIG_ACPI
3205 spmi_find_bmc(); 3205 spmi_find_bmc();
3206#endif 3206#endif
3207#ifdef CONFIG_PNP 3207#ifdef CONFIG_ACPI
3208 pnp_register_driver(&ipmi_pnp_driver); 3208 pnp_register_driver(&ipmi_pnp_driver);
3209#endif 3209#endif
3210 3210
@@ -3330,7 +3330,7 @@ static __exit void cleanup_ipmi_si(void)
3330#ifdef CONFIG_PCI 3330#ifdef CONFIG_PCI
3331 pci_unregister_driver(&ipmi_pci_driver); 3331 pci_unregister_driver(&ipmi_pci_driver);
3332#endif 3332#endif
3333#ifdef CONFIG_PNP 3333#ifdef CONFIG_ACPI
3334 pnp_unregister_driver(&ipmi_pnp_driver); 3334 pnp_unregister_driver(&ipmi_pnp_driver);
3335#endif 3335#endif
3336 3336
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
index 0798754a607c..bba727c3807e 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -50,7 +50,6 @@
50#include <linux/err.h> 50#include <linux/err.h>
51#include <linux/kfifo.h> 51#include <linux/kfifo.h>
52#include <linux/platform_device.h> 52#include <linux/platform_device.h>
53#include <linux/smp_lock.h>
54 53
55#include <asm/uaccess.h> 54#include <asm/uaccess.h>
56#include <asm/io.h> 55#include <asm/io.h>
@@ -905,14 +904,13 @@ static int sonypi_misc_release(struct inode *inode, struct file *file)
905 904
906static int sonypi_misc_open(struct inode *inode, struct file *file) 905static int sonypi_misc_open(struct inode *inode, struct file *file)
907{ 906{
908 lock_kernel();
909 mutex_lock(&sonypi_device.lock); 907 mutex_lock(&sonypi_device.lock);
910 /* Flush input queue on first open */ 908 /* Flush input queue on first open */
911 if (!sonypi_device.open_count) 909 if (!sonypi_device.open_count)
912 kfifo_reset(&sonypi_device.fifo); 910 kfifo_reset(&sonypi_device.fifo);
913 sonypi_device.open_count++; 911 sonypi_device.open_count++;
914 mutex_unlock(&sonypi_device.lock); 912 mutex_unlock(&sonypi_device.lock);
915 unlock_kernel(); 913
916 return 0; 914 return 0;
917} 915}
918 916
@@ -955,10 +953,10 @@ static unsigned int sonypi_misc_poll(struct file *file, poll_table *wait)
955 return 0; 953 return 0;
956} 954}
957 955
958static int sonypi_misc_ioctl(struct inode *ip, struct file *fp, 956static long sonypi_misc_ioctl(struct file *fp,
959 unsigned int cmd, unsigned long arg) 957 unsigned int cmd, unsigned long arg)
960{ 958{
961 int ret = 0; 959 long ret = 0;
962 void __user *argp = (void __user *)arg; 960 void __user *argp = (void __user *)arg;
963 u8 val8; 961 u8 val8;
964 u16 val16; 962 u16 val16;
@@ -1074,7 +1072,8 @@ static const struct file_operations sonypi_misc_fops = {
1074 .open = sonypi_misc_open, 1072 .open = sonypi_misc_open,
1075 .release = sonypi_misc_release, 1073 .release = sonypi_misc_release,
1076 .fasync = sonypi_misc_fasync, 1074 .fasync = sonypi_misc_fasync,
1077 .ioctl = sonypi_misc_ioctl, 1075 .unlocked_ioctl = sonypi_misc_ioctl,
1076 .llseek = no_llseek,
1078}; 1077};
1079 1078
1080static struct miscdevice sonypi_misc_device = { 1079static struct miscdevice sonypi_misc_device = {
diff --git a/drivers/char/toshiba.c b/drivers/char/toshiba.c
index 663cd15d7c78..f8bc79f6de34 100644
--- a/drivers/char/toshiba.c
+++ b/drivers/char/toshiba.c
@@ -68,7 +68,7 @@
68#include <linux/stat.h> 68#include <linux/stat.h>
69#include <linux/proc_fs.h> 69#include <linux/proc_fs.h>
70#include <linux/seq_file.h> 70#include <linux/seq_file.h>
71 71#include <linux/smp_lock.h>
72#include <linux/toshiba.h> 72#include <linux/toshiba.h>
73 73
74#define TOSH_MINOR_DEV 181 74#define TOSH_MINOR_DEV 181
@@ -88,13 +88,13 @@ static int tosh_date;
88static int tosh_sci; 88static int tosh_sci;
89static int tosh_fan; 89static int tosh_fan;
90 90
91static int tosh_ioctl(struct inode *, struct file *, unsigned int, 91static long tosh_ioctl(struct file *, unsigned int,
92 unsigned long); 92 unsigned long);
93 93
94 94
95static const struct file_operations tosh_fops = { 95static const struct file_operations tosh_fops = {
96 .owner = THIS_MODULE, 96 .owner = THIS_MODULE,
97 .ioctl = tosh_ioctl, 97 .unlocked_ioctl = tosh_ioctl,
98}; 98};
99 99
100static struct miscdevice tosh_device = { 100static struct miscdevice tosh_device = {
@@ -252,8 +252,7 @@ int tosh_smm(SMMRegisters *regs)
252EXPORT_SYMBOL(tosh_smm); 252EXPORT_SYMBOL(tosh_smm);
253 253
254 254
255static int tosh_ioctl(struct inode *ip, struct file *fp, unsigned int cmd, 255static long tosh_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
256 unsigned long arg)
257{ 256{
258 SMMRegisters regs; 257 SMMRegisters regs;
259 SMMRegisters __user *argp = (SMMRegisters __user *)arg; 258 SMMRegisters __user *argp = (SMMRegisters __user *)arg;
@@ -275,13 +274,16 @@ static int tosh_ioctl(struct inode *ip, struct file *fp, unsigned int cmd,
275 return -EINVAL; 274 return -EINVAL;
276 275
277 /* do we need to emulate the fan ? */ 276 /* do we need to emulate the fan ? */
277 lock_kernel();
278 if (tosh_fan==1) { 278 if (tosh_fan==1) {
279 if (((ax==0xf300) || (ax==0xf400)) && (bx==0x0004)) { 279 if (((ax==0xf300) || (ax==0xf400)) && (bx==0x0004)) {
280 err = tosh_emulate_fan(&regs); 280 err = tosh_emulate_fan(&regs);
281 unlock_kernel();
281 break; 282 break;
282 } 283 }
283 } 284 }
284 err = tosh_smm(&regs); 285 err = tosh_smm(&regs);
286 unlock_kernel();
285 break; 287 break;
286 default: 288 default:
287 return -EINVAL; 289 return -EINVAL;
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index f15112569c1d..efc1a61ca231 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -815,7 +815,7 @@ atc_is_tx_complete(struct dma_chan *chan,
815 dev_vdbg(chan2dev(chan), "is_tx_complete: %d (d%d, u%d)\n", 815 dev_vdbg(chan2dev(chan), "is_tx_complete: %d (d%d, u%d)\n",
816 cookie, done ? *done : 0, used ? *used : 0); 816 cookie, done ? *done : 0, used ? *used : 0);
817 817
818 spin_lock_bh(atchan->lock); 818 spin_lock_bh(&atchan->lock);
819 819
820 last_complete = atchan->completed_cookie; 820 last_complete = atchan->completed_cookie;
821 last_used = chan->cookie; 821 last_used = chan->cookie;
@@ -830,7 +830,7 @@ atc_is_tx_complete(struct dma_chan *chan,
830 ret = dma_async_is_complete(cookie, last_complete, last_used); 830 ret = dma_async_is_complete(cookie, last_complete, last_used);
831 } 831 }
832 832
833 spin_unlock_bh(atchan->lock); 833 spin_unlock_bh(&atchan->lock);
834 834
835 if (done) 835 if (done)
836 *done = last_complete; 836 *done = last_complete;
diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c
index 4a99cd94536b..b5f2ee0f8e2c 100644
--- a/drivers/dma/coh901318.c
+++ b/drivers/dma/coh901318.c
@@ -1294,8 +1294,8 @@ static int __exit coh901318_remove(struct platform_device *pdev)
1294 dma_async_device_unregister(&base->dma_slave); 1294 dma_async_device_unregister(&base->dma_slave);
1295 coh901318_pool_destroy(&base->pool); 1295 coh901318_pool_destroy(&base->pool);
1296 free_irq(platform_get_irq(pdev, 0), base); 1296 free_irq(platform_get_irq(pdev, 0), base);
1297 kfree(base);
1298 iounmap(base->virtbase); 1297 iounmap(base->virtbase);
1298 kfree(base);
1299 release_mem_region(pdev->resource->start, 1299 release_mem_region(pdev->resource->start,
1300 resource_size(pdev->resource)); 1300 resource_size(pdev->resource));
1301 return 0; 1301 return 0;
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index 285bed0fe17b..d28369f7afd2 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -1270,8 +1270,6 @@ static int __init dw_probe(struct platform_device *pdev)
1270 goto err_kfree; 1270 goto err_kfree;
1271 } 1271 }
1272 1272
1273 memset(dw, 0, sizeof *dw);
1274
1275 dw->regs = ioremap(io->start, DW_REGLEN); 1273 dw->regs = ioremap(io->start, DW_REGLEN);
1276 if (!dw->regs) { 1274 if (!dw->regs) {
1277 err = -ENOMEM; 1275 err = -ENOMEM;
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c
index c524d36d3c2e..dcc4ab78b32b 100644
--- a/drivers/dma/ioat/dma.c
+++ b/drivers/dma/ioat/dma.c
@@ -1032,7 +1032,7 @@ int __devinit ioat_probe(struct ioatdma_device *device)
1032 dma->dev = &pdev->dev; 1032 dma->dev = &pdev->dev;
1033 1033
1034 if (!dma->chancnt) { 1034 if (!dma->chancnt) {
1035 dev_err(dev, "zero channels detected\n"); 1035 dev_err(dev, "channel enumeration error\n");
1036 goto err_setup_interrupts; 1036 goto err_setup_interrupts;
1037 } 1037 }
1038 1038
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h
index 45edde996480..bbc3e78ef333 100644
--- a/drivers/dma/ioat/dma.h
+++ b/drivers/dma/ioat/dma.h
@@ -60,6 +60,7 @@
60 * @dca: direct cache access context 60 * @dca: direct cache access context
61 * @intr_quirk: interrupt setup quirk (for ioat_v1 devices) 61 * @intr_quirk: interrupt setup quirk (for ioat_v1 devices)
62 * @enumerate_channels: hw version specific channel enumeration 62 * @enumerate_channels: hw version specific channel enumeration
63 * @reset_hw: hw version specific channel (re)initialization
63 * @cleanup_tasklet: select between the v2 and v3 cleanup routines 64 * @cleanup_tasklet: select between the v2 and v3 cleanup routines
64 * @timer_fn: select between the v2 and v3 timer watchdog routines 65 * @timer_fn: select between the v2 and v3 timer watchdog routines
65 * @self_test: hardware version specific self test for each supported op type 66 * @self_test: hardware version specific self test for each supported op type
@@ -78,6 +79,7 @@ struct ioatdma_device {
78 struct dca_provider *dca; 79 struct dca_provider *dca;
79 void (*intr_quirk)(struct ioatdma_device *device); 80 void (*intr_quirk)(struct ioatdma_device *device);
80 int (*enumerate_channels)(struct ioatdma_device *device); 81 int (*enumerate_channels)(struct ioatdma_device *device);
82 int (*reset_hw)(struct ioat_chan_common *chan);
81 void (*cleanup_tasklet)(unsigned long data); 83 void (*cleanup_tasklet)(unsigned long data);
82 void (*timer_fn)(unsigned long data); 84 void (*timer_fn)(unsigned long data);
83 int (*self_test)(struct ioatdma_device *device); 85 int (*self_test)(struct ioatdma_device *device);
@@ -264,6 +266,22 @@ static inline void ioat_suspend(struct ioat_chan_common *chan)
264 writeb(IOAT_CHANCMD_SUSPEND, chan->reg_base + IOAT_CHANCMD_OFFSET(ver)); 266 writeb(IOAT_CHANCMD_SUSPEND, chan->reg_base + IOAT_CHANCMD_OFFSET(ver));
265} 267}
266 268
269static inline void ioat_reset(struct ioat_chan_common *chan)
270{
271 u8 ver = chan->device->version;
272
273 writeb(IOAT_CHANCMD_RESET, chan->reg_base + IOAT_CHANCMD_OFFSET(ver));
274}
275
276static inline bool ioat_reset_pending(struct ioat_chan_common *chan)
277{
278 u8 ver = chan->device->version;
279 u8 cmd;
280
281 cmd = readb(chan->reg_base + IOAT_CHANCMD_OFFSET(ver));
282 return (cmd & IOAT_CHANCMD_RESET) == IOAT_CHANCMD_RESET;
283}
284
267static inline void ioat_set_chainaddr(struct ioat_dma_chan *ioat, u64 addr) 285static inline void ioat_set_chainaddr(struct ioat_dma_chan *ioat, u64 addr)
268{ 286{
269 struct ioat_chan_common *chan = &ioat->base; 287 struct ioat_chan_common *chan = &ioat->base;
diff --git a/drivers/dma/ioat/dma_v2.c b/drivers/dma/ioat/dma_v2.c
index 8f1f7f05deaa..5f7a500e18d0 100644
--- a/drivers/dma/ioat/dma_v2.c
+++ b/drivers/dma/ioat/dma_v2.c
@@ -239,20 +239,50 @@ void __ioat2_restart_chan(struct ioat2_dma_chan *ioat)
239 __ioat2_start_null_desc(ioat); 239 __ioat2_start_null_desc(ioat);
240} 240}
241 241
242static void ioat2_restart_channel(struct ioat2_dma_chan *ioat) 242int ioat2_quiesce(struct ioat_chan_common *chan, unsigned long tmo)
243{ 243{
244 struct ioat_chan_common *chan = &ioat->base; 244 unsigned long end = jiffies + tmo;
245 unsigned long phys_complete; 245 int err = 0;
246 u32 status; 246 u32 status;
247 247
248 status = ioat_chansts(chan); 248 status = ioat_chansts(chan);
249 if (is_ioat_active(status) || is_ioat_idle(status)) 249 if (is_ioat_active(status) || is_ioat_idle(status))
250 ioat_suspend(chan); 250 ioat_suspend(chan);
251 while (is_ioat_active(status) || is_ioat_idle(status)) { 251 while (is_ioat_active(status) || is_ioat_idle(status)) {
252 if (end && time_after(jiffies, end)) {
253 err = -ETIMEDOUT;
254 break;
255 }
252 status = ioat_chansts(chan); 256 status = ioat_chansts(chan);
253 cpu_relax(); 257 cpu_relax();
254 } 258 }
255 259
260 return err;
261}
262
263int ioat2_reset_sync(struct ioat_chan_common *chan, unsigned long tmo)
264{
265 unsigned long end = jiffies + tmo;
266 int err = 0;
267
268 ioat_reset(chan);
269 while (ioat_reset_pending(chan)) {
270 if (end && time_after(jiffies, end)) {
271 err = -ETIMEDOUT;
272 break;
273 }
274 cpu_relax();
275 }
276
277 return err;
278}
279
280static void ioat2_restart_channel(struct ioat2_dma_chan *ioat)
281{
282 struct ioat_chan_common *chan = &ioat->base;
283 unsigned long phys_complete;
284
285 ioat2_quiesce(chan, 0);
256 if (ioat_cleanup_preamble(chan, &phys_complete)) 286 if (ioat_cleanup_preamble(chan, &phys_complete))
257 __cleanup(ioat, phys_complete); 287 __cleanup(ioat, phys_complete);
258 288
@@ -318,6 +348,19 @@ void ioat2_timer_event(unsigned long data)
318 spin_unlock_bh(&chan->cleanup_lock); 348 spin_unlock_bh(&chan->cleanup_lock);
319} 349}
320 350
351static int ioat2_reset_hw(struct ioat_chan_common *chan)
352{
353 /* throw away whatever the channel was doing and get it initialized */
354 u32 chanerr;
355
356 ioat2_quiesce(chan, msecs_to_jiffies(100));
357
358 chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
359 writel(chanerr, chan->reg_base + IOAT_CHANERR_OFFSET);
360
361 return ioat2_reset_sync(chan, msecs_to_jiffies(200));
362}
363
321/** 364/**
322 * ioat2_enumerate_channels - find and initialize the device's channels 365 * ioat2_enumerate_channels - find and initialize the device's channels
323 * @device: the device to be enumerated 366 * @device: the device to be enumerated
@@ -360,6 +403,10 @@ int ioat2_enumerate_channels(struct ioatdma_device *device)
360 (unsigned long) ioat); 403 (unsigned long) ioat);
361 ioat->xfercap_log = xfercap_log; 404 ioat->xfercap_log = xfercap_log;
362 spin_lock_init(&ioat->ring_lock); 405 spin_lock_init(&ioat->ring_lock);
406 if (device->reset_hw(&ioat->base)) {
407 i = 0;
408 break;
409 }
363 } 410 }
364 dma->chancnt = i; 411 dma->chancnt = i;
365 return i; 412 return i;
@@ -467,7 +514,6 @@ int ioat2_alloc_chan_resources(struct dma_chan *c)
467 struct ioat2_dma_chan *ioat = to_ioat2_chan(c); 514 struct ioat2_dma_chan *ioat = to_ioat2_chan(c);
468 struct ioat_chan_common *chan = &ioat->base; 515 struct ioat_chan_common *chan = &ioat->base;
469 struct ioat_ring_ent **ring; 516 struct ioat_ring_ent **ring;
470 u32 chanerr;
471 int order; 517 int order;
472 518
473 /* have we already been set up? */ 519 /* have we already been set up? */
@@ -477,12 +523,6 @@ int ioat2_alloc_chan_resources(struct dma_chan *c)
477 /* Setup register to interrupt and write completion status on error */ 523 /* Setup register to interrupt and write completion status on error */
478 writew(IOAT_CHANCTRL_RUN, chan->reg_base + IOAT_CHANCTRL_OFFSET); 524 writew(IOAT_CHANCTRL_RUN, chan->reg_base + IOAT_CHANCTRL_OFFSET);
479 525
480 chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
481 if (chanerr) {
482 dev_err(to_dev(chan), "CHANERR = %x, clearing\n", chanerr);
483 writel(chanerr, chan->reg_base + IOAT_CHANERR_OFFSET);
484 }
485
486 /* allocate a completion writeback area */ 526 /* allocate a completion writeback area */
487 /* doing 2 32bit writes to mmio since 1 64b write doesn't work */ 527 /* doing 2 32bit writes to mmio since 1 64b write doesn't work */
488 chan->completion = pci_pool_alloc(chan->device->completion_pool, 528 chan->completion = pci_pool_alloc(chan->device->completion_pool,
@@ -746,13 +786,7 @@ void ioat2_free_chan_resources(struct dma_chan *c)
746 tasklet_disable(&chan->cleanup_task); 786 tasklet_disable(&chan->cleanup_task);
747 del_timer_sync(&chan->timer); 787 del_timer_sync(&chan->timer);
748 device->cleanup_tasklet((unsigned long) ioat); 788 device->cleanup_tasklet((unsigned long) ioat);
749 789 device->reset_hw(chan);
750 /* Delay 100ms after reset to allow internal DMA logic to quiesce
751 * before removing DMA descriptor resources.
752 */
753 writeb(IOAT_CHANCMD_RESET,
754 chan->reg_base + IOAT_CHANCMD_OFFSET(chan->device->version));
755 mdelay(100);
756 790
757 spin_lock_bh(&ioat->ring_lock); 791 spin_lock_bh(&ioat->ring_lock);
758 descs = ioat2_ring_space(ioat); 792 descs = ioat2_ring_space(ioat);
@@ -839,6 +873,7 @@ int __devinit ioat2_dma_probe(struct ioatdma_device *device, int dca)
839 int err; 873 int err;
840 874
841 device->enumerate_channels = ioat2_enumerate_channels; 875 device->enumerate_channels = ioat2_enumerate_channels;
876 device->reset_hw = ioat2_reset_hw;
842 device->cleanup_tasklet = ioat2_cleanup_tasklet; 877 device->cleanup_tasklet = ioat2_cleanup_tasklet;
843 device->timer_fn = ioat2_timer_event; 878 device->timer_fn = ioat2_timer_event;
844 device->self_test = ioat_dma_self_test; 879 device->self_test = ioat_dma_self_test;
diff --git a/drivers/dma/ioat/dma_v2.h b/drivers/dma/ioat/dma_v2.h
index 1d849ef74d5f..3afad8da43cc 100644
--- a/drivers/dma/ioat/dma_v2.h
+++ b/drivers/dma/ioat/dma_v2.h
@@ -185,6 +185,8 @@ bool reshape_ring(struct ioat2_dma_chan *ioat, int order);
185void __ioat2_issue_pending(struct ioat2_dma_chan *ioat); 185void __ioat2_issue_pending(struct ioat2_dma_chan *ioat);
186void ioat2_cleanup_tasklet(unsigned long data); 186void ioat2_cleanup_tasklet(unsigned long data);
187void ioat2_timer_event(unsigned long data); 187void ioat2_timer_event(unsigned long data);
188int ioat2_quiesce(struct ioat_chan_common *chan, unsigned long tmo);
189int ioat2_reset_sync(struct ioat_chan_common *chan, unsigned long tmo);
188extern struct kobj_type ioat2_ktype; 190extern struct kobj_type ioat2_ktype;
189extern struct kmem_cache *ioat2_cache; 191extern struct kmem_cache *ioat2_cache;
190#endif /* IOATDMA_V2_H */ 192#endif /* IOATDMA_V2_H */
diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
index 42f6f10fb0cc..9908c9e94b2d 100644
--- a/drivers/dma/ioat/dma_v3.c
+++ b/drivers/dma/ioat/dma_v3.c
@@ -650,9 +650,11 @@ __ioat3_prep_pq_lock(struct dma_chan *c, enum sum_check_flags *result,
650 650
651 num_descs = ioat2_xferlen_to_descs(ioat, len); 651 num_descs = ioat2_xferlen_to_descs(ioat, len);
652 /* we need 2x the number of descriptors to cover greater than 3 652 /* we need 2x the number of descriptors to cover greater than 3
653 * sources 653 * sources (we need 1 extra source in the q-only continuation
654 * case and 3 extra sources in the p+q continuation case.
654 */ 655 */
655 if (src_cnt > 3 || flags & DMA_PREP_CONTINUE) { 656 if (src_cnt + dmaf_p_disabled_continue(flags) > 3 ||
657 (dmaf_continue(flags) && !dmaf_p_disabled_continue(flags))) {
656 with_ext = 1; 658 with_ext = 1;
657 num_descs *= 2; 659 num_descs *= 2;
658 } else 660 } else
@@ -1128,6 +1130,45 @@ static int __devinit ioat3_dma_self_test(struct ioatdma_device *device)
1128 return 0; 1130 return 0;
1129} 1131}
1130 1132
1133static int ioat3_reset_hw(struct ioat_chan_common *chan)
1134{
1135 /* throw away whatever the channel was doing and get it
1136 * initialized, with ioat3 specific workarounds
1137 */
1138 struct ioatdma_device *device = chan->device;
1139 struct pci_dev *pdev = device->pdev;
1140 u32 chanerr;
1141 u16 dev_id;
1142 int err;
1143
1144 ioat2_quiesce(chan, msecs_to_jiffies(100));
1145
1146 chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET);
1147 writel(chanerr, chan->reg_base + IOAT_CHANERR_OFFSET);
1148
1149 /* -= IOAT ver.3 workarounds =- */
1150 /* Write CHANERRMSK_INT with 3E07h to mask out the errors
1151 * that can cause stability issues for IOAT ver.3, and clear any
1152 * pending errors
1153 */
1154 pci_write_config_dword(pdev, IOAT_PCI_CHANERRMASK_INT_OFFSET, 0x3e07);
1155 err = pci_read_config_dword(pdev, IOAT_PCI_CHANERR_INT_OFFSET, &chanerr);
1156 if (err) {
1157 dev_err(&pdev->dev, "channel error register unreachable\n");
1158 return err;
1159 }
1160 pci_write_config_dword(pdev, IOAT_PCI_CHANERR_INT_OFFSET, chanerr);
1161
1162 /* Clear DMAUNCERRSTS Cfg-Reg Parity Error status bit
1163 * (workaround for spurious config parity error after restart)
1164 */
1165 pci_read_config_word(pdev, IOAT_PCI_DEVICE_ID_OFFSET, &dev_id);
1166 if (dev_id == PCI_DEVICE_ID_INTEL_IOAT_TBG0)
1167 pci_write_config_dword(pdev, IOAT_PCI_DMAUNCERRSTS_OFFSET, 0x10);
1168
1169 return ioat2_reset_sync(chan, msecs_to_jiffies(200));
1170}
1171
1131int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) 1172int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca)
1132{ 1173{
1133 struct pci_dev *pdev = device->pdev; 1174 struct pci_dev *pdev = device->pdev;
@@ -1137,10 +1178,10 @@ int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca)
1137 struct ioat_chan_common *chan; 1178 struct ioat_chan_common *chan;
1138 bool is_raid_device = false; 1179 bool is_raid_device = false;
1139 int err; 1180 int err;
1140 u16 dev_id;
1141 u32 cap; 1181 u32 cap;
1142 1182
1143 device->enumerate_channels = ioat2_enumerate_channels; 1183 device->enumerate_channels = ioat2_enumerate_channels;
1184 device->reset_hw = ioat3_reset_hw;
1144 device->self_test = ioat3_dma_self_test; 1185 device->self_test = ioat3_dma_self_test;
1145 dma = &device->common; 1186 dma = &device->common;
1146 dma->device_prep_dma_memcpy = ioat2_dma_prep_memcpy_lock; 1187 dma->device_prep_dma_memcpy = ioat2_dma_prep_memcpy_lock;
@@ -1216,19 +1257,6 @@ int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca)
1216 dma->device_prep_dma_xor_val = NULL; 1257 dma->device_prep_dma_xor_val = NULL;
1217 #endif 1258 #endif
1218 1259
1219 /* -= IOAT ver.3 workarounds =- */
1220 /* Write CHANERRMSK_INT with 3E07h to mask out the errors
1221 * that can cause stability issues for IOAT ver.3
1222 */
1223 pci_write_config_dword(pdev, IOAT_PCI_CHANERRMASK_INT_OFFSET, 0x3e07);
1224
1225 /* Clear DMAUNCERRSTS Cfg-Reg Parity Error status bit
1226 * (workaround for spurious config parity error after restart)
1227 */
1228 pci_read_config_word(pdev, IOAT_PCI_DEVICE_ID_OFFSET, &dev_id);
1229 if (dev_id == PCI_DEVICE_ID_INTEL_IOAT_TBG0)
1230 pci_write_config_dword(pdev, IOAT_PCI_DMAUNCERRSTS_OFFSET, 0x10);
1231
1232 err = ioat_probe(device); 1260 err = ioat_probe(device);
1233 if (err) 1261 if (err)
1234 return err; 1262 return err;
diff --git a/drivers/dma/ioat/registers.h b/drivers/dma/ioat/registers.h
index f015ec196700..e8ae63baf588 100644
--- a/drivers/dma/ioat/registers.h
+++ b/drivers/dma/ioat/registers.h
@@ -27,6 +27,7 @@
27 27
28#define IOAT_PCI_DEVICE_ID_OFFSET 0x02 28#define IOAT_PCI_DEVICE_ID_OFFSET 0x02
29#define IOAT_PCI_DMAUNCERRSTS_OFFSET 0x148 29#define IOAT_PCI_DMAUNCERRSTS_OFFSET 0x148
30#define IOAT_PCI_CHANERR_INT_OFFSET 0x180
30#define IOAT_PCI_CHANERRMASK_INT_OFFSET 0x184 31#define IOAT_PCI_CHANERRMASK_INT_OFFSET 0x184
31 32
32/* MMIO Device Registers */ 33/* MMIO Device Registers */
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c
index 2e4a54c8afeb..d10cc899c460 100644
--- a/drivers/dma/shdma.c
+++ b/drivers/dma/shdma.c
@@ -23,16 +23,19 @@
23#include <linux/dmaengine.h> 23#include <linux/dmaengine.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/dma-mapping.h> 25#include <linux/dma-mapping.h>
26#include <linux/dmapool.h>
27#include <linux/platform_device.h> 26#include <linux/platform_device.h>
28#include <cpu/dma.h> 27#include <cpu/dma.h>
29#include <asm/dma-sh.h> 28#include <asm/dma-sh.h>
30#include "shdma.h" 29#include "shdma.h"
31 30
32/* DMA descriptor control */ 31/* DMA descriptor control */
33#define DESC_LAST (-1) 32enum sh_dmae_desc_status {
34#define DESC_COMP (1) 33 DESC_IDLE,
35#define DESC_NCOMP (0) 34 DESC_PREPARED,
35 DESC_SUBMITTED,
36 DESC_COMPLETED, /* completed, have to call callback */
37 DESC_WAITING, /* callback called, waiting for ack / re-submit */
38};
36 39
37#define NR_DESCS_PER_CHANNEL 32 40#define NR_DESCS_PER_CHANNEL 32
38/* 41/*
@@ -45,6 +48,8 @@
45 */ 48 */
46#define RS_DEFAULT (RS_DUAL) 49#define RS_DEFAULT (RS_DUAL)
47 50
51static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan, bool all);
52
48#define SH_DMAC_CHAN_BASE(id) (dma_base_addr[id]) 53#define SH_DMAC_CHAN_BASE(id) (dma_base_addr[id])
49static void sh_dmae_writel(struct sh_dmae_chan *sh_dc, u32 data, u32 reg) 54static void sh_dmae_writel(struct sh_dmae_chan *sh_dc, u32 data, u32 reg)
50{ 55{
@@ -106,11 +111,11 @@ static inline unsigned int calc_xmit_shift(struct sh_dmae_chan *sh_chan)
106 return ts_shift[(chcr & CHCR_TS_MASK) >> CHCR_TS_SHIFT]; 111 return ts_shift[(chcr & CHCR_TS_MASK) >> CHCR_TS_SHIFT];
107} 112}
108 113
109static void dmae_set_reg(struct sh_dmae_chan *sh_chan, struct sh_dmae_regs hw) 114static void dmae_set_reg(struct sh_dmae_chan *sh_chan, struct sh_dmae_regs *hw)
110{ 115{
111 sh_dmae_writel(sh_chan, hw.sar, SAR); 116 sh_dmae_writel(sh_chan, hw->sar, SAR);
112 sh_dmae_writel(sh_chan, hw.dar, DAR); 117 sh_dmae_writel(sh_chan, hw->dar, DAR);
113 sh_dmae_writel(sh_chan, hw.tcr >> calc_xmit_shift(sh_chan), TCR); 118 sh_dmae_writel(sh_chan, hw->tcr >> calc_xmit_shift(sh_chan), TCR);
114} 119}
115 120
116static void dmae_start(struct sh_dmae_chan *sh_chan) 121static void dmae_start(struct sh_dmae_chan *sh_chan)
@@ -184,8 +189,9 @@ static int dmae_set_dmars(struct sh_dmae_chan *sh_chan, u16 val)
184 189
185static dma_cookie_t sh_dmae_tx_submit(struct dma_async_tx_descriptor *tx) 190static dma_cookie_t sh_dmae_tx_submit(struct dma_async_tx_descriptor *tx)
186{ 191{
187 struct sh_desc *desc = tx_to_sh_desc(tx); 192 struct sh_desc *desc = tx_to_sh_desc(tx), *chunk, *last = desc, *c;
188 struct sh_dmae_chan *sh_chan = to_sh_chan(tx->chan); 193 struct sh_dmae_chan *sh_chan = to_sh_chan(tx->chan);
194 dma_async_tx_callback callback = tx->callback;
189 dma_cookie_t cookie; 195 dma_cookie_t cookie;
190 196
191 spin_lock_bh(&sh_chan->desc_lock); 197 spin_lock_bh(&sh_chan->desc_lock);
@@ -195,45 +201,53 @@ static dma_cookie_t sh_dmae_tx_submit(struct dma_async_tx_descriptor *tx)
195 if (cookie < 0) 201 if (cookie < 0)
196 cookie = 1; 202 cookie = 1;
197 203
198 /* If desc only in the case of 1 */ 204 sh_chan->common.cookie = cookie;
199 if (desc->async_tx.cookie != -EBUSY) 205 tx->cookie = cookie;
200 desc->async_tx.cookie = cookie; 206
201 sh_chan->common.cookie = desc->async_tx.cookie; 207 /* Mark all chunks of this descriptor as submitted, move to the queue */
208 list_for_each_entry_safe(chunk, c, desc->node.prev, node) {
209 /*
210 * All chunks are on the global ld_free, so, we have to find
211 * the end of the chain ourselves
212 */
213 if (chunk != desc && (chunk->mark == DESC_IDLE ||
214 chunk->async_tx.cookie > 0 ||
215 chunk->async_tx.cookie == -EBUSY ||
216 &chunk->node == &sh_chan->ld_free))
217 break;
218 chunk->mark = DESC_SUBMITTED;
219 /* Callback goes to the last chunk */
220 chunk->async_tx.callback = NULL;
221 chunk->cookie = cookie;
222 list_move_tail(&chunk->node, &sh_chan->ld_queue);
223 last = chunk;
224 }
225
226 last->async_tx.callback = callback;
227 last->async_tx.callback_param = tx->callback_param;
202 228
203 list_splice_init(&desc->tx_list, sh_chan->ld_queue.prev); 229 dev_dbg(sh_chan->dev, "submit #%d@%p on %d: %x[%d] -> %x\n",
230 tx->cookie, &last->async_tx, sh_chan->id,
231 desc->hw.sar, desc->hw.tcr, desc->hw.dar);
204 232
205 spin_unlock_bh(&sh_chan->desc_lock); 233 spin_unlock_bh(&sh_chan->desc_lock);
206 234
207 return cookie; 235 return cookie;
208} 236}
209 237
238/* Called with desc_lock held */
210static struct sh_desc *sh_dmae_get_desc(struct sh_dmae_chan *sh_chan) 239static struct sh_desc *sh_dmae_get_desc(struct sh_dmae_chan *sh_chan)
211{ 240{
212 struct sh_desc *desc, *_desc, *ret = NULL; 241 struct sh_desc *desc;
213 242
214 spin_lock_bh(&sh_chan->desc_lock); 243 list_for_each_entry(desc, &sh_chan->ld_free, node)
215 list_for_each_entry_safe(desc, _desc, &sh_chan->ld_free, node) { 244 if (desc->mark != DESC_PREPARED) {
216 if (async_tx_test_ack(&desc->async_tx)) { 245 BUG_ON(desc->mark != DESC_IDLE);
217 list_del(&desc->node); 246 list_del(&desc->node);
218 ret = desc; 247 return desc;
219 break;
220 } 248 }
221 }
222 spin_unlock_bh(&sh_chan->desc_lock);
223
224 return ret;
225}
226
227static void sh_dmae_put_desc(struct sh_dmae_chan *sh_chan, struct sh_desc *desc)
228{
229 if (desc) {
230 spin_lock_bh(&sh_chan->desc_lock);
231
232 list_splice_init(&desc->tx_list, &sh_chan->ld_free);
233 list_add(&desc->node, &sh_chan->ld_free);
234 249
235 spin_unlock_bh(&sh_chan->desc_lock); 250 return NULL;
236 }
237} 251}
238 252
239static int sh_dmae_alloc_chan_resources(struct dma_chan *chan) 253static int sh_dmae_alloc_chan_resources(struct dma_chan *chan)
@@ -252,11 +266,10 @@ static int sh_dmae_alloc_chan_resources(struct dma_chan *chan)
252 dma_async_tx_descriptor_init(&desc->async_tx, 266 dma_async_tx_descriptor_init(&desc->async_tx,
253 &sh_chan->common); 267 &sh_chan->common);
254 desc->async_tx.tx_submit = sh_dmae_tx_submit; 268 desc->async_tx.tx_submit = sh_dmae_tx_submit;
255 desc->async_tx.flags = DMA_CTRL_ACK; 269 desc->mark = DESC_IDLE;
256 INIT_LIST_HEAD(&desc->tx_list);
257 sh_dmae_put_desc(sh_chan, desc);
258 270
259 spin_lock_bh(&sh_chan->desc_lock); 271 spin_lock_bh(&sh_chan->desc_lock);
272 list_add(&desc->node, &sh_chan->ld_free);
260 sh_chan->descs_allocated++; 273 sh_chan->descs_allocated++;
261 } 274 }
262 spin_unlock_bh(&sh_chan->desc_lock); 275 spin_unlock_bh(&sh_chan->desc_lock);
@@ -273,7 +286,10 @@ static void sh_dmae_free_chan_resources(struct dma_chan *chan)
273 struct sh_desc *desc, *_desc; 286 struct sh_desc *desc, *_desc;
274 LIST_HEAD(list); 287 LIST_HEAD(list);
275 288
276 BUG_ON(!list_empty(&sh_chan->ld_queue)); 289 /* Prepared and not submitted descriptors can still be on the queue */
290 if (!list_empty(&sh_chan->ld_queue))
291 sh_dmae_chan_ld_cleanup(sh_chan, true);
292
277 spin_lock_bh(&sh_chan->desc_lock); 293 spin_lock_bh(&sh_chan->desc_lock);
278 294
279 list_splice_init(&sh_chan->ld_free, &list); 295 list_splice_init(&sh_chan->ld_free, &list);
@@ -292,6 +308,8 @@ static struct dma_async_tx_descriptor *sh_dmae_prep_memcpy(
292 struct sh_dmae_chan *sh_chan; 308 struct sh_dmae_chan *sh_chan;
293 struct sh_desc *first = NULL, *prev = NULL, *new; 309 struct sh_desc *first = NULL, *prev = NULL, *new;
294 size_t copy_size; 310 size_t copy_size;
311 LIST_HEAD(tx_list);
312 int chunks = (len + SH_DMA_TCR_MAX) / (SH_DMA_TCR_MAX + 1);
295 313
296 if (!chan) 314 if (!chan)
297 return NULL; 315 return NULL;
@@ -301,108 +319,189 @@ static struct dma_async_tx_descriptor *sh_dmae_prep_memcpy(
301 319
302 sh_chan = to_sh_chan(chan); 320 sh_chan = to_sh_chan(chan);
303 321
322 /* Have to lock the whole loop to protect against concurrent release */
323 spin_lock_bh(&sh_chan->desc_lock);
324
325 /*
326 * Chaining:
327 * first descriptor is what user is dealing with in all API calls, its
328 * cookie is at first set to -EBUSY, at tx-submit to a positive
329 * number
330 * if more than one chunk is needed further chunks have cookie = -EINVAL
331 * the last chunk, if not equal to the first, has cookie = -ENOSPC
332 * all chunks are linked onto the tx_list head with their .node heads
333 * only during this function, then they are immediately spliced
334 * back onto the free list in form of a chain
335 */
304 do { 336 do {
305 /* Allocate the link descriptor from DMA pool */ 337 /* Allocate the link descriptor from the free list */
306 new = sh_dmae_get_desc(sh_chan); 338 new = sh_dmae_get_desc(sh_chan);
307 if (!new) { 339 if (!new) {
308 dev_err(sh_chan->dev, 340 dev_err(sh_chan->dev,
309 "No free memory for link descriptor\n"); 341 "No free memory for link descriptor\n");
310 goto err_get_desc; 342 list_for_each_entry(new, &tx_list, node)
343 new->mark = DESC_IDLE;
344 list_splice(&tx_list, &sh_chan->ld_free);
345 spin_unlock_bh(&sh_chan->desc_lock);
346 return NULL;
311 } 347 }
312 348
313 copy_size = min(len, (size_t)SH_DMA_TCR_MAX); 349 copy_size = min(len, (size_t)SH_DMA_TCR_MAX + 1);
314 350
315 new->hw.sar = dma_src; 351 new->hw.sar = dma_src;
316 new->hw.dar = dma_dest; 352 new->hw.dar = dma_dest;
317 new->hw.tcr = copy_size; 353 new->hw.tcr = copy_size;
318 if (!first) 354 if (!first) {
355 /* First desc */
356 new->async_tx.cookie = -EBUSY;
319 first = new; 357 first = new;
358 } else {
359 /* Other desc - invisible to the user */
360 new->async_tx.cookie = -EINVAL;
361 }
320 362
321 new->mark = DESC_NCOMP; 363 dev_dbg(sh_chan->dev,
322 async_tx_ack(&new->async_tx); 364 "chaining %u of %u with %p, dst %x, cookie %d\n",
365 copy_size, len, &new->async_tx, dma_dest,
366 new->async_tx.cookie);
367
368 new->mark = DESC_PREPARED;
369 new->async_tx.flags = flags;
370 new->chunks = chunks--;
323 371
324 prev = new; 372 prev = new;
325 len -= copy_size; 373 len -= copy_size;
326 dma_src += copy_size; 374 dma_src += copy_size;
327 dma_dest += copy_size; 375 dma_dest += copy_size;
328 /* Insert the link descriptor to the LD ring */ 376 /* Insert the link descriptor to the LD ring */
329 list_add_tail(&new->node, &first->tx_list); 377 list_add_tail(&new->node, &tx_list);
330 } while (len); 378 } while (len);
331 379
332 new->async_tx.flags = flags; /* client is in control of this ack */ 380 if (new != first)
333 new->async_tx.cookie = -EBUSY; /* Last desc */ 381 new->async_tx.cookie = -ENOSPC;
334 382
335 return &first->async_tx; 383 /* Put them back on the free list, so, they don't get lost */
384 list_splice_tail(&tx_list, &sh_chan->ld_free);
336 385
337err_get_desc: 386 spin_unlock_bh(&sh_chan->desc_lock);
338 sh_dmae_put_desc(sh_chan, first);
339 return NULL;
340 387
388 return &first->async_tx;
341} 389}
342 390
343/* 391static dma_async_tx_callback __ld_cleanup(struct sh_dmae_chan *sh_chan, bool all)
344 * sh_chan_ld_cleanup - Clean up link descriptors
345 *
346 * This function clean up the ld_queue of DMA channel.
347 */
348static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan)
349{ 392{
350 struct sh_desc *desc, *_desc; 393 struct sh_desc *desc, *_desc;
394 /* Is the "exposed" head of a chain acked? */
395 bool head_acked = false;
396 dma_cookie_t cookie = 0;
397 dma_async_tx_callback callback = NULL;
398 void *param = NULL;
351 399
352 spin_lock_bh(&sh_chan->desc_lock); 400 spin_lock_bh(&sh_chan->desc_lock);
353 list_for_each_entry_safe(desc, _desc, &sh_chan->ld_queue, node) { 401 list_for_each_entry_safe(desc, _desc, &sh_chan->ld_queue, node) {
354 dma_async_tx_callback callback; 402 struct dma_async_tx_descriptor *tx = &desc->async_tx;
355 void *callback_param; 403
356 404 BUG_ON(tx->cookie > 0 && tx->cookie != desc->cookie);
357 /* non send data */ 405 BUG_ON(desc->mark != DESC_SUBMITTED &&
358 if (desc->mark == DESC_NCOMP) 406 desc->mark != DESC_COMPLETED &&
407 desc->mark != DESC_WAITING);
408
409 /*
410 * queue is ordered, and we use this loop to (1) clean up all
411 * completed descriptors, and to (2) update descriptor flags of
412 * any chunks in a (partially) completed chain
413 */
414 if (!all && desc->mark == DESC_SUBMITTED &&
415 desc->cookie != cookie)
359 break; 416 break;
360 417
361 /* send data sesc */ 418 if (tx->cookie > 0)
362 callback = desc->async_tx.callback; 419 cookie = tx->cookie;
363 callback_param = desc->async_tx.callback_param;
364 420
365 /* Remove from ld_queue list */ 421 if (desc->mark == DESC_COMPLETED && desc->chunks == 1) {
366 list_splice_init(&desc->tx_list, &sh_chan->ld_free); 422 BUG_ON(sh_chan->completed_cookie != desc->cookie - 1);
423 sh_chan->completed_cookie = desc->cookie;
424 }
367 425
368 dev_dbg(sh_chan->dev, "link descriptor %p will be recycle.\n", 426 /* Call callback on the last chunk */
369 desc); 427 if (desc->mark == DESC_COMPLETED && tx->callback) {
428 desc->mark = DESC_WAITING;
429 callback = tx->callback;
430 param = tx->callback_param;
431 dev_dbg(sh_chan->dev, "descriptor #%d@%p on %d callback\n",
432 tx->cookie, tx, sh_chan->id);
433 BUG_ON(desc->chunks != 1);
434 break;
435 }
370 436
371 list_move(&desc->node, &sh_chan->ld_free); 437 if (tx->cookie > 0 || tx->cookie == -EBUSY) {
372 /* Run the link descriptor callback function */ 438 if (desc->mark == DESC_COMPLETED) {
373 if (callback) { 439 BUG_ON(tx->cookie < 0);
374 spin_unlock_bh(&sh_chan->desc_lock); 440 desc->mark = DESC_WAITING;
375 dev_dbg(sh_chan->dev, "link descriptor %p callback\n", 441 }
376 desc); 442 head_acked = async_tx_test_ack(tx);
377 callback(callback_param); 443 } else {
378 spin_lock_bh(&sh_chan->desc_lock); 444 switch (desc->mark) {
445 case DESC_COMPLETED:
446 desc->mark = DESC_WAITING;
447 /* Fall through */
448 case DESC_WAITING:
449 if (head_acked)
450 async_tx_ack(&desc->async_tx);
451 }
452 }
453
454 dev_dbg(sh_chan->dev, "descriptor %p #%d completed.\n",
455 tx, tx->cookie);
456
457 if (((desc->mark == DESC_COMPLETED ||
458 desc->mark == DESC_WAITING) &&
459 async_tx_test_ack(&desc->async_tx)) || all) {
460 /* Remove from ld_queue list */
461 desc->mark = DESC_IDLE;
462 list_move(&desc->node, &sh_chan->ld_free);
379 } 463 }
380 } 464 }
381 spin_unlock_bh(&sh_chan->desc_lock); 465 spin_unlock_bh(&sh_chan->desc_lock);
466
467 if (callback)
468 callback(param);
469
470 return callback;
471}
472
473/*
474 * sh_chan_ld_cleanup - Clean up link descriptors
475 *
476 * This function cleans up the ld_queue of DMA channel.
477 */
478static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan, bool all)
479{
480 while (__ld_cleanup(sh_chan, all))
481 ;
382} 482}
383 483
384static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan) 484static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan)
385{ 485{
386 struct list_head *ld_node; 486 struct sh_desc *sd;
387 struct sh_dmae_regs hw;
388 487
488 spin_lock_bh(&sh_chan->desc_lock);
389 /* DMA work check */ 489 /* DMA work check */
390 if (dmae_is_busy(sh_chan)) 490 if (dmae_is_busy(sh_chan)) {
491 spin_unlock_bh(&sh_chan->desc_lock);
391 return; 492 return;
493 }
392 494
393 /* Find the first un-transfer desciptor */ 495 /* Find the first un-transfer desciptor */
394 for (ld_node = sh_chan->ld_queue.next; 496 list_for_each_entry(sd, &sh_chan->ld_queue, node)
395 (ld_node != &sh_chan->ld_queue) 497 if (sd->mark == DESC_SUBMITTED) {
396 && (to_sh_desc(ld_node)->mark == DESC_COMP); 498 /* Get the ld start address from ld_queue */
397 ld_node = ld_node->next) 499 dmae_set_reg(sh_chan, &sd->hw);
398 cpu_relax(); 500 dmae_start(sh_chan);
399 501 break;
400 if (ld_node != &sh_chan->ld_queue) { 502 }
401 /* Get the ld start address from ld_queue */ 503
402 hw = to_sh_desc(ld_node)->hw; 504 spin_unlock_bh(&sh_chan->desc_lock);
403 dmae_set_reg(sh_chan, hw);
404 dmae_start(sh_chan);
405 }
406} 505}
407 506
408static void sh_dmae_memcpy_issue_pending(struct dma_chan *chan) 507static void sh_dmae_memcpy_issue_pending(struct dma_chan *chan)
@@ -420,12 +519,11 @@ static enum dma_status sh_dmae_is_complete(struct dma_chan *chan,
420 dma_cookie_t last_used; 519 dma_cookie_t last_used;
421 dma_cookie_t last_complete; 520 dma_cookie_t last_complete;
422 521
423 sh_dmae_chan_ld_cleanup(sh_chan); 522 sh_dmae_chan_ld_cleanup(sh_chan, false);
424 523
425 last_used = chan->cookie; 524 last_used = chan->cookie;
426 last_complete = sh_chan->completed_cookie; 525 last_complete = sh_chan->completed_cookie;
427 if (last_complete == -EBUSY) 526 BUG_ON(last_complete < 0);
428 last_complete = last_used;
429 527
430 if (done) 528 if (done)
431 *done = last_complete; 529 *done = last_complete;
@@ -480,11 +578,13 @@ static irqreturn_t sh_dmae_err(int irq, void *data)
480 err = sh_dmae_rst(0); 578 err = sh_dmae_rst(0);
481 if (err) 579 if (err)
482 return err; 580 return err;
581#ifdef SH_DMAC_BASE1
483 if (shdev->pdata.mode & SHDMA_DMAOR1) { 582 if (shdev->pdata.mode & SHDMA_DMAOR1) {
484 err = sh_dmae_rst(1); 583 err = sh_dmae_rst(1);
485 if (err) 584 if (err)
486 return err; 585 return err;
487 } 586 }
587#endif
488 disable_irq(irq); 588 disable_irq(irq);
489 return IRQ_HANDLED; 589 return IRQ_HANDLED;
490 } 590 }
@@ -494,35 +594,25 @@ static irqreturn_t sh_dmae_err(int irq, void *data)
494static void dmae_do_tasklet(unsigned long data) 594static void dmae_do_tasklet(unsigned long data)
495{ 595{
496 struct sh_dmae_chan *sh_chan = (struct sh_dmae_chan *)data; 596 struct sh_dmae_chan *sh_chan = (struct sh_dmae_chan *)data;
497 struct sh_desc *desc, *_desc, *cur_desc = NULL; 597 struct sh_desc *desc;
498 u32 sar_buf = sh_dmae_readl(sh_chan, SAR); 598 u32 sar_buf = sh_dmae_readl(sh_chan, SAR);
499 599
500 list_for_each_entry_safe(desc, _desc, 600 spin_lock(&sh_chan->desc_lock);
501 &sh_chan->ld_queue, node) { 601 list_for_each_entry(desc, &sh_chan->ld_queue, node) {
502 if ((desc->hw.sar + desc->hw.tcr) == sar_buf) { 602 if ((desc->hw.sar + desc->hw.tcr) == sar_buf &&
503 cur_desc = desc; 603 desc->mark == DESC_SUBMITTED) {
604 dev_dbg(sh_chan->dev, "done #%d@%p dst %u\n",
605 desc->async_tx.cookie, &desc->async_tx,
606 desc->hw.dar);
607 desc->mark = DESC_COMPLETED;
504 break; 608 break;
505 } 609 }
506 } 610 }
611 spin_unlock(&sh_chan->desc_lock);
507 612
508 if (cur_desc) {
509 switch (cur_desc->async_tx.cookie) {
510 case 0: /* other desc data */
511 break;
512 case -EBUSY: /* last desc */
513 sh_chan->completed_cookie =
514 cur_desc->async_tx.cookie;
515 break;
516 default: /* first desc ( 0 < )*/
517 sh_chan->completed_cookie =
518 cur_desc->async_tx.cookie - 1;
519 break;
520 }
521 cur_desc->mark = DESC_COMP;
522 }
523 /* Next desc */ 613 /* Next desc */
524 sh_chan_xfer_ld_queue(sh_chan); 614 sh_chan_xfer_ld_queue(sh_chan);
525 sh_dmae_chan_ld_cleanup(sh_chan); 615 sh_dmae_chan_ld_cleanup(sh_chan, false);
526} 616}
527 617
528static unsigned int get_dmae_irq(unsigned int id) 618static unsigned int get_dmae_irq(unsigned int id)
diff --git a/drivers/dma/shdma.h b/drivers/dma/shdma.h
index 60b81e529b42..108f1cffb6f5 100644
--- a/drivers/dma/shdma.h
+++ b/drivers/dma/shdma.h
@@ -13,9 +13,9 @@
13#ifndef __DMA_SHDMA_H 13#ifndef __DMA_SHDMA_H
14#define __DMA_SHDMA_H 14#define __DMA_SHDMA_H
15 15
16#include <linux/device.h>
17#include <linux/dmapool.h>
18#include <linux/dmaengine.h> 16#include <linux/dmaengine.h>
17#include <linux/interrupt.h>
18#include <linux/list.h>
19 19
20#define SH_DMA_TCR_MAX 0x00FFFFFF /* 16MB */ 20#define SH_DMA_TCR_MAX 0x00FFFFFF /* 16MB */
21 21
@@ -26,13 +26,16 @@ struct sh_dmae_regs {
26}; 26};
27 27
28struct sh_desc { 28struct sh_desc {
29 struct list_head tx_list;
30 struct sh_dmae_regs hw; 29 struct sh_dmae_regs hw;
31 struct list_head node; 30 struct list_head node;
32 struct dma_async_tx_descriptor async_tx; 31 struct dma_async_tx_descriptor async_tx;
32 dma_cookie_t cookie;
33 int chunks;
33 int mark; 34 int mark;
34}; 35};
35 36
37struct device;
38
36struct sh_dmae_chan { 39struct sh_dmae_chan {
37 dma_cookie_t completed_cookie; /* The maximum cookie completed */ 40 dma_cookie_t completed_cookie; /* The maximum cookie completed */
38 spinlock_t desc_lock; /* Descriptor operation lock */ 41 spinlock_t desc_lock; /* Descriptor operation lock */
diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig
index 13efcd362072..a9371b36a9b9 100644
--- a/drivers/firewire/Kconfig
+++ b/drivers/firewire/Kconfig
@@ -1,5 +1,10 @@
1menu "IEEE 1394 (FireWire) support"
2 depends on PCI || BROKEN
3 # firewire-core does not depend on PCI but is
4 # not useful without PCI controller driver
5
1comment "You can enable one or both FireWire driver stacks." 6comment "You can enable one or both FireWire driver stacks."
2comment "See the help texts for more information." 7comment "The newer stack is recommended."
3 8
4config FIREWIRE 9config FIREWIRE
5 tristate "FireWire driver stack" 10 tristate "FireWire driver stack"
@@ -15,16 +20,6 @@ config FIREWIRE
15 To compile this driver as a module, say M here: the module will be 20 To compile this driver as a module, say M here: the module will be
16 called firewire-core. 21 called firewire-core.
17 22
18 This module functionally replaces ieee1394, raw1394, and video1394.
19 To access it from application programs, you generally need at least
20 libraw1394 v2. IIDC/DCAM applications need libdc1394 v2.
21 No libraries are required to access storage devices through the
22 firewire-sbp2 driver.
23
24 NOTE:
25 FireWire audio devices currently require the old drivers (ieee1394,
26 ohci1394, raw1394).
27
28config FIREWIRE_OHCI 23config FIREWIRE_OHCI
29 tristate "OHCI-1394 controllers" 24 tristate "OHCI-1394 controllers"
30 depends on PCI && FIREWIRE 25 depends on PCI && FIREWIRE
@@ -34,22 +29,7 @@ config FIREWIRE_OHCI
34 is the only chipset in use, so say Y here. 29 is the only chipset in use, so say Y here.
35 30
36 To compile this driver as a module, say M here: The module will be 31 To compile this driver as a module, say M here: The module will be
37 called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394 32 called firewire-ohci.
38 stack.
39
40 NOTE:
41 If you want to install firewire-ohci and ohci1394 together, you
42 should configure them only as modules and blacklist the driver(s)
43 which you don't want to have auto-loaded. Add either
44
45 blacklist firewire-ohci
46 or
47 blacklist ohci1394
48 blacklist video1394
49 blacklist dv1394
50
51 to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf
52 depending on your distribution.
53 33
54config FIREWIRE_OHCI_DEBUG 34config FIREWIRE_OHCI_DEBUG
55 bool 35 bool
@@ -66,8 +46,7 @@ config FIREWIRE_SBP2
66 like scanners. 46 like scanners.
67 47
68 To compile this driver as a module, say M here: The module will be 48 To compile this driver as a module, say M here: The module will be
69 called firewire-sbp2. It replaces sbp2 of the classic IEEE 1394 49 called firewire-sbp2.
70 stack.
71 50
72 You should also enable support for disks, CD-ROMs, etc. in the SCSI 51 You should also enable support for disks, CD-ROMs, etc. in the SCSI
73 configuration section. 52 configuration section.
@@ -83,5 +62,8 @@ config FIREWIRE_NET
83 NOTE, this driver is not stable yet! 62 NOTE, this driver is not stable yet!
84 63
85 To compile this driver as a module, say M here: The module will be 64 To compile this driver as a module, say M here: The module will be
86 called firewire-net. It replaces eth1394 of the classic IEEE 1394 65 called firewire-net.
87 stack. 66
67source "drivers/ieee1394/Kconfig"
68
69endmenu
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c
index 231e6ee5ba43..e6d63849e78e 100644
--- a/drivers/firewire/core-cdev.c
+++ b/drivers/firewire/core-cdev.c
@@ -601,8 +601,9 @@ static void release_request(struct client *client,
601 struct inbound_transaction_resource *r = container_of(resource, 601 struct inbound_transaction_resource *r = container_of(resource,
602 struct inbound_transaction_resource, resource); 602 struct inbound_transaction_resource, resource);
603 603
604 fw_send_response(client->device->card, r->request, 604 if (r->request)
605 RCODE_CONFLICT_ERROR); 605 fw_send_response(client->device->card, r->request,
606 RCODE_CONFLICT_ERROR);
606 kfree(r); 607 kfree(r);
607} 608}
608 609
@@ -645,7 +646,8 @@ static void handle_request(struct fw_card *card, struct fw_request *request,
645 failed: 646 failed:
646 kfree(r); 647 kfree(r);
647 kfree(e); 648 kfree(e);
648 fw_send_response(card, request, RCODE_CONFLICT_ERROR); 649 if (request)
650 fw_send_response(card, request, RCODE_CONFLICT_ERROR);
649} 651}
650 652
651static void release_address_handler(struct client *client, 653static void release_address_handler(struct client *client,
@@ -715,15 +717,18 @@ static int ioctl_send_response(struct client *client, void *buffer)
715 717
716 r = container_of(resource, struct inbound_transaction_resource, 718 r = container_of(resource, struct inbound_transaction_resource,
717 resource); 719 resource);
718 if (request->length < r->length) 720 if (r->request) {
719 r->length = request->length; 721 if (request->length < r->length)
720 722 r->length = request->length;
721 if (copy_from_user(r->data, u64_to_uptr(request->data), r->length)) { 723 if (copy_from_user(r->data, u64_to_uptr(request->data),
722 ret = -EFAULT; 724 r->length)) {
723 goto out; 725 ret = -EFAULT;
726 kfree(r->request);
727 goto out;
728 }
729 fw_send_response(client->device->card, r->request,
730 request->rcode);
724 } 731 }
725
726 fw_send_response(client->device->card, r->request, request->rcode);
727 out: 732 out:
728 kfree(r); 733 kfree(r);
729 734
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
index 842739df23e2..495849eb13cc 100644
--- a/drivers/firewire/core-transaction.c
+++ b/drivers/firewire/core-transaction.c
@@ -432,14 +432,20 @@ static struct fw_address_handler *lookup_overlapping_address_handler(
432 return NULL; 432 return NULL;
433} 433}
434 434
435static bool is_enclosing_handler(struct fw_address_handler *handler,
436 unsigned long long offset, size_t length)
437{
438 return handler->offset <= offset &&
439 offset + length <= handler->offset + handler->length;
440}
441
435static struct fw_address_handler *lookup_enclosing_address_handler( 442static struct fw_address_handler *lookup_enclosing_address_handler(
436 struct list_head *list, unsigned long long offset, size_t length) 443 struct list_head *list, unsigned long long offset, size_t length)
437{ 444{
438 struct fw_address_handler *handler; 445 struct fw_address_handler *handler;
439 446
440 list_for_each_entry(handler, list, link) { 447 list_for_each_entry(handler, list, link) {
441 if (handler->offset <= offset && 448 if (is_enclosing_handler(handler, offset, length))
442 offset + length <= handler->offset + handler->length)
443 return handler; 449 return handler;
444 } 450 }
445 451
@@ -465,6 +471,12 @@ const struct fw_address_region fw_unit_space_region =
465 { .start = 0xfffff0000900ULL, .end = 0x1000000000000ULL, }; 471 { .start = 0xfffff0000900ULL, .end = 0x1000000000000ULL, };
466#endif /* 0 */ 472#endif /* 0 */
467 473
474static bool is_in_fcp_region(u64 offset, size_t length)
475{
476 return offset >= (CSR_REGISTER_BASE | CSR_FCP_COMMAND) &&
477 offset + length <= (CSR_REGISTER_BASE | CSR_FCP_END);
478}
479
468/** 480/**
469 * fw_core_add_address_handler - register for incoming requests 481 * fw_core_add_address_handler - register for incoming requests
470 * @handler: callback 482 * @handler: callback
@@ -477,8 +489,11 @@ const struct fw_address_region fw_unit_space_region =
477 * give the details of the particular request. 489 * give the details of the particular request.
478 * 490 *
479 * Return value: 0 on success, non-zero otherwise. 491 * Return value: 0 on success, non-zero otherwise.
492 *
480 * The start offset of the handler's address region is determined by 493 * The start offset of the handler's address region is determined by
481 * fw_core_add_address_handler() and is returned in handler->offset. 494 * fw_core_add_address_handler() and is returned in handler->offset.
495 *
496 * Address allocations are exclusive, except for the FCP registers.
482 */ 497 */
483int fw_core_add_address_handler(struct fw_address_handler *handler, 498int fw_core_add_address_handler(struct fw_address_handler *handler,
484 const struct fw_address_region *region) 499 const struct fw_address_region *region)
@@ -498,10 +513,12 @@ int fw_core_add_address_handler(struct fw_address_handler *handler,
498 513
499 handler->offset = region->start; 514 handler->offset = region->start;
500 while (handler->offset + handler->length <= region->end) { 515 while (handler->offset + handler->length <= region->end) {
501 other = 516 if (is_in_fcp_region(handler->offset, handler->length))
502 lookup_overlapping_address_handler(&address_handler_list, 517 other = NULL;
503 handler->offset, 518 else
504 handler->length); 519 other = lookup_overlapping_address_handler
520 (&address_handler_list,
521 handler->offset, handler->length);
505 if (other != NULL) { 522 if (other != NULL) {
506 handler->offset += other->length; 523 handler->offset += other->length;
507 } else { 524 } else {
@@ -668,6 +685,9 @@ static struct fw_request *allocate_request(struct fw_packet *p)
668void fw_send_response(struct fw_card *card, 685void fw_send_response(struct fw_card *card,
669 struct fw_request *request, int rcode) 686 struct fw_request *request, int rcode)
670{ 687{
688 if (WARN_ONCE(!request, "invalid for FCP address handlers"))
689 return;
690
671 /* unified transaction or broadcast transaction: don't respond */ 691 /* unified transaction or broadcast transaction: don't respond */
672 if (request->ack != ACK_PENDING || 692 if (request->ack != ACK_PENDING ||
673 HEADER_DESTINATION_IS_BROADCAST(request->request_header[0])) { 693 HEADER_DESTINATION_IS_BROADCAST(request->request_header[0])) {
@@ -686,26 +706,15 @@ void fw_send_response(struct fw_card *card,
686} 706}
687EXPORT_SYMBOL(fw_send_response); 707EXPORT_SYMBOL(fw_send_response);
688 708
689void fw_core_handle_request(struct fw_card *card, struct fw_packet *p) 709static void handle_exclusive_region_request(struct fw_card *card,
710 struct fw_packet *p,
711 struct fw_request *request,
712 unsigned long long offset)
690{ 713{
691 struct fw_address_handler *handler; 714 struct fw_address_handler *handler;
692 struct fw_request *request;
693 unsigned long long offset;
694 unsigned long flags; 715 unsigned long flags;
695 int tcode, destination, source; 716 int tcode, destination, source;
696 717
697 if (p->ack != ACK_PENDING && p->ack != ACK_COMPLETE)
698 return;
699
700 request = allocate_request(p);
701 if (request == NULL) {
702 /* FIXME: send statically allocated busy packet. */
703 return;
704 }
705
706 offset =
707 ((unsigned long long)
708 HEADER_GET_OFFSET_HIGH(p->header[1]) << 32) | p->header[2];
709 tcode = HEADER_GET_TCODE(p->header[0]); 718 tcode = HEADER_GET_TCODE(p->header[0]);
710 destination = HEADER_GET_DESTINATION(p->header[0]); 719 destination = HEADER_GET_DESTINATION(p->header[0]);
711 source = HEADER_GET_SOURCE(p->header[1]); 720 source = HEADER_GET_SOURCE(p->header[1]);
@@ -732,6 +741,73 @@ void fw_core_handle_request(struct fw_card *card, struct fw_packet *p)
732 request->data, request->length, 741 request->data, request->length,
733 handler->callback_data); 742 handler->callback_data);
734} 743}
744
745static void handle_fcp_region_request(struct fw_card *card,
746 struct fw_packet *p,
747 struct fw_request *request,
748 unsigned long long offset)
749{
750 struct fw_address_handler *handler;
751 unsigned long flags;
752 int tcode, destination, source;
753
754 if ((offset != (CSR_REGISTER_BASE | CSR_FCP_COMMAND) &&
755 offset != (CSR_REGISTER_BASE | CSR_FCP_RESPONSE)) ||
756 request->length > 0x200) {
757 fw_send_response(card, request, RCODE_ADDRESS_ERROR);
758
759 return;
760 }
761
762 tcode = HEADER_GET_TCODE(p->header[0]);
763 destination = HEADER_GET_DESTINATION(p->header[0]);
764 source = HEADER_GET_SOURCE(p->header[1]);
765
766 if (tcode != TCODE_WRITE_QUADLET_REQUEST &&
767 tcode != TCODE_WRITE_BLOCK_REQUEST) {
768 fw_send_response(card, request, RCODE_TYPE_ERROR);
769
770 return;
771 }
772
773 spin_lock_irqsave(&address_handler_lock, flags);
774 list_for_each_entry(handler, &address_handler_list, link) {
775 if (is_enclosing_handler(handler, offset, request->length))
776 handler->address_callback(card, NULL, tcode,
777 destination, source,
778 p->generation, p->speed,
779 offset, request->data,
780 request->length,
781 handler->callback_data);
782 }
783 spin_unlock_irqrestore(&address_handler_lock, flags);
784
785 fw_send_response(card, request, RCODE_COMPLETE);
786}
787
788void fw_core_handle_request(struct fw_card *card, struct fw_packet *p)
789{
790 struct fw_request *request;
791 unsigned long long offset;
792
793 if (p->ack != ACK_PENDING && p->ack != ACK_COMPLETE)
794 return;
795
796 request = allocate_request(p);
797 if (request == NULL) {
798 /* FIXME: send statically allocated busy packet. */
799 return;
800 }
801
802 offset = ((u64)HEADER_GET_OFFSET_HIGH(p->header[1]) << 32) |
803 p->header[2];
804
805 if (!is_in_fcp_region(offset, request->length))
806 handle_exclusive_region_request(card, p, request, offset);
807 else
808 handle_fcp_region_request(card, p, request, offset);
809
810}
735EXPORT_SYMBOL(fw_core_handle_request); 811EXPORT_SYMBOL(fw_core_handle_request);
736 812
737void fw_core_handle_response(struct fw_card *card, struct fw_packet *p) 813void fw_core_handle_response(struct fw_card *card, struct fw_packet *p)
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
index 96768e160866..a61571c63c59 100644
--- a/drivers/firewire/ohci.c
+++ b/drivers/firewire/ohci.c
@@ -2226,7 +2226,6 @@ static int ohci_queue_iso_receive_dualbuffer(struct fw_iso_context *base,
2226 if (rest == 0) 2226 if (rest == 0)
2227 return -EINVAL; 2227 return -EINVAL;
2228 2228
2229 /* FIXME: make packet-per-buffer/dual-buffer a context option */
2230 while (rest > 0) { 2229 while (rest > 0) {
2231 d = context_get_descriptors(&ctx->context, 2230 d = context_get_descriptors(&ctx->context,
2232 z + header_z, &d_bus); 2231 z + header_z, &d_bus);
@@ -2470,7 +2469,10 @@ static int __devinit pci_probe(struct pci_dev *dev,
2470 } 2469 }
2471 2470
2472 version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff; 2471 version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff;
2472#if 0
2473 /* FIXME: make it a context option or remove dual-buffer mode */
2473 ohci->use_dualbuffer = version >= OHCI_VERSION_1_1; 2474 ohci->use_dualbuffer = version >= OHCI_VERSION_1_1;
2475#endif
2474 2476
2475 /* dual-buffer mode is broken if more than one IR context is active */ 2477 /* dual-buffer mode is broken if more than one IR context is active */
2476 if (dev->vendor == PCI_VENDOR_ID_AGERE && 2478 if (dev->vendor == PCI_VENDOR_ID_AGERE &&
diff --git a/drivers/gpu/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c
index 628eae3e9b83..a1fce68e3bbe 100644
--- a/drivers/gpu/drm/ati_pcigart.c
+++ b/drivers/gpu/drm/ati_pcigart.c
@@ -39,8 +39,7 @@ static int drm_ati_alloc_pcigart_table(struct drm_device *dev,
39 struct drm_ati_pcigart_info *gart_info) 39 struct drm_ati_pcigart_info *gart_info)
40{ 40{
41 gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size, 41 gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size,
42 PAGE_SIZE, 42 PAGE_SIZE);
43 gart_info->table_mask);
44 if (gart_info->table_handle == NULL) 43 if (gart_info->table_handle == NULL)
45 return -ENOMEM; 44 return -ENOMEM;
46 45
@@ -112,6 +111,13 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
112 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { 111 if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) {
113 DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); 112 DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n");
114 113
114 if (pci_set_dma_mask(dev->pdev, gart_info->table_mask)) {
115 DRM_ERROR("fail to set dma mask to 0x%Lx\n",
116 gart_info->table_mask);
117 ret = 1;
118 goto done;
119 }
120
115 ret = drm_ati_alloc_pcigart_table(dev, gart_info); 121 ret = drm_ati_alloc_pcigart_table(dev, gart_info);
116 if (ret) { 122 if (ret) {
117 DRM_ERROR("cannot allocate PCI GART page!\n"); 123 DRM_ERROR("cannot allocate PCI GART page!\n");
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
index 3d09e304f6f4..8417cc4c43f1 100644
--- a/drivers/gpu/drm/drm_bufs.c
+++ b/drivers/gpu/drm/drm_bufs.c
@@ -326,7 +326,7 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset,
326 * As we're limiting the address to 2^32-1 (or less), 326 * As we're limiting the address to 2^32-1 (or less),
327 * casting it down to 32 bits is no problem, but we 327 * casting it down to 32 bits is no problem, but we
328 * need to point to a 64bit variable first. */ 328 * need to point to a 64bit variable first. */
329 dmah = drm_pci_alloc(dev, map->size, map->size, 0xffffffffUL); 329 dmah = drm_pci_alloc(dev, map->size, map->size);
330 if (!dmah) { 330 if (!dmah) {
331 kfree(map); 331 kfree(map);
332 return -ENOMEM; 332 return -ENOMEM;
@@ -885,7 +885,7 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request)
885 885
886 while (entry->buf_count < count) { 886 while (entry->buf_count < count) {
887 887
888 dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000, 0xfffffffful); 888 dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000);
889 889
890 if (!dmah) { 890 if (!dmah) {
891 /* Set count correctly so we free the proper amount. */ 891 /* Set count correctly so we free the proper amount. */
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 5c9f79877cbf..defcaf108460 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -911,23 +911,27 @@ static int drm_cvt_modes(struct drm_connector *connector,
911 struct drm_device *dev = connector->dev; 911 struct drm_device *dev = connector->dev;
912 struct cvt_timing *cvt; 912 struct cvt_timing *cvt;
913 const int rates[] = { 60, 85, 75, 60, 50 }; 913 const int rates[] = { 60, 85, 75, 60, 50 };
914 const u8 empty[3] = { 0, 0, 0 };
914 915
915 for (i = 0; i < 4; i++) { 916 for (i = 0; i < 4; i++) {
916 int uninitialized_var(width), height; 917 int uninitialized_var(width), height;
917 cvt = &(timing->data.other_data.data.cvt[i]); 918 cvt = &(timing->data.other_data.data.cvt[i]);
918 919
919 height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 8) + 1) * 2; 920 if (!memcmp(cvt->code, empty, 3))
920 switch (cvt->code[1] & 0xc0) { 921 continue;
922
923 height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2;
924 switch (cvt->code[1] & 0x0c) {
921 case 0x00: 925 case 0x00:
922 width = height * 4 / 3; 926 width = height * 4 / 3;
923 break; 927 break;
924 case 0x40: 928 case 0x04:
925 width = height * 16 / 9; 929 width = height * 16 / 9;
926 break; 930 break;
927 case 0x80: 931 case 0x08:
928 width = height * 16 / 10; 932 width = height * 16 / 10;
929 break; 933 break;
930 case 0xc0: 934 case 0x0c:
931 width = height * 15 / 9; 935 width = height * 15 / 9;
932 break; 936 break;
933 } 937 }
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 1b49fa055f4f..100ee48760b7 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -156,7 +156,7 @@ static bool drm_fb_helper_connector_parse_command_line(struct drm_connector *con
156 force = DRM_FORCE_ON; 156 force = DRM_FORCE_ON;
157 break; 157 break;
158 case 'D': 158 case 'D':
159 if ((connector->connector_type != DRM_MODE_CONNECTOR_DVII) || 159 if ((connector->connector_type != DRM_MODE_CONNECTOR_DVII) &&
160 (connector->connector_type != DRM_MODE_CONNECTOR_HDMIB)) 160 (connector->connector_type != DRM_MODE_CONNECTOR_HDMIB))
161 force = DRM_FORCE_ON; 161 force = DRM_FORCE_ON;
162 else 162 else
diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c
index 577094fb1995..e68ebf92fa2a 100644
--- a/drivers/gpu/drm/drm_pci.c
+++ b/drivers/gpu/drm/drm_pci.c
@@ -47,8 +47,7 @@
47/** 47/**
48 * \brief Allocate a PCI consistent memory block, for DMA. 48 * \brief Allocate a PCI consistent memory block, for DMA.
49 */ 49 */
50drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align, 50drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align)
51 dma_addr_t maxaddr)
52{ 51{
53 drm_dma_handle_t *dmah; 52 drm_dma_handle_t *dmah;
54#if 1 53#if 1
@@ -63,11 +62,6 @@ drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t ali
63 if (align > size) 62 if (align > size)
64 return NULL; 63 return NULL;
65 64
66 if (pci_set_dma_mask(dev->pdev, maxaddr) != 0) {
67 DRM_ERROR("Setting pci dma mask failed\n");
68 return NULL;
69 }
70
71 dmah = kmalloc(sizeof(drm_dma_handle_t), GFP_KERNEL); 65 dmah = kmalloc(sizeof(drm_dma_handle_t), GFP_KERNEL);
72 if (!dmah) 66 if (!dmah)
73 return NULL; 67 return NULL;
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 18476bf0b580..9c9998c4dceb 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -272,7 +272,7 @@ static void i915_dump_pages(struct seq_file *m, struct page **pages, int page_co
272 mem = kmap_atomic(pages[page], KM_USER0); 272 mem = kmap_atomic(pages[page], KM_USER0);
273 for (i = 0; i < PAGE_SIZE; i += 4) 273 for (i = 0; i < PAGE_SIZE; i += 4)
274 seq_printf(m, "%08x : %08x\n", i, mem[i / 4]); 274 seq_printf(m, "%08x : %08x\n", i, mem[i / 4]);
275 kunmap_atomic(pages[page], KM_USER0); 275 kunmap_atomic(mem, KM_USER0);
276 } 276 }
277} 277}
278 278
@@ -386,34 +386,6 @@ out:
386 return 0; 386 return 0;
387} 387}
388 388
389static int i915_registers_info(struct seq_file *m, void *data) {
390 struct drm_info_node *node = (struct drm_info_node *) m->private;
391 struct drm_device *dev = node->minor->dev;
392 drm_i915_private_t *dev_priv = dev->dev_private;
393 uint32_t reg;
394
395#define DUMP_RANGE(start, end) \
396 for (reg=start; reg < end; reg += 4) \
397 seq_printf(m, "%08x\t%08x\n", reg, I915_READ(reg));
398
399 DUMP_RANGE(0x00000, 0x00fff); /* VGA registers */
400 DUMP_RANGE(0x02000, 0x02fff); /* instruction, memory, interrupt control registers */
401 DUMP_RANGE(0x03000, 0x031ff); /* FENCE and PPGTT control registers */
402 DUMP_RANGE(0x03200, 0x03fff); /* frame buffer compression registers */
403 DUMP_RANGE(0x05000, 0x05fff); /* I/O control registers */
404 DUMP_RANGE(0x06000, 0x06fff); /* clock control registers */
405 DUMP_RANGE(0x07000, 0x07fff); /* 3D internal debug registers */
406 DUMP_RANGE(0x07400, 0x088ff); /* GPE debug registers */
407 DUMP_RANGE(0x0a000, 0x0afff); /* display palette registers */
408 DUMP_RANGE(0x10000, 0x13fff); /* MMIO MCHBAR */
409 DUMP_RANGE(0x30000, 0x3ffff); /* overlay registers */
410 DUMP_RANGE(0x60000, 0x6ffff); /* display engine pipeline registers */
411 DUMP_RANGE(0x70000, 0x72fff); /* display and cursor registers */
412 DUMP_RANGE(0x73000, 0x73fff); /* performance counters */
413
414 return 0;
415}
416
417static int 389static int
418i915_wedged_open(struct inode *inode, 390i915_wedged_open(struct inode *inode,
419 struct file *filp) 391 struct file *filp)
@@ -519,7 +491,6 @@ static int i915_wedged_create(struct dentry *root, struct drm_minor *minor)
519} 491}
520 492
521static struct drm_info_list i915_debugfs_list[] = { 493static struct drm_info_list i915_debugfs_list[] = {
522 {"i915_regs", i915_registers_info, 0},
523 {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, 494 {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST},
524 {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST}, 495 {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST},
525 {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) INACTIVE_LIST}, 496 {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) INACTIVE_LIST},
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 701bfeac7f57..bbe47812e4b6 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -123,7 +123,7 @@ static int i915_init_phys_hws(struct drm_device *dev)
123 drm_i915_private_t *dev_priv = dev->dev_private; 123 drm_i915_private_t *dev_priv = dev->dev_private;
124 /* Program Hardware Status Page */ 124 /* Program Hardware Status Page */
125 dev_priv->status_page_dmah = 125 dev_priv->status_page_dmah =
126 drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff); 126 drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE);
127 127
128 if (!dev_priv->status_page_dmah) { 128 if (!dev_priv->status_page_dmah) {
129 DRM_ERROR("Can not allocate hardware status page\n"); 129 DRM_ERROR("Can not allocate hardware status page\n");
@@ -813,9 +813,13 @@ static int i915_getparam(struct drm_device *dev, void *data,
813 case I915_PARAM_HAS_PAGEFLIPPING: 813 case I915_PARAM_HAS_PAGEFLIPPING:
814 value = 1; 814 value = 1;
815 break; 815 break;
816 case I915_PARAM_HAS_EXECBUF2:
817 /* depends on GEM */
818 value = dev_priv->has_gem;
819 break;
816 default: 820 default:
817 DRM_DEBUG_DRIVER("Unknown parameter %d\n", 821 DRM_DEBUG_DRIVER("Unknown parameter %d\n",
818 param->param); 822 param->param);
819 return -EINVAL; 823 return -EINVAL;
820 } 824 }
821 825
@@ -1117,7 +1121,8 @@ static void i915_setup_compression(struct drm_device *dev, int size)
1117{ 1121{
1118 struct drm_i915_private *dev_priv = dev->dev_private; 1122 struct drm_i915_private *dev_priv = dev->dev_private;
1119 struct drm_mm_node *compressed_fb, *compressed_llb; 1123 struct drm_mm_node *compressed_fb, *compressed_llb;
1120 unsigned long cfb_base, ll_base; 1124 unsigned long cfb_base;
1125 unsigned long ll_base = 0;
1121 1126
1122 /* Leave 1M for line length buffer & misc. */ 1127 /* Leave 1M for line length buffer & misc. */
1123 compressed_fb = drm_mm_search_free(&dev_priv->vram, size, 4096, 0); 1128 compressed_fb = drm_mm_search_free(&dev_priv->vram, size, 4096, 0);
@@ -1200,14 +1205,6 @@ static int i915_load_modeset_init(struct drm_device *dev,
1200 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) & 1205 dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) &
1201 0xff000000; 1206 0xff000000;
1202 1207
1203 if (IS_MOBILE(dev) || IS_I9XX(dev))
1204 dev_priv->cursor_needs_physical = true;
1205 else
1206 dev_priv->cursor_needs_physical = false;
1207
1208 if (IS_I965G(dev) || IS_G33(dev))
1209 dev_priv->cursor_needs_physical = false;
1210
1211 /* Basic memrange allocator for stolen space (aka vram) */ 1208 /* Basic memrange allocator for stolen space (aka vram) */
1212 drm_mm_init(&dev_priv->vram, 0, prealloc_size); 1209 drm_mm_init(&dev_priv->vram, 0, prealloc_size);
1213 DRM_INFO("set up %ldM of stolen space\n", prealloc_size / (1024*1024)); 1210 DRM_INFO("set up %ldM of stolen space\n", prealloc_size / (1024*1024));
@@ -1257,6 +1254,8 @@ static int i915_load_modeset_init(struct drm_device *dev,
1257 if (ret) 1254 if (ret)
1258 goto destroy_ringbuffer; 1255 goto destroy_ringbuffer;
1259 1256
1257 intel_modeset_init(dev);
1258
1260 ret = drm_irq_install(dev); 1259 ret = drm_irq_install(dev);
1261 if (ret) 1260 if (ret)
1262 goto destroy_ringbuffer; 1261 goto destroy_ringbuffer;
@@ -1271,8 +1270,6 @@ static int i915_load_modeset_init(struct drm_device *dev,
1271 1270
1272 I915_WRITE(INSTPM, (1 << 5) | (1 << 21)); 1271 I915_WRITE(INSTPM, (1 << 5) | (1 << 21));
1273 1272
1274 intel_modeset_init(dev);
1275
1276 drm_helper_initial_config(dev); 1273 drm_helper_initial_config(dev);
1277 1274
1278 return 0; 1275 return 0;
@@ -1360,7 +1357,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1360{ 1357{
1361 struct drm_i915_private *dev_priv = dev->dev_private; 1358 struct drm_i915_private *dev_priv = dev->dev_private;
1362 resource_size_t base, size; 1359 resource_size_t base, size;
1363 int ret = 0, mmio_bar = IS_I9XX(dev) ? 0 : 1; 1360 int ret = 0, mmio_bar;
1364 uint32_t agp_size, prealloc_size, prealloc_start; 1361 uint32_t agp_size, prealloc_size, prealloc_start;
1365 1362
1366 /* i915 has 4 more counters */ 1363 /* i915 has 4 more counters */
@@ -1376,8 +1373,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1376 1373
1377 dev->dev_private = (void *)dev_priv; 1374 dev->dev_private = (void *)dev_priv;
1378 dev_priv->dev = dev; 1375 dev_priv->dev = dev;
1376 dev_priv->info = (struct intel_device_info *) flags;
1379 1377
1380 /* Add register map (needed for suspend/resume) */ 1378 /* Add register map (needed for suspend/resume) */
1379 mmio_bar = IS_I9XX(dev) ? 0 : 1;
1381 base = drm_get_resource_start(dev, mmio_bar); 1380 base = drm_get_resource_start(dev, mmio_bar);
1382 size = drm_get_resource_len(dev, mmio_bar); 1381 size = drm_get_resource_len(dev, mmio_bar);
1383 1382
@@ -1652,6 +1651,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
1652 DRM_IOCTL_DEF(DRM_I915_HWS_ADDR, i915_set_status_page, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), 1651 DRM_IOCTL_DEF(DRM_I915_HWS_ADDR, i915_set_status_page, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
1653 DRM_IOCTL_DEF(DRM_I915_GEM_INIT, i915_gem_init_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), 1652 DRM_IOCTL_DEF(DRM_I915_GEM_INIT, i915_gem_init_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
1654 DRM_IOCTL_DEF(DRM_I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH), 1653 DRM_IOCTL_DEF(DRM_I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH),
1654 DRM_IOCTL_DEF(DRM_I915_GEM_EXECBUFFER2, i915_gem_execbuffer2, DRM_AUTH),
1655 DRM_IOCTL_DEF(DRM_I915_GEM_PIN, i915_gem_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), 1655 DRM_IOCTL_DEF(DRM_I915_GEM_PIN, i915_gem_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
1656 DRM_IOCTL_DEF(DRM_I915_GEM_UNPIN, i915_gem_unpin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), 1656 DRM_IOCTL_DEF(DRM_I915_GEM_UNPIN, i915_gem_unpin_ioctl, DRM_AUTH|DRM_ROOT_ONLY),
1657 DRM_IOCTL_DEF(DRM_I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_AUTH), 1657 DRM_IOCTL_DEF(DRM_I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_AUTH),
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 24286ca168fc..2ffffd7ae09a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -33,7 +33,6 @@
33#include "i915_drm.h" 33#include "i915_drm.h"
34#include "i915_drv.h" 34#include "i915_drv.h"
35 35
36#include "drm_pciids.h"
37#include <linux/console.h> 36#include <linux/console.h>
38#include "drm_crtc_helper.h" 37#include "drm_crtc_helper.h"
39 38
@@ -48,8 +47,124 @@ module_param_named(powersave, i915_powersave, int, 0400);
48 47
49static struct drm_driver driver; 48static struct drm_driver driver;
50 49
51static struct pci_device_id pciidlist[] = { 50#define INTEL_VGA_DEVICE(id, info) { \
52 i915_PCI_IDS 51 .class = PCI_CLASS_DISPLAY_VGA << 8, \
52 .class_mask = 0xffff00, \
53 .vendor = 0x8086, \
54 .device = id, \
55 .subvendor = PCI_ANY_ID, \
56 .subdevice = PCI_ANY_ID, \
57 .driver_data = (unsigned long) info }
58
59const static struct intel_device_info intel_i830_info = {
60 .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1,
61};
62
63const static struct intel_device_info intel_845g_info = {
64 .is_i8xx = 1,
65};
66
67const static struct intel_device_info intel_i85x_info = {
68 .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1,
69};
70
71const static struct intel_device_info intel_i865g_info = {
72 .is_i8xx = 1,
73};
74
75const static struct intel_device_info intel_i915g_info = {
76 .is_i915g = 1, .is_i9xx = 1, .cursor_needs_physical = 1,
77};
78const static struct intel_device_info intel_i915gm_info = {
79 .is_i9xx = 1, .is_mobile = 1, .has_fbc = 1,
80 .cursor_needs_physical = 1,
81};
82const static struct intel_device_info intel_i945g_info = {
83 .is_i9xx = 1, .has_hotplug = 1, .cursor_needs_physical = 1,
84};
85const static struct intel_device_info intel_i945gm_info = {
86 .is_i945gm = 1, .is_i9xx = 1, .is_mobile = 1, .has_fbc = 1,
87 .has_hotplug = 1, .cursor_needs_physical = 1,
88};
89
90const static struct intel_device_info intel_i965g_info = {
91 .is_i965g = 1, .is_i9xx = 1, .has_hotplug = 1,
92};
93
94const static struct intel_device_info intel_i965gm_info = {
95 .is_i965g = 1, .is_mobile = 1, .is_i965gm = 1, .is_i9xx = 1,
96 .is_mobile = 1, .has_fbc = 1, .has_rc6 = 1,
97 .has_hotplug = 1,
98};
99
100const static struct intel_device_info intel_g33_info = {
101 .is_g33 = 1, .is_i9xx = 1, .need_gfx_hws = 1,
102 .has_hotplug = 1,
103};
104
105const static struct intel_device_info intel_g45_info = {
106 .is_i965g = 1, .is_g4x = 1, .is_i9xx = 1, .need_gfx_hws = 1,
107 .has_pipe_cxsr = 1,
108 .has_hotplug = 1,
109};
110
111const static struct intel_device_info intel_gm45_info = {
112 .is_i965g = 1, .is_mobile = 1, .is_g4x = 1, .is_i9xx = 1,
113 .is_mobile = 1, .need_gfx_hws = 1, .has_fbc = 1, .has_rc6 = 1,
114 .has_pipe_cxsr = 1,
115 .has_hotplug = 1,
116};
117
118const static struct intel_device_info intel_pineview_info = {
119 .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1,
120 .has_pipe_cxsr = 1,
121 .has_hotplug = 1,
122};
123
124const static struct intel_device_info intel_ironlake_d_info = {
125 .is_ironlake = 1, .is_i965g = 1, .is_i9xx = 1, .need_gfx_hws = 1,
126 .has_pipe_cxsr = 1,
127 .has_hotplug = 1,
128};
129
130const static struct intel_device_info intel_ironlake_m_info = {
131 .is_ironlake = 1, .is_mobile = 1, .is_i965g = 1, .is_i9xx = 1,
132 .need_gfx_hws = 1, .has_rc6 = 1,
133 .has_hotplug = 1,
134};
135
136const static struct pci_device_id pciidlist[] = {
137 INTEL_VGA_DEVICE(0x3577, &intel_i830_info),
138 INTEL_VGA_DEVICE(0x2562, &intel_845g_info),
139 INTEL_VGA_DEVICE(0x3582, &intel_i85x_info),
140 INTEL_VGA_DEVICE(0x35e8, &intel_i85x_info),
141 INTEL_VGA_DEVICE(0x2572, &intel_i865g_info),
142 INTEL_VGA_DEVICE(0x2582, &intel_i915g_info),
143 INTEL_VGA_DEVICE(0x258a, &intel_i915g_info),
144 INTEL_VGA_DEVICE(0x2592, &intel_i915gm_info),
145 INTEL_VGA_DEVICE(0x2772, &intel_i945g_info),
146 INTEL_VGA_DEVICE(0x27a2, &intel_i945gm_info),
147 INTEL_VGA_DEVICE(0x27ae, &intel_i945gm_info),
148 INTEL_VGA_DEVICE(0x2972, &intel_i965g_info),
149 INTEL_VGA_DEVICE(0x2982, &intel_i965g_info),
150 INTEL_VGA_DEVICE(0x2992, &intel_i965g_info),
151 INTEL_VGA_DEVICE(0x29a2, &intel_i965g_info),
152 INTEL_VGA_DEVICE(0x29b2, &intel_g33_info),
153 INTEL_VGA_DEVICE(0x29c2, &intel_g33_info),
154 INTEL_VGA_DEVICE(0x29d2, &intel_g33_info),
155 INTEL_VGA_DEVICE(0x2a02, &intel_i965gm_info),
156 INTEL_VGA_DEVICE(0x2a12, &intel_i965gm_info),
157 INTEL_VGA_DEVICE(0x2a42, &intel_gm45_info),
158 INTEL_VGA_DEVICE(0x2e02, &intel_g45_info),
159 INTEL_VGA_DEVICE(0x2e12, &intel_g45_info),
160 INTEL_VGA_DEVICE(0x2e22, &intel_g45_info),
161 INTEL_VGA_DEVICE(0x2e32, &intel_g45_info),
162 INTEL_VGA_DEVICE(0x2e42, &intel_g45_info),
163 INTEL_VGA_DEVICE(0xa001, &intel_pineview_info),
164 INTEL_VGA_DEVICE(0xa011, &intel_pineview_info),
165 INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info),
166 INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info),
167 {0, 0, 0}
53}; 168};
54 169
55#if defined(CONFIG_DRM_I915_KMS) 170#if defined(CONFIG_DRM_I915_KMS)
@@ -284,6 +399,52 @@ i915_pci_resume(struct pci_dev *pdev)
284 return i915_resume(dev); 399 return i915_resume(dev);
285} 400}
286 401
402static int
403i915_pm_suspend(struct device *dev)
404{
405 return i915_pci_suspend(to_pci_dev(dev), PMSG_SUSPEND);
406}
407
408static int
409i915_pm_resume(struct device *dev)
410{
411 return i915_pci_resume(to_pci_dev(dev));
412}
413
414static int
415i915_pm_freeze(struct device *dev)
416{
417 return i915_pci_suspend(to_pci_dev(dev), PMSG_FREEZE);
418}
419
420static int
421i915_pm_thaw(struct device *dev)
422{
423 /* thaw during hibernate, do nothing! */
424 return 0;
425}
426
427static int
428i915_pm_poweroff(struct device *dev)
429{
430 return i915_pci_suspend(to_pci_dev(dev), PMSG_HIBERNATE);
431}
432
433static int
434i915_pm_restore(struct device *dev)
435{
436 return i915_pci_resume(to_pci_dev(dev));
437}
438
439const struct dev_pm_ops i915_pm_ops = {
440 .suspend = i915_pm_suspend,
441 .resume = i915_pm_resume,
442 .freeze = i915_pm_freeze,
443 .thaw = i915_pm_thaw,
444 .poweroff = i915_pm_poweroff,
445 .restore = i915_pm_restore,
446};
447
287static struct vm_operations_struct i915_gem_vm_ops = { 448static struct vm_operations_struct i915_gem_vm_ops = {
288 .fault = i915_gem_fault, 449 .fault = i915_gem_fault,
289 .open = drm_gem_vm_open, 450 .open = drm_gem_vm_open,
@@ -303,8 +464,6 @@ static struct drm_driver driver = {
303 .lastclose = i915_driver_lastclose, 464 .lastclose = i915_driver_lastclose,
304 .preclose = i915_driver_preclose, 465 .preclose = i915_driver_preclose,
305 .postclose = i915_driver_postclose, 466 .postclose = i915_driver_postclose,
306 .suspend = i915_suspend,
307 .resume = i915_resume,
308 .device_is_agp = i915_driver_device_is_agp, 467 .device_is_agp = i915_driver_device_is_agp,
309 .enable_vblank = i915_enable_vblank, 468 .enable_vblank = i915_enable_vblank,
310 .disable_vblank = i915_disable_vblank, 469 .disable_vblank = i915_disable_vblank,
@@ -344,10 +503,7 @@ static struct drm_driver driver = {
344 .id_table = pciidlist, 503 .id_table = pciidlist,
345 .probe = i915_pci_probe, 504 .probe = i915_pci_probe,
346 .remove = i915_pci_remove, 505 .remove = i915_pci_remove,
347#ifdef CONFIG_PM 506 .driver.pm = &i915_pm_ops,
348 .resume = i915_pci_resume,
349 .suspend = i915_pci_suspend,
350#endif
351 }, 507 },
352 508
353 .name = DRIVER_NAME, 509 .name = DRIVER_NAME,
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fbecac72f5bb..29dd67626967 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -172,9 +172,31 @@ struct drm_i915_display_funcs {
172 172
173struct intel_overlay; 173struct intel_overlay;
174 174
175struct intel_device_info {
176 u8 is_mobile : 1;
177 u8 is_i8xx : 1;
178 u8 is_i915g : 1;
179 u8 is_i9xx : 1;
180 u8 is_i945gm : 1;
181 u8 is_i965g : 1;
182 u8 is_i965gm : 1;
183 u8 is_g33 : 1;
184 u8 need_gfx_hws : 1;
185 u8 is_g4x : 1;
186 u8 is_pineview : 1;
187 u8 is_ironlake : 1;
188 u8 has_fbc : 1;
189 u8 has_rc6 : 1;
190 u8 has_pipe_cxsr : 1;
191 u8 has_hotplug : 1;
192 u8 cursor_needs_physical : 1;
193};
194
175typedef struct drm_i915_private { 195typedef struct drm_i915_private {
176 struct drm_device *dev; 196 struct drm_device *dev;
177 197
198 const struct intel_device_info *info;
199
178 int has_gem; 200 int has_gem;
179 201
180 void __iomem *regs; 202 void __iomem *regs;
@@ -232,8 +254,6 @@ typedef struct drm_i915_private {
232 int hangcheck_count; 254 int hangcheck_count;
233 uint32_t last_acthd; 255 uint32_t last_acthd;
234 256
235 bool cursor_needs_physical;
236
237 struct drm_mm vram; 257 struct drm_mm vram;
238 258
239 unsigned long cfb_size; 259 unsigned long cfb_size;
@@ -287,8 +307,6 @@ typedef struct drm_i915_private {
287 u32 saveDSPACNTR; 307 u32 saveDSPACNTR;
288 u32 saveDSPBCNTR; 308 u32 saveDSPBCNTR;
289 u32 saveDSPARB; 309 u32 saveDSPARB;
290 u32 saveRENDERSTANDBY;
291 u32 savePWRCTXA;
292 u32 saveHWS; 310 u32 saveHWS;
293 u32 savePIPEACONF; 311 u32 savePIPEACONF;
294 u32 savePIPEBCONF; 312 u32 savePIPEBCONF;
@@ -561,6 +579,7 @@ typedef struct drm_i915_private {
561 u16 orig_clock; 579 u16 orig_clock;
562 int child_dev_num; 580 int child_dev_num;
563 struct child_device_config *child_dev; 581 struct child_device_config *child_dev;
582 struct drm_connector *int_lvds_connector;
564} drm_i915_private_t; 583} drm_i915_private_t;
565 584
566/** driver private structure attached to each drm_gem_object */ 585/** driver private structure attached to each drm_gem_object */
@@ -794,6 +813,8 @@ int i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
794 struct drm_file *file_priv); 813 struct drm_file *file_priv);
795int i915_gem_execbuffer(struct drm_device *dev, void *data, 814int i915_gem_execbuffer(struct drm_device *dev, void *data,
796 struct drm_file *file_priv); 815 struct drm_file *file_priv);
816int i915_gem_execbuffer2(struct drm_device *dev, void *data,
817 struct drm_file *file_priv);
797int i915_gem_pin_ioctl(struct drm_device *dev, void *data, 818int i915_gem_pin_ioctl(struct drm_device *dev, void *data,
798 struct drm_file *file_priv); 819 struct drm_file *file_priv);
799int i915_gem_unpin_ioctl(struct drm_device *dev, void *data, 820int i915_gem_unpin_ioctl(struct drm_device *dev, void *data,
@@ -860,6 +881,9 @@ void i915_gem_shrinker_exit(void);
860void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); 881void i915_gem_detect_bit_6_swizzle(struct drm_device *dev);
861void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); 882void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj);
862void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); 883void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj);
884bool i915_tiling_ok(struct drm_device *dev, int stride, int size,
885 int tiling_mode);
886bool i915_obj_fenceable(struct drm_device *dev, struct drm_gem_object *obj);
863 887
864/* i915_gem_debug.c */ 888/* i915_gem_debug.c */
865void i915_gem_dump_object(struct drm_gem_object *obj, int len, 889void i915_gem_dump_object(struct drm_gem_object *obj, int len,
@@ -982,67 +1006,33 @@ extern void g4x_disable_fbc(struct drm_device *dev);
982extern int i915_wrap_ring(struct drm_device * dev); 1006extern int i915_wrap_ring(struct drm_device * dev);
983extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); 1007extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
984 1008
985#define IS_I830(dev) ((dev)->pci_device == 0x3577) 1009#define INTEL_INFO(dev) (((struct drm_i915_private *) (dev)->dev_private)->info)
986#define IS_845G(dev) ((dev)->pci_device == 0x2562) 1010
987#define IS_I85X(dev) ((dev)->pci_device == 0x3582) 1011#define IS_I830(dev) ((dev)->pci_device == 0x3577)
988#define IS_I865G(dev) ((dev)->pci_device == 0x2572) 1012#define IS_845G(dev) ((dev)->pci_device == 0x2562)
989#define IS_I8XX(dev) (IS_I830(dev) || IS_845G(dev) || IS_I85X(dev) || IS_I865G(dev)) 1013#define IS_I85X(dev) ((dev)->pci_device == 0x3582)
990 1014#define IS_I865G(dev) ((dev)->pci_device == 0x2572)
991#define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) 1015#define IS_I8XX(dev) (INTEL_INFO(dev)->is_i8xx)
992#define IS_I915GM(dev) ((dev)->pci_device == 0x2592) 1016#define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g)
993#define IS_I945G(dev) ((dev)->pci_device == 0x2772) 1017#define IS_I915GM(dev) ((dev)->pci_device == 0x2592)
994#define IS_I945GM(dev) ((dev)->pci_device == 0x27A2 ||\ 1018#define IS_I945G(dev) ((dev)->pci_device == 0x2772)
995 (dev)->pci_device == 0x27AE) 1019#define IS_I945GM(dev) (INTEL_INFO(dev)->is_i945gm)
996#define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \ 1020#define IS_I965G(dev) (INTEL_INFO(dev)->is_i965g)
997 (dev)->pci_device == 0x2982 || \ 1021#define IS_I965GM(dev) (INTEL_INFO(dev)->is_i965gm)
998 (dev)->pci_device == 0x2992 || \ 1022#define IS_GM45(dev) ((dev)->pci_device == 0x2A42)
999 (dev)->pci_device == 0x29A2 || \ 1023#define IS_G4X(dev) (INTEL_INFO(dev)->is_g4x)
1000 (dev)->pci_device == 0x2A02 || \ 1024#define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001)
1001 (dev)->pci_device == 0x2A12 || \ 1025#define IS_PINEVIEW_M(dev) ((dev)->pci_device == 0xa011)
1002 (dev)->pci_device == 0x2A42 || \ 1026#define IS_PINEVIEW(dev) (INTEL_INFO(dev)->is_pineview)
1003 (dev)->pci_device == 0x2E02 || \ 1027#define IS_G33(dev) (INTEL_INFO(dev)->is_g33)
1004 (dev)->pci_device == 0x2E12 || \
1005 (dev)->pci_device == 0x2E22 || \
1006 (dev)->pci_device == 0x2E32 || \
1007 (dev)->pci_device == 0x2E42 || \
1008 (dev)->pci_device == 0x0042 || \
1009 (dev)->pci_device == 0x0046)
1010
1011#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02 || \
1012 (dev)->pci_device == 0x2A12)
1013
1014#define IS_GM45(dev) ((dev)->pci_device == 0x2A42)
1015
1016#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
1017 (dev)->pci_device == 0x2E12 || \
1018 (dev)->pci_device == 0x2E22 || \
1019 (dev)->pci_device == 0x2E32 || \
1020 (dev)->pci_device == 0x2E42 || \
1021 IS_GM45(dev))
1022
1023#define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001)
1024#define IS_PINEVIEW_M(dev) ((dev)->pci_device == 0xa011)
1025#define IS_PINEVIEW(dev) (IS_PINEVIEW_G(dev) || IS_PINEVIEW_M(dev))
1026
1027#define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \
1028 (dev)->pci_device == 0x29B2 || \
1029 (dev)->pci_device == 0x29D2 || \
1030 (IS_PINEVIEW(dev)))
1031
1032#define IS_IRONLAKE_D(dev) ((dev)->pci_device == 0x0042) 1028#define IS_IRONLAKE_D(dev) ((dev)->pci_device == 0x0042)
1033#define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046) 1029#define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046)
1034#define IS_IRONLAKE(dev) (IS_IRONLAKE_D(dev) || IS_IRONLAKE_M(dev)) 1030#define IS_IRONLAKE(dev) (INTEL_INFO(dev)->is_ironlake)
1035 1031#define IS_I9XX(dev) (INTEL_INFO(dev)->is_i9xx)
1036#define IS_I9XX(dev) (IS_I915G(dev) || IS_I915GM(dev) || IS_I945G(dev) || \ 1032#define IS_MOBILE(dev) (INTEL_INFO(dev)->is_mobile)
1037 IS_I945GM(dev) || IS_I965G(dev) || IS_G33(dev) || \
1038 IS_IRONLAKE(dev))
1039 1033
1040#define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \ 1034#define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws)
1041 IS_I945GM(dev) || IS_I965GM(dev) || IS_GM45(dev) || \
1042 IS_PINEVIEW(dev) || IS_IRONLAKE_M(dev))
1043 1035
1044#define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_GM45(dev) || IS_G4X(dev) || \
1045 IS_IRONLAKE(dev))
1046/* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte 1036/* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte
1047 * rows, which changed the alignment requirements and fence programming. 1037 * rows, which changed the alignment requirements and fence programming.
1048 */ 1038 */
@@ -1054,17 +1044,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
1054#define SUPPORTS_EDP(dev) (IS_IRONLAKE_M(dev)) 1044#define SUPPORTS_EDP(dev) (IS_IRONLAKE_M(dev))
1055#define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \ 1045#define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \
1056 !IS_IRONLAKE(dev) && !IS_PINEVIEW(dev)) 1046 !IS_IRONLAKE(dev) && !IS_PINEVIEW(dev))
1057#define I915_HAS_HOTPLUG(dev) (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev) || IS_I965G(dev)) 1047#define I915_HAS_HOTPLUG(dev) (INTEL_INFO(dev)->has_hotplug)
1058/* dsparb controlled by hw only */ 1048/* dsparb controlled by hw only */
1059#define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) 1049#define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IRONLAKE(dev))
1060 1050
1061#define HAS_FW_BLC(dev) (IS_I9XX(dev) || IS_G4X(dev) || IS_IRONLAKE(dev)) 1051#define HAS_FW_BLC(dev) (IS_I9XX(dev) || IS_G4X(dev) || IS_IRONLAKE(dev))
1062#define HAS_PIPE_CXSR(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) 1052#define HAS_PIPE_CXSR(dev) (INTEL_INFO(dev)->has_pipe_cxsr)
1063#define I915_HAS_FBC(dev) (IS_MOBILE(dev) && \ 1053#define I915_HAS_FBC(dev) (INTEL_INFO(dev)->has_fbc)
1064 (IS_I9XX(dev) || IS_GM45(dev)) && \ 1054#define I915_HAS_RC6(dev) (INTEL_INFO(dev)->has_rc6)
1065 !IS_PINEVIEW(dev) && \
1066 !IS_IRONLAKE(dev))
1067#define I915_HAS_RC6(dev) (IS_I965GM(dev) || IS_GM45(dev) || IS_IRONLAKE_M(dev))
1068 1055
1069#define PRIMARY_RINGBUFFER_SIZE (128*1024) 1056#define PRIMARY_RINGBUFFER_SIZE (128*1024)
1070 1057
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 8c463cf2050a..2748609f05b3 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2021,9 +2021,6 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
2021 /* blow away mappings if mapped through GTT */ 2021 /* blow away mappings if mapped through GTT */
2022 i915_gem_release_mmap(obj); 2022 i915_gem_release_mmap(obj);
2023 2023
2024 if (obj_priv->fence_reg != I915_FENCE_REG_NONE)
2025 i915_gem_clear_fence_reg(obj);
2026
2027 /* Move the object to the CPU domain to ensure that 2024 /* Move the object to the CPU domain to ensure that
2028 * any possible CPU writes while it's not in the GTT 2025 * any possible CPU writes while it's not in the GTT
2029 * are flushed when we go to remap it. This will 2026 * are flushed when we go to remap it. This will
@@ -2039,6 +2036,10 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
2039 2036
2040 BUG_ON(obj_priv->active); 2037 BUG_ON(obj_priv->active);
2041 2038
2039 /* release the fence reg _after_ flushing */
2040 if (obj_priv->fence_reg != I915_FENCE_REG_NONE)
2041 i915_gem_clear_fence_reg(obj);
2042
2042 if (obj_priv->agp_mem != NULL) { 2043 if (obj_priv->agp_mem != NULL) {
2043 drm_unbind_agp(obj_priv->agp_mem); 2044 drm_unbind_agp(obj_priv->agp_mem);
2044 drm_free_agp(obj_priv->agp_mem, obj->size / PAGE_SIZE); 2045 drm_free_agp(obj_priv->agp_mem, obj->size / PAGE_SIZE);
@@ -2581,9 +2582,6 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
2581 bool retry_alloc = false; 2582 bool retry_alloc = false;
2582 int ret; 2583 int ret;
2583 2584
2584 if (dev_priv->mm.suspended)
2585 return -EBUSY;
2586
2587 if (obj_priv->madv != I915_MADV_WILLNEED) { 2585 if (obj_priv->madv != I915_MADV_WILLNEED) {
2588 DRM_ERROR("Attempting to bind a purgeable object\n"); 2586 DRM_ERROR("Attempting to bind a purgeable object\n");
2589 return -EINVAL; 2587 return -EINVAL;
@@ -3198,7 +3196,7 @@ i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
3198static int 3196static int
3199i915_gem_object_pin_and_relocate(struct drm_gem_object *obj, 3197i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
3200 struct drm_file *file_priv, 3198 struct drm_file *file_priv,
3201 struct drm_i915_gem_exec_object *entry, 3199 struct drm_i915_gem_exec_object2 *entry,
3202 struct drm_i915_gem_relocation_entry *relocs) 3200 struct drm_i915_gem_relocation_entry *relocs)
3203{ 3201{
3204 struct drm_device *dev = obj->dev; 3202 struct drm_device *dev = obj->dev;
@@ -3206,12 +3204,35 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
3206 struct drm_i915_gem_object *obj_priv = obj->driver_private; 3204 struct drm_i915_gem_object *obj_priv = obj->driver_private;
3207 int i, ret; 3205 int i, ret;
3208 void __iomem *reloc_page; 3206 void __iomem *reloc_page;
3207 bool need_fence;
3208
3209 need_fence = entry->flags & EXEC_OBJECT_NEEDS_FENCE &&
3210 obj_priv->tiling_mode != I915_TILING_NONE;
3211
3212 /* Check fence reg constraints and rebind if necessary */
3213 if (need_fence && !i915_obj_fenceable(dev, obj))
3214 i915_gem_object_unbind(obj);
3209 3215
3210 /* Choose the GTT offset for our buffer and put it there. */ 3216 /* Choose the GTT offset for our buffer and put it there. */
3211 ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment); 3217 ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment);
3212 if (ret) 3218 if (ret)
3213 return ret; 3219 return ret;
3214 3220
3221 /*
3222 * Pre-965 chips need a fence register set up in order to
3223 * properly handle blits to/from tiled surfaces.
3224 */
3225 if (need_fence) {
3226 ret = i915_gem_object_get_fence_reg(obj);
3227 if (ret != 0) {
3228 if (ret != -EBUSY && ret != -ERESTARTSYS)
3229 DRM_ERROR("Failure to install fence: %d\n",
3230 ret);
3231 i915_gem_object_unpin(obj);
3232 return ret;
3233 }
3234 }
3235
3215 entry->offset = obj_priv->gtt_offset; 3236 entry->offset = obj_priv->gtt_offset;
3216 3237
3217 /* Apply the relocations, using the GTT aperture to avoid cache 3238 /* Apply the relocations, using the GTT aperture to avoid cache
@@ -3373,7 +3394,7 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
3373 */ 3394 */
3374static int 3395static int
3375i915_dispatch_gem_execbuffer(struct drm_device *dev, 3396i915_dispatch_gem_execbuffer(struct drm_device *dev,
3376 struct drm_i915_gem_execbuffer *exec, 3397 struct drm_i915_gem_execbuffer2 *exec,
3377 struct drm_clip_rect *cliprects, 3398 struct drm_clip_rect *cliprects,
3378 uint64_t exec_offset) 3399 uint64_t exec_offset)
3379{ 3400{
@@ -3463,7 +3484,7 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file_priv)
3463} 3484}
3464 3485
3465static int 3486static int
3466i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list, 3487i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object2 *exec_list,
3467 uint32_t buffer_count, 3488 uint32_t buffer_count,
3468 struct drm_i915_gem_relocation_entry **relocs) 3489 struct drm_i915_gem_relocation_entry **relocs)
3469{ 3490{
@@ -3478,8 +3499,10 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list,
3478 } 3499 }
3479 3500
3480 *relocs = drm_calloc_large(reloc_count, sizeof(**relocs)); 3501 *relocs = drm_calloc_large(reloc_count, sizeof(**relocs));
3481 if (*relocs == NULL) 3502 if (*relocs == NULL) {
3503 DRM_ERROR("failed to alloc relocs, count %d\n", reloc_count);
3482 return -ENOMEM; 3504 return -ENOMEM;
3505 }
3483 3506
3484 for (i = 0; i < buffer_count; i++) { 3507 for (i = 0; i < buffer_count; i++) {
3485 struct drm_i915_gem_relocation_entry __user *user_relocs; 3508 struct drm_i915_gem_relocation_entry __user *user_relocs;
@@ -3503,7 +3526,7 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list,
3503} 3526}
3504 3527
3505static int 3528static int
3506i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object *exec_list, 3529i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object2 *exec_list,
3507 uint32_t buffer_count, 3530 uint32_t buffer_count,
3508 struct drm_i915_gem_relocation_entry *relocs) 3531 struct drm_i915_gem_relocation_entry *relocs)
3509{ 3532{
@@ -3536,7 +3559,7 @@ err:
3536} 3559}
3537 3560
3538static int 3561static int
3539i915_gem_check_execbuffer (struct drm_i915_gem_execbuffer *exec, 3562i915_gem_check_execbuffer (struct drm_i915_gem_execbuffer2 *exec,
3540 uint64_t exec_offset) 3563 uint64_t exec_offset)
3541{ 3564{
3542 uint32_t exec_start, exec_len; 3565 uint32_t exec_start, exec_len;
@@ -3589,18 +3612,18 @@ i915_gem_wait_for_pending_flip(struct drm_device *dev,
3589} 3612}
3590 3613
3591int 3614int
3592i915_gem_execbuffer(struct drm_device *dev, void *data, 3615i915_gem_do_execbuffer(struct drm_device *dev, void *data,
3593 struct drm_file *file_priv) 3616 struct drm_file *file_priv,
3617 struct drm_i915_gem_execbuffer2 *args,
3618 struct drm_i915_gem_exec_object2 *exec_list)
3594{ 3619{
3595 drm_i915_private_t *dev_priv = dev->dev_private; 3620 drm_i915_private_t *dev_priv = dev->dev_private;
3596 struct drm_i915_gem_execbuffer *args = data;
3597 struct drm_i915_gem_exec_object *exec_list = NULL;
3598 struct drm_gem_object **object_list = NULL; 3621 struct drm_gem_object **object_list = NULL;
3599 struct drm_gem_object *batch_obj; 3622 struct drm_gem_object *batch_obj;
3600 struct drm_i915_gem_object *obj_priv; 3623 struct drm_i915_gem_object *obj_priv;
3601 struct drm_clip_rect *cliprects = NULL; 3624 struct drm_clip_rect *cliprects = NULL;
3602 struct drm_i915_gem_relocation_entry *relocs; 3625 struct drm_i915_gem_relocation_entry *relocs;
3603 int ret, ret2, i, pinned = 0; 3626 int ret = 0, ret2, i, pinned = 0;
3604 uint64_t exec_offset; 3627 uint64_t exec_offset;
3605 uint32_t seqno, flush_domains, reloc_index; 3628 uint32_t seqno, flush_domains, reloc_index;
3606 int pin_tries, flips; 3629 int pin_tries, flips;
@@ -3614,25 +3637,13 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
3614 DRM_ERROR("execbuf with %d buffers\n", args->buffer_count); 3637 DRM_ERROR("execbuf with %d buffers\n", args->buffer_count);
3615 return -EINVAL; 3638 return -EINVAL;
3616 } 3639 }
3617 /* Copy in the exec list from userland */
3618 exec_list = drm_malloc_ab(sizeof(*exec_list), args->buffer_count);
3619 object_list = drm_malloc_ab(sizeof(*object_list), args->buffer_count); 3640 object_list = drm_malloc_ab(sizeof(*object_list), args->buffer_count);
3620 if (exec_list == NULL || object_list == NULL) { 3641 if (object_list == NULL) {
3621 DRM_ERROR("Failed to allocate exec or object list " 3642 DRM_ERROR("Failed to allocate object list for %d buffers\n",
3622 "for %d buffers\n",
3623 args->buffer_count); 3643 args->buffer_count);
3624 ret = -ENOMEM; 3644 ret = -ENOMEM;
3625 goto pre_mutex_err; 3645 goto pre_mutex_err;
3626 } 3646 }
3627 ret = copy_from_user(exec_list,
3628 (struct drm_i915_relocation_entry __user *)
3629 (uintptr_t) args->buffers_ptr,
3630 sizeof(*exec_list) * args->buffer_count);
3631 if (ret != 0) {
3632 DRM_ERROR("copy %d exec entries failed %d\n",
3633 args->buffer_count, ret);
3634 goto pre_mutex_err;
3635 }
3636 3647
3637 if (args->num_cliprects != 0) { 3648 if (args->num_cliprects != 0) {
3638 cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects), 3649 cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects),
@@ -3884,20 +3895,6 @@ err:
3884 3895
3885 mutex_unlock(&dev->struct_mutex); 3896 mutex_unlock(&dev->struct_mutex);
3886 3897
3887 if (!ret) {
3888 /* Copy the new buffer offsets back to the user's exec list. */
3889 ret = copy_to_user((struct drm_i915_relocation_entry __user *)
3890 (uintptr_t) args->buffers_ptr,
3891 exec_list,
3892 sizeof(*exec_list) * args->buffer_count);
3893 if (ret) {
3894 ret = -EFAULT;
3895 DRM_ERROR("failed to copy %d exec entries "
3896 "back to user (%d)\n",
3897 args->buffer_count, ret);
3898 }
3899 }
3900
3901 /* Copy the updated relocations out regardless of current error 3898 /* Copy the updated relocations out regardless of current error
3902 * state. Failure to update the relocs would mean that the next 3899 * state. Failure to update the relocs would mean that the next
3903 * time userland calls execbuf, it would do so with presumed offset 3900 * time userland calls execbuf, it would do so with presumed offset
@@ -3914,12 +3911,158 @@ err:
3914 3911
3915pre_mutex_err: 3912pre_mutex_err:
3916 drm_free_large(object_list); 3913 drm_free_large(object_list);
3917 drm_free_large(exec_list);
3918 kfree(cliprects); 3914 kfree(cliprects);
3919 3915
3920 return ret; 3916 return ret;
3921} 3917}
3922 3918
3919/*
3920 * Legacy execbuffer just creates an exec2 list from the original exec object
3921 * list array and passes it to the real function.
3922 */
3923int
3924i915_gem_execbuffer(struct drm_device *dev, void *data,
3925 struct drm_file *file_priv)
3926{
3927 struct drm_i915_gem_execbuffer *args = data;
3928 struct drm_i915_gem_execbuffer2 exec2;
3929 struct drm_i915_gem_exec_object *exec_list = NULL;
3930 struct drm_i915_gem_exec_object2 *exec2_list = NULL;
3931 int ret, i;
3932
3933#if WATCH_EXEC
3934 DRM_INFO("buffers_ptr %d buffer_count %d len %08x\n",
3935 (int) args->buffers_ptr, args->buffer_count, args->batch_len);
3936#endif
3937
3938 if (args->buffer_count < 1) {
3939 DRM_ERROR("execbuf with %d buffers\n", args->buffer_count);
3940 return -EINVAL;
3941 }
3942
3943 /* Copy in the exec list from userland */
3944 exec_list = drm_malloc_ab(sizeof(*exec_list), args->buffer_count);
3945 exec2_list = drm_malloc_ab(sizeof(*exec2_list), args->buffer_count);
3946 if (exec_list == NULL || exec2_list == NULL) {
3947 DRM_ERROR("Failed to allocate exec list for %d buffers\n",
3948 args->buffer_count);
3949 drm_free_large(exec_list);
3950 drm_free_large(exec2_list);
3951 return -ENOMEM;
3952 }
3953 ret = copy_from_user(exec_list,
3954 (struct drm_i915_relocation_entry __user *)
3955 (uintptr_t) args->buffers_ptr,
3956 sizeof(*exec_list) * args->buffer_count);
3957 if (ret != 0) {
3958 DRM_ERROR("copy %d exec entries failed %d\n",
3959 args->buffer_count, ret);
3960 drm_free_large(exec_list);
3961 drm_free_large(exec2_list);
3962 return -EFAULT;
3963 }
3964
3965 for (i = 0; i < args->buffer_count; i++) {
3966 exec2_list[i].handle = exec_list[i].handle;
3967 exec2_list[i].relocation_count = exec_list[i].relocation_count;
3968 exec2_list[i].relocs_ptr = exec_list[i].relocs_ptr;
3969 exec2_list[i].alignment = exec_list[i].alignment;
3970 exec2_list[i].offset = exec_list[i].offset;
3971 if (!IS_I965G(dev))
3972 exec2_list[i].flags = EXEC_OBJECT_NEEDS_FENCE;
3973 else
3974 exec2_list[i].flags = 0;
3975 }
3976
3977 exec2.buffers_ptr = args->buffers_ptr;
3978 exec2.buffer_count = args->buffer_count;
3979 exec2.batch_start_offset = args->batch_start_offset;
3980 exec2.batch_len = args->batch_len;
3981 exec2.DR1 = args->DR1;
3982 exec2.DR4 = args->DR4;
3983 exec2.num_cliprects = args->num_cliprects;
3984 exec2.cliprects_ptr = args->cliprects_ptr;
3985 exec2.flags = 0;
3986
3987 ret = i915_gem_do_execbuffer(dev, data, file_priv, &exec2, exec2_list);
3988 if (!ret) {
3989 /* Copy the new buffer offsets back to the user's exec list. */
3990 for (i = 0; i < args->buffer_count; i++)
3991 exec_list[i].offset = exec2_list[i].offset;
3992 /* ... and back out to userspace */
3993 ret = copy_to_user((struct drm_i915_relocation_entry __user *)
3994 (uintptr_t) args->buffers_ptr,
3995 exec_list,
3996 sizeof(*exec_list) * args->buffer_count);
3997 if (ret) {
3998 ret = -EFAULT;
3999 DRM_ERROR("failed to copy %d exec entries "
4000 "back to user (%d)\n",
4001 args->buffer_count, ret);
4002 }
4003 } else {
4004 DRM_ERROR("i915_gem_do_execbuffer returns %d\n", ret);
4005 }
4006
4007 drm_free_large(exec_list);
4008 drm_free_large(exec2_list);
4009 return ret;
4010}
4011
4012int
4013i915_gem_execbuffer2(struct drm_device *dev, void *data,
4014 struct drm_file *file_priv)
4015{
4016 struct drm_i915_gem_execbuffer2 *args = data;
4017 struct drm_i915_gem_exec_object2 *exec2_list = NULL;
4018 int ret;
4019
4020#if WATCH_EXEC
4021 DRM_INFO("buffers_ptr %d buffer_count %d len %08x\n",
4022 (int) args->buffers_ptr, args->buffer_count, args->batch_len);
4023#endif
4024
4025 if (args->buffer_count < 1) {
4026 DRM_ERROR("execbuf2 with %d buffers\n", args->buffer_count);
4027 return -EINVAL;
4028 }
4029
4030 exec2_list = drm_malloc_ab(sizeof(*exec2_list), args->buffer_count);
4031 if (exec2_list == NULL) {
4032 DRM_ERROR("Failed to allocate exec list for %d buffers\n",
4033 args->buffer_count);
4034 return -ENOMEM;
4035 }
4036 ret = copy_from_user(exec2_list,
4037 (struct drm_i915_relocation_entry __user *)
4038 (uintptr_t) args->buffers_ptr,
4039 sizeof(*exec2_list) * args->buffer_count);
4040 if (ret != 0) {
4041 DRM_ERROR("copy %d exec entries failed %d\n",
4042 args->buffer_count, ret);
4043 drm_free_large(exec2_list);
4044 return -EFAULT;
4045 }
4046
4047 ret = i915_gem_do_execbuffer(dev, data, file_priv, args, exec2_list);
4048 if (!ret) {
4049 /* Copy the new buffer offsets back to the user's exec list. */
4050 ret = copy_to_user((struct drm_i915_relocation_entry __user *)
4051 (uintptr_t) args->buffers_ptr,
4052 exec2_list,
4053 sizeof(*exec2_list) * args->buffer_count);
4054 if (ret) {
4055 ret = -EFAULT;
4056 DRM_ERROR("failed to copy %d exec entries "
4057 "back to user (%d)\n",
4058 args->buffer_count, ret);
4059 }
4060 }
4061
4062 drm_free_large(exec2_list);
4063 return ret;
4064}
4065
3923int 4066int
3924i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment) 4067i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment)
3925{ 4068{
@@ -3933,19 +4076,7 @@ i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment)
3933 if (ret) 4076 if (ret)
3934 return ret; 4077 return ret;
3935 } 4078 }
3936 /* 4079
3937 * Pre-965 chips need a fence register set up in order to
3938 * properly handle tiled surfaces.
3939 */
3940 if (!IS_I965G(dev) && obj_priv->tiling_mode != I915_TILING_NONE) {
3941 ret = i915_gem_object_get_fence_reg(obj);
3942 if (ret != 0) {
3943 if (ret != -EBUSY && ret != -ERESTARTSYS)
3944 DRM_ERROR("Failure to install fence: %d\n",
3945 ret);
3946 return ret;
3947 }
3948 }
3949 obj_priv->pin_count++; 4080 obj_priv->pin_count++;
3950 4081
3951 /* If the object is not active and not pending a flush, 4082 /* If the object is not active and not pending a flush,
@@ -4708,7 +4839,7 @@ int i915_gem_init_phys_object(struct drm_device *dev,
4708 4839
4709 phys_obj->id = id; 4840 phys_obj->id = id;
4710 4841
4711 phys_obj->handle = drm_pci_alloc(dev, size, 0, 0xffffffff); 4842 phys_obj->handle = drm_pci_alloc(dev, size, 0);
4712 if (!phys_obj->handle) { 4843 if (!phys_obj->handle) {
4713 ret = -ENOMEM; 4844 ret = -ENOMEM;
4714 goto kfree_obj; 4845 goto kfree_obj;
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 30d6af6c09bb..df278b2685bf 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -304,35 +304,39 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
304 304
305 305
306/** 306/**
307 * Returns the size of the fence for a tiled object of the given size. 307 * Returns whether an object is currently fenceable. If not, it may need
308 * to be unbound and have its pitch adjusted.
308 */ 309 */
309static int 310bool
310i915_get_fence_size(struct drm_device *dev, int size) 311i915_obj_fenceable(struct drm_device *dev, struct drm_gem_object *obj)
311{ 312{
312 int i; 313 struct drm_i915_gem_object *obj_priv = obj->driver_private;
313 int start;
314 314
315 if (IS_I965G(dev)) { 315 if (IS_I965G(dev)) {
316 /* The 965 can have fences at any page boundary. */ 316 /* The 965 can have fences at any page boundary. */
317 return ALIGN(size, 4096); 317 if (obj->size & 4095)
318 return false;
319 return true;
320 } else if (IS_I9XX(dev)) {
321 if (obj_priv->gtt_offset & ~I915_FENCE_START_MASK)
322 return false;
318 } else { 323 } else {
319 /* Align the size to a power of two greater than the smallest 324 if (obj_priv->gtt_offset & ~I830_FENCE_START_MASK)
320 * fence size. 325 return false;
321 */ 326 }
322 if (IS_I9XX(dev))
323 start = 1024 * 1024;
324 else
325 start = 512 * 1024;
326 327
327 for (i = start; i < size; i <<= 1) 328 /* Power of two sized... */
328 ; 329 if (obj->size & (obj->size - 1))
330 return false;
329 331
330 return i; 332 /* Objects must be size aligned as well */
331 } 333 if (obj_priv->gtt_offset & (obj->size - 1))
334 return false;
335 return true;
332} 336}
333 337
334/* Check pitch constriants for all chips & tiling formats */ 338/* Check pitch constriants for all chips & tiling formats */
335static bool 339bool
336i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode) 340i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
337{ 341{
338 int tile_width; 342 int tile_width;
@@ -384,12 +388,6 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
384 if (stride & (stride - 1)) 388 if (stride & (stride - 1))
385 return false; 389 return false;
386 390
387 /* We don't 0handle the aperture area covered by the fence being bigger
388 * than the object size.
389 */
390 if (i915_get_fence_size(dev, size) != size)
391 return false;
392
393 return true; 391 return true;
394} 392}
395 393
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 85f4c5de97e2..7cd8110051b6 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -313,6 +313,8 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev)
313 dev_priv->mm.irq_gem_seqno = seqno; 313 dev_priv->mm.irq_gem_seqno = seqno;
314 trace_i915_gem_request_complete(dev, seqno); 314 trace_i915_gem_request_complete(dev, seqno);
315 DRM_WAKEUP(&dev_priv->irq_queue); 315 DRM_WAKEUP(&dev_priv->irq_queue);
316 dev_priv->hangcheck_count = 0;
317 mod_timer(&dev_priv->hangcheck_timer, jiffies + DRM_I915_HANGCHECK_PERIOD);
316 } 318 }
317 319
318 if (de_iir & DE_GSE) 320 if (de_iir & DE_GSE)
@@ -1084,6 +1086,10 @@ void i915_driver_irq_preinstall(struct drm_device * dev)
1084 (void) I915_READ(IER); 1086 (void) I915_READ(IER);
1085} 1087}
1086 1088
1089/*
1090 * Must be called after intel_modeset_init or hotplug interrupts won't be
1091 * enabled correctly.
1092 */
1087int i915_driver_irq_postinstall(struct drm_device *dev) 1093int i915_driver_irq_postinstall(struct drm_device *dev)
1088{ 1094{
1089 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 1095 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -1106,19 +1112,23 @@ int i915_driver_irq_postinstall(struct drm_device *dev)
1106 if (I915_HAS_HOTPLUG(dev)) { 1112 if (I915_HAS_HOTPLUG(dev)) {
1107 u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN); 1113 u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN);
1108 1114
1109 /* Leave other bits alone */ 1115 /* Note HDMI and DP share bits */
1110 hotplug_en |= HOTPLUG_EN_MASK; 1116 if (dev_priv->hotplug_supported_mask & HDMIB_HOTPLUG_INT_STATUS)
1117 hotplug_en |= HDMIB_HOTPLUG_INT_EN;
1118 if (dev_priv->hotplug_supported_mask & HDMIC_HOTPLUG_INT_STATUS)
1119 hotplug_en |= HDMIC_HOTPLUG_INT_EN;
1120 if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS)
1121 hotplug_en |= HDMID_HOTPLUG_INT_EN;
1122 if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS)
1123 hotplug_en |= SDVOC_HOTPLUG_INT_EN;
1124 if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS)
1125 hotplug_en |= SDVOB_HOTPLUG_INT_EN;
1126 if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS)
1127 hotplug_en |= CRT_HOTPLUG_INT_EN;
1128 /* Ignore TV since it's buggy */
1129
1111 I915_WRITE(PORT_HOTPLUG_EN, hotplug_en); 1130 I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
1112 1131
1113 dev_priv->hotplug_supported_mask = CRT_HOTPLUG_INT_STATUS |
1114 TV_HOTPLUG_INT_STATUS | SDVOC_HOTPLUG_INT_STATUS |
1115 SDVOB_HOTPLUG_INT_STATUS;
1116 if (IS_G4X(dev)) {
1117 dev_priv->hotplug_supported_mask |=
1118 HDMIB_HOTPLUG_INT_STATUS |
1119 HDMIC_HOTPLUG_INT_STATUS |
1120 HDMID_HOTPLUG_INT_STATUS;
1121 }
1122 /* Enable in IER... */ 1132 /* Enable in IER... */
1123 enable_mask |= I915_DISPLAY_PORT_INTERRUPT; 1133 enable_mask |= I915_DISPLAY_PORT_INTERRUPT;
1124 /* and unmask in IMR */ 1134 /* and unmask in IMR */
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 974b3cf70618..149d360d64a3 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -879,13 +879,6 @@
879#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2) 879#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2)
880#define CRT_HOTPLUG_MASK (0x3fc) /* Bits 9-2 */ 880#define CRT_HOTPLUG_MASK (0x3fc) /* Bits 9-2 */
881#define CRT_FORCE_HOTPLUG_MASK 0xfffffe1f 881#define CRT_FORCE_HOTPLUG_MASK 0xfffffe1f
882#define HOTPLUG_EN_MASK (HDMIB_HOTPLUG_INT_EN | \
883 HDMIC_HOTPLUG_INT_EN | \
884 HDMID_HOTPLUG_INT_EN | \
885 SDVOB_HOTPLUG_INT_EN | \
886 SDVOC_HOTPLUG_INT_EN | \
887 CRT_HOTPLUG_INT_EN)
888
889 882
890#define PORT_HOTPLUG_STAT 0x61114 883#define PORT_HOTPLUG_STAT 0x61114
891#define HDMIB_HOTPLUG_INT_STATUS (1 << 29) 884#define HDMIB_HOTPLUG_INT_STATUS (1 << 29)
@@ -982,6 +975,8 @@
982#define LVDS_PORT_EN (1 << 31) 975#define LVDS_PORT_EN (1 << 31)
983/* Selects pipe B for LVDS data. Must be set on pre-965. */ 976/* Selects pipe B for LVDS data. Must be set on pre-965. */
984#define LVDS_PIPEB_SELECT (1 << 30) 977#define LVDS_PIPEB_SELECT (1 << 30)
978/* LVDS dithering flag on 965/g4x platform */
979#define LVDS_ENABLE_DITHER (1 << 25)
985/* Enable border for unscaled (or aspect-scaled) display */ 980/* Enable border for unscaled (or aspect-scaled) display */
986#define LVDS_BORDER_ENABLE (1 << 15) 981#define LVDS_BORDER_ENABLE (1 << 15)
987/* 982/*
@@ -1751,6 +1746,8 @@
1751 1746
1752/* Display & cursor control */ 1747/* Display & cursor control */
1753 1748
1749/* dithering flag on Ironlake */
1750#define PIPE_ENABLE_DITHER (1 << 4)
1754/* Pipe A */ 1751/* Pipe A */
1755#define PIPEADSL 0x70000 1752#define PIPEADSL 0x70000
1756#define PIPEACONF 0x70008 1753#define PIPEACONF 0x70008
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
index d5ebb00a9d49..a3b90c9561dc 100644
--- a/drivers/gpu/drm/i915/i915_suspend.c
+++ b/drivers/gpu/drm/i915/i915_suspend.c
@@ -732,12 +732,6 @@ int i915_save_state(struct drm_device *dev)
732 732
733 pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); 733 pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB);
734 734
735 /* Render Standby */
736 if (I915_HAS_RC6(dev)) {
737 dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY);
738 dev_priv->savePWRCTXA = I915_READ(PWRCTXA);
739 }
740
741 /* Hardware status page */ 735 /* Hardware status page */
742 dev_priv->saveHWS = I915_READ(HWS_PGA); 736 dev_priv->saveHWS = I915_READ(HWS_PGA);
743 737
@@ -793,12 +787,6 @@ int i915_restore_state(struct drm_device *dev)
793 787
794 pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); 788 pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB);
795 789
796 /* Render Standby */
797 if (I915_HAS_RC6(dev)) {
798 I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY);
799 I915_WRITE(PWRCTXA, dev_priv->savePWRCTXA);
800 }
801
802 /* Hardware status page */ 790 /* Hardware status page */
803 I915_WRITE(HWS_PGA, dev_priv->saveHWS); 791 I915_WRITE(HWS_PGA, dev_priv->saveHWS);
804 792
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 9f3d3e563414..ddefc871edfe 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -548,4 +548,6 @@ void intel_crt_init(struct drm_device *dev)
548 drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs); 548 drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
549 549
550 drm_sysfs_connector_add(connector); 550 drm_sysfs_connector_add(connector);
551
552 dev_priv->hotplug_supported_mask |= CRT_HOTPLUG_INT_STATUS;
551} 553}
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 52cd9b006da2..002612fae717 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -262,6 +262,14 @@ struct intel_limit {
262#define IRONLAKE_P2_LVDS_FAST 7 /* double channel */ 262#define IRONLAKE_P2_LVDS_FAST 7 /* double channel */
263#define IRONLAKE_P2_DOT_LIMIT 225000 /* 225Mhz */ 263#define IRONLAKE_P2_DOT_LIMIT 225000 /* 225Mhz */
264 264
265#define IRONLAKE_P_DISPLAY_PORT_MIN 10
266#define IRONLAKE_P_DISPLAY_PORT_MAX 20
267#define IRONLAKE_P2_DISPLAY_PORT_FAST 10
268#define IRONLAKE_P2_DISPLAY_PORT_SLOW 10
269#define IRONLAKE_P2_DISPLAY_PORT_LIMIT 0
270#define IRONLAKE_P1_DISPLAY_PORT_MIN 1
271#define IRONLAKE_P1_DISPLAY_PORT_MAX 2
272
265static bool 273static bool
266intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, 274intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
267 int target, int refclk, intel_clock_t *best_clock); 275 int target, int refclk, intel_clock_t *best_clock);
@@ -271,9 +279,6 @@ intel_find_best_reduced_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
271static bool 279static bool
272intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, 280intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
273 int target, int refclk, intel_clock_t *best_clock); 281 int target, int refclk, intel_clock_t *best_clock);
274static bool
275intel_ironlake_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
276 int target, int refclk, intel_clock_t *best_clock);
277 282
278static bool 283static bool
279intel_find_pll_g4x_dp(const intel_limit_t *, struct drm_crtc *crtc, 284intel_find_pll_g4x_dp(const intel_limit_t *, struct drm_crtc *crtc,
@@ -496,7 +501,7 @@ static const intel_limit_t intel_limits_ironlake_sdvo = {
496 .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, 501 .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT,
497 .p2_slow = IRONLAKE_P2_SDVO_DAC_SLOW, 502 .p2_slow = IRONLAKE_P2_SDVO_DAC_SLOW,
498 .p2_fast = IRONLAKE_P2_SDVO_DAC_FAST }, 503 .p2_fast = IRONLAKE_P2_SDVO_DAC_FAST },
499 .find_pll = intel_ironlake_find_best_PLL, 504 .find_pll = intel_g4x_find_best_PLL,
500}; 505};
501 506
502static const intel_limit_t intel_limits_ironlake_lvds = { 507static const intel_limit_t intel_limits_ironlake_lvds = {
@@ -511,7 +516,30 @@ static const intel_limit_t intel_limits_ironlake_lvds = {
511 .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, 516 .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT,
512 .p2_slow = IRONLAKE_P2_LVDS_SLOW, 517 .p2_slow = IRONLAKE_P2_LVDS_SLOW,
513 .p2_fast = IRONLAKE_P2_LVDS_FAST }, 518 .p2_fast = IRONLAKE_P2_LVDS_FAST },
514 .find_pll = intel_ironlake_find_best_PLL, 519 .find_pll = intel_g4x_find_best_PLL,
520};
521
522static const intel_limit_t intel_limits_ironlake_display_port = {
523 .dot = { .min = IRONLAKE_DOT_MIN,
524 .max = IRONLAKE_DOT_MAX },
525 .vco = { .min = IRONLAKE_VCO_MIN,
526 .max = IRONLAKE_VCO_MAX},
527 .n = { .min = IRONLAKE_N_MIN,
528 .max = IRONLAKE_N_MAX },
529 .m = { .min = IRONLAKE_M_MIN,
530 .max = IRONLAKE_M_MAX },
531 .m1 = { .min = IRONLAKE_M1_MIN,
532 .max = IRONLAKE_M1_MAX },
533 .m2 = { .min = IRONLAKE_M2_MIN,
534 .max = IRONLAKE_M2_MAX },
535 .p = { .min = IRONLAKE_P_DISPLAY_PORT_MIN,
536 .max = IRONLAKE_P_DISPLAY_PORT_MAX },
537 .p1 = { .min = IRONLAKE_P1_DISPLAY_PORT_MIN,
538 .max = IRONLAKE_P1_DISPLAY_PORT_MAX},
539 .p2 = { .dot_limit = IRONLAKE_P2_DISPLAY_PORT_LIMIT,
540 .p2_slow = IRONLAKE_P2_DISPLAY_PORT_SLOW,
541 .p2_fast = IRONLAKE_P2_DISPLAY_PORT_FAST },
542 .find_pll = intel_find_pll_ironlake_dp,
515}; 543};
516 544
517static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc) 545static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc)
@@ -519,6 +547,9 @@ static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc)
519 const intel_limit_t *limit; 547 const intel_limit_t *limit;
520 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) 548 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS))
521 limit = &intel_limits_ironlake_lvds; 549 limit = &intel_limits_ironlake_lvds;
550 else if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) ||
551 HAS_eDP)
552 limit = &intel_limits_ironlake_display_port;
522 else 553 else
523 limit = &intel_limits_ironlake_sdvo; 554 limit = &intel_limits_ironlake_sdvo;
524 555
@@ -791,7 +822,13 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
791 found = false; 822 found = false;
792 823
793 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { 824 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
794 if ((I915_READ(LVDS) & LVDS_CLKB_POWER_MASK) == 825 int lvds_reg;
826
827 if (IS_IRONLAKE(dev))
828 lvds_reg = PCH_LVDS;
829 else
830 lvds_reg = LVDS;
831 if ((I915_READ(lvds_reg) & LVDS_CLKB_POWER_MASK) ==
795 LVDS_CLKB_POWER_UP) 832 LVDS_CLKB_POWER_UP)
796 clock.p2 = limit->p2.p2_fast; 833 clock.p2 = limit->p2.p2_fast;
797 else 834 else
@@ -839,6 +876,11 @@ intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
839{ 876{
840 struct drm_device *dev = crtc->dev; 877 struct drm_device *dev = crtc->dev;
841 intel_clock_t clock; 878 intel_clock_t clock;
879
880 /* return directly when it is eDP */
881 if (HAS_eDP)
882 return true;
883
842 if (target < 200000) { 884 if (target < 200000) {
843 clock.n = 1; 885 clock.n = 1;
844 clock.p1 = 2; 886 clock.p1 = 2;
@@ -857,68 +899,6 @@ intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
857 return true; 899 return true;
858} 900}
859 901
860static bool
861intel_ironlake_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
862 int target, int refclk, intel_clock_t *best_clock)
863{
864 struct drm_device *dev = crtc->dev;
865 struct drm_i915_private *dev_priv = dev->dev_private;
866 intel_clock_t clock;
867 int err_most = 47;
868 int err_min = 10000;
869
870 /* eDP has only 2 clock choice, no n/m/p setting */
871 if (HAS_eDP)
872 return true;
873
874 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT))
875 return intel_find_pll_ironlake_dp(limit, crtc, target,
876 refclk, best_clock);
877
878 if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
879 if ((I915_READ(PCH_LVDS) & LVDS_CLKB_POWER_MASK) ==
880 LVDS_CLKB_POWER_UP)
881 clock.p2 = limit->p2.p2_fast;
882 else
883 clock.p2 = limit->p2.p2_slow;
884 } else {
885 if (target < limit->p2.dot_limit)
886 clock.p2 = limit->p2.p2_slow;
887 else
888 clock.p2 = limit->p2.p2_fast;
889 }
890
891 memset(best_clock, 0, sizeof(*best_clock));
892 for (clock.p1 = limit->p1.max; clock.p1 >= limit->p1.min; clock.p1--) {
893 /* based on hardware requriment prefer smaller n to precision */
894 for (clock.n = limit->n.min; clock.n <= limit->n.max; clock.n++) {
895 /* based on hardware requirment prefere larger m1,m2 */
896 for (clock.m1 = limit->m1.max;
897 clock.m1 >= limit->m1.min; clock.m1--) {
898 for (clock.m2 = limit->m2.max;
899 clock.m2 >= limit->m2.min; clock.m2--) {
900 int this_err;
901
902 intel_clock(dev, refclk, &clock);
903 if (!intel_PLL_is_valid(crtc, &clock))
904 continue;
905 this_err = abs((10000 - (target*10000/clock.dot)));
906 if (this_err < err_most) {
907 *best_clock = clock;
908 /* found on first matching */
909 goto out;
910 } else if (this_err < err_min) {
911 *best_clock = clock;
912 err_min = this_err;
913 }
914 }
915 }
916 }
917 }
918out:
919 return true;
920}
921
922/* DisplayPort has only two frequencies, 162MHz and 270MHz */ 902/* DisplayPort has only two frequencies, 162MHz and 270MHz */
923static bool 903static bool
924intel_find_pll_g4x_dp(const intel_limit_t *limit, struct drm_crtc *crtc, 904intel_find_pll_g4x_dp(const intel_limit_t *limit, struct drm_crtc *crtc,
@@ -1493,6 +1473,10 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
1493 int trans_vsync_reg = (pipe == 0) ? TRANS_VSYNC_A : TRANS_VSYNC_B; 1473 int trans_vsync_reg = (pipe == 0) ? TRANS_VSYNC_A : TRANS_VSYNC_B;
1494 u32 temp; 1474 u32 temp;
1495 int tries = 5, j, n; 1475 int tries = 5, j, n;
1476 u32 pipe_bpc;
1477
1478 temp = I915_READ(pipeconf_reg);
1479 pipe_bpc = temp & PIPE_BPC_MASK;
1496 1480
1497 /* XXX: When our outputs are all unaware of DPMS modes other than off 1481 /* XXX: When our outputs are all unaware of DPMS modes other than off
1498 * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC. 1482 * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC.
@@ -1524,6 +1508,12 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
1524 1508
1525 /* enable PCH FDI RX PLL, wait warmup plus DMI latency */ 1509 /* enable PCH FDI RX PLL, wait warmup plus DMI latency */
1526 temp = I915_READ(fdi_rx_reg); 1510 temp = I915_READ(fdi_rx_reg);
1511 /*
1512 * make the BPC in FDI Rx be consistent with that in
1513 * pipeconf reg.
1514 */
1515 temp &= ~(0x7 << 16);
1516 temp |= (pipe_bpc << 11);
1527 I915_WRITE(fdi_rx_reg, temp | FDI_RX_PLL_ENABLE | 1517 I915_WRITE(fdi_rx_reg, temp | FDI_RX_PLL_ENABLE |
1528 FDI_SEL_PCDCLK | 1518 FDI_SEL_PCDCLK |
1529 FDI_DP_PORT_WIDTH_X4); /* default 4 lanes */ 1519 FDI_DP_PORT_WIDTH_X4); /* default 4 lanes */
@@ -1666,6 +1656,12 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
1666 1656
1667 /* enable PCH transcoder */ 1657 /* enable PCH transcoder */
1668 temp = I915_READ(transconf_reg); 1658 temp = I915_READ(transconf_reg);
1659 /*
1660 * make the BPC in transcoder be consistent with
1661 * that in pipeconf reg.
1662 */
1663 temp &= ~PIPE_BPC_MASK;
1664 temp |= pipe_bpc;
1669 I915_WRITE(transconf_reg, temp | TRANS_ENABLE); 1665 I915_WRITE(transconf_reg, temp | TRANS_ENABLE);
1670 I915_READ(transconf_reg); 1666 I915_READ(transconf_reg);
1671 1667
@@ -1745,6 +1741,9 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
1745 I915_READ(fdi_tx_reg); 1741 I915_READ(fdi_tx_reg);
1746 1742
1747 temp = I915_READ(fdi_rx_reg); 1743 temp = I915_READ(fdi_rx_reg);
1744 /* BPC in FDI rx is consistent with that in pipeconf */
1745 temp &= ~(0x07 << 16);
1746 temp |= (pipe_bpc << 11);
1748 I915_WRITE(fdi_rx_reg, temp & ~FDI_RX_ENABLE); 1747 I915_WRITE(fdi_rx_reg, temp & ~FDI_RX_ENABLE);
1749 I915_READ(fdi_rx_reg); 1748 I915_READ(fdi_rx_reg);
1750 1749
@@ -1789,7 +1788,12 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
1789 } 1788 }
1790 } 1789 }
1791 } 1790 }
1792 1791 temp = I915_READ(transconf_reg);
1792 /* BPC in transcoder is consistent with that in pipeconf */
1793 temp &= ~PIPE_BPC_MASK;
1794 temp |= pipe_bpc;
1795 I915_WRITE(transconf_reg, temp);
1796 I915_READ(transconf_reg);
1793 udelay(100); 1797 udelay(100);
1794 1798
1795 /* disable PCH DPLL */ 1799 /* disable PCH DPLL */
@@ -2448,7 +2452,7 @@ static void pineview_enable_cxsr(struct drm_device *dev, unsigned long clock,
2448 * A value of 5us seems to be a good balance; safe for very low end 2452 * A value of 5us seems to be a good balance; safe for very low end
2449 * platforms but not overly aggressive on lower latency configs. 2453 * platforms but not overly aggressive on lower latency configs.
2450 */ 2454 */
2451const static int latency_ns = 5000; 2455static const int latency_ns = 5000;
2452 2456
2453static int i9xx_get_fifo_size(struct drm_device *dev, int plane) 2457static int i9xx_get_fifo_size(struct drm_device *dev, int plane)
2454{ 2458{
@@ -2559,7 +2563,7 @@ static void g4x_update_wm(struct drm_device *dev, int planea_clock,
2559 /* Calc sr entries for one plane configs */ 2563 /* Calc sr entries for one plane configs */
2560 if (sr_hdisplay && (!planea_clock || !planeb_clock)) { 2564 if (sr_hdisplay && (!planea_clock || !planeb_clock)) {
2561 /* self-refresh has much higher latency */ 2565 /* self-refresh has much higher latency */
2562 const static int sr_latency_ns = 12000; 2566 static const int sr_latency_ns = 12000;
2563 2567
2564 sr_clock = planea_clock ? planea_clock : planeb_clock; 2568 sr_clock = planea_clock ? planea_clock : planeb_clock;
2565 line_time_us = ((sr_hdisplay * 1000) / sr_clock); 2569 line_time_us = ((sr_hdisplay * 1000) / sr_clock);
@@ -2598,7 +2602,7 @@ static void i965_update_wm(struct drm_device *dev, int planea_clock,
2598 /* Calc sr entries for one plane configs */ 2602 /* Calc sr entries for one plane configs */
2599 if (sr_hdisplay && (!planea_clock || !planeb_clock)) { 2603 if (sr_hdisplay && (!planea_clock || !planeb_clock)) {
2600 /* self-refresh has much higher latency */ 2604 /* self-refresh has much higher latency */
2601 const static int sr_latency_ns = 12000; 2605 static const int sr_latency_ns = 12000;
2602 2606
2603 sr_clock = planea_clock ? planea_clock : planeb_clock; 2607 sr_clock = planea_clock ? planea_clock : planeb_clock;
2604 line_time_us = ((sr_hdisplay * 1000) / sr_clock); 2608 line_time_us = ((sr_hdisplay * 1000) / sr_clock);
@@ -2667,7 +2671,7 @@ static void i9xx_update_wm(struct drm_device *dev, int planea_clock,
2667 if (HAS_FW_BLC(dev) && sr_hdisplay && 2671 if (HAS_FW_BLC(dev) && sr_hdisplay &&
2668 (!planea_clock || !planeb_clock)) { 2672 (!planea_clock || !planeb_clock)) {
2669 /* self-refresh has much higher latency */ 2673 /* self-refresh has much higher latency */
2670 const static int sr_latency_ns = 6000; 2674 static const int sr_latency_ns = 6000;
2671 2675
2672 sr_clock = planea_clock ? planea_clock : planeb_clock; 2676 sr_clock = planea_clock ? planea_clock : planeb_clock;
2673 line_time_us = ((sr_hdisplay * 1000) / sr_clock); 2677 line_time_us = ((sr_hdisplay * 1000) / sr_clock);
@@ -2969,6 +2973,18 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
2969 2973
2970 /* determine panel color depth */ 2974 /* determine panel color depth */
2971 temp = I915_READ(pipeconf_reg); 2975 temp = I915_READ(pipeconf_reg);
2976 temp &= ~PIPE_BPC_MASK;
2977 if (is_lvds) {
2978 int lvds_reg = I915_READ(PCH_LVDS);
2979 /* the BPC will be 6 if it is 18-bit LVDS panel */
2980 if ((lvds_reg & LVDS_A3_POWER_MASK) == LVDS_A3_POWER_UP)
2981 temp |= PIPE_8BPC;
2982 else
2983 temp |= PIPE_6BPC;
2984 } else
2985 temp |= PIPE_8BPC;
2986 I915_WRITE(pipeconf_reg, temp);
2987 I915_READ(pipeconf_reg);
2972 2988
2973 switch (temp & PIPE_BPC_MASK) { 2989 switch (temp & PIPE_BPC_MASK) {
2974 case PIPE_8BPC: 2990 case PIPE_8BPC:
@@ -3195,7 +3211,20 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
3195 * appropriately here, but we need to look more thoroughly into how 3211 * appropriately here, but we need to look more thoroughly into how
3196 * panels behave in the two modes. 3212 * panels behave in the two modes.
3197 */ 3213 */
3198 3214 /* set the dithering flag */
3215 if (IS_I965G(dev)) {
3216 if (dev_priv->lvds_dither) {
3217 if (IS_IRONLAKE(dev))
3218 pipeconf |= PIPE_ENABLE_DITHER;
3219 else
3220 lvds |= LVDS_ENABLE_DITHER;
3221 } else {
3222 if (IS_IRONLAKE(dev))
3223 pipeconf &= ~PIPE_ENABLE_DITHER;
3224 else
3225 lvds &= ~LVDS_ENABLE_DITHER;
3226 }
3227 }
3199 I915_WRITE(lvds_reg, lvds); 3228 I915_WRITE(lvds_reg, lvds);
3200 I915_READ(lvds_reg); 3229 I915_READ(lvds_reg);
3201 } 3230 }
@@ -3385,7 +3414,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
3385 3414
3386 /* we only need to pin inside GTT if cursor is non-phy */ 3415 /* we only need to pin inside GTT if cursor is non-phy */
3387 mutex_lock(&dev->struct_mutex); 3416 mutex_lock(&dev->struct_mutex);
3388 if (!dev_priv->cursor_needs_physical) { 3417 if (!dev_priv->info->cursor_needs_physical) {
3389 ret = i915_gem_object_pin(bo, PAGE_SIZE); 3418 ret = i915_gem_object_pin(bo, PAGE_SIZE);
3390 if (ret) { 3419 if (ret) {
3391 DRM_ERROR("failed to pin cursor bo\n"); 3420 DRM_ERROR("failed to pin cursor bo\n");
@@ -3420,7 +3449,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
3420 I915_WRITE(base, addr); 3449 I915_WRITE(base, addr);
3421 3450
3422 if (intel_crtc->cursor_bo) { 3451 if (intel_crtc->cursor_bo) {
3423 if (dev_priv->cursor_needs_physical) { 3452 if (dev_priv->info->cursor_needs_physical) {
3424 if (intel_crtc->cursor_bo != bo) 3453 if (intel_crtc->cursor_bo != bo)
3425 i915_gem_detach_phys_object(dev, intel_crtc->cursor_bo); 3454 i915_gem_detach_phys_object(dev, intel_crtc->cursor_bo);
3426 } else 3455 } else
@@ -3779,125 +3808,6 @@ static void intel_gpu_idle_timer(unsigned long arg)
3779 queue_work(dev_priv->wq, &dev_priv->idle_work); 3808 queue_work(dev_priv->wq, &dev_priv->idle_work);
3780} 3809}
3781 3810
3782void intel_increase_renderclock(struct drm_device *dev, bool schedule)
3783{
3784 drm_i915_private_t *dev_priv = dev->dev_private;
3785
3786 if (IS_IRONLAKE(dev))
3787 return;
3788
3789 if (!dev_priv->render_reclock_avail) {
3790 DRM_DEBUG_DRIVER("not reclocking render clock\n");
3791 return;
3792 }
3793
3794 /* Restore render clock frequency to original value */
3795 if (IS_G4X(dev) || IS_I9XX(dev))
3796 pci_write_config_word(dev->pdev, GCFGC, dev_priv->orig_clock);
3797 else if (IS_I85X(dev))
3798 pci_write_config_word(dev->pdev, HPLLCC, dev_priv->orig_clock);
3799 DRM_DEBUG_DRIVER("increasing render clock frequency\n");
3800
3801 /* Schedule downclock */
3802 if (schedule)
3803 mod_timer(&dev_priv->idle_timer, jiffies +
3804 msecs_to_jiffies(GPU_IDLE_TIMEOUT));
3805}
3806
3807void intel_decrease_renderclock(struct drm_device *dev)
3808{
3809 drm_i915_private_t *dev_priv = dev->dev_private;
3810
3811 if (IS_IRONLAKE(dev))
3812 return;
3813
3814 if (!dev_priv->render_reclock_avail) {
3815 DRM_DEBUG_DRIVER("not reclocking render clock\n");
3816 return;
3817 }
3818
3819 if (IS_G4X(dev)) {
3820 u16 gcfgc;
3821
3822 /* Adjust render clock... */
3823 pci_read_config_word(dev->pdev, GCFGC, &gcfgc);
3824
3825 /* Down to minimum... */
3826 gcfgc &= ~GM45_GC_RENDER_CLOCK_MASK;
3827 gcfgc |= GM45_GC_RENDER_CLOCK_266_MHZ;
3828
3829 pci_write_config_word(dev->pdev, GCFGC, gcfgc);
3830 } else if (IS_I965G(dev)) {
3831 u16 gcfgc;
3832
3833 /* Adjust render clock... */
3834 pci_read_config_word(dev->pdev, GCFGC, &gcfgc);
3835
3836 /* Down to minimum... */
3837 gcfgc &= ~I965_GC_RENDER_CLOCK_MASK;
3838 gcfgc |= I965_GC_RENDER_CLOCK_267_MHZ;
3839
3840 pci_write_config_word(dev->pdev, GCFGC, gcfgc);
3841 } else if (IS_I945G(dev) || IS_I945GM(dev)) {
3842 u16 gcfgc;
3843
3844 /* Adjust render clock... */
3845 pci_read_config_word(dev->pdev, GCFGC, &gcfgc);
3846
3847 /* Down to minimum... */
3848 gcfgc &= ~I945_GC_RENDER_CLOCK_MASK;
3849 gcfgc |= I945_GC_RENDER_CLOCK_166_MHZ;
3850
3851 pci_write_config_word(dev->pdev, GCFGC, gcfgc);
3852 } else if (IS_I915G(dev)) {
3853 u16 gcfgc;
3854
3855 /* Adjust render clock... */
3856 pci_read_config_word(dev->pdev, GCFGC, &gcfgc);
3857
3858 /* Down to minimum... */
3859 gcfgc &= ~I915_GC_RENDER_CLOCK_MASK;
3860 gcfgc |= I915_GC_RENDER_CLOCK_166_MHZ;
3861
3862 pci_write_config_word(dev->pdev, GCFGC, gcfgc);
3863 } else if (IS_I85X(dev)) {
3864 u16 hpllcc;
3865
3866 /* Adjust render clock... */
3867 pci_read_config_word(dev->pdev, HPLLCC, &hpllcc);
3868
3869 /* Up to maximum... */
3870 hpllcc &= ~GC_CLOCK_CONTROL_MASK;
3871 hpllcc |= GC_CLOCK_133_200;
3872
3873 pci_write_config_word(dev->pdev, HPLLCC, hpllcc);
3874 }
3875 DRM_DEBUG_DRIVER("decreasing render clock frequency\n");
3876}
3877
3878/* Note that no increase function is needed for this - increase_renderclock()
3879 * will also rewrite these bits
3880 */
3881void intel_decrease_displayclock(struct drm_device *dev)
3882{
3883 if (IS_IRONLAKE(dev))
3884 return;
3885
3886 if (IS_I945G(dev) || IS_I945GM(dev) || IS_I915G(dev) ||
3887 IS_I915GM(dev)) {
3888 u16 gcfgc;
3889
3890 /* Adjust render clock... */
3891 pci_read_config_word(dev->pdev, GCFGC, &gcfgc);
3892
3893 /* Down to minimum... */
3894 gcfgc &= ~0xf0;
3895 gcfgc |= 0x80;
3896
3897 pci_write_config_word(dev->pdev, GCFGC, gcfgc);
3898 }
3899}
3900
3901#define CRTC_IDLE_TIMEOUT 1000 /* ms */ 3811#define CRTC_IDLE_TIMEOUT 1000 /* ms */
3902 3812
3903static void intel_crtc_idle_timer(unsigned long arg) 3813static void intel_crtc_idle_timer(unsigned long arg)
@@ -4011,12 +3921,6 @@ static void intel_idle_update(struct work_struct *work)
4011 3921
4012 mutex_lock(&dev->struct_mutex); 3922 mutex_lock(&dev->struct_mutex);
4013 3923
4014 /* GPU isn't processing, downclock it. */
4015 if (!dev_priv->busy) {
4016 intel_decrease_renderclock(dev);
4017 intel_decrease_displayclock(dev);
4018 }
4019
4020 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { 3924 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
4021 /* Skip inactive CRTCs */ 3925 /* Skip inactive CRTCs */
4022 if (!crtc->fb) 3926 if (!crtc->fb)
@@ -4050,13 +3954,11 @@ void intel_mark_busy(struct drm_device *dev, struct drm_gem_object *obj)
4050 if (!drm_core_check_feature(dev, DRIVER_MODESET)) 3954 if (!drm_core_check_feature(dev, DRIVER_MODESET))
4051 return; 3955 return;
4052 3956
4053 if (!dev_priv->busy) { 3957 if (!dev_priv->busy)
4054 dev_priv->busy = true; 3958 dev_priv->busy = true;
4055 intel_increase_renderclock(dev, true); 3959 else
4056 } else {
4057 mod_timer(&dev_priv->idle_timer, jiffies + 3960 mod_timer(&dev_priv->idle_timer, jiffies +
4058 msecs_to_jiffies(GPU_IDLE_TIMEOUT)); 3961 msecs_to_jiffies(GPU_IDLE_TIMEOUT));
4059 }
4060 3962
4061 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { 3963 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
4062 if (!crtc->fb) 3964 if (!crtc->fb)
@@ -4400,29 +4302,43 @@ static void intel_setup_outputs(struct drm_device *dev)
4400 bool found = false; 4302 bool found = false;
4401 4303
4402 if (I915_READ(SDVOB) & SDVO_DETECTED) { 4304 if (I915_READ(SDVOB) & SDVO_DETECTED) {
4305 DRM_DEBUG_KMS("probing SDVOB\n");
4403 found = intel_sdvo_init(dev, SDVOB); 4306 found = intel_sdvo_init(dev, SDVOB);
4404 if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) 4307 if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) {
4308 DRM_DEBUG_KMS("probing HDMI on SDVOB\n");
4405 intel_hdmi_init(dev, SDVOB); 4309 intel_hdmi_init(dev, SDVOB);
4310 }
4406 4311
4407 if (!found && SUPPORTS_INTEGRATED_DP(dev)) 4312 if (!found && SUPPORTS_INTEGRATED_DP(dev)) {
4313 DRM_DEBUG_KMS("probing DP_B\n");
4408 intel_dp_init(dev, DP_B); 4314 intel_dp_init(dev, DP_B);
4315 }
4409 } 4316 }
4410 4317
4411 /* Before G4X SDVOC doesn't have its own detect register */ 4318 /* Before G4X SDVOC doesn't have its own detect register */
4412 4319
4413 if (I915_READ(SDVOB) & SDVO_DETECTED) 4320 if (I915_READ(SDVOB) & SDVO_DETECTED) {
4321 DRM_DEBUG_KMS("probing SDVOC\n");
4414 found = intel_sdvo_init(dev, SDVOC); 4322 found = intel_sdvo_init(dev, SDVOC);
4323 }
4415 4324
4416 if (!found && (I915_READ(SDVOC) & SDVO_DETECTED)) { 4325 if (!found && (I915_READ(SDVOC) & SDVO_DETECTED)) {
4417 4326
4418 if (SUPPORTS_INTEGRATED_HDMI(dev)) 4327 if (SUPPORTS_INTEGRATED_HDMI(dev)) {
4328 DRM_DEBUG_KMS("probing HDMI on SDVOC\n");
4419 intel_hdmi_init(dev, SDVOC); 4329 intel_hdmi_init(dev, SDVOC);
4420 if (SUPPORTS_INTEGRATED_DP(dev)) 4330 }
4331 if (SUPPORTS_INTEGRATED_DP(dev)) {
4332 DRM_DEBUG_KMS("probing DP_C\n");
4421 intel_dp_init(dev, DP_C); 4333 intel_dp_init(dev, DP_C);
4334 }
4422 } 4335 }
4423 4336
4424 if (SUPPORTS_INTEGRATED_DP(dev) && (I915_READ(DP_D) & DP_DETECTED)) 4337 if (SUPPORTS_INTEGRATED_DP(dev) &&
4338 (I915_READ(DP_D) & DP_DETECTED)) {
4339 DRM_DEBUG_KMS("probing DP_D\n");
4425 intel_dp_init(dev, DP_D); 4340 intel_dp_init(dev, DP_D);
4341 }
4426 } else if (IS_I8XX(dev)) 4342 } else if (IS_I8XX(dev))
4427 intel_dvo_init(dev); 4343 intel_dvo_init(dev);
4428 4344
@@ -4527,6 +4443,42 @@ static const struct drm_mode_config_funcs intel_mode_funcs = {
4527 .fb_changed = intelfb_probe, 4443 .fb_changed = intelfb_probe,
4528}; 4444};
4529 4445
4446static struct drm_gem_object *
4447intel_alloc_power_context(struct drm_device *dev)
4448{
4449 struct drm_gem_object *pwrctx;
4450 int ret;
4451
4452 pwrctx = drm_gem_object_alloc(dev, 4096);
4453 if (!pwrctx) {
4454 DRM_DEBUG("failed to alloc power context, RC6 disabled\n");
4455 return NULL;
4456 }
4457
4458 mutex_lock(&dev->struct_mutex);
4459 ret = i915_gem_object_pin(pwrctx, 4096);
4460 if (ret) {
4461 DRM_ERROR("failed to pin power context: %d\n", ret);
4462 goto err_unref;
4463 }
4464
4465 ret = i915_gem_object_set_to_gtt_domain(pwrctx, 1);
4466 if (ret) {
4467 DRM_ERROR("failed to set-domain on power context: %d\n", ret);
4468 goto err_unpin;
4469 }
4470 mutex_unlock(&dev->struct_mutex);
4471
4472 return pwrctx;
4473
4474err_unpin:
4475 i915_gem_object_unpin(pwrctx);
4476err_unref:
4477 drm_gem_object_unreference(pwrctx);
4478 mutex_unlock(&dev->struct_mutex);
4479 return NULL;
4480}
4481
4530void intel_init_clock_gating(struct drm_device *dev) 4482void intel_init_clock_gating(struct drm_device *dev)
4531{ 4483{
4532 struct drm_i915_private *dev_priv = dev->dev_private; 4484 struct drm_i915_private *dev_priv = dev->dev_private;
@@ -4579,42 +4531,27 @@ void intel_init_clock_gating(struct drm_device *dev)
4579 * GPU can automatically power down the render unit if given a page 4531 * GPU can automatically power down the render unit if given a page
4580 * to save state. 4532 * to save state.
4581 */ 4533 */
4582 if (I915_HAS_RC6(dev)) { 4534 if (I915_HAS_RC6(dev) && drm_core_check_feature(dev, DRIVER_MODESET)) {
4583 struct drm_gem_object *pwrctx; 4535 struct drm_i915_gem_object *obj_priv = NULL;
4584 struct drm_i915_gem_object *obj_priv;
4585 int ret;
4586 4536
4587 if (dev_priv->pwrctx) { 4537 if (dev_priv->pwrctx) {
4588 obj_priv = dev_priv->pwrctx->driver_private; 4538 obj_priv = dev_priv->pwrctx->driver_private;
4589 } else { 4539 } else {
4590 pwrctx = drm_gem_object_alloc(dev, 4096); 4540 struct drm_gem_object *pwrctx;
4591 if (!pwrctx) {
4592 DRM_DEBUG("failed to alloc power context, "
4593 "RC6 disabled\n");
4594 goto out;
4595 }
4596 4541
4597 ret = i915_gem_object_pin(pwrctx, 4096); 4542 pwrctx = intel_alloc_power_context(dev);
4598 if (ret) { 4543 if (pwrctx) {
4599 DRM_ERROR("failed to pin power context: %d\n", 4544 dev_priv->pwrctx = pwrctx;
4600 ret); 4545 obj_priv = pwrctx->driver_private;
4601 drm_gem_object_unreference(pwrctx);
4602 goto out;
4603 } 4546 }
4604
4605 i915_gem_object_set_to_gtt_domain(pwrctx, 1);
4606
4607 dev_priv->pwrctx = pwrctx;
4608 obj_priv = pwrctx->driver_private;
4609 } 4547 }
4610 4548
4611 I915_WRITE(PWRCTXA, obj_priv->gtt_offset | PWRCTX_EN); 4549 if (obj_priv) {
4612 I915_WRITE(MCHBAR_RENDER_STANDBY, 4550 I915_WRITE(PWRCTXA, obj_priv->gtt_offset | PWRCTX_EN);
4613 I915_READ(MCHBAR_RENDER_STANDBY) & ~RCX_SW_EXIT); 4551 I915_WRITE(MCHBAR_RENDER_STANDBY,
4552 I915_READ(MCHBAR_RENDER_STANDBY) & ~RCX_SW_EXIT);
4553 }
4614 } 4554 }
4615
4616out:
4617 return;
4618} 4555}
4619 4556
4620/* Set up chip specific display functions */ 4557/* Set up chip specific display functions */
@@ -4770,7 +4707,6 @@ void intel_modeset_cleanup(struct drm_device *dev)
4770 del_timer_sync(&intel_crtc->idle_timer); 4707 del_timer_sync(&intel_crtc->idle_timer);
4771 } 4708 }
4772 4709
4773 intel_increase_renderclock(dev, false);
4774 del_timer_sync(&dev_priv->idle_timer); 4710 del_timer_sync(&dev_priv->idle_timer);
4775 4711
4776 if (dev_priv->display.disable_fbc) 4712 if (dev_priv->display.disable_fbc)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 4e7aa8b7b938..1349d9fd01c4 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1402,14 +1402,20 @@ intel_dp_init(struct drm_device *dev, int output_reg)
1402 break; 1402 break;
1403 case DP_B: 1403 case DP_B:
1404 case PCH_DP_B: 1404 case PCH_DP_B:
1405 dev_priv->hotplug_supported_mask |=
1406 HDMIB_HOTPLUG_INT_STATUS;
1405 name = "DPDDC-B"; 1407 name = "DPDDC-B";
1406 break; 1408 break;
1407 case DP_C: 1409 case DP_C:
1408 case PCH_DP_C: 1410 case PCH_DP_C:
1411 dev_priv->hotplug_supported_mask |=
1412 HDMIC_HOTPLUG_INT_STATUS;
1409 name = "DPDDC-C"; 1413 name = "DPDDC-C";
1410 break; 1414 break;
1411 case DP_D: 1415 case DP_D:
1412 case PCH_DP_D: 1416 case PCH_DP_D:
1417 dev_priv->hotplug_supported_mask |=
1418 HDMID_HOTPLUG_INT_STATUS;
1413 name = "DPDDC-D"; 1419 name = "DPDDC-D";
1414 break; 1420 break;
1415 } 1421 }
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index f04dbbe7d400..06431941b233 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -303,21 +303,26 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg)
303 if (sdvox_reg == SDVOB) { 303 if (sdvox_reg == SDVOB) {
304 intel_output->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); 304 intel_output->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT);
305 intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB"); 305 intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB");
306 dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
306 } else if (sdvox_reg == SDVOC) { 307 } else if (sdvox_reg == SDVOC) {
307 intel_output->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); 308 intel_output->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT);
308 intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC"); 309 intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC");
310 dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
309 } else if (sdvox_reg == HDMIB) { 311 } else if (sdvox_reg == HDMIB) {
310 intel_output->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); 312 intel_output->clone_mask = (1 << INTEL_HDMID_CLONE_BIT);
311 intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE, 313 intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE,
312 "HDMIB"); 314 "HDMIB");
315 dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
313 } else if (sdvox_reg == HDMIC) { 316 } else if (sdvox_reg == HDMIC) {
314 intel_output->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT); 317 intel_output->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT);
315 intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD, 318 intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD,
316 "HDMIC"); 319 "HDMIC");
320 dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
317 } else if (sdvox_reg == HDMID) { 321 } else if (sdvox_reg == HDMID) {
318 intel_output->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT); 322 intel_output->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT);
319 intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF, 323 intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF,
320 "HDMID"); 324 "HDMID");
325 dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS;
321 } 326 }
322 if (!intel_output->ddc_bus) 327 if (!intel_output->ddc_bus)
323 goto err_connector; 328 goto err_connector;
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 3118ce274e67..f4b4aa242df1 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -608,6 +608,13 @@ static const struct dmi_system_id bad_lid_status[] = {
608 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"), 608 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"),
609 }, 609 },
610 }, 610 },
611 {
612 .ident = "PC-81005",
613 .matches = {
614 DMI_MATCH(DMI_SYS_VENDOR, "MALATA"),
615 DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"),
616 },
617 },
611 { } 618 { }
612}; 619};
613 620
@@ -679,7 +686,14 @@ static int intel_lid_notify(struct notifier_block *nb, unsigned long val,
679 struct drm_i915_private *dev_priv = 686 struct drm_i915_private *dev_priv =
680 container_of(nb, struct drm_i915_private, lid_notifier); 687 container_of(nb, struct drm_i915_private, lid_notifier);
681 struct drm_device *dev = dev_priv->dev; 688 struct drm_device *dev = dev_priv->dev;
689 struct drm_connector *connector = dev_priv->int_lvds_connector;
682 690
691 /*
692 * check and update the status of LVDS connector after receiving
693 * the LID nofication event.
694 */
695 if (connector)
696 connector->status = connector->funcs->detect(connector);
683 if (!acpi_lid_open()) { 697 if (!acpi_lid_open()) {
684 dev_priv->modeset_on_lid = 1; 698 dev_priv->modeset_on_lid = 1;
685 return NOTIFY_OK; 699 return NOTIFY_OK;
@@ -854,65 +868,6 @@ static const struct dmi_system_id intel_no_lvds[] = {
854 { } /* terminating entry */ 868 { } /* terminating entry */
855}; 869};
856 870
857#ifdef CONFIG_ACPI
858/*
859 * check_lid_device -- check whether @handle is an ACPI LID device.
860 * @handle: ACPI device handle
861 * @level : depth in the ACPI namespace tree
862 * @context: the number of LID device when we find the device
863 * @rv: a return value to fill if desired (Not use)
864 */
865static acpi_status
866check_lid_device(acpi_handle handle, u32 level, void *context,
867 void **return_value)
868{
869 struct acpi_device *acpi_dev;
870 int *lid_present = context;
871
872 acpi_dev = NULL;
873 /* Get the acpi device for device handle */
874 if (acpi_bus_get_device(handle, &acpi_dev) || !acpi_dev) {
875 /* If there is no ACPI device for handle, return */
876 return AE_OK;
877 }
878
879 if (!strncmp(acpi_device_hid(acpi_dev), "PNP0C0D", 7))
880 *lid_present = 1;
881
882 return AE_OK;
883}
884
885/**
886 * check whether there exists the ACPI LID device by enumerating the ACPI
887 * device tree.
888 */
889static int intel_lid_present(void)
890{
891 int lid_present = 0;
892
893 if (acpi_disabled) {
894 /* If ACPI is disabled, there is no ACPI device tree to
895 * check, so assume the LID device would have been present.
896 */
897 return 1;
898 }
899
900 acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
901 ACPI_UINT32_MAX,
902 check_lid_device, NULL, &lid_present, NULL);
903
904 return lid_present;
905}
906#else
907static int intel_lid_present(void)
908{
909 /* In the absence of ACPI built in, assume that the LID device would
910 * have been present.
911 */
912 return 1;
913}
914#endif
915
916/** 871/**
917 * intel_find_lvds_downclock - find the reduced downclock for LVDS in EDID 872 * intel_find_lvds_downclock - find the reduced downclock for LVDS in EDID
918 * @dev: drm device 873 * @dev: drm device
@@ -1031,12 +986,8 @@ void intel_lvds_init(struct drm_device *dev)
1031 if (dmi_check_system(intel_no_lvds)) 986 if (dmi_check_system(intel_no_lvds))
1032 return; 987 return;
1033 988
1034 /* 989 if (!lvds_is_present_in_vbt(dev)) {
1035 * Assume LVDS is present if there's an ACPI lid device or if the 990 DRM_DEBUG_KMS("LVDS is not present in VBT\n");
1036 * device is present in the VBT.
1037 */
1038 if (!lvds_is_present_in_vbt(dev) && !intel_lid_present()) {
1039 DRM_DEBUG_KMS("LVDS is not present in VBT and no lid detected\n");
1040 return; 991 return;
1041 } 992 }
1042 993
@@ -1180,6 +1131,8 @@ out:
1180 DRM_DEBUG_KMS("lid notifier registration failed\n"); 1131 DRM_DEBUG_KMS("lid notifier registration failed\n");
1181 dev_priv->lid_notifier.notifier_call = NULL; 1132 dev_priv->lid_notifier.notifier_call = NULL;
1182 } 1133 }
1134 /* keep the LVDS connector */
1135 dev_priv->int_lvds_connector = connector;
1183 drm_sysfs_connector_add(connector); 1136 drm_sysfs_connector_add(connector);
1184 return; 1137 return;
1185 1138
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index 24a3dc99716c..de5144c8c153 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -2662,6 +2662,7 @@ static void intel_sdvo_create_enhance_property(struct drm_connector *connector)
2662 2662
2663bool intel_sdvo_init(struct drm_device *dev, int output_device) 2663bool intel_sdvo_init(struct drm_device *dev, int output_device)
2664{ 2664{
2665 struct drm_i915_private *dev_priv = dev->dev_private;
2665 struct drm_connector *connector; 2666 struct drm_connector *connector;
2666 struct intel_output *intel_output; 2667 struct intel_output *intel_output;
2667 struct intel_sdvo_priv *sdvo_priv; 2668 struct intel_sdvo_priv *sdvo_priv;
@@ -2708,10 +2709,12 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device)
2708 intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOB DDC BUS"); 2709 intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOB DDC BUS");
2709 sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA, 2710 sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA,
2710 "SDVOB/VGA DDC BUS"); 2711 "SDVOB/VGA DDC BUS");
2712 dev_priv->hotplug_supported_mask |= SDVOB_HOTPLUG_INT_STATUS;
2711 } else { 2713 } else {
2712 intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOC DDC BUS"); 2714 intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOC DDC BUS");
2713 sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA, 2715 sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA,
2714 "SDVOC/VGA DDC BUS"); 2716 "SDVOC/VGA DDC BUS");
2717 dev_priv->hotplug_supported_mask |= SDVOC_HOTPLUG_INT_STATUS;
2715 } 2718 }
2716 2719
2717 if (intel_output->ddc_bus == NULL) 2720 if (intel_output->ddc_bus == NULL)
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 552ec110b741..1d5b9b7b033f 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1840,6 +1840,8 @@ intel_tv_init(struct drm_device *dev)
1840 drm_connector_attach_property(connector, 1840 drm_connector_attach_property(connector,
1841 dev->mode_config.tv_bottom_margin_property, 1841 dev->mode_config.tv_bottom_margin_property,
1842 tv_priv->margin[TV_MARGIN_BOTTOM]); 1842 tv_priv->margin[TV_MARGIN_BOTTOM]);
1843
1844 dev_priv->hotplug_supported_mask |= TV_HOTPLUG_INT_STATUS;
1843out: 1845out:
1844 drm_sysfs_connector_add(connector); 1846 drm_sysfs_connector_add(connector);
1845} 1847}
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 321044bef71c..41dd8ebff219 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -114,6 +114,7 @@ static inline struct radeon_i2c_bus_rec radeon_lookup_i2c_gpio(struct radeon_dev
114 i2c.i2c_id = gpio->sucI2cId.ucAccess; 114 i2c.i2c_id = gpio->sucI2cId.ucAccess;
115 115
116 i2c.valid = true; 116 i2c.valid = true;
117 break;
117 } 118 }
118 } 119 }
119 120
@@ -1026,6 +1027,7 @@ static struct radeon_atom_ss *radeon_atombios_get_ss_info(struct
1026 ss->delay = ss_info->asSS_Info[i].ucSS_Delay; 1027 ss->delay = ss_info->asSS_Info[i].ucSS_Delay;
1027 ss->range = ss_info->asSS_Info[i].ucSS_Range; 1028 ss->range = ss_info->asSS_Info[i].ucSS_Range;
1028 ss->refdiv = ss_info->asSS_Info[i].ucRecommendedRef_Div; 1029 ss->refdiv = ss_info->asSS_Info[i].ucRecommendedRef_Div;
1030 break;
1029 } 1031 }
1030 } 1032 }
1031 } 1033 }
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
index fd94dbca33ac..58f342659cc7 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -595,6 +595,34 @@ bool radeon_combios_get_clock_info(struct drm_device *dev)
595 return false; 595 return false;
596} 596}
597 597
598static const uint32_t default_primarydac_adj[CHIP_LAST] = {
599 0x00000808, /* r100 */
600 0x00000808, /* rv100 */
601 0x00000808, /* rs100 */
602 0x00000808, /* rv200 */
603 0x00000808, /* rs200 */
604 0x00000808, /* r200 */
605 0x00000808, /* rv250 */
606 0x00000000, /* rs300 */
607 0x00000808, /* rv280 */
608 0x00000808, /* r300 */
609 0x00000808, /* r350 */
610 0x00000808, /* rv350 */
611 0x00000808, /* rv380 */
612 0x00000808, /* r420 */
613 0x00000808, /* r423 */
614 0x00000808, /* rv410 */
615 0x00000000, /* rs400 */
616 0x00000000, /* rs480 */
617};
618
619static void radeon_legacy_get_primary_dac_info_from_table(struct radeon_device *rdev,
620 struct radeon_encoder_primary_dac *p_dac)
621{
622 p_dac->ps2_pdac_adj = default_primarydac_adj[rdev->family];
623 return;
624}
625
598struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct 626struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
599 radeon_encoder 627 radeon_encoder
600 *encoder) 628 *encoder)
@@ -604,20 +632,20 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
604 uint16_t dac_info; 632 uint16_t dac_info;
605 uint8_t rev, bg, dac; 633 uint8_t rev, bg, dac;
606 struct radeon_encoder_primary_dac *p_dac = NULL; 634 struct radeon_encoder_primary_dac *p_dac = NULL;
635 int found = 0;
607 636
608 if (rdev->bios == NULL) 637 p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac),
638 GFP_KERNEL);
639
640 if (!p_dac)
609 return NULL; 641 return NULL;
610 642
643 if (rdev->bios == NULL)
644 goto out;
645
611 /* check CRT table */ 646 /* check CRT table */
612 dac_info = combios_get_table_offset(dev, COMBIOS_CRT_INFO_TABLE); 647 dac_info = combios_get_table_offset(dev, COMBIOS_CRT_INFO_TABLE);
613 if (dac_info) { 648 if (dac_info) {
614 p_dac =
615 kzalloc(sizeof(struct radeon_encoder_primary_dac),
616 GFP_KERNEL);
617
618 if (!p_dac)
619 return NULL;
620
621 rev = RBIOS8(dac_info) & 0x3; 649 rev = RBIOS8(dac_info) & 0x3;
622 if (rev < 2) { 650 if (rev < 2) {
623 bg = RBIOS8(dac_info + 0x2) & 0xf; 651 bg = RBIOS8(dac_info + 0x2) & 0xf;
@@ -628,9 +656,13 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct
628 dac = RBIOS8(dac_info + 0x3) & 0xf; 656 dac = RBIOS8(dac_info + 0x3) & 0xf;
629 p_dac->ps2_pdac_adj = (bg << 8) | (dac); 657 p_dac->ps2_pdac_adj = (bg << 8) | (dac);
630 } 658 }
631 659 found = 1;
632 } 660 }
633 661
662out:
663 if (!found) /* fallback to defaults */
664 radeon_legacy_get_primary_dac_info_from_table(rdev, p_dac);
665
634 return p_dac; 666 return p_dac;
635} 667}
636 668
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 20161567dbff..b82ae61d4d17 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -615,7 +615,7 @@ static enum drm_connector_status radeon_vga_detect(struct drm_connector *connect
615 ret = connector_status_connected; 615 ret = connector_status_connected;
616 } 616 }
617 } else { 617 } else {
618 if (radeon_connector->dac_load_detect) { 618 if (radeon_connector->dac_load_detect && encoder) {
619 encoder_funcs = encoder->helper_private; 619 encoder_funcs = encoder->helper_private;
620 ret = encoder_funcs->detect(encoder, connector); 620 ret = encoder_funcs->detect(encoder, connector);
621 } 621 }
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index 0b2f9c2ad2c1..06123ba31d31 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -2145,6 +2145,7 @@ int radeon_master_create(struct drm_device *dev, struct drm_master *master)
2145 &master_priv->sarea); 2145 &master_priv->sarea);
2146 if (ret) { 2146 if (ret) {
2147 DRM_ERROR("SAREA setup failed\n"); 2147 DRM_ERROR("SAREA setup failed\n");
2148 kfree(master_priv);
2148 return ret; 2149 return ret;
2149 } 2150 }
2150 master_priv->sarea_priv = master_priv->sarea->handle + sizeof(struct drm_sarea); 2151 master_priv->sarea_priv = master_priv->sarea->handle + sizeof(struct drm_sarea);
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
index 7c6848096bcd..0c51f8e46613 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -733,16 +733,18 @@ void radeon_device_fini(struct radeon_device *rdev)
733 */ 733 */
734int radeon_suspend_kms(struct drm_device *dev, pm_message_t state) 734int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
735{ 735{
736 struct radeon_device *rdev = dev->dev_private; 736 struct radeon_device *rdev;
737 struct drm_crtc *crtc; 737 struct drm_crtc *crtc;
738 int r; 738 int r;
739 739
740 if (dev == NULL || rdev == NULL) { 740 if (dev == NULL || dev->dev_private == NULL) {
741 return -ENODEV; 741 return -ENODEV;
742 } 742 }
743 if (state.event == PM_EVENT_PRETHAW) { 743 if (state.event == PM_EVENT_PRETHAW) {
744 return 0; 744 return 0;
745 } 745 }
746 rdev = dev->dev_private;
747
746 /* unpin the front buffers */ 748 /* unpin the front buffers */
747 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { 749 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
748 struct radeon_framebuffer *rfb = to_radeon_framebuffer(crtc->fb); 750 struct radeon_framebuffer *rfb = to_radeon_framebuffer(crtc->fb);
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 91d72b70abc9..1fb2f029d7e8 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -329,8 +329,11 @@ static bool radeon_setup_enc_conn(struct drm_device *dev)
329 ret = radeon_get_atom_connector_info_from_object_table(dev); 329 ret = radeon_get_atom_connector_info_from_object_table(dev);
330 else 330 else
331 ret = radeon_get_atom_connector_info_from_supported_devices_table(dev); 331 ret = radeon_get_atom_connector_info_from_supported_devices_table(dev);
332 } else 332 } else {
333 ret = radeon_get_legacy_connector_info_from_bios(dev); 333 ret = radeon_get_legacy_connector_info_from_bios(dev);
334 if (ret == false)
335 ret = radeon_get_legacy_connector_info_from_table(dev);
336 }
334 } else { 337 } else {
335 if (!ASIC_IS_AVIVO(rdev)) 338 if (!ASIC_IS_AVIVO(rdev))
336 ret = radeon_get_legacy_connector_info_from_table(dev); 339 ret = radeon_get_legacy_connector_info_from_table(dev);
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index 4cdd8b4f7549..8495d4e32e18 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -140,16 +140,15 @@ int radeon_fence_create(struct radeon_device *rdev, struct radeon_fence **fence)
140 140
141bool radeon_fence_signaled(struct radeon_fence *fence) 141bool radeon_fence_signaled(struct radeon_fence *fence)
142{ 142{
143 struct radeon_device *rdev = fence->rdev;
144 unsigned long irq_flags; 143 unsigned long irq_flags;
145 bool signaled = false; 144 bool signaled = false;
146 145
147 if (rdev->gpu_lockup) { 146 if (!fence)
148 return true; 147 return true;
149 } 148
150 if (fence == NULL) { 149 if (fence->rdev->gpu_lockup)
151 return true; 150 return true;
152 } 151
153 write_lock_irqsave(&fence->rdev->fence_drv.lock, irq_flags); 152 write_lock_irqsave(&fence->rdev->fence_drv.lock, irq_flags);
154 signaled = fence->signaled; 153 signaled = fence->signaled;
155 /* if we are shuting down report all fence as signaled */ 154 /* if we are shuting down report all fence as signaled */
diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
index b79ecc4a7cc4..2f349a300195 100644
--- a/drivers/gpu/drm/radeon/radeon_irq.c
+++ b/drivers/gpu/drm/radeon/radeon_irq.c
@@ -289,16 +289,16 @@ int radeon_irq_emit(struct drm_device *dev, void *data, struct drm_file *file_pr
289 drm_radeon_irq_emit_t *emit = data; 289 drm_radeon_irq_emit_t *emit = data;
290 int result; 290 int result;
291 291
292 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
293 return -EINVAL;
294
295 LOCK_TEST_WITH_RETURN(dev, file_priv);
296
297 if (!dev_priv) { 292 if (!dev_priv) {
298 DRM_ERROR("called with no initialization\n"); 293 DRM_ERROR("called with no initialization\n");
299 return -EINVAL; 294 return -EINVAL;
300 } 295 }
301 296
297 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600)
298 return -EINVAL;
299
300 LOCK_TEST_WITH_RETURN(dev, file_priv);
301
302 result = radeon_emit_irq(dev); 302 result = radeon_emit_irq(dev);
303 303
304 if (DRM_COPY_TO_USER(emit->irq_seq, &result, sizeof(int))) { 304 if (DRM_COPY_TO_USER(emit->irq_seq, &result, sizeof(int))) {
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c
index 4f8ea4260572..4245218e954f 100644
--- a/drivers/gpu/drm/radeon/rs600.c
+++ b/drivers/gpu/drm/radeon/rs600.c
@@ -396,7 +396,7 @@ int rs600_irq_process(struct radeon_device *rdev)
396 } 396 }
397 while (status || r500_disp_int) { 397 while (status || r500_disp_int) {
398 /* SW interrupt */ 398 /* SW interrupt */
399 if (G_000040_SW_INT_EN(status)) 399 if (G_000044_SW_INT(status))
400 radeon_fence_process(rdev); 400 radeon_fence_process(rdev);
401 /* Vertical blank interrupts */ 401 /* Vertical blank interrupts */
402 if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int)) 402 if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int))
diff --git a/drivers/ieee1394/Kconfig b/drivers/ieee1394/Kconfig
index f102fcc7e52a..e02096cf7d95 100644
--- a/drivers/ieee1394/Kconfig
+++ b/drivers/ieee1394/Kconfig
@@ -1,8 +1,3 @@
1menu "IEEE 1394 (FireWire) support"
2 depends on PCI || BROKEN
3
4source "drivers/firewire/Kconfig"
5
6config IEEE1394 1config IEEE1394
7 tristate "Legacy alternative FireWire driver stack" 2 tristate "Legacy alternative FireWire driver stack"
8 depends on PCI || BROKEN 3 depends on PCI || BROKEN
@@ -16,8 +11,13 @@ config IEEE1394
16 is the core support only, you will also need to select a driver for 11 is the core support only, you will also need to select a driver for
17 your IEEE 1394 adapter. 12 your IEEE 1394 adapter.
18 13
19 To compile this driver as a module, say M here: the 14 To compile this driver as a module, say M here: the module will be
20 module will be called ieee1394. 15 called ieee1394.
16
17 NOTE:
18 ieee1394 is superseded by the newer firewire-core driver. See
19 http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for
20 further information on how to switch to the new FireWire drivers.
21 21
22config IEEE1394_OHCI1394 22config IEEE1394_OHCI1394
23 tristate "OHCI-1394 controllers" 23 tristate "OHCI-1394 controllers"
@@ -29,19 +29,23 @@ config IEEE1394_OHCI1394
29 use one of these chipsets. It should work with any OHCI-1394 29 use one of these chipsets. It should work with any OHCI-1394
30 compliant card, however. 30 compliant card, however.
31 31
32 To compile this driver as a module, say M here: the 32 To compile this driver as a module, say M here: the module will be
33 module will be called ohci1394. 33 called ohci1394.
34 34
35 NOTE: 35 NOTE:
36 ohci1394 is superseded by the newer firewire-ohci driver. See
37 http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for
38 further information on how to switch to the new FireWire drivers.
39
36 If you want to install firewire-ohci and ohci1394 together, you 40 If you want to install firewire-ohci and ohci1394 together, you
37 should configure them only as modules and blacklist the driver(s) 41 should configure them only as modules and blacklist the driver(s)
38 which you don't want to have auto-loaded. Add either 42 which you don't want to have auto-loaded. Add either
39 43
40 blacklist firewire-ohci
41 or
42 blacklist ohci1394 44 blacklist ohci1394
43 blacklist video1394 45 blacklist video1394
44 blacklist dv1394 46 blacklist dv1394
47 or
48 blacklist firewire-ohci
45 49
46 to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf 50 to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf
47 depending on your distribution. 51 depending on your distribution.
@@ -58,8 +62,8 @@ config IEEE1394_PCILYNX
58 Instruments PCILynx chip. Note: this driver is written for revision 62 Instruments PCILynx chip. Note: this driver is written for revision
59 2 of this chip and may not work with revision 0. 63 2 of this chip and may not work with revision 0.
60 64
61 To compile this driver as a module, say M here: the 65 To compile this driver as a module, say M here: the module will be
62 module will be called pcilynx. 66 called pcilynx.
63 67
64 Only some old and now very rare PCI and CardBus cards and 68 Only some old and now very rare PCI and CardBus cards and
65 PowerMacs G3 B&W contain the PCILynx controller. Therefore 69 PowerMacs G3 B&W contain the PCILynx controller. Therefore
@@ -79,6 +83,14 @@ config IEEE1394_SBP2
79 You should also enable support for disks, CD-ROMs, etc. in the SCSI 83 You should also enable support for disks, CD-ROMs, etc. in the SCSI
80 configuration section. 84 configuration section.
81 85
86 To compile this driver as a module, say M here: the module will be
87 called sbp2.
88
89 NOTE:
90 sbp2 is superseded by the newer firewire-sbp2 driver. See
91 http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for
92 further information on how to switch to the new FireWire drivers.
93
82config IEEE1394_SBP2_PHYS_DMA 94config IEEE1394_SBP2_PHYS_DMA
83 bool "Enable replacement for physical DMA in SBP2" 95 bool "Enable replacement for physical DMA in SBP2"
84 depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL 96 depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL
@@ -111,6 +123,11 @@ config IEEE1394_ETH1394
111 123
112 The module is called eth1394 although it does not emulate Ethernet. 124 The module is called eth1394 although it does not emulate Ethernet.
113 125
126 NOTE:
127 eth1394 is superseded by the newer firewire-net driver. See
128 http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for
129 further information on how to switch to the new FireWire drivers.
130
114config IEEE1394_RAWIO 131config IEEE1394_RAWIO
115 tristate "raw1394 userspace interface" 132 tristate "raw1394 userspace interface"
116 depends on IEEE1394 133 depends on IEEE1394
@@ -123,6 +140,11 @@ config IEEE1394_RAWIO
123 To compile this driver as a module, say M here: the module will be 140 To compile this driver as a module, say M here: the module will be
124 called raw1394. 141 called raw1394.
125 142
143 NOTE:
144 raw1394 is superseded by the newer firewire-core driver. See
145 http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for
146 further information on how to switch to the new FireWire drivers.
147
126config IEEE1394_VIDEO1394 148config IEEE1394_VIDEO1394
127 tristate "video1394 userspace interface" 149 tristate "video1394 userspace interface"
128 depends on IEEE1394 && IEEE1394_OHCI1394 150 depends on IEEE1394 && IEEE1394_OHCI1394
@@ -136,13 +158,18 @@ config IEEE1394_VIDEO1394
136 To compile this driver as a module, say M here: the module will be 158 To compile this driver as a module, say M here: the module will be
137 called video1394. 159 called video1394.
138 160
161 NOTE:
162 video1394 is superseded by the newer firewire-core driver. See
163 http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for
164 further information on how to switch to the new FireWire drivers.
165
139config IEEE1394_DV1394 166config IEEE1394_DV1394
140 tristate "dv1394 userspace interface (deprecated)" 167 tristate "dv1394 userspace interface (deprecated)"
141 depends on IEEE1394 && IEEE1394_OHCI1394 168 depends on IEEE1394 && IEEE1394_OHCI1394
142 help 169 help
143 The dv1394 driver is unsupported and may be removed from Linux in a 170 The dv1394 driver is unsupported and may be removed from Linux in a
144 future release. Its functionality is now provided by raw1394 together 171 future release. Its functionality is now provided by either
145 with libraries such as libiec61883. 172 raw1394 or firewire-core together with libraries such as libiec61883.
146 173
147config IEEE1394_VERBOSEDEBUG 174config IEEE1394_VERBOSEDEBUG
148 bool "Excessive debugging output" 175 bool "Excessive debugging output"
@@ -153,5 +180,3 @@ config IEEE1394_VERBOSEDEBUG
153 will quickly result in large amounts of data sent to the system log. 180 will quickly result in large amounts of data sent to the system log.
154 181
155 Say Y if you really need the debugging output. Everyone else says N. 182 Say Y if you really need the debugging output. Everyone else says N.
156
157endmenu
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
index b483b2995fa9..f967008f332e 100644
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -221,11 +221,27 @@ static int get_compatible_type(struct ff_device *ff, int effect_type)
221} 221}
222 222
223/* 223/*
224 * Only left/right direction should be used (under/over 0x8000) for
225 * forward/reverse motor direction (to keep calculation fast & simple).
226 */
227static u16 ml_calculate_direction(u16 direction, u16 force,
228 u16 new_direction, u16 new_force)
229{
230 if (!force)
231 return new_direction;
232 if (!new_force)
233 return direction;
234 return (((u32)(direction >> 1) * force +
235 (new_direction >> 1) * new_force) /
236 (force + new_force)) << 1;
237}
238
239/*
224 * Combine two effects and apply gain. 240 * Combine two effects and apply gain.
225 */ 241 */
226static void ml_combine_effects(struct ff_effect *effect, 242static void ml_combine_effects(struct ff_effect *effect,
227 struct ml_effect_state *state, 243 struct ml_effect_state *state,
228 unsigned int gain) 244 int gain)
229{ 245{
230 struct ff_effect *new = state->effect; 246 struct ff_effect *new = state->effect;
231 unsigned int strong, weak, i; 247 unsigned int strong, weak, i;
@@ -252,8 +268,21 @@ static void ml_combine_effects(struct ff_effect *effect,
252 break; 268 break;
253 269
254 case FF_RUMBLE: 270 case FF_RUMBLE:
255 strong = new->u.rumble.strong_magnitude * gain / 0xffff; 271 strong = (u32)new->u.rumble.strong_magnitude * gain / 0xffff;
256 weak = new->u.rumble.weak_magnitude * gain / 0xffff; 272 weak = (u32)new->u.rumble.weak_magnitude * gain / 0xffff;
273
274 if (effect->u.rumble.strong_magnitude + strong)
275 effect->direction = ml_calculate_direction(
276 effect->direction,
277 effect->u.rumble.strong_magnitude,
278 new->direction, strong);
279 else if (effect->u.rumble.weak_magnitude + weak)
280 effect->direction = ml_calculate_direction(
281 effect->direction,
282 effect->u.rumble.weak_magnitude,
283 new->direction, weak);
284 else
285 effect->direction = 0;
257 effect->u.rumble.strong_magnitude = 286 effect->u.rumble.strong_magnitude =
258 min(strong + effect->u.rumble.strong_magnitude, 287 min(strong + effect->u.rumble.strong_magnitude,
259 0xffffU); 288 0xffffU);
@@ -268,6 +297,13 @@ static void ml_combine_effects(struct ff_effect *effect,
268 /* here we also scale it 0x7fff => 0xffff */ 297 /* here we also scale it 0x7fff => 0xffff */
269 i = i * gain / 0x7fff; 298 i = i * gain / 0x7fff;
270 299
300 if (effect->u.rumble.strong_magnitude + i)
301 effect->direction = ml_calculate_direction(
302 effect->direction,
303 effect->u.rumble.strong_magnitude,
304 new->direction, i);
305 else
306 effect->direction = 0;
271 effect->u.rumble.strong_magnitude = 307 effect->u.rumble.strong_magnitude =
272 min(i + effect->u.rumble.strong_magnitude, 0xffffU); 308 min(i + effect->u.rumble.strong_magnitude, 0xffffU);
273 effect->u.rumble.weak_magnitude = 309 effect->u.rumble.weak_magnitude =
@@ -411,8 +447,6 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value)
411 msecs_to_jiffies(state->effect->replay.length); 447 msecs_to_jiffies(state->effect->replay.length);
412 state->adj_at = state->play_at; 448 state->adj_at = state->play_at;
413 449
414 ml_schedule_timer(ml);
415
416 } else { 450 } else {
417 debug("initiated stop"); 451 debug("initiated stop");
418 452
@@ -420,10 +454,10 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value)
420 __set_bit(FF_EFFECT_ABORTING, &state->flags); 454 __set_bit(FF_EFFECT_ABORTING, &state->flags);
421 else 455 else
422 __clear_bit(FF_EFFECT_STARTED, &state->flags); 456 __clear_bit(FF_EFFECT_STARTED, &state->flags);
423
424 ml_play_effects(ml);
425 } 457 }
426 458
459 ml_play_effects(ml);
460
427 return 0; 461 return 0;
428} 462}
429 463
diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c
index f6c688cae334..b1edd778639c 100644
--- a/drivers/input/joystick/iforce/iforce-main.c
+++ b/drivers/input/joystick/iforce/iforce-main.c
@@ -210,7 +210,7 @@ static int iforce_open(struct input_dev *dev)
210 return 0; 210 return 0;
211} 211}
212 212
213static void iforce_release(struct input_dev *dev) 213static void iforce_close(struct input_dev *dev)
214{ 214{
215 struct iforce *iforce = input_get_drvdata(dev); 215 struct iforce *iforce = input_get_drvdata(dev);
216 int i; 216 int i;
@@ -228,30 +228,17 @@ static void iforce_release(struct input_dev *dev)
228 228
229 /* Disable force feedback playback */ 229 /* Disable force feedback playback */
230 iforce_send_packet(iforce, FF_CMD_ENABLE, "\001"); 230 iforce_send_packet(iforce, FF_CMD_ENABLE, "\001");
231 /* Wait for the command to complete */
232 wait_event_interruptible(iforce->wait,
233 !test_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags));
231 } 234 }
232 235
233 switch (iforce->bus) { 236 switch (iforce->bus) {
234#ifdef CONFIG_JOYSTICK_IFORCE_USB 237#ifdef CONFIG_JOYSTICK_IFORCE_USB
235 case IFORCE_USB:
236 usb_kill_urb(iforce->irq);
237
238 /* The device was unplugged before the file
239 * was released */
240 if (iforce->usbdev == NULL) {
241 iforce_delete_device(iforce);
242 kfree(iforce);
243 }
244 break;
245#endif
246 }
247}
248
249void iforce_delete_device(struct iforce *iforce)
250{
251 switch (iforce->bus) {
252#ifdef CONFIG_JOYSTICK_IFORCE_USB
253 case IFORCE_USB: 238 case IFORCE_USB:
254 iforce_usb_delete(iforce); 239 usb_kill_urb(iforce->irq);
240 usb_kill_urb(iforce->out);
241 usb_kill_urb(iforce->ctrl);
255 break; 242 break;
256#endif 243#endif
257#ifdef CONFIG_JOYSTICK_IFORCE_232 244#ifdef CONFIG_JOYSTICK_IFORCE_232
@@ -303,7 +290,7 @@ int iforce_init_device(struct iforce *iforce)
303 290
304 input_dev->name = "Unknown I-Force device"; 291 input_dev->name = "Unknown I-Force device";
305 input_dev->open = iforce_open; 292 input_dev->open = iforce_open;
306 input_dev->close = iforce_release; 293 input_dev->close = iforce_close;
307 294
308/* 295/*
309 * On-device memory allocation. 296 * On-device memory allocation.
diff --git a/drivers/input/joystick/iforce/iforce-usb.c b/drivers/input/joystick/iforce/iforce-usb.c
index 9f289d8f52c6..b41303d3ec54 100644
--- a/drivers/input/joystick/iforce/iforce-usb.c
+++ b/drivers/input/joystick/iforce/iforce-usb.c
@@ -109,6 +109,7 @@ static void iforce_usb_out(struct urb *urb)
109 struct iforce *iforce = urb->context; 109 struct iforce *iforce = urb->context;
110 110
111 if (urb->status) { 111 if (urb->status) {
112 clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
112 dbg("urb->status %d, exiting", urb->status); 113 dbg("urb->status %d, exiting", urb->status);
113 return; 114 return;
114 } 115 }
@@ -186,33 +187,19 @@ fail:
186 return err; 187 return err;
187} 188}
188 189
189/* Called by iforce_delete() */
190void iforce_usb_delete(struct iforce* iforce)
191{
192 usb_kill_urb(iforce->irq);
193 usb_kill_urb(iforce->out);
194 usb_kill_urb(iforce->ctrl);
195
196 usb_free_urb(iforce->irq);
197 usb_free_urb(iforce->out);
198 usb_free_urb(iforce->ctrl);
199}
200
201static void iforce_usb_disconnect(struct usb_interface *intf) 190static void iforce_usb_disconnect(struct usb_interface *intf)
202{ 191{
203 struct iforce *iforce = usb_get_intfdata(intf); 192 struct iforce *iforce = usb_get_intfdata(intf);
204 int open = 0; /* FIXME! iforce->dev.handle->open; */
205 193
206 usb_set_intfdata(intf, NULL); 194 usb_set_intfdata(intf, NULL);
207 if (iforce) {
208 iforce->usbdev = NULL;
209 input_unregister_device(iforce->dev);
210 195
211 if (!open) { 196 input_unregister_device(iforce->dev);
212 iforce_delete_device(iforce); 197
213 kfree(iforce); 198 usb_free_urb(iforce->irq);
214 } 199 usb_free_urb(iforce->out);
215 } 200 usb_free_urb(iforce->ctrl);
201
202 kfree(iforce);
216} 203}
217 204
218static struct usb_device_id iforce_usb_ids [] = { 205static struct usb_device_id iforce_usb_ids [] = {
diff --git a/drivers/input/joystick/iforce/iforce.h b/drivers/input/joystick/iforce/iforce.h
index f2d91f4028ca..9f494b75848a 100644
--- a/drivers/input/joystick/iforce/iforce.h
+++ b/drivers/input/joystick/iforce/iforce.h
@@ -150,11 +150,9 @@ void iforce_serial_xmit(struct iforce *iforce);
150 150
151/* iforce-usb.c */ 151/* iforce-usb.c */
152void iforce_usb_xmit(struct iforce *iforce); 152void iforce_usb_xmit(struct iforce *iforce);
153void iforce_usb_delete(struct iforce *iforce);
154 153
155/* iforce-main.c */ 154/* iforce-main.c */
156int iforce_init_device(struct iforce *iforce); 155int iforce_init_device(struct iforce *iforce);
157void iforce_delete_device(struct iforce *iforce);
158 156
159/* iforce-packets.c */ 157/* iforce-packets.c */
160int iforce_control_playback(struct iforce*, u16 id, unsigned int); 158int iforce_control_playback(struct iforce*, u16 id, unsigned int);
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index a3573570c52f..1f5e2ce327d6 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -134,7 +134,8 @@ static const unsigned short atkbd_unxlate_table[128] = {
134#define ATKBD_CMD_GETID 0x02f2 134#define ATKBD_CMD_GETID 0x02f2
135#define ATKBD_CMD_SETREP 0x10f3 135#define ATKBD_CMD_SETREP 0x10f3
136#define ATKBD_CMD_ENABLE 0x00f4 136#define ATKBD_CMD_ENABLE 0x00f4
137#define ATKBD_CMD_RESET_DIS 0x00f5 137#define ATKBD_CMD_RESET_DIS 0x00f5 /* Reset to defaults and disable */
138#define ATKBD_CMD_RESET_DEF 0x00f6 /* Reset to defaults */
138#define ATKBD_CMD_SETALL_MBR 0x00fa 139#define ATKBD_CMD_SETALL_MBR 0x00fa
139#define ATKBD_CMD_RESET_BAT 0x02ff 140#define ATKBD_CMD_RESET_BAT 0x02ff
140#define ATKBD_CMD_RESEND 0x00fe 141#define ATKBD_CMD_RESEND 0x00fe
@@ -836,7 +837,7 @@ static void atkbd_cleanup(struct serio *serio)
836 struct atkbd *atkbd = serio_get_drvdata(serio); 837 struct atkbd *atkbd = serio_get_drvdata(serio);
837 838
838 atkbd_disable(atkbd); 839 atkbd_disable(atkbd);
839 ps2_command(&atkbd->ps2dev, NULL, ATKBD_CMD_RESET_BAT); 840 ps2_command(&atkbd->ps2dev, NULL, ATKBD_CMD_RESET_DEF);
840} 841}
841 842
842 843
diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 34f4a29d4973..d3c8b61a941d 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -29,11 +29,13 @@ struct matrix_keypad {
29 unsigned short *keycodes; 29 unsigned short *keycodes;
30 unsigned int row_shift; 30 unsigned int row_shift;
31 31
32 DECLARE_BITMAP(disabled_gpios, MATRIX_MAX_ROWS);
33
32 uint32_t last_key_state[MATRIX_MAX_COLS]; 34 uint32_t last_key_state[MATRIX_MAX_COLS];
33 struct delayed_work work; 35 struct delayed_work work;
36 spinlock_t lock;
34 bool scan_pending; 37 bool scan_pending;
35 bool stopped; 38 bool stopped;
36 spinlock_t lock;
37}; 39};
38 40
39/* 41/*
@@ -222,9 +224,16 @@ static int matrix_keypad_suspend(struct device *dev)
222 224
223 matrix_keypad_stop(keypad->input_dev); 225 matrix_keypad_stop(keypad->input_dev);
224 226
225 if (device_may_wakeup(&pdev->dev)) 227 if (device_may_wakeup(&pdev->dev)) {
226 for (i = 0; i < pdata->num_row_gpios; i++) 228 for (i = 0; i < pdata->num_row_gpios; i++) {
227 enable_irq_wake(gpio_to_irq(pdata->row_gpios[i])); 229 if (!test_bit(i, keypad->disabled_gpios)) {
230 unsigned int gpio = pdata->row_gpios[i];
231
232 if (enable_irq_wake(gpio_to_irq(gpio)) == 0)
233 __set_bit(i, keypad->disabled_gpios);
234 }
235 }
236 }
228 237
229 return 0; 238 return 0;
230} 239}
@@ -236,9 +245,15 @@ static int matrix_keypad_resume(struct device *dev)
236 const struct matrix_keypad_platform_data *pdata = keypad->pdata; 245 const struct matrix_keypad_platform_data *pdata = keypad->pdata;
237 int i; 246 int i;
238 247
239 if (device_may_wakeup(&pdev->dev)) 248 if (device_may_wakeup(&pdev->dev)) {
240 for (i = 0; i < pdata->num_row_gpios; i++) 249 for (i = 0; i < pdata->num_row_gpios; i++) {
241 disable_irq_wake(gpio_to_irq(pdata->row_gpios[i])); 250 if (test_and_clear_bit(i, keypad->disabled_gpios)) {
251 unsigned int gpio = pdata->row_gpios[i];
252
253 disable_irq_wake(gpio_to_irq(gpio));
254 }
255 }
256 }
242 257
243 matrix_keypad_start(keypad->input_dev); 258 matrix_keypad_start(keypad->input_dev);
244 259
diff --git a/drivers/input/keyboard/twl4030_keypad.c b/drivers/input/keyboard/twl4030_keypad.c
index eeaa7acb9cfc..21d6184efa96 100644
--- a/drivers/input/keyboard/twl4030_keypad.c
+++ b/drivers/input/keyboard/twl4030_keypad.c
@@ -253,14 +253,6 @@ static irqreturn_t do_kp_irq(int irq, void *_kp)
253 u8 reg; 253 u8 reg;
254 int ret; 254 int ret;
255 255
256#ifdef CONFIG_LOCKDEP
257 /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
258 * we don't want and can't tolerate. Although it might be
259 * friendlier not to borrow this thread context...
260 */
261 local_irq_enable();
262#endif
263
264 /* Read & Clear TWL4030 pending interrupt */ 256 /* Read & Clear TWL4030 pending interrupt */
265 ret = twl4030_kpread(kp, &reg, KEYP_ISR1, 1); 257 ret = twl4030_kpread(kp, &reg, KEYP_ISR1, 1);
266 258
@@ -403,7 +395,8 @@ static int __devinit twl4030_kp_probe(struct platform_device *pdev)
403 * 395 *
404 * NOTE: we assume this host is wired to TWL4040 INT1, not INT2 ... 396 * NOTE: we assume this host is wired to TWL4040 INT1, not INT2 ...
405 */ 397 */
406 error = request_irq(kp->irq, do_kp_irq, 0, pdev->name, kp); 398 error = request_threaded_irq(kp->irq, NULL, do_kp_irq,
399 0, pdev->name, kp);
407 if (error) { 400 if (error) {
408 dev_info(kp->dbg_dev, "request_irq failed for irq no=%d\n", 401 dev_info(kp->dbg_dev, "request_irq failed for irq no=%d\n",
409 kp->irq); 402 kp->irq);
diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c
index bdde5c889035..e9069b87fde2 100644
--- a/drivers/input/misc/twl4030-pwrbutton.c
+++ b/drivers/input/misc/twl4030-pwrbutton.c
@@ -39,18 +39,8 @@ static irqreturn_t powerbutton_irq(int irq, void *_pwr)
39 int err; 39 int err;
40 u8 value; 40 u8 value;
41 41
42#ifdef CONFIG_LOCKDEP
43 /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which
44 * we don't want and can't tolerate since this is a threaded
45 * IRQ and can sleep due to the i2c reads it has to issue.
46 * Although it might be friendlier not to borrow this thread
47 * context...
48 */
49 local_irq_enable();
50#endif
51
52 err = twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &value, 42 err = twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &value,
53 STS_HW_CONDITIONS); 43 STS_HW_CONDITIONS);
54 if (!err) { 44 if (!err) {
55 input_report_key(pwr, KEY_POWER, value & PWR_PWRON_IRQ); 45 input_report_key(pwr, KEY_POWER, value & PWR_PWRON_IRQ);
56 input_sync(pwr); 46 input_sync(pwr);
@@ -80,7 +70,7 @@ static int __devinit twl4030_pwrbutton_probe(struct platform_device *pdev)
80 pwr->phys = "twl4030_pwrbutton/input0"; 70 pwr->phys = "twl4030_pwrbutton/input0";
81 pwr->dev.parent = &pdev->dev; 71 pwr->dev.parent = &pdev->dev;
82 72
83 err = request_irq(irq, powerbutton_irq, 73 err = request_threaded_irq(irq, NULL, powerbutton_irq,
84 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, 74 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
85 "twl4030_pwrbutton", pwr); 75 "twl4030_pwrbutton", pwr);
86 if (err < 0) { 76 if (err < 0) {
diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c
index 38da6ab04384..c0afb71a3a6d 100644
--- a/drivers/input/misc/wistron_btns.c
+++ b/drivers/input/misc/wistron_btns.c
@@ -1328,7 +1328,7 @@ static struct platform_driver wistron_driver = {
1328 .driver = { 1328 .driver = {
1329 .name = "wistron-bios", 1329 .name = "wistron-bios",
1330 .owner = THIS_MODULE, 1330 .owner = THIS_MODULE,
1331#if CONFIG_PM 1331#ifdef CONFIG_PM
1332 .pm = &wistron_pm_ops, 1332 .pm = &wistron_pm_ops,
1333#endif 1333#endif
1334 }, 1334 },
diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig
index 3feeb3af8abd..c714ca2407f8 100644
--- a/drivers/input/mouse/Kconfig
+++ b/drivers/input/mouse/Kconfig
@@ -70,7 +70,7 @@ config MOUSE_PS2_SYNAPTICS
70config MOUSE_PS2_LIFEBOOK 70config MOUSE_PS2_LIFEBOOK
71 bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED 71 bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED
72 default y 72 default y
73 depends on MOUSE_PS2 && X86 73 depends on MOUSE_PS2 && X86 && DMI
74 help 74 help
75 Say Y here if you have a Fujitsu B-series Lifebook PS/2 75 Say Y here if you have a Fujitsu B-series Lifebook PS/2
76 TouchScreen connected to your system. 76 TouchScreen connected to your system.
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c
index b146237266d8..90be30e93556 100644
--- a/drivers/input/mouse/hgpk.c
+++ b/drivers/input/mouse/hgpk.c
@@ -427,7 +427,6 @@ static void hgpk_recalib_work(struct work_struct *work)
427 427
428static int hgpk_register(struct psmouse *psmouse) 428static int hgpk_register(struct psmouse *psmouse)
429{ 429{
430 struct input_dev *dev = psmouse->dev;
431 int err; 430 int err;
432 431
433 /* register handlers */ 432 /* register handlers */
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c
index 2e6bdfea0165..6d7aa10d10f0 100644
--- a/drivers/input/mouse/lifebook.c
+++ b/drivers/input/mouse/lifebook.c
@@ -44,7 +44,6 @@ static int lifebook_set_6byte_proto(const struct dmi_system_id *d)
44} 44}
45 45
46static const struct dmi_system_id __initconst lifebook_dmi_table[] = { 46static const struct dmi_system_id __initconst lifebook_dmi_table[] = {
47#if defined(CONFIG_DMI) && defined(CONFIG_X86)
48 { 47 {
49 /* FLORA-ie 55mi */ 48 /* FLORA-ie 55mi */
50 .matches = { 49 .matches = {
@@ -118,7 +117,6 @@ static const struct dmi_system_id __initconst lifebook_dmi_table[] = {
118 }, 117 },
119 }, 118 },
120 { } 119 { }
121#endif
122}; 120};
123 121
124void __init lifebook_module_init(void) 122void __init lifebook_module_init(void)
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index fd0bc094616a..401ac6b6edd4 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -1137,7 +1137,10 @@ static void psmouse_cleanup(struct serio *serio)
1137 if (psmouse->cleanup) 1137 if (psmouse->cleanup)
1138 psmouse->cleanup(psmouse); 1138 psmouse->cleanup(psmouse);
1139 1139
1140 psmouse_reset(psmouse); 1140/*
1141 * Reset the mouse to defaults (bare PS/2 protocol).
1142 */
1143 ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
1141 1144
1142/* 1145/*
1143 * Some boxes, such as HP nx7400, get terribly confused if mouse 1146 * Some boxes, such as HP nx7400, get terribly confused if mouse
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
index 0236f0d5fd91..e0f30186d513 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -284,13 +284,7 @@ static void serio_handle_event(void)
284 284
285 mutex_lock(&serio_mutex); 285 mutex_lock(&serio_mutex);
286 286
287 /* 287 while ((event = serio_get_event())) {
288 * Note that we handle only one event here to give swsusp
289 * a chance to freeze kseriod thread. Serio events should
290 * be pretty rare so we are not concerned about taking
291 * performance hit.
292 */
293 if ((event = serio_get_event())) {
294 288
295 switch (event->type) { 289 switch (event->type) {
296 case SERIO_REGISTER_PORT: 290 case SERIO_REGISTER_PORT:
@@ -380,10 +374,9 @@ static struct serio *serio_get_pending_child(struct serio *parent)
380 374
381static int serio_thread(void *nothing) 375static int serio_thread(void *nothing)
382{ 376{
383 set_freezable();
384 do { 377 do {
385 serio_handle_event(); 378 serio_handle_event();
386 wait_event_freezable(serio_wait, 379 wait_event_interruptible(serio_wait,
387 kthread_should_stop() || !list_empty(&serio_event_list)); 380 kthread_should_stop() || !list_empty(&serio_event_list));
388 } while (!kthread_should_stop()); 381 } while (!kthread_should_stop());
389 382
diff --git a/drivers/lguest/segments.c b/drivers/lguest/segments.c
index 951c57b0a7e0..ede46581351a 100644
--- a/drivers/lguest/segments.c
+++ b/drivers/lguest/segments.c
@@ -179,8 +179,10 @@ void load_guest_gdt_entry(struct lg_cpu *cpu, u32 num, u32 lo, u32 hi)
179 * We assume the Guest has the same number of GDT entries as the 179 * We assume the Guest has the same number of GDT entries as the
180 * Host, otherwise we'd have to dynamically allocate the Guest GDT. 180 * Host, otherwise we'd have to dynamically allocate the Guest GDT.
181 */ 181 */
182 if (num >= ARRAY_SIZE(cpu->arch.gdt)) 182 if (num >= ARRAY_SIZE(cpu->arch.gdt)) {
183 kill_guest(cpu, "too many gdt entries %i", num); 183 kill_guest(cpu, "too many gdt entries %i", num);
184 return;
185 }
184 186
185 /* Set it up, then fix it. */ 187 /* Set it up, then fix it. */
186 cpu->arch.gdt[num].a = lo; 188 cpu->arch.gdt[num].a = lo;
diff --git a/drivers/md/md.c b/drivers/md/md.c
index f4f5f82f9f53..dd3dfe42d5a9 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -386,7 +386,9 @@ static void mddev_put(mddev_t *mddev)
386 if (!atomic_dec_and_lock(&mddev->active, &all_mddevs_lock)) 386 if (!atomic_dec_and_lock(&mddev->active, &all_mddevs_lock))
387 return; 387 return;
388 if (!mddev->raid_disks && list_empty(&mddev->disks) && 388 if (!mddev->raid_disks && list_empty(&mddev->disks) &&
389 !mddev->hold_active) { 389 mddev->ctime == 0 && !mddev->hold_active) {
390 /* Array is not configured at all, and not held active,
391 * so destroy it */
390 list_del(&mddev->all_mddevs); 392 list_del(&mddev->all_mddevs);
391 if (mddev->gendisk) { 393 if (mddev->gendisk) {
392 /* we did a probe so need to clean up. 394 /* we did a probe so need to clean up.
@@ -4355,7 +4357,7 @@ static int do_md_run(mddev_t * mddev)
4355 mddev->barriers_work = 1; 4357 mddev->barriers_work = 1;
4356 mddev->ok_start_degraded = start_dirty_degraded; 4358 mddev->ok_start_degraded = start_dirty_degraded;
4357 4359
4358 if (start_readonly) 4360 if (start_readonly && mddev->ro == 0)
4359 mddev->ro = 2; /* read-only, but switch on first write */ 4361 mddev->ro = 2; /* read-only, but switch on first write */
4360 4362
4361 err = mddev->pers->run(mddev); 4363 err = mddev->pers->run(mddev);
@@ -4419,33 +4421,6 @@ static int do_md_run(mddev_t * mddev)
4419 4421
4420 set_capacity(disk, mddev->array_sectors); 4422 set_capacity(disk, mddev->array_sectors);
4421 4423
4422 /* If there is a partially-recovered drive we need to
4423 * start recovery here. If we leave it to md_check_recovery,
4424 * it will remove the drives and not do the right thing
4425 */
4426 if (mddev->degraded && !mddev->sync_thread) {
4427 int spares = 0;
4428 list_for_each_entry(rdev, &mddev->disks, same_set)
4429 if (rdev->raid_disk >= 0 &&
4430 !test_bit(In_sync, &rdev->flags) &&
4431 !test_bit(Faulty, &rdev->flags))
4432 /* complete an interrupted recovery */
4433 spares++;
4434 if (spares && mddev->pers->sync_request) {
4435 mddev->recovery = 0;
4436 set_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
4437 mddev->sync_thread = md_register_thread(md_do_sync,
4438 mddev,
4439 "resync");
4440 if (!mddev->sync_thread) {
4441 printk(KERN_ERR "%s: could not start resync"
4442 " thread...\n",
4443 mdname(mddev));
4444 /* leave the spares where they are, it shouldn't hurt */
4445 mddev->recovery = 0;
4446 }
4447 }
4448 }
4449 md_wakeup_thread(mddev->thread); 4424 md_wakeup_thread(mddev->thread);
4450 md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */ 4425 md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */
4451 4426
@@ -5262,6 +5237,10 @@ static int set_array_info(mddev_t * mddev, mdu_array_info_t *info)
5262 mddev->minor_version = info->minor_version; 5237 mddev->minor_version = info->minor_version;
5263 mddev->patch_version = info->patch_version; 5238 mddev->patch_version = info->patch_version;
5264 mddev->persistent = !info->not_persistent; 5239 mddev->persistent = !info->not_persistent;
5240 /* ensure mddev_put doesn't delete this now that there
5241 * is some minimal configuration.
5242 */
5243 mddev->ctime = get_seconds();
5265 return 0; 5244 return 0;
5266 } 5245 }
5267 mddev->major_version = MD_MAJOR_VERSION; 5246 mddev->major_version = MD_MAJOR_VERSION;
@@ -6494,10 +6473,11 @@ void md_do_sync(mddev_t *mddev)
6494 mddev->curr_resync = 2; 6473 mddev->curr_resync = 2;
6495 6474
6496 try_again: 6475 try_again:
6497 if (kthread_should_stop()) { 6476 if (kthread_should_stop())
6498 set_bit(MD_RECOVERY_INTR, &mddev->recovery); 6477 set_bit(MD_RECOVERY_INTR, &mddev->recovery);
6478
6479 if (test_bit(MD_RECOVERY_INTR, &mddev->recovery))
6499 goto skip; 6480 goto skip;
6500 }
6501 for_each_mddev(mddev2, tmp) { 6481 for_each_mddev(mddev2, tmp) {
6502 if (mddev2 == mddev) 6482 if (mddev2 == mddev)
6503 continue; 6483 continue;
diff --git a/drivers/media/dvb/firewire/firedtv-fw.c b/drivers/media/dvb/firewire/firedtv-fw.c
index fe44789ab037..6223bf01efe9 100644
--- a/drivers/media/dvb/firewire/firedtv-fw.c
+++ b/drivers/media/dvb/firewire/firedtv-fw.c
@@ -202,14 +202,8 @@ static void handle_fcp(struct fw_card *card, struct fw_request *request,
202 unsigned long flags; 202 unsigned long flags;
203 int su; 203 int su;
204 204
205 if ((tcode != TCODE_WRITE_QUADLET_REQUEST && 205 if (length < 2 || (((u8 *)payload)[0] & 0xf0) != 0)
206 tcode != TCODE_WRITE_BLOCK_REQUEST) ||
207 offset != CSR_REGISTER_BASE + CSR_FCP_RESPONSE ||
208 length == 0 ||
209 (((u8 *)payload)[0] & 0xf0) != 0) {
210 fw_send_response(card, request, RCODE_TYPE_ERROR);
211 return; 206 return;
212 }
213 207
214 su = ((u8 *)payload)[1] & 0x7; 208 su = ((u8 *)payload)[1] & 0x7;
215 209
@@ -230,10 +224,8 @@ static void handle_fcp(struct fw_card *card, struct fw_request *request,
230 } 224 }
231 spin_unlock_irqrestore(&node_list_lock, flags); 225 spin_unlock_irqrestore(&node_list_lock, flags);
232 226
233 if (fdtv) { 227 if (fdtv)
234 avc_recv(fdtv, payload, length); 228 avc_recv(fdtv, payload, length);
235 fw_send_response(card, request, RCODE_COMPLETE);
236 }
237} 229}
238 230
239static struct fw_address_handler fcp_handler = { 231static struct fw_address_handler fcp_handler = {
diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c
index efba7021948a..3d5f40cd69df 100644
--- a/drivers/message/i2o/i2o_config.c
+++ b/drivers/message/i2o/i2o_config.c
@@ -40,8 +40,7 @@
40 40
41#define SG_TABLESIZE 30 41#define SG_TABLESIZE 30
42 42
43static int i2o_cfg_ioctl(struct inode *, struct file *, unsigned int, 43static long i2o_cfg_ioctl(struct file *, unsigned int, unsigned long);
44 unsigned long);
45 44
46static spinlock_t i2o_config_lock; 45static spinlock_t i2o_config_lock;
47 46
@@ -751,7 +750,7 @@ static long i2o_cfg_compat_ioctl(struct file *file, unsigned cmd,
751 lock_kernel(); 750 lock_kernel();
752 switch (cmd) { 751 switch (cmd) {
753 case I2OGETIOPS: 752 case I2OGETIOPS:
754 ret = i2o_cfg_ioctl(NULL, file, cmd, arg); 753 ret = i2o_cfg_ioctl(file, cmd, arg);
755 break; 754 break;
756 case I2OPASSTHRU32: 755 case I2OPASSTHRU32:
757 ret = i2o_cfg_passthru32(file, cmd, arg); 756 ret = i2o_cfg_passthru32(file, cmd, arg);
@@ -984,11 +983,11 @@ out:
984/* 983/*
985 * IOCTL Handler 984 * IOCTL Handler
986 */ 985 */
987static int i2o_cfg_ioctl(struct inode *inode, struct file *fp, unsigned int cmd, 986static long i2o_cfg_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
988 unsigned long arg)
989{ 987{
990 int ret; 988 int ret;
991 989
990 lock_kernel();
992 switch (cmd) { 991 switch (cmd) {
993 case I2OGETIOPS: 992 case I2OGETIOPS:
994 ret = i2o_cfg_getiops(arg); 993 ret = i2o_cfg_getiops(arg);
@@ -1044,7 +1043,7 @@ static int i2o_cfg_ioctl(struct inode *inode, struct file *fp, unsigned int cmd,
1044 osm_debug("unknown ioctl called!\n"); 1043 osm_debug("unknown ioctl called!\n");
1045 ret = -EINVAL; 1044 ret = -EINVAL;
1046 } 1045 }
1047 1046 unlock_kernel();
1048 return ret; 1047 return ret;
1049} 1048}
1050 1049
@@ -1118,7 +1117,7 @@ static int cfg_release(struct inode *inode, struct file *file)
1118static const struct file_operations config_fops = { 1117static const struct file_operations config_fops = {
1119 .owner = THIS_MODULE, 1118 .owner = THIS_MODULE,
1120 .llseek = no_llseek, 1119 .llseek = no_llseek,
1121 .ioctl = i2o_cfg_ioctl, 1120 .unlocked_ioctl = i2o_cfg_ioctl,
1122#ifdef CONFIG_COMPAT 1121#ifdef CONFIG_COMPAT
1123 .compat_ioctl = i2o_cfg_compat_ioctl, 1122 .compat_ioctl = i2o_cfg_compat_ioctl,
1124#endif 1123#endif
diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
index 20d29bafc9f5..9df9a5ad38f9 100644
--- a/drivers/mfd/twl4030-irq.c
+++ b/drivers/mfd/twl4030-irq.c
@@ -568,12 +568,12 @@ static void twl4030_sih_do_edge(struct work_struct *work)
568 568
569 bytes[byte] &= ~(0x03 << off); 569 bytes[byte] &= ~(0x03 << off);
570 570
571 spin_lock_irq(&d->lock); 571 raw_spin_lock_irq(&d->lock);
572 if (d->status & IRQ_TYPE_EDGE_RISING) 572 if (d->status & IRQ_TYPE_EDGE_RISING)
573 bytes[byte] |= BIT(off + 1); 573 bytes[byte] |= BIT(off + 1);
574 if (d->status & IRQ_TYPE_EDGE_FALLING) 574 if (d->status & IRQ_TYPE_EDGE_FALLING)
575 bytes[byte] |= BIT(off + 0); 575 bytes[byte] |= BIT(off + 0);
576 spin_unlock_irq(&d->lock); 576 raw_spin_unlock_irq(&d->lock);
577 577
578 edge_change &= ~BIT(i); 578 edge_change &= ~BIT(i);
579 } 579 }
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index fbc231153e55..77cf0901a441 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -56,6 +56,7 @@ static const char version[] =
56#include <linux/errno.h> 56#include <linux/errno.h>
57#include <linux/netdevice.h> 57#include <linux/netdevice.h>
58#include <linux/etherdevice.h> 58#include <linux/etherdevice.h>
59#include <linux/if_ether.h>
59#include <linux/skbuff.h> 60#include <linux/skbuff.h>
60#include <linux/slab.h> 61#include <linux/slab.h>
61#include <linux/init.h> 62#include <linux/init.h>
@@ -734,8 +735,7 @@ static void init_82586_mem(struct net_device *dev)
734 memcpy_toio(lp->base, init_words + 5, sizeof(init_words) - 10); 735 memcpy_toio(lp->base, init_words + 5, sizeof(init_words) - 10);
735 736
736 /* Fill in the station address. */ 737 /* Fill in the station address. */
737 memcpy_toio(lp->base+SA_OFFSET, dev->dev_addr, 738 memcpy_toio(lp->base+SA_OFFSET, dev->dev_addr, ETH_ALEN);
738 sizeof(dev->dev_addr));
739 739
740 /* The Tx-block list is written as needed. We just set up the values. */ 740 /* The Tx-block list is written as needed. We just set up the values. */
741 lp->tx_cmd_link = IDLELOOP + 4; 741 lp->tx_cmd_link = IDLELOOP + 4;
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index e58a65391ad2..dd9a09c72dff 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2346,6 +2346,7 @@ config GELIC_NET
2346 2346
2347config GELIC_WIRELESS 2347config GELIC_WIRELESS
2348 bool "PS3 Wireless support" 2348 bool "PS3 Wireless support"
2349 depends on WLAN
2349 depends on GELIC_NET 2350 depends on GELIC_NET
2350 select WIRELESS_EXT 2351 select WIRELESS_EXT
2351 help 2352 help
@@ -2358,6 +2359,7 @@ config GELIC_WIRELESS
2358config GELIC_WIRELESS_OLD_PSK_INTERFACE 2359config GELIC_WIRELESS_OLD_PSK_INTERFACE
2359 bool "PS3 Wireless private PSK interface (OBSOLETE)" 2360 bool "PS3 Wireless private PSK interface (OBSOLETE)"
2360 depends on GELIC_WIRELESS 2361 depends on GELIC_WIRELESS
2362 select WEXT_PRIV
2361 help 2363 help
2362 This option retains the obsolete private interface to pass 2364 This option retains the obsolete private interface to pass
2363 the PSK from user space programs to the driver. The PSK 2365 the PSK from user space programs to the driver. The PSK
diff --git a/drivers/net/arm/Kconfig b/drivers/net/arm/Kconfig
index c37ee9e6b67b..39e1c0d39476 100644
--- a/drivers/net/arm/Kconfig
+++ b/drivers/net/arm/Kconfig
@@ -68,6 +68,7 @@ config W90P910_ETH
68 tristate "Nuvoton w90p910 Ethernet support" 68 tristate "Nuvoton w90p910 Ethernet support"
69 depends on ARM && ARCH_W90X900 69 depends on ARM && ARCH_W90X900
70 select PHYLIB 70 select PHYLIB
71 select MII
71 help 72 help
72 Say Y here if you want to use built-in Ethernet ports 73 Say Y here if you want to use built-in Ethernet ports
73 on w90p910 processor. 74 on w90p910 processor.
diff --git a/drivers/net/benet/be.h b/drivers/net/benet/be.h
index 9e56014d27ed..9fd8e5ecd5d7 100644
--- a/drivers/net/benet/be.h
+++ b/drivers/net/benet/be.h
@@ -275,6 +275,7 @@ struct be_adapter {
275 u32 tx_fc; /* Tx flow control */ 275 u32 tx_fc; /* Tx flow control */
276 int link_speed; 276 int link_speed;
277 u8 port_type; 277 u8 port_type;
278 u8 transceiver;
278}; 279};
279 280
280extern const struct ethtool_ops be_ethtool_ops; 281extern const struct ethtool_ops be_ethtool_ops;
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c
index 1b68bd98dc0c..102ade134165 100644
--- a/drivers/net/benet/be_cmds.c
+++ b/drivers/net/benet/be_cmds.c
@@ -1479,6 +1479,41 @@ err:
1479 return status; 1479 return status;
1480} 1480}
1481 1481
1482int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num,
1483 u8 loopback_type, u8 enable)
1484{
1485 struct be_mcc_wrb *wrb;
1486 struct be_cmd_req_set_lmode *req;
1487 int status;
1488
1489 spin_lock_bh(&adapter->mcc_lock);
1490
1491 wrb = wrb_from_mccq(adapter);
1492 if (!wrb) {
1493 status = -EBUSY;
1494 goto err;
1495 }
1496
1497 req = embedded_payload(wrb);
1498
1499 be_wrb_hdr_prepare(wrb, sizeof(*req), true, 0,
1500 OPCODE_LOWLEVEL_SET_LOOPBACK_MODE);
1501
1502 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_LOWLEVEL,
1503 OPCODE_LOWLEVEL_SET_LOOPBACK_MODE,
1504 sizeof(*req));
1505
1506 req->src_port = port_num;
1507 req->dest_port = port_num;
1508 req->loopback_type = loopback_type;
1509 req->loopback_state = enable;
1510
1511 status = be_mcc_notify_wait(adapter);
1512err:
1513 spin_unlock_bh(&adapter->mcc_lock);
1514 return status;
1515}
1516
1482int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num, 1517int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num,
1483 u32 loopback_type, u32 pkt_size, u32 num_pkts, u64 pattern) 1518 u32 loopback_type, u32 pkt_size, u32 num_pkts, u64 pattern)
1484{ 1519{
@@ -1501,6 +1536,7 @@ int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num,
1501 1536
1502 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_LOWLEVEL, 1537 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_LOWLEVEL,
1503 OPCODE_LOWLEVEL_LOOPBACK_TEST, sizeof(*req)); 1538 OPCODE_LOWLEVEL_LOOPBACK_TEST, sizeof(*req));
1539 req->hdr.timeout = 4;
1504 1540
1505 req->pattern = cpu_to_le64(pattern); 1541 req->pattern = cpu_to_le64(pattern);
1506 req->src_port = cpu_to_le32(port_num); 1542 req->src_port = cpu_to_le32(port_num);
diff --git a/drivers/net/benet/be_cmds.h b/drivers/net/benet/be_cmds.h
index 92b87ef156ed..c002b8391b4d 100644
--- a/drivers/net/benet/be_cmds.h
+++ b/drivers/net/benet/be_cmds.h
@@ -155,6 +155,7 @@ struct be_mcc_mailbox {
155 155
156#define OPCODE_LOWLEVEL_HOST_DDR_DMA 17 156#define OPCODE_LOWLEVEL_HOST_DDR_DMA 17
157#define OPCODE_LOWLEVEL_LOOPBACK_TEST 18 157#define OPCODE_LOWLEVEL_LOOPBACK_TEST 18
158#define OPCODE_LOWLEVEL_SET_LOOPBACK_MODE 19
158 159
159struct be_cmd_req_hdr { 160struct be_cmd_req_hdr {
160 u8 opcode; /* dword 0 */ 161 u8 opcode; /* dword 0 */
@@ -821,6 +822,19 @@ struct be_cmd_resp_loopback_test {
821 u32 ticks_compl; 822 u32 ticks_compl;
822}; 823};
823 824
825struct be_cmd_req_set_lmode {
826 struct be_cmd_req_hdr hdr;
827 u8 src_port;
828 u8 dest_port;
829 u8 loopback_type;
830 u8 loopback_state;
831};
832
833struct be_cmd_resp_set_lmode {
834 struct be_cmd_resp_hdr resp_hdr;
835 u8 rsvd0[4];
836};
837
824/********************** DDR DMA test *********************/ 838/********************** DDR DMA test *********************/
825struct be_cmd_req_ddrdma_test { 839struct be_cmd_req_ddrdma_test {
826 struct be_cmd_req_hdr hdr; 840 struct be_cmd_req_hdr hdr;
@@ -912,3 +926,5 @@ extern int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num,
912 u32 num_pkts, u64 pattern); 926 u32 num_pkts, u64 pattern);
913extern int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern, 927extern int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern,
914 u32 byte_cnt, struct be_dma_mem *cmd); 928 u32 byte_cnt, struct be_dma_mem *cmd);
929extern int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num,
930 u8 loopback_type, u8 enable);
diff --git a/drivers/net/benet/be_ethtool.c b/drivers/net/benet/be_ethtool.c
index 298b92cbd689..5d001c4deac1 100644
--- a/drivers/net/benet/be_ethtool.c
+++ b/drivers/net/benet/be_ethtool.c
@@ -118,6 +118,7 @@ static const char et_self_tests[][ETH_GSTRING_LEN] = {
118#define BE_MAC_LOOPBACK 0x0 118#define BE_MAC_LOOPBACK 0x0
119#define BE_PHY_LOOPBACK 0x1 119#define BE_PHY_LOOPBACK 0x1
120#define BE_ONE_PORT_EXT_LOOPBACK 0x2 120#define BE_ONE_PORT_EXT_LOOPBACK 0x2
121#define BE_NO_LOOPBACK 0xff
121 122
122static void 123static void
123be_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) 124be_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
@@ -339,28 +340,50 @@ static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
339 340
340 status = be_cmd_read_port_type(adapter, adapter->port_num, 341 status = be_cmd_read_port_type(adapter, adapter->port_num,
341 &connector); 342 &connector);
342 switch (connector) { 343 if (!status) {
343 case 7: 344 switch (connector) {
344 ecmd->port = PORT_FIBRE; 345 case 7:
345 break; 346 ecmd->port = PORT_FIBRE;
346 default: 347 ecmd->transceiver = XCVR_EXTERNAL;
347 ecmd->port = PORT_TP; 348 break;
348 break; 349 case 0:
350 ecmd->port = PORT_TP;
351 ecmd->transceiver = XCVR_EXTERNAL;
352 break;
353 default:
354 ecmd->port = PORT_TP;
355 ecmd->transceiver = XCVR_INTERNAL;
356 break;
357 }
358 } else {
359 ecmd->port = PORT_AUI;
360 ecmd->transceiver = XCVR_INTERNAL;
349 } 361 }
350 362
351 /* Save for future use */ 363 /* Save for future use */
352 adapter->link_speed = ecmd->speed; 364 adapter->link_speed = ecmd->speed;
353 adapter->port_type = ecmd->port; 365 adapter->port_type = ecmd->port;
366 adapter->transceiver = ecmd->transceiver;
354 } else { 367 } else {
355 ecmd->speed = adapter->link_speed; 368 ecmd->speed = adapter->link_speed;
356 ecmd->port = adapter->port_type; 369 ecmd->port = adapter->port_type;
370 ecmd->transceiver = adapter->transceiver;
357 } 371 }
358 372
359 ecmd->duplex = DUPLEX_FULL; 373 ecmd->duplex = DUPLEX_FULL;
360 ecmd->autoneg = AUTONEG_DISABLE; 374 ecmd->autoneg = AUTONEG_DISABLE;
361 ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_TP);
362 ecmd->phy_address = adapter->port_num; 375 ecmd->phy_address = adapter->port_num;
363 ecmd->transceiver = XCVR_INTERNAL; 376 switch (ecmd->port) {
377 case PORT_FIBRE:
378 ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
379 break;
380 case PORT_TP:
381 ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_TP);
382 break;
383 case PORT_AUI:
384 ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_AUI);
385 break;
386 }
364 387
365 return 0; 388 return 0;
366} 389}
@@ -489,6 +512,19 @@ err:
489 return ret; 512 return ret;
490} 513}
491 514
515static u64 be_loopback_test(struct be_adapter *adapter, u8 loopback_type,
516 u64 *status)
517{
518 be_cmd_set_loopback(adapter, adapter->port_num,
519 loopback_type, 1);
520 *status = be_cmd_loopback_test(adapter, adapter->port_num,
521 loopback_type, 1500,
522 2, 0xabc);
523 be_cmd_set_loopback(adapter, adapter->port_num,
524 BE_NO_LOOPBACK, 1);
525 return *status;
526}
527
492static void 528static void
493be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data) 529be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data)
494{ 530{
@@ -497,23 +533,18 @@ be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data)
497 memset(data, 0, sizeof(u64) * ETHTOOL_TESTS_NUM); 533 memset(data, 0, sizeof(u64) * ETHTOOL_TESTS_NUM);
498 534
499 if (test->flags & ETH_TEST_FL_OFFLINE) { 535 if (test->flags & ETH_TEST_FL_OFFLINE) {
500 data[0] = be_cmd_loopback_test(adapter, adapter->port_num, 536 if (be_loopback_test(adapter, BE_MAC_LOOPBACK,
501 BE_MAC_LOOPBACK, 1500, 537 &data[0]) != 0) {
502 2, 0xabc);
503 if (data[0] != 0)
504 test->flags |= ETH_TEST_FL_FAILED; 538 test->flags |= ETH_TEST_FL_FAILED;
505 539 }
506 data[1] = be_cmd_loopback_test(adapter, adapter->port_num, 540 if (be_loopback_test(adapter, BE_PHY_LOOPBACK,
507 BE_PHY_LOOPBACK, 1500, 541 &data[1]) != 0) {
508 2, 0xabc);
509 if (data[1] != 0)
510 test->flags |= ETH_TEST_FL_FAILED; 542 test->flags |= ETH_TEST_FL_FAILED;
511 543 }
512 data[2] = be_cmd_loopback_test(adapter, adapter->port_num, 544 if (be_loopback_test(adapter, BE_ONE_PORT_EXT_LOOPBACK,
513 BE_ONE_PORT_EXT_LOOPBACK, 545 &data[2]) != 0) {
514 1500, 2, 0xabc);
515 if (data[2] != 0)
516 test->flags |= ETH_TEST_FL_FAILED; 546 test->flags |= ETH_TEST_FL_FAILED;
547 }
517 548
518 data[3] = be_test_ddr_dma(adapter); 549 data[3] = be_test_ddr_dma(adapter);
519 if (data[3] != 0) 550 if (data[3] != 0)
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 77ba13520d87..306c2b8165e2 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -7593,6 +7593,8 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
7593 if (bp->cnic_eth_dev.drv_state & CNIC_DRV_STATE_REGD) { 7593 if (bp->cnic_eth_dev.drv_state & CNIC_DRV_STATE_REGD) {
7594 bnx2x_set_iscsi_eth_mac_addr(bp, 1); 7594 bnx2x_set_iscsi_eth_mac_addr(bp, 1);
7595 bp->cnic_flags |= BNX2X_CNIC_FLAG_MAC_SET; 7595 bp->cnic_flags |= BNX2X_CNIC_FLAG_MAC_SET;
7596 bnx2x_init_sb(bp, bp->cnic_sb, bp->cnic_sb_mapping,
7597 CNIC_SB_ID(bp));
7596 } 7598 }
7597 mutex_unlock(&bp->cnic_mutex); 7599 mutex_unlock(&bp->cnic_mutex);
7598#endif 7600#endif
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
index 0fb7a4964e75..822f586d72af 100644
--- a/drivers/net/bonding/bond_3ad.c
+++ b/drivers/net/bonding/bond_3ad.c
@@ -1580,7 +1580,7 @@ static void ad_agg_selection_logic(struct aggregator *agg)
1580 // check if any partner replys 1580 // check if any partner replys
1581 if (best->is_individual) { 1581 if (best->is_individual) {
1582 pr_warning("%s: Warning: No 802.3ad response from the link partner for any adapters in the bond\n", 1582 pr_warning("%s: Warning: No 802.3ad response from the link partner for any adapters in the bond\n",
1583 best->slave->dev->master->name); 1583 best->slave ? best->slave->dev->master->name : "NULL");
1584 } 1584 }
1585 1585
1586 best->is_active = 1; 1586 best->is_active = 1;
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index e0620d084644..8bd3c9f17532 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -143,7 +143,6 @@ void gfar_start(struct net_device *dev);
143static void gfar_clear_exact_match(struct net_device *dev); 143static void gfar_clear_exact_match(struct net_device *dev);
144static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr); 144static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr);
145static int gfar_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 145static int gfar_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
146u16 gfar_select_queue(struct net_device *dev, struct sk_buff *skb);
147 146
148MODULE_AUTHOR("Freescale Semiconductor, Inc"); 147MODULE_AUTHOR("Freescale Semiconductor, Inc");
149MODULE_DESCRIPTION("Gianfar Ethernet Driver"); 148MODULE_DESCRIPTION("Gianfar Ethernet Driver");
@@ -455,7 +454,6 @@ static const struct net_device_ops gfar_netdev_ops = {
455 .ndo_set_multicast_list = gfar_set_multi, 454 .ndo_set_multicast_list = gfar_set_multi,
456 .ndo_tx_timeout = gfar_timeout, 455 .ndo_tx_timeout = gfar_timeout,
457 .ndo_do_ioctl = gfar_ioctl, 456 .ndo_do_ioctl = gfar_ioctl,
458 .ndo_select_queue = gfar_select_queue,
459 .ndo_get_stats = gfar_get_stats, 457 .ndo_get_stats = gfar_get_stats,
460 .ndo_vlan_rx_register = gfar_vlan_rx_register, 458 .ndo_vlan_rx_register = gfar_vlan_rx_register,
461 .ndo_set_mac_address = eth_mac_addr, 459 .ndo_set_mac_address = eth_mac_addr,
@@ -506,10 +504,6 @@ static inline int gfar_uses_fcb(struct gfar_private *priv)
506 return priv->vlgrp || priv->rx_csum_enable; 504 return priv->vlgrp || priv->rx_csum_enable;
507} 505}
508 506
509u16 gfar_select_queue(struct net_device *dev, struct sk_buff *skb)
510{
511 return skb_get_queue_mapping(skb);
512}
513static void free_tx_pointers(struct gfar_private *priv) 507static void free_tx_pointers(struct gfar_private *priv)
514{ 508{
515 int i = 0; 509 int i = 0;
@@ -2470,10 +2464,11 @@ static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb,
2470 fcb = (struct rxfcb *)skb->data; 2464 fcb = (struct rxfcb *)skb->data;
2471 2465
2472 /* Remove the FCB from the skb */ 2466 /* Remove the FCB from the skb */
2473 skb_set_queue_mapping(skb, fcb->rq);
2474 /* Remove the padded bytes, if there are any */ 2467 /* Remove the padded bytes, if there are any */
2475 if (amount_pull) 2468 if (amount_pull) {
2469 skb_record_rx_queue(skb, fcb->rq);
2476 skb_pull(skb, amount_pull); 2470 skb_pull(skb, amount_pull);
2471 }
2477 2472
2478 if (priv->rx_csum_enable) 2473 if (priv->rx_csum_enable)
2479 gfar_rx_checksum(skb, fcb); 2474 gfar_rx_checksum(skb, fcb);
@@ -2554,7 +2549,7 @@ int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue, int rx_work_limit)
2554 /* Remove the FCS from the packet length */ 2549 /* Remove the FCS from the packet length */
2555 skb_put(skb, pkt_len); 2550 skb_put(skb, pkt_len);
2556 rx_queue->stats.rx_bytes += pkt_len; 2551 rx_queue->stats.rx_bytes += pkt_len;
2557 2552 skb_record_rx_queue(skb, rx_queue->qindex);
2558 gfar_process_frame(dev, skb, amount_pull); 2553 gfar_process_frame(dev, skb, amount_pull);
2559 2554
2560 } else { 2555 } else {
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 090a6d3af112..052c74091d91 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -87,6 +87,7 @@ History:
87#include <linux/module.h> 87#include <linux/module.h>
88#include <linux/netdevice.h> 88#include <linux/netdevice.h>
89#include <linux/etherdevice.h> 89#include <linux/etherdevice.h>
90#include <linux/if_ether.h>
90#include <linux/skbuff.h> 91#include <linux/skbuff.h>
91#include <linux/bitops.h> 92#include <linux/bitops.h>
92 93
@@ -988,7 +989,7 @@ static int __devinit ibmlana_init_one(struct device *kdev)
988 989
989 /* copy out MAC address */ 990 /* copy out MAC address */
990 991
991 for (z = 0; z < sizeof(dev->dev_addr); z++) 992 for (z = 0; z < ETH_ALEN; z++)
992 dev->dev_addr[z] = inb(dev->base_addr + MACADDRPROM + z); 993 dev->dev_addr[z] = inb(dev->base_addr + MACADDRPROM + z);
993 994
994 /* print config */ 995 /* print config */
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c
index e8e9e9194a88..c505b50d1fa3 100644
--- a/drivers/net/igb/e1000_82575.c
+++ b/drivers/net/igb/e1000_82575.c
@@ -1096,9 +1096,7 @@ static s32 igb_setup_serdes_link_82575(struct e1000_hw *hw)
1096 hw_dbg("Configuring Autoneg:PCS_LCTL=0x%08X\n", reg); 1096 hw_dbg("Configuring Autoneg:PCS_LCTL=0x%08X\n", reg);
1097 } else { 1097 } else {
1098 /* Set PCS register for forced link */ 1098 /* Set PCS register for forced link */
1099 reg |= E1000_PCS_LCTL_FSD | /* Force Speed */ 1099 reg |= E1000_PCS_LCTL_FSD; /* Force Speed */
1100 E1000_PCS_LCTL_FORCE_LINK | /* Force Link */
1101 E1000_PCS_LCTL_FLV_LINK_UP; /* Force link value up */
1102 1100
1103 hw_dbg("Configuring Forced Link:PCS_LCTL=0x%08X\n", reg); 1101 hw_dbg("Configuring Forced Link:PCS_LCTL=0x%08X\n", reg);
1104 } 1102 }
diff --git a/drivers/net/igb/e1000_phy.c b/drivers/net/igb/e1000_phy.c
index 5c9d73e9bb8d..3670a66401b8 100644
--- a/drivers/net/igb/e1000_phy.c
+++ b/drivers/net/igb/e1000_phy.c
@@ -457,15 +457,6 @@ s32 igb_copper_link_setup_82580(struct e1000_hw *hw)
457 phy_data |= I82580_CFG_ENABLE_DOWNSHIFT; 457 phy_data |= I82580_CFG_ENABLE_DOWNSHIFT;
458 458
459 ret_val = phy->ops.write_reg(hw, I82580_CFG_REG, phy_data); 459 ret_val = phy->ops.write_reg(hw, I82580_CFG_REG, phy_data);
460 if (ret_val)
461 goto out;
462
463 /* Set number of link attempts before downshift */
464 ret_val = phy->ops.read_reg(hw, I82580_CTRL_REG, &phy_data);
465 if (ret_val)
466 goto out;
467 phy_data &= ~I82580_CTRL_DOWNSHIFT_MASK;
468 ret_val = phy->ops.write_reg(hw, I82580_CTRL_REG, phy_data);
469 460
470out: 461out:
471 return ret_val; 462 return ret_val;
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c
index ac9d5272650d..f771a6c08777 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -1795,7 +1795,7 @@ static int igb_wol_exclusion(struct igb_adapter *adapter,
1795 /* dual port cards only support WoL on port A from now on 1795 /* dual port cards only support WoL on port A from now on
1796 * unless it was enabled in the eeprom for port B 1796 * unless it was enabled in the eeprom for port B
1797 * so exclude FUNC_1 ports from having WoL enabled */ 1797 * so exclude FUNC_1 ports from having WoL enabled */
1798 if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1 && 1798 if ((rd32(E1000_STATUS) & E1000_STATUS_FUNC_MASK) &&
1799 !adapter->eeprom_wol) { 1799 !adapter->eeprom_wol) {
1800 wol->supported = 0; 1800 wol->supported = 0;
1801 break; 1801 break;
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 78963a0e128d..933c64ff2465 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -1306,13 +1306,8 @@ void igb_reset(struct igb_adapter *adapter)
1306 hwm = min(((pba << 10) * 9 / 10), 1306 hwm = min(((pba << 10) * 9 / 10),
1307 ((pba << 10) - 2 * adapter->max_frame_size)); 1307 ((pba << 10) - 2 * adapter->max_frame_size));
1308 1308
1309 if (mac->type < e1000_82576) { 1309 fc->high_water = hwm & 0xFFF0; /* 16-byte granularity */
1310 fc->high_water = hwm & 0xFFF8; /* 8-byte granularity */ 1310 fc->low_water = fc->high_water - 16;
1311 fc->low_water = fc->high_water - 8;
1312 } else {
1313 fc->high_water = hwm & 0xFFF0; /* 16-byte granularity */
1314 fc->low_water = fc->high_water - 16;
1315 }
1316 fc->pause_time = 0xFFFF; 1311 fc->pause_time = 0xFFFF;
1317 fc->send_xon = 1; 1312 fc->send_xon = 1;
1318 fc->current_mode = fc->requested_mode; 1313 fc->current_mode = fc->requested_mode;
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
index e9dd95f136aa..0dbd0320023a 100644
--- a/drivers/net/igbvf/netdev.c
+++ b/drivers/net/igbvf/netdev.c
@@ -2763,7 +2763,8 @@ static int __devinit igbvf_probe(struct pci_dev *pdev,
2763 err = hw->mac.ops.reset_hw(hw); 2763 err = hw->mac.ops.reset_hw(hw);
2764 if (err) { 2764 if (err) {
2765 dev_info(&pdev->dev, 2765 dev_info(&pdev->dev,
2766 "PF still in reset state, assigning new address\n"); 2766 "PF still in reset state, assigning new address."
2767 " Is the PF interface up?\n");
2767 random_ether_addr(hw->mac.addr); 2768 random_ether_addr(hw->mac.addr);
2768 } else { 2769 } else {
2769 err = hw->mac.ops.read_mac_addr(hw); 2770 err = hw->mac.ops.read_mac_addr(hw);
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index bd64387563f0..1a2ea621e371 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -4373,6 +4373,11 @@ static int ixgbe_resume(struct pci_dev *pdev)
4373 4373
4374 pci_set_power_state(pdev, PCI_D0); 4374 pci_set_power_state(pdev, PCI_D0);
4375 pci_restore_state(pdev); 4375 pci_restore_state(pdev);
4376 /*
4377 * pci_restore_state clears dev->state_saved so call
4378 * pci_save_state to restore it.
4379 */
4380 pci_save_state(pdev);
4376 4381
4377 err = pci_enable_device_mem(pdev); 4382 err = pci_enable_device_mem(pdev);
4378 if (err) { 4383 if (err) {
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index dcc67a35e8f2..e154677ff706 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -45,6 +45,7 @@ static const char *const version =
45#include <linux/crc32.h> 45#include <linux/crc32.h>
46#include <linux/netdevice.h> 46#include <linux/netdevice.h>
47#include <linux/etherdevice.h> 47#include <linux/etherdevice.h>
48#include <linux/if_ether.h>
48#include <linux/skbuff.h> 49#include <linux/skbuff.h>
49#include <linux/spinlock.h> 50#include <linux/spinlock.h>
50#include <linux/moduleparam.h> 51#include <linux/moduleparam.h>
@@ -1765,7 +1766,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
1765 1766
1766 /* if the ethernet address is not valid, force to 00:00:00:00:00:00 */ 1767 /* if the ethernet address is not valid, force to 00:00:00:00:00:00 */
1767 if (!is_valid_ether_addr(dev->perm_addr)) 1768 if (!is_valid_ether_addr(dev->perm_addr))
1768 memset(dev->dev_addr, 0, sizeof(dev->dev_addr)); 1769 memset(dev->dev_addr, 0, ETH_ALEN);
1769 1770
1770 if (pcnet32_debug & NETIF_MSG_PROBE) { 1771 if (pcnet32_debug & NETIF_MSG_PROBE) {
1771 printk(" %pM", dev->dev_addr); 1772 printk(" %pM", dev->dev_addr);
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index f983e3b507cc..103e8b0e2a0d 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -741,14 +741,14 @@ static int efx_probe_port(struct efx_nic *efx)
741 741
742 EFX_LOG(efx, "create port\n"); 742 EFX_LOG(efx, "create port\n");
743 743
744 if (phy_flash_cfg)
745 efx->phy_mode = PHY_MODE_SPECIAL;
746
744 /* Connect up MAC/PHY operations table */ 747 /* Connect up MAC/PHY operations table */
745 rc = efx->type->probe_port(efx); 748 rc = efx->type->probe_port(efx);
746 if (rc) 749 if (rc)
747 goto err; 750 goto err;
748 751
749 if (phy_flash_cfg)
750 efx->phy_mode = PHY_MODE_SPECIAL;
751
752 /* Sanity check MAC address */ 752 /* Sanity check MAC address */
753 if (is_valid_ether_addr(efx->mac_address)) { 753 if (is_valid_ether_addr(efx->mac_address)) {
754 memcpy(efx->net_dev->dev_addr, efx->mac_address, ETH_ALEN); 754 memcpy(efx->net_dev->dev_addr, efx->mac_address, ETH_ALEN);
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c
index 17afcd26e870..9d009c46e962 100644
--- a/drivers/net/sfc/falcon.c
+++ b/drivers/net/sfc/falcon.c
@@ -925,6 +925,7 @@ static int falcon_probe_port(struct efx_nic *efx)
925 925
926static void falcon_remove_port(struct efx_nic *efx) 926static void falcon_remove_port(struct efx_nic *efx)
927{ 927{
928 efx->phy_op->remove(efx);
928 efx_nic_free_buffer(efx, &efx->stats_buffer); 929 efx_nic_free_buffer(efx, &efx->stats_buffer);
929} 930}
930 931
diff --git a/drivers/net/sfc/falcon_xmac.c b/drivers/net/sfc/falcon_xmac.c
index 3da933f8f079..8ccab2c67a20 100644
--- a/drivers/net/sfc/falcon_xmac.c
+++ b/drivers/net/sfc/falcon_xmac.c
@@ -111,16 +111,12 @@ static void falcon_mask_status_intr(struct efx_nic *efx, bool enable)
111 efx_writeo(efx, &reg, FR_AB_XM_MGT_INT_MASK); 111 efx_writeo(efx, &reg, FR_AB_XM_MGT_INT_MASK);
112} 112}
113 113
114/* Get status of XAUI link */ 114static bool falcon_xgxs_link_ok(struct efx_nic *efx)
115static bool falcon_xaui_link_ok(struct efx_nic *efx)
116{ 115{
117 efx_oword_t reg; 116 efx_oword_t reg;
118 bool align_done, link_ok = false; 117 bool align_done, link_ok = false;
119 int sync_status; 118 int sync_status;
120 119
121 if (LOOPBACK_INTERNAL(efx))
122 return true;
123
124 /* Read link status */ 120 /* Read link status */
125 efx_reado(efx, &reg, FR_AB_XX_CORE_STAT); 121 efx_reado(efx, &reg, FR_AB_XX_CORE_STAT);
126 122
@@ -135,14 +131,24 @@ static bool falcon_xaui_link_ok(struct efx_nic *efx)
135 EFX_SET_OWORD_FIELD(reg, FRF_AB_XX_DISPERR, FFE_AB_XX_STAT_ALL_LANES); 131 EFX_SET_OWORD_FIELD(reg, FRF_AB_XX_DISPERR, FFE_AB_XX_STAT_ALL_LANES);
136 efx_writeo(efx, &reg, FR_AB_XX_CORE_STAT); 132 efx_writeo(efx, &reg, FR_AB_XX_CORE_STAT);
137 133
138 /* If the link is up, then check the phy side of the xaui link */
139 if (efx->link_state.up && link_ok)
140 if (efx->mdio.mmds & (1 << MDIO_MMD_PHYXS))
141 link_ok = efx_mdio_phyxgxs_lane_sync(efx);
142
143 return link_ok; 134 return link_ok;
144} 135}
145 136
137static bool falcon_xmac_link_ok(struct efx_nic *efx)
138{
139 /*
140 * Check MAC's XGXS link status except when using XGMII loopback
141 * which bypasses the XGXS block.
142 * If possible, check PHY's XGXS link status except when using
143 * MAC loopback.
144 */
145 return (efx->loopback_mode == LOOPBACK_XGMII ||
146 falcon_xgxs_link_ok(efx)) &&
147 (!(efx->mdio.mmds & (1 << MDIO_MMD_PHYXS)) ||
148 LOOPBACK_INTERNAL(efx) ||
149 efx_mdio_phyxgxs_lane_sync(efx));
150}
151
146void falcon_reconfigure_xmac_core(struct efx_nic *efx) 152void falcon_reconfigure_xmac_core(struct efx_nic *efx)
147{ 153{
148 unsigned int max_frame_len; 154 unsigned int max_frame_len;
@@ -245,9 +251,9 @@ static void falcon_reconfigure_xgxs_core(struct efx_nic *efx)
245 251
246 252
247/* Try to bring up the Falcon side of the Falcon-Phy XAUI link */ 253/* Try to bring up the Falcon side of the Falcon-Phy XAUI link */
248static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries) 254static bool falcon_xmac_link_ok_retry(struct efx_nic *efx, int tries)
249{ 255{
250 bool mac_up = falcon_xaui_link_ok(efx); 256 bool mac_up = falcon_xmac_link_ok(efx);
251 257
252 if (LOOPBACK_MASK(efx) & LOOPBACKS_EXTERNAL(efx) & LOOPBACKS_WS || 258 if (LOOPBACK_MASK(efx) & LOOPBACKS_EXTERNAL(efx) & LOOPBACKS_WS ||
253 efx_phy_mode_disabled(efx->phy_mode)) 259 efx_phy_mode_disabled(efx->phy_mode))
@@ -261,7 +267,7 @@ static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries)
261 falcon_reset_xaui(efx); 267 falcon_reset_xaui(efx);
262 udelay(200); 268 udelay(200);
263 269
264 mac_up = falcon_xaui_link_ok(efx); 270 mac_up = falcon_xmac_link_ok(efx);
265 --tries; 271 --tries;
266 } 272 }
267 273
@@ -272,7 +278,7 @@ static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries)
272 278
273static bool falcon_xmac_check_fault(struct efx_nic *efx) 279static bool falcon_xmac_check_fault(struct efx_nic *efx)
274{ 280{
275 return !falcon_check_xaui_link_up(efx, 5); 281 return !falcon_xmac_link_ok_retry(efx, 5);
276} 282}
277 283
278static int falcon_reconfigure_xmac(struct efx_nic *efx) 284static int falcon_reconfigure_xmac(struct efx_nic *efx)
@@ -284,7 +290,7 @@ static int falcon_reconfigure_xmac(struct efx_nic *efx)
284 290
285 falcon_reconfigure_mac_wrapper(efx); 291 falcon_reconfigure_mac_wrapper(efx);
286 292
287 efx->xmac_poll_required = !falcon_check_xaui_link_up(efx, 5); 293 efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 5);
288 falcon_mask_status_intr(efx, true); 294 falcon_mask_status_intr(efx, true);
289 295
290 return 0; 296 return 0;
@@ -357,7 +363,7 @@ void falcon_poll_xmac(struct efx_nic *efx)
357 return; 363 return;
358 364
359 falcon_mask_status_intr(efx, false); 365 falcon_mask_status_intr(efx, false);
360 efx->xmac_poll_required = !falcon_check_xaui_link_up(efx, 1); 366 efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 1);
361 falcon_mask_status_intr(efx, true); 367 falcon_mask_status_intr(efx, true);
362} 368}
363 369
diff --git a/drivers/net/sfc/mcdi_phy.c b/drivers/net/sfc/mcdi_phy.c
index 0e1bcc5a0d52..eb694af7a473 100644
--- a/drivers/net/sfc/mcdi_phy.c
+++ b/drivers/net/sfc/mcdi_phy.c
@@ -304,31 +304,47 @@ static u32 mcdi_to_ethtool_media(u32 media)
304 304
305static int efx_mcdi_phy_probe(struct efx_nic *efx) 305static int efx_mcdi_phy_probe(struct efx_nic *efx)
306{ 306{
307 struct efx_mcdi_phy_cfg *phy_cfg; 307 struct efx_mcdi_phy_cfg *phy_data;
308 u8 outbuf[MC_CMD_GET_LINK_OUT_LEN];
309 u32 caps;
308 int rc; 310 int rc;
309 311
310 /* TODO: Move phy_data initialisation to 312 /* Initialise and populate phy_data */
311 * phy_op->probe/remove, rather than init/fini */ 313 phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
312 phy_cfg = kzalloc(sizeof(*phy_cfg), GFP_KERNEL); 314 if (phy_data == NULL)
313 if (phy_cfg == NULL) { 315 return -ENOMEM;
314 rc = -ENOMEM; 316
315 goto fail_alloc; 317 rc = efx_mcdi_get_phy_cfg(efx, phy_data);
316 }
317 rc = efx_mcdi_get_phy_cfg(efx, phy_cfg);
318 if (rc != 0) 318 if (rc != 0)
319 goto fail; 319 goto fail;
320 320
321 efx->phy_type = phy_cfg->type; 321 /* Read initial link advertisement */
322 BUILD_BUG_ON(MC_CMD_GET_LINK_IN_LEN != 0);
323 rc = efx_mcdi_rpc(efx, MC_CMD_GET_LINK, NULL, 0,
324 outbuf, sizeof(outbuf), NULL);
325 if (rc)
326 goto fail;
327
328 /* Fill out nic state */
329 efx->phy_data = phy_data;
330 efx->phy_type = phy_data->type;
322 331
323 efx->mdio_bus = phy_cfg->channel; 332 efx->mdio_bus = phy_data->channel;
324 efx->mdio.prtad = phy_cfg->port; 333 efx->mdio.prtad = phy_data->port;
325 efx->mdio.mmds = phy_cfg->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22); 334 efx->mdio.mmds = phy_data->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22);
326 efx->mdio.mode_support = 0; 335 efx->mdio.mode_support = 0;
327 if (phy_cfg->mmd_mask & (1 << MC_CMD_MMD_CLAUSE22)) 336 if (phy_data->mmd_mask & (1 << MC_CMD_MMD_CLAUSE22))
328 efx->mdio.mode_support |= MDIO_SUPPORTS_C22; 337 efx->mdio.mode_support |= MDIO_SUPPORTS_C22;
329 if (phy_cfg->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22)) 338 if (phy_data->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22))
330 efx->mdio.mode_support |= MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; 339 efx->mdio.mode_support |= MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22;
331 340
341 caps = MCDI_DWORD(outbuf, GET_LINK_OUT_CAP);
342 if (caps & (1 << MC_CMD_PHY_CAP_AN_LBN))
343 efx->link_advertising =
344 mcdi_to_ethtool_cap(phy_data->media, caps);
345 else
346 phy_data->forced_cap = caps;
347
332 /* Assert that we can map efx -> mcdi loopback modes */ 348 /* Assert that we can map efx -> mcdi loopback modes */
333 BUILD_BUG_ON(LOOPBACK_NONE != MC_CMD_LOOPBACK_NONE); 349 BUILD_BUG_ON(LOOPBACK_NONE != MC_CMD_LOOPBACK_NONE);
334 BUILD_BUG_ON(LOOPBACK_DATA != MC_CMD_LOOPBACK_DATA); 350 BUILD_BUG_ON(LOOPBACK_DATA != MC_CMD_LOOPBACK_DATA);
@@ -365,46 +381,6 @@ static int efx_mcdi_phy_probe(struct efx_nic *efx)
365 * but by convention we don't */ 381 * but by convention we don't */
366 efx->loopback_modes &= ~(1 << LOOPBACK_NONE); 382 efx->loopback_modes &= ~(1 << LOOPBACK_NONE);
367 383
368 kfree(phy_cfg);
369
370 return 0;
371
372fail:
373 kfree(phy_cfg);
374fail_alloc:
375 return rc;
376}
377
378static int efx_mcdi_phy_init(struct efx_nic *efx)
379{
380 struct efx_mcdi_phy_cfg *phy_data;
381 u8 outbuf[MC_CMD_GET_LINK_OUT_LEN];
382 u32 caps;
383 int rc;
384
385 phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
386 if (phy_data == NULL)
387 return -ENOMEM;
388
389 rc = efx_mcdi_get_phy_cfg(efx, phy_data);
390 if (rc != 0)
391 goto fail;
392
393 efx->phy_data = phy_data;
394
395 BUILD_BUG_ON(MC_CMD_GET_LINK_IN_LEN != 0);
396 rc = efx_mcdi_rpc(efx, MC_CMD_GET_LINK, NULL, 0,
397 outbuf, sizeof(outbuf), NULL);
398 if (rc)
399 goto fail;
400
401 caps = MCDI_DWORD(outbuf, GET_LINK_OUT_CAP);
402 if (caps & (1 << MC_CMD_PHY_CAP_AN_LBN))
403 efx->link_advertising =
404 mcdi_to_ethtool_cap(phy_data->media, caps);
405 else
406 phy_data->forced_cap = caps;
407
408 return 0; 384 return 0;
409 385
410fail: 386fail:
@@ -504,7 +480,7 @@ static bool efx_mcdi_phy_poll(struct efx_nic *efx)
504 return !efx_link_state_equal(&efx->link_state, &old_state); 480 return !efx_link_state_equal(&efx->link_state, &old_state);
505} 481}
506 482
507static void efx_mcdi_phy_fini(struct efx_nic *efx) 483static void efx_mcdi_phy_remove(struct efx_nic *efx)
508{ 484{
509 struct efx_mcdi_phy_data *phy_data = efx->phy_data; 485 struct efx_mcdi_phy_data *phy_data = efx->phy_data;
510 486
@@ -586,10 +562,11 @@ static int efx_mcdi_phy_set_settings(struct efx_nic *efx, struct ethtool_cmd *ec
586 562
587struct efx_phy_operations efx_mcdi_phy_ops = { 563struct efx_phy_operations efx_mcdi_phy_ops = {
588 .probe = efx_mcdi_phy_probe, 564 .probe = efx_mcdi_phy_probe,
589 .init = efx_mcdi_phy_init, 565 .init = efx_port_dummy_op_int,
590 .reconfigure = efx_mcdi_phy_reconfigure, 566 .reconfigure = efx_mcdi_phy_reconfigure,
591 .poll = efx_mcdi_phy_poll, 567 .poll = efx_mcdi_phy_poll,
592 .fini = efx_mcdi_phy_fini, 568 .fini = efx_port_dummy_op_void,
569 .remove = efx_mcdi_phy_remove,
593 .get_settings = efx_mcdi_phy_get_settings, 570 .get_settings = efx_mcdi_phy_get_settings,
594 .set_settings = efx_mcdi_phy_set_settings, 571 .set_settings = efx_mcdi_phy_set_settings,
595 .run_tests = NULL, 572 .run_tests = NULL,
diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h
index 34c381f009b7..d5aab5b3fa06 100644
--- a/drivers/net/sfc/net_driver.h
+++ b/drivers/net/sfc/net_driver.h
@@ -524,6 +524,7 @@ struct efx_phy_operations {
524 int (*probe) (struct efx_nic *efx); 524 int (*probe) (struct efx_nic *efx);
525 int (*init) (struct efx_nic *efx); 525 int (*init) (struct efx_nic *efx);
526 void (*fini) (struct efx_nic *efx); 526 void (*fini) (struct efx_nic *efx);
527 void (*remove) (struct efx_nic *efx);
527 int (*reconfigure) (struct efx_nic *efx); 528 int (*reconfigure) (struct efx_nic *efx);
528 bool (*poll) (struct efx_nic *efx); 529 bool (*poll) (struct efx_nic *efx);
529 void (*get_settings) (struct efx_nic *efx, 530 void (*get_settings) (struct efx_nic *efx,
diff --git a/drivers/net/sfc/nic.c b/drivers/net/sfc/nic.c
index a577be227862..db44224ed2ca 100644
--- a/drivers/net/sfc/nic.c
+++ b/drivers/net/sfc/nic.c
@@ -1576,6 +1576,8 @@ void efx_nic_init_common(struct efx_nic *efx)
1576 EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_SOFT_EVT_EN, 1); 1576 EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_SOFT_EVT_EN, 1);
1577 /* Prefetch threshold 2 => fetch when descriptor cache half empty */ 1577 /* Prefetch threshold 2 => fetch when descriptor cache half empty */
1578 EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_PREF_THRESHOLD, 2); 1578 EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_PREF_THRESHOLD, 2);
1579 /* Disable hardware watchdog which can misfire */
1580 EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_PREF_WD_TMR, 0x3fffff);
1579 /* Squash TX of packets of 16 bytes or less */ 1581 /* Squash TX of packets of 16 bytes or less */
1580 if (efx_nic_rev(efx) >= EFX_REV_FALCON_B0) 1582 if (efx_nic_rev(efx) >= EFX_REV_FALCON_B0)
1581 EFX_SET_OWORD_FIELD(temp, FRF_BZ_TX_FLUSH_MIN_LEN_EN, 1); 1583 EFX_SET_OWORD_FIELD(temp, FRF_BZ_TX_FLUSH_MIN_LEN_EN, 1);
diff --git a/drivers/net/sfc/qt202x_phy.c b/drivers/net/sfc/qt202x_phy.c
index 3800fc791b2f..ff8f0a417fa3 100644
--- a/drivers/net/sfc/qt202x_phy.c
+++ b/drivers/net/sfc/qt202x_phy.c
@@ -33,6 +33,9 @@
33#define PCS_FW_HEARTBEAT_REG 0xd7ee 33#define PCS_FW_HEARTBEAT_REG 0xd7ee
34#define PCS_FW_HEARTB_LBN 0 34#define PCS_FW_HEARTB_LBN 0
35#define PCS_FW_HEARTB_WIDTH 8 35#define PCS_FW_HEARTB_WIDTH 8
36#define PCS_FW_PRODUCT_CODE_1 0xd7f0
37#define PCS_FW_VERSION_1 0xd7f3
38#define PCS_FW_BUILD_1 0xd7f6
36#define PCS_UC8051_STATUS_REG 0xd7fd 39#define PCS_UC8051_STATUS_REG 0xd7fd
37#define PCS_UC_STATUS_LBN 0 40#define PCS_UC_STATUS_LBN 0
38#define PCS_UC_STATUS_WIDTH 8 41#define PCS_UC_STATUS_WIDTH 8
@@ -52,14 +55,24 @@ void falcon_qt202x_set_led(struct efx_nic *p, int led, int mode)
52 55
53struct qt202x_phy_data { 56struct qt202x_phy_data {
54 enum efx_phy_mode phy_mode; 57 enum efx_phy_mode phy_mode;
58 bool bug17190_in_bad_state;
59 unsigned long bug17190_timer;
60 u32 firmware_ver;
55}; 61};
56 62
57#define QT2022C2_MAX_RESET_TIME 500 63#define QT2022C2_MAX_RESET_TIME 500
58#define QT2022C2_RESET_WAIT 10 64#define QT2022C2_RESET_WAIT 10
59 65
60static int qt2025c_wait_reset(struct efx_nic *efx) 66#define QT2025C_MAX_HEARTB_TIME (5 * HZ)
67#define QT2025C_HEARTB_WAIT 100
68#define QT2025C_MAX_FWSTART_TIME (25 * HZ / 10)
69#define QT2025C_FWSTART_WAIT 100
70
71#define BUG17190_INTERVAL (2 * HZ)
72
73static int qt2025c_wait_heartbeat(struct efx_nic *efx)
61{ 74{
62 unsigned long timeout = jiffies + 10 * HZ; 75 unsigned long timeout = jiffies + QT2025C_MAX_HEARTB_TIME;
63 int reg, old_counter = 0; 76 int reg, old_counter = 0;
64 77
65 /* Wait for firmware heartbeat to start */ 78 /* Wait for firmware heartbeat to start */
@@ -74,11 +87,25 @@ static int qt2025c_wait_reset(struct efx_nic *efx)
74 old_counter = counter; 87 old_counter = counter;
75 else if (counter != old_counter) 88 else if (counter != old_counter)
76 break; 89 break;
77 if (time_after(jiffies, timeout)) 90 if (time_after(jiffies, timeout)) {
91 /* Some cables have EEPROMs that conflict with the
92 * PHY's on-board EEPROM so it cannot load firmware */
93 EFX_ERR(efx, "If an SFP+ direct attach cable is"
94 " connected, please check that it complies"
95 " with the SFP+ specification\n");
78 return -ETIMEDOUT; 96 return -ETIMEDOUT;
79 msleep(10); 97 }
98 msleep(QT2025C_HEARTB_WAIT);
80 } 99 }
81 100
101 return 0;
102}
103
104static int qt2025c_wait_fw_status_good(struct efx_nic *efx)
105{
106 unsigned long timeout = jiffies + QT2025C_MAX_FWSTART_TIME;
107 int reg;
108
82 /* Wait for firmware status to look good */ 109 /* Wait for firmware status to look good */
83 for (;;) { 110 for (;;) {
84 reg = efx_mdio_read(efx, MDIO_MMD_PCS, PCS_UC8051_STATUS_REG); 111 reg = efx_mdio_read(efx, MDIO_MMD_PCS, PCS_UC8051_STATUS_REG);
@@ -90,7 +117,178 @@ static int qt2025c_wait_reset(struct efx_nic *efx)
90 break; 117 break;
91 if (time_after(jiffies, timeout)) 118 if (time_after(jiffies, timeout))
92 return -ETIMEDOUT; 119 return -ETIMEDOUT;
120 msleep(QT2025C_FWSTART_WAIT);
121 }
122
123 return 0;
124}
125
126static void qt2025c_restart_firmware(struct efx_nic *efx)
127{
128 /* Restart microcontroller execution of firmware from RAM */
129 efx_mdio_write(efx, 3, 0xe854, 0x00c0);
130 efx_mdio_write(efx, 3, 0xe854, 0x0040);
131 msleep(50);
132}
133
134static int qt2025c_wait_reset(struct efx_nic *efx)
135{
136 int rc;
137
138 rc = qt2025c_wait_heartbeat(efx);
139 if (rc != 0)
140 return rc;
141
142 rc = qt2025c_wait_fw_status_good(efx);
143 if (rc == -ETIMEDOUT) {
144 /* Bug 17689: occasionally heartbeat starts but firmware status
145 * code never progresses beyond 0x00. Try again, once, after
146 * restarting execution of the firmware image. */
147 EFX_LOG(efx, "bashing QT2025C microcontroller\n");
148 qt2025c_restart_firmware(efx);
149 rc = qt2025c_wait_heartbeat(efx);
150 if (rc != 0)
151 return rc;
152 rc = qt2025c_wait_fw_status_good(efx);
153 }
154
155 return rc;
156}
157
158static void qt2025c_firmware_id(struct efx_nic *efx)
159{
160 struct qt202x_phy_data *phy_data = efx->phy_data;
161 u8 firmware_id[9];
162 size_t i;
163
164 for (i = 0; i < sizeof(firmware_id); i++)
165 firmware_id[i] = efx_mdio_read(efx, MDIO_MMD_PCS,
166 PCS_FW_PRODUCT_CODE_1 + i);
167 EFX_INFO(efx, "QT2025C firmware %xr%d v%d.%d.%d.%d [20%02d-%02d-%02d]\n",
168 (firmware_id[0] << 8) | firmware_id[1], firmware_id[2],
169 firmware_id[3] >> 4, firmware_id[3] & 0xf,
170 firmware_id[4], firmware_id[5],
171 firmware_id[6], firmware_id[7], firmware_id[8]);
172 phy_data->firmware_ver = ((firmware_id[3] & 0xf0) << 20) |
173 ((firmware_id[3] & 0x0f) << 16) |
174 (firmware_id[4] << 8) | firmware_id[5];
175}
176
177static void qt2025c_bug17190_workaround(struct efx_nic *efx)
178{
179 struct qt202x_phy_data *phy_data = efx->phy_data;
180
181 /* The PHY can get stuck in a state where it reports PHY_XS and PMA/PMD
182 * layers up, but PCS down (no block_lock). If we notice this state
183 * persisting for a couple of seconds, we switch PMA/PMD loopback
184 * briefly on and then off again, which is normally sufficient to
185 * recover it.
186 */
187 if (efx->link_state.up ||
188 !efx_mdio_links_ok(efx, MDIO_DEVS_PMAPMD | MDIO_DEVS_PHYXS)) {
189 phy_data->bug17190_in_bad_state = false;
190 return;
191 }
192
193 if (!phy_data->bug17190_in_bad_state) {
194 phy_data->bug17190_in_bad_state = true;
195 phy_data->bug17190_timer = jiffies + BUG17190_INTERVAL;
196 return;
197 }
198
199 if (time_after_eq(jiffies, phy_data->bug17190_timer)) {
200 EFX_LOG(efx, "bashing QT2025C PMA/PMD\n");
201 efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_CTRL1,
202 MDIO_PMA_CTRL1_LOOPBACK, true);
93 msleep(100); 203 msleep(100);
204 efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_CTRL1,
205 MDIO_PMA_CTRL1_LOOPBACK, false);
206 phy_data->bug17190_timer = jiffies + BUG17190_INTERVAL;
207 }
208}
209
210static int qt2025c_select_phy_mode(struct efx_nic *efx)
211{
212 struct qt202x_phy_data *phy_data = efx->phy_data;
213 struct falcon_board *board = falcon_board(efx);
214 int reg, rc, i;
215 uint16_t phy_op_mode;
216
217 /* Only 2.0.1.0+ PHY firmware supports the more optimal SFP+
218 * Self-Configure mode. Don't attempt any switching if we encounter
219 * older firmware. */
220 if (phy_data->firmware_ver < 0x02000100)
221 return 0;
222
223 /* In general we will get optimal behaviour in "SFP+ Self-Configure"
224 * mode; however, that powers down most of the PHY when no module is
225 * present, so we must use a different mode (any fixed mode will do)
226 * to be sure that loopbacks will work. */
227 phy_op_mode = (efx->loopback_mode == LOOPBACK_NONE) ? 0x0038 : 0x0020;
228
229 /* Only change mode if really necessary */
230 reg = efx_mdio_read(efx, 1, 0xc319);
231 if ((reg & 0x0038) == phy_op_mode)
232 return 0;
233 EFX_LOG(efx, "Switching PHY to mode 0x%04x\n", phy_op_mode);
234
235 /* This sequence replicates the register writes configured in the boot
236 * EEPROM (including the differences between board revisions), except
237 * that the operating mode is changed, and the PHY is prevented from
238 * unnecessarily reloading the main firmware image again. */
239 efx_mdio_write(efx, 1, 0xc300, 0x0000);
240 /* (Note: this portion of the boot EEPROM sequence, which bit-bashes 9
241 * STOPs onto the firmware/module I2C bus to reset it, varies across
242 * board revisions, as the bus is connected to different GPIO/LED
243 * outputs on the PHY.) */
244 if (board->major == 0 && board->minor < 2) {
245 efx_mdio_write(efx, 1, 0xc303, 0x4498);
246 for (i = 0; i < 9; i++) {
247 efx_mdio_write(efx, 1, 0xc303, 0x4488);
248 efx_mdio_write(efx, 1, 0xc303, 0x4480);
249 efx_mdio_write(efx, 1, 0xc303, 0x4490);
250 efx_mdio_write(efx, 1, 0xc303, 0x4498);
251 }
252 } else {
253 efx_mdio_write(efx, 1, 0xc303, 0x0920);
254 efx_mdio_write(efx, 1, 0xd008, 0x0004);
255 for (i = 0; i < 9; i++) {
256 efx_mdio_write(efx, 1, 0xc303, 0x0900);
257 efx_mdio_write(efx, 1, 0xd008, 0x0005);
258 efx_mdio_write(efx, 1, 0xc303, 0x0920);
259 efx_mdio_write(efx, 1, 0xd008, 0x0004);
260 }
261 efx_mdio_write(efx, 1, 0xc303, 0x4900);
262 }
263 efx_mdio_write(efx, 1, 0xc303, 0x4900);
264 efx_mdio_write(efx, 1, 0xc302, 0x0004);
265 efx_mdio_write(efx, 1, 0xc316, 0x0013);
266 efx_mdio_write(efx, 1, 0xc318, 0x0054);
267 efx_mdio_write(efx, 1, 0xc319, phy_op_mode);
268 efx_mdio_write(efx, 1, 0xc31a, 0x0098);
269 efx_mdio_write(efx, 3, 0x0026, 0x0e00);
270 efx_mdio_write(efx, 3, 0x0027, 0x0013);
271 efx_mdio_write(efx, 3, 0x0028, 0xa528);
272 efx_mdio_write(efx, 1, 0xd006, 0x000a);
273 efx_mdio_write(efx, 1, 0xd007, 0x0009);
274 efx_mdio_write(efx, 1, 0xd008, 0x0004);
275 /* This additional write is not present in the boot EEPROM. It
276 * prevents the PHY's internal boot ROM doing another pointless (and
277 * slow) reload of the firmware image (the microcontroller's code
278 * memory is not affected by the microcontroller reset). */
279 efx_mdio_write(efx, 1, 0xc317, 0x00ff);
280 efx_mdio_write(efx, 1, 0xc300, 0x0002);
281 msleep(20);
282
283 /* Restart microcontroller execution of firmware from RAM */
284 qt2025c_restart_firmware(efx);
285
286 /* Wait for the microcontroller to be ready again */
287 rc = qt2025c_wait_reset(efx);
288 if (rc < 0) {
289 EFX_ERR(efx, "PHY microcontroller reset during mode switch "
290 "timed out\n");
291 return rc;
94 } 292 }
95 293
96 return 0; 294 return 0;
@@ -137,6 +335,16 @@ static int qt202x_reset_phy(struct efx_nic *efx)
137 335
138static int qt202x_phy_probe(struct efx_nic *efx) 336static int qt202x_phy_probe(struct efx_nic *efx)
139{ 337{
338 struct qt202x_phy_data *phy_data;
339
340 phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL);
341 if (!phy_data)
342 return -ENOMEM;
343 efx->phy_data = phy_data;
344 phy_data->phy_mode = efx->phy_mode;
345 phy_data->bug17190_in_bad_state = false;
346 phy_data->bug17190_timer = 0;
347
140 efx->mdio.mmds = QT202X_REQUIRED_DEVS; 348 efx->mdio.mmds = QT202X_REQUIRED_DEVS;
141 efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; 349 efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22;
142 efx->loopback_modes = QT202X_LOOPBACKS | FALCON_XMAC_LOOPBACKS; 350 efx->loopback_modes = QT202X_LOOPBACKS | FALCON_XMAC_LOOPBACKS;
@@ -145,7 +353,6 @@ static int qt202x_phy_probe(struct efx_nic *efx)
145 353
146static int qt202x_phy_init(struct efx_nic *efx) 354static int qt202x_phy_init(struct efx_nic *efx)
147{ 355{
148 struct qt202x_phy_data *phy_data;
149 u32 devid; 356 u32 devid;
150 int rc; 357 int rc;
151 358
@@ -155,17 +362,14 @@ static int qt202x_phy_init(struct efx_nic *efx)
155 return rc; 362 return rc;
156 } 363 }
157 364
158 phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL);
159 if (!phy_data)
160 return -ENOMEM;
161 efx->phy_data = phy_data;
162
163 devid = efx_mdio_read_id(efx, MDIO_MMD_PHYXS); 365 devid = efx_mdio_read_id(efx, MDIO_MMD_PHYXS);
164 EFX_INFO(efx, "PHY ID reg %x (OUI %06x model %02x revision %x)\n", 366 EFX_INFO(efx, "PHY ID reg %x (OUI %06x model %02x revision %x)\n",
165 devid, efx_mdio_id_oui(devid), efx_mdio_id_model(devid), 367 devid, efx_mdio_id_oui(devid), efx_mdio_id_model(devid),
166 efx_mdio_id_rev(devid)); 368 efx_mdio_id_rev(devid));
167 369
168 phy_data->phy_mode = efx->phy_mode; 370 if (efx->phy_type == PHY_TYPE_QT2025C)
371 qt2025c_firmware_id(efx);
372
169 return 0; 373 return 0;
170} 374}
171 375
@@ -183,6 +387,9 @@ static bool qt202x_phy_poll(struct efx_nic *efx)
183 efx->link_state.fd = true; 387 efx->link_state.fd = true;
184 efx->link_state.fc = efx->wanted_fc; 388 efx->link_state.fc = efx->wanted_fc;
185 389
390 if (efx->phy_type == PHY_TYPE_QT2025C)
391 qt2025c_bug17190_workaround(efx);
392
186 return efx->link_state.up != was_up; 393 return efx->link_state.up != was_up;
187} 394}
188 395
@@ -191,6 +398,10 @@ static int qt202x_phy_reconfigure(struct efx_nic *efx)
191 struct qt202x_phy_data *phy_data = efx->phy_data; 398 struct qt202x_phy_data *phy_data = efx->phy_data;
192 399
193 if (efx->phy_type == PHY_TYPE_QT2025C) { 400 if (efx->phy_type == PHY_TYPE_QT2025C) {
401 int rc = qt2025c_select_phy_mode(efx);
402 if (rc)
403 return rc;
404
194 /* There are several different register bits which can 405 /* There are several different register bits which can
195 * disable TX (and save power) on direct-attach cables 406 * disable TX (and save power) on direct-attach cables
196 * or optical transceivers, varying somewhat between 407 * or optical transceivers, varying somewhat between
@@ -224,7 +435,7 @@ static void qt202x_phy_get_settings(struct efx_nic *efx, struct ethtool_cmd *ecm
224 mdio45_ethtool_gset(&efx->mdio, ecmd); 435 mdio45_ethtool_gset(&efx->mdio, ecmd);
225} 436}
226 437
227static void qt202x_phy_fini(struct efx_nic *efx) 438static void qt202x_phy_remove(struct efx_nic *efx)
228{ 439{
229 /* Free the context block */ 440 /* Free the context block */
230 kfree(efx->phy_data); 441 kfree(efx->phy_data);
@@ -236,7 +447,8 @@ struct efx_phy_operations falcon_qt202x_phy_ops = {
236 .init = qt202x_phy_init, 447 .init = qt202x_phy_init,
237 .reconfigure = qt202x_phy_reconfigure, 448 .reconfigure = qt202x_phy_reconfigure,
238 .poll = qt202x_phy_poll, 449 .poll = qt202x_phy_poll,
239 .fini = qt202x_phy_fini, 450 .fini = efx_port_dummy_op_void,
451 .remove = qt202x_phy_remove,
240 .get_settings = qt202x_phy_get_settings, 452 .get_settings = qt202x_phy_get_settings,
241 .set_settings = efx_mdio_set_settings, 453 .set_settings = efx_mdio_set_settings,
242}; 454};
diff --git a/drivers/net/sfc/siena.c b/drivers/net/sfc/siena.c
index de07a4f031b2..f8c6771e66d8 100644
--- a/drivers/net/sfc/siena.c
+++ b/drivers/net/sfc/siena.c
@@ -133,6 +133,7 @@ static int siena_probe_port(struct efx_nic *efx)
133 133
134void siena_remove_port(struct efx_nic *efx) 134void siena_remove_port(struct efx_nic *efx)
135{ 135{
136 efx->phy_op->remove(efx);
136 efx_nic_free_buffer(efx, &efx->stats_buffer); 137 efx_nic_free_buffer(efx, &efx->stats_buffer);
137} 138}
138 139
diff --git a/drivers/net/sfc/tenxpress.c b/drivers/net/sfc/tenxpress.c
index ca11572a49a9..3009c297c135 100644
--- a/drivers/net/sfc/tenxpress.c
+++ b/drivers/net/sfc/tenxpress.c
@@ -202,10 +202,14 @@ static ssize_t set_phy_short_reach(struct device *dev,
202 int rc; 202 int rc;
203 203
204 rtnl_lock(); 204 rtnl_lock();
205 efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_PMA_10GBT_TXPWR, 205 if (efx->state != STATE_RUNNING) {
206 MDIO_PMA_10GBT_TXPWR_SHORT, 206 rc = -EBUSY;
207 count != 0 && *buf != '0'); 207 } else {
208 rc = efx_reconfigure_port(efx); 208 efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_PMA_10GBT_TXPWR,
209 MDIO_PMA_10GBT_TXPWR_SHORT,
210 count != 0 && *buf != '0');
211 rc = efx_reconfigure_port(efx);
212 }
209 rtnl_unlock(); 213 rtnl_unlock();
210 214
211 return rc < 0 ? rc : (ssize_t)count; 215 return rc < 0 ? rc : (ssize_t)count;
@@ -298,36 +302,62 @@ static int tenxpress_init(struct efx_nic *efx)
298 return 0; 302 return 0;
299} 303}
300 304
301static int sfx7101_phy_probe(struct efx_nic *efx) 305static int tenxpress_phy_probe(struct efx_nic *efx)
302{ 306{
303 efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS; 307 struct tenxpress_phy_data *phy_data;
304 efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; 308 int rc;
305 efx->loopback_modes = SFX7101_LOOPBACKS | FALCON_XMAC_LOOPBACKS; 309
306 return 0; 310 /* Allocate phy private storage */
307} 311 phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
312 if (!phy_data)
313 return -ENOMEM;
314 efx->phy_data = phy_data;
315 phy_data->phy_mode = efx->phy_mode;
316
317 /* Create any special files */
318 if (efx->phy_type == PHY_TYPE_SFT9001B) {
319 rc = device_create_file(&efx->pci_dev->dev,
320 &dev_attr_phy_short_reach);
321 if (rc)
322 goto fail;
323 }
324
325 if (efx->phy_type == PHY_TYPE_SFX7101) {
326 efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS;
327 efx->mdio.mode_support = MDIO_SUPPORTS_C45;
328
329 efx->loopback_modes = SFX7101_LOOPBACKS | FALCON_XMAC_LOOPBACKS;
330
331 efx->link_advertising = (ADVERTISED_TP | ADVERTISED_Autoneg |
332 ADVERTISED_10000baseT_Full);
333 } else {
334 efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS;
335 efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22;
336
337 efx->loopback_modes = (SFT9001_LOOPBACKS |
338 FALCON_XMAC_LOOPBACKS |
339 FALCON_GMAC_LOOPBACKS);
340
341 efx->link_advertising = (ADVERTISED_TP | ADVERTISED_Autoneg |
342 ADVERTISED_10000baseT_Full |
343 ADVERTISED_1000baseT_Full |
344 ADVERTISED_100baseT_Full);
345 }
308 346
309static int sft9001_phy_probe(struct efx_nic *efx)
310{
311 efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS;
312 efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22;
313 efx->loopback_modes = (SFT9001_LOOPBACKS | FALCON_XMAC_LOOPBACKS |
314 FALCON_GMAC_LOOPBACKS);
315 return 0; 347 return 0;
348
349fail:
350 kfree(efx->phy_data);
351 efx->phy_data = NULL;
352 return rc;
316} 353}
317 354
318static int tenxpress_phy_init(struct efx_nic *efx) 355static int tenxpress_phy_init(struct efx_nic *efx)
319{ 356{
320 struct tenxpress_phy_data *phy_data; 357 int rc;
321 int rc = 0;
322 358
323 falcon_board(efx)->type->init_phy(efx); 359 falcon_board(efx)->type->init_phy(efx);
324 360
325 phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL);
326 if (!phy_data)
327 return -ENOMEM;
328 efx->phy_data = phy_data;
329 phy_data->phy_mode = efx->phy_mode;
330
331 if (!(efx->phy_mode & PHY_MODE_SPECIAL)) { 361 if (!(efx->phy_mode & PHY_MODE_SPECIAL)) {
332 if (efx->phy_type == PHY_TYPE_SFT9001A) { 362 if (efx->phy_type == PHY_TYPE_SFT9001A) {
333 int reg; 363 int reg;
@@ -341,44 +371,27 @@ static int tenxpress_phy_init(struct efx_nic *efx)
341 371
342 rc = efx_mdio_wait_reset_mmds(efx, TENXPRESS_REQUIRED_DEVS); 372 rc = efx_mdio_wait_reset_mmds(efx, TENXPRESS_REQUIRED_DEVS);
343 if (rc < 0) 373 if (rc < 0)
344 goto fail; 374 return rc;
345 375
346 rc = efx_mdio_check_mmds(efx, TENXPRESS_REQUIRED_DEVS, 0); 376 rc = efx_mdio_check_mmds(efx, TENXPRESS_REQUIRED_DEVS, 0);
347 if (rc < 0) 377 if (rc < 0)
348 goto fail; 378 return rc;
349 } 379 }
350 380
351 rc = tenxpress_init(efx); 381 rc = tenxpress_init(efx);
352 if (rc < 0) 382 if (rc < 0)
353 goto fail; 383 return rc;
354 384
355 /* Initialise advertising flags */ 385 /* Reinitialise flow control settings */
356 efx->link_advertising = (ADVERTISED_TP | ADVERTISED_Autoneg |
357 ADVERTISED_10000baseT_Full);
358 if (efx->phy_type != PHY_TYPE_SFX7101)
359 efx->link_advertising |= (ADVERTISED_1000baseT_Full |
360 ADVERTISED_100baseT_Full);
361 efx_link_set_wanted_fc(efx, efx->wanted_fc); 386 efx_link_set_wanted_fc(efx, efx->wanted_fc);
362 efx_mdio_an_reconfigure(efx); 387 efx_mdio_an_reconfigure(efx);
363 388
364 if (efx->phy_type == PHY_TYPE_SFT9001B) {
365 rc = device_create_file(&efx->pci_dev->dev,
366 &dev_attr_phy_short_reach);
367 if (rc)
368 goto fail;
369 }
370
371 schedule_timeout_uninterruptible(HZ / 5); /* 200ms */ 389 schedule_timeout_uninterruptible(HZ / 5); /* 200ms */
372 390
373 /* Let XGXS and SerDes out of reset */ 391 /* Let XGXS and SerDes out of reset */
374 falcon_reset_xaui(efx); 392 falcon_reset_xaui(efx);
375 393
376 return 0; 394 return 0;
377
378 fail:
379 kfree(efx->phy_data);
380 efx->phy_data = NULL;
381 return rc;
382} 395}
383 396
384/* Perform a "special software reset" on the PHY. The caller is 397/* Perform a "special software reset" on the PHY. The caller is
@@ -589,25 +602,26 @@ static bool tenxpress_phy_poll(struct efx_nic *efx)
589 return !efx_link_state_equal(&efx->link_state, &old_state); 602 return !efx_link_state_equal(&efx->link_state, &old_state);
590} 603}
591 604
592static void tenxpress_phy_fini(struct efx_nic *efx) 605static void sfx7101_phy_fini(struct efx_nic *efx)
593{ 606{
594 int reg; 607 int reg;
595 608
609 /* Power down the LNPGA */
610 reg = (1 << PMA_PMD_LNPGA_POWERDOWN_LBN);
611 efx_mdio_write(efx, MDIO_MMD_PMAPMD, PMA_PMD_XCONTROL_REG, reg);
612
613 /* Waiting here ensures that the board fini, which can turn
614 * off the power to the PHY, won't get run until the LNPGA
615 * powerdown has been given long enough to complete. */
616 schedule_timeout_uninterruptible(LNPGA_PDOWN_WAIT); /* 200 ms */
617}
618
619static void tenxpress_phy_remove(struct efx_nic *efx)
620{
596 if (efx->phy_type == PHY_TYPE_SFT9001B) 621 if (efx->phy_type == PHY_TYPE_SFT9001B)
597 device_remove_file(&efx->pci_dev->dev, 622 device_remove_file(&efx->pci_dev->dev,
598 &dev_attr_phy_short_reach); 623 &dev_attr_phy_short_reach);
599 624
600 if (efx->phy_type == PHY_TYPE_SFX7101) {
601 /* Power down the LNPGA */
602 reg = (1 << PMA_PMD_LNPGA_POWERDOWN_LBN);
603 efx_mdio_write(efx, MDIO_MMD_PMAPMD, PMA_PMD_XCONTROL_REG, reg);
604
605 /* Waiting here ensures that the board fini, which can turn
606 * off the power to the PHY, won't get run until the LNPGA
607 * powerdown has been given long enough to complete. */
608 schedule_timeout_uninterruptible(LNPGA_PDOWN_WAIT); /* 200 ms */
609 }
610
611 kfree(efx->phy_data); 625 kfree(efx->phy_data);
612 efx->phy_data = NULL; 626 efx->phy_data = NULL;
613} 627}
@@ -819,11 +833,12 @@ static void sft9001_set_npage_adv(struct efx_nic *efx, u32 advertising)
819} 833}
820 834
821struct efx_phy_operations falcon_sfx7101_phy_ops = { 835struct efx_phy_operations falcon_sfx7101_phy_ops = {
822 .probe = sfx7101_phy_probe, 836 .probe = tenxpress_phy_probe,
823 .init = tenxpress_phy_init, 837 .init = tenxpress_phy_init,
824 .reconfigure = tenxpress_phy_reconfigure, 838 .reconfigure = tenxpress_phy_reconfigure,
825 .poll = tenxpress_phy_poll, 839 .poll = tenxpress_phy_poll,
826 .fini = tenxpress_phy_fini, 840 .fini = sfx7101_phy_fini,
841 .remove = tenxpress_phy_remove,
827 .get_settings = tenxpress_get_settings, 842 .get_settings = tenxpress_get_settings,
828 .set_settings = tenxpress_set_settings, 843 .set_settings = tenxpress_set_settings,
829 .set_npage_adv = sfx7101_set_npage_adv, 844 .set_npage_adv = sfx7101_set_npage_adv,
@@ -832,11 +847,12 @@ struct efx_phy_operations falcon_sfx7101_phy_ops = {
832}; 847};
833 848
834struct efx_phy_operations falcon_sft9001_phy_ops = { 849struct efx_phy_operations falcon_sft9001_phy_ops = {
835 .probe = sft9001_phy_probe, 850 .probe = tenxpress_phy_probe,
836 .init = tenxpress_phy_init, 851 .init = tenxpress_phy_init,
837 .reconfigure = tenxpress_phy_reconfigure, 852 .reconfigure = tenxpress_phy_reconfigure,
838 .poll = tenxpress_phy_poll, 853 .poll = tenxpress_phy_poll,
839 .fini = tenxpress_phy_fini, 854 .fini = efx_port_dummy_op_void,
855 .remove = tenxpress_phy_remove,
840 .get_settings = tenxpress_get_settings, 856 .get_settings = tenxpress_get_settings,
841 .set_settings = tenxpress_set_settings, 857 .set_settings = tenxpress_set_settings,
842 .set_npage_adv = sft9001_set_npage_adv, 858 .set_npage_adv = sft9001_set_npage_adv,
diff --git a/drivers/net/sfc/tx.c b/drivers/net/sfc/tx.c
index e669f94e821b..a8b70ef6d817 100644
--- a/drivers/net/sfc/tx.c
+++ b/drivers/net/sfc/tx.c
@@ -821,8 +821,6 @@ static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue)
821 EFX_TXQ_MASK]; 821 EFX_TXQ_MASK];
822 efx_tsoh_free(tx_queue, buffer); 822 efx_tsoh_free(tx_queue, buffer);
823 EFX_BUG_ON_PARANOID(buffer->skb); 823 EFX_BUG_ON_PARANOID(buffer->skb);
824 buffer->len = 0;
825 buffer->continuation = true;
826 if (buffer->unmap_len) { 824 if (buffer->unmap_len) {
827 unmap_addr = (buffer->dma_addr + buffer->len - 825 unmap_addr = (buffer->dma_addr + buffer->len -
828 buffer->unmap_len); 826 buffer->unmap_len);
@@ -836,6 +834,8 @@ static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue)
836 PCI_DMA_TODEVICE); 834 PCI_DMA_TODEVICE);
837 buffer->unmap_len = 0; 835 buffer->unmap_len = 0;
838 } 836 }
837 buffer->len = 0;
838 buffer->continuation = true;
839 } 839 }
840} 840}
841 841
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 01e99f22210e..2834a01bae24 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -849,13 +849,13 @@ static void tun_sock_write_space(struct sock *sk)
849 if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) 849 if (sk->sk_sleep && waitqueue_active(sk->sk_sleep))
850 wake_up_interruptible_sync(sk->sk_sleep); 850 wake_up_interruptible_sync(sk->sk_sleep);
851 851
852 tun = container_of(sk, struct tun_sock, sk)->tun; 852 tun = tun_sk(sk)->tun;
853 kill_fasync(&tun->fasync, SIGIO, POLL_OUT); 853 kill_fasync(&tun->fasync, SIGIO, POLL_OUT);
854} 854}
855 855
856static void tun_sock_destruct(struct sock *sk) 856static void tun_sock_destruct(struct sock *sk)
857{ 857{
858 free_netdev(container_of(sk, struct tun_sock, sk)->tun->dev); 858 free_netdev(tun_sk(sk)->tun->dev);
859} 859}
860 860
861static struct proto tun_proto = { 861static struct proto tun_proto = {
@@ -990,7 +990,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
990 sk->sk_write_space = tun_sock_write_space; 990 sk->sk_write_space = tun_sock_write_space;
991 sk->sk_sndbuf = INT_MAX; 991 sk->sk_sndbuf = INT_MAX;
992 992
993 container_of(sk, struct tun_sock, sk)->tun = tun; 993 tun_sk(sk)->tun = tun;
994 994
995 security_tun_dev_post_create(sk); 995 security_tun_dev_post_create(sk);
996 996
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index afaf088b72ea..41ad2f3697c7 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -1563,7 +1563,10 @@ static int ugeth_disable(struct ucc_geth_private *ugeth, enum comm_dir mode)
1563 1563
1564static void ugeth_quiesce(struct ucc_geth_private *ugeth) 1564static void ugeth_quiesce(struct ucc_geth_private *ugeth)
1565{ 1565{
1566 /* Wait for and prevent any further xmits. */ 1566 /* Prevent any further xmits, plus detach the device. */
1567 netif_device_detach(ugeth->ndev);
1568
1569 /* Wait for any current xmits to finish. */
1567 netif_tx_disable(ugeth->ndev); 1570 netif_tx_disable(ugeth->ndev);
1568 1571
1569 /* Disable the interrupt to avoid NAPI rescheduling. */ 1572 /* Disable the interrupt to avoid NAPI rescheduling. */
@@ -1577,7 +1580,7 @@ static void ugeth_activate(struct ucc_geth_private *ugeth)
1577{ 1580{
1578 napi_enable(&ugeth->napi); 1581 napi_enable(&ugeth->napi);
1579 enable_irq(ugeth->ug_info->uf_info.irq); 1582 enable_irq(ugeth->ug_info->uf_info.irq);
1580 netif_tx_wake_all_queues(ugeth->ndev); 1583 netif_device_attach(ugeth->ndev);
1581} 1584}
1582 1585
1583/* Called every time the controller might need to be made 1586/* Called every time the controller might need to be made
@@ -1648,25 +1651,28 @@ static void adjust_link(struct net_device *dev)
1648 ugeth->oldspeed = phydev->speed; 1651 ugeth->oldspeed = phydev->speed;
1649 } 1652 }
1650 1653
1651 /*
1652 * To change the MAC configuration we need to disable the
1653 * controller. To do so, we have to either grab ugeth->lock,
1654 * which is a bad idea since 'graceful stop' commands might
1655 * take quite a while, or we can quiesce driver's activity.
1656 */
1657 ugeth_quiesce(ugeth);
1658 ugeth_disable(ugeth, COMM_DIR_RX_AND_TX);
1659
1660 out_be32(&ug_regs->maccfg2, tempval);
1661 out_be32(&uf_regs->upsmr, upsmr);
1662
1663 ugeth_enable(ugeth, COMM_DIR_RX_AND_TX);
1664 ugeth_activate(ugeth);
1665
1666 if (!ugeth->oldlink) { 1654 if (!ugeth->oldlink) {
1667 new_state = 1; 1655 new_state = 1;
1668 ugeth->oldlink = 1; 1656 ugeth->oldlink = 1;
1669 } 1657 }
1658
1659 if (new_state) {
1660 /*
1661 * To change the MAC configuration we need to disable
1662 * the controller. To do so, we have to either grab
1663 * ugeth->lock, which is a bad idea since 'graceful
1664 * stop' commands might take quite a while, or we can
1665 * quiesce driver's activity.
1666 */
1667 ugeth_quiesce(ugeth);
1668 ugeth_disable(ugeth, COMM_DIR_RX_AND_TX);
1669
1670 out_be32(&ug_regs->maccfg2, tempval);
1671 out_be32(&uf_regs->upsmr, upsmr);
1672
1673 ugeth_enable(ugeth, COMM_DIR_RX_AND_TX);
1674 ugeth_activate(ugeth);
1675 }
1670 } else if (ugeth->oldlink) { 1676 } else if (ugeth->oldlink) {
1671 new_state = 1; 1677 new_state = 1;
1672 ugeth->oldlink = 0; 1678 ugeth->oldlink = 0;
@@ -3273,7 +3279,7 @@ static int ucc_geth_tx(struct net_device *dev, u8 txQ)
3273 /* Handle the transmitted buffer and release */ 3279 /* Handle the transmitted buffer and release */
3274 /* the BD to be used with the current frame */ 3280 /* the BD to be used with the current frame */
3275 3281
3276 if ((bd == ugeth->txBd[txQ]) && (netif_queue_stopped(dev) == 0)) 3282 if (bd == ugeth->txBd[txQ]) /* queue empty? */
3277 break; 3283 break;
3278 3284
3279 dev->stats.tx_packets++; 3285 dev->stats.tx_packets++;
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index 593e01f64e9b..611b80435955 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -102,6 +102,7 @@ static const int multicast_filter_limit = 32;
102#include <linux/ethtool.h> 102#include <linux/ethtool.h>
103#include <linux/crc32.h> 103#include <linux/crc32.h>
104#include <linux/bitops.h> 104#include <linux/bitops.h>
105#include <linux/workqueue.h>
105#include <asm/processor.h> /* Processor type for cache alignment. */ 106#include <asm/processor.h> /* Processor type for cache alignment. */
106#include <asm/io.h> 107#include <asm/io.h>
107#include <asm/irq.h> 108#include <asm/irq.h>
@@ -389,6 +390,7 @@ struct rhine_private {
389 struct net_device *dev; 390 struct net_device *dev;
390 struct napi_struct napi; 391 struct napi_struct napi;
391 spinlock_t lock; 392 spinlock_t lock;
393 struct work_struct reset_task;
392 394
393 /* Frequently used values: keep some adjacent for cache effect. */ 395 /* Frequently used values: keep some adjacent for cache effect. */
394 u32 quirks; 396 u32 quirks;
@@ -407,6 +409,7 @@ struct rhine_private {
407static int mdio_read(struct net_device *dev, int phy_id, int location); 409static int mdio_read(struct net_device *dev, int phy_id, int location);
408static void mdio_write(struct net_device *dev, int phy_id, int location, int value); 410static void mdio_write(struct net_device *dev, int phy_id, int location, int value);
409static int rhine_open(struct net_device *dev); 411static int rhine_open(struct net_device *dev);
412static void rhine_reset_task(struct work_struct *work);
410static void rhine_tx_timeout(struct net_device *dev); 413static void rhine_tx_timeout(struct net_device *dev);
411static netdev_tx_t rhine_start_tx(struct sk_buff *skb, 414static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
412 struct net_device *dev); 415 struct net_device *dev);
@@ -775,6 +778,8 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
775 dev->irq = pdev->irq; 778 dev->irq = pdev->irq;
776 779
777 spin_lock_init(&rp->lock); 780 spin_lock_init(&rp->lock);
781 INIT_WORK(&rp->reset_task, rhine_reset_task);
782
778 rp->mii_if.dev = dev; 783 rp->mii_if.dev = dev;
779 rp->mii_if.mdio_read = mdio_read; 784 rp->mii_if.mdio_read = mdio_read;
780 rp->mii_if.mdio_write = mdio_write; 785 rp->mii_if.mdio_write = mdio_write;
@@ -1179,22 +1184,18 @@ static int rhine_open(struct net_device *dev)
1179 return 0; 1184 return 0;
1180} 1185}
1181 1186
1182static void rhine_tx_timeout(struct net_device *dev) 1187static void rhine_reset_task(struct work_struct *work)
1183{ 1188{
1184 struct rhine_private *rp = netdev_priv(dev); 1189 struct rhine_private *rp = container_of(work, struct rhine_private,
1185 void __iomem *ioaddr = rp->base; 1190 reset_task);
1186 1191 struct net_device *dev = rp->dev;
1187 printk(KERN_WARNING "%s: Transmit timed out, status %4.4x, PHY status "
1188 "%4.4x, resetting...\n",
1189 dev->name, ioread16(ioaddr + IntrStatus),
1190 mdio_read(dev, rp->mii_if.phy_id, MII_BMSR));
1191 1192
1192 /* protect against concurrent rx interrupts */ 1193 /* protect against concurrent rx interrupts */
1193 disable_irq(rp->pdev->irq); 1194 disable_irq(rp->pdev->irq);
1194 1195
1195 napi_disable(&rp->napi); 1196 napi_disable(&rp->napi);
1196 1197
1197 spin_lock(&rp->lock); 1198 spin_lock_bh(&rp->lock);
1198 1199
1199 /* clear all descriptors */ 1200 /* clear all descriptors */
1200 free_tbufs(dev); 1201 free_tbufs(dev);
@@ -1206,7 +1207,7 @@ static void rhine_tx_timeout(struct net_device *dev)
1206 rhine_chip_reset(dev); 1207 rhine_chip_reset(dev);
1207 init_registers(dev); 1208 init_registers(dev);
1208 1209
1209 spin_unlock(&rp->lock); 1210 spin_unlock_bh(&rp->lock);
1210 enable_irq(rp->pdev->irq); 1211 enable_irq(rp->pdev->irq);
1211 1212
1212 dev->trans_start = jiffies; 1213 dev->trans_start = jiffies;
@@ -1214,6 +1215,19 @@ static void rhine_tx_timeout(struct net_device *dev)
1214 netif_wake_queue(dev); 1215 netif_wake_queue(dev);
1215} 1216}
1216 1217
1218static void rhine_tx_timeout(struct net_device *dev)
1219{
1220 struct rhine_private *rp = netdev_priv(dev);
1221 void __iomem *ioaddr = rp->base;
1222
1223 printk(KERN_WARNING "%s: Transmit timed out, status %4.4x, PHY status "
1224 "%4.4x, resetting...\n",
1225 dev->name, ioread16(ioaddr + IntrStatus),
1226 mdio_read(dev, rp->mii_if.phy_id, MII_BMSR));
1227
1228 schedule_work(&rp->reset_task);
1229}
1230
1217static netdev_tx_t rhine_start_tx(struct sk_buff *skb, 1231static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
1218 struct net_device *dev) 1232 struct net_device *dev)
1219{ 1233{
@@ -1830,10 +1844,11 @@ static int rhine_close(struct net_device *dev)
1830 struct rhine_private *rp = netdev_priv(dev); 1844 struct rhine_private *rp = netdev_priv(dev);
1831 void __iomem *ioaddr = rp->base; 1845 void __iomem *ioaddr = rp->base;
1832 1846
1833 spin_lock_irq(&rp->lock);
1834
1835 netif_stop_queue(dev);
1836 napi_disable(&rp->napi); 1847 napi_disable(&rp->napi);
1848 cancel_work_sync(&rp->reset_task);
1849 netif_stop_queue(dev);
1850
1851 spin_lock_irq(&rp->lock);
1837 1852
1838 if (debug > 1) 1853 if (debug > 1)
1839 printk(KERN_DEBUG "%s: Shutting down ethercard, " 1854 printk(KERN_DEBUG "%s: Shutting down ethercard, "
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index f1c4b2a1e867..0fdfd58a35a1 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -4087,21 +4087,21 @@ vxge_probe(struct pci_dev *pdev, const struct pci_device_id *pre)
4087 goto _exit0; 4087 goto _exit0;
4088 } 4088 }
4089 4089
4090 if (!pci_set_dma_mask(pdev, 0xffffffffffffffffULL)) { 4090 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
4091 vxge_debug_ll_config(VXGE_TRACE, 4091 vxge_debug_ll_config(VXGE_TRACE,
4092 "%s : using 64bit DMA", __func__); 4092 "%s : using 64bit DMA", __func__);
4093 4093
4094 high_dma = 1; 4094 high_dma = 1;
4095 4095
4096 if (pci_set_consistent_dma_mask(pdev, 4096 if (pci_set_consistent_dma_mask(pdev,
4097 0xffffffffffffffffULL)) { 4097 DMA_BIT_MASK(64))) {
4098 vxge_debug_init(VXGE_ERR, 4098 vxge_debug_init(VXGE_ERR,
4099 "%s : unable to obtain 64bit DMA for " 4099 "%s : unable to obtain 64bit DMA for "
4100 "consistent allocations", __func__); 4100 "consistent allocations", __func__);
4101 ret = -ENOMEM; 4101 ret = -ENOMEM;
4102 goto _exit1; 4102 goto _exit1;
4103 } 4103 }
4104 } else if (!pci_set_dma_mask(pdev, 0xffffffffUL)) { 4104 } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
4105 vxge_debug_ll_config(VXGE_TRACE, 4105 vxge_debug_ll_config(VXGE_TRACE,
4106 "%s : using 32bit DMA", __func__); 4106 "%s : using 32bit DMA", __func__);
4107 } else { 4107 } else {
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index a4c086f069b1..e63b7c40d0ee 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -1903,17 +1903,6 @@ accept:
1903 rxs->noise = sc->ah->ah_noise_floor; 1903 rxs->noise = sc->ah->ah_noise_floor;
1904 rxs->signal = rxs->noise + rs.rs_rssi; 1904 rxs->signal = rxs->noise + rs.rs_rssi;
1905 1905
1906 /* An rssi of 35 indicates you should be able use
1907 * 54 Mbps reliably. A more elaborate scheme can be used
1908 * here but it requires a map of SNR/throughput for each
1909 * possible mode used */
1910 rxs->qual = rs.rs_rssi * 100 / 35;
1911
1912 /* rssi can be more than 35 though, anything above that
1913 * should be considered at 100% */
1914 if (rxs->qual > 100)
1915 rxs->qual = 100;
1916
1917 rxs->antenna = rs.rs_antenna; 1906 rxs->antenna = rs.rs_antenna;
1918 rxs->rate_idx = ath5k_hw_to_driver_rix(sc, rs.rs_rate); 1907 rxs->rate_idx = ath5k_hw_to_driver_rix(sc, rs.rs_rate);
1919 rxs->flag |= ath5k_rx_decrypted(sc, ds, skb, &rs); 1908 rxs->flag |= ath5k_rx_decrypted(sc, ds, skb, &rs);
@@ -2381,6 +2370,9 @@ ath5k_init(struct ath5k_softc *sc)
2381 */ 2370 */
2382 ath5k_stop_locked(sc); 2371 ath5k_stop_locked(sc);
2383 2372
2373 /* Set PHY calibration interval */
2374 ah->ah_cal_intval = ath5k_calinterval;
2375
2384 /* 2376 /*
2385 * The basic interface to setting the hardware in a good 2377 * The basic interface to setting the hardware in a good
2386 * state is ``reset''. On return the hardware is known to 2378 * state is ``reset''. On return the hardware is known to
@@ -2408,10 +2400,6 @@ ath5k_init(struct ath5k_softc *sc)
2408 2400
2409 /* Set ack to be sent at low bit-rates */ 2401 /* Set ack to be sent at low bit-rates */
2410 ath5k_hw_set_ack_bitrate_high(ah, false); 2402 ath5k_hw_set_ack_bitrate_high(ah, false);
2411
2412 /* Set PHY calibration inteval */
2413 ah->ah_cal_intval = ath5k_calinterval;
2414
2415 ret = 0; 2403 ret = 0;
2416done: 2404done:
2417 mmiowb(); 2405 mmiowb();
diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
index 71b84d91dcff..efc420cd42bf 100644
--- a/drivers/net/wireless/ath/ath9k/mac.c
+++ b/drivers/net/wireless/ath/ath9k/mac.c
@@ -186,7 +186,7 @@ bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q)
186 wait = wait_time; 186 wait = wait_time;
187 while (ath9k_hw_numtxpending(ah, q)) { 187 while (ath9k_hw_numtxpending(ah, q)) {
188 if ((--wait) == 0) { 188 if ((--wait) == 0) {
189 ath_print(common, ATH_DBG_QUEUE, 189 ath_print(common, ATH_DBG_FATAL,
190 "Failed to stop TX DMA in 100 " 190 "Failed to stop TX DMA in 100 "
191 "msec after killing last frame\n"); 191 "msec after killing last frame\n");
192 break; 192 break;
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h
index 0c87771383f0..e185479e295e 100644
--- a/drivers/net/wireless/ath/ath9k/mac.h
+++ b/drivers/net/wireless/ath/ath9k/mac.h
@@ -77,6 +77,9 @@
77#define ATH9K_TXERR_XTXOP 0x08 77#define ATH9K_TXERR_XTXOP 0x08
78#define ATH9K_TXERR_TIMER_EXPIRED 0x10 78#define ATH9K_TXERR_TIMER_EXPIRED 0x10
79#define ATH9K_TX_ACKED 0x20 79#define ATH9K_TX_ACKED 0x20
80#define ATH9K_TXERR_MASK \
81 (ATH9K_TXERR_XRETRY | ATH9K_TXERR_FILT | ATH9K_TXERR_FIFO | \
82 ATH9K_TXERR_XTXOP | ATH9K_TXERR_TIMER_EXPIRED)
80 83
81#define ATH9K_TX_BA 0x01 84#define ATH9K_TX_BA 0x01
82#define ATH9K_TX_PWRMGMT 0x02 85#define ATH9K_TX_PWRMGMT 0x02
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index c48743452515..996eb90263cc 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1973,6 +1973,9 @@ int ath_reset(struct ath_softc *sc, bool retry_tx)
1973 struct ieee80211_hw *hw = sc->hw; 1973 struct ieee80211_hw *hw = sc->hw;
1974 int r; 1974 int r;
1975 1975
1976 /* Stop ANI */
1977 del_timer_sync(&common->ani.timer);
1978
1976 ath9k_hw_set_interrupts(ah, 0); 1979 ath9k_hw_set_interrupts(ah, 0);
1977 ath_drain_all_txq(sc, retry_tx); 1980 ath_drain_all_txq(sc, retry_tx);
1978 ath_stoprecv(sc); 1981 ath_stoprecv(sc);
@@ -2014,6 +2017,9 @@ int ath_reset(struct ath_softc *sc, bool retry_tx)
2014 } 2017 }
2015 } 2018 }
2016 2019
2020 /* Start ANI */
2021 ath_start_ani(common);
2022
2017 return r; 2023 return r;
2018} 2024}
2019 2025
@@ -2508,6 +2514,9 @@ static void ath9k_stop(struct ieee80211_hw *hw)
2508 return; /* another wiphy still in use */ 2514 return; /* another wiphy still in use */
2509 } 2515 }
2510 2516
2517 /* Ensure HW is awake when we try to shut it down. */
2518 ath9k_ps_wakeup(sc);
2519
2511 if (ah->btcoex_hw.enabled) { 2520 if (ah->btcoex_hw.enabled) {
2512 ath9k_hw_btcoex_disable(ah); 2521 ath9k_hw_btcoex_disable(ah);
2513 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE) 2522 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
@@ -2528,6 +2537,9 @@ static void ath9k_stop(struct ieee80211_hw *hw)
2528 /* disable HAL and put h/w to sleep */ 2537 /* disable HAL and put h/w to sleep */
2529 ath9k_hw_disable(ah); 2538 ath9k_hw_disable(ah);
2530 ath9k_hw_configpcipowersave(ah, 1, 1); 2539 ath9k_hw_configpcipowersave(ah, 1, 1);
2540 ath9k_ps_restore(sc);
2541
2542 /* Finally, put the chip in FULL SLEEP mode */
2531 ath9k_setpower(sc, ATH9K_PM_FULL_SLEEP); 2543 ath9k_setpower(sc, ATH9K_PM_FULL_SLEEP);
2532 2544
2533 sc->sc_flags |= SC_OP_INVALID; 2545 sc->sc_flags |= SC_OP_INVALID;
@@ -2641,8 +2653,10 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw,
2641 if ((sc->sc_ah->opmode == NL80211_IFTYPE_AP) || 2653 if ((sc->sc_ah->opmode == NL80211_IFTYPE_AP) ||
2642 (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) || 2654 (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) ||
2643 (sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT)) { 2655 (sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT)) {
2656 ath9k_ps_wakeup(sc);
2644 ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq); 2657 ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq);
2645 ath_beacon_return(sc, avp); 2658 ath_beacon_return(sc, avp);
2659 ath9k_ps_restore(sc);
2646 } 2660 }
2647 2661
2648 sc->sc_flags &= ~SC_OP_BEACONS; 2662 sc->sc_flags &= ~SC_OP_BEACONS;
@@ -3091,15 +3105,21 @@ static int ath9k_ampdu_action(struct ieee80211_hw *hw,
3091 case IEEE80211_AMPDU_RX_STOP: 3105 case IEEE80211_AMPDU_RX_STOP:
3092 break; 3106 break;
3093 case IEEE80211_AMPDU_TX_START: 3107 case IEEE80211_AMPDU_TX_START:
3108 ath9k_ps_wakeup(sc);
3094 ath_tx_aggr_start(sc, sta, tid, ssn); 3109 ath_tx_aggr_start(sc, sta, tid, ssn);
3095 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); 3110 ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
3111 ath9k_ps_restore(sc);
3096 break; 3112 break;
3097 case IEEE80211_AMPDU_TX_STOP: 3113 case IEEE80211_AMPDU_TX_STOP:
3114 ath9k_ps_wakeup(sc);
3098 ath_tx_aggr_stop(sc, sta, tid); 3115 ath_tx_aggr_stop(sc, sta, tid);
3099 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); 3116 ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
3117 ath9k_ps_restore(sc);
3100 break; 3118 break;
3101 case IEEE80211_AMPDU_TX_OPERATIONAL: 3119 case IEEE80211_AMPDU_TX_OPERATIONAL:
3120 ath9k_ps_wakeup(sc);
3102 ath_tx_aggr_resume(sc, sta, tid); 3121 ath_tx_aggr_resume(sc, sta, tid);
3122 ath9k_ps_restore(sc);
3103 break; 3123 break;
3104 default: 3124 default:
3105 ath_print(ath9k_hw_common(sc->sc_ah), ATH_DBG_FATAL, 3125 ath_print(ath9k_hw_common(sc->sc_ah), ATH_DBG_FATAL,
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index 5321f735e5a0..f7af5ea54753 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -96,7 +96,7 @@ static void ath_pci_bt_coex_prep(struct ath_common *common)
96 pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm); 96 pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm);
97} 97}
98 98
99const static struct ath_bus_ops ath_pci_bus_ops = { 99static const struct ath_bus_ops ath_pci_bus_ops = {
100 .read_cachesize = ath_pci_read_cachesize, 100 .read_cachesize = ath_pci_read_cachesize,
101 .cleanup = ath_pci_cleanup, 101 .cleanup = ath_pci_cleanup,
102 .eeprom_read = ath_pci_eeprom_read, 102 .eeprom_read = ath_pci_eeprom_read,
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 2a11cc57ceea..fa12b9060b0b 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1108,11 +1108,11 @@ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx)
1108 if (npend) { 1108 if (npend) {
1109 int r; 1109 int r;
1110 1110
1111 ath_print(common, ATH_DBG_XMIT, 1111 ath_print(common, ATH_DBG_FATAL,
1112 "Unable to stop TxDMA. Reset HAL!\n"); 1112 "Unable to stop TxDMA. Reset HAL!\n");
1113 1113
1114 spin_lock_bh(&sc->sc_resetlock); 1114 spin_lock_bh(&sc->sc_resetlock);
1115 r = ath9k_hw_reset(ah, sc->sc_ah->curchan, true); 1115 r = ath9k_hw_reset(ah, sc->sc_ah->curchan, false);
1116 if (r) 1116 if (r)
1117 ath_print(common, ATH_DBG_FATAL, 1117 ath_print(common, ATH_DBG_FATAL,
1118 "Unable to reset hardware; reset status %d\n", 1118 "Unable to reset hardware; reset status %d\n",
@@ -1414,17 +1414,9 @@ static void assign_aggr_tid_seqno(struct sk_buff *skb,
1414 * For HT capable stations, we save tidno for later use. 1414 * For HT capable stations, we save tidno for later use.
1415 * We also override seqno set by upper layer with the one 1415 * We also override seqno set by upper layer with the one
1416 * in tx aggregation state. 1416 * in tx aggregation state.
1417 *
1418 * If fragmentation is on, the sequence number is
1419 * not overridden, since it has been
1420 * incremented by the fragmentation routine.
1421 *
1422 * FIXME: check if the fragmentation threshold exceeds
1423 * IEEE80211 max.
1424 */ 1417 */
1425 tid = ATH_AN_2_TID(an, bf->bf_tidno); 1418 tid = ATH_AN_2_TID(an, bf->bf_tidno);
1426 hdr->seq_ctrl = cpu_to_le16(tid->seq_next << 1419 hdr->seq_ctrl = cpu_to_le16(tid->seq_next << IEEE80211_SEQ_SEQ_SHIFT);
1427 IEEE80211_SEQ_SEQ_SHIFT);
1428 bf->bf_seqno = tid->seq_next; 1420 bf->bf_seqno = tid->seq_next;
1429 INCR(tid->seq_next, IEEE80211_SEQ_MAX); 1421 INCR(tid->seq_next, IEEE80211_SEQ_MAX);
1430} 1422}
@@ -1636,7 +1628,8 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
1636 bf->bf_keyix = ATH9K_TXKEYIX_INVALID; 1628 bf->bf_keyix = ATH9K_TXKEYIX_INVALID;
1637 } 1629 }
1638 1630
1639 if (ieee80211_is_data_qos(fc) && (sc->sc_flags & SC_OP_TXAGGR)) 1631 if (ieee80211_is_data_qos(fc) && bf_isht(bf) &&
1632 (sc->sc_flags & SC_OP_TXAGGR))
1640 assign_aggr_tid_seqno(skb, bf); 1633 assign_aggr_tid_seqno(skb, bf);
1641 1634
1642 bf->bf_mpdu = skb; 1635 bf->bf_mpdu = skb;
@@ -1780,7 +1773,8 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb)
1780 struct ath_wiphy *aphy = hw->priv; 1773 struct ath_wiphy *aphy = hw->priv;
1781 struct ath_softc *sc = aphy->sc; 1774 struct ath_softc *sc = aphy->sc;
1782 struct ath_common *common = ath9k_hw_common(sc->sc_ah); 1775 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
1783 int hdrlen, padsize; 1776 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
1777 int padpos, padsize;
1784 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); 1778 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
1785 struct ath_tx_control txctl; 1779 struct ath_tx_control txctl;
1786 1780
@@ -1792,7 +1786,6 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb)
1792 * BSSes. 1786 * BSSes.
1793 */ 1787 */
1794 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) { 1788 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
1795 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
1796 if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT) 1789 if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)
1797 sc->tx.seq_no += 0x10; 1790 sc->tx.seq_no += 0x10;
1798 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); 1791 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
@@ -1800,9 +1793,9 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb)
1800 } 1793 }
1801 1794
1802 /* Add the padding after the header if this is not already done */ 1795 /* Add the padding after the header if this is not already done */
1803 hdrlen = ieee80211_get_hdrlen_from_skb(skb); 1796 padpos = ath9k_cmn_padpos(hdr->frame_control);
1804 if (hdrlen & 3) { 1797 padsize = padpos & 3;
1805 padsize = hdrlen % 4; 1798 if (padsize && skb->len>padpos) {
1806 if (skb_headroom(skb) < padsize) { 1799 if (skb_headroom(skb) < padsize) {
1807 ath_print(common, ATH_DBG_XMIT, 1800 ath_print(common, ATH_DBG_XMIT,
1808 "TX CABQ padding failed\n"); 1801 "TX CABQ padding failed\n");
@@ -1810,7 +1803,7 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb)
1810 return; 1803 return;
1811 } 1804 }
1812 skb_push(skb, padsize); 1805 skb_push(skb, padsize);
1813 memmove(skb->data, skb->data + padsize, hdrlen); 1806 memmove(skb->data, skb->data + padsize, padpos);
1814 } 1807 }
1815 1808
1816 txctl.txq = sc->beacon.cabq; 1809 txctl.txq = sc->beacon.cabq;
@@ -1838,7 +1831,8 @@ static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
1838 struct ieee80211_hw *hw = sc->hw; 1831 struct ieee80211_hw *hw = sc->hw;
1839 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); 1832 struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
1840 struct ath_common *common = ath9k_hw_common(sc->sc_ah); 1833 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
1841 int hdrlen, padsize; 1834 struct ieee80211_hdr * hdr = (struct ieee80211_hdr *)skb->data;
1835 int padpos, padsize;
1842 1836
1843 ath_print(common, ATH_DBG_XMIT, "TX complete: skb: %p\n", skb); 1837 ath_print(common, ATH_DBG_XMIT, "TX complete: skb: %p\n", skb);
1844 1838
@@ -1853,14 +1847,14 @@ static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
1853 tx_info->flags |= IEEE80211_TX_STAT_ACK; 1847 tx_info->flags |= IEEE80211_TX_STAT_ACK;
1854 } 1848 }
1855 1849
1856 hdrlen = ieee80211_get_hdrlen_from_skb(skb); 1850 padpos = ath9k_cmn_padpos(hdr->frame_control);
1857 padsize = hdrlen & 3; 1851 padsize = padpos & 3;
1858 if (padsize && hdrlen >= 24) { 1852 if (padsize && skb->len>padpos+padsize) {
1859 /* 1853 /*
1860 * Remove MAC header padding before giving the frame back to 1854 * Remove MAC header padding before giving the frame back to
1861 * mac80211. 1855 * mac80211.
1862 */ 1856 */
1863 memmove(skb->data + padsize, skb->data, hdrlen); 1857 memmove(skb->data + padsize, skb->data, padpos);
1864 skb_pull(skb, padsize); 1858 skb_pull(skb, padsize);
1865 } 1859 }
1866 1860
@@ -2078,7 +2072,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
2078 &txq->axq_q, lastbf->list.prev); 2072 &txq->axq_q, lastbf->list.prev);
2079 2073
2080 txq->axq_depth--; 2074 txq->axq_depth--;
2081 txok = !(ds->ds_txstat.ts_status & ATH9K_TXERR_FILT); 2075 txok = !(ds->ds_txstat.ts_status & ATH9K_TXERR_MASK);
2082 txq->axq_tx_inprogress = false; 2076 txq->axq_tx_inprogress = false;
2083 spin_unlock_bh(&txq->axq_lock); 2077 spin_unlock_bh(&txq->axq_lock);
2084 2078
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index 027be275e035..88d1fd02d40a 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -383,160 +383,44 @@ static inline
383 } 383 }
384} 384}
385 385
386/* Check if a DMA region fits the device constraints.
387 * Returns true, if the region is OK for usage with this device. */
388static inline bool b43_dma_address_ok(struct b43_dmaring *ring,
389 dma_addr_t addr, size_t size)
390{
391 switch (ring->type) {
392 case B43_DMA_30BIT:
393 if ((u64)addr + size > (1ULL << 30))
394 return 0;
395 break;
396 case B43_DMA_32BIT:
397 if ((u64)addr + size > (1ULL << 32))
398 return 0;
399 break;
400 case B43_DMA_64BIT:
401 /* Currently we can't have addresses beyond
402 * 64bit in the kernel. */
403 break;
404 }
405 return 1;
406}
407
408#define is_4k_aligned(addr) (((u64)(addr) & 0x0FFFull) == 0)
409#define is_8k_aligned(addr) (((u64)(addr) & 0x1FFFull) == 0)
410
411static void b43_unmap_and_free_ringmem(struct b43_dmaring *ring, void *base,
412 dma_addr_t dmaaddr, size_t size)
413{
414 ssb_dma_unmap_single(ring->dev->dev, dmaaddr, size, DMA_TO_DEVICE);
415 free_pages((unsigned long)base, get_order(size));
416}
417
418static void * __b43_get_and_map_ringmem(struct b43_dmaring *ring,
419 dma_addr_t *dmaaddr, size_t size,
420 gfp_t gfp_flags)
421{
422 void *base;
423
424 base = (void *)__get_free_pages(gfp_flags, get_order(size));
425 if (!base)
426 return NULL;
427 memset(base, 0, size);
428 *dmaaddr = ssb_dma_map_single(ring->dev->dev, base, size,
429 DMA_TO_DEVICE);
430 if (ssb_dma_mapping_error(ring->dev->dev, *dmaaddr)) {
431 free_pages((unsigned long)base, get_order(size));
432 return NULL;
433 }
434
435 return base;
436}
437
438static void * b43_get_and_map_ringmem(struct b43_dmaring *ring,
439 dma_addr_t *dmaaddr, size_t size)
440{
441 void *base;
442
443 base = __b43_get_and_map_ringmem(ring, dmaaddr, size,
444 GFP_KERNEL);
445 if (!base) {
446 b43err(ring->dev->wl, "Failed to allocate or map pages "
447 "for DMA ringmemory\n");
448 return NULL;
449 }
450 if (!b43_dma_address_ok(ring, *dmaaddr, size)) {
451 /* The memory does not fit our device constraints.
452 * Retry with GFP_DMA set to get lower memory. */
453 b43_unmap_and_free_ringmem(ring, base, *dmaaddr, size);
454 base = __b43_get_and_map_ringmem(ring, dmaaddr, size,
455 GFP_KERNEL | GFP_DMA);
456 if (!base) {
457 b43err(ring->dev->wl, "Failed to allocate or map pages "
458 "in the GFP_DMA region for DMA ringmemory\n");
459 return NULL;
460 }
461 if (!b43_dma_address_ok(ring, *dmaaddr, size)) {
462 b43_unmap_and_free_ringmem(ring, base, *dmaaddr, size);
463 b43err(ring->dev->wl, "Failed to allocate DMA "
464 "ringmemory that fits device constraints\n");
465 return NULL;
466 }
467 }
468 /* We expect the memory to be 4k aligned, at least. */
469 if (B43_WARN_ON(!is_4k_aligned(*dmaaddr))) {
470 b43_unmap_and_free_ringmem(ring, base, *dmaaddr, size);
471 return NULL;
472 }
473
474 return base;
475}
476
477static int alloc_ringmemory(struct b43_dmaring *ring) 386static int alloc_ringmemory(struct b43_dmaring *ring)
478{ 387{
479 unsigned int required; 388 gfp_t flags = GFP_KERNEL;
480 void *base; 389
481 dma_addr_t dmaaddr; 390 /* The specs call for 4K buffers for 30- and 32-bit DMA with 4K
482 391 * alignment and 8K buffers for 64-bit DMA with 8K alignment. Testing
483 /* There are several requirements to the descriptor ring memory: 392 * has shown that 4K is sufficient for the latter as long as the buffer
484 * - The memory region needs to fit the address constraints for the 393 * does not cross an 8K boundary.
485 * device (same as for frame buffers). 394 *
486 * - For 30/32bit DMA devices, the descriptor ring must be 4k aligned. 395 * For unknown reasons - possibly a hardware error - the BCM4311 rev
487 * - For 64bit DMA devices, the descriptor ring must be 8k aligned. 396 * 02, which uses 64-bit DMA, needs the ring buffer in very low memory,
397 * which accounts for the GFP_DMA flag below.
398 *
399 * The flags here must match the flags in free_ringmemory below!
488 */ 400 */
489
490 if (ring->type == B43_DMA_64BIT) 401 if (ring->type == B43_DMA_64BIT)
491 required = ring->nr_slots * sizeof(struct b43_dmadesc64); 402 flags |= GFP_DMA;
492 else 403 ring->descbase = ssb_dma_alloc_consistent(ring->dev->dev,
493 required = ring->nr_slots * sizeof(struct b43_dmadesc32); 404 B43_DMA_RINGMEMSIZE,
494 if (B43_WARN_ON(required > 0x1000)) 405 &(ring->dmabase), flags);
406 if (!ring->descbase) {
407 b43err(ring->dev->wl, "DMA ringmemory allocation failed\n");
495 return -ENOMEM; 408 return -ENOMEM;
496
497 ring->alloc_descsize = 0x1000;
498 base = b43_get_and_map_ringmem(ring, &dmaaddr, ring->alloc_descsize);
499 if (!base)
500 return -ENOMEM;
501 ring->alloc_descbase = base;
502 ring->alloc_dmabase = dmaaddr;
503
504 if ((ring->type != B43_DMA_64BIT) || is_8k_aligned(dmaaddr)) {
505 /* We're on <=32bit DMA, or we already got 8k aligned memory.
506 * That's all we need, so we're fine. */
507 ring->descbase = base;
508 ring->dmabase = dmaaddr;
509 return 0;
510 }
511 b43_unmap_and_free_ringmem(ring, base, dmaaddr, ring->alloc_descsize);
512
513 /* Ok, we failed at the 8k alignment requirement.
514 * Try to force-align the memory region now. */
515 ring->alloc_descsize = 0x2000;
516 base = b43_get_and_map_ringmem(ring, &dmaaddr, ring->alloc_descsize);
517 if (!base)
518 return -ENOMEM;
519 ring->alloc_descbase = base;
520 ring->alloc_dmabase = dmaaddr;
521
522 if (is_8k_aligned(dmaaddr)) {
523 /* We're already 8k aligned. That Ok, too. */
524 ring->descbase = base;
525 ring->dmabase = dmaaddr;
526 return 0;
527 } 409 }
528 /* Force-align it to 8k */ 410 memset(ring->descbase, 0, B43_DMA_RINGMEMSIZE);
529 ring->descbase = (void *)((u8 *)base + 0x1000);
530 ring->dmabase = dmaaddr + 0x1000;
531 B43_WARN_ON(!is_8k_aligned(ring->dmabase));
532 411
533 return 0; 412 return 0;
534} 413}
535 414
536static void free_ringmemory(struct b43_dmaring *ring) 415static void free_ringmemory(struct b43_dmaring *ring)
537{ 416{
538 b43_unmap_and_free_ringmem(ring, ring->alloc_descbase, 417 gfp_t flags = GFP_KERNEL;
539 ring->alloc_dmabase, ring->alloc_descsize); 418
419 if (ring->type == B43_DMA_64BIT)
420 flags |= GFP_DMA;
421
422 ssb_dma_free_consistent(ring->dev->dev, B43_DMA_RINGMEMSIZE,
423 ring->descbase, ring->dmabase, flags);
540} 424}
541 425
542/* Reset the RX DMA channel */ 426/* Reset the RX DMA channel */
@@ -646,14 +530,29 @@ static bool b43_dma_mapping_error(struct b43_dmaring *ring,
646 if (unlikely(ssb_dma_mapping_error(ring->dev->dev, addr))) 530 if (unlikely(ssb_dma_mapping_error(ring->dev->dev, addr)))
647 return 1; 531 return 1;
648 532
649 if (!b43_dma_address_ok(ring, addr, buffersize)) { 533 switch (ring->type) {
650 /* We can't support this address. Unmap it again. */ 534 case B43_DMA_30BIT:
651 unmap_descbuffer(ring, addr, buffersize, dma_to_device); 535 if ((u64)addr + buffersize > (1ULL << 30))
652 return 1; 536 goto address_error;
537 break;
538 case B43_DMA_32BIT:
539 if ((u64)addr + buffersize > (1ULL << 32))
540 goto address_error;
541 break;
542 case B43_DMA_64BIT:
543 /* Currently we can't have addresses beyond
544 * 64bit in the kernel. */
545 break;
653 } 546 }
654 547
655 /* The address is OK. */ 548 /* The address is OK. */
656 return 0; 549 return 0;
550
551address_error:
552 /* We can't support this address. Unmap it again. */
553 unmap_descbuffer(ring, addr, buffersize, dma_to_device);
554
555 return 1;
657} 556}
658 557
659static bool b43_rx_buffer_is_poisoned(struct b43_dmaring *ring, struct sk_buff *skb) 558static bool b43_rx_buffer_is_poisoned(struct b43_dmaring *ring, struct sk_buff *skb)
@@ -715,9 +614,6 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring,
715 meta->dmaaddr = dmaaddr; 614 meta->dmaaddr = dmaaddr;
716 ring->ops->fill_descriptor(ring, desc, dmaaddr, 615 ring->ops->fill_descriptor(ring, desc, dmaaddr,
717 ring->rx_buffersize, 0, 0, 0); 616 ring->rx_buffersize, 0, 0, 0);
718 ssb_dma_sync_single_for_device(ring->dev->dev,
719 ring->alloc_dmabase,
720 ring->alloc_descsize, DMA_TO_DEVICE);
721 617
722 return 0; 618 return 0;
723} 619}
@@ -1354,9 +1250,6 @@ static int dma_tx_fragment(struct b43_dmaring *ring,
1354 } 1250 }
1355 /* Now transfer the whole frame. */ 1251 /* Now transfer the whole frame. */
1356 wmb(); 1252 wmb();
1357 ssb_dma_sync_single_for_device(ring->dev->dev,
1358 ring->alloc_dmabase,
1359 ring->alloc_descsize, DMA_TO_DEVICE);
1360 ops->poke_tx(ring, next_slot(ring, slot)); 1253 ops->poke_tx(ring, next_slot(ring, slot));
1361 return 0; 1254 return 0;
1362 1255
diff --git a/drivers/net/wireless/b43/dma.h b/drivers/net/wireless/b43/dma.h
index e607b392314c..f7ab37c4cdbc 100644
--- a/drivers/net/wireless/b43/dma.h
+++ b/drivers/net/wireless/b43/dma.h
@@ -157,6 +157,7 @@ struct b43_dmadesc_generic {
157} __attribute__ ((__packed__)); 157} __attribute__ ((__packed__));
158 158
159/* Misc DMA constants */ 159/* Misc DMA constants */
160#define B43_DMA_RINGMEMSIZE PAGE_SIZE
160#define B43_DMA0_RX_FRAMEOFFSET 30 161#define B43_DMA0_RX_FRAMEOFFSET 30
161 162
162/* DMA engine tuning knobs */ 163/* DMA engine tuning knobs */
@@ -246,12 +247,6 @@ struct b43_dmaring {
246 /* The QOS priority assigned to this ring. Only used for TX rings. 247 /* The QOS priority assigned to this ring. Only used for TX rings.
247 * This is the mac80211 "queue" value. */ 248 * This is the mac80211 "queue" value. */
248 u8 queue_prio; 249 u8 queue_prio;
249 /* Pointers and size of the originally allocated and mapped memory
250 * region for the descriptor ring. */
251 void *alloc_descbase;
252 dma_addr_t alloc_dmabase;
253 unsigned int alloc_descsize;
254 /* Pointer to our wireless device. */
255 struct b43_wldev *dev; 250 struct b43_wldev *dev;
256#ifdef CONFIG_B43_DEBUG 251#ifdef CONFIG_B43_DEBUG
257 /* Maximum number of used slots. */ 252 /* Maximum number of used slots. */
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 7da1dab933d9..234891d8cc10 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -681,19 +681,13 @@ static void iwl3945_rx_reply_rx(struct iwl_priv *priv,
681 snr = rx_stats_sig_avg / rx_stats_noise_diff; 681 snr = rx_stats_sig_avg / rx_stats_noise_diff;
682 rx_status.noise = rx_status.signal - 682 rx_status.noise = rx_status.signal -
683 iwl3945_calc_db_from_ratio(snr); 683 iwl3945_calc_db_from_ratio(snr);
684 rx_status.qual = iwl3945_calc_sig_qual(rx_status.signal,
685 rx_status.noise);
686
687 /* If noise info not available, calculate signal quality indicator (%)
688 * using just the dBm signal level. */
689 } else { 684 } else {
690 rx_status.noise = priv->last_rx_noise; 685 rx_status.noise = priv->last_rx_noise;
691 rx_status.qual = iwl3945_calc_sig_qual(rx_status.signal, 0);
692 } 686 }
693 687
694 688
695 IWL_DEBUG_STATS(priv, "Rssi %d noise %d qual %d sig_avg %d noise_diff %d\n", 689 IWL_DEBUG_STATS(priv, "Rssi %d noise %d sig_avg %d noise_diff %d\n",
696 rx_status.signal, rx_status.noise, rx_status.qual, 690 rx_status.signal, rx_status.noise,
697 rx_stats_sig_avg, rx_stats_noise_diff); 691 rx_stats_sig_avg, rx_stats_noise_diff);
698 692
699 header = (struct ieee80211_hdr *)IWL_RX_DATA(pkt); 693 header = (struct ieee80211_hdr *)IWL_RX_DATA(pkt);
@@ -1835,8 +1829,7 @@ static int iwl3945_send_rxon_assoc(struct iwl_priv *priv)
1835 rc = -EIO; 1829 rc = -EIO;
1836 } 1830 }
1837 1831
1838 priv->alloc_rxb_page--; 1832 iwl_free_pages(priv, cmd.reply_page);
1839 free_pages(cmd.reply_page, priv->hw_params.rx_page_order);
1840 1833
1841 return rc; 1834 return rc;
1842} 1835}
@@ -2836,6 +2829,7 @@ static struct iwl_cfg iwl3945_bg_cfg = {
2836 .use_isr_legacy = true, 2829 .use_isr_legacy = true,
2837 .ht_greenfield_support = false, 2830 .ht_greenfield_support = false,
2838 .led_compensation = 64, 2831 .led_compensation = 64,
2832 .broken_powersave = true,
2839}; 2833};
2840 2834
2841static struct iwl_cfg iwl3945_abg_cfg = { 2835static struct iwl_cfg iwl3945_abg_cfg = {
@@ -2852,6 +2846,7 @@ static struct iwl_cfg iwl3945_abg_cfg = {
2852 .use_isr_legacy = true, 2846 .use_isr_legacy = true,
2853 .ht_greenfield_support = false, 2847 .ht_greenfield_support = false,
2854 .led_compensation = 64, 2848 .led_compensation = 64,
2849 .broken_powersave = true,
2855}; 2850};
2856 2851
2857struct pci_device_id iwl3945_hw_card_ids[] = { 2852struct pci_device_id iwl3945_hw_card_ids[] = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h
index ecc23ec1f6a4..531fa125f5a6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.h
@@ -222,7 +222,6 @@ struct iwl3945_ibss_seq {
222 * 222 *
223 *****************************************************************************/ 223 *****************************************************************************/
224extern int iwl3945_calc_db_from_ratio(int sig_ratio); 224extern int iwl3945_calc_db_from_ratio(int sig_ratio);
225extern int iwl3945_calc_sig_qual(int rssi_dbm, int noise_dbm);
226extern void iwl3945_rx_replenish(void *data); 225extern void iwl3945_rx_replenish(void *data);
227extern void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq); 226extern void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq);
228extern unsigned int iwl3945_fill_beacon_frame(struct iwl_priv *priv, 227extern unsigned int iwl3945_fill_beacon_frame(struct iwl_priv *priv,
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 386513b601f5..484c5fdf7c2a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -1204,7 +1204,7 @@ static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel,
1204 iwl4965_interpolate_chan(priv, channel, &ch_eeprom_info); 1204 iwl4965_interpolate_chan(priv, channel, &ch_eeprom_info);
1205 1205
1206 /* calculate tx gain adjustment based on power supply voltage */ 1206 /* calculate tx gain adjustment based on power supply voltage */
1207 voltage = priv->calib_info->voltage; 1207 voltage = le16_to_cpu(priv->calib_info->voltage);
1208 init_voltage = (s32)le32_to_cpu(priv->card_alive_init.voltage); 1208 init_voltage = (s32)le32_to_cpu(priv->card_alive_init.voltage);
1209 voltage_compensation = 1209 voltage_compensation =
1210 iwl4965_get_voltage_compensation(voltage, init_voltage); 1210 iwl4965_get_voltage_compensation(voltage, init_voltage);
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000-hw.h b/drivers/net/wireless/iwlwifi/iwl-5000-hw.h
index 4ef6804a455a..bc056e9ab85f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-5000-hw.h
@@ -92,11 +92,15 @@
92 92
93static inline s32 iwl_temp_calib_to_offset(struct iwl_priv *priv) 93static inline s32 iwl_temp_calib_to_offset(struct iwl_priv *priv)
94{ 94{
95 u16 *temp_calib = (u16 *)iwl_eeprom_query_addr(priv, 95 u16 temperature, voltage;
96 EEPROM_5000_TEMPERATURE); 96 __le16 *temp_calib =
97 /* offset = temperature - voltage / coef */ 97 (__le16 *)iwl_eeprom_query_addr(priv, EEPROM_5000_TEMPERATURE);
98 s32 offset = (s32)(temp_calib[0] - temp_calib[1] / IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF); 98
99 return offset; 99 temperature = le16_to_cpu(temp_calib[0]);
100 voltage = le16_to_cpu(temp_calib[1]);
101
102 /* offset = temp - volt / coeff */
103 return (s32)(temperature - voltage / IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF);
100} 104}
101 105
102/* Fixed (non-configurable) rx data from phy */ 106/* Fixed (non-configurable) rx data from phy */
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index e2f8615c8c9b..33a5866538e7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -333,14 +333,15 @@ static void iwl5000_set_ct_threshold(struct iwl_priv *priv)
333static int iwl5000_set_Xtal_calib(struct iwl_priv *priv) 333static int iwl5000_set_Xtal_calib(struct iwl_priv *priv)
334{ 334{
335 struct iwl_calib_xtal_freq_cmd cmd; 335 struct iwl_calib_xtal_freq_cmd cmd;
336 u16 *xtal_calib = (u16 *)iwl_eeprom_query_addr(priv, EEPROM_5000_XTAL); 336 __le16 *xtal_calib =
337 (__le16 *)iwl_eeprom_query_addr(priv, EEPROM_5000_XTAL);
337 338
338 cmd.hdr.op_code = IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD; 339 cmd.hdr.op_code = IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD;
339 cmd.hdr.first_group = 0; 340 cmd.hdr.first_group = 0;
340 cmd.hdr.groups_num = 1; 341 cmd.hdr.groups_num = 1;
341 cmd.hdr.data_valid = 1; 342 cmd.hdr.data_valid = 1;
342 cmd.cap_pin1 = (u8)xtal_calib[0]; 343 cmd.cap_pin1 = le16_to_cpu(xtal_calib[0]);
343 cmd.cap_pin2 = (u8)xtal_calib[1]; 344 cmd.cap_pin2 = le16_to_cpu(xtal_calib[1]);
344 return iwl_calib_set(&priv->calib_results[IWL_CALIB_XTAL], 345 return iwl_calib_set(&priv->calib_results[IWL_CALIB_XTAL],
345 (u8 *)&cmd, sizeof(cmd)); 346 (u8 *)&cmd, sizeof(cmd));
346} 347}
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index fe511cbf012e..b93e49158196 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -150,7 +150,7 @@ static s32 expected_tpt_mimo3_40MHz[4][IWL_RATE_COUNT] = {
150}; 150};
151 151
152/* mbps, mcs */ 152/* mbps, mcs */
153const static struct iwl_rate_mcs_info iwl_rate_mcs[IWL_RATE_COUNT] = { 153static const struct iwl_rate_mcs_info iwl_rate_mcs[IWL_RATE_COUNT] = {
154 { "1", "BPSK DSSS"}, 154 { "1", "BPSK DSSS"},
155 { "2", "QPSK DSSS"}, 155 { "2", "QPSK DSSS"},
156 {"5.5", "BPSK CCK"}, 156 {"5.5", "BPSK CCK"},
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index b8377efb3ba7..1c9866daf815 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1842,7 +1842,7 @@ void iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log)
1842 } 1842 }
1843 1843
1844#ifdef CONFIG_IWLWIFI_DEBUG 1844#ifdef CONFIG_IWLWIFI_DEBUG
1845 if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS)) 1845 if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS) && !full_log)
1846 size = (size > DEFAULT_DUMP_EVENT_LOG_ENTRIES) 1846 size = (size > DEFAULT_DUMP_EVENT_LOG_ENTRIES)
1847 ? DEFAULT_DUMP_EVENT_LOG_ENTRIES : size; 1847 ? DEFAULT_DUMP_EVENT_LOG_ENTRIES : size;
1848#else 1848#else
@@ -3173,7 +3173,6 @@ static int iwl_init_drv(struct iwl_priv *priv)
3173 3173
3174 priv->ibss_beacon = NULL; 3174 priv->ibss_beacon = NULL;
3175 3175
3176 spin_lock_init(&priv->lock);
3177 spin_lock_init(&priv->sta_lock); 3176 spin_lock_init(&priv->sta_lock);
3178 spin_lock_init(&priv->hcmd_lock); 3177 spin_lock_init(&priv->hcmd_lock);
3179 3178
@@ -3361,10 +3360,11 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
3361 (unsigned long long) pci_resource_len(pdev, 0)); 3360 (unsigned long long) pci_resource_len(pdev, 0));
3362 IWL_DEBUG_INFO(priv, "pci_resource_base = %p\n", priv->hw_base); 3361 IWL_DEBUG_INFO(priv, "pci_resource_base = %p\n", priv->hw_base);
3363 3362
3364 /* this spin lock will be used in apm_ops.init and EEPROM access 3363 /* these spin locks will be used in apm_ops.init and EEPROM access
3365 * we should init now 3364 * we should init now
3366 */ 3365 */
3367 spin_lock_init(&priv->reg_lock); 3366 spin_lock_init(&priv->reg_lock);
3367 spin_lock_init(&priv->lock);
3368 iwl_hw_detect(priv); 3368 iwl_hw_detect(priv);
3369 IWL_INFO(priv, "Detected Intel Wireless WiFi Link %s REV=0x%X\n", 3369 IWL_INFO(priv, "Detected Intel Wireless WiFi Link %s REV=0x%X\n",
3370 priv->cfg->name, priv->hw_rev); 3370 priv->cfg->name, priv->hw_rev);
diff --git a/drivers/net/wireless/iwlwifi/iwl-csr.h b/drivers/net/wireless/iwlwifi/iwl-csr.h
index a7bfae01f19b..1ec8cb4d5eae 100644
--- a/drivers/net/wireless/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/iwlwifi/iwl-csr.h
@@ -77,8 +77,7 @@
77 * The MAC (uCode processor, etc.) does not need to be powered up for accessing 77 * The MAC (uCode processor, etc.) does not need to be powered up for accessing
78 * the CSR registers. 78 * the CSR registers.
79 * 79 *
80 * NOTE: Newer devices using one-time-programmable (OTP) memory 80 * NOTE: Device does need to be awake in order to read this memory
81 * require device to be awake in order to read this memory
82 * via CSR_EEPROM and CSR_OTP registers 81 * via CSR_EEPROM and CSR_OTP registers
83 */ 82 */
84#define CSR_BASE (0x000) 83#define CSR_BASE (0x000)
@@ -111,9 +110,8 @@
111/* 110/*
112 * EEPROM and OTP (one-time-programmable) memory reads 111 * EEPROM and OTP (one-time-programmable) memory reads
113 * 112 *
114 * NOTE: For (newer) devices using OTP, device must be awake, initialized via 113 * NOTE: Device must be awake, initialized via apm_ops.init(),
115 * apm_ops.init() in order to read. Older devices (3945/4965/5000) 114 * in order to read.
116 * use EEPROM and do not require this.
117 */ 115 */
118#define CSR_EEPROM_REG (CSR_BASE+0x02c) 116#define CSR_EEPROM_REG (CSR_BASE+0x02c)
119#define CSR_EEPROM_GP (CSR_BASE+0x030) 117#define CSR_EEPROM_GP (CSR_BASE+0x030)
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 2673e9a4db92..165d1f6e2dd9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1168,7 +1168,7 @@ struct iwl_priv {
1168 u32 last_beacon_time; 1168 u32 last_beacon_time;
1169 u64 last_tsf; 1169 u64 last_tsf;
1170 1170
1171 /* eeprom */ 1171 /* eeprom -- this is in the card's little endian byte order */
1172 u8 *eeprom; 1172 u8 *eeprom;
1173 int nvm_device_type; 1173 int nvm_device_type;
1174 struct iwl_eeprom_calib_info *calib_info; 1174 struct iwl_eeprom_calib_info *calib_info;
@@ -1353,4 +1353,15 @@ static inline int is_channel_ibss(const struct iwl_channel_info *ch)
1353 return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0; 1353 return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0;
1354} 1354}
1355 1355
1356static inline void __iwl_free_pages(struct iwl_priv *priv, struct page *page)
1357{
1358 __free_pages(page, priv->hw_params.rx_page_order);
1359 priv->alloc_rxb_page--;
1360}
1361
1362static inline void iwl_free_pages(struct iwl_priv *priv, unsigned long page)
1363{
1364 free_pages(page, priv->hw_params.rx_page_order);
1365 priv->alloc_rxb_page--;
1366}
1356#endif /* __iwl_dev_h__ */ 1367#endif /* __iwl_dev_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
index 3946e5c03f81..4a30969689ff 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
@@ -370,7 +370,7 @@ static int iwl_init_otp_access(struct iwl_priv *priv)
370 return ret; 370 return ret;
371} 371}
372 372
373static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, u16 *eeprom_data) 373static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, __le16 *eeprom_data)
374{ 374{
375 int ret = 0; 375 int ret = 0;
376 u32 r; 376 u32 r;
@@ -404,7 +404,7 @@ static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, u16 *eeprom_data)
404 CSR_OTP_GP_REG_ECC_CORR_STATUS_MSK); 404 CSR_OTP_GP_REG_ECC_CORR_STATUS_MSK);
405 IWL_ERR(priv, "Correctable OTP ECC error, continue read\n"); 405 IWL_ERR(priv, "Correctable OTP ECC error, continue read\n");
406 } 406 }
407 *eeprom_data = le16_to_cpu((__force __le16)(r >> 16)); 407 *eeprom_data = cpu_to_le16(r >> 16);
408 return 0; 408 return 0;
409} 409}
410 410
@@ -413,7 +413,8 @@ static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, u16 *eeprom_data)
413 */ 413 */
414static bool iwl_is_otp_empty(struct iwl_priv *priv) 414static bool iwl_is_otp_empty(struct iwl_priv *priv)
415{ 415{
416 u16 next_link_addr = 0, link_value; 416 u16 next_link_addr = 0;
417 __le16 link_value;
417 bool is_empty = false; 418 bool is_empty = false;
418 419
419 /* locate the beginning of OTP link list */ 420 /* locate the beginning of OTP link list */
@@ -443,7 +444,8 @@ static bool iwl_is_otp_empty(struct iwl_priv *priv)
443static int iwl_find_otp_image(struct iwl_priv *priv, 444static int iwl_find_otp_image(struct iwl_priv *priv,
444 u16 *validblockaddr) 445 u16 *validblockaddr)
445{ 446{
446 u16 next_link_addr = 0, link_value = 0, valid_addr; 447 u16 next_link_addr = 0, valid_addr;
448 __le16 link_value = 0;
447 int usedblocks = 0; 449 int usedblocks = 0;
448 450
449 /* set addressing mode to absolute to traverse the link list */ 451 /* set addressing mode to absolute to traverse the link list */
@@ -463,7 +465,7 @@ static int iwl_find_otp_image(struct iwl_priv *priv,
463 * check for more block on the link list 465 * check for more block on the link list
464 */ 466 */
465 valid_addr = next_link_addr; 467 valid_addr = next_link_addr;
466 next_link_addr = link_value * sizeof(u16); 468 next_link_addr = le16_to_cpu(link_value) * sizeof(u16);
467 IWL_DEBUG_INFO(priv, "OTP blocks %d addr 0x%x\n", 469 IWL_DEBUG_INFO(priv, "OTP blocks %d addr 0x%x\n",
468 usedblocks, next_link_addr); 470 usedblocks, next_link_addr);
469 if (iwl_read_otp_word(priv, next_link_addr, &link_value)) 471 if (iwl_read_otp_word(priv, next_link_addr, &link_value))
@@ -497,7 +499,7 @@ static int iwl_find_otp_image(struct iwl_priv *priv,
497 */ 499 */
498int iwl_eeprom_init(struct iwl_priv *priv) 500int iwl_eeprom_init(struct iwl_priv *priv)
499{ 501{
500 u16 *e; 502 __le16 *e;
501 u32 gp = iwl_read32(priv, CSR_EEPROM_GP); 503 u32 gp = iwl_read32(priv, CSR_EEPROM_GP);
502 int sz; 504 int sz;
503 int ret; 505 int ret;
@@ -516,12 +518,9 @@ int iwl_eeprom_init(struct iwl_priv *priv)
516 ret = -ENOMEM; 518 ret = -ENOMEM;
517 goto alloc_err; 519 goto alloc_err;
518 } 520 }
519 e = (u16 *)priv->eeprom; 521 e = (__le16 *)priv->eeprom;
520 522
521 if (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP) { 523 priv->cfg->ops->lib->apm_ops.init(priv);
522 /* OTP reads require powered-up chip */
523 priv->cfg->ops->lib->apm_ops.init(priv);
524 }
525 524
526 ret = priv->cfg->ops->lib->eeprom_ops.verify_signature(priv); 525 ret = priv->cfg->ops->lib->eeprom_ops.verify_signature(priv);
527 if (ret < 0) { 526 if (ret < 0) {
@@ -562,7 +561,7 @@ int iwl_eeprom_init(struct iwl_priv *priv)
562 } 561 }
563 for (addr = validblockaddr; addr < validblockaddr + sz; 562 for (addr = validblockaddr; addr < validblockaddr + sz;
564 addr += sizeof(u16)) { 563 addr += sizeof(u16)) {
565 u16 eeprom_data; 564 __le16 eeprom_data;
566 565
567 ret = iwl_read_otp_word(priv, addr, &eeprom_data); 566 ret = iwl_read_otp_word(priv, addr, &eeprom_data);
568 if (ret) 567 if (ret)
@@ -570,13 +569,6 @@ int iwl_eeprom_init(struct iwl_priv *priv)
570 e[cache_addr / 2] = eeprom_data; 569 e[cache_addr / 2] = eeprom_data;
571 cache_addr += sizeof(u16); 570 cache_addr += sizeof(u16);
572 } 571 }
573
574 /*
575 * Now that OTP reads are complete, reset chip to save
576 * power until we load uCode during "up".
577 */
578 priv->cfg->ops->lib->apm_ops.stop(priv);
579
580 } else { 572 } else {
581 /* eeprom is an array of 16bit values */ 573 /* eeprom is an array of 16bit values */
582 for (addr = 0; addr < sz; addr += sizeof(u16)) { 574 for (addr = 0; addr < sz; addr += sizeof(u16)) {
@@ -594,7 +586,7 @@ int iwl_eeprom_init(struct iwl_priv *priv)
594 goto done; 586 goto done;
595 } 587 }
596 r = _iwl_read_direct32(priv, CSR_EEPROM_REG); 588 r = _iwl_read_direct32(priv, CSR_EEPROM_REG);
597 e[addr / 2] = le16_to_cpu((__force __le16)(r >> 16)); 589 e[addr / 2] = cpu_to_le16(r >> 16);
598 } 590 }
599 } 591 }
600 ret = 0; 592 ret = 0;
@@ -603,6 +595,8 @@ done:
603err: 595err:
604 if (ret) 596 if (ret)
605 iwl_eeprom_free(priv); 597 iwl_eeprom_free(priv);
598 /* Reset chip to save power until we load uCode during "up". */
599 priv->cfg->ops->lib->apm_ops.stop(priv);
606alloc_err: 600alloc_err:
607 return ret; 601 return ret;
608} 602}
@@ -755,7 +749,8 @@ static int iwl_mod_ht40_chan_info(struct iwl_priv *priv,
755 ch_info->ht40_eeprom = *eeprom_ch; 749 ch_info->ht40_eeprom = *eeprom_ch;
756 ch_info->ht40_max_power_avg = eeprom_ch->max_power_avg; 750 ch_info->ht40_max_power_avg = eeprom_ch->max_power_avg;
757 ch_info->ht40_flags = eeprom_ch->flags; 751 ch_info->ht40_flags = eeprom_ch->flags;
758 ch_info->ht40_extension_channel &= ~clear_ht40_extension_channel; 752 if (eeprom_ch->flags & EEPROM_CHANNEL_VALID)
753 ch_info->ht40_extension_channel &= ~clear_ht40_extension_channel;
759 754
760 return 0; 755 return 0;
761} 756}
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 5cd2b66bbe45..0cd9c02ee044 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -137,7 +137,7 @@ struct iwl_eeprom_channel {
137 * 137 *
138 */ 138 */
139struct iwl_eeprom_enhanced_txpwr { 139struct iwl_eeprom_enhanced_txpwr {
140 u16 common; 140 __le16 common;
141 s8 chain_a_max; 141 s8 chain_a_max;
142 s8 chain_b_max; 142 s8 chain_b_max;
143 s8 chain_c_max; 143 s8 chain_c_max;
@@ -360,7 +360,7 @@ struct iwl_eeprom_calib_subband_info {
360struct iwl_eeprom_calib_info { 360struct iwl_eeprom_calib_info {
361 u8 saturation_power24; /* half-dBm (e.g. "34" = 17 dBm) */ 361 u8 saturation_power24; /* half-dBm (e.g. "34" = 17 dBm) */
362 u8 saturation_power52; /* half-dBm */ 362 u8 saturation_power52; /* half-dBm */
363 s16 voltage; /* signed */ 363 __le16 voltage; /* signed */
364 struct iwl_eeprom_calib_subband_info 364 struct iwl_eeprom_calib_subband_info
365 band_info[EEPROM_TX_POWER_BANDS]; 365 band_info[EEPROM_TX_POWER_BANDS];
366} __attribute__ ((packed)); 366} __attribute__ ((packed));
diff --git a/drivers/net/wireless/iwlwifi/iwl-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-hcmd.c
index a23165948202..30e9ea6d54ec 100644
--- a/drivers/net/wireless/iwlwifi/iwl-hcmd.c
+++ b/drivers/net/wireless/iwlwifi/iwl-hcmd.c
@@ -234,7 +234,7 @@ cancel:
234 } 234 }
235fail: 235fail:
236 if (cmd->reply_page) { 236 if (cmd->reply_page) {
237 free_pages(cmd->reply_page, priv->hw_params.rx_page_order); 237 iwl_free_pages(priv, cmd->reply_page);
238 cmd->reply_page = 0; 238 cmd->reply_page = 0;
239 } 239 }
240out: 240out:
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index 6090bc15a6d5..6f36b6e79f5e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -345,10 +345,8 @@ void iwl_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
345 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, 345 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma,
346 PAGE_SIZE << priv->hw_params.rx_page_order, 346 PAGE_SIZE << priv->hw_params.rx_page_order,
347 PCI_DMA_FROMDEVICE); 347 PCI_DMA_FROMDEVICE);
348 __free_pages(rxq->pool[i].page, 348 __iwl_free_pages(priv, rxq->pool[i].page);
349 priv->hw_params.rx_page_order);
350 rxq->pool[i].page = NULL; 349 rxq->pool[i].page = NULL;
351 priv->alloc_rxb_page--;
352 } 350 }
353 } 351 }
354 352
@@ -416,9 +414,7 @@ void iwl_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
416 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, 414 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma,
417 PAGE_SIZE << priv->hw_params.rx_page_order, 415 PAGE_SIZE << priv->hw_params.rx_page_order,
418 PCI_DMA_FROMDEVICE); 416 PCI_DMA_FROMDEVICE);
419 priv->alloc_rxb_page--; 417 __iwl_free_pages(priv, rxq->pool[i].page);
420 __free_pages(rxq->pool[i].page,
421 priv->hw_params.rx_page_order);
422 rxq->pool[i].page = NULL; 418 rxq->pool[i].page = NULL;
423 } 419 }
424 list_add_tail(&rxq->pool[i].list, &rxq->rx_used); 420 list_add_tail(&rxq->pool[i].list, &rxq->rx_used);
@@ -654,47 +650,6 @@ void iwl_reply_statistics(struct iwl_priv *priv,
654} 650}
655EXPORT_SYMBOL(iwl_reply_statistics); 651EXPORT_SYMBOL(iwl_reply_statistics);
656 652
657#define PERFECT_RSSI (-20) /* dBm */
658#define WORST_RSSI (-95) /* dBm */
659#define RSSI_RANGE (PERFECT_RSSI - WORST_RSSI)
660
661/* Calculate an indication of rx signal quality (a percentage, not dBm!).
662 * See http://www.ces.clemson.edu/linux/signal_quality.shtml for info
663 * about formulas used below. */
664static int iwl_calc_sig_qual(int rssi_dbm, int noise_dbm)
665{
666 int sig_qual;
667 int degradation = PERFECT_RSSI - rssi_dbm;
668
669 /* If we get a noise measurement, use signal-to-noise ratio (SNR)
670 * as indicator; formula is (signal dbm - noise dbm).
671 * SNR at or above 40 is a great signal (100%).
672 * Below that, scale to fit SNR of 0 - 40 dB within 0 - 100% indicator.
673 * Weakest usable signal is usually 10 - 15 dB SNR. */
674 if (noise_dbm) {
675 if (rssi_dbm - noise_dbm >= 40)
676 return 100;
677 else if (rssi_dbm < noise_dbm)
678 return 0;
679 sig_qual = ((rssi_dbm - noise_dbm) * 5) / 2;
680
681 /* Else use just the signal level.
682 * This formula is a least squares fit of data points collected and
683 * compared with a reference system that had a percentage (%) display
684 * for signal quality. */
685 } else
686 sig_qual = (100 * (RSSI_RANGE * RSSI_RANGE) - degradation *
687 (15 * RSSI_RANGE + 62 * degradation)) /
688 (RSSI_RANGE * RSSI_RANGE);
689
690 if (sig_qual > 100)
691 sig_qual = 100;
692 else if (sig_qual < 1)
693 sig_qual = 0;
694
695 return sig_qual;
696}
697
698/* Calc max signal level (dBm) among 3 possible receivers */ 653/* Calc max signal level (dBm) among 3 possible receivers */
699static inline int iwl_calc_rssi(struct iwl_priv *priv, 654static inline int iwl_calc_rssi(struct iwl_priv *priv,
700 struct iwl_rx_phy_res *rx_resp) 655 struct iwl_rx_phy_res *rx_resp)
@@ -1105,11 +1060,8 @@ void iwl_rx_reply_rx(struct iwl_priv *priv,
1105 if (iwl_is_associated(priv) && 1060 if (iwl_is_associated(priv) &&
1106 !test_bit(STATUS_SCANNING, &priv->status)) { 1061 !test_bit(STATUS_SCANNING, &priv->status)) {
1107 rx_status.noise = priv->last_rx_noise; 1062 rx_status.noise = priv->last_rx_noise;
1108 rx_status.qual = iwl_calc_sig_qual(rx_status.signal,
1109 rx_status.noise);
1110 } else { 1063 } else {
1111 rx_status.noise = IWL_NOISE_MEAS_NOT_AVAILABLE; 1064 rx_status.noise = IWL_NOISE_MEAS_NOT_AVAILABLE;
1112 rx_status.qual = iwl_calc_sig_qual(rx_status.signal, 0);
1113 } 1065 }
1114 1066
1115 /* Reset beacon noise level if not associated. */ 1067 /* Reset beacon noise level if not associated. */
@@ -1122,8 +1074,8 @@ void iwl_rx_reply_rx(struct iwl_priv *priv,
1122 iwl_dbg_report_frame(priv, phy_res, len, header, 1); 1074 iwl_dbg_report_frame(priv, phy_res, len, header, 1);
1123#endif 1075#endif
1124 iwl_dbg_log_rx_data_frame(priv, len, header); 1076 iwl_dbg_log_rx_data_frame(priv, len, header);
1125 IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, qual %d, TSF %llu\n", 1077 IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, TSF %llu\n",
1126 rx_status.signal, rx_status.noise, rx_status.qual, 1078 rx_status.signal, rx_status.noise,
1127 (unsigned long long)rx_status.mactime); 1079 (unsigned long long)rx_status.mactime);
1128 1080
1129 /* 1081 /*
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index a2b2b8315ff9..fa1c89ba6459 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -144,8 +144,7 @@ static int iwl_send_scan_abort(struct iwl_priv *priv)
144 clear_bit(STATUS_SCAN_HW, &priv->status); 144 clear_bit(STATUS_SCAN_HW, &priv->status);
145 } 145 }
146 146
147 priv->alloc_rxb_page--; 147 iwl_free_pages(priv, cmd.reply_page);
148 free_pages(cmd.reply_page, priv->hw_params.rx_page_order);
149 148
150 return ret; 149 return ret;
151} 150}
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index cd6a6901216e..cde09a890b73 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -164,9 +164,7 @@ int iwl_send_add_sta(struct iwl_priv *priv,
164 break; 164 break;
165 } 165 }
166 } 166 }
167 167 iwl_free_pages(priv, cmd.reply_page);
168 priv->alloc_rxb_page--;
169 free_pages(cmd.reply_page, priv->hw_params.rx_page_order);
170 168
171 return ret; 169 return ret;
172} 170}
@@ -391,9 +389,7 @@ static int iwl_send_remove_station(struct iwl_priv *priv, const u8 *addr,
391 break; 389 break;
392 } 390 }
393 } 391 }
394 392 iwl_free_pages(priv, cmd.reply_page);
395 priv->alloc_rxb_page--;
396 free_pages(cmd.reply_page, priv->hw_params.rx_page_order);
397 393
398 return ret; 394 return ret;
399} 395}
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index 00da5e152d46..87ce2bd292c7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -407,13 +407,14 @@ void iwl_hw_txq_ctx_free(struct iwl_priv *priv)
407 int txq_id; 407 int txq_id;
408 408
409 /* Tx queues */ 409 /* Tx queues */
410 if (priv->txq) 410 if (priv->txq) {
411 for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; 411 for (txq_id = 0; txq_id < priv->hw_params.max_txq_num;
412 txq_id++) 412 txq_id++)
413 if (txq_id == IWL_CMD_QUEUE_NUM) 413 if (txq_id == IWL_CMD_QUEUE_NUM)
414 iwl_cmd_queue_free(priv); 414 iwl_cmd_queue_free(priv);
415 else 415 else
416 iwl_tx_queue_free(priv, txq_id); 416 iwl_tx_queue_free(priv, txq_id);
417 }
417 iwl_free_dma_ptr(priv, &priv->kw); 418 iwl_free_dma_ptr(priv, &priv->kw);
418 419
419 iwl_free_dma_ptr(priv, &priv->scd_bc_tbls); 420 iwl_free_dma_ptr(priv, &priv->scd_bc_tbls);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 2a28a1f8b1fe..f8e4e4b18d02 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -548,6 +548,9 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
548 txq = &priv->txq[txq_id]; 548 txq = &priv->txq[txq_id];
549 q = &txq->q; 549 q = &txq->q;
550 550
551 if ((iwl_queue_space(q) < q->high_mark))
552 goto drop;
553
551 spin_lock_irqsave(&priv->lock, flags); 554 spin_lock_irqsave(&priv->lock, flags);
552 555
553 idx = get_cmd_index(q, q->write_ptr, 0); 556 idx = get_cmd_index(q, q->write_ptr, 0);
@@ -812,7 +815,7 @@ static int iwl3945_get_measurement(struct iwl_priv *priv,
812 break; 815 break;
813 } 816 }
814 817
815 free_pages(cmd.reply_page, priv->hw_params.rx_page_order); 818 iwl_free_pages(priv, cmd.reply_page);
816 819
817 return rc; 820 return rc;
818} 821}
@@ -1198,9 +1201,7 @@ void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
1198 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, 1201 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma,
1199 PAGE_SIZE << priv->hw_params.rx_page_order, 1202 PAGE_SIZE << priv->hw_params.rx_page_order,
1200 PCI_DMA_FROMDEVICE); 1203 PCI_DMA_FROMDEVICE);
1201 priv->alloc_rxb_page--; 1204 __iwl_free_pages(priv, rxq->pool[i].page);
1202 __free_pages(rxq->pool[i].page,
1203 priv->hw_params.rx_page_order);
1204 rxq->pool[i].page = NULL; 1205 rxq->pool[i].page = NULL;
1205 } 1206 }
1206 list_add_tail(&rxq->pool[i].list, &rxq->rx_used); 1207 list_add_tail(&rxq->pool[i].list, &rxq->rx_used);
@@ -1247,10 +1248,8 @@ static void iwl3945_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rx
1247 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, 1248 pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma,
1248 PAGE_SIZE << priv->hw_params.rx_page_order, 1249 PAGE_SIZE << priv->hw_params.rx_page_order,
1249 PCI_DMA_FROMDEVICE); 1250 PCI_DMA_FROMDEVICE);
1250 __free_pages(rxq->pool[i].page, 1251 __iwl_free_pages(priv, rxq->pool[i].page);
1251 priv->hw_params.rx_page_order);
1252 rxq->pool[i].page = NULL; 1252 rxq->pool[i].page = NULL;
1253 priv->alloc_rxb_page--;
1254 } 1253 }
1255 } 1254 }
1256 1255
@@ -1300,47 +1299,6 @@ int iwl3945_calc_db_from_ratio(int sig_ratio)
1300 return (int)ratio2dB[sig_ratio]; 1299 return (int)ratio2dB[sig_ratio];
1301} 1300}
1302 1301
1303#define PERFECT_RSSI (-20) /* dBm */
1304#define WORST_RSSI (-95) /* dBm */
1305#define RSSI_RANGE (PERFECT_RSSI - WORST_RSSI)
1306
1307/* Calculate an indication of rx signal quality (a percentage, not dBm!).
1308 * See http://www.ces.clemson.edu/linux/signal_quality.shtml for info
1309 * about formulas used below. */
1310int iwl3945_calc_sig_qual(int rssi_dbm, int noise_dbm)
1311{
1312 int sig_qual;
1313 int degradation = PERFECT_RSSI - rssi_dbm;
1314
1315 /* If we get a noise measurement, use signal-to-noise ratio (SNR)
1316 * as indicator; formula is (signal dbm - noise dbm).
1317 * SNR at or above 40 is a great signal (100%).
1318 * Below that, scale to fit SNR of 0 - 40 dB within 0 - 100% indicator.
1319 * Weakest usable signal is usually 10 - 15 dB SNR. */
1320 if (noise_dbm) {
1321 if (rssi_dbm - noise_dbm >= 40)
1322 return 100;
1323 else if (rssi_dbm < noise_dbm)
1324 return 0;
1325 sig_qual = ((rssi_dbm - noise_dbm) * 5) / 2;
1326
1327 /* Else use just the signal level.
1328 * This formula is a least squares fit of data points collected and
1329 * compared with a reference system that had a percentage (%) display
1330 * for signal quality. */
1331 } else
1332 sig_qual = (100 * (RSSI_RANGE * RSSI_RANGE) - degradation *
1333 (15 * RSSI_RANGE + 62 * degradation)) /
1334 (RSSI_RANGE * RSSI_RANGE);
1335
1336 if (sig_qual > 100)
1337 sig_qual = 100;
1338 else if (sig_qual < 1)
1339 sig_qual = 0;
1340
1341 return sig_qual;
1342}
1343
1344/** 1302/**
1345 * iwl3945_rx_handle - Main entry function for receiving responses from uCode 1303 * iwl3945_rx_handle - Main entry function for receiving responses from uCode
1346 * 1304 *
@@ -1688,7 +1646,7 @@ void iwl3945_dump_nic_event_log(struct iwl_priv *priv, bool full_log)
1688 } 1646 }
1689 1647
1690#ifdef CONFIG_IWLWIFI_DEBUG 1648#ifdef CONFIG_IWLWIFI_DEBUG
1691 if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS)) 1649 if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS) && !full_log)
1692 size = (size > DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES) 1650 size = (size > DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES)
1693 ? DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES : size; 1651 ? DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES : size;
1694#else 1652#else
@@ -3867,7 +3825,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv)
3867 priv->retry_rate = 1; 3825 priv->retry_rate = 1;
3868 priv->ibss_beacon = NULL; 3826 priv->ibss_beacon = NULL;
3869 3827
3870 spin_lock_init(&priv->lock);
3871 spin_lock_init(&priv->sta_lock); 3828 spin_lock_init(&priv->sta_lock);
3872 spin_lock_init(&priv->hcmd_lock); 3829 spin_lock_init(&priv->hcmd_lock);
3873 3830
@@ -3936,9 +3893,11 @@ static int iwl3945_setup_mac(struct iwl_priv *priv)
3936 /* Tell mac80211 our characteristics */ 3893 /* Tell mac80211 our characteristics */
3937 hw->flags = IEEE80211_HW_SIGNAL_DBM | 3894 hw->flags = IEEE80211_HW_SIGNAL_DBM |
3938 IEEE80211_HW_NOISE_DBM | 3895 IEEE80211_HW_NOISE_DBM |
3939 IEEE80211_HW_SPECTRUM_MGMT | 3896 IEEE80211_HW_SPECTRUM_MGMT;
3940 IEEE80211_HW_SUPPORTS_PS | 3897
3941 IEEE80211_HW_SUPPORTS_DYNAMIC_PS; 3898 if (!priv->cfg->broken_powersave)
3899 hw->flags |= IEEE80211_HW_SUPPORTS_PS |
3900 IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
3942 3901
3943 hw->wiphy->interface_modes = 3902 hw->wiphy->interface_modes =
3944 BIT(NL80211_IFTYPE_STATION) | 3903 BIT(NL80211_IFTYPE_STATION) |
@@ -4057,10 +4016,11 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
4057 * PCI Tx retries from interfering with C3 CPU state */ 4016 * PCI Tx retries from interfering with C3 CPU state */
4058 pci_write_config_byte(pdev, 0x41, 0x00); 4017 pci_write_config_byte(pdev, 0x41, 0x00);
4059 4018
4060 /* this spin lock will be used in apm_ops.init and EEPROM access 4019 /* these spin locks will be used in apm_ops.init and EEPROM access
4061 * we should init now 4020 * we should init now
4062 */ 4021 */
4063 spin_lock_init(&priv->reg_lock); 4022 spin_lock_init(&priv->reg_lock);
4023 spin_lock_init(&priv->lock);
4064 4024
4065 /*********************** 4025 /***********************
4066 * 4. Read EEPROM 4026 * 4. Read EEPROM
diff --git a/drivers/net/wireless/iwmc3200wifi/iwm.h b/drivers/net/wireless/iwmc3200wifi/iwm.h
index 5a26bb05a33a..842811142bef 100644
--- a/drivers/net/wireless/iwmc3200wifi/iwm.h
+++ b/drivers/net/wireless/iwmc3200wifi/iwm.h
@@ -268,7 +268,7 @@ struct iwm_priv {
268 268
269 struct sk_buff_head rx_list; 269 struct sk_buff_head rx_list;
270 struct list_head rx_tickets; 270 struct list_head rx_tickets;
271 struct list_head rx_packets[IWM_RX_ID_HASH]; 271 struct list_head rx_packets[IWM_RX_ID_HASH + 1];
272 struct workqueue_struct *rx_wq; 272 struct workqueue_struct *rx_wq;
273 struct work_struct rx_worker; 273 struct work_struct rx_worker;
274 274
@@ -349,7 +349,7 @@ int iwm_up(struct iwm_priv *iwm);
349int iwm_down(struct iwm_priv *iwm); 349int iwm_down(struct iwm_priv *iwm);
350 350
351/* TX API */ 351/* TX API */
352u16 iwm_tid_to_queue(u16 tid); 352int iwm_tid_to_queue(u16 tid);
353void iwm_tx_credit_inc(struct iwm_priv *iwm, int id, int total_freed_pages); 353void iwm_tx_credit_inc(struct iwm_priv *iwm, int id, int total_freed_pages);
354void iwm_tx_worker(struct work_struct *work); 354void iwm_tx_worker(struct work_struct *work);
355int iwm_xmit_frame(struct sk_buff *skb, struct net_device *netdev); 355int iwm_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
diff --git a/drivers/net/wireless/iwmc3200wifi/netdev.c b/drivers/net/wireless/iwmc3200wifi/netdev.c
index e4f0f8705f65..c4c0d23c63ec 100644
--- a/drivers/net/wireless/iwmc3200wifi/netdev.c
+++ b/drivers/net/wireless/iwmc3200wifi/netdev.c
@@ -76,7 +76,7 @@ static int iwm_stop(struct net_device *ndev)
76 */ 76 */
77static const u16 iwm_1d_to_queue[8] = { 1, 0, 0, 1, 2, 2, 3, 3 }; 77static const u16 iwm_1d_to_queue[8] = { 1, 0, 0, 1, 2, 2, 3, 3 };
78 78
79u16 iwm_tid_to_queue(u16 tid) 79int iwm_tid_to_queue(u16 tid)
80{ 80{
81 if (tid > IWM_UMAC_TID_NR - 2) 81 if (tid > IWM_UMAC_TID_NR - 2)
82 return -EINVAL; 82 return -EINVAL;
diff --git a/drivers/net/wireless/iwmc3200wifi/rx.c b/drivers/net/wireless/iwmc3200wifi/rx.c
index 1c57c1f72cba..6d6ed7485175 100644
--- a/drivers/net/wireless/iwmc3200wifi/rx.c
+++ b/drivers/net/wireless/iwmc3200wifi/rx.c
@@ -1126,7 +1126,7 @@ static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf,
1126 1126
1127 if (!stop) { 1127 if (!stop) {
1128 struct iwm_tx_queue *txq; 1128 struct iwm_tx_queue *txq;
1129 u16 queue = iwm_tid_to_queue(bit); 1129 int queue = iwm_tid_to_queue(bit);
1130 1130
1131 if (queue < 0) 1131 if (queue < 0)
1132 continue; 1132 continue;
diff --git a/drivers/net/wireless/libertas/mesh.c b/drivers/net/wireless/libertas/mesh.c
index 2f91c9b808af..92b7a357a5e4 100644
--- a/drivers/net/wireless/libertas/mesh.c
+++ b/drivers/net/wireless/libertas/mesh.c
@@ -2,6 +2,7 @@
2#include <linux/delay.h> 2#include <linux/delay.h>
3#include <linux/etherdevice.h> 3#include <linux/etherdevice.h>
4#include <linux/netdevice.h> 4#include <linux/netdevice.h>
5#include <linux/if_ether.h>
5#include <linux/if_arp.h> 6#include <linux/if_arp.h>
6#include <linux/kthread.h> 7#include <linux/kthread.h>
7#include <linux/kfifo.h> 8#include <linux/kfifo.h>
@@ -351,8 +352,7 @@ int lbs_add_mesh(struct lbs_private *priv)
351 352
352 mesh_dev->netdev_ops = &mesh_netdev_ops; 353 mesh_dev->netdev_ops = &mesh_netdev_ops;
353 mesh_dev->ethtool_ops = &lbs_ethtool_ops; 354 mesh_dev->ethtool_ops = &lbs_ethtool_ops;
354 memcpy(mesh_dev->dev_addr, priv->dev->dev_addr, 355 memcpy(mesh_dev->dev_addr, priv->dev->dev_addr, ETH_ALEN);
355 sizeof(priv->dev->dev_addr));
356 356
357 SET_NETDEV_DEV(priv->mesh_dev, priv->dev->dev.parent); 357 SET_NETDEV_DEV(priv->mesh_dev, priv->dev->dev.parent);
358 358
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c
index c6a6c042b82f..b0b1c7841500 100644
--- a/drivers/net/wireless/libertas/scan.c
+++ b/drivers/net/wireless/libertas/scan.c
@@ -567,11 +567,8 @@ int lbs_scan_networks(struct lbs_private *priv, int full_scan)
567 chan_count = lbs_scan_create_channel_list(priv, chan_list); 567 chan_count = lbs_scan_create_channel_list(priv, chan_list);
568 568
569 netif_stop_queue(priv->dev); 569 netif_stop_queue(priv->dev);
570 netif_carrier_off(priv->dev); 570 if (priv->mesh_dev)
571 if (priv->mesh_dev) {
572 netif_stop_queue(priv->mesh_dev); 571 netif_stop_queue(priv->mesh_dev);
573 netif_carrier_off(priv->mesh_dev);
574 }
575 572
576 /* Prepare to continue an interrupted scan */ 573 /* Prepare to continue an interrupted scan */
577 lbs_deb_scan("chan_count %d, scan_channel %d\n", 574 lbs_deb_scan("chan_count %d, scan_channel %d\n",
@@ -635,16 +632,13 @@ out2:
635 priv->scan_channel = 0; 632 priv->scan_channel = 0;
636 633
637out: 634out:
638 if (priv->connect_status == LBS_CONNECTED) { 635 if (priv->connect_status == LBS_CONNECTED && !priv->tx_pending_len)
639 netif_carrier_on(priv->dev); 636 netif_wake_queue(priv->dev);
640 if (!priv->tx_pending_len) 637
641 netif_wake_queue(priv->dev); 638 if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED) &&
642 } 639 !priv->tx_pending_len)
643 if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED)) { 640 netif_wake_queue(priv->mesh_dev);
644 netif_carrier_on(priv->mesh_dev); 641
645 if (!priv->tx_pending_len)
646 netif_wake_queue(priv->mesh_dev);
647 }
648 kfree(chan_list); 642 kfree(chan_list);
649 643
650 lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret); 644 lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret);
diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c
index a8eb9e1fcf36..4b1aab593a84 100644
--- a/drivers/net/wireless/libertas/wext.c
+++ b/drivers/net/wireless/libertas/wext.c
@@ -2025,10 +2025,8 @@ static int lbs_get_essid(struct net_device *dev, struct iw_request_info *info,
2025 if (priv->connect_status == LBS_CONNECTED) { 2025 if (priv->connect_status == LBS_CONNECTED) {
2026 memcpy(extra, priv->curbssparams.ssid, 2026 memcpy(extra, priv->curbssparams.ssid,
2027 priv->curbssparams.ssid_len); 2027 priv->curbssparams.ssid_len);
2028 extra[priv->curbssparams.ssid_len] = '\0';
2029 } else { 2028 } else {
2030 memset(extra, 0, 32); 2029 memset(extra, 0, 32);
2031 extra[priv->curbssparams.ssid_len] = '\0';
2032 } 2030 }
2033 /* 2031 /*
2034 * If none, we may want to get the one that was set 2032 * If none, we may want to get the one that was set
diff --git a/drivers/net/wireless/libertas_tf/main.c b/drivers/net/wireless/libertas_tf/main.c
index 019431d2f8a9..26a1abd5bb03 100644
--- a/drivers/net/wireless/libertas_tf/main.c
+++ b/drivers/net/wireless/libertas_tf/main.c
@@ -495,7 +495,6 @@ int lbtf_rx(struct lbtf_private *priv, struct sk_buff *skb)
495 stats.band = IEEE80211_BAND_2GHZ; 495 stats.band = IEEE80211_BAND_2GHZ;
496 stats.signal = prxpd->snr; 496 stats.signal = prxpd->snr;
497 stats.noise = prxpd->nf; 497 stats.noise = prxpd->nf;
498 stats.qual = prxpd->snr - prxpd->nf;
499 /* Marvell rate index has a hole at value 4 */ 498 /* Marvell rate index has a hole at value 4 */
500 if (prxpd->rx_rate > 4) 499 if (prxpd->rx_rate > 4)
501 --prxpd->rx_rate; 500 --prxpd->rx_rate;
diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c
index 7698fdd6a3a2..31ca241f7753 100644
--- a/drivers/net/wireless/orinoco/wext.c
+++ b/drivers/net/wireless/orinoco/wext.c
@@ -23,7 +23,7 @@
23#define MAX_RID_LEN 1024 23#define MAX_RID_LEN 1024
24 24
25/* Helper routine to record keys 25/* Helper routine to record keys
26 * Do not call from interrupt context */ 26 * It is called under orinoco_lock so it may not sleep */
27static int orinoco_set_key(struct orinoco_private *priv, int index, 27static int orinoco_set_key(struct orinoco_private *priv, int index,
28 enum orinoco_alg alg, const u8 *key, int key_len, 28 enum orinoco_alg alg, const u8 *key, int key_len,
29 const u8 *seq, int seq_len) 29 const u8 *seq, int seq_len)
@@ -32,14 +32,14 @@ static int orinoco_set_key(struct orinoco_private *priv, int index,
32 kzfree(priv->keys[index].seq); 32 kzfree(priv->keys[index].seq);
33 33
34 if (key_len) { 34 if (key_len) {
35 priv->keys[index].key = kzalloc(key_len, GFP_KERNEL); 35 priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
36 if (!priv->keys[index].key) 36 if (!priv->keys[index].key)
37 goto nomem; 37 goto nomem;
38 } else 38 } else
39 priv->keys[index].key = NULL; 39 priv->keys[index].key = NULL;
40 40
41 if (seq_len) { 41 if (seq_len) {
42 priv->keys[index].seq = kzalloc(seq_len, GFP_KERNEL); 42 priv->keys[index].seq = kzalloc(seq_len, GFP_ATOMIC);
43 if (!priv->keys[index].seq) 43 if (!priv->keys[index].seq)
44 goto free_key; 44 goto free_key;
45 } else 45 } else
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index c5fe867665e6..1a7eae357fef 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -1323,7 +1323,7 @@
1323#define PAIRWISE_KEY_ENTRY(__idx) \ 1323#define PAIRWISE_KEY_ENTRY(__idx) \
1324 ( PAIRWISE_KEY_TABLE_BASE + ((__idx) * sizeof(struct hw_key_entry)) ) 1324 ( PAIRWISE_KEY_TABLE_BASE + ((__idx) * sizeof(struct hw_key_entry)) )
1325#define MAC_IVEIV_ENTRY(__idx) \ 1325#define MAC_IVEIV_ENTRY(__idx) \
1326 ( MAC_IVEIV_TABLE_BASE + ((__idx) & sizeof(struct mac_iveiv_entry)) ) 1326 ( MAC_IVEIV_TABLE_BASE + ((__idx) * sizeof(struct mac_iveiv_entry)) )
1327#define MAC_WCID_ATTR_ENTRY(__idx) \ 1327#define MAC_WCID_ATTR_ENTRY(__idx) \
1328 ( MAC_WCID_ATTRIBUTE_BASE + ((__idx) * sizeof(u32)) ) 1328 ( MAC_WCID_ATTRIBUTE_BASE + ((__idx) * sizeof(u32)) )
1329#define SHARED_KEY_ENTRY(__idx) \ 1329#define SHARED_KEY_ENTRY(__idx) \
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index eb1e1d00bec3..27bf887f1453 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -37,7 +37,7 @@
37#include <linux/module.h> 37#include <linux/module.h>
38 38
39#include "rt2x00.h" 39#include "rt2x00.h"
40#ifdef CONFIG_RT2800USB 40#if defined(CONFIG_RT2800USB) || defined(CONFIG_RT2800USB_MODULE)
41#include "rt2x00usb.h" 41#include "rt2x00usb.h"
42#endif 42#endif
43#include "rt2800lib.h" 43#include "rt2800lib.h"
@@ -1121,7 +1121,7 @@ int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
1121 1121
1122 if (rt2x00_intf_is_usb(rt2x00dev)) { 1122 if (rt2x00_intf_is_usb(rt2x00dev)) {
1123 rt2800_register_write(rt2x00dev, USB_DMA_CFG, 0x00000000); 1123 rt2800_register_write(rt2x00dev, USB_DMA_CFG, 0x00000000);
1124#ifdef CONFIG_RT2800USB 1124#if defined(CONFIG_RT2800USB) || defined(CONFIG_RT2800USB_MODULE)
1125 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0, 1125 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0,
1126 USB_MODE_RESET, REGISTER_TIMEOUT); 1126 USB_MODE_RESET, REGISTER_TIMEOUT);
1127#endif 1127#endif
@@ -2022,6 +2022,12 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2022 u16 eeprom; 2022 u16 eeprom;
2023 2023
2024 /* 2024 /*
2025 * Disable powersaving as default on PCI devices.
2026 */
2027 if (rt2x00_intf_is_pci(rt2x00dev))
2028 rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
2029
2030 /*
2025 * Initialize all hw fields. 2031 * Initialize all hw fields.
2026 */ 2032 */
2027 rt2x00dev->hw->flags = 2033 rt2x00dev->hw->flags =
@@ -2074,8 +2080,7 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2074 IEEE80211_HT_CAP_SGI_20 | 2080 IEEE80211_HT_CAP_SGI_20 |
2075 IEEE80211_HT_CAP_SGI_40 | 2081 IEEE80211_HT_CAP_SGI_40 |
2076 IEEE80211_HT_CAP_TX_STBC | 2082 IEEE80211_HT_CAP_TX_STBC |
2077 IEEE80211_HT_CAP_RX_STBC | 2083 IEEE80211_HT_CAP_RX_STBC;
2078 IEEE80211_HT_CAP_PSMP_SUPPORT;
2079 spec->ht.ampdu_factor = 3; 2084 spec->ht.ampdu_factor = 3;
2080 spec->ht.ampdu_density = 4; 2085 spec->ht.ampdu_density = 4;
2081 spec->ht.mcs.tx_params = 2086 spec->ht.mcs.tx_params =
@@ -2140,8 +2145,8 @@ static void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx,
2140 rt2800_register_multiread(rt2x00dev, offset, 2145 rt2800_register_multiread(rt2x00dev, offset,
2141 &iveiv_entry, sizeof(iveiv_entry)); 2146 &iveiv_entry, sizeof(iveiv_entry));
2142 2147
2143 memcpy(&iveiv_entry.iv[0], iv16, sizeof(iv16)); 2148 memcpy(iv16, &iveiv_entry.iv[0], sizeof(*iv16));
2144 memcpy(&iveiv_entry.iv[4], iv32, sizeof(iv32)); 2149 memcpy(iv32, &iveiv_entry.iv[4], sizeof(*iv32));
2145} 2150}
2146 2151
2147static int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value) 2152static int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
index af85d18cdbe7..ab95346cf6a3 100644
--- a/drivers/net/wireless/rt2x00/rt2800usb.c
+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
@@ -922,6 +922,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
922 { USB_DEVICE(0x1737, 0x0070), USB_DEVICE_DATA(&rt2800usb_ops) }, 922 { USB_DEVICE(0x1737, 0x0070), USB_DEVICE_DATA(&rt2800usb_ops) },
923 { USB_DEVICE(0x1737, 0x0071), USB_DEVICE_DATA(&rt2800usb_ops) }, 923 { USB_DEVICE(0x1737, 0x0071), USB_DEVICE_DATA(&rt2800usb_ops) },
924 { USB_DEVICE(0x1737, 0x0077), USB_DEVICE_DATA(&rt2800usb_ops) }, 924 { USB_DEVICE(0x1737, 0x0077), USB_DEVICE_DATA(&rt2800usb_ops) },
925 { USB_DEVICE(0x1737, 0x0079), USB_DEVICE_DATA(&rt2800usb_ops) },
925 /* Logitec */ 926 /* Logitec */
926 { USB_DEVICE(0x0789, 0x0162), USB_DEVICE_DATA(&rt2800usb_ops) }, 927 { USB_DEVICE(0x0789, 0x0162), USB_DEVICE_DATA(&rt2800usb_ops) },
927 { USB_DEVICE(0x0789, 0x0163), USB_DEVICE_DATA(&rt2800usb_ops) }, 928 { USB_DEVICE(0x0789, 0x0163), USB_DEVICE_DATA(&rt2800usb_ops) },
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index 687e17dc2e9f..0ca589306d71 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2539,6 +2539,11 @@ static int rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
2539 unsigned int i; 2539 unsigned int i;
2540 2540
2541 /* 2541 /*
2542 * Disable powersaving as default.
2543 */
2544 rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
2545
2546 /*
2542 * Initialize all hw fields. 2547 * Initialize all hw fields.
2543 */ 2548 */
2544 rt2x00dev->hw->flags = 2549 rt2x00dev->hw->flags =
diff --git a/drivers/net/wireless/rtl818x/rtl8180_dev.c b/drivers/net/wireless/rtl818x/rtl8180_dev.c
index a1a3dd15c664..8a40a1439984 100644
--- a/drivers/net/wireless/rtl818x/rtl8180_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8180_dev.c
@@ -132,7 +132,6 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev)
132 132
133 rx_status.antenna = (flags2 >> 15) & 1; 133 rx_status.antenna = (flags2 >> 15) & 1;
134 /* TODO: improve signal/rssi reporting */ 134 /* TODO: improve signal/rssi reporting */
135 rx_status.qual = flags2 & 0xFF;
136 rx_status.signal = (flags2 >> 8) & 0x7F; 135 rx_status.signal = (flags2 >> 8) & 0x7F;
137 /* XXX: is this correct? */ 136 /* XXX: is this correct? */
138 rx_status.rate_idx = (flags >> 20) & 0xF; 137 rx_status.rate_idx = (flags >> 20) & 0xF;
diff --git a/drivers/net/wireless/wl12xx/wl1251_boot.c b/drivers/net/wireless/wl12xx/wl1251_boot.c
index 2e733e7bdfd4..28a808674080 100644
--- a/drivers/net/wireless/wl12xx/wl1251_boot.c
+++ b/drivers/net/wireless/wl12xx/wl1251_boot.c
@@ -256,7 +256,7 @@ int wl1251_boot_run_firmware(struct wl1251 *wl)
256 } 256 }
257 } 257 }
258 258
259 if (loop >= INIT_LOOP) { 259 if (loop > INIT_LOOP) {
260 wl1251_error("timeout waiting for the hardware to " 260 wl1251_error("timeout waiting for the hardware to "
261 "complete initialization"); 261 "complete initialization");
262 return -EIO; 262 return -EIO;
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.c b/drivers/net/wireless/wl12xx/wl1271_cmd.c
index 886a9bc39cc1..c3385b3d246c 100644
--- a/drivers/net/wireless/wl12xx/wl1271_cmd.c
+++ b/drivers/net/wireless/wl12xx/wl1271_cmd.c
@@ -777,7 +777,7 @@ out:
777 return ret; 777 return ret;
778} 778}
779 779
780static int wl1271_build_basic_rates(char *rates, u8 band) 780static int wl1271_build_basic_rates(u8 *rates, u8 band)
781{ 781{
782 u8 index = 0; 782 u8 index = 0;
783 783
@@ -804,7 +804,7 @@ static int wl1271_build_basic_rates(char *rates, u8 band)
804 return index; 804 return index;
805} 805}
806 806
807static int wl1271_build_extended_rates(char *rates, u8 band) 807static int wl1271_build_extended_rates(u8 *rates, u8 band)
808{ 808{
809 u8 index = 0; 809 u8 index = 0;
810 810
diff --git a/drivers/net/wireless/zd1211rw/zd_chip.c b/drivers/net/wireless/zd1211rw/zd_chip.c
index dfa1b9bc22c8..7ca95c414fa8 100644
--- a/drivers/net/wireless/zd1211rw/zd_chip.c
+++ b/drivers/net/wireless/zd1211rw/zd_chip.c
@@ -1325,151 +1325,11 @@ int zd_chip_set_basic_rates(struct zd_chip *chip, u16 cr_rates)
1325 return r; 1325 return r;
1326} 1326}
1327 1327
1328static int ofdm_qual_db(u8 status_quality, u8 zd_rate, unsigned int size)
1329{
1330 static const u16 constants[] = {
1331 715, 655, 585, 540, 470, 410, 360, 315,
1332 270, 235, 205, 175, 150, 125, 105, 85,
1333 65, 50, 40, 25, 15
1334 };
1335
1336 int i;
1337 u32 x;
1338
1339 /* It seems that their quality parameter is somehow per signal
1340 * and is now transferred per bit.
1341 */
1342 switch (zd_rate) {
1343 case ZD_OFDM_RATE_6M:
1344 case ZD_OFDM_RATE_12M:
1345 case ZD_OFDM_RATE_24M:
1346 size *= 2;
1347 break;
1348 case ZD_OFDM_RATE_9M:
1349 case ZD_OFDM_RATE_18M:
1350 case ZD_OFDM_RATE_36M:
1351 case ZD_OFDM_RATE_54M:
1352 size *= 4;
1353 size /= 3;
1354 break;
1355 case ZD_OFDM_RATE_48M:
1356 size *= 3;
1357 size /= 2;
1358 break;
1359 default:
1360 return -EINVAL;
1361 }
1362
1363 x = (10000 * status_quality)/size;
1364 for (i = 0; i < ARRAY_SIZE(constants); i++) {
1365 if (x > constants[i])
1366 break;
1367 }
1368
1369 switch (zd_rate) {
1370 case ZD_OFDM_RATE_6M:
1371 case ZD_OFDM_RATE_9M:
1372 i += 3;
1373 break;
1374 case ZD_OFDM_RATE_12M:
1375 case ZD_OFDM_RATE_18M:
1376 i += 5;
1377 break;
1378 case ZD_OFDM_RATE_24M:
1379 case ZD_OFDM_RATE_36M:
1380 i += 9;
1381 break;
1382 case ZD_OFDM_RATE_48M:
1383 case ZD_OFDM_RATE_54M:
1384 i += 15;
1385 break;
1386 default:
1387 return -EINVAL;
1388 }
1389
1390 return i;
1391}
1392
1393static int ofdm_qual_percent(u8 status_quality, u8 zd_rate, unsigned int size)
1394{
1395 int r;
1396
1397 r = ofdm_qual_db(status_quality, zd_rate, size);
1398 ZD_ASSERT(r >= 0);
1399 if (r < 0)
1400 r = 0;
1401
1402 r = (r * 100)/29;
1403 return r <= 100 ? r : 100;
1404}
1405
1406static unsigned int log10times100(unsigned int x)
1407{
1408 static const u8 log10[] = {
1409 0,
1410 0, 30, 47, 60, 69, 77, 84, 90, 95, 100,
1411 104, 107, 111, 114, 117, 120, 123, 125, 127, 130,
1412 132, 134, 136, 138, 139, 141, 143, 144, 146, 147,
1413 149, 150, 151, 153, 154, 155, 156, 157, 159, 160,
1414 161, 162, 163, 164, 165, 166, 167, 168, 169, 169,
1415 170, 171, 172, 173, 174, 174, 175, 176, 177, 177,
1416 178, 179, 179, 180, 181, 181, 182, 183, 183, 184,
1417 185, 185, 186, 186, 187, 188, 188, 189, 189, 190,
1418 190, 191, 191, 192, 192, 193, 193, 194, 194, 195,
1419 195, 196, 196, 197, 197, 198, 198, 199, 199, 200,
1420 200, 200, 201, 201, 202, 202, 202, 203, 203, 204,
1421 204, 204, 205, 205, 206, 206, 206, 207, 207, 207,
1422 208, 208, 208, 209, 209, 210, 210, 210, 211, 211,
1423 211, 212, 212, 212, 213, 213, 213, 213, 214, 214,
1424 214, 215, 215, 215, 216, 216, 216, 217, 217, 217,
1425 217, 218, 218, 218, 219, 219, 219, 219, 220, 220,
1426 220, 220, 221, 221, 221, 222, 222, 222, 222, 223,
1427 223, 223, 223, 224, 224, 224, 224,
1428 };
1429
1430 return x < ARRAY_SIZE(log10) ? log10[x] : 225;
1431}
1432
1433enum {
1434 MAX_CCK_EVM_DB = 45,
1435};
1436
1437static int cck_evm_db(u8 status_quality)
1438{
1439 return (20 * log10times100(status_quality)) / 100;
1440}
1441
1442static int cck_snr_db(u8 status_quality)
1443{
1444 int r = MAX_CCK_EVM_DB - cck_evm_db(status_quality);
1445 ZD_ASSERT(r >= 0);
1446 return r;
1447}
1448
1449static int cck_qual_percent(u8 status_quality)
1450{
1451 int r;
1452
1453 r = cck_snr_db(status_quality);
1454 r = (100*r)/17;
1455 return r <= 100 ? r : 100;
1456}
1457
1458static inline u8 zd_rate_from_ofdm_plcp_header(const void *rx_frame) 1328static inline u8 zd_rate_from_ofdm_plcp_header(const void *rx_frame)
1459{ 1329{
1460 return ZD_OFDM | zd_ofdm_plcp_header_rate(rx_frame); 1330 return ZD_OFDM | zd_ofdm_plcp_header_rate(rx_frame);
1461} 1331}
1462 1332
1463u8 zd_rx_qual_percent(const void *rx_frame, unsigned int size,
1464 const struct rx_status *status)
1465{
1466 return (status->frame_status&ZD_RX_OFDM) ?
1467 ofdm_qual_percent(status->signal_quality_ofdm,
1468 zd_rate_from_ofdm_plcp_header(rx_frame),
1469 size) :
1470 cck_qual_percent(status->signal_quality_cck);
1471}
1472
1473/** 1333/**
1474 * zd_rx_rate - report zd-rate 1334 * zd_rx_rate - report zd-rate
1475 * @rx_frame - received frame 1335 * @rx_frame - received frame
diff --git a/drivers/net/wireless/zd1211rw/zd_chip.h b/drivers/net/wireless/zd1211rw/zd_chip.h
index 9fd8f3508d66..f8bbf7d302ae 100644
--- a/drivers/net/wireless/zd1211rw/zd_chip.h
+++ b/drivers/net/wireless/zd1211rw/zd_chip.h
@@ -929,9 +929,6 @@ static inline int zd_get_beacon_interval(struct zd_chip *chip, u32 *interval)
929 929
930struct rx_status; 930struct rx_status;
931 931
932u8 zd_rx_qual_percent(const void *rx_frame, unsigned int size,
933 const struct rx_status *status);
934
935u8 zd_rx_rate(const void *rx_frame, const struct rx_status *status); 932u8 zd_rx_rate(const void *rx_frame, const struct rx_status *status);
936 933
937struct zd_mc_hash { 934struct zd_mc_hash {
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
index cf51e8f8174b..8ebf5c33955d 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.c
+++ b/drivers/net/wireless/zd1211rw/zd_mac.c
@@ -828,9 +828,6 @@ int zd_mac_rx(struct ieee80211_hw *hw, const u8 *buffer, unsigned int length)
828 stats.freq = zd_channels[_zd_chip_get_channel(&mac->chip) - 1].center_freq; 828 stats.freq = zd_channels[_zd_chip_get_channel(&mac->chip) - 1].center_freq;
829 stats.band = IEEE80211_BAND_2GHZ; 829 stats.band = IEEE80211_BAND_2GHZ;
830 stats.signal = status->signal_strength; 830 stats.signal = status->signal_strength;
831 stats.qual = zd_rx_qual_percent(buffer,
832 length - sizeof(struct rx_status),
833 status);
834 831
835 rate = zd_rx_rate(buffer, status); 832 rate = zd_rx_rate(buffer, status);
836 833
diff --git a/drivers/pci/hotplug/shpchp.h b/drivers/pci/hotplug/shpchp.h
index bd588eb8e922..8e210cd76e55 100644
--- a/drivers/pci/hotplug/shpchp.h
+++ b/drivers/pci/hotplug/shpchp.h
@@ -121,7 +121,7 @@ struct controller {
121#define PCI_DEVICE_ID_AMD_GOLAM_7450 0x7450 121#define PCI_DEVICE_ID_AMD_GOLAM_7450 0x7450
122#define PCI_DEVICE_ID_AMD_POGO_7458 0x7458 122#define PCI_DEVICE_ID_AMD_POGO_7458 0x7458
123 123
124/* AMD PCIX bridge registers */ 124/* AMD PCI-X bridge registers */
125#define PCIX_MEM_BASE_LIMIT_OFFSET 0x1C 125#define PCIX_MEM_BASE_LIMIT_OFFSET 0x1C
126#define PCIX_MISCII_OFFSET 0x48 126#define PCIX_MISCII_OFFSET 0x48
127#define PCIX_MISC_BRIDGE_ERRORS_OFFSET 0x80 127#define PCIX_MISC_BRIDGE_ERRORS_OFFSET 0x80
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index e56f9bed6f2b..417312528ddf 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -305,7 +305,7 @@ struct device_domain_info {
305 int segment; /* PCI domain */ 305 int segment; /* PCI domain */
306 u8 bus; /* PCI bus number */ 306 u8 bus; /* PCI bus number */
307 u8 devfn; /* PCI devfn number */ 307 u8 devfn; /* PCI devfn number */
308 struct pci_dev *dev; /* it's NULL for PCIE-to-PCI bridge */ 308 struct pci_dev *dev; /* it's NULL for PCIe-to-PCI bridge */
309 struct intel_iommu *iommu; /* IOMMU used by this device */ 309 struct intel_iommu *iommu; /* IOMMU used by this device */
310 struct dmar_domain *domain; /* pointer to domain */ 310 struct dmar_domain *domain; /* pointer to domain */
311}; 311};
@@ -1604,7 +1604,7 @@ domain_context_mapping(struct dmar_domain *domain, struct pci_dev *pdev,
1604 return ret; 1604 return ret;
1605 parent = parent->bus->self; 1605 parent = parent->bus->self;
1606 } 1606 }
1607 if (pci_is_pcie(tmp)) /* this is a PCIE-to-PCI bridge */ 1607 if (pci_is_pcie(tmp)) /* this is a PCIe-to-PCI bridge */
1608 return domain_context_mapping_one(domain, 1608 return domain_context_mapping_one(domain,
1609 pci_domain_nr(tmp->subordinate), 1609 pci_domain_nr(tmp->subordinate),
1610 tmp->subordinate->number, 0, 1610 tmp->subordinate->number, 0,
@@ -3325,7 +3325,7 @@ static void iommu_detach_dependent_devices(struct intel_iommu *iommu,
3325 parent->devfn); 3325 parent->devfn);
3326 parent = parent->bus->self; 3326 parent = parent->bus->self;
3327 } 3327 }
3328 if (pci_is_pcie(tmp)) /* this is a PCIE-to-PCI bridge */ 3328 if (pci_is_pcie(tmp)) /* this is a PCIe-to-PCI bridge */
3329 iommu_detach_dev(iommu, 3329 iommu_detach_dev(iommu,
3330 tmp->subordinate->number, 0); 3330 tmp->subordinate->number, 0);
3331 else /* this is a legacy PCI bridge */ 3331 else /* this is a legacy PCI bridge */
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c
index 8b65a489581b..95b849130ad4 100644
--- a/drivers/pci/intr_remapping.c
+++ b/drivers/pci/intr_remapping.c
@@ -528,7 +528,7 @@ int set_msi_sid(struct irte *irte, struct pci_dev *dev)
528 528
529 bridge = pci_find_upstream_pcie_bridge(dev); 529 bridge = pci_find_upstream_pcie_bridge(dev);
530 if (bridge) { 530 if (bridge) {
531 if (pci_is_pcie(bridge))/* this is a PCIE-to-PCI/PCIX bridge */ 531 if (pci_is_pcie(bridge))/* this is a PCIe-to-PCI/PCIX bridge */
532 set_irte_sid(irte, SVT_VERIFY_BUS, SQ_ALL_16, 532 set_irte_sid(irte, SVT_VERIFY_BUS, SQ_ALL_16,
533 (bridge->bus->number << 8) | dev->bus->number); 533 (bridge->bus->number << 8) | dev->bus->number);
534 else /* this is a legacy PCI bridge */ 534 else /* this is a legacy PCI bridge */
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index cc617ddd33d0..7e2829538a4c 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -112,11 +112,7 @@ static bool acpi_pci_can_wakeup(struct pci_dev *dev)
112static void acpi_pci_propagate_wakeup_enable(struct pci_bus *bus, bool enable) 112static void acpi_pci_propagate_wakeup_enable(struct pci_bus *bus, bool enable)
113{ 113{
114 while (bus->parent) { 114 while (bus->parent) {
115 struct pci_dev *bridge = bus->self; 115 if (!acpi_pm_device_sleep_wake(&bus->self->dev, enable))
116 int ret;
117
118 ret = acpi_pm_device_sleep_wake(&bridge->dev, enable);
119 if (!ret || pci_is_pcie(bridge))
120 return; 116 return;
121 bus = bus->parent; 117 bus = bus->parent;
122 } 118 }
@@ -131,9 +127,7 @@ static int acpi_pci_sleep_wake(struct pci_dev *dev, bool enable)
131 if (acpi_pci_can_wakeup(dev)) 127 if (acpi_pci_can_wakeup(dev))
132 return acpi_pm_device_sleep_wake(&dev->dev, enable); 128 return acpi_pm_device_sleep_wake(&dev->dev, enable);
133 129
134 if (!pci_is_pcie(dev)) 130 acpi_pci_propagate_wakeup_enable(dev->bus, enable);
135 acpi_pci_propagate_wakeup_enable(dev->bus, enable);
136
137 return 0; 131 return 0;
138} 132}
139 133
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 0bc27e059019..0906599ebfde 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -1153,11 +1153,11 @@ pci_disable_device(struct pci_dev *dev)
1153 1153
1154/** 1154/**
1155 * pcibios_set_pcie_reset_state - set reset state for device dev 1155 * pcibios_set_pcie_reset_state - set reset state for device dev
1156 * @dev: the PCI-E device reset 1156 * @dev: the PCIe device reset
1157 * @state: Reset state to enter into 1157 * @state: Reset state to enter into
1158 * 1158 *
1159 * 1159 *
1160 * Sets the PCI-E reset state for the device. This is the default 1160 * Sets the PCIe reset state for the device. This is the default
1161 * implementation. Architecture implementations can override this. 1161 * implementation. Architecture implementations can override this.
1162 */ 1162 */
1163int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev, 1163int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev,
@@ -1168,7 +1168,7 @@ int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev,
1168 1168
1169/** 1169/**
1170 * pci_set_pcie_reset_state - set reset state for device dev 1170 * pci_set_pcie_reset_state - set reset state for device dev
1171 * @dev: the PCI-E device reset 1171 * @dev: the PCIe device reset
1172 * @state: Reset state to enter into 1172 * @state: Reset state to enter into
1173 * 1173 *
1174 * 1174 *
@@ -2296,6 +2296,10 @@ static int pci_dev_reset(struct pci_dev *dev, int probe)
2296 down(&dev->dev.sem); 2296 down(&dev->dev.sem);
2297 } 2297 }
2298 2298
2299 rc = pci_dev_specific_reset(dev, probe);
2300 if (rc != -ENOTTY)
2301 goto done;
2302
2299 rc = pcie_flr(dev, probe); 2303 rc = pcie_flr(dev, probe);
2300 if (rc != -ENOTTY) 2304 if (rc != -ENOTTY)
2301 goto done; 2305 goto done;
@@ -2779,6 +2783,11 @@ int __attribute__ ((weak)) pci_ext_cfg_avail(struct pci_dev *dev)
2779 return 1; 2783 return 1;
2780} 2784}
2781 2785
2786void __weak pci_fixup_cardbus(struct pci_bus *bus)
2787{
2788}
2789EXPORT_SYMBOL(pci_fixup_cardbus);
2790
2782static int __init pci_setup(char *str) 2791static int __init pci_setup(char *str)
2783{ 2792{
2784 while (str) { 2793 while (str) {
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 33ed8e0aba1e..fbd0e3adbca3 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -313,4 +313,12 @@ static inline int pci_resource_alignment(struct pci_dev *dev,
313 313
314extern void pci_enable_acs(struct pci_dev *dev); 314extern void pci_enable_acs(struct pci_dev *dev);
315 315
316struct pci_dev_reset_methods {
317 u16 vendor;
318 u16 device;
319 int (*reset)(struct pci_dev *dev, int probe);
320};
321
322extern int pci_dev_specific_reset(struct pci_dev *dev, int probe);
323
316#endif /* DRIVERS_PCI_H */ 324#endif /* DRIVERS_PCI_H */
diff --git a/drivers/pci/pcie/aer/Kconfig.debug b/drivers/pci/pcie/aer/Kconfig.debug
index b8c925c1f6aa..9142949734f5 100644
--- a/drivers/pci/pcie/aer/Kconfig.debug
+++ b/drivers/pci/pcie/aer/Kconfig.debug
@@ -3,14 +3,14 @@
3# 3#
4 4
5config PCIEAER_INJECT 5config PCIEAER_INJECT
6 tristate "PCIE AER error injector support" 6 tristate "PCIe AER error injector support"
7 depends on PCIEAER 7 depends on PCIEAER
8 default n 8 default n
9 help 9 help
10 This enables PCI Express Root Port Advanced Error Reporting 10 This enables PCI Express Root Port Advanced Error Reporting
11 (AER) software error injector. 11 (AER) software error injector.
12 12
13 Debuging PCIE AER code is quite difficult because it is hard 13 Debugging PCIe AER code is quite difficult because it is hard
14 to trigger various real hardware errors. Software based 14 to trigger various real hardware errors. Software based
15 error injection can fake almost all kinds of errors with the 15 error injection can fake almost all kinds of errors with the
16 help of a user space helper tool aer-inject, which can be 16 help of a user space helper tool aer-inject, which can be
diff --git a/drivers/pci/pcie/aer/aer_inject.c b/drivers/pci/pcie/aer/aer_inject.c
index 7fcd5331b14c..797d47809f7a 100644
--- a/drivers/pci/pcie/aer/aer_inject.c
+++ b/drivers/pci/pcie/aer/aer_inject.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * PCIE AER software error injection support. 2 * PCIe AER software error injection support.
3 * 3 *
4 * Debuging PCIE AER code is quite difficult because it is hard to 4 * Debuging PCIe AER code is quite difficult because it is hard to
5 * trigger various real hardware errors. Software based error 5 * trigger various real hardware errors. Software based error
6 * injection can fake almost all kinds of errors with the help of a 6 * injection can fake almost all kinds of errors with the help of a
7 * user space helper tool aer-inject, which can be gotten from: 7 * user space helper tool aer-inject, which can be gotten from:
@@ -484,5 +484,5 @@ static void __exit aer_inject_exit(void)
484module_init(aer_inject_init); 484module_init(aer_inject_init);
485module_exit(aer_inject_exit); 485module_exit(aer_inject_exit);
486 486
487MODULE_DESCRIPTION("PCIE AER software error injector"); 487MODULE_DESCRIPTION("PCIe AER software error injector");
488MODULE_LICENSE("GPL"); 488MODULE_LICENSE("GPL");
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c
index 97a345927b55..21f215f4daa3 100644
--- a/drivers/pci/pcie/aer/aerdrv.c
+++ b/drivers/pci/pcie/aer/aerdrv.c
@@ -155,7 +155,7 @@ static struct aer_rpc *aer_alloc_rpc(struct pcie_device *dev)
155 mutex_init(&rpc->rpc_mutex); 155 mutex_init(&rpc->rpc_mutex);
156 init_waitqueue_head(&rpc->wait_release); 156 init_waitqueue_head(&rpc->wait_release);
157 157
158 /* Use PCIE bus function to store rpc into PCIE device */ 158 /* Use PCIe bus function to store rpc into PCIe device */
159 set_service_data(dev, rpc); 159 set_service_data(dev, rpc);
160 160
161 return rpc; 161 return rpc;
diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c
index 8edb2f300e8f..04814087658d 100644
--- a/drivers/pci/pcie/aer/aerdrv_acpi.c
+++ b/drivers/pci/pcie/aer/aerdrv_acpi.c
@@ -24,7 +24,7 @@
24 * 24 *
25 * @return: Zero on success. Nonzero otherwise. 25 * @return: Zero on success. Nonzero otherwise.
26 * 26 *
27 * Invoked when PCIE bus loads AER service driver. To avoid conflict with 27 * Invoked when PCIe bus loads AER service driver. To avoid conflict with
28 * BIOS AER support requires BIOS to yield AER control to OS native driver. 28 * BIOS AER support requires BIOS to yield AER control to OS native driver.
29 **/ 29 **/
30int aer_osc_setup(struct pcie_device *pciedev) 30int aer_osc_setup(struct pcie_device *pciedev)
diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
index ae672ca80333..c843a799814d 100644
--- a/drivers/pci/pcie/aer/aerdrv_core.c
+++ b/drivers/pci/pcie/aer/aerdrv_core.c
@@ -587,7 +587,7 @@ static void handle_error_source(struct pcie_device *aerdev,
587 * aer_enable_rootport - enable Root Port's interrupts when receiving messages 587 * aer_enable_rootport - enable Root Port's interrupts when receiving messages
588 * @rpc: pointer to a Root Port data structure 588 * @rpc: pointer to a Root Port data structure
589 * 589 *
590 * Invoked when PCIE bus loads AER service driver. 590 * Invoked when PCIe bus loads AER service driver.
591 */ 591 */
592void aer_enable_rootport(struct aer_rpc *rpc) 592void aer_enable_rootport(struct aer_rpc *rpc)
593{ 593{
@@ -597,7 +597,7 @@ void aer_enable_rootport(struct aer_rpc *rpc)
597 u32 reg32; 597 u32 reg32;
598 598
599 pos = pci_pcie_cap(pdev); 599 pos = pci_pcie_cap(pdev);
600 /* Clear PCIE Capability's Device Status */ 600 /* Clear PCIe Capability's Device Status */
601 pci_read_config_word(pdev, pos+PCI_EXP_DEVSTA, &reg16); 601 pci_read_config_word(pdev, pos+PCI_EXP_DEVSTA, &reg16);
602 pci_write_config_word(pdev, pos+PCI_EXP_DEVSTA, reg16); 602 pci_write_config_word(pdev, pos+PCI_EXP_DEVSTA, reg16);
603 603
@@ -631,7 +631,7 @@ void aer_enable_rootport(struct aer_rpc *rpc)
631 * disable_root_aer - disable Root Port's interrupts when receiving messages 631 * disable_root_aer - disable Root Port's interrupts when receiving messages
632 * @rpc: pointer to a Root Port data structure 632 * @rpc: pointer to a Root Port data structure
633 * 633 *
634 * Invoked when PCIE bus unloads AER service driver. 634 * Invoked when PCIe bus unloads AER service driver.
635 */ 635 */
636static void disable_root_aer(struct aer_rpc *rpc) 636static void disable_root_aer(struct aer_rpc *rpc)
637{ 637{
diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c
index 44acde72294f..9d3e4c8d0184 100644
--- a/drivers/pci/pcie/aer/aerdrv_errprint.c
+++ b/drivers/pci/pcie/aer/aerdrv_errprint.c
@@ -184,7 +184,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info)
184 184
185 if (info->status == 0) { 185 if (info->status == 0) {
186 AER_PR(info, dev, 186 AER_PR(info, dev,
187 "PCIE Bus Error: severity=%s, type=Unaccessible, " 187 "PCIe Bus Error: severity=%s, type=Unaccessible, "
188 "id=%04x(Unregistered Agent ID)\n", 188 "id=%04x(Unregistered Agent ID)\n",
189 aer_error_severity_string[info->severity], id); 189 aer_error_severity_string[info->severity], id);
190 } else { 190 } else {
@@ -194,7 +194,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info)
194 agent = AER_GET_AGENT(info->severity, info->status); 194 agent = AER_GET_AGENT(info->severity, info->status);
195 195
196 AER_PR(info, dev, 196 AER_PR(info, dev,
197 "PCIE Bus Error: severity=%s, type=%s, id=%04x(%s)\n", 197 "PCIe Bus Error: severity=%s, type=%s, id=%04x(%s)\n",
198 aer_error_severity_string[info->severity], 198 aer_error_severity_string[info->severity],
199 aer_error_layer[layer], id, aer_agent_string[agent]); 199 aer_error_layer[layer], id, aer_agent_string[agent]);
200 200
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 5a01fc7fbf05..be53d98fa384 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * File: drivers/pci/pcie/aspm.c 2 * File: drivers/pci/pcie/aspm.c
3 * Enabling PCIE link L0s/L1 state and Clock Power Management 3 * Enabling PCIe link L0s/L1 state and Clock Power Management
4 * 4 *
5 * Copyright (C) 2007 Intel 5 * Copyright (C) 2007 Intel
6 * Copyright (C) Zhang Yanmin (yanmin.zhang@intel.com) 6 * Copyright (C) Zhang Yanmin (yanmin.zhang@intel.com)
@@ -499,7 +499,7 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
499 int pos; 499 int pos;
500 u32 reg32; 500 u32 reg32;
501 /* 501 /*
502 * Some functions in a slot might not all be PCIE functions, 502 * Some functions in a slot might not all be PCIe functions,
503 * very strange. Disable ASPM for the whole slot 503 * very strange. Disable ASPM for the whole slot
504 */ 504 */
505 list_for_each_entry(child, &pdev->subordinate->devices, bus_list) { 505 list_for_each_entry(child, &pdev->subordinate->devices, bus_list) {
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
index a49452e2aed9..34d65172a4d7 100644
--- a/drivers/pci/pcie/portdrv_pci.c
+++ b/drivers/pci/pcie/portdrv_pci.c
@@ -24,7 +24,7 @@
24 */ 24 */
25#define DRIVER_VERSION "v1.0" 25#define DRIVER_VERSION "v1.0"
26#define DRIVER_AUTHOR "tom.l.nguyen@intel.com" 26#define DRIVER_AUTHOR "tom.l.nguyen@intel.com"
27#define DRIVER_DESC "PCIE Port Bus Driver" 27#define DRIVER_DESC "PCIe Port Bus Driver"
28MODULE_AUTHOR(DRIVER_AUTHOR); 28MODULE_AUTHOR(DRIVER_AUTHOR);
29MODULE_DESCRIPTION(DRIVER_DESC); 29MODULE_DESCRIPTION(DRIVER_DESC);
30MODULE_LICENSE("GPL"); 30MODULE_LICENSE("GPL");
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 7cfa7c38d318..c74694345b6e 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2629,14 +2629,86 @@ static int __init pci_apply_final_quirks(void)
2629 if (!pci_cache_line_size) { 2629 if (!pci_cache_line_size) {
2630 printk(KERN_DEBUG "PCI: CLS %u bytes, default %u\n", 2630 printk(KERN_DEBUG "PCI: CLS %u bytes, default %u\n",
2631 cls << 2, pci_dfl_cache_line_size << 2); 2631 cls << 2, pci_dfl_cache_line_size << 2);
2632 pci_cache_line_size = cls; 2632 pci_cache_line_size = cls ? cls : pci_dfl_cache_line_size;
2633 } 2633 }
2634 2634
2635 return 0; 2635 return 0;
2636} 2636}
2637 2637
2638fs_initcall_sync(pci_apply_final_quirks); 2638fs_initcall_sync(pci_apply_final_quirks);
2639
2640/*
2641 * Followings are device-specific reset methods which can be used to
2642 * reset a single function if other methods (e.g. FLR, PM D0->D3) are
2643 * not available.
2644 */
2645static int reset_intel_generic_dev(struct pci_dev *dev, int probe)
2646{
2647 int pos;
2648
2649 /* only implement PCI_CLASS_SERIAL_USB at present */
2650 if (dev->class == PCI_CLASS_SERIAL_USB) {
2651 pos = pci_find_capability(dev, PCI_CAP_ID_VNDR);
2652 if (!pos)
2653 return -ENOTTY;
2654
2655 if (probe)
2656 return 0;
2657
2658 pci_write_config_byte(dev, pos + 0x4, 1);
2659 msleep(100);
2660
2661 return 0;
2662 } else {
2663 return -ENOTTY;
2664 }
2665}
2666
2667static int reset_intel_82599_sfp_virtfn(struct pci_dev *dev, int probe)
2668{
2669 int pos;
2670
2671 pos = pci_find_capability(dev, PCI_CAP_ID_EXP);
2672 if (!pos)
2673 return -ENOTTY;
2674
2675 if (probe)
2676 return 0;
2677
2678 pci_write_config_word(dev, pos + PCI_EXP_DEVCTL,
2679 PCI_EXP_DEVCTL_BCR_FLR);
2680 msleep(100);
2681
2682 return 0;
2683}
2684
2685#define PCI_DEVICE_ID_INTEL_82599_SFP_VF 0x10ed
2686
2687static const struct pci_dev_reset_methods pci_dev_reset_methods[] = {
2688 { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF,
2689 reset_intel_82599_sfp_virtfn },
2690 { PCI_VENDOR_ID_INTEL, PCI_ANY_ID,
2691 reset_intel_generic_dev },
2692 { 0 }
2693};
2694
2695int pci_dev_specific_reset(struct pci_dev *dev, int probe)
2696{
2697 const struct pci_dev_reset_methods *i;
2698
2699 for (i = pci_dev_reset_methods; i->reset; i++) {
2700 if ((i->vendor == dev->vendor ||
2701 i->vendor == (u16)PCI_ANY_ID) &&
2702 (i->device == dev->device ||
2703 i->device == (u16)PCI_ANY_ID))
2704 return i->reset(dev, probe);
2705 }
2706
2707 return -ENOTTY;
2708}
2709
2639#else 2710#else
2640void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) {} 2711void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) {}
2712int pci_dev_specific_reset(struct pci_dev *dev, int probe) { return -ENOTTY; }
2641#endif 2713#endif
2642EXPORT_SYMBOL(pci_fixup_device); 2714EXPORT_SYMBOL(pci_fixup_device);
diff --git a/drivers/pci/search.c b/drivers/pci/search.c
index 6dae87143258..4a471dc4f4b9 100644
--- a/drivers/pci/search.c
+++ b/drivers/pci/search.c
@@ -15,9 +15,9 @@
15 15
16DECLARE_RWSEM(pci_bus_sem); 16DECLARE_RWSEM(pci_bus_sem);
17/* 17/*
18 * find the upstream PCIE-to-PCI bridge of a PCI device 18 * find the upstream PCIe-to-PCI bridge of a PCI device
19 * if the device is PCIE, return NULL 19 * if the device is PCIE, return NULL
20 * if the device isn't connected to a PCIE bridge (that is its parent is a 20 * if the device isn't connected to a PCIe bridge (that is its parent is a
21 * legacy PCI bridge and the bridge is directly connected to bus 0), return its 21 * legacy PCI bridge and the bridge is directly connected to bus 0), return its
22 * parent 22 * parent
23 */ 23 */
@@ -37,7 +37,7 @@ pci_find_upstream_pcie_bridge(struct pci_dev *pdev)
37 tmp = pdev; 37 tmp = pdev;
38 continue; 38 continue;
39 } 39 }
40 /* PCI device should connect to a PCIE bridge */ 40 /* PCI device should connect to a PCIe bridge */
41 if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) { 41 if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) {
42 /* Busted hardware? */ 42 /* Busted hardware? */
43 WARN_ON_ONCE(1); 43 WARN_ON_ONCE(1);
diff --git a/drivers/pcmcia/cardbus.c b/drivers/pcmcia/cardbus.c
index cdf50f3bc2df..d99f846451a3 100644
--- a/drivers/pcmcia/cardbus.c
+++ b/drivers/pcmcia/cardbus.c
@@ -222,7 +222,7 @@ int __ref cb_alloc(struct pcmcia_socket *s)
222 unsigned int max, pass; 222 unsigned int max, pass;
223 223
224 s->functions = pci_scan_slot(bus, PCI_DEVFN(0, 0)); 224 s->functions = pci_scan_slot(bus, PCI_DEVFN(0, 0));
225/* pcibios_fixup_bus(bus); */ 225 pci_fixup_cardbus(bus);
226 226
227 max = bus->secondary; 227 max = bus->secondary;
228 for (pass = 0; pass < 2; pass++) 228 for (pass = 0; pass < 2; pass++)
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index ec4faffe6b05..db32c25e3605 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -231,8 +231,36 @@ config THINKPAD_ACPI
231 231
232 This driver was formerly known as ibm-acpi. 232 This driver was formerly known as ibm-acpi.
233 233
234 Extra functionality will be available if the rfkill (CONFIG_RFKILL)
235 and/or ALSA (CONFIG_SND) subsystems are available in the kernel.
236 Note that if you want ThinkPad-ACPI to be built-in instead of
237 modular, ALSA and rfkill will also have to be built-in.
238
234 If you have an IBM or Lenovo ThinkPad laptop, say Y or M here. 239 If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
235 240
241config THINKPAD_ACPI_ALSA_SUPPORT
242 bool "Console audio control ALSA interface"
243 depends on THINKPAD_ACPI
244 depends on SND
245 depends on SND = y || THINKPAD_ACPI = SND
246 default y
247 ---help---
248 Enables monitoring of the built-in console audio output control
249 (headphone and speakers), which is operated by the mute and (in
250 some ThinkPad models) volume hotkeys.
251
252 If this option is enabled, ThinkPad-ACPI will export an ALSA card
253 with a single read-only mixer control, which should be used for
254 on-screen-display feedback purposes by the Desktop Environment.
255
256 Optionally, the driver will also allow software control (the
257 ALSA mixer will be made read-write). Please refer to the driver
258 documentation for details.
259
260 All IBM models have both volume and mute control. Newer Lenovo
261 models only have mute control (the volume hotkeys are just normal
262 keys and volume control is done through the main HDA mixer).
263
236config THINKPAD_ACPI_DEBUGFACILITIES 264config THINKPAD_ACPI_DEBUGFACILITIES
237 bool "Maintainer debug facilities" 265 bool "Maintainer debug facilities"
238 depends on THINKPAD_ACPI 266 depends on THINKPAD_ACPI
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index 916ccb2b316c..1b1dddbd5744 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -202,8 +202,13 @@ static void dell_wmi_notify(u32 value, void *context)
202 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; 202 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
203 static struct key_entry *key; 203 static struct key_entry *key;
204 union acpi_object *obj; 204 union acpi_object *obj;
205 acpi_status status;
205 206
206 wmi_get_event_data(value, &response); 207 status = wmi_get_event_data(value, &response);
208 if (status != AE_OK) {
209 printk(KERN_INFO "dell-wmi: bad event status 0x%x\n", status);
210 return;
211 }
207 212
208 obj = (union acpi_object *)response.pointer; 213 obj = (union acpi_object *)response.pointer;
209 214
@@ -323,8 +328,9 @@ static int __init dell_wmi_input_setup(void)
323static int __init dell_wmi_init(void) 328static int __init dell_wmi_init(void)
324{ 329{
325 int err; 330 int err;
331 acpi_status status;
326 332
327 if (wmi_has_guid(DELL_EVENT_GUID)) { 333 if (!wmi_has_guid(DELL_EVENT_GUID)) {
328 printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); 334 printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n");
329 return -ENODEV; 335 return -ENODEV;
330 } 336 }
@@ -336,14 +342,14 @@ static int __init dell_wmi_init(void)
336 if (err) 342 if (err)
337 return err; 343 return err;
338 344
339 err = wmi_install_notify_handler(DELL_EVENT_GUID, 345 status = wmi_install_notify_handler(DELL_EVENT_GUID,
340 dell_wmi_notify, NULL); 346 dell_wmi_notify, NULL);
341 if (err) { 347 if (ACPI_FAILURE(status)) {
342 input_unregister_device(dell_wmi_input_dev); 348 input_unregister_device(dell_wmi_input_dev);
343 printk(KERN_ERR 349 printk(KERN_ERR
344 "dell-wmi: Unable to register notify handler - %d\n", 350 "dell-wmi: Unable to register notify handler - %d\n",
345 err); 351 status);
346 return err; 352 return -ENODEV;
347 } 353 }
348 354
349 return 0; 355 return 0;
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c
index 8781d8fa7a57..5b648f0c6075 100644
--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
@@ -338,8 +338,13 @@ static void hp_wmi_notify(u32 value, void *context)
338 static struct key_entry *key; 338 static struct key_entry *key;
339 union acpi_object *obj; 339 union acpi_object *obj;
340 int eventcode; 340 int eventcode;
341 acpi_status status;
341 342
342 wmi_get_event_data(value, &response); 343 status = wmi_get_event_data(value, &response);
344 if (status != AE_OK) {
345 printk(KERN_INFO "hp-wmi: bad event status 0x%x\n", status);
346 return;
347 }
343 348
344 obj = (union acpi_object *)response.pointer; 349 obj = (union acpi_object *)response.pointer;
345 350
@@ -581,7 +586,7 @@ static int __init hp_wmi_init(void)
581 if (wmi_has_guid(HPWMI_EVENT_GUID)) { 586 if (wmi_has_guid(HPWMI_EVENT_GUID)) {
582 err = wmi_install_notify_handler(HPWMI_EVENT_GUID, 587 err = wmi_install_notify_handler(HPWMI_EVENT_GUID,
583 hp_wmi_notify, NULL); 588 hp_wmi_notify, NULL);
584 if (!err) 589 if (ACPI_SUCCESS(err))
585 hp_wmi_input_setup(); 590 hp_wmi_input_setup();
586 } 591 }
587 592
diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
index 7f77f908bb01..f5f70d4c6913 100644
--- a/drivers/platform/x86/msi-wmi.c
+++ b/drivers/platform/x86/msi-wmi.c
@@ -149,8 +149,13 @@ static void msi_wmi_notify(u32 value, void *context)
149 static struct key_entry *key; 149 static struct key_entry *key;
150 union acpi_object *obj; 150 union acpi_object *obj;
151 ktime_t cur; 151 ktime_t cur;
152 acpi_status status;
152 153
153 wmi_get_event_data(value, &response); 154 status = wmi_get_event_data(value, &response);
155 if (status != AE_OK) {
156 printk(KERN_INFO DRV_PFX "bad event status 0x%x\n", status);
157 return;
158 }
154 159
155 obj = (union acpi_object *)response.pointer; 160 obj = (union acpi_object *)response.pointer;
156 161
@@ -236,7 +241,7 @@ static int __init msi_wmi_init(void)
236 } 241 }
237 err = wmi_install_notify_handler(MSIWMI_EVENT_GUID, 242 err = wmi_install_notify_handler(MSIWMI_EVENT_GUID,
238 msi_wmi_notify, NULL); 243 msi_wmi_notify, NULL);
239 if (err) 244 if (ACPI_FAILURE(err))
240 return -EINVAL; 245 return -EINVAL;
241 246
242 err = msi_wmi_input_setup(); 247 err = msi_wmi_input_setup();
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 448c8aeb166b..e67e4feb35cb 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -6384,11 +6384,13 @@ static struct ibm_struct brightness_driver_data = {
6384 * and we leave them unchanged. 6384 * and we leave them unchanged.
6385 */ 6385 */
6386 6386
6387#ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT
6388
6387#define TPACPI_ALSA_DRVNAME "ThinkPad EC" 6389#define TPACPI_ALSA_DRVNAME "ThinkPad EC"
6388#define TPACPI_ALSA_SHRTNAME "ThinkPad Console Audio Control" 6390#define TPACPI_ALSA_SHRTNAME "ThinkPad Console Audio Control"
6389#define TPACPI_ALSA_MIXERNAME TPACPI_ALSA_SHRTNAME 6391#define TPACPI_ALSA_MIXERNAME TPACPI_ALSA_SHRTNAME
6390 6392
6391static int alsa_index = SNDRV_DEFAULT_IDX1; 6393static int alsa_index = ~((1 << (SNDRV_CARDS - 3)) - 1); /* last three slots */
6392static char *alsa_id = "ThinkPadEC"; 6394static char *alsa_id = "ThinkPadEC";
6393static int alsa_enable = SNDRV_DEFAULT_ENABLE1; 6395static int alsa_enable = SNDRV_DEFAULT_ENABLE1;
6394 6396
@@ -6705,10 +6707,11 @@ static int __init volume_create_alsa_mixer(void)
6705 6707
6706 rc = snd_card_create(alsa_index, alsa_id, THIS_MODULE, 6708 rc = snd_card_create(alsa_index, alsa_id, THIS_MODULE,
6707 sizeof(struct tpacpi_alsa_data), &card); 6709 sizeof(struct tpacpi_alsa_data), &card);
6708 if (rc < 0) 6710 if (rc < 0 || !card) {
6709 return rc; 6711 printk(TPACPI_ERR
6710 if (!card) 6712 "Failed to create ALSA card structures: %d\n", rc);
6711 return -ENOMEM; 6713 return 1;
6714 }
6712 6715
6713 BUG_ON(!card->private_data); 6716 BUG_ON(!card->private_data);
6714 data = card->private_data; 6717 data = card->private_data;
@@ -6741,8 +6744,9 @@ static int __init volume_create_alsa_mixer(void)
6741 rc = snd_ctl_add(card, ctl_vol); 6744 rc = snd_ctl_add(card, ctl_vol);
6742 if (rc < 0) { 6745 if (rc < 0) {
6743 printk(TPACPI_ERR 6746 printk(TPACPI_ERR
6744 "Failed to create ALSA volume control\n"); 6747 "Failed to create ALSA volume control: %d\n",
6745 goto err_out; 6748 rc);
6749 goto err_exit;
6746 } 6750 }
6747 data->ctl_vol_id = &ctl_vol->id; 6751 data->ctl_vol_id = &ctl_vol->id;
6748 } 6752 }
@@ -6750,22 +6754,25 @@ static int __init volume_create_alsa_mixer(void)
6750 ctl_mute = snd_ctl_new1(&volume_alsa_control_mute, NULL); 6754 ctl_mute = snd_ctl_new1(&volume_alsa_control_mute, NULL);
6751 rc = snd_ctl_add(card, ctl_mute); 6755 rc = snd_ctl_add(card, ctl_mute);
6752 if (rc < 0) { 6756 if (rc < 0) {
6753 printk(TPACPI_ERR "Failed to create ALSA mute control\n"); 6757 printk(TPACPI_ERR "Failed to create ALSA mute control: %d\n",
6754 goto err_out; 6758 rc);
6759 goto err_exit;
6755 } 6760 }
6756 data->ctl_mute_id = &ctl_mute->id; 6761 data->ctl_mute_id = &ctl_mute->id;
6757 6762
6758 snd_card_set_dev(card, &tpacpi_pdev->dev); 6763 snd_card_set_dev(card, &tpacpi_pdev->dev);
6759 rc = snd_card_register(card); 6764 rc = snd_card_register(card);
6760
6761err_out:
6762 if (rc < 0) { 6765 if (rc < 0) {
6763 snd_card_free(card); 6766 printk(TPACPI_ERR "Failed to register ALSA card: %d\n", rc);
6764 card = NULL; 6767 goto err_exit;
6765 } 6768 }
6766 6769
6767 alsa_card = card; 6770 alsa_card = card;
6768 return rc; 6771 return 0;
6772
6773err_exit:
6774 snd_card_free(card);
6775 return 1;
6769} 6776}
6770 6777
6771#define TPACPI_VOL_Q_MUTEONLY 0x0001 /* Mute-only control available */ 6778#define TPACPI_VOL_Q_MUTEONLY 0x0001 /* Mute-only control available */
@@ -7016,6 +7023,28 @@ static struct ibm_struct volume_driver_data = {
7016 .shutdown = volume_shutdown, 7023 .shutdown = volume_shutdown,
7017}; 7024};
7018 7025
7026#else /* !CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */
7027
7028#define alsa_card NULL
7029
7030static void inline volume_alsa_notify_change(void)
7031{
7032}
7033
7034static int __init volume_init(struct ibm_init_struct *iibm)
7035{
7036 printk(TPACPI_INFO
7037 "volume: disabled as there is no ALSA support in this kernel\n");
7038
7039 return 1;
7040}
7041
7042static struct ibm_struct volume_driver_data = {
7043 .name = "volume",
7044};
7045
7046#endif /* CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */
7047
7019/************************************************************************* 7048/*************************************************************************
7020 * Fan subdriver 7049 * Fan subdriver
7021 */ 7050 */
@@ -8738,6 +8767,7 @@ MODULE_PARM_DESC(hotkey_report_mode,
8738 "used for backwards compatibility with userspace, " 8767 "used for backwards compatibility with userspace, "
8739 "see documentation"); 8768 "see documentation");
8740 8769
8770#ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT
8741module_param_named(volume_mode, volume_mode, uint, 0444); 8771module_param_named(volume_mode, volume_mode, uint, 0444);
8742MODULE_PARM_DESC(volume_mode, 8772MODULE_PARM_DESC(volume_mode,
8743 "Selects volume control strategy: " 8773 "Selects volume control strategy: "
@@ -8760,6 +8790,7 @@ module_param_named(id, alsa_id, charp, 0444);
8760MODULE_PARM_DESC(id, "ALSA id for the ACPI EC Mixer"); 8790MODULE_PARM_DESC(id, "ALSA id for the ACPI EC Mixer");
8761module_param_named(enable, alsa_enable, bool, 0444); 8791module_param_named(enable, alsa_enable, bool, 0444);
8762MODULE_PARM_DESC(enable, "Enable the ALSA interface for the ACPI EC Mixer"); 8792MODULE_PARM_DESC(enable, "Enable the ALSA interface for the ACPI EC Mixer");
8793#endif /* CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */
8763 8794
8764#define TPACPI_PARAM(feature) \ 8795#define TPACPI_PARAM(feature) \
8765 module_param_call(feature, set_ibm_param, NULL, NULL, 0); \ 8796 module_param_call(feature, set_ibm_param, NULL, NULL, 0); \
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 9f93d6c0f510..b104302fea0a 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -492,8 +492,7 @@ wmi_notify_handler handler, void *data)
492 if (!guid || !handler) 492 if (!guid || !handler)
493 return AE_BAD_PARAMETER; 493 return AE_BAD_PARAMETER;
494 494
495 find_guid(guid, &block); 495 if (!find_guid(guid, &block))
496 if (!block)
497 return AE_NOT_EXIST; 496 return AE_NOT_EXIST;
498 497
499 if (block->handler) 498 if (block->handler)
@@ -521,8 +520,7 @@ acpi_status wmi_remove_notify_handler(const char *guid)
521 if (!guid) 520 if (!guid)
522 return AE_BAD_PARAMETER; 521 return AE_BAD_PARAMETER;
523 522
524 find_guid(guid, &block); 523 if (!find_guid(guid, &block))
525 if (!block)
526 return AE_NOT_EXIST; 524 return AE_NOT_EXIST;
527 525
528 if (!block->handler) 526 if (!block->handler)
@@ -716,6 +714,22 @@ static int wmi_class_init(void)
716 return ret; 714 return ret;
717} 715}
718 716
717static bool guid_already_parsed(const char *guid_string)
718{
719 struct guid_block *gblock;
720 struct wmi_block *wblock;
721 struct list_head *p;
722
723 list_for_each(p, &wmi_blocks.list) {
724 wblock = list_entry(p, struct wmi_block, list);
725 gblock = &wblock->gblock;
726
727 if (strncmp(gblock->guid, guid_string, 16) == 0)
728 return true;
729 }
730 return false;
731}
732
719/* 733/*
720 * Parse the _WDG method for the GUID data blocks 734 * Parse the _WDG method for the GUID data blocks
721 */ 735 */
@@ -725,6 +739,7 @@ static __init acpi_status parse_wdg(acpi_handle handle)
725 union acpi_object *obj; 739 union acpi_object *obj;
726 struct guid_block *gblock; 740 struct guid_block *gblock;
727 struct wmi_block *wblock; 741 struct wmi_block *wblock;
742 char guid_string[37];
728 acpi_status status; 743 acpi_status status;
729 u32 i, total; 744 u32 i, total;
730 745
@@ -747,6 +762,19 @@ static __init acpi_status parse_wdg(acpi_handle handle)
747 memcpy(gblock, obj->buffer.pointer, obj->buffer.length); 762 memcpy(gblock, obj->buffer.pointer, obj->buffer.length);
748 763
749 for (i = 0; i < total; i++) { 764 for (i = 0; i < total; i++) {
765 /*
766 Some WMI devices, like those for nVidia hooks, have a
767 duplicate GUID. It's not clear what we should do in this
768 case yet, so for now, we'll just ignore the duplicate.
769 Anyone who wants to add support for that device can come
770 up with a better workaround for the mess then.
771 */
772 if (guid_already_parsed(gblock[i].guid) == true) {
773 wmi_gtoa(gblock[i].guid, guid_string);
774 printk(KERN_INFO PREFIX "Skipping duplicate GUID %s\n",
775 guid_string);
776 continue;
777 }
750 wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL); 778 wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL);
751 if (!wblock) 779 if (!wblock)
752 return AE_NO_MEMORY; 780 return AE_NO_MEMORY;
diff --git a/drivers/s390/cio/Makefile b/drivers/s390/cio/Makefile
index d033414f7599..e1b700a19648 100644
--- a/drivers/s390/cio/Makefile
+++ b/drivers/s390/cio/Makefile
@@ -10,5 +10,5 @@ obj-y += ccw_device.o cmf.o
10obj-$(CONFIG_CHSC_SCH) += chsc_sch.o 10obj-$(CONFIG_CHSC_SCH) += chsc_sch.o
11obj-$(CONFIG_CCWGROUP) += ccwgroup.o 11obj-$(CONFIG_CCWGROUP) += ccwgroup.o
12 12
13qdio-objs := qdio_main.o qdio_thinint.o qdio_debug.o qdio_perf.o qdio_setup.o 13qdio-objs := qdio_main.o qdio_thinint.o qdio_debug.o qdio_setup.o
14obj-$(CONFIG_QDIO) += qdio.o 14obj-$(CONFIG_QDIO) += qdio.o
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h
index ff7748a9199d..44f2f6a97f33 100644
--- a/drivers/s390/cio/qdio.h
+++ b/drivers/s390/cio/qdio.h
@@ -182,6 +182,34 @@ struct scssc_area {
182 u32:32; 182 u32:32;
183} __attribute__ ((packed)); 183} __attribute__ ((packed));
184 184
185struct qdio_dev_perf_stat {
186 unsigned int adapter_int;
187 unsigned int qdio_int;
188 unsigned int pci_request_int;
189
190 unsigned int tasklet_inbound;
191 unsigned int tasklet_inbound_resched;
192 unsigned int tasklet_inbound_resched2;
193 unsigned int tasklet_outbound;
194
195 unsigned int siga_read;
196 unsigned int siga_write;
197 unsigned int siga_sync;
198
199 unsigned int inbound_call;
200 unsigned int inbound_handler;
201 unsigned int stop_polling;
202 unsigned int inbound_queue_full;
203 unsigned int outbound_call;
204 unsigned int outbound_handler;
205 unsigned int fast_requeue;
206 unsigned int target_full;
207 unsigned int eqbs;
208 unsigned int eqbs_partial;
209 unsigned int sqbs;
210 unsigned int sqbs_partial;
211};
212
185struct qdio_input_q { 213struct qdio_input_q {
186 /* input buffer acknowledgement flag */ 214 /* input buffer acknowledgement flag */
187 int polling; 215 int polling;
@@ -269,6 +297,7 @@ struct qdio_irq {
269 u32 *dsci; /* address of device state change indicator */ 297 u32 *dsci; /* address of device state change indicator */
270 struct ccw_device *cdev; 298 struct ccw_device *cdev;
271 struct dentry *debugfs_dev; 299 struct dentry *debugfs_dev;
300 struct dentry *debugfs_perf;
272 301
273 unsigned long int_parm; 302 unsigned long int_parm;
274 struct subchannel_id schid; 303 struct subchannel_id schid;
@@ -286,9 +315,10 @@ struct qdio_irq {
286 struct ciw aqueue; 315 struct ciw aqueue;
287 316
288 struct qdio_ssqd_desc ssqd_desc; 317 struct qdio_ssqd_desc ssqd_desc;
289
290 void (*orig_handler) (struct ccw_device *, unsigned long, struct irb *); 318 void (*orig_handler) (struct ccw_device *, unsigned long, struct irb *);
291 319
320 struct qdio_dev_perf_stat perf_stat;
321 int perf_stat_enabled;
292 /* 322 /*
293 * Warning: Leave these members together at the end so they won't be 323 * Warning: Leave these members together at the end so they won't be
294 * cleared in qdio_setup_irq. 324 * cleared in qdio_setup_irq.
@@ -311,6 +341,10 @@ struct qdio_irq {
311 (irq->qib.qfmt == QDIO_IQDIO_QFMT || \ 341 (irq->qib.qfmt == QDIO_IQDIO_QFMT || \
312 css_general_characteristics.aif_osa) 342 css_general_characteristics.aif_osa)
313 343
344#define qperf(qdev,attr) qdev->perf_stat.attr
345#define qperf_inc(q,attr) if (q->irq_ptr->perf_stat_enabled) \
346 q->irq_ptr->perf_stat.attr++
347
314/* the highest iqdio queue is used for multicast */ 348/* the highest iqdio queue is used for multicast */
315static inline int multicast_outbound(struct qdio_q *q) 349static inline int multicast_outbound(struct qdio_q *q)
316{ 350{
diff --git a/drivers/s390/cio/qdio_debug.c b/drivers/s390/cio/qdio_debug.c
index 76769978285f..f49761ff9a00 100644
--- a/drivers/s390/cio/qdio_debug.c
+++ b/drivers/s390/cio/qdio_debug.c
@@ -55,13 +55,11 @@ static int qstat_show(struct seq_file *m, void *v)
55 if (!q) 55 if (!q)
56 return 0; 56 return 0;
57 57
58 seq_printf(m, "device state indicator: %d\n", *(u32 *)q->irq_ptr->dsci); 58 seq_printf(m, "DSCI: %d nr_used: %d\n",
59 seq_printf(m, "nr_used: %d\n", atomic_read(&q->nr_buf_used)); 59 *(u32 *)q->irq_ptr->dsci, atomic_read(&q->nr_buf_used));
60 seq_printf(m, "ftc: %d\n", q->first_to_check); 60 seq_printf(m, "ftc: %d last_move: %d\n", q->first_to_check, q->last_move);
61 seq_printf(m, "last_move: %d\n", q->last_move); 61 seq_printf(m, "polling: %d ack start: %d ack count: %d\n",
62 seq_printf(m, "polling: %d\n", q->u.in.polling); 62 q->u.in.polling, q->u.in.ack_start, q->u.in.ack_count);
63 seq_printf(m, "ack start: %d\n", q->u.in.ack_start);
64 seq_printf(m, "ack count: %d\n", q->u.in.ack_count);
65 seq_printf(m, "slsb buffer states:\n"); 63 seq_printf(m, "slsb buffer states:\n");
66 seq_printf(m, "|0 |8 |16 |24 |32 |40 |48 |56 63|\n"); 64 seq_printf(m, "|0 |8 |16 |24 |32 |40 |48 |56 63|\n");
67 65
@@ -110,7 +108,6 @@ static ssize_t qstat_seq_write(struct file *file, const char __user *buf,
110 108
111 if (!q) 109 if (!q)
112 return 0; 110 return 0;
113
114 if (q->is_input_q) 111 if (q->is_input_q)
115 xchg(q->irq_ptr->dsci, 1); 112 xchg(q->irq_ptr->dsci, 1);
116 local_bh_disable(); 113 local_bh_disable();
@@ -134,6 +131,98 @@ static const struct file_operations debugfs_fops = {
134 .release = single_release, 131 .release = single_release,
135}; 132};
136 133
134static char *qperf_names[] = {
135 "Assumed adapter interrupts",
136 "QDIO interrupts",
137 "Requested PCIs",
138 "Inbound tasklet runs",
139 "Inbound tasklet resched",
140 "Inbound tasklet resched2",
141 "Outbound tasklet runs",
142 "SIGA read",
143 "SIGA write",
144 "SIGA sync",
145 "Inbound calls",
146 "Inbound handler",
147 "Inbound stop_polling",
148 "Inbound queue full",
149 "Outbound calls",
150 "Outbound handler",
151 "Outbound fast_requeue",
152 "Outbound target_full",
153 "QEBSM eqbs",
154 "QEBSM eqbs partial",
155 "QEBSM sqbs",
156 "QEBSM sqbs partial"
157};
158
159static int qperf_show(struct seq_file *m, void *v)
160{
161 struct qdio_irq *irq_ptr = m->private;
162 unsigned int *stat;
163 int i;
164
165 if (!irq_ptr)
166 return 0;
167 if (!irq_ptr->perf_stat_enabled) {
168 seq_printf(m, "disabled\n");
169 return 0;
170 }
171 stat = (unsigned int *)&irq_ptr->perf_stat;
172
173 for (i = 0; i < ARRAY_SIZE(qperf_names); i++)
174 seq_printf(m, "%26s:\t%u\n",
175 qperf_names[i], *(stat + i));
176 return 0;
177}
178
179static ssize_t qperf_seq_write(struct file *file, const char __user *ubuf,
180 size_t count, loff_t *off)
181{
182 struct seq_file *seq = file->private_data;
183 struct qdio_irq *irq_ptr = seq->private;
184 unsigned long val;
185 char buf[8];
186 int ret;
187
188 if (!irq_ptr)
189 return 0;
190 if (count >= sizeof(buf))
191 return -EINVAL;
192 if (copy_from_user(&buf, ubuf, count))
193 return -EFAULT;
194 buf[count] = 0;
195
196 ret = strict_strtoul(buf, 10, &val);
197 if (ret < 0)
198 return ret;
199
200 switch (val) {
201 case 0:
202 irq_ptr->perf_stat_enabled = 0;
203 memset(&irq_ptr->perf_stat, 0, sizeof(irq_ptr->perf_stat));
204 break;
205 case 1:
206 irq_ptr->perf_stat_enabled = 1;
207 break;
208 }
209 return count;
210}
211
212static int qperf_seq_open(struct inode *inode, struct file *filp)
213{
214 return single_open(filp, qperf_show,
215 filp->f_path.dentry->d_inode->i_private);
216}
217
218static struct file_operations debugfs_perf_fops = {
219 .owner = THIS_MODULE,
220 .open = qperf_seq_open,
221 .read = seq_read,
222 .write = qperf_seq_write,
223 .llseek = seq_lseek,
224 .release = single_release,
225};
137static void setup_debugfs_entry(struct qdio_q *q, struct ccw_device *cdev) 226static void setup_debugfs_entry(struct qdio_q *q, struct ccw_device *cdev)
138{ 227{
139 char name[QDIO_DEBUGFS_NAME_LEN]; 228 char name[QDIO_DEBUGFS_NAME_LEN];
@@ -156,6 +245,14 @@ void qdio_setup_debug_entries(struct qdio_irq *irq_ptr, struct ccw_device *cdev)
156 debugfs_root); 245 debugfs_root);
157 if (IS_ERR(irq_ptr->debugfs_dev)) 246 if (IS_ERR(irq_ptr->debugfs_dev))
158 irq_ptr->debugfs_dev = NULL; 247 irq_ptr->debugfs_dev = NULL;
248
249 irq_ptr->debugfs_perf = debugfs_create_file("statistics",
250 S_IFREG | S_IRUGO | S_IWUSR,
251 irq_ptr->debugfs_dev, irq_ptr,
252 &debugfs_perf_fops);
253 if (IS_ERR(irq_ptr->debugfs_perf))
254 irq_ptr->debugfs_perf = NULL;
255
159 for_each_input_queue(irq_ptr, q, i) 256 for_each_input_queue(irq_ptr, q, i)
160 setup_debugfs_entry(q, cdev); 257 setup_debugfs_entry(q, cdev);
161 for_each_output_queue(irq_ptr, q, i) 258 for_each_output_queue(irq_ptr, q, i)
@@ -171,6 +268,7 @@ void qdio_shutdown_debug_entries(struct qdio_irq *irq_ptr, struct ccw_device *cd
171 debugfs_remove(q->debugfs_q); 268 debugfs_remove(q->debugfs_q);
172 for_each_output_queue(irq_ptr, q, i) 269 for_each_output_queue(irq_ptr, q, i)
173 debugfs_remove(q->debugfs_q); 270 debugfs_remove(q->debugfs_q);
271 debugfs_remove(irq_ptr->debugfs_perf);
174 debugfs_remove(irq_ptr->debugfs_dev); 272 debugfs_remove(irq_ptr->debugfs_dev);
175} 273}
176 274
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index b2275c5000e7..999fe80c4051 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -22,7 +22,6 @@
22#include "device.h" 22#include "device.h"
23#include "qdio.h" 23#include "qdio.h"
24#include "qdio_debug.h" 24#include "qdio_debug.h"
25#include "qdio_perf.h"
26 25
27MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>,"\ 26MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>,"\
28 "Jan Glauber <jang@linux.vnet.ibm.com>"); 27 "Jan Glauber <jang@linux.vnet.ibm.com>");
@@ -126,7 +125,7 @@ static int qdio_do_eqbs(struct qdio_q *q, unsigned char *state,
126 int rc; 125 int rc;
127 126
128 BUG_ON(!q->irq_ptr->sch_token); 127 BUG_ON(!q->irq_ptr->sch_token);
129 qdio_perf_stat_inc(&perf_stats.debug_eqbs_all); 128 qperf_inc(q, eqbs);
130 129
131 if (!q->is_input_q) 130 if (!q->is_input_q)
132 nr += q->irq_ptr->nr_input_qs; 131 nr += q->irq_ptr->nr_input_qs;
@@ -139,7 +138,7 @@ again:
139 * buffers later. 138 * buffers later.
140 */ 139 */
141 if ((ccq == 96) && (count != tmp_count)) { 140 if ((ccq == 96) && (count != tmp_count)) {
142 qdio_perf_stat_inc(&perf_stats.debug_eqbs_incomplete); 141 qperf_inc(q, eqbs_partial);
143 return (count - tmp_count); 142 return (count - tmp_count);
144 } 143 }
145 144
@@ -182,7 +181,7 @@ static int qdio_do_sqbs(struct qdio_q *q, unsigned char state, int start,
182 return 0; 181 return 0;
183 182
184 BUG_ON(!q->irq_ptr->sch_token); 183 BUG_ON(!q->irq_ptr->sch_token);
185 qdio_perf_stat_inc(&perf_stats.debug_sqbs_all); 184 qperf_inc(q, sqbs);
186 185
187 if (!q->is_input_q) 186 if (!q->is_input_q)
188 nr += q->irq_ptr->nr_input_qs; 187 nr += q->irq_ptr->nr_input_qs;
@@ -191,7 +190,7 @@ again:
191 rc = qdio_check_ccq(q, ccq); 190 rc = qdio_check_ccq(q, ccq);
192 if (rc == 1) { 191 if (rc == 1) {
193 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "SQBS again:%2d", ccq); 192 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "SQBS again:%2d", ccq);
194 qdio_perf_stat_inc(&perf_stats.debug_sqbs_incomplete); 193 qperf_inc(q, sqbs_partial);
195 goto again; 194 goto again;
196 } 195 }
197 if (rc < 0) { 196 if (rc < 0) {
@@ -285,7 +284,7 @@ static inline int qdio_siga_sync(struct qdio_q *q, unsigned int output,
285 return 0; 284 return 0;
286 285
287 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-s:%1d", q->nr); 286 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-s:%1d", q->nr);
288 qdio_perf_stat_inc(&perf_stats.siga_sync); 287 qperf_inc(q, siga_sync);
289 288
290 cc = do_siga_sync(q->irq_ptr->schid, output, input); 289 cc = do_siga_sync(q->irq_ptr->schid, output, input);
291 if (cc) 290 if (cc)
@@ -350,7 +349,7 @@ static inline int qdio_siga_input(struct qdio_q *q)
350 int cc; 349 int cc;
351 350
352 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-r:%1d", q->nr); 351 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-r:%1d", q->nr);
353 qdio_perf_stat_inc(&perf_stats.siga_in); 352 qperf_inc(q, siga_read);
354 353
355 cc = do_siga_input(q->irq_ptr->schid, q->mask); 354 cc = do_siga_input(q->irq_ptr->schid, q->mask);
356 if (cc) 355 if (cc)
@@ -382,7 +381,7 @@ static inline void qdio_stop_polling(struct qdio_q *q)
382 return; 381 return;
383 382
384 q->u.in.polling = 0; 383 q->u.in.polling = 0;
385 qdio_perf_stat_inc(&perf_stats.debug_stop_polling); 384 qperf_inc(q, stop_polling);
386 385
387 /* show the card that we are not polling anymore */ 386 /* show the card that we are not polling anymore */
388 if (is_qebsm(q)) { 387 if (is_qebsm(q)) {
@@ -400,7 +399,7 @@ static void announce_buffer_error(struct qdio_q *q, int count)
400 /* special handling for no target buffer empty */ 399 /* special handling for no target buffer empty */
401 if ((!q->is_input_q && 400 if ((!q->is_input_q &&
402 (q->sbal[q->first_to_check]->element[15].flags & 0xff) == 0x10)) { 401 (q->sbal[q->first_to_check]->element[15].flags & 0xff) == 0x10)) {
403 qdio_perf_stat_inc(&perf_stats.outbound_target_full); 402 qperf_inc(q, target_full);
404 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x", 403 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x",
405 q->first_to_check); 404 q->first_to_check);
406 return; 405 return;
@@ -487,7 +486,7 @@ static int get_inbound_buffer_frontier(struct qdio_q *q)
487 inbound_primed(q, count); 486 inbound_primed(q, count);
488 q->first_to_check = add_buf(q->first_to_check, count); 487 q->first_to_check = add_buf(q->first_to_check, count);
489 if (atomic_sub(count, &q->nr_buf_used) == 0) 488 if (atomic_sub(count, &q->nr_buf_used) == 0)
490 qdio_perf_stat_inc(&perf_stats.inbound_queue_full); 489 qperf_inc(q, inbound_queue_full);
491 break; 490 break;
492 case SLSB_P_INPUT_ERROR: 491 case SLSB_P_INPUT_ERROR:
493 announce_buffer_error(q, count); 492 announce_buffer_error(q, count);
@@ -567,9 +566,10 @@ static void qdio_kick_handler(struct qdio_q *q)
567 count = sub_buf(end, start); 566 count = sub_buf(end, start);
568 567
569 if (q->is_input_q) { 568 if (q->is_input_q) {
570 qdio_perf_stat_inc(&perf_stats.inbound_handler); 569 qperf_inc(q, inbound_handler);
571 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "kih s:%02x c:%02x", start, count); 570 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "kih s:%02x c:%02x", start, count);
572 } else 571 } else
572 qperf_inc(q, outbound_handler);
573 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x", 573 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x",
574 start, count); 574 start, count);
575 575
@@ -583,24 +583,28 @@ static void qdio_kick_handler(struct qdio_q *q)
583 583
584static void __qdio_inbound_processing(struct qdio_q *q) 584static void __qdio_inbound_processing(struct qdio_q *q)
585{ 585{
586 qdio_perf_stat_inc(&perf_stats.tasklet_inbound); 586 qperf_inc(q, tasklet_inbound);
587again: 587again:
588 if (!qdio_inbound_q_moved(q)) 588 if (!qdio_inbound_q_moved(q))
589 return; 589 return;
590 590
591 qdio_kick_handler(q); 591 qdio_kick_handler(q);
592 592
593 if (!qdio_inbound_q_done(q)) 593 if (!qdio_inbound_q_done(q)) {
594 /* means poll time is not yet over */ 594 /* means poll time is not yet over */
595 qperf_inc(q, tasklet_inbound_resched);
595 goto again; 596 goto again;
597 }
596 598
597 qdio_stop_polling(q); 599 qdio_stop_polling(q);
598 /* 600 /*
599 * We need to check again to not lose initiative after 601 * We need to check again to not lose initiative after
600 * resetting the ACK state. 602 * resetting the ACK state.
601 */ 603 */
602 if (!qdio_inbound_q_done(q)) 604 if (!qdio_inbound_q_done(q)) {
605 qperf_inc(q, tasklet_inbound_resched2);
603 goto again; 606 goto again;
607 }
604} 608}
605 609
606void qdio_inbound_processing(unsigned long data) 610void qdio_inbound_processing(unsigned long data)
@@ -688,7 +692,7 @@ static int qdio_kick_outbound_q(struct qdio_q *q)
688 return 0; 692 return 0;
689 693
690 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w:%1d", q->nr); 694 DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w:%1d", q->nr);
691 qdio_perf_stat_inc(&perf_stats.siga_out); 695 qperf_inc(q, siga_write);
692 696
693 cc = qdio_siga_output(q, &busy_bit); 697 cc = qdio_siga_output(q, &busy_bit);
694 switch (cc) { 698 switch (cc) {
@@ -711,7 +715,7 @@ static int qdio_kick_outbound_q(struct qdio_q *q)
711 715
712static void __qdio_outbound_processing(struct qdio_q *q) 716static void __qdio_outbound_processing(struct qdio_q *q)
713{ 717{
714 qdio_perf_stat_inc(&perf_stats.tasklet_outbound); 718 qperf_inc(q, tasklet_outbound);
715 BUG_ON(atomic_read(&q->nr_buf_used) < 0); 719 BUG_ON(atomic_read(&q->nr_buf_used) < 0);
716 720
717 if (qdio_outbound_q_moved(q)) 721 if (qdio_outbound_q_moved(q))
@@ -739,12 +743,9 @@ static void __qdio_outbound_processing(struct qdio_q *q)
739 */ 743 */
740 if (qdio_outbound_q_done(q)) 744 if (qdio_outbound_q_done(q))
741 del_timer(&q->u.out.timer); 745 del_timer(&q->u.out.timer);
742 else { 746 else
743 if (!timer_pending(&q->u.out.timer)) { 747 if (!timer_pending(&q->u.out.timer))
744 mod_timer(&q->u.out.timer, jiffies + 10 * HZ); 748 mod_timer(&q->u.out.timer, jiffies + 10 * HZ);
745 qdio_perf_stat_inc(&perf_stats.debug_tl_out_timer);
746 }
747 }
748 return; 749 return;
749 750
750sched: 751sched:
@@ -784,7 +785,7 @@ static inline void qdio_check_outbound_after_thinint(struct qdio_q *q)
784 785
785static void __tiqdio_inbound_processing(struct qdio_q *q) 786static void __tiqdio_inbound_processing(struct qdio_q *q)
786{ 787{
787 qdio_perf_stat_inc(&perf_stats.thinint_inbound); 788 qperf_inc(q, tasklet_inbound);
788 qdio_sync_after_thinint(q); 789 qdio_sync_after_thinint(q);
789 790
790 /* 791 /*
@@ -799,7 +800,7 @@ static void __tiqdio_inbound_processing(struct qdio_q *q)
799 qdio_kick_handler(q); 800 qdio_kick_handler(q);
800 801
801 if (!qdio_inbound_q_done(q)) { 802 if (!qdio_inbound_q_done(q)) {
802 qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop); 803 qperf_inc(q, tasklet_inbound_resched);
803 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) { 804 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) {
804 tasklet_schedule(&q->tasklet); 805 tasklet_schedule(&q->tasklet);
805 return; 806 return;
@@ -812,7 +813,7 @@ static void __tiqdio_inbound_processing(struct qdio_q *q)
812 * resetting the ACK state. 813 * resetting the ACK state.
813 */ 814 */
814 if (!qdio_inbound_q_done(q)) { 815 if (!qdio_inbound_q_done(q)) {
815 qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop2); 816 qperf_inc(q, tasklet_inbound_resched2);
816 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) 817 if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED))
817 tasklet_schedule(&q->tasklet); 818 tasklet_schedule(&q->tasklet);
818 } 819 }
@@ -851,8 +852,6 @@ static void qdio_int_handler_pci(struct qdio_irq *irq_ptr)
851 if (unlikely(irq_ptr->state == QDIO_IRQ_STATE_STOPPED)) 852 if (unlikely(irq_ptr->state == QDIO_IRQ_STATE_STOPPED))
852 return; 853 return;
853 854
854 qdio_perf_stat_inc(&perf_stats.pci_int);
855
856 for_each_input_queue(irq_ptr, q, i) 855 for_each_input_queue(irq_ptr, q, i)
857 tasklet_schedule(&q->tasklet); 856 tasklet_schedule(&q->tasklet);
858 857
@@ -923,8 +922,6 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
923 struct qdio_irq *irq_ptr = cdev->private->qdio_data; 922 struct qdio_irq *irq_ptr = cdev->private->qdio_data;
924 int cstat, dstat; 923 int cstat, dstat;
925 924
926 qdio_perf_stat_inc(&perf_stats.qdio_int);
927
928 if (!intparm || !irq_ptr) { 925 if (!intparm || !irq_ptr) {
929 DBF_ERROR("qint:%4x", cdev->private->schid.sch_no); 926 DBF_ERROR("qint:%4x", cdev->private->schid.sch_no);
930 return; 927 return;
@@ -1383,6 +1380,8 @@ static int handle_inbound(struct qdio_q *q, unsigned int callflags,
1383{ 1380{
1384 int used, diff; 1381 int used, diff;
1385 1382
1383 qperf_inc(q, inbound_call);
1384
1386 if (!q->u.in.polling) 1385 if (!q->u.in.polling)
1387 goto set; 1386 goto set;
1388 1387
@@ -1438,14 +1437,16 @@ static int handle_outbound(struct qdio_q *q, unsigned int callflags,
1438 unsigned char state; 1437 unsigned char state;
1439 int used, rc = 0; 1438 int used, rc = 0;
1440 1439
1441 qdio_perf_stat_inc(&perf_stats.outbound_handler); 1440 qperf_inc(q, outbound_call);
1442 1441
1443 count = set_buf_states(q, bufnr, SLSB_CU_OUTPUT_PRIMED, count); 1442 count = set_buf_states(q, bufnr, SLSB_CU_OUTPUT_PRIMED, count);
1444 used = atomic_add_return(count, &q->nr_buf_used); 1443 used = atomic_add_return(count, &q->nr_buf_used);
1445 BUG_ON(used > QDIO_MAX_BUFFERS_PER_Q); 1444 BUG_ON(used > QDIO_MAX_BUFFERS_PER_Q);
1446 1445
1447 if (callflags & QDIO_FLAG_PCI_OUT) 1446 if (callflags & QDIO_FLAG_PCI_OUT) {
1448 q->u.out.pci_out_enabled = 1; 1447 q->u.out.pci_out_enabled = 1;
1448 qperf_inc(q, pci_request_int);
1449 }
1449 else 1450 else
1450 q->u.out.pci_out_enabled = 0; 1451 q->u.out.pci_out_enabled = 0;
1451 1452
@@ -1484,7 +1485,7 @@ static int handle_outbound(struct qdio_q *q, unsigned int callflags,
1484 if (state != SLSB_CU_OUTPUT_PRIMED) 1485 if (state != SLSB_CU_OUTPUT_PRIMED)
1485 rc = qdio_kick_outbound_q(q); 1486 rc = qdio_kick_outbound_q(q);
1486 else 1487 else
1487 qdio_perf_stat_inc(&perf_stats.fast_requeue); 1488 qperf_inc(q, fast_requeue);
1488 1489
1489out: 1490out:
1490 tasklet_schedule(&q->tasklet); 1491 tasklet_schedule(&q->tasklet);
@@ -1540,16 +1541,11 @@ static int __init init_QDIO(void)
1540 rc = qdio_debug_init(); 1541 rc = qdio_debug_init();
1541 if (rc) 1542 if (rc)
1542 goto out_ti; 1543 goto out_ti;
1543 rc = qdio_setup_perf_stats();
1544 if (rc)
1545 goto out_debug;
1546 rc = tiqdio_register_thinints(); 1544 rc = tiqdio_register_thinints();
1547 if (rc) 1545 if (rc)
1548 goto out_perf; 1546 goto out_debug;
1549 return 0; 1547 return 0;
1550 1548
1551out_perf:
1552 qdio_remove_perf_stats();
1553out_debug: 1549out_debug:
1554 qdio_debug_exit(); 1550 qdio_debug_exit();
1555out_ti: 1551out_ti:
@@ -1563,7 +1559,6 @@ static void __exit exit_QDIO(void)
1563{ 1559{
1564 tiqdio_unregister_thinints(); 1560 tiqdio_unregister_thinints();
1565 tiqdio_free_memory(); 1561 tiqdio_free_memory();
1566 qdio_remove_perf_stats();
1567 qdio_debug_exit(); 1562 qdio_debug_exit();
1568 qdio_setup_exit(); 1563 qdio_setup_exit();
1569} 1564}
diff --git a/drivers/s390/cio/qdio_perf.c b/drivers/s390/cio/qdio_perf.c
deleted file mode 100644
index 54f7c325a3e6..000000000000
--- a/drivers/s390/cio/qdio_perf.c
+++ /dev/null
@@ -1,149 +0,0 @@
1/*
2 * drivers/s390/cio/qdio_perf.c
3 *
4 * Copyright IBM Corp. 2008
5 *
6 * Author: Jan Glauber (jang@linux.vnet.ibm.com)
7 */
8#include <linux/kernel.h>
9#include <linux/proc_fs.h>
10#include <linux/seq_file.h>
11#include <asm/ccwdev.h>
12
13#include "cio.h"
14#include "css.h"
15#include "device.h"
16#include "ioasm.h"
17#include "chsc.h"
18#include "qdio_debug.h"
19#include "qdio_perf.h"
20
21int qdio_performance_stats;
22struct qdio_perf_stats perf_stats;
23
24#ifdef CONFIG_PROC_FS
25static struct proc_dir_entry *qdio_perf_pde;
26#endif
27
28/*
29 * procfs functions
30 */
31static int qdio_perf_proc_show(struct seq_file *m, void *v)
32{
33 seq_printf(m, "Number of qdio interrupts\t\t\t: %li\n",
34 (long)atomic_long_read(&perf_stats.qdio_int));
35 seq_printf(m, "Number of PCI interrupts\t\t\t: %li\n",
36 (long)atomic_long_read(&perf_stats.pci_int));
37 seq_printf(m, "Number of adapter interrupts\t\t\t: %li\n",
38 (long)atomic_long_read(&perf_stats.thin_int));
39 seq_printf(m, "\n");
40 seq_printf(m, "Inbound tasklet runs\t\t\t\t: %li\n",
41 (long)atomic_long_read(&perf_stats.tasklet_inbound));
42 seq_printf(m, "Outbound tasklet runs\t\t\t\t: %li\n",
43 (long)atomic_long_read(&perf_stats.tasklet_outbound));
44 seq_printf(m, "Adapter interrupt tasklet runs/loops\t\t: %li/%li\n",
45 (long)atomic_long_read(&perf_stats.tasklet_thinint),
46 (long)atomic_long_read(&perf_stats.tasklet_thinint_loop));
47 seq_printf(m, "Adapter interrupt inbound tasklet runs/loops\t: %li/%li\n",
48 (long)atomic_long_read(&perf_stats.thinint_inbound),
49 (long)atomic_long_read(&perf_stats.thinint_inbound_loop));
50 seq_printf(m, "\n");
51 seq_printf(m, "Number of SIGA In issued\t\t\t: %li\n",
52 (long)atomic_long_read(&perf_stats.siga_in));
53 seq_printf(m, "Number of SIGA Out issued\t\t\t: %li\n",
54 (long)atomic_long_read(&perf_stats.siga_out));
55 seq_printf(m, "Number of SIGA Sync issued\t\t\t: %li\n",
56 (long)atomic_long_read(&perf_stats.siga_sync));
57 seq_printf(m, "\n");
58 seq_printf(m, "Number of inbound transfers\t\t\t: %li\n",
59 (long)atomic_long_read(&perf_stats.inbound_handler));
60 seq_printf(m, "Number of outbound transfers\t\t\t: %li\n",
61 (long)atomic_long_read(&perf_stats.outbound_handler));
62 seq_printf(m, "\n");
63 seq_printf(m, "Number of fast requeues (outg. SBAL w/o SIGA)\t: %li\n",
64 (long)atomic_long_read(&perf_stats.fast_requeue));
65 seq_printf(m, "Number of outbound target full condition\t: %li\n",
66 (long)atomic_long_read(&perf_stats.outbound_target_full));
67 seq_printf(m, "Number of inbound queue full condition\t\t: %li\n",
68 (long)atomic_long_read(&perf_stats.inbound_queue_full));
69 seq_printf(m, "Number of outbound tasklet mod_timer calls\t: %li\n",
70 (long)atomic_long_read(&perf_stats.debug_tl_out_timer));
71 seq_printf(m, "Number of stop polling calls\t\t\t: %li\n",
72 (long)atomic_long_read(&perf_stats.debug_stop_polling));
73 seq_printf(m, "AI inbound tasklet loops after stop polling\t: %li\n",
74 (long)atomic_long_read(&perf_stats.thinint_inbound_loop2));
75 seq_printf(m, "QEBSM EQBS total/incomplete\t\t\t: %li/%li\n",
76 (long)atomic_long_read(&perf_stats.debug_eqbs_all),
77 (long)atomic_long_read(&perf_stats.debug_eqbs_incomplete));
78 seq_printf(m, "QEBSM SQBS total/incomplete\t\t\t: %li/%li\n",
79 (long)atomic_long_read(&perf_stats.debug_sqbs_all),
80 (long)atomic_long_read(&perf_stats.debug_sqbs_incomplete));
81 seq_printf(m, "\n");
82 return 0;
83}
84static int qdio_perf_seq_open(struct inode *inode, struct file *filp)
85{
86 return single_open(filp, qdio_perf_proc_show, NULL);
87}
88
89static const struct file_operations qdio_perf_proc_fops = {
90 .owner = THIS_MODULE,
91 .open = qdio_perf_seq_open,
92 .read = seq_read,
93 .llseek = seq_lseek,
94 .release = single_release,
95};
96
97/*
98 * sysfs functions
99 */
100static ssize_t qdio_perf_stats_show(struct bus_type *bus, char *buf)
101{
102 return sprintf(buf, "%i\n", qdio_performance_stats ? 1 : 0);
103}
104
105static ssize_t qdio_perf_stats_store(struct bus_type *bus,
106 const char *buf, size_t count)
107{
108 unsigned long i;
109
110 if (strict_strtoul(buf, 16, &i) != 0)
111 return -EINVAL;
112 if ((i != 0) && (i != 1))
113 return -EINVAL;
114 if (i == qdio_performance_stats)
115 return count;
116
117 qdio_performance_stats = i;
118 /* reset performance statistics */
119 if (i == 0)
120 memset(&perf_stats, 0, sizeof(struct qdio_perf_stats));
121 return count;
122}
123
124static BUS_ATTR(qdio_performance_stats, 0644, qdio_perf_stats_show,
125 qdio_perf_stats_store);
126
127int __init qdio_setup_perf_stats(void)
128{
129 int rc;
130
131 rc = bus_create_file(&ccw_bus_type, &bus_attr_qdio_performance_stats);
132 if (rc)
133 return rc;
134
135#ifdef CONFIG_PROC_FS
136 memset(&perf_stats, 0, sizeof(struct qdio_perf_stats));
137 qdio_perf_pde = proc_create("qdio_perf", S_IFREG | S_IRUGO,
138 NULL, &qdio_perf_proc_fops);
139#endif
140 return 0;
141}
142
143void qdio_remove_perf_stats(void)
144{
145#ifdef CONFIG_PROC_FS
146 remove_proc_entry("qdio_perf", NULL);
147#endif
148 bus_remove_file(&ccw_bus_type, &bus_attr_qdio_performance_stats);
149}
diff --git a/drivers/s390/cio/qdio_perf.h b/drivers/s390/cio/qdio_perf.h
deleted file mode 100644
index 12454231dc8b..000000000000
--- a/drivers/s390/cio/qdio_perf.h
+++ /dev/null
@@ -1,62 +0,0 @@
1/*
2 * drivers/s390/cio/qdio_perf.h
3 *
4 * Copyright IBM Corp. 2008
5 *
6 * Author: Jan Glauber (jang@linux.vnet.ibm.com)
7 */
8#ifndef QDIO_PERF_H
9#define QDIO_PERF_H
10
11#include <linux/types.h>
12#include <asm/atomic.h>
13
14struct qdio_perf_stats {
15 /* interrupt handler calls */
16 atomic_long_t qdio_int;
17 atomic_long_t pci_int;
18 atomic_long_t thin_int;
19
20 /* tasklet runs */
21 atomic_long_t tasklet_inbound;
22 atomic_long_t tasklet_outbound;
23 atomic_long_t tasklet_thinint;
24 atomic_long_t tasklet_thinint_loop;
25 atomic_long_t thinint_inbound;
26 atomic_long_t thinint_inbound_loop;
27 atomic_long_t thinint_inbound_loop2;
28
29 /* signal adapter calls */
30 atomic_long_t siga_out;
31 atomic_long_t siga_in;
32 atomic_long_t siga_sync;
33
34 /* misc */
35 atomic_long_t inbound_handler;
36 atomic_long_t outbound_handler;
37 atomic_long_t fast_requeue;
38 atomic_long_t outbound_target_full;
39 atomic_long_t inbound_queue_full;
40
41 /* for debugging */
42 atomic_long_t debug_tl_out_timer;
43 atomic_long_t debug_stop_polling;
44 atomic_long_t debug_eqbs_all;
45 atomic_long_t debug_eqbs_incomplete;
46 atomic_long_t debug_sqbs_all;
47 atomic_long_t debug_sqbs_incomplete;
48};
49
50extern struct qdio_perf_stats perf_stats;
51extern int qdio_performance_stats;
52
53static inline void qdio_perf_stat_inc(atomic_long_t *count)
54{
55 if (qdio_performance_stats)
56 atomic_long_inc(count);
57}
58
59int qdio_setup_perf_stats(void);
60void qdio_remove_perf_stats(void);
61
62#endif
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index 981a77ea7ee2..091d904d3182 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -1,9 +1,7 @@
1/* 1/*
2 * linux/drivers/s390/cio/thinint_qdio.c 2 * linux/drivers/s390/cio/thinint_qdio.c
3 * 3 *
4 * thin interrupt support for qdio 4 * Copyright 2000,2009 IBM Corp.
5 *
6 * Copyright 2000-2008 IBM Corp.
7 * Author(s): Utz Bacher <utz.bacher@de.ibm.com> 5 * Author(s): Utz Bacher <utz.bacher@de.ibm.com>
8 * Cornelia Huck <cornelia.huck@de.ibm.com> 6 * Cornelia Huck <cornelia.huck@de.ibm.com>
9 * Jan Glauber <jang@linux.vnet.ibm.com> 7 * Jan Glauber <jang@linux.vnet.ibm.com>
@@ -19,7 +17,6 @@
19#include "ioasm.h" 17#include "ioasm.h"
20#include "qdio.h" 18#include "qdio.h"
21#include "qdio_debug.h" 19#include "qdio_debug.h"
22#include "qdio_perf.h"
23 20
24/* 21/*
25 * Restriction: only 63 iqdio subchannels would have its own indicator, 22 * Restriction: only 63 iqdio subchannels would have its own indicator,
@@ -132,8 +129,6 @@ static void tiqdio_thinint_handler(void *ind, void *drv_data)
132{ 129{
133 struct qdio_q *q; 130 struct qdio_q *q;
134 131
135 qdio_perf_stat_inc(&perf_stats.thin_int);
136
137 /* 132 /*
138 * SVS only when needed: issue SVS to benefit from iqdio interrupt 133 * SVS only when needed: issue SVS to benefit from iqdio interrupt
139 * avoidance (SVS clears adapter interrupt suppression overwrite) 134 * avoidance (SVS clears adapter interrupt suppression overwrite)
@@ -154,6 +149,7 @@ static void tiqdio_thinint_handler(void *ind, void *drv_data)
154 list_for_each_entry_rcu(q, &tiq_list, entry) 149 list_for_each_entry_rcu(q, &tiq_list, entry)
155 /* only process queues from changed sets */ 150 /* only process queues from changed sets */
156 if (*q->irq_ptr->dsci) { 151 if (*q->irq_ptr->dsci) {
152 qperf_inc(q, adapter_int);
157 153
158 /* only clear it if the indicator is non-shared */ 154 /* only clear it if the indicator is non-shared */
159 if (!shared_ind(q->irq_ptr)) 155 if (!shared_ind(q->irq_ptr))
diff --git a/drivers/sbus/char/bbc_envctrl.c b/drivers/sbus/char/bbc_envctrl.c
index 7c815d3327f7..28d86f9df83c 100644
--- a/drivers/sbus/char/bbc_envctrl.c
+++ b/drivers/sbus/char/bbc_envctrl.c
@@ -522,6 +522,40 @@ static void attach_one_fan(struct bbc_i2c_bus *bp, struct of_device *op,
522 set_fan_speeds(fp); 522 set_fan_speeds(fp);
523} 523}
524 524
525static void destroy_one_temp(struct bbc_cpu_temperature *tp)
526{
527 bbc_i2c_detach(tp->client);
528 kfree(tp);
529}
530
531static void destroy_all_temps(struct bbc_i2c_bus *bp)
532{
533 struct bbc_cpu_temperature *tp, *tpos;
534
535 list_for_each_entry_safe(tp, tpos, &bp->temps, bp_list) {
536 list_del(&tp->bp_list);
537 list_del(&tp->glob_list);
538 destroy_one_temp(tp);
539 }
540}
541
542static void destroy_one_fan(struct bbc_fan_control *fp)
543{
544 bbc_i2c_detach(fp->client);
545 kfree(fp);
546}
547
548static void destroy_all_fans(struct bbc_i2c_bus *bp)
549{
550 struct bbc_fan_control *fp, *fpos;
551
552 list_for_each_entry_safe(fp, fpos, &bp->fans, bp_list) {
553 list_del(&fp->bp_list);
554 list_del(&fp->glob_list);
555 destroy_one_fan(fp);
556 }
557}
558
525int bbc_envctrl_init(struct bbc_i2c_bus *bp) 559int bbc_envctrl_init(struct bbc_i2c_bus *bp)
526{ 560{
527 struct of_device *op; 561 struct of_device *op;
@@ -541,6 +575,8 @@ int bbc_envctrl_init(struct bbc_i2c_bus *bp)
541 int err = PTR_ERR(kenvctrld_task); 575 int err = PTR_ERR(kenvctrld_task);
542 576
543 kenvctrld_task = NULL; 577 kenvctrld_task = NULL;
578 destroy_all_temps(bp);
579 destroy_all_fans(bp);
544 return err; 580 return err;
545 } 581 }
546 } 582 }
@@ -548,35 +584,11 @@ int bbc_envctrl_init(struct bbc_i2c_bus *bp)
548 return 0; 584 return 0;
549} 585}
550 586
551static void destroy_one_temp(struct bbc_cpu_temperature *tp)
552{
553 bbc_i2c_detach(tp->client);
554 kfree(tp);
555}
556
557static void destroy_one_fan(struct bbc_fan_control *fp)
558{
559 bbc_i2c_detach(fp->client);
560 kfree(fp);
561}
562
563void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp) 587void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp)
564{ 588{
565 struct bbc_cpu_temperature *tp, *tpos;
566 struct bbc_fan_control *fp, *fpos;
567
568 if (kenvctrld_task) 589 if (kenvctrld_task)
569 kthread_stop(kenvctrld_task); 590 kthread_stop(kenvctrld_task);
570 591
571 list_for_each_entry_safe(tp, tpos, &bp->temps, bp_list) { 592 destroy_all_temps(bp);
572 list_del(&tp->bp_list); 593 destroy_all_fans(bp);
573 list_del(&tp->glob_list);
574 destroy_one_temp(tp);
575 }
576
577 list_for_each_entry_safe(fp, fpos, &bp->fans, bp_list) {
578 list_del(&fp->bp_list);
579 list_del(&fp->glob_list);
580 destroy_one_fan(fp);
581 }
582} 594}
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.c b/drivers/scsi/cxgb3i/cxgb3i_offload.c
index 26ffdcd5a437..15a00e8b7122 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.c
@@ -1440,6 +1440,10 @@ void cxgb3i_c3cn_release(struct s3_conn *c3cn)
1440static int is_cxgb3_dev(struct net_device *dev) 1440static int is_cxgb3_dev(struct net_device *dev)
1441{ 1441{
1442 struct cxgb3i_sdev_data *cdata; 1442 struct cxgb3i_sdev_data *cdata;
1443 struct net_device *ndev = dev;
1444
1445 if (dev->priv_flags & IFF_802_1Q_VLAN)
1446 ndev = vlan_dev_real_dev(dev);
1443 1447
1444 write_lock(&cdata_rwlock); 1448 write_lock(&cdata_rwlock);
1445 list_for_each_entry(cdata, &cdata_list, list) { 1449 list_for_each_entry(cdata, &cdata_list, list) {
@@ -1447,7 +1451,7 @@ static int is_cxgb3_dev(struct net_device *dev)
1447 int i; 1451 int i;
1448 1452
1449 for (i = 0; i < ports->nports; i++) 1453 for (i = 0; i < ports->nports; i++)
1450 if (dev == ports->lldevs[i]) { 1454 if (ndev == ports->lldevs[i]) {
1451 write_unlock(&cdata_rwlock); 1455 write_unlock(&cdata_rwlock);
1452 return 1; 1456 return 1;
1453 } 1457 }
@@ -1566,6 +1570,26 @@ out_err:
1566 return -EINVAL; 1570 return -EINVAL;
1567} 1571}
1568 1572
1573/**
1574 * cxgb3i_find_dev - find the interface associated with the given address
1575 * @ipaddr: ip address
1576 */
1577static struct net_device *
1578cxgb3i_find_dev(struct net_device *dev, __be32 ipaddr)
1579{
1580 struct flowi fl;
1581 int err;
1582 struct rtable *rt;
1583
1584 memset(&fl, 0, sizeof(fl));
1585 fl.nl_u.ip4_u.daddr = ipaddr;
1586
1587 err = ip_route_output_key(dev ? dev_net(dev) : &init_net, &rt, &fl);
1588 if (!err)
1589 return (&rt->u.dst)->dev;
1590
1591 return NULL;
1592}
1569 1593
1570/** 1594/**
1571 * cxgb3i_c3cn_connect - initiates an iscsi tcp connection to a given address 1595 * cxgb3i_c3cn_connect - initiates an iscsi tcp connection to a given address
@@ -1581,6 +1605,7 @@ int cxgb3i_c3cn_connect(struct net_device *dev, struct s3_conn *c3cn,
1581 struct cxgb3i_sdev_data *cdata; 1605 struct cxgb3i_sdev_data *cdata;
1582 struct t3cdev *cdev; 1606 struct t3cdev *cdev;
1583 __be32 sipv4; 1607 __be32 sipv4;
1608 struct net_device *dstdev;
1584 int err; 1609 int err;
1585 1610
1586 c3cn_conn_debug("c3cn 0x%p, dev 0x%p.\n", c3cn, dev); 1611 c3cn_conn_debug("c3cn 0x%p, dev 0x%p.\n", c3cn, dev);
@@ -1591,6 +1616,13 @@ int cxgb3i_c3cn_connect(struct net_device *dev, struct s3_conn *c3cn,
1591 c3cn->daddr.sin_port = usin->sin_port; 1616 c3cn->daddr.sin_port = usin->sin_port;
1592 c3cn->daddr.sin_addr.s_addr = usin->sin_addr.s_addr; 1617 c3cn->daddr.sin_addr.s_addr = usin->sin_addr.s_addr;
1593 1618
1619 dstdev = cxgb3i_find_dev(dev, usin->sin_addr.s_addr);
1620 if (!dstdev || !is_cxgb3_dev(dstdev))
1621 return -ENETUNREACH;
1622
1623 if (dstdev->priv_flags & IFF_802_1Q_VLAN)
1624 dev = dstdev;
1625
1594 rt = find_route(dev, c3cn->saddr.sin_addr.s_addr, 1626 rt = find_route(dev, c3cn->saddr.sin_addr.s_addr,
1595 c3cn->daddr.sin_addr.s_addr, 1627 c3cn->daddr.sin_addr.s_addr,
1596 c3cn->saddr.sin_port, 1628 c3cn->saddr.sin_port,
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index ce522702a6c1..2cc39684ce97 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -4142,8 +4142,8 @@ lpfc_els_rcv_rscn(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb,
4142 spin_lock_irq(shost->host_lock); 4142 spin_lock_irq(shost->host_lock);
4143 if (vport->fc_rscn_flush) { 4143 if (vport->fc_rscn_flush) {
4144 /* Another thread is walking fc_rscn_id_list on this vport */ 4144 /* Another thread is walking fc_rscn_id_list on this vport */
4145 spin_unlock_irq(shost->host_lock);
4146 vport->fc_flag |= FC_RSCN_DISCOVERY; 4145 vport->fc_flag |= FC_RSCN_DISCOVERY;
4146 spin_unlock_irq(shost->host_lock);
4147 /* Send back ACC */ 4147 /* Send back ACC */
4148 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); 4148 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL);
4149 return 0; 4149 return 0;
@@ -5948,8 +5948,8 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
5948 lpfc_initial_fdisc(vport); 5948 lpfc_initial_fdisc(vport);
5949 break; 5949 break;
5950 } 5950 }
5951
5952 } else { 5951 } else {
5952 vport->vpi_state |= LPFC_VPI_REGISTERED;
5953 if (vport == phba->pport) 5953 if (vport == phba->pport)
5954 if (phba->sli_rev < LPFC_SLI_REV4) 5954 if (phba->sli_rev < LPFC_SLI_REV4)
5955 lpfc_issue_fabric_reglogin(vport); 5955 lpfc_issue_fabric_reglogin(vport);
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 3b9424427652..2445e399fd60 100755
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -747,6 +747,10 @@ lpfc_linkdown(struct lpfc_hba *phba)
747 747
748 if (phba->link_state == LPFC_LINK_DOWN) 748 if (phba->link_state == LPFC_LINK_DOWN)
749 return 0; 749 return 0;
750
751 /* Block all SCSI stack I/Os */
752 lpfc_scsi_dev_block(phba);
753
750 spin_lock_irq(&phba->hbalock); 754 spin_lock_irq(&phba->hbalock);
751 phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_DISCOVERED); 755 phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_DISCOVERED);
752 if (phba->link_state > LPFC_LINK_DOWN) { 756 if (phba->link_state > LPFC_LINK_DOWN) {
@@ -1555,10 +1559,16 @@ lpfc_mbx_cmpl_read_fcf_record(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
1555 * to book keeping the FCFIs can be used. 1559 * to book keeping the FCFIs can be used.
1556 */ 1560 */
1557 if (shdr_status || shdr_add_status) { 1561 if (shdr_status || shdr_add_status) {
1558 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 1562 if (shdr_status == STATUS_FCF_TABLE_EMPTY) {
1559 "2521 READ_FCF_RECORD mailbox failed " 1563 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
1560 "with status x%x add_status x%x, mbx\n", 1564 "2726 READ_FCF_RECORD Indicates empty "
1561 shdr_status, shdr_add_status); 1565 "FCF table.\n");
1566 } else {
1567 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
1568 "2521 READ_FCF_RECORD mailbox failed "
1569 "with status x%x add_status x%x, mbx\n",
1570 shdr_status, shdr_add_status);
1571 }
1562 goto out; 1572 goto out;
1563 } 1573 }
1564 /* Interpreting the returned information of FCF records */ 1574 /* Interpreting the returned information of FCF records */
@@ -1698,7 +1708,9 @@ lpfc_init_vpi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
1698 lpfc_vport_set_state(vport, FC_VPORT_FAILED); 1708 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
1699 return; 1709 return;
1700 } 1710 }
1711 spin_lock_irq(&phba->hbalock);
1701 vport->fc_flag &= ~FC_VPORT_NEEDS_INIT_VPI; 1712 vport->fc_flag &= ~FC_VPORT_NEEDS_INIT_VPI;
1713 spin_unlock_irq(&phba->hbalock);
1702 1714
1703 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) 1715 if (phba->link_flag & LS_NPIV_FAB_SUPPORTED)
1704 lpfc_initial_fdisc(vport); 1716 lpfc_initial_fdisc(vport);
@@ -2259,7 +2271,10 @@ lpfc_mbx_cmpl_unreg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
2259 mb->mbxStatus); 2271 mb->mbxStatus);
2260 break; 2272 break;
2261 } 2273 }
2274 spin_lock_irq(&phba->hbalock);
2262 vport->vpi_state &= ~LPFC_VPI_REGISTERED; 2275 vport->vpi_state &= ~LPFC_VPI_REGISTERED;
2276 vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
2277 spin_unlock_irq(&phba->hbalock);
2263 vport->unreg_vpi_cmpl = VPORT_OK; 2278 vport->unreg_vpi_cmpl = VPORT_OK;
2264 mempool_free(pmb, phba->mbox_mem_pool); 2279 mempool_free(pmb, phba->mbox_mem_pool);
2265 /* 2280 /*
@@ -4475,8 +4490,10 @@ lpfc_unregister_unused_fcf(struct lpfc_hba *phba)
4475 (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED)) 4490 (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED))
4476 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { 4491 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) {
4477 lpfc_mbx_unreg_vpi(vports[i]); 4492 lpfc_mbx_unreg_vpi(vports[i]);
4493 spin_lock_irq(&phba->hbalock);
4478 vports[i]->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; 4494 vports[i]->fc_flag |= FC_VPORT_NEEDS_INIT_VPI;
4479 vports[i]->vpi_state &= ~LPFC_VPI_REGISTERED; 4495 vports[i]->vpi_state &= ~LPFC_VPI_REGISTERED;
4496 spin_unlock_irq(&phba->hbalock);
4480 } 4497 }
4481 lpfc_destroy_vport_work_array(phba, vports); 4498 lpfc_destroy_vport_work_array(phba, vports);
4482 4499
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h
index 1585148a17e5..8a2a1c5935c6 100644..100755
--- a/drivers/scsi/lpfc/lpfc_hw4.h
+++ b/drivers/scsi/lpfc/lpfc_hw4.h
@@ -1013,7 +1013,7 @@ struct lpfc_mbx_wq_destroy {
1013}; 1013};
1014 1014
1015#define LPFC_HDR_BUF_SIZE 128 1015#define LPFC_HDR_BUF_SIZE 128
1016#define LPFC_DATA_BUF_SIZE 4096 1016#define LPFC_DATA_BUF_SIZE 2048
1017struct rq_context { 1017struct rq_context {
1018 uint32_t word0; 1018 uint32_t word0;
1019#define lpfc_rq_context_rq_size_SHIFT 16 1019#define lpfc_rq_context_rq_size_SHIFT 16
@@ -1371,6 +1371,7 @@ struct lpfc_mbx_query_fw_cfg {
1371#define STATUS_ERROR_ACITMAIN 0x2a 1371#define STATUS_ERROR_ACITMAIN 0x2a
1372#define STATUS_REBOOT_REQUIRED 0x2c 1372#define STATUS_REBOOT_REQUIRED 0x2c
1373#define STATUS_FCF_IN_USE 0x3a 1373#define STATUS_FCF_IN_USE 0x3a
1374#define STATUS_FCF_TABLE_EMPTY 0x43
1374 1375
1375struct lpfc_mbx_sli4_config { 1376struct lpfc_mbx_sli4_config {
1376 struct mbox_header header; 1377 struct mbox_header header;
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index d4da6bdd0e73..b8eb1b6e5e77 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -3006,6 +3006,7 @@ lpfc_sli4_async_fcoe_evt(struct lpfc_hba *phba,
3006 struct lpfc_vport *vport; 3006 struct lpfc_vport *vport;
3007 struct lpfc_nodelist *ndlp; 3007 struct lpfc_nodelist *ndlp;
3008 struct Scsi_Host *shost; 3008 struct Scsi_Host *shost;
3009 uint32_t link_state;
3009 3010
3010 phba->fc_eventTag = acqe_fcoe->event_tag; 3011 phba->fc_eventTag = acqe_fcoe->event_tag;
3011 phba->fcoe_eventtag = acqe_fcoe->event_tag; 3012 phba->fcoe_eventtag = acqe_fcoe->event_tag;
@@ -3052,9 +3053,12 @@ lpfc_sli4_async_fcoe_evt(struct lpfc_hba *phba,
3052 break; 3053 break;
3053 /* 3054 /*
3054 * Currently, driver support only one FCF - so treat this as 3055 * Currently, driver support only one FCF - so treat this as
3055 * a link down. 3056 * a link down, but save the link state because we don't want
3057 * it to be changed to Link Down unless it is already down.
3056 */ 3058 */
3059 link_state = phba->link_state;
3057 lpfc_linkdown(phba); 3060 lpfc_linkdown(phba);
3061 phba->link_state = link_state;
3058 /* Unregister FCF if no devices connected to it */ 3062 /* Unregister FCF if no devices connected to it */
3059 lpfc_unregister_unused_fcf(phba); 3063 lpfc_unregister_unused_fcf(phba);
3060 break; 3064 break;
@@ -7226,8 +7230,6 @@ lpfc_prep_dev_for_perm_failure(struct lpfc_hba *phba)
7226{ 7230{
7227 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 7231 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
7228 "2711 PCI channel permanent disable for failure\n"); 7232 "2711 PCI channel permanent disable for failure\n");
7229 /* Block all SCSI devices' I/Os on the host */
7230 lpfc_scsi_dev_block(phba);
7231 /* Clean up all driver's outstanding SCSI I/Os */ 7233 /* Clean up all driver's outstanding SCSI I/Os */
7232 lpfc_sli_flush_fcp_rings(phba); 7234 lpfc_sli_flush_fcp_rings(phba);
7233} 7235}
@@ -7256,6 +7258,9 @@ lpfc_io_error_detected_s3(struct pci_dev *pdev, pci_channel_state_t state)
7256 struct Scsi_Host *shost = pci_get_drvdata(pdev); 7258 struct Scsi_Host *shost = pci_get_drvdata(pdev);
7257 struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; 7259 struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba;
7258 7260
7261 /* Block all SCSI devices' I/Os on the host */
7262 lpfc_scsi_dev_block(phba);
7263
7259 switch (state) { 7264 switch (state) {
7260 case pci_channel_io_normal: 7265 case pci_channel_io_normal:
7261 /* Non-fatal error, prepare for recovery */ 7266 /* Non-fatal error, prepare for recovery */
@@ -7507,6 +7512,9 @@ lpfc_pci_probe_one_s4(struct pci_dev *pdev, const struct pci_device_id *pid)
7507 error = -ENODEV; 7512 error = -ENODEV;
7508 goto out_free_sysfs_attr; 7513 goto out_free_sysfs_attr;
7509 } 7514 }
7515 /* Default to single FCP EQ for non-MSI-X */
7516 if (phba->intr_type != MSIX)
7517 phba->cfg_fcp_eq_count = 1;
7510 /* Set up SLI-4 HBA */ 7518 /* Set up SLI-4 HBA */
7511 if (lpfc_sli4_hba_setup(phba)) { 7519 if (lpfc_sli4_hba_setup(phba)) {
7512 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 7520 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 7935667b81a5..589549b2bf0e 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -1383,7 +1383,7 @@ lpfc_sli_hbq_to_firmware_s4(struct lpfc_hba *phba, uint32_t hbqno,
1383/* HBQ for ELS and CT traffic. */ 1383/* HBQ for ELS and CT traffic. */
1384static struct lpfc_hbq_init lpfc_els_hbq = { 1384static struct lpfc_hbq_init lpfc_els_hbq = {
1385 .rn = 1, 1385 .rn = 1,
1386 .entry_count = 200, 1386 .entry_count = 256,
1387 .mask_count = 0, 1387 .mask_count = 0,
1388 .profile = 0, 1388 .profile = 0,
1389 .ring_mask = (1 << LPFC_ELS_RING), 1389 .ring_mask = (1 << LPFC_ELS_RING),
@@ -1482,8 +1482,11 @@ err:
1482int 1482int
1483lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno) 1483lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno)
1484{ 1484{
1485 return(lpfc_sli_hbqbuf_fill_hbqs(phba, qno, 1485 if (phba->sli_rev == LPFC_SLI_REV4)
1486 lpfc_hbq_defs[qno]->add_count)); 1486 return 0;
1487 else
1488 return lpfc_sli_hbqbuf_fill_hbqs(phba, qno,
1489 lpfc_hbq_defs[qno]->add_count);
1487} 1490}
1488 1491
1489/** 1492/**
@@ -1498,8 +1501,12 @@ lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno)
1498static int 1501static int
1499lpfc_sli_hbqbuf_init_hbqs(struct lpfc_hba *phba, uint32_t qno) 1502lpfc_sli_hbqbuf_init_hbqs(struct lpfc_hba *phba, uint32_t qno)
1500{ 1503{
1501 return(lpfc_sli_hbqbuf_fill_hbqs(phba, qno, 1504 if (phba->sli_rev == LPFC_SLI_REV4)
1502 lpfc_hbq_defs[qno]->init_count)); 1505 return lpfc_sli_hbqbuf_fill_hbqs(phba, qno,
1506 lpfc_hbq_defs[qno]->entry_count);
1507 else
1508 return lpfc_sli_hbqbuf_fill_hbqs(phba, qno,
1509 lpfc_hbq_defs[qno]->init_count);
1503} 1510}
1504 1511
1505/** 1512/**
@@ -4110,6 +4117,7 @@ lpfc_sli4_read_rev(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq,
4110 if (rc) { 4117 if (rc) {
4111 dma_free_coherent(&phba->pcidev->dev, dma_size, 4118 dma_free_coherent(&phba->pcidev->dev, dma_size,
4112 dmabuf->virt, dmabuf->phys); 4119 dmabuf->virt, dmabuf->phys);
4120 kfree(dmabuf);
4113 return -EIO; 4121 return -EIO;
4114 } 4122 }
4115 4123
@@ -5848,7 +5856,6 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq,
5848 iocbq->iocb.un.ulpWord[3]); 5856 iocbq->iocb.un.ulpWord[3]);
5849 wqe->generic.word3 = 0; 5857 wqe->generic.word3 = 0;
5850 bf_set(wqe_rcvoxid, &wqe->generic, iocbq->iocb.ulpContext); 5858 bf_set(wqe_rcvoxid, &wqe->generic, iocbq->iocb.ulpContext);
5851 bf_set(wqe_xc, &wqe->generic, 1);
5852 /* The entire sequence is transmitted for this IOCB */ 5859 /* The entire sequence is transmitted for this IOCB */
5853 xmit_len = total_len; 5860 xmit_len = total_len;
5854 cmnd = CMD_XMIT_SEQUENCE64_CR; 5861 cmnd = CMD_XMIT_SEQUENCE64_CR;
@@ -10944,7 +10951,8 @@ lpfc_fc_frame_add(struct lpfc_vport *vport, struct hbq_dmabuf *dmabuf)
10944 return dmabuf; 10951 return dmabuf;
10945 } 10952 }
10946 temp_hdr = seq_dmabuf->hbuf.virt; 10953 temp_hdr = seq_dmabuf->hbuf.virt;
10947 if (new_hdr->fh_seq_cnt < temp_hdr->fh_seq_cnt) { 10954 if (be16_to_cpu(new_hdr->fh_seq_cnt) <
10955 be16_to_cpu(temp_hdr->fh_seq_cnt)) {
10948 list_del_init(&seq_dmabuf->hbuf.list); 10956 list_del_init(&seq_dmabuf->hbuf.list);
10949 list_add_tail(&dmabuf->hbuf.list, &vport->rcv_buffer_list); 10957 list_add_tail(&dmabuf->hbuf.list, &vport->rcv_buffer_list);
10950 list_add_tail(&dmabuf->dbuf.list, &seq_dmabuf->dbuf.list); 10958 list_add_tail(&dmabuf->dbuf.list, &seq_dmabuf->dbuf.list);
@@ -10955,6 +10963,11 @@ lpfc_fc_frame_add(struct lpfc_vport *vport, struct hbq_dmabuf *dmabuf)
10955 list_move_tail(&seq_dmabuf->hbuf.list, &vport->rcv_buffer_list); 10963 list_move_tail(&seq_dmabuf->hbuf.list, &vport->rcv_buffer_list);
10956 seq_dmabuf->time_stamp = jiffies; 10964 seq_dmabuf->time_stamp = jiffies;
10957 lpfc_update_rcv_time_stamp(vport); 10965 lpfc_update_rcv_time_stamp(vport);
10966 if (list_empty(&seq_dmabuf->dbuf.list)) {
10967 temp_hdr = dmabuf->hbuf.virt;
10968 list_add_tail(&dmabuf->dbuf.list, &seq_dmabuf->dbuf.list);
10969 return seq_dmabuf;
10970 }
10958 /* find the correct place in the sequence to insert this frame */ 10971 /* find the correct place in the sequence to insert this frame */
10959 list_for_each_entry_reverse(d_buf, &seq_dmabuf->dbuf.list, list) { 10972 list_for_each_entry_reverse(d_buf, &seq_dmabuf->dbuf.list, list) {
10960 temp_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); 10973 temp_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf);
@@ -10963,7 +10976,8 @@ lpfc_fc_frame_add(struct lpfc_vport *vport, struct hbq_dmabuf *dmabuf)
10963 * If the frame's sequence count is greater than the frame on 10976 * If the frame's sequence count is greater than the frame on
10964 * the list then insert the frame right after this frame 10977 * the list then insert the frame right after this frame
10965 */ 10978 */
10966 if (new_hdr->fh_seq_cnt > temp_hdr->fh_seq_cnt) { 10979 if (be16_to_cpu(new_hdr->fh_seq_cnt) >
10980 be16_to_cpu(temp_hdr->fh_seq_cnt)) {
10967 list_add(&dmabuf->dbuf.list, &temp_dmabuf->dbuf.list); 10981 list_add(&dmabuf->dbuf.list, &temp_dmabuf->dbuf.list);
10968 return seq_dmabuf; 10982 return seq_dmabuf;
10969 } 10983 }
@@ -11210,7 +11224,7 @@ lpfc_seq_complete(struct hbq_dmabuf *dmabuf)
11210 seq_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); 11224 seq_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf);
11211 hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt; 11225 hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt;
11212 /* If there is a hole in the sequence count then fail. */ 11226 /* If there is a hole in the sequence count then fail. */
11213 if (++seq_count != hdr->fh_seq_cnt) 11227 if (++seq_count != be16_to_cpu(hdr->fh_seq_cnt))
11214 return 0; 11228 return 0;
11215 fctl = (hdr->fh_f_ctl[0] << 16 | 11229 fctl = (hdr->fh_f_ctl[0] << 16 |
11216 hdr->fh_f_ctl[1] << 8 | 11230 hdr->fh_f_ctl[1] << 8 |
@@ -11242,6 +11256,7 @@ lpfc_prep_seq(struct lpfc_vport *vport, struct hbq_dmabuf *seq_dmabuf)
11242 struct lpfc_iocbq *first_iocbq, *iocbq; 11256 struct lpfc_iocbq *first_iocbq, *iocbq;
11243 struct fc_frame_header *fc_hdr; 11257 struct fc_frame_header *fc_hdr;
11244 uint32_t sid; 11258 uint32_t sid;
11259 struct ulp_bde64 *pbde;
11245 11260
11246 fc_hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt; 11261 fc_hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt;
11247 /* remove from receive buffer list */ 11262 /* remove from receive buffer list */
@@ -11283,8 +11298,9 @@ lpfc_prep_seq(struct lpfc_vport *vport, struct hbq_dmabuf *seq_dmabuf)
11283 if (!iocbq->context3) { 11298 if (!iocbq->context3) {
11284 iocbq->context3 = d_buf; 11299 iocbq->context3 = d_buf;
11285 iocbq->iocb.ulpBdeCount++; 11300 iocbq->iocb.ulpBdeCount++;
11286 iocbq->iocb.unsli3.rcvsli3.bde2.tus.f.bdeSize = 11301 pbde = (struct ulp_bde64 *)
11287 LPFC_DATA_BUF_SIZE; 11302 &iocbq->iocb.unsli3.sli3Words[4];
11303 pbde->tus.f.bdeSize = LPFC_DATA_BUF_SIZE;
11288 first_iocbq->iocb.unsli3.rcvsli3.acc_len += 11304 first_iocbq->iocb.unsli3.rcvsli3.acc_len +=
11289 bf_get(lpfc_rcqe_length, 11305 bf_get(lpfc_rcqe_length,
11290 &seq_dmabuf->cq_event.cqe.rcqe_cmpl); 11306 &seq_dmabuf->cq_event.cqe.rcqe_cmpl);
@@ -11401,15 +11417,9 @@ lpfc_sli4_handle_received_buffer(struct lpfc_hba *phba,
11401 return; 11417 return;
11402 } 11418 }
11403 /* If not last frame in sequence continue processing frames. */ 11419 /* If not last frame in sequence continue processing frames. */
11404 if (!lpfc_seq_complete(seq_dmabuf)) { 11420 if (!lpfc_seq_complete(seq_dmabuf))
11405 /*
11406 * When saving off frames post a new one and mark this
11407 * frame to be freed when it is finished.
11408 **/
11409 lpfc_sli_hbqbuf_fill_hbqs(phba, LPFC_ELS_HBQ, 1);
11410 dmabuf->tag = -1;
11411 return; 11421 return;
11412 } 11422
11413 /* Send the complete sequence to the upper layer protocol */ 11423 /* Send the complete sequence to the upper layer protocol */
11414 lpfc_sli4_send_seq_to_ulp(vport, seq_dmabuf); 11424 lpfc_sli4_send_seq_to_ulp(vport, seq_dmabuf);
11415} 11425}
diff --git a/drivers/scsi/lpfc/lpfc_sli4.h b/drivers/scsi/lpfc/lpfc_sli4.h
index 25d66d070cf8..44e5f574236b 100644
--- a/drivers/scsi/lpfc/lpfc_sli4.h
+++ b/drivers/scsi/lpfc/lpfc_sli4.h
@@ -28,7 +28,7 @@
28/* Multi-queue arrangement for fast-path FCP work queues */ 28/* Multi-queue arrangement for fast-path FCP work queues */
29#define LPFC_FN_EQN_MAX 8 29#define LPFC_FN_EQN_MAX 8
30#define LPFC_SP_EQN_DEF 1 30#define LPFC_SP_EQN_DEF 1
31#define LPFC_FP_EQN_DEF 1 31#define LPFC_FP_EQN_DEF 4
32#define LPFC_FP_EQN_MIN 1 32#define LPFC_FP_EQN_MIN 1
33#define LPFC_FP_EQN_MAX (LPFC_FN_EQN_MAX - LPFC_SP_EQN_DEF) 33#define LPFC_FP_EQN_MAX (LPFC_FN_EQN_MAX - LPFC_SP_EQN_DEF)
34 34
diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h
index c7f3aed2aab8..792f72263f1a 100644
--- a/drivers/scsi/lpfc/lpfc_version.h
+++ b/drivers/scsi/lpfc/lpfc_version.h
@@ -18,7 +18,7 @@
18 * included with this package. * 18 * included with this package. *
19 *******************************************************************/ 19 *******************************************************************/
20 20
21#define LPFC_DRIVER_VERSION "8.3.6" 21#define LPFC_DRIVER_VERSION "8.3.7"
22#define LPFC_DRIVER_NAME "lpfc" 22#define LPFC_DRIVER_NAME "lpfc"
23#define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp" 23#define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp"
24#define LPFC_FP_DRIVER_HANDLER_NAME "lpfc:fp" 24#define LPFC_FP_DRIVER_HANDLER_NAME "lpfc:fp"
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index 7d6dd83d3592..e3c7fa642306 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -512,8 +512,10 @@ enable_vport(struct fc_vport *fc_vport)
512 return VPORT_OK; 512 return VPORT_OK;
513 } 513 }
514 514
515 spin_lock_irq(&phba->hbalock);
515 vport->load_flag |= FC_LOADING; 516 vport->load_flag |= FC_LOADING;
516 vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; 517 vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
518 spin_unlock_irq(&phba->hbalock);
517 519
518 /* Use the Physical nodes Fabric NDLP to determine if the link is 520 /* Use the Physical nodes Fabric NDLP to determine if the link is
519 * up and ready to FDISC. 521 * up and ready to FDISC.
@@ -700,7 +702,7 @@ lpfc_vport_delete(struct fc_vport *fc_vport)
700 } 702 }
701 spin_unlock_irq(&phba->ndlp_lock); 703 spin_unlock_irq(&phba->ndlp_lock);
702 } 704 }
703 if (vport->vpi_state != LPFC_VPI_REGISTERED) 705 if (!(vport->vpi_state & LPFC_VPI_REGISTERED))
704 goto skip_logo; 706 goto skip_logo;
705 vport->unreg_vpi_cmpl = VPORT_INVAL; 707 vport->unreg_vpi_cmpl = VPORT_INVAL;
706 timeout = msecs_to_jiffies(phba->fc_ratov * 2000); 708 timeout = msecs_to_jiffies(phba->fc_ratov * 2000);
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
index e7d2688fbeba..b6f1ef954af1 100644
--- a/drivers/scsi/pmcraid.c
+++ b/drivers/scsi/pmcraid.c
@@ -2483,14 +2483,12 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
2483 sense_copied = 1; 2483 sense_copied = 1;
2484 } 2484 }
2485 2485
2486 if (RES_IS_GSCSI(res->cfg_entry)) { 2486 if (RES_IS_GSCSI(res->cfg_entry))
2487 pmcraid_cancel_all(cmd, sense_copied); 2487 pmcraid_cancel_all(cmd, sense_copied);
2488 } else if (sense_copied) { 2488 else if (sense_copied)
2489 pmcraid_erp_done(cmd); 2489 pmcraid_erp_done(cmd);
2490 return 0; 2490 else
2491 } else {
2492 pmcraid_request_sense(cmd); 2491 pmcraid_request_sense(cmd);
2493 }
2494 2492
2495 return 1; 2493 return 1;
2496 2494
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 21e2bc4d7401..3a9f5b288aee 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -232,6 +232,9 @@ qla2x00_sysfs_write_optrom_ctl(struct kobject *kobj,
232 if (off) 232 if (off)
233 return 0; 233 return 0;
234 234
235 if (unlikely(pci_channel_offline(ha->pdev)))
236 return 0;
237
235 if (sscanf(buf, "%d:%x:%x", &val, &start, &size) < 1) 238 if (sscanf(buf, "%d:%x:%x", &val, &start, &size) < 1)
236 return -EINVAL; 239 return -EINVAL;
237 if (start > ha->optrom_size) 240 if (start > ha->optrom_size)
@@ -379,6 +382,9 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj,
379 struct device, kobj))); 382 struct device, kobj)));
380 struct qla_hw_data *ha = vha->hw; 383 struct qla_hw_data *ha = vha->hw;
381 384
385 if (unlikely(pci_channel_offline(ha->pdev)))
386 return 0;
387
382 if (!capable(CAP_SYS_ADMIN)) 388 if (!capable(CAP_SYS_ADMIN))
383 return 0; 389 return 0;
384 390
@@ -398,6 +404,9 @@ qla2x00_sysfs_write_vpd(struct kobject *kobj,
398 struct qla_hw_data *ha = vha->hw; 404 struct qla_hw_data *ha = vha->hw;
399 uint8_t *tmp_data; 405 uint8_t *tmp_data;
400 406
407 if (unlikely(pci_channel_offline(ha->pdev)))
408 return 0;
409
401 if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size || 410 if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size ||
402 !ha->isp_ops->write_nvram) 411 !ha->isp_ops->write_nvram)
403 return 0; 412 return 0;
@@ -1238,10 +1247,11 @@ qla2x00_fw_state_show(struct device *dev, struct device_attribute *attr,
1238 char *buf) 1247 char *buf)
1239{ 1248{
1240 scsi_qla_host_t *vha = shost_priv(class_to_shost(dev)); 1249 scsi_qla_host_t *vha = shost_priv(class_to_shost(dev));
1241 int rval; 1250 int rval = QLA_FUNCTION_FAILED;
1242 uint16_t state[5]; 1251 uint16_t state[5];
1243 1252
1244 rval = qla2x00_get_firmware_state(vha, state); 1253 if (!vha->hw->flags.eeh_busy)
1254 rval = qla2x00_get_firmware_state(vha, state);
1245 if (rval != QLA_SUCCESS) 1255 if (rval != QLA_SUCCESS)
1246 memset(state, -1, sizeof(state)); 1256 memset(state, -1, sizeof(state));
1247 1257
@@ -1452,10 +1462,13 @@ qla2x00_dev_loss_tmo_callbk(struct fc_rport *rport)
1452 if (!fcport) 1462 if (!fcport)
1453 return; 1463 return;
1454 1464
1455 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) 1465 if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags))
1466 return;
1467
1468 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) {
1456 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); 1469 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16);
1457 else 1470 return;
1458 qla2x00_abort_fcport_cmds(fcport); 1471 }
1459 1472
1460 /* 1473 /*
1461 * Transport has effectively 'deleted' the rport, clear 1474 * Transport has effectively 'deleted' the rport, clear
@@ -1475,6 +1488,9 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
1475 if (!fcport) 1488 if (!fcport)
1476 return; 1489 return;
1477 1490
1491 if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags))
1492 return;
1493
1478 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { 1494 if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) {
1479 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); 1495 qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16);
1480 return; 1496 return;
@@ -1515,6 +1531,12 @@ qla2x00_get_fc_host_stats(struct Scsi_Host *shost)
1515 pfc_host_stat = &ha->fc_host_stat; 1531 pfc_host_stat = &ha->fc_host_stat;
1516 memset(pfc_host_stat, -1, sizeof(struct fc_host_statistics)); 1532 memset(pfc_host_stat, -1, sizeof(struct fc_host_statistics));
1517 1533
1534 if (test_bit(UNLOADING, &vha->dpc_flags))
1535 goto done;
1536
1537 if (unlikely(pci_channel_offline(ha->pdev)))
1538 goto done;
1539
1518 stats = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &stats_dma); 1540 stats = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &stats_dma);
1519 if (stats == NULL) { 1541 if (stats == NULL) {
1520 DEBUG2_3_11(printk("%s(%ld): Failed to allocate memory.\n", 1542 DEBUG2_3_11(printk("%s(%ld): Failed to allocate memory.\n",
diff --git a/drivers/scsi/qla2xxx/qla_dbg.h b/drivers/scsi/qla2xxx/qla_dbg.h
index f660dd70b72e..d6d9c86cb058 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.h
+++ b/drivers/scsi/qla2xxx/qla_dbg.h
@@ -26,7 +26,7 @@
26/* #define QL_DEBUG_LEVEL_14 */ /* Output RSCN trace msgs */ 26/* #define QL_DEBUG_LEVEL_14 */ /* Output RSCN trace msgs */
27/* #define QL_DEBUG_LEVEL_15 */ /* Output NPIV trace msgs */ 27/* #define QL_DEBUG_LEVEL_15 */ /* Output NPIV trace msgs */
28/* #define QL_DEBUG_LEVEL_16 */ /* Output ISP84XX trace msgs */ 28/* #define QL_DEBUG_LEVEL_16 */ /* Output ISP84XX trace msgs */
29/* #define QL_DEBUG_LEVEL_17 */ /* Output MULTI-Q trace messages */ 29/* #define QL_DEBUG_LEVEL_17 */ /* Output EEH trace messages */
30 30
31/* 31/*
32* Macros use for debugging the driver. 32* Macros use for debugging the driver.
@@ -132,6 +132,13 @@
132#else 132#else
133#define DEBUG16(x) do {} while (0) 133#define DEBUG16(x) do {} while (0)
134#endif 134#endif
135
136#if defined(QL_DEBUG_LEVEL_17)
137#define DEBUG17(x) do {x;} while (0)
138#else
139#define DEBUG17(x) do {} while (0)
140#endif
141
135/* 142/*
136 * Firmware Dump structure definition 143 * Firmware Dump structure definition
137 */ 144 */
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 384afda7dbe9..608e675f68c8 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -2256,11 +2256,13 @@ struct qla_hw_data {
2256 uint32_t disable_serdes :1; 2256 uint32_t disable_serdes :1;
2257 uint32_t gpsc_supported :1; 2257 uint32_t gpsc_supported :1;
2258 uint32_t npiv_supported :1; 2258 uint32_t npiv_supported :1;
2259 uint32_t pci_channel_io_perm_failure :1;
2259 uint32_t fce_enabled :1; 2260 uint32_t fce_enabled :1;
2260 uint32_t fac_supported :1; 2261 uint32_t fac_supported :1;
2261 uint32_t chip_reset_done :1; 2262 uint32_t chip_reset_done :1;
2262 uint32_t port0 :1; 2263 uint32_t port0 :1;
2263 uint32_t running_gold_fw :1; 2264 uint32_t running_gold_fw :1;
2265 uint32_t eeh_busy :1;
2264 uint32_t cpu_affinity_enabled :1; 2266 uint32_t cpu_affinity_enabled :1;
2265 uint32_t disable_msix_handshake :1; 2267 uint32_t disable_msix_handshake :1;
2266 } flags; 2268 } flags;
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index 0b6801fc6389..f61fb8d01330 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -324,6 +324,7 @@ qla2x00_read_ram_word(scsi_qla_host_t *, uint32_t, uint32_t *);
324extern int 324extern int
325qla2x00_write_ram_word(scsi_qla_host_t *, uint32_t, uint32_t); 325qla2x00_write_ram_word(scsi_qla_host_t *, uint32_t, uint32_t);
326 326
327extern int qla2x00_get_data_rate(scsi_qla_host_t *);
327/* 328/*
328 * Global Function Prototypes in qla_isr.c source file. 329 * Global Function Prototypes in qla_isr.c source file.
329 */ 330 */
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 73a793539d45..b4a0eac8f96d 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -269,6 +269,8 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha)
269 vha->flags.online = 0; 269 vha->flags.online = 0;
270 ha->flags.chip_reset_done = 0; 270 ha->flags.chip_reset_done = 0;
271 vha->flags.reset_active = 0; 271 vha->flags.reset_active = 0;
272 ha->flags.pci_channel_io_perm_failure = 0;
273 ha->flags.eeh_busy = 0;
272 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); 274 atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME);
273 atomic_set(&vha->loop_state, LOOP_DOWN); 275 atomic_set(&vha->loop_state, LOOP_DOWN);
274 vha->device_flags = DFLG_NO_CABLE; 276 vha->device_flags = DFLG_NO_CABLE;
@@ -581,6 +583,9 @@ qla2x00_reset_chip(scsi_qla_host_t *vha)
581 uint32_t cnt; 583 uint32_t cnt;
582 uint16_t cmd; 584 uint16_t cmd;
583 585
586 if (unlikely(pci_channel_offline(ha->pdev)))
587 return;
588
584 ha->isp_ops->disable_intrs(ha); 589 ha->isp_ops->disable_intrs(ha);
585 590
586 spin_lock_irqsave(&ha->hardware_lock, flags); 591 spin_lock_irqsave(&ha->hardware_lock, flags);
@@ -786,6 +791,12 @@ void
786qla24xx_reset_chip(scsi_qla_host_t *vha) 791qla24xx_reset_chip(scsi_qla_host_t *vha)
787{ 792{
788 struct qla_hw_data *ha = vha->hw; 793 struct qla_hw_data *ha = vha->hw;
794
795 if (pci_channel_offline(ha->pdev) &&
796 ha->flags.pci_channel_io_perm_failure) {
797 return;
798 }
799
789 ha->isp_ops->disable_intrs(ha); 800 ha->isp_ops->disable_intrs(ha);
790 801
791 /* Perform RISC reset. */ 802 /* Perform RISC reset. */
@@ -2266,6 +2277,8 @@ qla2x00_configure_loop(scsi_qla_host_t *vha)
2266 clear_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); 2277 clear_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
2267 clear_bit(RSCN_UPDATE, &vha->dpc_flags); 2278 clear_bit(RSCN_UPDATE, &vha->dpc_flags);
2268 2279
2280 qla2x00_get_data_rate(vha);
2281
2269 /* Determine what we need to do */ 2282 /* Determine what we need to do */
2270 if (ha->current_topology == ISP_CFG_FL && 2283 if (ha->current_topology == ISP_CFG_FL &&
2271 (test_bit(LOCAL_LOOP_UPDATE, &flags))) { 2284 (test_bit(LOCAL_LOOP_UPDATE, &flags))) {
@@ -3560,6 +3573,13 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
3560 /* Requeue all commands in outstanding command list. */ 3573 /* Requeue all commands in outstanding command list. */
3561 qla2x00_abort_all_cmds(vha, DID_RESET << 16); 3574 qla2x00_abort_all_cmds(vha, DID_RESET << 16);
3562 3575
3576 if (unlikely(pci_channel_offline(ha->pdev) &&
3577 ha->flags.pci_channel_io_perm_failure)) {
3578 clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags);
3579 status = 0;
3580 return status;
3581 }
3582
3563 ha->isp_ops->get_flash_version(vha, req->ring); 3583 ha->isp_ops->get_flash_version(vha, req->ring);
3564 3584
3565 ha->isp_ops->nvram_config(vha); 3585 ha->isp_ops->nvram_config(vha);
@@ -4458,6 +4478,8 @@ qla2x00_try_to_stop_firmware(scsi_qla_host_t *vha)
4458 int ret, retries; 4478 int ret, retries;
4459 struct qla_hw_data *ha = vha->hw; 4479 struct qla_hw_data *ha = vha->hw;
4460 4480
4481 if (ha->flags.pci_channel_io_perm_failure)
4482 return;
4461 if (!IS_FWI2_CAPABLE(ha)) 4483 if (!IS_FWI2_CAPABLE(ha))
4462 return; 4484 return;
4463 if (!ha->fw_major_version) 4485 if (!ha->fw_major_version)
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 1692a883f4de..ffd0efdff40e 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -152,7 +152,7 @@ qla2300_intr_handler(int irq, void *dev_id)
152 for (iter = 50; iter--; ) { 152 for (iter = 50; iter--; ) {
153 stat = RD_REG_DWORD(&reg->u.isp2300.host_status); 153 stat = RD_REG_DWORD(&reg->u.isp2300.host_status);
154 if (stat & HSR_RISC_PAUSED) { 154 if (stat & HSR_RISC_PAUSED) {
155 if (pci_channel_offline(ha->pdev)) 155 if (unlikely(pci_channel_offline(ha->pdev)))
156 break; 156 break;
157 157
158 hccr = RD_REG_WORD(&reg->hccr); 158 hccr = RD_REG_WORD(&reg->hccr);
@@ -1846,12 +1846,15 @@ qla24xx_intr_handler(int irq, void *dev_id)
1846 reg = &ha->iobase->isp24; 1846 reg = &ha->iobase->isp24;
1847 status = 0; 1847 status = 0;
1848 1848
1849 if (unlikely(pci_channel_offline(ha->pdev)))
1850 return IRQ_HANDLED;
1851
1849 spin_lock_irqsave(&ha->hardware_lock, flags); 1852 spin_lock_irqsave(&ha->hardware_lock, flags);
1850 vha = pci_get_drvdata(ha->pdev); 1853 vha = pci_get_drvdata(ha->pdev);
1851 for (iter = 50; iter--; ) { 1854 for (iter = 50; iter--; ) {
1852 stat = RD_REG_DWORD(&reg->host_status); 1855 stat = RD_REG_DWORD(&reg->host_status);
1853 if (stat & HSRX_RISC_PAUSED) { 1856 if (stat & HSRX_RISC_PAUSED) {
1854 if (pci_channel_offline(ha->pdev)) 1857 if (unlikely(pci_channel_offline(ha->pdev)))
1855 break; 1858 break;
1856 1859
1857 hccr = RD_REG_DWORD(&reg->hccr); 1860 hccr = RD_REG_DWORD(&reg->hccr);
@@ -1992,7 +1995,7 @@ qla24xx_msix_default(int irq, void *dev_id)
1992 do { 1995 do {
1993 stat = RD_REG_DWORD(&reg->host_status); 1996 stat = RD_REG_DWORD(&reg->host_status);
1994 if (stat & HSRX_RISC_PAUSED) { 1997 if (stat & HSRX_RISC_PAUSED) {
1995 if (pci_channel_offline(ha->pdev)) 1998 if (unlikely(pci_channel_offline(ha->pdev)))
1996 break; 1999 break;
1997 2000
1998 hccr = RD_REG_DWORD(&reg->hccr); 2001 hccr = RD_REG_DWORD(&reg->hccr);
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 05d595d9a7ef..056e4d4505f3 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -56,6 +56,12 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
56 56
57 DEBUG11(printk("%s(%ld): entered.\n", __func__, base_vha->host_no)); 57 DEBUG11(printk("%s(%ld): entered.\n", __func__, base_vha->host_no));
58 58
59 if (ha->flags.pci_channel_io_perm_failure) {
60 DEBUG(printk("%s(%ld): Perm failure on EEH, timeout MBX "
61 "Exiting.\n", __func__, vha->host_no));
62 return QLA_FUNCTION_TIMEOUT;
63 }
64
59 /* 65 /*
60 * Wait for active mailbox commands to finish by waiting at most tov 66 * Wait for active mailbox commands to finish by waiting at most tov
61 * seconds. This is to serialize actual issuing of mailbox cmds during 67 * seconds. This is to serialize actual issuing of mailbox cmds during
@@ -154,10 +160,14 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
154 /* Check for pending interrupts. */ 160 /* Check for pending interrupts. */
155 qla2x00_poll(ha->rsp_q_map[0]); 161 qla2x00_poll(ha->rsp_q_map[0]);
156 162
157 if (command != MBC_LOAD_RISC_RAM_EXTENDED && 163 if (!ha->flags.mbox_int &&
158 !ha->flags.mbox_int) 164 !(IS_QLA2200(ha) &&
165 command == MBC_LOAD_RISC_RAM_EXTENDED))
159 msleep(10); 166 msleep(10);
160 } /* while */ 167 } /* while */
168 DEBUG17(qla_printk(KERN_WARNING, ha,
169 "Waited %d sec\n",
170 (uint)((jiffies - (wait_time - (mcp->tov * HZ)))/HZ)));
161 } 171 }
162 172
163 /* Check whether we timed out */ 173 /* Check whether we timed out */
@@ -227,7 +237,8 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
227 237
228 if (rval == QLA_FUNCTION_TIMEOUT && 238 if (rval == QLA_FUNCTION_TIMEOUT &&
229 mcp->mb[0] != MBC_GEN_SYSTEM_ERROR) { 239 mcp->mb[0] != MBC_GEN_SYSTEM_ERROR) {
230 if (!io_lock_on || (mcp->flags & IOCTL_CMD)) { 240 if (!io_lock_on || (mcp->flags & IOCTL_CMD) ||
241 ha->flags.eeh_busy) {
231 /* not in dpc. schedule it for dpc to take over. */ 242 /* not in dpc. schedule it for dpc to take over. */
232 DEBUG(printk("%s(%ld): timeout schedule " 243 DEBUG(printk("%s(%ld): timeout schedule "
233 "isp_abort_needed.\n", __func__, 244 "isp_abort_needed.\n", __func__,
@@ -237,7 +248,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
237 base_vha->host_no)); 248 base_vha->host_no));
238 qla_printk(KERN_WARNING, ha, 249 qla_printk(KERN_WARNING, ha,
239 "Mailbox command timeout occurred. Scheduling ISP " 250 "Mailbox command timeout occurred. Scheduling ISP "
240 "abort.\n"); 251 "abort. eeh_busy: 0x%x\n", ha->flags.eeh_busy);
241 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); 252 set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags);
242 qla2xxx_wake_dpc(vha); 253 qla2xxx_wake_dpc(vha);
243 } else if (!abort_active) { 254 } else if (!abort_active) {
@@ -2530,6 +2541,9 @@ qla2x00_enable_eft_trace(scsi_qla_host_t *vha, dma_addr_t eft_dma,
2530 if (!IS_FWI2_CAPABLE(vha->hw)) 2541 if (!IS_FWI2_CAPABLE(vha->hw))
2531 return QLA_FUNCTION_FAILED; 2542 return QLA_FUNCTION_FAILED;
2532 2543
2544 if (unlikely(pci_channel_offline(vha->hw->pdev)))
2545 return QLA_FUNCTION_FAILED;
2546
2533 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); 2547 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2534 2548
2535 mcp->mb[0] = MBC_TRACE_CONTROL; 2549 mcp->mb[0] = MBC_TRACE_CONTROL;
@@ -2565,6 +2579,9 @@ qla2x00_disable_eft_trace(scsi_qla_host_t *vha)
2565 if (!IS_FWI2_CAPABLE(vha->hw)) 2579 if (!IS_FWI2_CAPABLE(vha->hw))
2566 return QLA_FUNCTION_FAILED; 2580 return QLA_FUNCTION_FAILED;
2567 2581
2582 if (unlikely(pci_channel_offline(vha->hw->pdev)))
2583 return QLA_FUNCTION_FAILED;
2584
2568 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); 2585 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2569 2586
2570 mcp->mb[0] = MBC_TRACE_CONTROL; 2587 mcp->mb[0] = MBC_TRACE_CONTROL;
@@ -2595,6 +2612,9 @@ qla2x00_enable_fce_trace(scsi_qla_host_t *vha, dma_addr_t fce_dma,
2595 if (!IS_QLA25XX(vha->hw) && !IS_QLA81XX(vha->hw)) 2612 if (!IS_QLA25XX(vha->hw) && !IS_QLA81XX(vha->hw))
2596 return QLA_FUNCTION_FAILED; 2613 return QLA_FUNCTION_FAILED;
2597 2614
2615 if (unlikely(pci_channel_offline(vha->hw->pdev)))
2616 return QLA_FUNCTION_FAILED;
2617
2598 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); 2618 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2599 2619
2600 mcp->mb[0] = MBC_TRACE_CONTROL; 2620 mcp->mb[0] = MBC_TRACE_CONTROL;
@@ -2639,6 +2659,9 @@ qla2x00_disable_fce_trace(scsi_qla_host_t *vha, uint64_t *wr, uint64_t *rd)
2639 if (!IS_FWI2_CAPABLE(vha->hw)) 2659 if (!IS_FWI2_CAPABLE(vha->hw))
2640 return QLA_FUNCTION_FAILED; 2660 return QLA_FUNCTION_FAILED;
2641 2661
2662 if (unlikely(pci_channel_offline(vha->hw->pdev)))
2663 return QLA_FUNCTION_FAILED;
2664
2642 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); 2665 DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no));
2643 2666
2644 mcp->mb[0] = MBC_TRACE_CONTROL; 2667 mcp->mb[0] = MBC_TRACE_CONTROL;
@@ -3643,3 +3666,36 @@ qla2x00_write_ram_word(scsi_qla_host_t *vha, uint32_t risc_addr, uint32_t data)
3643 3666
3644 return rval; 3667 return rval;
3645} 3668}
3669
3670int
3671qla2x00_get_data_rate(scsi_qla_host_t *vha)
3672{
3673 int rval;
3674 mbx_cmd_t mc;
3675 mbx_cmd_t *mcp = &mc;
3676 struct qla_hw_data *ha = vha->hw;
3677
3678 if (!IS_FWI2_CAPABLE(ha))
3679 return QLA_FUNCTION_FAILED;
3680
3681 DEBUG11(printk(KERN_INFO "%s(%ld): entered.\n", __func__, vha->host_no));
3682
3683 mcp->mb[0] = MBC_DATA_RATE;
3684 mcp->mb[1] = 0;
3685 mcp->out_mb = MBX_1|MBX_0;
3686 mcp->in_mb = MBX_2|MBX_1|MBX_0;
3687 mcp->tov = MBX_TOV_SECONDS;
3688 mcp->flags = 0;
3689 rval = qla2x00_mailbox_command(vha, mcp);
3690 if (rval != QLA_SUCCESS) {
3691 DEBUG2_3_11(printk(KERN_INFO "%s(%ld): failed=%x mb[0]=%x.\n",
3692 __func__, vha->host_no, rval, mcp->mb[0]));
3693 } else {
3694 DEBUG11(printk(KERN_INFO
3695 "%s(%ld): done.\n", __func__, vha->host_no));
3696 if (mcp->mb[1] != 0x7)
3697 ha->link_data_rate = mcp->mb[1];
3698 }
3699
3700 return rval;
3701}
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c
index 2a4c7f4e7b69..b901aa267e7d 100644
--- a/drivers/scsi/qla2xxx/qla_mid.c
+++ b/drivers/scsi/qla2xxx/qla_mid.c
@@ -639,8 +639,10 @@ static void qla_do_work(struct work_struct *work)
639 struct rsp_que *rsp = container_of(work, struct rsp_que, q_work); 639 struct rsp_que *rsp = container_of(work, struct rsp_que, q_work);
640 struct scsi_qla_host *vha; 640 struct scsi_qla_host *vha;
641 641
642 spin_lock_irq(&rsp->hw->hardware_lock);
642 vha = qla25xx_get_host(rsp); 643 vha = qla25xx_get_host(rsp);
643 qla24xx_process_response_queue(vha, rsp); 644 qla24xx_process_response_queue(vha, rsp);
645 spin_unlock_irq(&rsp->hw->hardware_lock);
644} 646}
645 647
646/* create response queue */ 648/* create response queue */
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 2f873d237325..209f50e788a1 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -475,11 +475,11 @@ qla2xxx_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
475 srb_t *sp; 475 srb_t *sp;
476 int rval; 476 int rval;
477 477
478 if (unlikely(pci_channel_offline(ha->pdev))) { 478 if (ha->flags.eeh_busy) {
479 if (ha->pdev->error_state == pci_channel_io_frozen) 479 if (ha->flags.pci_channel_io_perm_failure)
480 cmd->result = DID_REQUEUE << 16;
481 else
482 cmd->result = DID_NO_CONNECT << 16; 480 cmd->result = DID_NO_CONNECT << 16;
481 else
482 cmd->result = DID_REQUEUE << 16;
483 goto qc24_fail_command; 483 goto qc24_fail_command;
484 } 484 }
485 485
@@ -552,8 +552,15 @@ qla2x00_eh_wait_on_command(struct scsi_cmnd *cmd)
552#define ABORT_POLLING_PERIOD 1000 552#define ABORT_POLLING_PERIOD 1000
553#define ABORT_WAIT_ITER ((10 * 1000) / (ABORT_POLLING_PERIOD)) 553#define ABORT_WAIT_ITER ((10 * 1000) / (ABORT_POLLING_PERIOD))
554 unsigned long wait_iter = ABORT_WAIT_ITER; 554 unsigned long wait_iter = ABORT_WAIT_ITER;
555 scsi_qla_host_t *vha = shost_priv(cmd->device->host);
556 struct qla_hw_data *ha = vha->hw;
555 int ret = QLA_SUCCESS; 557 int ret = QLA_SUCCESS;
556 558
559 if (unlikely(pci_channel_offline(ha->pdev)) || ha->flags.eeh_busy) {
560 DEBUG17(qla_printk(KERN_WARNING, ha, "return:eh_wait\n"));
561 return ret;
562 }
563
557 while (CMD_SP(cmd) && wait_iter--) { 564 while (CMD_SP(cmd) && wait_iter--) {
558 msleep(ABORT_POLLING_PERIOD); 565 msleep(ABORT_POLLING_PERIOD);
559 } 566 }
@@ -1810,6 +1817,13 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
1810 1817
1811 /* Set ISP-type information. */ 1818 /* Set ISP-type information. */
1812 qla2x00_set_isp_flags(ha); 1819 qla2x00_set_isp_flags(ha);
1820
1821 /* Set EEH reset type to fundamental if required by hba */
1822 if ( IS_QLA24XX(ha) || IS_QLA25XX(ha) || IS_QLA81XX(ha)) {
1823 pdev->needs_freset = 1;
1824 pci_save_state(pdev);
1825 }
1826
1813 /* Configure PCI I/O space */ 1827 /* Configure PCI I/O space */
1814 ret = qla2x00_iospace_config(ha); 1828 ret = qla2x00_iospace_config(ha);
1815 if (ret) 1829 if (ret)
@@ -2174,6 +2188,24 @@ qla2x00_free_device(scsi_qla_host_t *vha)
2174{ 2188{
2175 struct qla_hw_data *ha = vha->hw; 2189 struct qla_hw_data *ha = vha->hw;
2176 2190
2191 qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16);
2192
2193 /* Disable timer */
2194 if (vha->timer_active)
2195 qla2x00_stop_timer(vha);
2196
2197 /* Kill the kernel thread for this host */
2198 if (ha->dpc_thread) {
2199 struct task_struct *t = ha->dpc_thread;
2200
2201 /*
2202 * qla2xxx_wake_dpc checks for ->dpc_thread
2203 * so we need to zero it out.
2204 */
2205 ha->dpc_thread = NULL;
2206 kthread_stop(t);
2207 }
2208
2177 qla25xx_delete_queues(vha); 2209 qla25xx_delete_queues(vha);
2178 2210
2179 if (ha->flags.fce_enabled) 2211 if (ha->flags.fce_enabled)
@@ -2185,6 +2217,8 @@ qla2x00_free_device(scsi_qla_host_t *vha)
2185 /* Stop currently executing firmware. */ 2217 /* Stop currently executing firmware. */
2186 qla2x00_try_to_stop_firmware(vha); 2218 qla2x00_try_to_stop_firmware(vha);
2187 2219
2220 vha->flags.online = 0;
2221
2188 /* turn-off interrupts on the card */ 2222 /* turn-off interrupts on the card */
2189 if (ha->interrupts_on) 2223 if (ha->interrupts_on)
2190 ha->isp_ops->disable_intrs(ha); 2224 ha->isp_ops->disable_intrs(ha);
@@ -2859,6 +2893,13 @@ qla2x00_do_dpc(void *data)
2859 if (!base_vha->flags.init_done) 2893 if (!base_vha->flags.init_done)
2860 continue; 2894 continue;
2861 2895
2896 if (ha->flags.eeh_busy) {
2897 DEBUG17(qla_printk(KERN_WARNING, ha,
2898 "qla2x00_do_dpc: dpc_flags: %lx\n",
2899 base_vha->dpc_flags));
2900 continue;
2901 }
2902
2862 DEBUG3(printk("scsi(%ld): DPC handler\n", base_vha->host_no)); 2903 DEBUG3(printk("scsi(%ld): DPC handler\n", base_vha->host_no));
2863 2904
2864 ha->dpc_active = 1; 2905 ha->dpc_active = 1;
@@ -3049,8 +3090,13 @@ qla2x00_timer(scsi_qla_host_t *vha)
3049 int index; 3090 int index;
3050 srb_t *sp; 3091 srb_t *sp;
3051 int t; 3092 int t;
3093 uint16_t w;
3052 struct qla_hw_data *ha = vha->hw; 3094 struct qla_hw_data *ha = vha->hw;
3053 struct req_que *req; 3095 struct req_que *req;
3096
3097 /* Hardware read to raise pending EEH errors during mailbox waits. */
3098 if (!pci_channel_offline(ha->pdev))
3099 pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w);
3054 /* 3100 /*
3055 * Ports - Port down timer. 3101 * Ports - Port down timer.
3056 * 3102 *
@@ -3252,16 +3298,23 @@ qla2x00_release_firmware(void)
3252static pci_ers_result_t 3298static pci_ers_result_t
3253qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state) 3299qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state)
3254{ 3300{
3255 scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); 3301 scsi_qla_host_t *vha = pci_get_drvdata(pdev);
3302 struct qla_hw_data *ha = vha->hw;
3303
3304 DEBUG2(qla_printk(KERN_WARNING, ha, "error_detected:state %x\n",
3305 state));
3256 3306
3257 switch (state) { 3307 switch (state) {
3258 case pci_channel_io_normal: 3308 case pci_channel_io_normal:
3309 ha->flags.eeh_busy = 0;
3259 return PCI_ERS_RESULT_CAN_RECOVER; 3310 return PCI_ERS_RESULT_CAN_RECOVER;
3260 case pci_channel_io_frozen: 3311 case pci_channel_io_frozen:
3312 ha->flags.eeh_busy = 1;
3261 pci_disable_device(pdev); 3313 pci_disable_device(pdev);
3262 return PCI_ERS_RESULT_NEED_RESET; 3314 return PCI_ERS_RESULT_NEED_RESET;
3263 case pci_channel_io_perm_failure: 3315 case pci_channel_io_perm_failure:
3264 qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); 3316 ha->flags.pci_channel_io_perm_failure = 1;
3317 qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16);
3265 return PCI_ERS_RESULT_DISCONNECT; 3318 return PCI_ERS_RESULT_DISCONNECT;
3266 } 3319 }
3267 return PCI_ERS_RESULT_NEED_RESET; 3320 return PCI_ERS_RESULT_NEED_RESET;
@@ -3312,6 +3365,8 @@ qla2xxx_pci_slot_reset(struct pci_dev *pdev)
3312 struct qla_hw_data *ha = base_vha->hw; 3365 struct qla_hw_data *ha = base_vha->hw;
3313 int rc; 3366 int rc;
3314 3367
3368 DEBUG17(qla_printk(KERN_WARNING, ha, "slot_reset\n"));
3369
3315 if (ha->mem_only) 3370 if (ha->mem_only)
3316 rc = pci_enable_device_mem(pdev); 3371 rc = pci_enable_device_mem(pdev);
3317 else 3372 else
@@ -3320,19 +3375,33 @@ qla2xxx_pci_slot_reset(struct pci_dev *pdev)
3320 if (rc) { 3375 if (rc) {
3321 qla_printk(KERN_WARNING, ha, 3376 qla_printk(KERN_WARNING, ha,
3322 "Can't re-enable PCI device after reset.\n"); 3377 "Can't re-enable PCI device after reset.\n");
3323
3324 return ret; 3378 return ret;
3325 } 3379 }
3326 pci_set_master(pdev);
3327 3380
3328 if (ha->isp_ops->pci_config(base_vha)) 3381 if (ha->isp_ops->pci_config(base_vha))
3329 return ret; 3382 return ret;
3330 3383
3384#ifdef QL_DEBUG_LEVEL_17
3385 {
3386 uint8_t b;
3387 uint32_t i;
3388
3389 printk("slot_reset_1: ");
3390 for (i = 0; i < 256; i++) {
3391 pci_read_config_byte(ha->pdev, i, &b);
3392 printk("%s%02x", (i%16) ? " " : "\n", b);
3393 }
3394 printk("\n");
3395 }
3396#endif
3331 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); 3397 set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags);
3332 if (qla2x00_abort_isp(base_vha) == QLA_SUCCESS) 3398 if (qla2x00_abort_isp(base_vha) == QLA_SUCCESS)
3333 ret = PCI_ERS_RESULT_RECOVERED; 3399 ret = PCI_ERS_RESULT_RECOVERED;
3334 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); 3400 clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags);
3335 3401
3402 DEBUG17(qla_printk(KERN_WARNING, ha,
3403 "slot_reset-return:ret=%x\n", ret));
3404
3336 return ret; 3405 return ret;
3337} 3406}
3338 3407
@@ -3343,12 +3412,17 @@ qla2xxx_pci_resume(struct pci_dev *pdev)
3343 struct qla_hw_data *ha = base_vha->hw; 3412 struct qla_hw_data *ha = base_vha->hw;
3344 int ret; 3413 int ret;
3345 3414
3415 DEBUG17(qla_printk(KERN_WARNING, ha, "pci_resume\n"));
3416
3346 ret = qla2x00_wait_for_hba_online(base_vha); 3417 ret = qla2x00_wait_for_hba_online(base_vha);
3347 if (ret != QLA_SUCCESS) { 3418 if (ret != QLA_SUCCESS) {
3348 qla_printk(KERN_ERR, ha, 3419 qla_printk(KERN_ERR, ha,
3349 "the device failed to resume I/O " 3420 "the device failed to resume I/O "
3350 "from slot/link_reset"); 3421 "from slot/link_reset");
3351 } 3422 }
3423
3424 ha->flags.eeh_busy = 0;
3425
3352 pci_cleanup_aer_uncorrect_error_status(pdev); 3426 pci_cleanup_aer_uncorrect_error_status(pdev);
3353} 3427}
3354 3428
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h
index c482220f7eed..a65dd95507c6 100644
--- a/drivers/scsi/qla2xxx/qla_version.h
+++ b/drivers/scsi/qla2xxx/qla_version.h
@@ -7,7 +7,7 @@
7/* 7/*
8 * Driver version 8 * Driver version
9 */ 9 */
10#define QLA2XXX_VERSION "8.03.01-k8" 10#define QLA2XXX_VERSION "8.03.01-k9"
11 11
12#define QLA_DRIVER_MAJOR_VER 8 12#define QLA_DRIVER_MAJOR_VER 8
13#define QLA_DRIVER_MINOR_VER 3 13#define QLA_DRIVER_MINOR_VER 3
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index 3058bb1aff95..fd7b15be7640 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -623,6 +623,11 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *))
623 } 623 }
624 break; 624 break;
625 case INQUIRY: 625 case INQUIRY:
626 if (lun >= host->max_lun) {
627 cmd->result = DID_NO_CONNECT << 16;
628 done(cmd);
629 return 0;
630 }
626 if (id != host->max_id - 1) 631 if (id != host->max_id - 1)
627 break; 632 break;
628 if (!lun && !cmd->device->channel && 633 if (!lun && !cmd->device->channel &&
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 415858b421b3..825b665245bb 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1221,9 +1221,9 @@ static void setup_smart_timing(struct pxafb_info *fbi,
1221static int pxafb_smart_thread(void *arg) 1221static int pxafb_smart_thread(void *arg)
1222{ 1222{
1223 struct pxafb_info *fbi = arg; 1223 struct pxafb_info *fbi = arg;
1224 struct pxafb_mach_info *inf; 1224 struct pxafb_mach_info *inf = fbi->dev->platform_data;
1225 1225
1226 if (!fbi || !fbi->dev->platform_data->smart_update) { 1226 if (!inf->smart_update) {
1227 pr_err("%s: not properly initialized, thread terminated\n", 1227 pr_err("%s: not properly initialized, thread terminated\n",
1228 __func__); 1228 __func__);
1229 return -EINVAL; 1229 return -EINVAL;
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index c25256a5c5b0..c57d9ce5ff7e 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -171,6 +171,9 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm,
171#ifdef ELF_FDPIC_PLAT_INIT 171#ifdef ELF_FDPIC_PLAT_INIT
172 unsigned long dynaddr; 172 unsigned long dynaddr;
173#endif 173#endif
174#ifndef CONFIG_MMU
175 unsigned long stack_prot;
176#endif
174 struct file *interpreter = NULL; /* to shut gcc up */ 177 struct file *interpreter = NULL; /* to shut gcc up */
175 char *interpreter_name = NULL; 178 char *interpreter_name = NULL;
176 int executable_stack; 179 int executable_stack;
@@ -316,6 +319,8 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm,
316 * defunct, deceased, etc. after this point we have to exit via 319 * defunct, deceased, etc. after this point we have to exit via
317 * error_kill */ 320 * error_kill */
318 set_personality(PER_LINUX_FDPIC); 321 set_personality(PER_LINUX_FDPIC);
322 if (elf_read_implies_exec(&exec_params.hdr, executable_stack))
323 current->personality |= READ_IMPLIES_EXEC;
319 set_binfmt(&elf_fdpic_format); 324 set_binfmt(&elf_fdpic_format);
320 325
321 current->mm->start_code = 0; 326 current->mm->start_code = 0;
@@ -377,9 +382,13 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm,
377 if (stack_size < PAGE_SIZE * 2) 382 if (stack_size < PAGE_SIZE * 2)
378 stack_size = PAGE_SIZE * 2; 383 stack_size = PAGE_SIZE * 2;
379 384
385 stack_prot = PROT_READ | PROT_WRITE;
386 if (executable_stack == EXSTACK_ENABLE_X ||
387 (executable_stack == EXSTACK_DEFAULT && VM_STACK_FLAGS & VM_EXEC))
388 stack_prot |= PROT_EXEC;
389
380 down_write(&current->mm->mmap_sem); 390 down_write(&current->mm->mmap_sem);
381 current->mm->start_brk = do_mmap(NULL, 0, stack_size, 391 current->mm->start_brk = do_mmap(NULL, 0, stack_size, stack_prot,
382 PROT_READ | PROT_WRITE | PROT_EXEC,
383 MAP_PRIVATE | MAP_ANONYMOUS | 392 MAP_PRIVATE | MAP_ANONYMOUS |
384 MAP_UNINITIALIZED | MAP_GROWSDOWN, 393 MAP_UNINITIALIZED | MAP_GROWSDOWN,
385 0); 394 0);
@@ -1798,11 +1807,11 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
1798 ELF_CORE_WRITE_EXTRA_DATA; 1807 ELF_CORE_WRITE_EXTRA_DATA;
1799#endif 1808#endif
1800 1809
1801 if (file->f_pos != offset) { 1810 if (cprm->file->f_pos != offset) {
1802 /* Sanity check */ 1811 /* Sanity check */
1803 printk(KERN_WARNING 1812 printk(KERN_WARNING
1804 "elf_core_dump: file->f_pos (%lld) != offset (%lld)\n", 1813 "elf_core_dump: file->f_pos (%lld) != offset (%lld)\n",
1805 file->f_pos, offset); 1814 cprm->file->f_pos, offset);
1806 } 1815 }
1807 1816
1808end_coredump: 1817end_coredump:
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index 094ea65afc85..7b2600b380d7 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -5,7 +5,9 @@ have duplicated data). Fix oops in cifs_lookup. Workaround problem
5mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session. 5mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session.
6Disable use of server inode numbers when server only 6Disable use of server inode numbers when server only
7partially supports them (e.g. for one server querying inode numbers on 7partially supports them (e.g. for one server querying inode numbers on
8FindFirst fails but QPathInfo queries works). 8FindFirst fails but QPathInfo queries works). Fix oops with dfs in
9cifs_put_smb_ses. Fix mmap to work on directio mounts (needed
10for OpenOffice when on forcedirectio mount e.g.)
9 11
10Version 1.60 12Version 1.60
11------------- 13-------------
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 29f1da761bbf..8c6a03627176 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -758,7 +758,7 @@ const struct file_operations cifs_file_ops = {
758}; 758};
759 759
760const struct file_operations cifs_file_direct_ops = { 760const struct file_operations cifs_file_direct_ops = {
761 /* no mmap, no aio, no readv - 761 /* no aio, no readv -
762 BB reevaluate whether they can be done with directio, no cache */ 762 BB reevaluate whether they can be done with directio, no cache */
763 .read = cifs_user_read, 763 .read = cifs_user_read,
764 .write = cifs_user_write, 764 .write = cifs_user_write,
@@ -767,6 +767,7 @@ const struct file_operations cifs_file_direct_ops = {
767 .lock = cifs_lock, 767 .lock = cifs_lock,
768 .fsync = cifs_fsync, 768 .fsync = cifs_fsync,
769 .flush = cifs_flush, 769 .flush = cifs_flush,
770 .mmap = cifs_file_mmap,
770 .splice_read = generic_file_splice_read, 771 .splice_read = generic_file_splice_read,
771#ifdef CONFIG_CIFS_POSIX 772#ifdef CONFIG_CIFS_POSIX
772 .unlocked_ioctl = cifs_ioctl, 773 .unlocked_ioctl = cifs_ioctl,
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 63ea83ff687f..3bbcaa716b3c 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -2287,12 +2287,12 @@ int
2287cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, 2287cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2288 char *mount_data_global, const char *devname) 2288 char *mount_data_global, const char *devname)
2289{ 2289{
2290 int rc = 0; 2290 int rc;
2291 int xid; 2291 int xid;
2292 struct smb_vol *volume_info; 2292 struct smb_vol *volume_info;
2293 struct cifsSesInfo *pSesInfo = NULL; 2293 struct cifsSesInfo *pSesInfo;
2294 struct cifsTconInfo *tcon = NULL; 2294 struct cifsTconInfo *tcon;
2295 struct TCP_Server_Info *srvTcp = NULL; 2295 struct TCP_Server_Info *srvTcp;
2296 char *full_path; 2296 char *full_path;
2297 char *mount_data = mount_data_global; 2297 char *mount_data = mount_data_global;
2298#ifdef CONFIG_CIFS_DFS_UPCALL 2298#ifdef CONFIG_CIFS_DFS_UPCALL
@@ -2301,6 +2301,10 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
2301 int referral_walks_count = 0; 2301 int referral_walks_count = 0;
2302try_mount_again: 2302try_mount_again:
2303#endif 2303#endif
2304 rc = 0;
2305 tcon = NULL;
2306 pSesInfo = NULL;
2307 srvTcp = NULL;
2304 full_path = NULL; 2308 full_path = NULL;
2305 2309
2306 xid = GetXid(); 2310 xid = GetXid();
@@ -2597,6 +2601,7 @@ remote_path_check:
2597 2601
2598 cleanup_volume_info(&volume_info); 2602 cleanup_volume_info(&volume_info);
2599 referral_walks_count++; 2603 referral_walks_count++;
2604 FreeXid(xid);
2600 goto try_mount_again; 2605 goto try_mount_again;
2601 } 2606 }
2602#else /* No DFS support, return error on mount */ 2607#else /* No DFS support, return error on mount */
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c
index 698a8636d39c..2afbcebeda71 100644
--- a/fs/exofs/inode.c
+++ b/fs/exofs/inode.c
@@ -738,13 +738,28 @@ static int exofs_write_begin_export(struct file *file,
738 fsdata); 738 fsdata);
739} 739}
740 740
741static int exofs_write_end(struct file *file, struct address_space *mapping,
742 loff_t pos, unsigned len, unsigned copied,
743 struct page *page, void *fsdata)
744{
745 struct inode *inode = mapping->host;
746 /* According to comment in simple_write_end i_mutex is held */
747 loff_t i_size = inode->i_size;
748 int ret;
749
750 ret = simple_write_end(file, mapping,pos, len, copied, page, fsdata);
751 if (i_size != inode->i_size)
752 mark_inode_dirty(inode);
753 return ret;
754}
755
741const struct address_space_operations exofs_aops = { 756const struct address_space_operations exofs_aops = {
742 .readpage = exofs_readpage, 757 .readpage = exofs_readpage,
743 .readpages = exofs_readpages, 758 .readpages = exofs_readpages,
744 .writepage = exofs_writepage, 759 .writepage = exofs_writepage,
745 .writepages = exofs_writepages, 760 .writepages = exofs_writepages,
746 .write_begin = exofs_write_begin_export, 761 .write_begin = exofs_write_begin_export,
747 .write_end = simple_write_end, 762 .write_end = exofs_write_end,
748}; 763};
749 764
750/****************************************************************************** 765/******************************************************************************
diff --git a/fs/exofs/pnfs.h b/fs/exofs/pnfs.h
index 423033addd1f..c52e9888b8ab 100644
--- a/fs/exofs/pnfs.h
+++ b/fs/exofs/pnfs.h
@@ -15,13 +15,7 @@
15#ifndef __EXOFS_PNFS_H__ 15#ifndef __EXOFS_PNFS_H__
16#define __EXOFS_PNFS_H__ 16#define __EXOFS_PNFS_H__
17 17
18#if defined(CONFIG_PNFS) 18#if ! defined(__PNFS_OSD_XDR_H__)
19
20
21/* FIXME: move this file to: linux/exportfs/pnfs_osd_xdr.h */
22#include "../nfs/objlayout/pnfs_osd_xdr.h"
23
24#else /* defined(CONFIG_PNFS) */
25 19
26enum pnfs_iomode { 20enum pnfs_iomode {
27 IOMODE_READ = 1, 21 IOMODE_READ = 1,
@@ -46,6 +40,6 @@ struct pnfs_osd_data_map {
46 u32 odm_raid_algorithm; 40 u32 odm_raid_algorithm;
47}; 41};
48 42
49#endif /* else defined(CONFIG_PNFS) */ 43#endif /* ! defined(__PNFS_OSD_XDR_H__) */
50 44
51#endif /* __EXOFS_PNFS_H__ */ 45#endif /* __EXOFS_PNFS_H__ */
diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig
index 9acf7e808139..9ed1bb1f319f 100644
--- a/fs/ext4/Kconfig
+++ b/fs/ext4/Kconfig
@@ -28,6 +28,7 @@ config EXT4_FS
28 28
29config EXT4_USE_FOR_EXT23 29config EXT4_USE_FOR_EXT23
30 bool "Use ext4 for ext2/ext3 file systems" 30 bool "Use ext4 for ext2/ext3 file systems"
31 depends on EXT4_FS
31 depends on EXT3_FS=n || EXT2_FS=n 32 depends on EXT3_FS=n || EXT2_FS=n
32 default y 33 default y
33 help 34 help
diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index 4df8621ec31c..a60ab9aad57d 100644
--- a/fs/ext4/block_validity.c
+++ b/fs/ext4/block_validity.c
@@ -16,7 +16,6 @@
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/swap.h> 17#include <linux/swap.h>
18#include <linux/pagemap.h> 18#include <linux/pagemap.h>
19#include <linux/version.h>
20#include <linux/blkdev.h> 19#include <linux/blkdev.h>
21#include <linux/mutex.h> 20#include <linux/mutex.h>
22#include "ext4.h" 21#include "ext4.h"
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 56f9271ee8cc..af7b62699ea9 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -699,6 +699,8 @@ struct ext4_inode_info {
699 unsigned int i_reserved_meta_blocks; 699 unsigned int i_reserved_meta_blocks;
700 unsigned int i_allocated_meta_blocks; 700 unsigned int i_allocated_meta_blocks;
701 unsigned short i_delalloc_reserved_flag; 701 unsigned short i_delalloc_reserved_flag;
702 sector_t i_da_metadata_calc_last_lblock;
703 int i_da_metadata_calc_len;
702 704
703 /* on-disk additional length */ 705 /* on-disk additional length */
704 __u16 i_extra_isize; 706 __u16 i_extra_isize;
diff --git a/fs/ext4/ext4_extents.h b/fs/ext4/ext4_extents.h
index 2ca686454e87..bdb6ce7e2eb4 100644
--- a/fs/ext4/ext4_extents.h
+++ b/fs/ext4/ext4_extents.h
@@ -225,7 +225,8 @@ static inline void ext4_ext_mark_initialized(struct ext4_extent *ext)
225 ext->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ext)); 225 ext->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ext));
226} 226}
227 227
228extern int ext4_ext_calc_metadata_amount(struct inode *inode, int blocks); 228extern int ext4_ext_calc_metadata_amount(struct inode *inode,
229 sector_t lblocks);
229extern ext4_fsblk_t ext_pblock(struct ext4_extent *ex); 230extern ext4_fsblk_t ext_pblock(struct ext4_extent *ex);
230extern ext4_fsblk_t idx_pblock(struct ext4_extent_idx *); 231extern ext4_fsblk_t idx_pblock(struct ext4_extent_idx *);
231extern void ext4_ext_store_pblock(struct ext4_extent *, ext4_fsblk_t); 232extern void ext4_ext_store_pblock(struct ext4_extent *, ext4_fsblk_t);
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 3a7928f825e4..7d7b74e94687 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -296,29 +296,44 @@ static inline int ext4_ext_space_root_idx(struct inode *inode, int check)
296 * to allocate @blocks 296 * to allocate @blocks
297 * Worse case is one block per extent 297 * Worse case is one block per extent
298 */ 298 */
299int ext4_ext_calc_metadata_amount(struct inode *inode, int blocks) 299int ext4_ext_calc_metadata_amount(struct inode *inode, sector_t lblock)
300{ 300{
301 int lcap, icap, rcap, leafs, idxs, num; 301 struct ext4_inode_info *ei = EXT4_I(inode);
302 int newextents = blocks; 302 int idxs, num = 0;
303
304 rcap = ext4_ext_space_root_idx(inode, 0);
305 lcap = ext4_ext_space_block(inode, 0);
306 icap = ext4_ext_space_block_idx(inode, 0);
307 303
308 /* number of new leaf blocks needed */ 304 idxs = ((inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header))
309 num = leafs = (newextents + lcap - 1) / lcap; 305 / sizeof(struct ext4_extent_idx));
310 306
311 /* 307 /*
312 * Worse case, we need separate index block(s) 308 * If the new delayed allocation block is contiguous with the
313 * to link all new leaf blocks 309 * previous da block, it can share index blocks with the
310 * previous block, so we only need to allocate a new index
311 * block every idxs leaf blocks. At ldxs**2 blocks, we need
312 * an additional index block, and at ldxs**3 blocks, yet
313 * another index blocks.
314 */ 314 */
315 idxs = (leafs + icap - 1) / icap; 315 if (ei->i_da_metadata_calc_len &&
316 do { 316 ei->i_da_metadata_calc_last_lblock+1 == lblock) {
317 num += idxs; 317 if ((ei->i_da_metadata_calc_len % idxs) == 0)
318 idxs = (idxs + icap - 1) / icap; 318 num++;
319 } while (idxs > rcap); 319 if ((ei->i_da_metadata_calc_len % (idxs*idxs)) == 0)
320 num++;
321 if ((ei->i_da_metadata_calc_len % (idxs*idxs*idxs)) == 0) {
322 num++;
323 ei->i_da_metadata_calc_len = 0;
324 } else
325 ei->i_da_metadata_calc_len++;
326 ei->i_da_metadata_calc_last_lblock++;
327 return num;
328 }
320 329
321 return num; 330 /*
331 * In the worst case we need a new set of index blocks at
332 * every level of the inode's extent tree.
333 */
334 ei->i_da_metadata_calc_len = 1;
335 ei->i_da_metadata_calc_last_lblock = lblock;
336 return ext_depth(inode) + 1;
322} 337}
323 338
324static int 339static int
@@ -3023,6 +3038,14 @@ out:
3023 return err; 3038 return err;
3024} 3039}
3025 3040
3041static void unmap_underlying_metadata_blocks(struct block_device *bdev,
3042 sector_t block, int count)
3043{
3044 int i;
3045 for (i = 0; i < count; i++)
3046 unmap_underlying_metadata(bdev, block + i);
3047}
3048
3026static int 3049static int
3027ext4_ext_handle_uninitialized_extents(handle_t *handle, struct inode *inode, 3050ext4_ext_handle_uninitialized_extents(handle_t *handle, struct inode *inode,
3028 ext4_lblk_t iblock, unsigned int max_blocks, 3051 ext4_lblk_t iblock, unsigned int max_blocks,
@@ -3098,6 +3121,18 @@ out:
3098 } else 3121 } else
3099 allocated = ret; 3122 allocated = ret;
3100 set_buffer_new(bh_result); 3123 set_buffer_new(bh_result);
3124 /*
3125 * if we allocated more blocks than requested
3126 * we need to make sure we unmap the extra block
3127 * allocated. The actual needed block will get
3128 * unmapped later when we find the buffer_head marked
3129 * new.
3130 */
3131 if (allocated > max_blocks) {
3132 unmap_underlying_metadata_blocks(inode->i_sb->s_bdev,
3133 newblock + max_blocks,
3134 allocated - max_blocks);
3135 }
3101map_out: 3136map_out:
3102 set_buffer_mapped(bh_result); 3137 set_buffer_mapped(bh_result);
3103out1: 3138out1:
@@ -3190,7 +3225,13 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode,
3190 * this situation is possible, though, _during_ tree modification; 3225 * this situation is possible, though, _during_ tree modification;
3191 * this is why assert can't be put in ext4_ext_find_extent() 3226 * this is why assert can't be put in ext4_ext_find_extent()
3192 */ 3227 */
3193 BUG_ON(path[depth].p_ext == NULL && depth != 0); 3228 if (path[depth].p_ext == NULL && depth != 0) {
3229 ext4_error(inode->i_sb, __func__, "bad extent address "
3230 "inode: %lu, iblock: %d, depth: %d",
3231 inode->i_ino, iblock, depth);
3232 err = -EIO;
3233 goto out2;
3234 }
3194 eh = path[depth].p_hdr; 3235 eh = path[depth].p_hdr;
3195 3236
3196 ex = path[depth].p_ext; 3237 ex = path[depth].p_ext;
diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c
index 0b22497d92e1..98bd140aad01 100644
--- a/fs/ext4/fsync.c
+++ b/fs/ext4/fsync.c
@@ -88,9 +88,21 @@ int ext4_sync_file(struct file *file, struct dentry *dentry, int datasync)
88 return ext4_force_commit(inode->i_sb); 88 return ext4_force_commit(inode->i_sb);
89 89
90 commit_tid = datasync ? ei->i_datasync_tid : ei->i_sync_tid; 90 commit_tid = datasync ? ei->i_datasync_tid : ei->i_sync_tid;
91 if (jbd2_log_start_commit(journal, commit_tid)) 91 if (jbd2_log_start_commit(journal, commit_tid)) {
92 /*
93 * When the journal is on a different device than the
94 * fs data disk, we need to issue the barrier in
95 * writeback mode. (In ordered mode, the jbd2 layer
96 * will take care of issuing the barrier. In
97 * data=journal, all of the data blocks are written to
98 * the journal device.)
99 */
100 if (ext4_should_writeback_data(inode) &&
101 (journal->j_fs_dev != journal->j_dev) &&
102 (journal->j_flags & JBD2_BARRIER))
103 blkdev_issue_flush(inode->i_sb->s_bdev, NULL);
92 jbd2_log_wait_commit(journal, commit_tid); 104 jbd2_log_wait_commit(journal, commit_tid);
93 else if (journal->j_flags & JBD2_BARRIER) 105 } else if (journal->j_flags & JBD2_BARRIER)
94 blkdev_issue_flush(inode->i_sb->s_bdev, NULL); 106 blkdev_issue_flush(inode->i_sb->s_bdev, NULL);
95 return ret; 107 return ret;
96} 108}
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index ab807963a614..c818972c8302 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1009,77 +1009,88 @@ qsize_t *ext4_get_reserved_space(struct inode *inode)
1009 return &EXT4_I(inode)->i_reserved_quota; 1009 return &EXT4_I(inode)->i_reserved_quota;
1010} 1010}
1011#endif 1011#endif
1012
1012/* 1013/*
1013 * Calculate the number of metadata blocks need to reserve 1014 * Calculate the number of metadata blocks need to reserve
1014 * to allocate @blocks for non extent file based file 1015 * to allocate a new block at @lblocks for non extent file based file
1015 */ 1016 */
1016static int ext4_indirect_calc_metadata_amount(struct inode *inode, int blocks) 1017static int ext4_indirect_calc_metadata_amount(struct inode *inode,
1018 sector_t lblock)
1017{ 1019{
1018 int icap = EXT4_ADDR_PER_BLOCK(inode->i_sb); 1020 struct ext4_inode_info *ei = EXT4_I(inode);
1019 int ind_blks, dind_blks, tind_blks; 1021 int dind_mask = EXT4_ADDR_PER_BLOCK(inode->i_sb) - 1;
1020 1022 int blk_bits;
1021 /* number of new indirect blocks needed */
1022 ind_blks = (blocks + icap - 1) / icap;
1023 1023
1024 dind_blks = (ind_blks + icap - 1) / icap; 1024 if (lblock < EXT4_NDIR_BLOCKS)
1025 return 0;
1025 1026
1026 tind_blks = 1; 1027 lblock -= EXT4_NDIR_BLOCKS;
1027 1028
1028 return ind_blks + dind_blks + tind_blks; 1029 if (ei->i_da_metadata_calc_len &&
1030 (lblock & dind_mask) == ei->i_da_metadata_calc_last_lblock) {
1031 ei->i_da_metadata_calc_len++;
1032 return 0;
1033 }
1034 ei->i_da_metadata_calc_last_lblock = lblock & dind_mask;
1035 ei->i_da_metadata_calc_len = 1;
1036 blk_bits = roundup_pow_of_two(lblock + 1);
1037 return (blk_bits / EXT4_ADDR_PER_BLOCK_BITS(inode->i_sb)) + 1;
1029} 1038}
1030 1039
1031/* 1040/*
1032 * Calculate the number of metadata blocks need to reserve 1041 * Calculate the number of metadata blocks need to reserve
1033 * to allocate given number of blocks 1042 * to allocate a block located at @lblock
1034 */ 1043 */
1035static int ext4_calc_metadata_amount(struct inode *inode, int blocks) 1044static int ext4_calc_metadata_amount(struct inode *inode, sector_t lblock)
1036{ 1045{
1037 if (!blocks)
1038 return 0;
1039
1040 if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) 1046 if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL)
1041 return ext4_ext_calc_metadata_amount(inode, blocks); 1047 return ext4_ext_calc_metadata_amount(inode, lblock);
1042 1048
1043 return ext4_indirect_calc_metadata_amount(inode, blocks); 1049 return ext4_indirect_calc_metadata_amount(inode, lblock);
1044} 1050}
1045 1051
1052/*
1053 * Called with i_data_sem down, which is important since we can call
1054 * ext4_discard_preallocations() from here.
1055 */
1046static void ext4_da_update_reserve_space(struct inode *inode, int used) 1056static void ext4_da_update_reserve_space(struct inode *inode, int used)
1047{ 1057{
1048 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); 1058 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
1049 int total, mdb, mdb_free, mdb_claim = 0; 1059 struct ext4_inode_info *ei = EXT4_I(inode);
1050 1060 int mdb_free = 0;
1051 spin_lock(&EXT4_I(inode)->i_block_reservation_lock); 1061
1052 /* recalculate the number of metablocks still need to be reserved */ 1062 spin_lock(&ei->i_block_reservation_lock);
1053 total = EXT4_I(inode)->i_reserved_data_blocks - used; 1063 if (unlikely(used > ei->i_reserved_data_blocks)) {
1054 mdb = ext4_calc_metadata_amount(inode, total); 1064 ext4_msg(inode->i_sb, KERN_NOTICE, "%s: ino %lu, used %d "
1055 1065 "with only %d reserved data blocks\n",
1056 /* figure out how many metablocks to release */ 1066 __func__, inode->i_ino, used,
1057 BUG_ON(mdb > EXT4_I(inode)->i_reserved_meta_blocks); 1067 ei->i_reserved_data_blocks);
1058 mdb_free = EXT4_I(inode)->i_reserved_meta_blocks - mdb; 1068 WARN_ON(1);
1059 1069 used = ei->i_reserved_data_blocks;
1060 if (mdb_free) { 1070 }
1061 /* Account for allocated meta_blocks */ 1071
1062 mdb_claim = EXT4_I(inode)->i_allocated_meta_blocks; 1072 /* Update per-inode reservations */
1063 BUG_ON(mdb_free < mdb_claim); 1073 ei->i_reserved_data_blocks -= used;
1064 mdb_free -= mdb_claim; 1074 used += ei->i_allocated_meta_blocks;
1065 1075 ei->i_reserved_meta_blocks -= ei->i_allocated_meta_blocks;
1066 /* update fs dirty blocks counter */ 1076 ei->i_allocated_meta_blocks = 0;
1077 percpu_counter_sub(&sbi->s_dirtyblocks_counter, used);
1078
1079 if (ei->i_reserved_data_blocks == 0) {
1080 /*
1081 * We can release all of the reserved metadata blocks
1082 * only when we have written all of the delayed
1083 * allocation blocks.
1084 */
1085 mdb_free = ei->i_reserved_meta_blocks;
1086 ei->i_reserved_meta_blocks = 0;
1087 ei->i_da_metadata_calc_len = 0;
1067 percpu_counter_sub(&sbi->s_dirtyblocks_counter, mdb_free); 1088 percpu_counter_sub(&sbi->s_dirtyblocks_counter, mdb_free);
1068 EXT4_I(inode)->i_allocated_meta_blocks = 0;
1069 EXT4_I(inode)->i_reserved_meta_blocks = mdb;
1070 } 1089 }
1071
1072 /* update per-inode reservations */
1073 BUG_ON(used > EXT4_I(inode)->i_reserved_data_blocks);
1074 EXT4_I(inode)->i_reserved_data_blocks -= used;
1075 percpu_counter_sub(&sbi->s_dirtyblocks_counter, used + mdb_claim);
1076 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); 1090 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1077 1091
1078 vfs_dq_claim_block(inode, used + mdb_claim); 1092 /* Update quota subsystem */
1079 1093 vfs_dq_claim_block(inode, used);
1080 /*
1081 * free those over-booking quota for metadata blocks
1082 */
1083 if (mdb_free) 1094 if (mdb_free)
1084 vfs_dq_release_reservation_block(inode, mdb_free); 1095 vfs_dq_release_reservation_block(inode, mdb_free);
1085 1096
@@ -1088,7 +1099,8 @@ static void ext4_da_update_reserve_space(struct inode *inode, int used)
1088 * there aren't any writers on the inode, we can discard the 1099 * there aren't any writers on the inode, we can discard the
1089 * inode's preallocations. 1100 * inode's preallocations.
1090 */ 1101 */
1091 if (!total && (atomic_read(&inode->i_writecount) == 0)) 1102 if ((ei->i_reserved_data_blocks == 0) &&
1103 (atomic_read(&inode->i_writecount) == 0))
1092 ext4_discard_preallocations(inode); 1104 ext4_discard_preallocations(inode);
1093} 1105}
1094 1106
@@ -1797,11 +1809,15 @@ static int ext4_journalled_write_end(struct file *file,
1797 return ret ? ret : copied; 1809 return ret ? ret : copied;
1798} 1810}
1799 1811
1800static int ext4_da_reserve_space(struct inode *inode, int nrblocks) 1812/*
1813 * Reserve a single block located at lblock
1814 */
1815static int ext4_da_reserve_space(struct inode *inode, sector_t lblock)
1801{ 1816{
1802 int retries = 0; 1817 int retries = 0;
1803 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); 1818 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
1804 unsigned long md_needed, mdblocks, total = 0; 1819 struct ext4_inode_info *ei = EXT4_I(inode);
1820 unsigned long md_needed, md_reserved;
1805 1821
1806 /* 1822 /*
1807 * recalculate the amount of metadata blocks to reserve 1823 * recalculate the amount of metadata blocks to reserve
@@ -1809,35 +1825,43 @@ static int ext4_da_reserve_space(struct inode *inode, int nrblocks)
1809 * worse case is one extent per block 1825 * worse case is one extent per block
1810 */ 1826 */
1811repeat: 1827repeat:
1812 spin_lock(&EXT4_I(inode)->i_block_reservation_lock); 1828 spin_lock(&ei->i_block_reservation_lock);
1813 total = EXT4_I(inode)->i_reserved_data_blocks + nrblocks; 1829 md_reserved = ei->i_reserved_meta_blocks;
1814 mdblocks = ext4_calc_metadata_amount(inode, total); 1830 md_needed = ext4_calc_metadata_amount(inode, lblock);
1815 BUG_ON(mdblocks < EXT4_I(inode)->i_reserved_meta_blocks); 1831 spin_unlock(&ei->i_block_reservation_lock);
1816
1817 md_needed = mdblocks - EXT4_I(inode)->i_reserved_meta_blocks;
1818 total = md_needed + nrblocks;
1819 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1820 1832
1821 /* 1833 /*
1822 * Make quota reservation here to prevent quota overflow 1834 * Make quota reservation here to prevent quota overflow
1823 * later. Real quota accounting is done at pages writeout 1835 * later. Real quota accounting is done at pages writeout
1824 * time. 1836 * time.
1825 */ 1837 */
1826 if (vfs_dq_reserve_block(inode, total)) 1838 if (vfs_dq_reserve_block(inode, md_needed + 1)) {
1839 /*
1840 * We tend to badly over-estimate the amount of
1841 * metadata blocks which are needed, so if we have
1842 * reserved any metadata blocks, try to force out the
1843 * inode and see if we have any better luck.
1844 */
1845 if (md_reserved && retries++ <= 3)
1846 goto retry;
1827 return -EDQUOT; 1847 return -EDQUOT;
1848 }
1828 1849
1829 if (ext4_claim_free_blocks(sbi, total)) { 1850 if (ext4_claim_free_blocks(sbi, md_needed + 1)) {
1830 vfs_dq_release_reservation_block(inode, total); 1851 vfs_dq_release_reservation_block(inode, md_needed + 1);
1831 if (ext4_should_retry_alloc(inode->i_sb, &retries)) { 1852 if (ext4_should_retry_alloc(inode->i_sb, &retries)) {
1853 retry:
1854 if (md_reserved)
1855 write_inode_now(inode, (retries == 3));
1832 yield(); 1856 yield();
1833 goto repeat; 1857 goto repeat;
1834 } 1858 }
1835 return -ENOSPC; 1859 return -ENOSPC;
1836 } 1860 }
1837 spin_lock(&EXT4_I(inode)->i_block_reservation_lock); 1861 spin_lock(&ei->i_block_reservation_lock);
1838 EXT4_I(inode)->i_reserved_data_blocks += nrblocks; 1862 ei->i_reserved_data_blocks++;
1839 EXT4_I(inode)->i_reserved_meta_blocks += md_needed; 1863 ei->i_reserved_meta_blocks += md_needed;
1840 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); 1864 spin_unlock(&ei->i_block_reservation_lock);
1841 1865
1842 return 0; /* success */ 1866 return 0; /* success */
1843} 1867}
@@ -1845,49 +1869,46 @@ repeat:
1845static void ext4_da_release_space(struct inode *inode, int to_free) 1869static void ext4_da_release_space(struct inode *inode, int to_free)
1846{ 1870{
1847 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); 1871 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
1848 int total, mdb, mdb_free, release; 1872 struct ext4_inode_info *ei = EXT4_I(inode);
1849 1873
1850 if (!to_free) 1874 if (!to_free)
1851 return; /* Nothing to release, exit */ 1875 return; /* Nothing to release, exit */
1852 1876
1853 spin_lock(&EXT4_I(inode)->i_block_reservation_lock); 1877 spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
1854 1878
1855 if (!EXT4_I(inode)->i_reserved_data_blocks) { 1879 if (unlikely(to_free > ei->i_reserved_data_blocks)) {
1856 /* 1880 /*
1857 * if there is no reserved blocks, but we try to free some 1881 * if there aren't enough reserved blocks, then the
1858 * then the counter is messed up somewhere. 1882 * counter is messed up somewhere. Since this
1859 * but since this function is called from invalidate 1883 * function is called from invalidate page, it's
1860 * page, it's harmless to return without any action 1884 * harmless to return without any action.
1861 */ 1885 */
1862 printk(KERN_INFO "ext4 delalloc try to release %d reserved " 1886 ext4_msg(inode->i_sb, KERN_NOTICE, "ext4_da_release_space: "
1863 "blocks for inode %lu, but there is no reserved " 1887 "ino %lu, to_free %d with only %d reserved "
1864 "data blocks\n", to_free, inode->i_ino); 1888 "data blocks\n", inode->i_ino, to_free,
1865 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); 1889 ei->i_reserved_data_blocks);
1866 return; 1890 WARN_ON(1);
1891 to_free = ei->i_reserved_data_blocks;
1867 } 1892 }
1893 ei->i_reserved_data_blocks -= to_free;
1868 1894
1869 /* recalculate the number of metablocks still need to be reserved */ 1895 if (ei->i_reserved_data_blocks == 0) {
1870 total = EXT4_I(inode)->i_reserved_data_blocks - to_free; 1896 /*
1871 mdb = ext4_calc_metadata_amount(inode, total); 1897 * We can release all of the reserved metadata blocks
1872 1898 * only when we have written all of the delayed
1873 /* figure out how many metablocks to release */ 1899 * allocation blocks.
1874 BUG_ON(mdb > EXT4_I(inode)->i_reserved_meta_blocks); 1900 */
1875 mdb_free = EXT4_I(inode)->i_reserved_meta_blocks - mdb; 1901 to_free += ei->i_reserved_meta_blocks;
1876 1902 ei->i_reserved_meta_blocks = 0;
1877 release = to_free + mdb_free; 1903 ei->i_da_metadata_calc_len = 0;
1878 1904 }
1879 /* update fs dirty blocks counter for truncate case */
1880 percpu_counter_sub(&sbi->s_dirtyblocks_counter, release);
1881 1905
1882 /* update per-inode reservations */ 1906 /* update fs dirty blocks counter */
1883 BUG_ON(to_free > EXT4_I(inode)->i_reserved_data_blocks); 1907 percpu_counter_sub(&sbi->s_dirtyblocks_counter, to_free);
1884 EXT4_I(inode)->i_reserved_data_blocks -= to_free;
1885 1908
1886 BUG_ON(mdb > EXT4_I(inode)->i_reserved_meta_blocks);
1887 EXT4_I(inode)->i_reserved_meta_blocks = mdb;
1888 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); 1909 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1889 1910
1890 vfs_dq_release_reservation_block(inode, release); 1911 vfs_dq_release_reservation_block(inode, to_free);
1891} 1912}
1892 1913
1893static void ext4_da_page_release_reservation(struct page *page, 1914static void ext4_da_page_release_reservation(struct page *page,
@@ -2493,7 +2514,7 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
2493 * XXX: __block_prepare_write() unmaps passed block, 2514 * XXX: __block_prepare_write() unmaps passed block,
2494 * is it OK? 2515 * is it OK?
2495 */ 2516 */
2496 ret = ext4_da_reserve_space(inode, 1); 2517 ret = ext4_da_reserve_space(inode, iblock);
2497 if (ret) 2518 if (ret)
2498 /* not enough space to reserve */ 2519 /* not enough space to reserve */
2499 return ret; 2520 return ret;
@@ -2967,8 +2988,7 @@ retry:
2967out_writepages: 2988out_writepages:
2968 if (!no_nrwrite_index_update) 2989 if (!no_nrwrite_index_update)
2969 wbc->no_nrwrite_index_update = 0; 2990 wbc->no_nrwrite_index_update = 0;
2970 if (wbc->nr_to_write > nr_to_writebump) 2991 wbc->nr_to_write -= nr_to_writebump;
2971 wbc->nr_to_write -= nr_to_writebump;
2972 wbc->range_start = range_start; 2992 wbc->range_start = range_start;
2973 trace_ext4_da_writepages_result(inode, wbc, ret, pages_written); 2993 trace_ext4_da_writepages_result(inode, wbc, ret, pages_written);
2974 return ret; 2994 return ret;
@@ -2993,11 +3013,18 @@ static int ext4_nonda_switch(struct super_block *sb)
2993 if (2 * free_blocks < 3 * dirty_blocks || 3013 if (2 * free_blocks < 3 * dirty_blocks ||
2994 free_blocks < (dirty_blocks + EXT4_FREEBLOCKS_WATERMARK)) { 3014 free_blocks < (dirty_blocks + EXT4_FREEBLOCKS_WATERMARK)) {
2995 /* 3015 /*
2996 * free block count is less that 150% of dirty blocks 3016 * free block count is less than 150% of dirty blocks
2997 * or free blocks is less that watermark 3017 * or free blocks is less than watermark
2998 */ 3018 */
2999 return 1; 3019 return 1;
3000 } 3020 }
3021 /*
3022 * Even if we don't switch but are nearing capacity,
3023 * start pushing delalloc when 1/2 of free blocks are dirty.
3024 */
3025 if (free_blocks < 2 * dirty_blocks)
3026 writeback_inodes_sb_if_idle(sb);
3027
3001 return 0; 3028 return 0;
3002} 3029}
3003 3030
diff --git a/fs/ext4/mballoc.h b/fs/ext4/mballoc.h
index 0ca811061bc7..436521cae456 100644
--- a/fs/ext4/mballoc.h
+++ b/fs/ext4/mballoc.h
@@ -17,7 +17,6 @@
17#include <linux/proc_fs.h> 17#include <linux/proc_fs.h>
18#include <linux/pagemap.h> 18#include <linux/pagemap.h>
19#include <linux/seq_file.h> 19#include <linux/seq_file.h>
20#include <linux/version.h>
21#include <linux/blkdev.h> 20#include <linux/blkdev.h>
22#include <linux/mutex.h> 21#include <linux/mutex.h>
23#include "ext4_jbd2.h" 22#include "ext4_jbd2.h"
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 6ed9aa91f27d..735c20d5fd56 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -702,6 +702,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb)
702 ei->i_reserved_data_blocks = 0; 702 ei->i_reserved_data_blocks = 0;
703 ei->i_reserved_meta_blocks = 0; 703 ei->i_reserved_meta_blocks = 0;
704 ei->i_allocated_meta_blocks = 0; 704 ei->i_allocated_meta_blocks = 0;
705 ei->i_da_metadata_calc_len = 0;
705 ei->i_delalloc_reserved_flag = 0; 706 ei->i_delalloc_reserved_flag = 0;
706 spin_lock_init(&(ei->i_block_reservation_lock)); 707 spin_lock_init(&(ei->i_block_reservation_lock));
707#ifdef CONFIG_QUOTA 708#ifdef CONFIG_QUOTA
@@ -2174,9 +2175,9 @@ static ssize_t lifetime_write_kbytes_show(struct ext4_attr *a,
2174 struct super_block *sb = sbi->s_buddy_cache->i_sb; 2175 struct super_block *sb = sbi->s_buddy_cache->i_sb;
2175 2176
2176 return snprintf(buf, PAGE_SIZE, "%llu\n", 2177 return snprintf(buf, PAGE_SIZE, "%llu\n",
2177 sbi->s_kbytes_written + 2178 (unsigned long long)(sbi->s_kbytes_written +
2178 ((part_stat_read(sb->s_bdev->bd_part, sectors[1]) - 2179 ((part_stat_read(sb->s_bdev->bd_part, sectors[1]) -
2179 EXT4_SB(sb)->s_sectors_written_start) >> 1)); 2180 EXT4_SB(sb)->s_sectors_written_start) >> 1)));
2180} 2181}
2181 2182
2182static ssize_t inode_readahead_blks_store(struct ext4_attr *a, 2183static ssize_t inode_readahead_blks_store(struct ext4_attr *a,
@@ -4005,6 +4006,7 @@ static inline void unregister_as_ext2(void)
4005{ 4006{
4006 unregister_filesystem(&ext2_fs_type); 4007 unregister_filesystem(&ext2_fs_type);
4007} 4008}
4009MODULE_ALIAS("ext2");
4008#else 4010#else
4009static inline void register_as_ext2(void) { } 4011static inline void register_as_ext2(void) { }
4010static inline void unregister_as_ext2(void) { } 4012static inline void unregister_as_ext2(void) { }
@@ -4031,6 +4033,7 @@ static inline void unregister_as_ext3(void)
4031{ 4033{
4032 unregister_filesystem(&ext3_fs_type); 4034 unregister_filesystem(&ext3_fs_type);
4033} 4035}
4036MODULE_ALIAS("ext3");
4034#else 4037#else
4035static inline void register_as_ext3(void) { } 4038static inline void register_as_ext3(void) { }
4036static inline void unregister_as_ext3(void) { } 4039static inline void unregister_as_ext3(void) { }
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 83218bebbc7c..f3a2f7ed45aa 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1332,6 +1332,8 @@ retry:
1332 goto cleanup; 1332 goto cleanup;
1333 kfree(b_entry_name); 1333 kfree(b_entry_name);
1334 kfree(buffer); 1334 kfree(buffer);
1335 b_entry_name = NULL;
1336 buffer = NULL;
1335 brelse(is->iloc.bh); 1337 brelse(is->iloc.bh);
1336 kfree(is); 1338 kfree(is);
1337 kfree(bs); 1339 kfree(bs);
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 49bc1b8e8f19..1a7c42c64ff4 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -242,6 +242,7 @@ static void bdi_sync_writeback(struct backing_dev_info *bdi,
242/** 242/**
243 * bdi_start_writeback - start writeback 243 * bdi_start_writeback - start writeback
244 * @bdi: the backing device to write from 244 * @bdi: the backing device to write from
245 * @sb: write inodes from this super_block
245 * @nr_pages: the number of pages to write 246 * @nr_pages: the number of pages to write
246 * 247 *
247 * Description: 248 * Description:
@@ -1187,6 +1188,23 @@ void writeback_inodes_sb(struct super_block *sb)
1187EXPORT_SYMBOL(writeback_inodes_sb); 1188EXPORT_SYMBOL(writeback_inodes_sb);
1188 1189
1189/** 1190/**
1191 * writeback_inodes_sb_if_idle - start writeback if none underway
1192 * @sb: the superblock
1193 *
1194 * Invoke writeback_inodes_sb if no writeback is currently underway.
1195 * Returns 1 if writeback was started, 0 if not.
1196 */
1197int writeback_inodes_sb_if_idle(struct super_block *sb)
1198{
1199 if (!writeback_in_progress(sb->s_bdi)) {
1200 writeback_inodes_sb(sb);
1201 return 1;
1202 } else
1203 return 0;
1204}
1205EXPORT_SYMBOL(writeback_inodes_sb_if_idle);
1206
1207/**
1190 * sync_inodes_sb - sync sb inode pages 1208 * sync_inodes_sb - sync sb inode pages
1191 * @sb: the superblock 1209 * @sb: the superblock
1192 * 1210 *
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c
index ca0f5eb62b20..886849370950 100644
--- a/fs/jbd2/checkpoint.c
+++ b/fs/jbd2/checkpoint.c
@@ -22,6 +22,7 @@
22#include <linux/jbd2.h> 22#include <linux/jbd2.h>
23#include <linux/errno.h> 23#include <linux/errno.h>
24#include <linux/slab.h> 24#include <linux/slab.h>
25#include <linux/blkdev.h>
25#include <trace/events/jbd2.h> 26#include <trace/events/jbd2.h>
26 27
27/* 28/*
@@ -515,6 +516,20 @@ int jbd2_cleanup_journal_tail(journal_t *journal)
515 journal->j_tail_sequence = first_tid; 516 journal->j_tail_sequence = first_tid;
516 journal->j_tail = blocknr; 517 journal->j_tail = blocknr;
517 spin_unlock(&journal->j_state_lock); 518 spin_unlock(&journal->j_state_lock);
519
520 /*
521 * If there is an external journal, we need to make sure that
522 * any data blocks that were recently written out --- perhaps
523 * by jbd2_log_do_checkpoint() --- are flushed out before we
524 * drop the transactions from the external journal. It's
525 * unlikely this will be necessary, especially with a
526 * appropriately sized journal, but we need this to guarantee
527 * correctness. Fortunately jbd2_cleanup_journal_tail()
528 * doesn't get called all that often.
529 */
530 if ((journal->j_fs_dev != journal->j_dev) &&
531 (journal->j_flags & JBD2_BARRIER))
532 blkdev_issue_flush(journal->j_fs_dev, NULL);
518 if (!(journal->j_flags & JBD2_ABORT)) 533 if (!(journal->j_flags & JBD2_ABORT))
519 jbd2_journal_update_superblock(journal, 1); 534 jbd2_journal_update_superblock(journal, 1);
520 return 0; 535 return 0;
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 6a10238d2c63..1bc74b6f26d2 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
@@ -259,6 +259,7 @@ static int journal_submit_data_buffers(journal_t *journal,
259 ret = err; 259 ret = err;
260 spin_lock(&journal->j_list_lock); 260 spin_lock(&journal->j_list_lock);
261 J_ASSERT(jinode->i_transaction == commit_transaction); 261 J_ASSERT(jinode->i_transaction == commit_transaction);
262 commit_transaction->t_flushed_data_blocks = 1;
262 jinode->i_flags &= ~JI_COMMIT_RUNNING; 263 jinode->i_flags &= ~JI_COMMIT_RUNNING;
263 wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING); 264 wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING);
264 } 265 }
@@ -708,8 +709,17 @@ start_journal_io:
708 } 709 }
709 } 710 }
710 711
711 /* Done it all: now write the commit record asynchronously. */ 712 /*
713 * If the journal is not located on the file system device,
714 * then we must flush the file system device before we issue
715 * the commit record
716 */
717 if (commit_transaction->t_flushed_data_blocks &&
718 (journal->j_fs_dev != journal->j_dev) &&
719 (journal->j_flags & JBD2_BARRIER))
720 blkdev_issue_flush(journal->j_fs_dev, NULL);
712 721
722 /* Done it all: now write the commit record asynchronously. */
713 if (JBD2_HAS_INCOMPAT_FEATURE(journal, 723 if (JBD2_HAS_INCOMPAT_FEATURE(journal,
714 JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)) { 724 JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)) {
715 err = journal_submit_commit_record(journal, commit_transaction, 725 err = journal_submit_commit_record(journal, commit_transaction,
@@ -720,13 +730,6 @@ start_journal_io:
720 blkdev_issue_flush(journal->j_dev, NULL); 730 blkdev_issue_flush(journal->j_dev, NULL);
721 } 731 }
722 732
723 /*
724 * This is the right place to wait for data buffers both for ASYNC
725 * and !ASYNC commit. If commit is ASYNC, we need to wait only after
726 * the commit block went to disk (which happens above). If commit is
727 * SYNC, we need to wait for data buffers before we start writing
728 * commit block, which happens below in such setting.
729 */
730 err = journal_finish_inode_data_buffers(journal, commit_transaction); 733 err = journal_finish_inode_data_buffers(journal, commit_transaction);
731 if (err) { 734 if (err) {
732 printk(KERN_WARNING 735 printk(KERN_WARNING
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 17af879e6e9e..ac0d027595d0 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -814,7 +814,7 @@ static journal_t * journal_init_common (void)
814 journal_t *journal; 814 journal_t *journal;
815 int err; 815 int err;
816 816
817 journal = kzalloc(sizeof(*journal), GFP_KERNEL|__GFP_NOFAIL); 817 journal = kzalloc(sizeof(*journal), GFP_KERNEL);
818 if (!journal) 818 if (!journal)
819 goto fail; 819 goto fail;
820 820
diff --git a/fs/namei.c b/fs/namei.c
index 68921d9b5302..b55440baf7ab 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -232,6 +232,7 @@ int generic_permission(struct inode *inode, int mask,
232 /* 232 /*
233 * Searching includes executable on directories, else just read. 233 * Searching includes executable on directories, else just read.
234 */ 234 */
235 mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
235 if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE))) 236 if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE)))
236 if (capable(CAP_DAC_READ_SEARCH)) 237 if (capable(CAP_DAC_READ_SEARCH))
237 return 0; 238 return 0;
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 7c2e337d05af..c194793b642b 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -780,12 +780,9 @@ static inline int nfsd_dosync(struct file *filp, struct dentry *dp,
780 int (*fsync) (struct file *, struct dentry *, int); 780 int (*fsync) (struct file *, struct dentry *, int);
781 int err; 781 int err;
782 782
783 err = filemap_fdatawrite(inode->i_mapping); 783 err = filemap_write_and_wait(inode->i_mapping);
784 if (err == 0 && fop && (fsync = fop->fsync)) 784 if (err == 0 && fop && (fsync = fop->fsync))
785 err = fsync(filp, dp, 0); 785 err = fsync(filp, dp, 0);
786 if (err == 0)
787 err = filemap_fdatawait(inode->i_mapping);
788
789 return err; 786 return err;
790} 787}
791 788
diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c
index f4a14ea2ed9c..effdbdbe6c11 100644
--- a/fs/nilfs2/bmap.c
+++ b/fs/nilfs2/bmap.c
@@ -417,8 +417,8 @@ __u64 nilfs_bmap_data_get_key(const struct nilfs_bmap *bmap,
417 417
418 key = page_index(bh->b_page) << (PAGE_CACHE_SHIFT - 418 key = page_index(bh->b_page) << (PAGE_CACHE_SHIFT -
419 bmap->b_inode->i_blkbits); 419 bmap->b_inode->i_blkbits);
420 for (pbh = page_buffers(bh->b_page); pbh != bh; 420 for (pbh = page_buffers(bh->b_page); pbh != bh; pbh = pbh->b_this_page)
421 pbh = pbh->b_this_page, key++); 421 key++;
422 422
423 return key; 423 return key;
424} 424}
diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c
index d5ad54e204a5..18737818db63 100644
--- a/fs/nilfs2/cpfile.c
+++ b/fs/nilfs2/cpfile.c
@@ -328,19 +328,24 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
328 tnicps += nicps; 328 tnicps += nicps;
329 nilfs_mdt_mark_buffer_dirty(cp_bh); 329 nilfs_mdt_mark_buffer_dirty(cp_bh);
330 nilfs_mdt_mark_dirty(cpfile); 330 nilfs_mdt_mark_dirty(cpfile);
331 if (!nilfs_cpfile_is_in_first(cpfile, cno) && 331 if (!nilfs_cpfile_is_in_first(cpfile, cno)) {
332 (count = nilfs_cpfile_block_sub_valid_checkpoints( 332 count =
333 cpfile, cp_bh, kaddr, nicps)) == 0) { 333 nilfs_cpfile_block_sub_valid_checkpoints(
334 /* make hole */ 334 cpfile, cp_bh, kaddr, nicps);
335 kunmap_atomic(kaddr, KM_USER0); 335 if (count == 0) {
336 brelse(cp_bh); 336 /* make hole */
337 ret = nilfs_cpfile_delete_checkpoint_block( 337 kunmap_atomic(kaddr, KM_USER0);
338 cpfile, cno); 338 brelse(cp_bh);
339 if (ret == 0) 339 ret =
340 continue; 340 nilfs_cpfile_delete_checkpoint_block(
341 printk(KERN_ERR "%s: cannot delete block\n", 341 cpfile, cno);
342 __func__); 342 if (ret == 0)
343 break; 343 continue;
344 printk(KERN_ERR
345 "%s: cannot delete block\n",
346 __func__);
347 break;
348 }
344 } 349 }
345 } 350 }
346 351
diff --git a/fs/nilfs2/direct.c b/fs/nilfs2/direct.c
index d369ac718277..236753df5cdf 100644
--- a/fs/nilfs2/direct.c
+++ b/fs/nilfs2/direct.c
@@ -51,11 +51,11 @@ static int nilfs_direct_lookup(const struct nilfs_bmap *bmap,
51 struct nilfs_direct *direct; 51 struct nilfs_direct *direct;
52 __u64 ptr; 52 __u64 ptr;
53 53
54 direct = (struct nilfs_direct *)bmap; 54 direct = (struct nilfs_direct *)bmap; /* XXX: use macro for level 1 */
55 if ((key > NILFS_DIRECT_KEY_MAX) || 55 if (key > NILFS_DIRECT_KEY_MAX || level != 1)
56 (level != 1) || /* XXX: use macro for level 1 */ 56 return -ENOENT;
57 ((ptr = nilfs_direct_get_ptr(direct, key)) == 57 ptr = nilfs_direct_get_ptr(direct, key);
58 NILFS_BMAP_INVALID_PTR)) 58 if (ptr == NILFS_BMAP_INVALID_PTR)
59 return -ENOENT; 59 return -ENOENT;
60 60
61 if (ptrp != NULL) 61 if (ptrp != NULL)
@@ -73,9 +73,10 @@ static int nilfs_direct_lookup_contig(const struct nilfs_bmap *bmap,
73 sector_t blocknr; 73 sector_t blocknr;
74 int ret, cnt; 74 int ret, cnt;
75 75
76 if (key > NILFS_DIRECT_KEY_MAX || 76 if (key > NILFS_DIRECT_KEY_MAX)
77 (ptr = nilfs_direct_get_ptr(direct, key)) == 77 return -ENOENT;
78 NILFS_BMAP_INVALID_PTR) 78 ptr = nilfs_direct_get_ptr(direct, key);
79 if (ptr == NILFS_BMAP_INVALID_PTR)
79 return -ENOENT; 80 return -ENOENT;
80 81
81 if (NILFS_BMAP_USE_VBN(bmap)) { 82 if (NILFS_BMAP_USE_VBN(bmap)) {
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c
index f6af76042d80..d6b2b83de363 100644
--- a/fs/nilfs2/ioctl.c
+++ b/fs/nilfs2/ioctl.c
@@ -480,7 +480,7 @@ static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp,
480 unsigned int cmd, void __user *argp) 480 unsigned int cmd, void __user *argp)
481{ 481{
482 struct nilfs_argv argv[5]; 482 struct nilfs_argv argv[5];
483 const static size_t argsz[5] = { 483 static const size_t argsz[5] = {
484 sizeof(struct nilfs_vdesc), 484 sizeof(struct nilfs_vdesc),
485 sizeof(struct nilfs_period), 485 sizeof(struct nilfs_period),
486 sizeof(__u64), 486 sizeof(__u64),
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 3d30a1c974a8..06ccf6a86d35 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -1772,7 +1772,8 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry,
1772 loff_t *ppos, 1772 loff_t *ppos,
1773 size_t count, 1773 size_t count,
1774 int appending, 1774 int appending,
1775 int *direct_io) 1775 int *direct_io,
1776 int *has_refcount)
1776{ 1777{
1777 int ret = 0, meta_level = 0; 1778 int ret = 0, meta_level = 0;
1778 struct inode *inode = dentry->d_inode; 1779 struct inode *inode = dentry->d_inode;
@@ -1833,6 +1834,8 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry,
1833 saved_pos, 1834 saved_pos,
1834 count, 1835 count,
1835 &meta_level); 1836 &meta_level);
1837 if (has_refcount)
1838 *has_refcount = 1;
1836 } 1839 }
1837 1840
1838 if (ret < 0) { 1841 if (ret < 0) {
@@ -1856,6 +1859,10 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry,
1856 break; 1859 break;
1857 } 1860 }
1858 1861
1862 if (has_refcount && *has_refcount == 1) {
1863 *direct_io = 0;
1864 break;
1865 }
1859 /* 1866 /*
1860 * Allowing concurrent direct writes means 1867 * Allowing concurrent direct writes means
1861 * i_size changes wouldn't be synchronized, so 1868 * i_size changes wouldn't be synchronized, so
@@ -1899,7 +1906,7 @@ static ssize_t ocfs2_file_aio_write(struct kiocb *iocb,
1899 loff_t pos) 1906 loff_t pos)
1900{ 1907{
1901 int ret, direct_io, appending, rw_level, have_alloc_sem = 0; 1908 int ret, direct_io, appending, rw_level, have_alloc_sem = 0;
1902 int can_do_direct; 1909 int can_do_direct, has_refcount = 0;
1903 ssize_t written = 0; 1910 ssize_t written = 0;
1904 size_t ocount; /* original count */ 1911 size_t ocount; /* original count */
1905 size_t count; /* after file limit checks */ 1912 size_t count; /* after file limit checks */
@@ -1942,7 +1949,7 @@ relock:
1942 can_do_direct = direct_io; 1949 can_do_direct = direct_io;
1943 ret = ocfs2_prepare_inode_for_write(file->f_path.dentry, ppos, 1950 ret = ocfs2_prepare_inode_for_write(file->f_path.dentry, ppos,
1944 iocb->ki_left, appending, 1951 iocb->ki_left, appending,
1945 &can_do_direct); 1952 &can_do_direct, &has_refcount);
1946 if (ret < 0) { 1953 if (ret < 0) {
1947 mlog_errno(ret); 1954 mlog_errno(ret);
1948 goto out; 1955 goto out;
@@ -2006,14 +2013,16 @@ out_dio:
2006 /* buffered aio wouldn't have proper lock coverage today */ 2013 /* buffered aio wouldn't have proper lock coverage today */
2007 BUG_ON(ret == -EIOCBQUEUED && !(file->f_flags & O_DIRECT)); 2014 BUG_ON(ret == -EIOCBQUEUED && !(file->f_flags & O_DIRECT));
2008 2015
2009 if ((file->f_flags & O_DSYNC && !direct_io) || IS_SYNC(inode)) { 2016 if ((file->f_flags & O_DSYNC && !direct_io) || IS_SYNC(inode) ||
2017 (file->f_flags & O_DIRECT && has_refcount)) {
2010 ret = filemap_fdatawrite_range(file->f_mapping, pos, 2018 ret = filemap_fdatawrite_range(file->f_mapping, pos,
2011 pos + count - 1); 2019 pos + count - 1);
2012 if (ret < 0) 2020 if (ret < 0)
2013 written = ret; 2021 written = ret;
2014 2022
2015 if (!ret && (old_size != i_size_read(inode) || 2023 if (!ret && (old_size != i_size_read(inode) ||
2016 old_clusters != OCFS2_I(inode)->ip_clusters)) { 2024 old_clusters != OCFS2_I(inode)->ip_clusters ||
2025 has_refcount)) {
2017 ret = jbd2_journal_force_commit(osb->journal->j_journal); 2026 ret = jbd2_journal_force_commit(osb->journal->j_journal);
2018 if (ret < 0) 2027 if (ret < 0)
2019 written = ret; 2028 written = ret;
@@ -2062,7 +2071,7 @@ static int ocfs2_splice_to_file(struct pipe_inode_info *pipe,
2062 int ret; 2071 int ret;
2063 2072
2064 ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, &sd->pos, 2073 ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, &sd->pos,
2065 sd->total_len, 0, NULL); 2074 sd->total_len, 0, NULL, NULL);
2066 if (ret < 0) { 2075 if (ret < 0) {
2067 mlog_errno(ret); 2076 mlog_errno(ret);
2068 return ret; 2077 return ret;
diff --git a/fs/reiserfs/bitmap.c b/fs/reiserfs/bitmap.c
index 685495707181..65c872761177 100644
--- a/fs/reiserfs/bitmap.c
+++ b/fs/reiserfs/bitmap.c
@@ -1277,7 +1277,10 @@ int reiserfs_init_bitmap_cache(struct super_block *sb)
1277 struct reiserfs_bitmap_info *bitmap; 1277 struct reiserfs_bitmap_info *bitmap;
1278 unsigned int bmap_nr = reiserfs_bmap_count(sb); 1278 unsigned int bmap_nr = reiserfs_bmap_count(sb);
1279 1279
1280 /* Avoid lock recursion in fault case */
1281 reiserfs_write_unlock(sb);
1280 bitmap = vmalloc(sizeof(*bitmap) * bmap_nr); 1282 bitmap = vmalloc(sizeof(*bitmap) * bmap_nr);
1283 reiserfs_write_lock(sb);
1281 if (bitmap == NULL) 1284 if (bitmap == NULL)
1282 return -ENOMEM; 1285 return -ENOMEM;
1283 1286
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index 290ae38fca8a..1150ebb2536f 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -31,11 +31,12 @@ void reiserfs_delete_inode(struct inode *inode)
31 JOURNAL_PER_BALANCE_CNT * 2 + 31 JOURNAL_PER_BALANCE_CNT * 2 +
32 2 * REISERFS_QUOTA_INIT_BLOCKS(inode->i_sb); 32 2 * REISERFS_QUOTA_INIT_BLOCKS(inode->i_sb);
33 struct reiserfs_transaction_handle th; 33 struct reiserfs_transaction_handle th;
34 int depth;
34 int err; 35 int err;
35 36
36 truncate_inode_pages(&inode->i_data, 0); 37 truncate_inode_pages(&inode->i_data, 0);
37 38
38 reiserfs_write_lock(inode->i_sb); 39 depth = reiserfs_write_lock_once(inode->i_sb);
39 40
40 /* The = 0 happens when we abort creating a new inode for some reason like lack of space.. */ 41 /* The = 0 happens when we abort creating a new inode for some reason like lack of space.. */
41 if (!(inode->i_state & I_NEW) && INODE_PKEY(inode)->k_objectid != 0) { /* also handles bad_inode case */ 42 if (!(inode->i_state & I_NEW) && INODE_PKEY(inode)->k_objectid != 0) { /* also handles bad_inode case */
@@ -74,7 +75,7 @@ void reiserfs_delete_inode(struct inode *inode)
74 out: 75 out:
75 clear_inode(inode); /* note this must go after the journal_end to prevent deadlock */ 76 clear_inode(inode); /* note this must go after the journal_end to prevent deadlock */
76 inode->i_blocks = 0; 77 inode->i_blocks = 0;
77 reiserfs_write_unlock(inode->i_sb); 78 reiserfs_write_unlock_once(inode->i_sb, depth);
78} 79}
79 80
80static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid, 81static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid,
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
index 2f8a7e7b8dab..83ac4d3b3cb0 100644
--- a/fs/reiserfs/journal.c
+++ b/fs/reiserfs/journal.c
@@ -2009,10 +2009,11 @@ static int do_journal_release(struct reiserfs_transaction_handle *th,
2009 destroy_workqueue(commit_wq); 2009 destroy_workqueue(commit_wq);
2010 commit_wq = NULL; 2010 commit_wq = NULL;
2011 } 2011 }
2012 reiserfs_write_lock(sb);
2013 2012
2014 free_journal_ram(sb); 2013 free_journal_ram(sb);
2015 2014
2015 reiserfs_write_lock(sb);
2016
2016 return 0; 2017 return 0;
2017} 2018}
2018 2019
@@ -2758,11 +2759,18 @@ int journal_init(struct super_block *sb, const char *j_dev_name,
2758 struct reiserfs_journal *journal; 2759 struct reiserfs_journal *journal;
2759 struct reiserfs_journal_list *jl; 2760 struct reiserfs_journal_list *jl;
2760 char b[BDEVNAME_SIZE]; 2761 char b[BDEVNAME_SIZE];
2762 int ret;
2761 2763
2764 /*
2765 * Unlock here to avoid various RECLAIM-FS-ON <-> IN-RECLAIM-FS
2766 * dependency inversion warnings.
2767 */
2768 reiserfs_write_unlock(sb);
2762 journal = SB_JOURNAL(sb) = vmalloc(sizeof(struct reiserfs_journal)); 2769 journal = SB_JOURNAL(sb) = vmalloc(sizeof(struct reiserfs_journal));
2763 if (!journal) { 2770 if (!journal) {
2764 reiserfs_warning(sb, "journal-1256", 2771 reiserfs_warning(sb, "journal-1256",
2765 "unable to get memory for journal structure"); 2772 "unable to get memory for journal structure");
2773 reiserfs_write_lock(sb);
2766 return 1; 2774 return 1;
2767 } 2775 }
2768 memset(journal, 0, sizeof(struct reiserfs_journal)); 2776 memset(journal, 0, sizeof(struct reiserfs_journal));
@@ -2771,10 +2779,12 @@ int journal_init(struct super_block *sb, const char *j_dev_name,
2771 INIT_LIST_HEAD(&journal->j_working_list); 2779 INIT_LIST_HEAD(&journal->j_working_list);
2772 INIT_LIST_HEAD(&journal->j_journal_list); 2780 INIT_LIST_HEAD(&journal->j_journal_list);
2773 journal->j_persistent_trans = 0; 2781 journal->j_persistent_trans = 0;
2774 if (reiserfs_allocate_list_bitmaps(sb, 2782 ret = reiserfs_allocate_list_bitmaps(sb, journal->j_list_bitmap,
2775 journal->j_list_bitmap, 2783 reiserfs_bmap_count(sb));
2776 reiserfs_bmap_count(sb))) 2784 reiserfs_write_lock(sb);
2785 if (ret)
2777 goto free_and_return; 2786 goto free_and_return;
2787
2778 allocate_bitmap_nodes(sb); 2788 allocate_bitmap_nodes(sb);
2779 2789
2780 /* reserved for journal area support */ 2790 /* reserved for journal area support */
diff --git a/fs/reiserfs/lock.c b/fs/reiserfs/lock.c
index ee2cfc0fd8a7..b87aa2c1afc1 100644
--- a/fs/reiserfs/lock.c
+++ b/fs/reiserfs/lock.c
@@ -86,3 +86,12 @@ void reiserfs_check_lock_depth(struct super_block *sb, char *caller)
86 reiserfs_panic(sb, "%s called without kernel lock held %d", 86 reiserfs_panic(sb, "%s called without kernel lock held %d",
87 caller); 87 caller);
88} 88}
89
90#ifdef CONFIG_REISERFS_CHECK
91void reiserfs_lock_check_recursive(struct super_block *sb)
92{
93 struct reiserfs_sb_info *sb_i = REISERFS_SB(sb);
94
95 WARN_ONCE((sb_i->lock_depth > 0), "Unwanted recursive reiserfs lock!\n");
96}
97#endif
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
index e296ff72a6cc..9d4dcf0b07cb 100644
--- a/fs/reiserfs/namei.c
+++ b/fs/reiserfs/namei.c
@@ -921,6 +921,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry)
921 struct reiserfs_transaction_handle th; 921 struct reiserfs_transaction_handle th;
922 int jbegin_count; 922 int jbegin_count;
923 unsigned long savelink; 923 unsigned long savelink;
924 int depth;
924 925
925 inode = dentry->d_inode; 926 inode = dentry->d_inode;
926 927
@@ -932,7 +933,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry)
932 JOURNAL_PER_BALANCE_CNT * 2 + 2 + 933 JOURNAL_PER_BALANCE_CNT * 2 + 2 +
933 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb); 934 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb);
934 935
935 reiserfs_write_lock(dir->i_sb); 936 depth = reiserfs_write_lock_once(dir->i_sb);
936 retval = journal_begin(&th, dir->i_sb, jbegin_count); 937 retval = journal_begin(&th, dir->i_sb, jbegin_count);
937 if (retval) 938 if (retval)
938 goto out_unlink; 939 goto out_unlink;
@@ -993,7 +994,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry)
993 994
994 retval = journal_end(&th, dir->i_sb, jbegin_count); 995 retval = journal_end(&th, dir->i_sb, jbegin_count);
995 reiserfs_check_path(&path); 996 reiserfs_check_path(&path);
996 reiserfs_write_unlock(dir->i_sb); 997 reiserfs_write_unlock_once(dir->i_sb, depth);
997 return retval; 998 return retval;
998 999
999 end_unlink: 1000 end_unlink:
@@ -1003,7 +1004,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry)
1003 if (err) 1004 if (err)
1004 retval = err; 1005 retval = err;
1005 out_unlink: 1006 out_unlink:
1006 reiserfs_write_unlock(dir->i_sb); 1007 reiserfs_write_unlock_once(dir->i_sb, depth);
1007 return retval; 1008 return retval;
1008} 1009}
1009 1010
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index 8c7033a8b67e..c3b004ee627b 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -83,7 +83,8 @@ static int xattr_unlink(struct inode *dir, struct dentry *dentry)
83 BUG_ON(!mutex_is_locked(&dir->i_mutex)); 83 BUG_ON(!mutex_is_locked(&dir->i_mutex));
84 vfs_dq_init(dir); 84 vfs_dq_init(dir);
85 85
86 mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_CHILD); 86 reiserfs_mutex_lock_nested_safe(&dentry->d_inode->i_mutex,
87 I_MUTEX_CHILD, dir->i_sb);
87 error = dir->i_op->unlink(dir, dentry); 88 error = dir->i_op->unlink(dir, dentry);
88 mutex_unlock(&dentry->d_inode->i_mutex); 89 mutex_unlock(&dentry->d_inode->i_mutex);
89 90
@@ -98,7 +99,8 @@ static int xattr_rmdir(struct inode *dir, struct dentry *dentry)
98 BUG_ON(!mutex_is_locked(&dir->i_mutex)); 99 BUG_ON(!mutex_is_locked(&dir->i_mutex));
99 vfs_dq_init(dir); 100 vfs_dq_init(dir);
100 101
101 mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_CHILD); 102 reiserfs_mutex_lock_nested_safe(&dentry->d_inode->i_mutex,
103 I_MUTEX_CHILD, dir->i_sb);
102 dentry_unhash(dentry); 104 dentry_unhash(dentry);
103 error = dir->i_op->rmdir(dir, dentry); 105 error = dir->i_op->rmdir(dir, dentry);
104 if (!error) 106 if (!error)
@@ -235,16 +237,22 @@ static int reiserfs_for_each_xattr(struct inode *inode,
235 if (IS_PRIVATE(inode) || get_inode_sd_version(inode) == STAT_DATA_V1) 237 if (IS_PRIVATE(inode) || get_inode_sd_version(inode) == STAT_DATA_V1)
236 return 0; 238 return 0;
237 239
240 reiserfs_write_unlock(inode->i_sb);
238 dir = open_xa_dir(inode, XATTR_REPLACE); 241 dir = open_xa_dir(inode, XATTR_REPLACE);
239 if (IS_ERR(dir)) { 242 if (IS_ERR(dir)) {
240 err = PTR_ERR(dir); 243 err = PTR_ERR(dir);
244 reiserfs_write_lock(inode->i_sb);
241 goto out; 245 goto out;
242 } else if (!dir->d_inode) { 246 } else if (!dir->d_inode) {
243 err = 0; 247 err = 0;
248 reiserfs_write_lock(inode->i_sb);
244 goto out_dir; 249 goto out_dir;
245 } 250 }
246 251
247 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_XATTR); 252 mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_XATTR);
253
254 reiserfs_write_lock(inode->i_sb);
255
248 buf.xadir = dir; 256 buf.xadir = dir;
249 err = reiserfs_readdir_dentry(dir, &buf, fill_with_dentries, &pos); 257 err = reiserfs_readdir_dentry(dir, &buf, fill_with_dentries, &pos);
250 while ((err == 0 || err == -ENOSPC) && buf.count) { 258 while ((err == 0 || err == -ENOSPC) && buf.count) {
@@ -283,8 +291,9 @@ static int reiserfs_for_each_xattr(struct inode *inode,
283 err = journal_begin(&th, inode->i_sb, blocks); 291 err = journal_begin(&th, inode->i_sb, blocks);
284 if (!err) { 292 if (!err) {
285 int jerror; 293 int jerror;
286 mutex_lock_nested(&dir->d_parent->d_inode->i_mutex, 294 reiserfs_mutex_lock_nested_safe(
287 I_MUTEX_XATTR); 295 &dir->d_parent->d_inode->i_mutex,
296 I_MUTEX_XATTR, inode->i_sb);
288 err = action(dir, data); 297 err = action(dir, data);
289 jerror = journal_end(&th, inode->i_sb, blocks); 298 jerror = journal_end(&th, inode->i_sb, blocks);
290 mutex_unlock(&dir->d_parent->d_inode->i_mutex); 299 mutex_unlock(&dir->d_parent->d_inode->i_mutex);
@@ -480,11 +489,16 @@ reiserfs_xattr_set_handle(struct reiserfs_transaction_handle *th,
480 if (!buffer) 489 if (!buffer)
481 return lookup_and_delete_xattr(inode, name); 490 return lookup_and_delete_xattr(inode, name);
482 491
492 reiserfs_write_unlock(inode->i_sb);
483 dentry = xattr_lookup(inode, name, flags); 493 dentry = xattr_lookup(inode, name, flags);
484 if (IS_ERR(dentry)) 494 if (IS_ERR(dentry)) {
495 reiserfs_write_lock(inode->i_sb);
485 return PTR_ERR(dentry); 496 return PTR_ERR(dentry);
497 }
486 498
487 down_write(&REISERFS_I(inode)->i_xattr_sem); 499 down_read(&REISERFS_I(inode)->i_xattr_sem);
500
501 reiserfs_write_lock(inode->i_sb);
488 502
489 xahash = xattr_hash(buffer, buffer_size); 503 xahash = xattr_hash(buffer, buffer_size);
490 while (buffer_pos < buffer_size || buffer_pos == 0) { 504 while (buffer_pos < buffer_size || buffer_pos == 0) {
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index f05f2303a8b8..699f371b9f12 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -106,8 +106,10 @@ static struct sysfs_dirent *sysfs_get_active(struct sysfs_dirent *sd)
106 return NULL; 106 return NULL;
107 107
108 t = atomic_cmpxchg(&sd->s_active, v, v + 1); 108 t = atomic_cmpxchg(&sd->s_active, v, v + 1);
109 if (likely(t == v)) 109 if (likely(t == v)) {
110 rwsem_acquire_read(&sd->dep_map, 0, 1, _RET_IP_);
110 return sd; 111 return sd;
112 }
111 if (t < 0) 113 if (t < 0)
112 return NULL; 114 return NULL;
113 115
@@ -130,6 +132,7 @@ static void sysfs_put_active(struct sysfs_dirent *sd)
130 if (unlikely(!sd)) 132 if (unlikely(!sd))
131 return; 133 return;
132 134
135 rwsem_release(&sd->dep_map, 1, _RET_IP_);
133 v = atomic_dec_return(&sd->s_active); 136 v = atomic_dec_return(&sd->s_active);
134 if (likely(v != SD_DEACTIVATED_BIAS)) 137 if (likely(v != SD_DEACTIVATED_BIAS))
135 return; 138 return;
@@ -194,15 +197,21 @@ static void sysfs_deactivate(struct sysfs_dirent *sd)
194 BUG_ON(sd->s_sibling || !(sd->s_flags & SYSFS_FLAG_REMOVED)); 197 BUG_ON(sd->s_sibling || !(sd->s_flags & SYSFS_FLAG_REMOVED));
195 sd->s_sibling = (void *)&wait; 198 sd->s_sibling = (void *)&wait;
196 199
200 rwsem_acquire(&sd->dep_map, 0, 0, _RET_IP_);
197 /* atomic_add_return() is a mb(), put_active() will always see 201 /* atomic_add_return() is a mb(), put_active() will always see
198 * the updated sd->s_sibling. 202 * the updated sd->s_sibling.
199 */ 203 */
200 v = atomic_add_return(SD_DEACTIVATED_BIAS, &sd->s_active); 204 v = atomic_add_return(SD_DEACTIVATED_BIAS, &sd->s_active);
201 205
202 if (v != SD_DEACTIVATED_BIAS) 206 if (v != SD_DEACTIVATED_BIAS) {
207 lock_contended(&sd->dep_map, _RET_IP_);
203 wait_for_completion(&wait); 208 wait_for_completion(&wait);
209 }
204 210
205 sd->s_sibling = NULL; 211 sd->s_sibling = NULL;
212
213 lock_acquired(&sd->dep_map, _RET_IP_);
214 rwsem_release(&sd->dep_map, 1, _RET_IP_);
206} 215}
207 216
208static int sysfs_alloc_ino(ino_t *pino) 217static int sysfs_alloc_ino(ino_t *pino)
@@ -345,6 +354,7 @@ struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type)
345 354
346 atomic_set(&sd->s_count, 1); 355 atomic_set(&sd->s_count, 1);
347 atomic_set(&sd->s_active, 0); 356 atomic_set(&sd->s_active, 0);
357 sysfs_dirent_init_lockdep(sd);
348 358
349 sd->s_name = name; 359 sd->s_name = name;
350 sd->s_mode = mode; 360 sd->s_mode = mode;
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h
index ca52e7b9d8f8..cdd9377a6e06 100644
--- a/fs/sysfs/sysfs.h
+++ b/fs/sysfs/sysfs.h
@@ -8,6 +8,7 @@
8 * This file is released under the GPLv2. 8 * This file is released under the GPLv2.
9 */ 9 */
10 10
11#include <linux/lockdep.h>
11#include <linux/fs.h> 12#include <linux/fs.h>
12 13
13struct sysfs_open_dirent; 14struct sysfs_open_dirent;
@@ -50,6 +51,9 @@ struct sysfs_inode_attrs {
50struct sysfs_dirent { 51struct sysfs_dirent {
51 atomic_t s_count; 52 atomic_t s_count;
52 atomic_t s_active; 53 atomic_t s_active;
54#ifdef CONFIG_DEBUG_LOCK_ALLOC
55 struct lockdep_map dep_map;
56#endif
53 struct sysfs_dirent *s_parent; 57 struct sysfs_dirent *s_parent;
54 struct sysfs_dirent *s_sibling; 58 struct sysfs_dirent *s_sibling;
55 const char *s_name; 59 const char *s_name;
@@ -84,6 +88,17 @@ static inline unsigned int sysfs_type(struct sysfs_dirent *sd)
84 return sd->s_flags & SYSFS_TYPE_MASK; 88 return sd->s_flags & SYSFS_TYPE_MASK;
85} 89}
86 90
91#ifdef CONFIG_DEBUG_LOCK_ALLOC
92#define sysfs_dirent_init_lockdep(sd) \
93do { \
94 static struct lock_class_key __key; \
95 \
96 lockdep_init_map(&sd->dep_map, "s_active", &__key, 0); \
97} while(0)
98#else
99#define sysfs_dirent_init_lockdep(sd) do {} while(0)
100#endif
101
87/* 102/*
88 * Context structure to be used while adding/removing nodes. 103 * Context structure to be used while adding/removing nodes.
89 */ 104 */
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 71dafb69cfeb..ffac157fb5b2 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1408,7 +1408,7 @@ extern int drm_ati_pcigart_cleanup(struct drm_device *dev,
1408 struct drm_ati_pcigart_info * gart_info); 1408 struct drm_ati_pcigart_info * gart_info);
1409 1409
1410extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size, 1410extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size,
1411 size_t align, dma_addr_t maxaddr); 1411 size_t align);
1412extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); 1412extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah);
1413extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); 1413extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah);
1414 1414
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index ec3f5e80a5df..b64a8d7cdf6d 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -188,6 +188,7 @@ typedef struct _drm_i915_sarea {
188#define DRM_I915_GEM_MADVISE 0x26 188#define DRM_I915_GEM_MADVISE 0x26
189#define DRM_I915_OVERLAY_PUT_IMAGE 0x27 189#define DRM_I915_OVERLAY_PUT_IMAGE 0x27
190#define DRM_I915_OVERLAY_ATTRS 0x28 190#define DRM_I915_OVERLAY_ATTRS 0x28
191#define DRM_I915_GEM_EXECBUFFER2 0x29
191 192
192#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) 193#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
193#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) 194#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -207,6 +208,7 @@ typedef struct _drm_i915_sarea {
207#define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t) 208#define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
208#define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init) 209#define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
209#define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer) 210#define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
211#define DRM_IOCTL_I915_GEM_EXECBUFFER2 DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2)
210#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin) 212#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
211#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin) 213#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
212#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy) 214#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
@@ -272,6 +274,7 @@ typedef struct drm_i915_irq_wait {
272#define I915_PARAM_NUM_FENCES_AVAIL 6 274#define I915_PARAM_NUM_FENCES_AVAIL 6
273#define I915_PARAM_HAS_OVERLAY 7 275#define I915_PARAM_HAS_OVERLAY 7
274#define I915_PARAM_HAS_PAGEFLIPPING 8 276#define I915_PARAM_HAS_PAGEFLIPPING 8
277#define I915_PARAM_HAS_EXECBUF2 9
275 278
276typedef struct drm_i915_getparam { 279typedef struct drm_i915_getparam {
277 int param; 280 int param;
@@ -567,6 +570,57 @@ struct drm_i915_gem_execbuffer {
567 __u64 cliprects_ptr; 570 __u64 cliprects_ptr;
568}; 571};
569 572
573struct drm_i915_gem_exec_object2 {
574 /**
575 * User's handle for a buffer to be bound into the GTT for this
576 * operation.
577 */
578 __u32 handle;
579
580 /** Number of relocations to be performed on this buffer */
581 __u32 relocation_count;
582 /**
583 * Pointer to array of struct drm_i915_gem_relocation_entry containing
584 * the relocations to be performed in this buffer.
585 */
586 __u64 relocs_ptr;
587
588 /** Required alignment in graphics aperture */
589 __u64 alignment;
590
591 /**
592 * Returned value of the updated offset of the object, for future
593 * presumed_offset writes.
594 */
595 __u64 offset;
596
597#define EXEC_OBJECT_NEEDS_FENCE (1<<0)
598 __u64 flags;
599 __u64 rsvd1;
600 __u64 rsvd2;
601};
602
603struct drm_i915_gem_execbuffer2 {
604 /**
605 * List of gem_exec_object2 structs
606 */
607 __u64 buffers_ptr;
608 __u32 buffer_count;
609
610 /** Offset in the batchbuffer to start execution from. */
611 __u32 batch_start_offset;
612 /** Bytes used in batchbuffer from batch_start_offset */
613 __u32 batch_len;
614 __u32 DR1;
615 __u32 DR4;
616 __u32 num_cliprects;
617 /** This is a struct drm_clip_rect *cliprects */
618 __u64 cliprects_ptr;
619 __u64 flags; /* currently unused */
620 __u64 rsvd1;
621 __u64 rsvd2;
622};
623
570struct drm_i915_gem_pin { 624struct drm_i915_gem_pin {
571 /** Handle of the buffer to be pinned. */ 625 /** Handle of the buffer to be pinned. */
572 __u32 handle; 626 __u32 handle;
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index ce945d4845fc..36924255c0d5 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -251,6 +251,7 @@ int acpi_check_mem_region(resource_size_t start, resource_size_t n,
251void __init acpi_no_s4_hw_signature(void); 251void __init acpi_no_s4_hw_signature(void);
252void __init acpi_old_suspend_ordering(void); 252void __init acpi_old_suspend_ordering(void);
253void __init acpi_s4_no_nvs(void); 253void __init acpi_s4_no_nvs(void);
254void __init acpi_set_sci_en_on_resume(void);
254#endif /* CONFIG_PM_SLEEP */ 255#endif /* CONFIG_PM_SLEEP */
255 256
256struct acpi_osc_context { 257struct acpi_osc_context {
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 784a919aa0d0..9b98173a8184 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -845,7 +845,6 @@ static inline struct request_queue *bdev_get_queue(struct block_device *bdev)
845 * blk_rq_err_bytes() : bytes left till the next error boundary 845 * blk_rq_err_bytes() : bytes left till the next error boundary
846 * blk_rq_sectors() : sectors left in the entire request 846 * blk_rq_sectors() : sectors left in the entire request
847 * blk_rq_cur_sectors() : sectors left in the current segment 847 * blk_rq_cur_sectors() : sectors left in the current segment
848 * blk_rq_err_sectors() : sectors left till the next error boundary
849 */ 848 */
850static inline sector_t blk_rq_pos(const struct request *rq) 849static inline sector_t blk_rq_pos(const struct request *rq)
851{ 850{
@@ -874,11 +873,6 @@ static inline unsigned int blk_rq_cur_sectors(const struct request *rq)
874 return blk_rq_cur_bytes(rq) >> 9; 873 return blk_rq_cur_bytes(rq) >> 9;
875} 874}
876 875
877static inline unsigned int blk_rq_err_sectors(const struct request *rq)
878{
879 return blk_rq_err_bytes(rq) >> 9;
880}
881
882/* 876/*
883 * Request issue related functions. 877 * Request issue related functions.
884 */ 878 */
@@ -1116,11 +1110,18 @@ static inline int queue_alignment_offset(struct request_queue *q)
1116 return q->limits.alignment_offset; 1110 return q->limits.alignment_offset;
1117} 1111}
1118 1112
1113static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t offset)
1114{
1115 unsigned int granularity = max(lim->physical_block_size, lim->io_min);
1116
1117 offset &= granularity - 1;
1118 return (granularity + lim->alignment_offset - offset) & (granularity - 1);
1119}
1120
1119static inline int queue_sector_alignment_offset(struct request_queue *q, 1121static inline int queue_sector_alignment_offset(struct request_queue *q,
1120 sector_t sector) 1122 sector_t sector)
1121{ 1123{
1122 return ((sector << 9) - q->limits.alignment_offset) 1124 return queue_limit_alignment_offset(&q->limits, sector << 9);
1123 & (q->limits.io_min - 1);
1124} 1125}
1125 1126
1126static inline int bdev_alignment_offset(struct block_device *bdev) 1127static inline int bdev_alignment_offset(struct block_device *bdev)
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h
index c6b3ca3af6df..1f716d9f714b 100644
--- a/include/linux/firewire-cdev.h
+++ b/include/linux/firewire-cdev.h
@@ -340,6 +340,9 @@ struct fw_cdev_send_response {
340 * The @closure field is passed back to userspace in the response event. 340 * The @closure field is passed back to userspace in the response event.
341 * The @handle field is an out parameter, returning a handle to the allocated 341 * The @handle field is an out parameter, returning a handle to the allocated
342 * range to be used for later deallocation of the range. 342 * range to be used for later deallocation of the range.
343 *
344 * The address range is allocated on all local nodes. The address allocation
345 * is exclusive except for the FCP command and response registers.
343 */ 346 */
344struct fw_cdev_allocate { 347struct fw_cdev_allocate {
345 __u64 offset; 348 __u64 offset;
diff --git a/include/linux/firewire.h b/include/linux/firewire.h
index 9416a461b696..a0e67150a729 100644
--- a/include/linux/firewire.h
+++ b/include/linux/firewire.h
@@ -248,8 +248,8 @@ typedef void (*fw_transaction_callback_t)(struct fw_card *card, int rcode,
248 void *data, size_t length, 248 void *data, size_t length,
249 void *callback_data); 249 void *callback_data);
250/* 250/*
251 * Important note: The callback must guarantee that either fw_send_response() 251 * Important note: Except for the FCP registers, the callback must guarantee
252 * or kfree() is called on the @request. 252 * that either fw_send_response() or kfree() is called on the @request.
253 */ 253 */
254typedef void (*fw_address_callback_t)(struct fw_card *card, 254typedef void (*fw_address_callback_t)(struct fw_card *card,
255 struct fw_request *request, 255 struct fw_request *request,
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index d9724a28c0c2..163c840437d6 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -832,7 +832,7 @@ struct ieee80211_ht_cap {
832#define IEEE80211_HT_CAP_DELAY_BA 0x0400 832#define IEEE80211_HT_CAP_DELAY_BA 0x0400
833#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 833#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
834#define IEEE80211_HT_CAP_DSSSCCK40 0x1000 834#define IEEE80211_HT_CAP_DSSSCCK40 0x1000
835#define IEEE80211_HT_CAP_PSMP_SUPPORT 0x2000 835#define IEEE80211_HT_CAP_RESERVED 0x2000
836#define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000 836#define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000
837#define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000 837#define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000
838 838
diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h
index 699e85c01a4d..b2304929434e 100644
--- a/include/linux/inetdevice.h
+++ b/include/linux/inetdevice.h
@@ -81,6 +81,7 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev)
81#define IN_DEV_FORWARD(in_dev) IN_DEV_CONF_GET((in_dev), FORWARDING) 81#define IN_DEV_FORWARD(in_dev) IN_DEV_CONF_GET((in_dev), FORWARDING)
82#define IN_DEV_MFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), MC_FORWARDING) 82#define IN_DEV_MFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), MC_FORWARDING)
83#define IN_DEV_RPFILTER(in_dev) IN_DEV_MAXCONF((in_dev), RP_FILTER) 83#define IN_DEV_RPFILTER(in_dev) IN_DEV_MAXCONF((in_dev), RP_FILTER)
84#define IN_DEV_SRC_VMARK(in_dev) IN_DEV_ORCONF((in_dev), SRC_VMARK)
84#define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \ 85#define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \
85 ACCEPT_SOURCE_ROUTE) 86 ACCEPT_SOURCE_ROUTE)
86#define IN_DEV_ACCEPT_LOCAL(in_dev) IN_DEV_ORCONF((in_dev), ACCEPT_LOCAL) 87#define IN_DEV_ACCEPT_LOCAL(in_dev) IN_DEV_ORCONF((in_dev), ACCEPT_LOCAL)
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index f1011f7f3d41..638ce4554c76 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -653,6 +653,7 @@ struct transaction_s
653 * waiting for it to finish. 653 * waiting for it to finish.
654 */ 654 */
655 unsigned int t_synchronous_commit:1; 655 unsigned int t_synchronous_commit:1;
656 unsigned int t_flushed_data_blocks:1;
656 657
657 /* 658 /*
658 * For use by the filesystem to store fs-specific data 659 * For use by the filesystem to store fs-specific data
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h
index 3d44e9c65a8e..7c6b32a1421c 100644
--- a/include/linux/kfifo.h
+++ b/include/linux/kfifo.h
@@ -81,7 +81,7 @@ union { \
81} 81}
82 82
83/** 83/**
84 * INIT_KFIFO - Initialize a kfifo declared by DECLARED_KFIFO 84 * INIT_KFIFO - Initialize a kfifo declared by DECLARE_KFIFO
85 * @name: name of the declared kfifo datatype 85 * @name: name of the declared kfifo datatype
86 */ 86 */
87#define INIT_KFIFO(name) \ 87#define INIT_KFIFO(name) \
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 84a524afb3dc..84d020bed083 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -123,6 +123,8 @@ struct vm_region {
123 struct file *vm_file; /* the backing file or NULL */ 123 struct file *vm_file; /* the backing file or NULL */
124 124
125 atomic_t vm_usage; /* region usage count */ 125 atomic_t vm_usage; /* region usage count */
126 bool vm_icache_flushed : 1; /* true if the icache has been flushed for
127 * this region */
126}; 128};
127 129
128/* 130/*
diff --git a/include/linux/pci.h b/include/linux/pci.h
index bf1e67080849..5da0690d9cee 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -566,6 +566,9 @@ void pcibios_align_resource(void *, struct resource *, resource_size_t,
566 resource_size_t); 566 resource_size_t);
567void pcibios_update_irq(struct pci_dev *, int irq); 567void pcibios_update_irq(struct pci_dev *, int irq);
568 568
569/* Weak but can be overriden by arch */
570void pci_fixup_cardbus(struct pci_bus *);
571
569/* Generic PCI functions used internally */ 572/* Generic PCI functions used internally */
570 573
571extern struct pci_bus *pci_find_bus(int domain, int busnr); 574extern struct pci_bus *pci_find_bus(int domain, int busnr);
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h
index c96c1858fe2c..1ba3cf6edfbb 100644
--- a/include/linux/reiserfs_fs.h
+++ b/include/linux/reiserfs_fs.h
@@ -62,6 +62,12 @@ void reiserfs_write_unlock(struct super_block *s);
62int reiserfs_write_lock_once(struct super_block *s); 62int reiserfs_write_lock_once(struct super_block *s);
63void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); 63void reiserfs_write_unlock_once(struct super_block *s, int lock_depth);
64 64
65#ifdef CONFIG_REISERFS_CHECK
66void reiserfs_lock_check_recursive(struct super_block *s);
67#else
68static inline void reiserfs_lock_check_recursive(struct super_block *s) { }
69#endif
70
65/* 71/*
66 * Several mutexes depend on the write lock. 72 * Several mutexes depend on the write lock.
67 * However sometimes we want to relax the write lock while we hold 73 * However sometimes we want to relax the write lock while we hold
@@ -92,11 +98,31 @@ void reiserfs_write_unlock_once(struct super_block *s, int lock_depth);
92static inline void reiserfs_mutex_lock_safe(struct mutex *m, 98static inline void reiserfs_mutex_lock_safe(struct mutex *m,
93 struct super_block *s) 99 struct super_block *s)
94{ 100{
101 reiserfs_lock_check_recursive(s);
95 reiserfs_write_unlock(s); 102 reiserfs_write_unlock(s);
96 mutex_lock(m); 103 mutex_lock(m);
97 reiserfs_write_lock(s); 104 reiserfs_write_lock(s);
98} 105}
99 106
107static inline void
108reiserfs_mutex_lock_nested_safe(struct mutex *m, unsigned int subclass,
109 struct super_block *s)
110{
111 reiserfs_lock_check_recursive(s);
112 reiserfs_write_unlock(s);
113 mutex_lock_nested(m, subclass);
114 reiserfs_write_lock(s);
115}
116
117static inline void
118reiserfs_down_read_safe(struct rw_semaphore *sem, struct super_block *s)
119{
120 reiserfs_lock_check_recursive(s);
121 reiserfs_write_unlock(s);
122 down_read(sem);
123 reiserfs_write_lock(s);
124}
125
100/* 126/*
101 * When we schedule, we usually want to also release the write lock, 127 * When we schedule, we usually want to also release the write lock,
102 * according to the previous bkl based locking scheme of reiserfs. 128 * according to the previous bkl based locking scheme of reiserfs.
diff --git a/include/linux/resource.h b/include/linux/resource.h
index 40fc7e626082..f1e914eefeab 100644
--- a/include/linux/resource.h
+++ b/include/linux/resource.h
@@ -3,8 +3,6 @@
3 3
4#include <linux/time.h> 4#include <linux/time.h>
5 5
6struct task_struct;
7
8/* 6/*
9 * Resource control/accounting header file for linux 7 * Resource control/accounting header file for linux
10 */ 8 */
@@ -70,6 +68,12 @@ struct rlimit {
70 */ 68 */
71#include <asm/resource.h> 69#include <asm/resource.h>
72 70
71#ifdef __KERNEL__
72
73struct task_struct;
74
73int getrusage(struct task_struct *p, int who, struct rusage __user *ru); 75int getrusage(struct task_struct *p, int who, struct rusage __user *ru);
74 76
77#endif /* __KERNEL__ */
78
75#endif 79#endif
diff --git a/include/linux/sched.h b/include/linux/sched.h
index f2f842db03ce..8d4991be9d53 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -2601,6 +2601,28 @@ static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
2601} 2601}
2602#endif /* CONFIG_MM_OWNER */ 2602#endif /* CONFIG_MM_OWNER */
2603 2603
2604static inline unsigned long task_rlimit(const struct task_struct *tsk,
2605 unsigned int limit)
2606{
2607 return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur);
2608}
2609
2610static inline unsigned long task_rlimit_max(const struct task_struct *tsk,
2611 unsigned int limit)
2612{
2613 return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max);
2614}
2615
2616static inline unsigned long rlimit(unsigned int limit)
2617{
2618 return task_rlimit(current, limit);
2619}
2620
2621static inline unsigned long rlimit_max(unsigned int limit)
2622{
2623 return task_rlimit_max(current, limit);
2624}
2625
2604#endif /* __KERNEL__ */ 2626#endif /* __KERNEL__ */
2605 2627
2606#endif 2628#endif
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 65793e90d6f6..207466a49f3d 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -195,7 +195,7 @@ struct perf_event_attr;
195 static const struct syscall_metadata __used \ 195 static const struct syscall_metadata __used \
196 __attribute__((__aligned__(4))) \ 196 __attribute__((__aligned__(4))) \
197 __attribute__((section("__syscalls_metadata"))) \ 197 __attribute__((section("__syscalls_metadata"))) \
198 __syscall_meta_##sname = { \ 198 __syscall_meta__##sname = { \
199 .name = "sys_"#sname, \ 199 .name = "sys_"#sname, \
200 .nb_args = 0, \ 200 .nb_args = 0, \
201 .enter_event = &event_enter__##sname, \ 201 .enter_event = &event_enter__##sname, \
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 877ba039e6a4..bd27fbc9db62 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -482,6 +482,7 @@ enum
482 NET_IPV4_CONF_ARP_ACCEPT=21, 482 NET_IPV4_CONF_ARP_ACCEPT=21,
483 NET_IPV4_CONF_ARP_NOTIFY=22, 483 NET_IPV4_CONF_ARP_NOTIFY=22,
484 NET_IPV4_CONF_ACCEPT_LOCAL=23, 484 NET_IPV4_CONF_ACCEPT_LOCAL=23,
485 NET_IPV4_CONF_SRC_VMARK=24,
485 __NET_IPV4_CONF_MAX 486 __NET_IPV4_CONF_MAX
486}; 487};
487 488
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index c18c008f4bbf..76e8903cd204 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -70,6 +70,7 @@ struct writeback_control {
70struct bdi_writeback; 70struct bdi_writeback;
71int inode_wait(void *); 71int inode_wait(void *);
72void writeback_inodes_sb(struct super_block *); 72void writeback_inodes_sb(struct super_block *);
73int writeback_inodes_sb_if_idle(struct super_block *);
73void sync_inodes_sb(struct super_block *); 74void sync_inodes_sb(struct super_block *);
74void writeback_inodes_wbc(struct writeback_control *wbc); 75void writeback_inodes_wbc(struct writeback_control *wbc);
75long wb_do_writeback(struct bdi_writeback *wb, int force_wait); 76long wb_do_writeback(struct bdi_writeback *wb, int force_wait);
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 2aff4906b2ae..0bf369752274 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -547,7 +547,6 @@ enum mac80211_rx_flags {
547 * unspecified depending on the hardware capabilities flags 547 * unspecified depending on the hardware capabilities flags
548 * @IEEE80211_HW_SIGNAL_* 548 * @IEEE80211_HW_SIGNAL_*
549 * @noise: noise when receiving this frame, in dBm. 549 * @noise: noise when receiving this frame, in dBm.
550 * @qual: overall signal quality indication, in percent (0-100).
551 * @antenna: antenna used 550 * @antenna: antenna used
552 * @rate_idx: index of data rate into band's supported rates or MCS index if 551 * @rate_idx: index of data rate into band's supported rates or MCS index if
553 * HT rates are use (RX_FLAG_HT) 552 * HT rates are use (RX_FLAG_HT)
@@ -559,7 +558,6 @@ struct ieee80211_rx_status {
559 int freq; 558 int freq;
560 int signal; 559 int signal;
561 int noise; 560 int noise;
562 int __deprecated qual;
563 int antenna; 561 int antenna;
564 int rate_idx; 562 int rate_idx;
565 int flag; 563 int flag;
@@ -1737,6 +1735,12 @@ static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
1737 local_bh_enable(); 1735 local_bh_enable();
1738} 1736}
1739 1737
1738/*
1739 * The TX headroom reserved by mac80211 for its own tx_status functions.
1740 * This is enough for the radiotap header.
1741 */
1742#define IEEE80211_TX_STATUS_HEADROOM 13
1743
1740/** 1744/**
1741 * ieee80211_tx_status - transmit status callback 1745 * ieee80211_tx_status - transmit status callback
1742 * 1746 *
diff --git a/include/scsi/libsrp.h b/include/scsi/libsrp.h
index 07e3adde21d9..f4105c91af53 100644
--- a/include/scsi/libsrp.h
+++ b/include/scsi/libsrp.h
@@ -2,6 +2,7 @@
2#define __LIBSRP_H__ 2#define __LIBSRP_H__
3 3
4#include <linux/list.h> 4#include <linux/list.h>
5#include <linux/kfifo.h>
5#include <scsi/scsi_cmnd.h> 6#include <scsi/scsi_cmnd.h>
6#include <scsi/scsi_host.h> 7#include <scsi/scsi_host.h>
7#include <scsi/srp.h> 8#include <scsi/srp.h>
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index 73523151a731..c6fe03e902ca 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -414,7 +414,8 @@ ftrace_raw_output_##call(struct trace_iterator *iter, int flags) \
414 BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ 414 BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \
415 ret = trace_define_field(event_call, #type "[" #len "]", #item, \ 415 ret = trace_define_field(event_call, #type "[" #len "]", #item, \
416 offsetof(typeof(field), item), \ 416 offsetof(typeof(field), item), \
417 sizeof(field.item), 0, FILTER_OTHER); \ 417 sizeof(field.item), \
418 is_signed_type(type), FILTER_OTHER); \
418 if (ret) \ 419 if (ret) \
419 return ret; 420 return ret;
420 421
@@ -422,8 +423,8 @@ ftrace_raw_output_##call(struct trace_iterator *iter, int flags) \
422#define __dynamic_array(type, item, len) \ 423#define __dynamic_array(type, item, len) \
423 ret = trace_define_field(event_call, "__data_loc " #type "[]", #item, \ 424 ret = trace_define_field(event_call, "__data_loc " #type "[]", #item, \
424 offsetof(typeof(field), __data_loc_##item), \ 425 offsetof(typeof(field), __data_loc_##item), \
425 sizeof(field.__data_loc_##item), 0, \ 426 sizeof(field.__data_loc_##item), \
426 FILTER_OTHER); 427 is_signed_type(type), FILTER_OTHER);
427 428
428#undef __string 429#undef __string
429#define __string(item, src) __dynamic_array(char, item, -1) 430#define __string(item, src) __dynamic_array(char, item, -1)
diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c
index dbcbf6a33a08..50dbd5999588 100644
--- a/kernel/hw_breakpoint.c
+++ b/kernel/hw_breakpoint.c
@@ -40,6 +40,7 @@
40#include <linux/percpu.h> 40#include <linux/percpu.h>
41#include <linux/sched.h> 41#include <linux/sched.h>
42#include <linux/init.h> 42#include <linux/init.h>
43#include <linux/cpu.h>
43#include <linux/smp.h> 44#include <linux/smp.h>
44 45
45#include <linux/hw_breakpoint.h> 46#include <linux/hw_breakpoint.h>
@@ -388,7 +389,8 @@ register_wide_hw_breakpoint(struct perf_event_attr *attr,
388 if (!cpu_events) 389 if (!cpu_events)
389 return ERR_PTR(-ENOMEM); 390 return ERR_PTR(-ENOMEM);
390 391
391 for_each_possible_cpu(cpu) { 392 get_online_cpus();
393 for_each_online_cpu(cpu) {
392 pevent = per_cpu_ptr(cpu_events, cpu); 394 pevent = per_cpu_ptr(cpu_events, cpu);
393 bp = perf_event_create_kernel_counter(attr, cpu, -1, triggered); 395 bp = perf_event_create_kernel_counter(attr, cpu, -1, triggered);
394 396
@@ -399,18 +401,20 @@ register_wide_hw_breakpoint(struct perf_event_attr *attr,
399 goto fail; 401 goto fail;
400 } 402 }
401 } 403 }
404 put_online_cpus();
402 405
403 return cpu_events; 406 return cpu_events;
404 407
405fail: 408fail:
406 for_each_possible_cpu(cpu) { 409 for_each_online_cpu(cpu) {
407 pevent = per_cpu_ptr(cpu_events, cpu); 410 pevent = per_cpu_ptr(cpu_events, cpu);
408 if (IS_ERR(*pevent)) 411 if (IS_ERR(*pevent))
409 break; 412 break;
410 unregister_hw_breakpoint(*pevent); 413 unregister_hw_breakpoint(*pevent);
411 } 414 }
415 put_online_cpus();
416
412 free_percpu(cpu_events); 417 free_percpu(cpu_events);
413 /* return the error if any */
414 return ERR_PTR(err); 418 return ERR_PTR(err);
415} 419}
416EXPORT_SYMBOL_GPL(register_wide_hw_breakpoint); 420EXPORT_SYMBOL_GPL(register_wide_hw_breakpoint);
diff --git a/kernel/kprobes.c b/kernel/kprobes.c
index e5342a344c43..b7df302a0204 100644
--- a/kernel/kprobes.c
+++ b/kernel/kprobes.c
@@ -1035,7 +1035,7 @@ int __kprobes register_kretprobe(struct kretprobe *rp)
1035 /* Pre-allocate memory for max kretprobe instances */ 1035 /* Pre-allocate memory for max kretprobe instances */
1036 if (rp->maxactive <= 0) { 1036 if (rp->maxactive <= 0) {
1037#ifdef CONFIG_PREEMPT 1037#ifdef CONFIG_PREEMPT
1038 rp->maxactive = max(10, 2 * num_possible_cpus()); 1038 rp->maxactive = max_t(unsigned int, 10, 2*num_possible_cpus());
1039#else 1039#else
1040 rp->maxactive = num_possible_cpus(); 1040 rp->maxactive = num_possible_cpus();
1041#endif 1041#endif
diff --git a/kernel/module.c b/kernel/module.c
index e96b8ed1cb6a..f82386bd9ee9 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1010,6 +1010,12 @@ static const struct kernel_symbol *resolve_symbol(Elf_Shdr *sechdrs,
1010 * J. Corbet <corbet@lwn.net> 1010 * J. Corbet <corbet@lwn.net>
1011 */ 1011 */
1012#if defined(CONFIG_KALLSYMS) && defined(CONFIG_SYSFS) 1012#if defined(CONFIG_KALLSYMS) && defined(CONFIG_SYSFS)
1013
1014static inline bool sect_empty(const Elf_Shdr *sect)
1015{
1016 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
1017}
1018
1013struct module_sect_attr 1019struct module_sect_attr
1014{ 1020{
1015 struct module_attribute mattr; 1021 struct module_attribute mattr;
@@ -1051,8 +1057,7 @@ static void add_sect_attrs(struct module *mod, unsigned int nsect,
1051 1057
1052 /* Count loaded sections and allocate structures */ 1058 /* Count loaded sections and allocate structures */
1053 for (i = 0; i < nsect; i++) 1059 for (i = 0; i < nsect; i++)
1054 if (sechdrs[i].sh_flags & SHF_ALLOC 1060 if (!sect_empty(&sechdrs[i]))
1055 && sechdrs[i].sh_size)
1056 nloaded++; 1061 nloaded++;
1057 size[0] = ALIGN(sizeof(*sect_attrs) 1062 size[0] = ALIGN(sizeof(*sect_attrs)
1058 + nloaded * sizeof(sect_attrs->attrs[0]), 1063 + nloaded * sizeof(sect_attrs->attrs[0]),
@@ -1070,9 +1075,7 @@ static void add_sect_attrs(struct module *mod, unsigned int nsect,
1070 sattr = &sect_attrs->attrs[0]; 1075 sattr = &sect_attrs->attrs[0];
1071 gattr = &sect_attrs->grp.attrs[0]; 1076 gattr = &sect_attrs->grp.attrs[0];
1072 for (i = 0; i < nsect; i++) { 1077 for (i = 0; i < nsect; i++) {
1073 if (! (sechdrs[i].sh_flags & SHF_ALLOC)) 1078 if (sect_empty(&sechdrs[i]))
1074 continue;
1075 if (!sechdrs[i].sh_size)
1076 continue; 1079 continue;
1077 sattr->address = sechdrs[i].sh_addr; 1080 sattr->address = sechdrs[i].sh_addr;
1078 sattr->name = kstrdup(secstrings + sechdrs[i].sh_name, 1081 sattr->name = kstrdup(secstrings + sechdrs[i].sh_name,
@@ -1156,7 +1159,7 @@ static void add_notes_attrs(struct module *mod, unsigned int nsect,
1156 /* Count notes sections and allocate structures. */ 1159 /* Count notes sections and allocate structures. */
1157 notes = 0; 1160 notes = 0;
1158 for (i = 0; i < nsect; i++) 1161 for (i = 0; i < nsect; i++)
1159 if ((sechdrs[i].sh_flags & SHF_ALLOC) && 1162 if (!sect_empty(&sechdrs[i]) &&
1160 (sechdrs[i].sh_type == SHT_NOTE)) 1163 (sechdrs[i].sh_type == SHT_NOTE))
1161 ++notes; 1164 ++notes;
1162 1165
@@ -1172,7 +1175,7 @@ static void add_notes_attrs(struct module *mod, unsigned int nsect,
1172 notes_attrs->notes = notes; 1175 notes_attrs->notes = notes;
1173 nattr = &notes_attrs->attrs[0]; 1176 nattr = &notes_attrs->attrs[0];
1174 for (loaded = i = 0; i < nsect; ++i) { 1177 for (loaded = i = 0; i < nsect; ++i) {
1175 if (!(sechdrs[i].sh_flags & SHF_ALLOC)) 1178 if (sect_empty(&sechdrs[i]))
1176 continue; 1179 continue;
1177 if (sechdrs[i].sh_type == SHT_NOTE) { 1180 if (sechdrs[i].sh_type == SHT_NOTE) {
1178 nattr->attr.name = mod->sect_attrs->attrs[loaded].name; 1181 nattr->attr.name = mod->sect_attrs->attrs[loaded].name;
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 1f38270f08c7..603c0d8b5df1 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -5148,7 +5148,7 @@ int perf_event_init_task(struct task_struct *child)
5148 GFP_KERNEL); 5148 GFP_KERNEL);
5149 if (!child_ctx) { 5149 if (!child_ctx) {
5150 ret = -ENOMEM; 5150 ret = -ENOMEM;
5151 goto exit; 5151 break;
5152 } 5152 }
5153 5153
5154 __perf_event_init_context(child_ctx, child); 5154 __perf_event_init_context(child_ctx, child);
@@ -5164,7 +5164,7 @@ int perf_event_init_task(struct task_struct *child)
5164 } 5164 }
5165 } 5165 }
5166 5166
5167 if (inherited_all) { 5167 if (child_ctx && inherited_all) {
5168 /* 5168 /*
5169 * Mark the child context as a clone of the parent 5169 * Mark the child context as a clone of the parent
5170 * context, or of whatever the parent is a clone of. 5170 * context, or of whatever the parent is a clone of.
@@ -5184,7 +5184,6 @@ int perf_event_init_task(struct task_struct *child)
5184 get_ctx(child_ctx->parent_ctx); 5184 get_ctx(child_ctx->parent_ctx);
5185 } 5185 }
5186 5186
5187exit:
5188 mutex_unlock(&parent_ctx->mutex); 5187 mutex_unlock(&parent_ctx->mutex);
5189 5188
5190 perf_unpin_context(parent_ctx); 5189 perf_unpin_context(parent_ctx);
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index d006554888dc..6c22d8a2f289 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -12,17 +12,17 @@ config NOP_TRACER
12config HAVE_FTRACE_NMI_ENTER 12config HAVE_FTRACE_NMI_ENTER
13 bool 13 bool
14 help 14 help
15 See Documentation/trace/ftrace-implementation.txt 15 See Documentation/trace/ftrace-design.txt
16 16
17config HAVE_FUNCTION_TRACER 17config HAVE_FUNCTION_TRACER
18 bool 18 bool
19 help 19 help
20 See Documentation/trace/ftrace-implementation.txt 20 See Documentation/trace/ftrace-design.txt
21 21
22config HAVE_FUNCTION_GRAPH_TRACER 22config HAVE_FUNCTION_GRAPH_TRACER
23 bool 23 bool
24 help 24 help
25 See Documentation/trace/ftrace-implementation.txt 25 See Documentation/trace/ftrace-design.txt
26 26
27config HAVE_FUNCTION_GRAPH_FP_TEST 27config HAVE_FUNCTION_GRAPH_FP_TEST
28 bool 28 bool
@@ -34,17 +34,17 @@ config HAVE_FUNCTION_GRAPH_FP_TEST
34config HAVE_FUNCTION_TRACE_MCOUNT_TEST 34config HAVE_FUNCTION_TRACE_MCOUNT_TEST
35 bool 35 bool
36 help 36 help
37 See Documentation/trace/ftrace-implementation.txt 37 See Documentation/trace/ftrace-design.txt
38 38
39config HAVE_DYNAMIC_FTRACE 39config HAVE_DYNAMIC_FTRACE
40 bool 40 bool
41 help 41 help
42 See Documentation/trace/ftrace-implementation.txt 42 See Documentation/trace/ftrace-design.txt
43 43
44config HAVE_FTRACE_MCOUNT_RECORD 44config HAVE_FTRACE_MCOUNT_RECORD
45 bool 45 bool
46 help 46 help
47 See Documentation/trace/ftrace-implementation.txt 47 See Documentation/trace/ftrace-design.txt
48 48
49config HAVE_HW_BRANCH_TRACER 49config HAVE_HW_BRANCH_TRACER
50 bool 50 bool
@@ -52,7 +52,7 @@ config HAVE_HW_BRANCH_TRACER
52config HAVE_SYSCALL_TRACEPOINTS 52config HAVE_SYSCALL_TRACEPOINTS
53 bool 53 bool
54 help 54 help
55 See Documentation/trace/ftrace-implementation.txt 55 See Documentation/trace/ftrace-design.txt
56 56
57config TRACER_MAX_TRACE 57config TRACER_MAX_TRACE
58 bool 58 bool
@@ -83,7 +83,7 @@ config RING_BUFFER_ALLOW_SWAP
83# This allows those options to appear when no other tracer is selected. But the 83# This allows those options to appear when no other tracer is selected. But the
84# options do not appear when something else selects it. We need the two options 84# options do not appear when something else selects it. We need the two options
85# GENERIC_TRACER and TRACING to avoid circular dependencies to accomplish the 85# GENERIC_TRACER and TRACING to avoid circular dependencies to accomplish the
86# hidding of the automatic options. 86# hiding of the automatic options.
87 87
88config TRACING 88config TRACING
89 bool 89 bool
@@ -119,7 +119,7 @@ menuconfig FTRACE
119 bool "Tracers" 119 bool "Tracers"
120 default y if DEBUG_KERNEL 120 default y if DEBUG_KERNEL
121 help 121 help
122 Enable the kernel tracing infrastructure. 122 Enable the kernel tracing infrastructure.
123 123
124if FTRACE 124if FTRACE
125 125
@@ -133,7 +133,7 @@ config FUNCTION_TRACER
133 help 133 help
134 Enable the kernel to trace every kernel function. This is done 134 Enable the kernel to trace every kernel function. This is done
135 by using a compiler feature to insert a small, 5-byte No-Operation 135 by using a compiler feature to insert a small, 5-byte No-Operation
136 instruction to the beginning of every kernel function, which NOP 136 instruction at the beginning of every kernel function, which NOP
137 sequence is then dynamically patched into a tracer call when 137 sequence is then dynamically patched into a tracer call when
138 tracing is enabled by the administrator. If it's runtime disabled 138 tracing is enabled by the administrator. If it's runtime disabled
139 (the bootup default), then the overhead of the instructions is very 139 (the bootup default), then the overhead of the instructions is very
@@ -150,7 +150,7 @@ config FUNCTION_GRAPH_TRACER
150 and its entry. 150 and its entry.
151 Its first purpose is to trace the duration of functions and 151 Its first purpose is to trace the duration of functions and
152 draw a call graph for each thread with some information like 152 draw a call graph for each thread with some information like
153 the return value. This is done by setting the current return 153 the return value. This is done by setting the current return
154 address on the current task structure into a stack of calls. 154 address on the current task structure into a stack of calls.
155 155
156 156
@@ -173,7 +173,7 @@ config IRQSOFF_TRACER
173 173
174 echo 0 > /sys/kernel/debug/tracing/tracing_max_latency 174 echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
175 175
176 (Note that kernel size and overhead increases with this option 176 (Note that kernel size and overhead increase with this option
177 enabled. This option and the preempt-off timing option can be 177 enabled. This option and the preempt-off timing option can be
178 used together or separately.) 178 used together or separately.)
179 179
@@ -186,7 +186,7 @@ config PREEMPT_TRACER
186 select TRACER_MAX_TRACE 186 select TRACER_MAX_TRACE
187 select RING_BUFFER_ALLOW_SWAP 187 select RING_BUFFER_ALLOW_SWAP
188 help 188 help
189 This option measures the time spent in preemption off critical 189 This option measures the time spent in preemption-off critical
190 sections, with microsecond accuracy. 190 sections, with microsecond accuracy.
191 191
192 The default measurement method is a maximum search, which is 192 The default measurement method is a maximum search, which is
@@ -195,7 +195,7 @@ config PREEMPT_TRACER
195 195
196 echo 0 > /sys/kernel/debug/tracing/tracing_max_latency 196 echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
197 197
198 (Note that kernel size and overhead increases with this option 198 (Note that kernel size and overhead increase with this option
199 enabled. This option and the irqs-off timing option can be 199 enabled. This option and the irqs-off timing option can be
200 used together or separately.) 200 used together or separately.)
201 201
@@ -222,7 +222,7 @@ config ENABLE_DEFAULT_TRACERS
222 depends on !GENERIC_TRACER 222 depends on !GENERIC_TRACER
223 select TRACING 223 select TRACING
224 help 224 help
225 This tracer hooks to various trace points in the kernel 225 This tracer hooks to various trace points in the kernel,
226 allowing the user to pick and choose which trace point they 226 allowing the user to pick and choose which trace point they
227 want to trace. It also includes the sched_switch tracer plugin. 227 want to trace. It also includes the sched_switch tracer plugin.
228 228
@@ -265,19 +265,19 @@ choice
265 The likely/unlikely profiler only looks at the conditions that 265 The likely/unlikely profiler only looks at the conditions that
266 are annotated with a likely or unlikely macro. 266 are annotated with a likely or unlikely macro.
267 267
268 The "all branch" profiler will profile every if statement in the 268 The "all branch" profiler will profile every if-statement in the
269 kernel. This profiler will also enable the likely/unlikely 269 kernel. This profiler will also enable the likely/unlikely
270 profiler as well. 270 profiler.
271 271
272 Either of the above profilers add a bit of overhead to the system. 272 Either of the above profilers adds a bit of overhead to the system.
273 If unsure choose "No branch profiling". 273 If unsure, choose "No branch profiling".
274 274
275config BRANCH_PROFILE_NONE 275config BRANCH_PROFILE_NONE
276 bool "No branch profiling" 276 bool "No branch profiling"
277 help 277 help
278 No branch profiling. Branch profiling adds a bit of overhead. 278 No branch profiling. Branch profiling adds a bit of overhead.
279 Only enable it if you want to analyse the branching behavior. 279 Only enable it if you want to analyse the branching behavior.
280 Otherwise keep it disabled. 280 Otherwise keep it disabled.
281 281
282config PROFILE_ANNOTATED_BRANCHES 282config PROFILE_ANNOTATED_BRANCHES
283 bool "Trace likely/unlikely profiler" 283 bool "Trace likely/unlikely profiler"
@@ -288,7 +288,7 @@ config PROFILE_ANNOTATED_BRANCHES
288 288
289 /sys/kernel/debug/tracing/profile_annotated_branch 289 /sys/kernel/debug/tracing/profile_annotated_branch
290 290
291 Note: this will add a significant overhead, only turn this 291 Note: this will add a significant overhead; only turn this
292 on if you need to profile the system's use of these macros. 292 on if you need to profile the system's use of these macros.
293 293
294config PROFILE_ALL_BRANCHES 294config PROFILE_ALL_BRANCHES
@@ -305,7 +305,7 @@ config PROFILE_ALL_BRANCHES
305 305
306 This configuration, when enabled, will impose a great overhead 306 This configuration, when enabled, will impose a great overhead
307 on the system. This should only be enabled when the system 307 on the system. This should only be enabled when the system
308 is to be analyzed 308 is to be analyzed in much detail.
309endchoice 309endchoice
310 310
311config TRACING_BRANCHES 311config TRACING_BRANCHES
@@ -335,7 +335,7 @@ config POWER_TRACER
335 depends on X86 335 depends on X86
336 select GENERIC_TRACER 336 select GENERIC_TRACER
337 help 337 help
338 This tracer helps developers to analyze and optimize the kernels 338 This tracer helps developers to analyze and optimize the kernel's
339 power management decisions, specifically the C-state and P-state 339 power management decisions, specifically the C-state and P-state
340 behavior. 340 behavior.
341 341
@@ -391,14 +391,14 @@ config HW_BRANCH_TRACER
391 select GENERIC_TRACER 391 select GENERIC_TRACER
392 help 392 help
393 This tracer records all branches on the system in a circular 393 This tracer records all branches on the system in a circular
394 buffer giving access to the last N branches for each cpu. 394 buffer, giving access to the last N branches for each cpu.
395 395
396config KMEMTRACE 396config KMEMTRACE
397 bool "Trace SLAB allocations" 397 bool "Trace SLAB allocations"
398 select GENERIC_TRACER 398 select GENERIC_TRACER
399 help 399 help
400 kmemtrace provides tracing for slab allocator functions, such as 400 kmemtrace provides tracing for slab allocator functions, such as
401 kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected 401 kmalloc, kfree, kmem_cache_alloc, kmem_cache_free, etc. Collected
402 data is then fed to the userspace application in order to analyse 402 data is then fed to the userspace application in order to analyse
403 allocation hotspots, internal fragmentation and so on, making it 403 allocation hotspots, internal fragmentation and so on, making it
404 possible to see how well an allocator performs, as well as debug 404 possible to see how well an allocator performs, as well as debug
@@ -417,15 +417,15 @@ config WORKQUEUE_TRACER
417 bool "Trace workqueues" 417 bool "Trace workqueues"
418 select GENERIC_TRACER 418 select GENERIC_TRACER
419 help 419 help
420 The workqueue tracer provides some statistical informations 420 The workqueue tracer provides some statistical information
421 about each cpu workqueue thread such as the number of the 421 about each cpu workqueue thread such as the number of the
422 works inserted and executed since their creation. It can help 422 works inserted and executed since their creation. It can help
423 to evaluate the amount of work each of them have to perform. 423 to evaluate the amount of work each of them has to perform.
424 For example it can help a developer to decide whether he should 424 For example it can help a developer to decide whether he should
425 choose a per cpu workqueue instead of a singlethreaded one. 425 choose a per-cpu workqueue instead of a singlethreaded one.
426 426
427config BLK_DEV_IO_TRACE 427config BLK_DEV_IO_TRACE
428 bool "Support for tracing block io actions" 428 bool "Support for tracing block IO actions"
429 depends on SYSFS 429 depends on SYSFS
430 depends on BLOCK 430 depends on BLOCK
431 select RELAY 431 select RELAY
@@ -456,15 +456,15 @@ config KPROBE_EVENT
456 select TRACING 456 select TRACING
457 default y 457 default y
458 help 458 help
459 This allows the user to add tracing events (similar to tracepoints) on the fly 459 This allows the user to add tracing events (similar to tracepoints)
460 via the ftrace interface. See Documentation/trace/kprobetrace.txt 460 on the fly via the ftrace interface. See
461 for more details. 461 Documentation/trace/kprobetrace.txt for more details.
462 462
463 Those events can be inserted wherever kprobes can probe, and record 463 Those events can be inserted wherever kprobes can probe, and record
464 various register and memory values. 464 various register and memory values.
465 465
466 This option is also required by perf-probe subcommand of perf tools. If 466 This option is also required by perf-probe subcommand of perf tools.
467 you want to use perf tools, this option is strongly recommended. 467 If you want to use perf tools, this option is strongly recommended.
468 468
469config DYNAMIC_FTRACE 469config DYNAMIC_FTRACE
470 bool "enable/disable ftrace tracepoints dynamically" 470 bool "enable/disable ftrace tracepoints dynamically"
@@ -472,32 +472,32 @@ config DYNAMIC_FTRACE
472 depends on HAVE_DYNAMIC_FTRACE 472 depends on HAVE_DYNAMIC_FTRACE
473 default y 473 default y
474 help 474 help
475 This option will modify all the calls to ftrace dynamically 475 This option will modify all the calls to ftrace dynamically
476 (will patch them out of the binary image and replaces them 476 (will patch them out of the binary image and replace them
477 with a No-Op instruction) as they are called. A table is 477 with a No-Op instruction) as they are called. A table is
478 created to dynamically enable them again. 478 created to dynamically enable them again.
479 479
480 This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise 480 This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but
481 has native performance as long as no tracing is active. 481 otherwise has native performance as long as no tracing is active.
482 482
483 The changes to the code are done by a kernel thread that 483 The changes to the code are done by a kernel thread that
484 wakes up once a second and checks to see if any ftrace calls 484 wakes up once a second and checks to see if any ftrace calls
485 were made. If so, it runs stop_machine (stops all CPUS) 485 were made. If so, it runs stop_machine (stops all CPUS)
486 and modifies the code to jump over the call to ftrace. 486 and modifies the code to jump over the call to ftrace.
487 487
488config FUNCTION_PROFILER 488config FUNCTION_PROFILER
489 bool "Kernel function profiler" 489 bool "Kernel function profiler"
490 depends on FUNCTION_TRACER 490 depends on FUNCTION_TRACER
491 default n 491 default n
492 help 492 help
493 This option enables the kernel function profiler. A file is created 493 This option enables the kernel function profiler. A file is created
494 in debugfs called function_profile_enabled which defaults to zero. 494 in debugfs called function_profile_enabled which defaults to zero.
495 When a 1 is echoed into this file profiling begins, and when a 495 When a 1 is echoed into this file profiling begins, and when a
496 zero is entered, profiling stops. A file in the trace_stats 496 zero is entered, profiling stops. A "functions" file is created in
497 directory called functions, that show the list of functions that 497 the trace_stats directory; this file shows the list of functions that
498 have been hit and their counters. 498 have been hit and their counters.
499 499
500 If in doubt, say N 500 If in doubt, say N.
501 501
502config FTRACE_MCOUNT_RECORD 502config FTRACE_MCOUNT_RECORD
503 def_bool y 503 def_bool y
@@ -556,8 +556,8 @@ config RING_BUFFER_BENCHMARK
556 tristate "Ring buffer benchmark stress tester" 556 tristate "Ring buffer benchmark stress tester"
557 depends on RING_BUFFER 557 depends on RING_BUFFER
558 help 558 help
559 This option creates a test to stress the ring buffer and bench mark it. 559 This option creates a test to stress the ring buffer and benchmark it.
560 It creates its own ring buffer such that it will not interfer with 560 It creates its own ring buffer such that it will not interfere with
561 any other users of the ring buffer (such as ftrace). It then creates 561 any other users of the ring buffer (such as ftrace). It then creates
562 a producer and consumer that will run for 10 seconds and sleep for 562 a producer and consumer that will run for 10 seconds and sleep for
563 10 seconds. Each interval it will print out the number of events 563 10 seconds. Each interval it will print out the number of events
@@ -566,7 +566,7 @@ config RING_BUFFER_BENCHMARK
566 It does not disable interrupts or raise its priority, so it may be 566 It does not disable interrupts or raise its priority, so it may be
567 affected by processes that are running. 567 affected by processes that are running.
568 568
569 If unsure, say N 569 If unsure, say N.
570 570
571endif # FTRACE 571endif # FTRACE
572 572
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 8b9f20ab8eed..0df1b0f2cb9e 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3949,7 +3949,7 @@ trace_options_write(struct file *filp, const char __user *ubuf, size_t cnt,
3949 if (!!(topt->flags->val & topt->opt->bit) != val) { 3949 if (!!(topt->flags->val & topt->opt->bit) != val) {
3950 mutex_lock(&trace_types_lock); 3950 mutex_lock(&trace_types_lock);
3951 ret = __set_tracer_option(current_trace, topt->flags, 3951 ret = __set_tracer_option(current_trace, topt->flags,
3952 topt->opt, val); 3952 topt->opt, !val);
3953 mutex_unlock(&trace_types_lock); 3953 mutex_unlock(&trace_types_lock);
3954 if (ret) 3954 if (ret)
3955 return ret; 3955 return ret;
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index 458e5bfe26d0..d4fa5dc1ee4e 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -158,7 +158,8 @@ ftrace_format_##name(struct ftrace_event_call *unused, \
158 BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ 158 BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \
159 ret = trace_define_field(event_call, #type "[" #len "]", #item, \ 159 ret = trace_define_field(event_call, #type "[" #len "]", #item, \
160 offsetof(typeof(field), item), \ 160 offsetof(typeof(field), item), \
161 sizeof(field.item), 0, FILTER_OTHER); \ 161 sizeof(field.item), \
162 is_signed_type(type), FILTER_OTHER); \
162 if (ret) \ 163 if (ret) \
163 return ret; 164 return ret;
164 165
@@ -168,8 +169,8 @@ ftrace_format_##name(struct ftrace_event_call *unused, \
168 ret = trace_define_field(event_call, #type "[" #len "]", #item, \ 169 ret = trace_define_field(event_call, #type "[" #len "]", #item, \
169 offsetof(typeof(field), \ 170 offsetof(typeof(field), \
170 container.item), \ 171 container.item), \
171 sizeof(field.container.item), 0, \ 172 sizeof(field.container.item), \
172 FILTER_OTHER); \ 173 is_signed_type(type), FILTER_OTHER); \
173 if (ret) \ 174 if (ret) \
174 return ret; 175 return ret;
175 176
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 375f81a568dc..6ea90c0e2c96 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -1201,10 +1201,11 @@ static int __probe_event_show_format(struct trace_seq *s,
1201#undef SHOW_FIELD 1201#undef SHOW_FIELD
1202#define SHOW_FIELD(type, item, name) \ 1202#define SHOW_FIELD(type, item, name) \
1203 do { \ 1203 do { \
1204 ret = trace_seq_printf(s, "\tfield: " #type " %s;\t" \ 1204 ret = trace_seq_printf(s, "\tfield:" #type " %s;\t" \
1205 "offset:%u;\tsize:%u;\n", name, \ 1205 "offset:%u;\tsize:%u;\tsigned:%d;\n", name,\
1206 (unsigned int)offsetof(typeof(field), item),\ 1206 (unsigned int)offsetof(typeof(field), item),\
1207 (unsigned int)sizeof(type)); \ 1207 (unsigned int)sizeof(type), \
1208 is_signed_type(type)); \
1208 if (!ret) \ 1209 if (!ret) \
1209 return 0; \ 1210 return 0; \
1210 } while (0) 1211 } while (0)
diff --git a/kernel/trace/trace_ksym.c b/kernel/trace/trace_ksym.c
index faf37fa4408c..94103cdcf9d8 100644
--- a/kernel/trace/trace_ksym.c
+++ b/kernel/trace/trace_ksym.c
@@ -26,12 +26,13 @@
26#include <linux/fs.h> 26#include <linux/fs.h>
27 27
28#include "trace_output.h" 28#include "trace_output.h"
29#include "trace_stat.h"
30#include "trace.h" 29#include "trace.h"
31 30
32#include <linux/hw_breakpoint.h> 31#include <linux/hw_breakpoint.h>
33#include <asm/hw_breakpoint.h> 32#include <asm/hw_breakpoint.h>
34 33
34#include <asm/atomic.h>
35
35/* 36/*
36 * For now, let us restrict the no. of symbols traced simultaneously to number 37 * For now, let us restrict the no. of symbols traced simultaneously to number
37 * of available hardware breakpoint registers. 38 * of available hardware breakpoint registers.
@@ -44,7 +45,7 @@ struct trace_ksym {
44 struct perf_event **ksym_hbp; 45 struct perf_event **ksym_hbp;
45 struct perf_event_attr attr; 46 struct perf_event_attr attr;
46#ifdef CONFIG_PROFILE_KSYM_TRACER 47#ifdef CONFIG_PROFILE_KSYM_TRACER
47 unsigned long counter; 48 atomic64_t counter;
48#endif 49#endif
49 struct hlist_node ksym_hlist; 50 struct hlist_node ksym_hlist;
50}; 51};
@@ -69,9 +70,8 @@ void ksym_collect_stats(unsigned long hbp_hit_addr)
69 70
70 rcu_read_lock(); 71 rcu_read_lock();
71 hlist_for_each_entry_rcu(entry, node, &ksym_filter_head, ksym_hlist) { 72 hlist_for_each_entry_rcu(entry, node, &ksym_filter_head, ksym_hlist) {
72 if ((entry->attr.bp_addr == hbp_hit_addr) && 73 if (entry->attr.bp_addr == hbp_hit_addr) {
73 (entry->counter <= MAX_UL_INT)) { 74 atomic64_inc(&entry->counter);
74 entry->counter++;
75 break; 75 break;
76 } 76 }
77 } 77 }
@@ -197,7 +197,6 @@ int process_new_ksym_entry(char *ksymname, int op, unsigned long addr)
197 entry->attr.bp_addr = addr; 197 entry->attr.bp_addr = addr;
198 entry->attr.bp_len = HW_BREAKPOINT_LEN_4; 198 entry->attr.bp_len = HW_BREAKPOINT_LEN_4;
199 199
200 ret = -EAGAIN;
201 entry->ksym_hbp = register_wide_hw_breakpoint(&entry->attr, 200 entry->ksym_hbp = register_wide_hw_breakpoint(&entry->attr,
202 ksym_hbp_handler); 201 ksym_hbp_handler);
203 202
@@ -300,8 +299,8 @@ static ssize_t ksym_trace_filter_write(struct file *file,
300 * 2: echo 0 > ksym_trace_filter 299 * 2: echo 0 > ksym_trace_filter
301 * 3: echo "*:---" > ksym_trace_filter 300 * 3: echo "*:---" > ksym_trace_filter
302 */ 301 */
303 if (!buf[0] || !strcmp(buf, "0") || 302 if (!input_string[0] || !strcmp(input_string, "0") ||
304 !strcmp(buf, "*:---")) { 303 !strcmp(input_string, "*:---")) {
305 __ksym_trace_reset(); 304 __ksym_trace_reset();
306 ret = 0; 305 ret = 0;
307 goto out; 306 goto out;
@@ -444,102 +443,77 @@ struct tracer ksym_tracer __read_mostly =
444 .print_line = ksym_trace_output 443 .print_line = ksym_trace_output
445}; 444};
446 445
447__init static int init_ksym_trace(void)
448{
449 struct dentry *d_tracer;
450 struct dentry *entry;
451
452 d_tracer = tracing_init_dentry();
453 ksym_filter_entry_count = 0;
454
455 entry = debugfs_create_file("ksym_trace_filter", 0644, d_tracer,
456 NULL, &ksym_tracing_fops);
457 if (!entry)
458 pr_warning("Could not create debugfs "
459 "'ksym_trace_filter' file\n");
460
461 return register_tracer(&ksym_tracer);
462}
463device_initcall(init_ksym_trace);
464
465
466#ifdef CONFIG_PROFILE_KSYM_TRACER 446#ifdef CONFIG_PROFILE_KSYM_TRACER
467static int ksym_tracer_stat_headers(struct seq_file *m) 447static int ksym_profile_show(struct seq_file *m, void *v)
468{ 448{
449 struct hlist_node *node;
450 struct trace_ksym *entry;
451 int access_type = 0;
452 char fn_name[KSYM_NAME_LEN];
453
469 seq_puts(m, " Access Type "); 454 seq_puts(m, " Access Type ");
470 seq_puts(m, " Symbol Counter\n"); 455 seq_puts(m, " Symbol Counter\n");
471 seq_puts(m, " ----------- "); 456 seq_puts(m, " ----------- ");
472 seq_puts(m, " ------ -------\n"); 457 seq_puts(m, " ------ -------\n");
473 return 0;
474}
475 458
476static int ksym_tracer_stat_show(struct seq_file *m, void *v) 459 rcu_read_lock();
477{ 460 hlist_for_each_entry_rcu(entry, node, &ksym_filter_head, ksym_hlist) {
478 struct hlist_node *stat = v;
479 struct trace_ksym *entry;
480 int access_type = 0;
481 char fn_name[KSYM_NAME_LEN];
482 461
483 entry = hlist_entry(stat, struct trace_ksym, ksym_hlist); 462 access_type = entry->attr.bp_type;
484 463
485 access_type = entry->attr.bp_type; 464 switch (access_type) {
465 case HW_BREAKPOINT_R:
466 seq_puts(m, " R ");
467 break;
468 case HW_BREAKPOINT_W:
469 seq_puts(m, " W ");
470 break;
471 case HW_BREAKPOINT_R | HW_BREAKPOINT_W:
472 seq_puts(m, " RW ");
473 break;
474 default:
475 seq_puts(m, " NA ");
476 }
486 477
487 switch (access_type) { 478 if (lookup_symbol_name(entry->attr.bp_addr, fn_name) >= 0)
488 case HW_BREAKPOINT_R: 479 seq_printf(m, " %-36s", fn_name);
489 seq_puts(m, " R "); 480 else
490 break; 481 seq_printf(m, " %-36s", "<NA>");
491 case HW_BREAKPOINT_W: 482 seq_printf(m, " %15llu\n",
492 seq_puts(m, " W "); 483 (unsigned long long)atomic64_read(&entry->counter));
493 break;
494 case HW_BREAKPOINT_R | HW_BREAKPOINT_W:
495 seq_puts(m, " RW ");
496 break;
497 default:
498 seq_puts(m, " NA ");
499 } 484 }
500 485 rcu_read_unlock();
501 if (lookup_symbol_name(entry->attr.bp_addr, fn_name) >= 0)
502 seq_printf(m, " %-36s", fn_name);
503 else
504 seq_printf(m, " %-36s", "<NA>");
505 seq_printf(m, " %15lu\n", entry->counter);
506 486
507 return 0; 487 return 0;
508} 488}
509 489
510static void *ksym_tracer_stat_start(struct tracer_stat *trace) 490static int ksym_profile_open(struct inode *node, struct file *file)
511{ 491{
512 return ksym_filter_head.first; 492 return single_open(file, ksym_profile_show, NULL);
513}
514
515static void *
516ksym_tracer_stat_next(void *v, int idx)
517{
518 struct hlist_node *stat = v;
519
520 return stat->next;
521} 493}
522 494
523static struct tracer_stat ksym_tracer_stats = { 495static const struct file_operations ksym_profile_fops = {
524 .name = "ksym_tracer", 496 .open = ksym_profile_open,
525 .stat_start = ksym_tracer_stat_start, 497 .read = seq_read,
526 .stat_next = ksym_tracer_stat_next, 498 .llseek = seq_lseek,
527 .stat_headers = ksym_tracer_stat_headers, 499 .release = single_release,
528 .stat_show = ksym_tracer_stat_show
529}; 500};
501#endif /* CONFIG_PROFILE_KSYM_TRACER */
530 502
531__init static int ksym_tracer_stat_init(void) 503__init static int init_ksym_trace(void)
532{ 504{
533 int ret; 505 struct dentry *d_tracer;
534 506
535 ret = register_stat_tracer(&ksym_tracer_stats); 507 d_tracer = tracing_init_dentry();
536 if (ret) {
537 printk(KERN_WARNING "Warning: could not register "
538 "ksym tracer stats\n");
539 return 1;
540 }
541 508
542 return 0; 509 trace_create_file("ksym_trace_filter", 0644, d_tracer,
510 NULL, &ksym_tracing_fops);
511
512#ifdef CONFIG_PROFILE_KSYM_TRACER
513 trace_create_file("ksym_profile", 0444, d_tracer,
514 NULL, &ksym_profile_fops);
515#endif
516
517 return register_tracer(&ksym_tracer);
543} 518}
544fs_initcall(ksym_tracer_stat_init); 519device_initcall(init_ksym_trace);
545#endif /* CONFIG_PROFILE_KSYM_TRACER */
diff --git a/lib/dma-debug.c b/lib/dma-debug.c
index d9b08e0f7f55..cf906201aecf 100644
--- a/lib/dma-debug.c
+++ b/lib/dma-debug.c
@@ -670,12 +670,13 @@ static int device_dma_allocations(struct device *dev)
670 return count; 670 return count;
671} 671}
672 672
673static int dma_debug_device_change(struct notifier_block *nb, 673static int dma_debug_device_change(struct notifier_block *nb, unsigned long action, void *data)
674 unsigned long action, void *data)
675{ 674{
676 struct device *dev = data; 675 struct device *dev = data;
677 int count; 676 int count;
678 677
678 if (global_disable)
679 return 0;
679 680
680 switch (action) { 681 switch (action) {
681 case BUS_NOTIFY_UNBOUND_DRIVER: 682 case BUS_NOTIFY_UNBOUND_DRIVER:
@@ -697,6 +698,9 @@ void dma_debug_add_bus(struct bus_type *bus)
697{ 698{
698 struct notifier_block *nb; 699 struct notifier_block *nb;
699 700
701 if (global_disable)
702 return;
703
700 nb = kzalloc(sizeof(struct notifier_block), GFP_KERNEL); 704 nb = kzalloc(sizeof(struct notifier_block), GFP_KERNEL);
701 if (nb == NULL) { 705 if (nb == NULL) {
702 pr_err("dma_debug_add_bus: out of memory\n"); 706 pr_err("dma_debug_add_bus: out of memory\n");
diff --git a/mm/mmap.c b/mm/mmap.c
index d9c77b2dbe9d..ee2298936fe6 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1043,6 +1043,46 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
1043} 1043}
1044EXPORT_SYMBOL(do_mmap_pgoff); 1044EXPORT_SYMBOL(do_mmap_pgoff);
1045 1045
1046SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len,
1047 unsigned long, prot, unsigned long, flags,
1048 unsigned long, fd, unsigned long, pgoff)
1049{
1050 struct file *file = NULL;
1051 unsigned long retval = -EBADF;
1052
1053 if (!(flags & MAP_ANONYMOUS)) {
1054 if (unlikely(flags & MAP_HUGETLB))
1055 return -EINVAL;
1056 file = fget(fd);
1057 if (!file)
1058 goto out;
1059 } else if (flags & MAP_HUGETLB) {
1060 struct user_struct *user = NULL;
1061 /*
1062 * VM_NORESERVE is used because the reservations will be
1063 * taken when vm_ops->mmap() is called
1064 * A dummy user value is used because we are not locking
1065 * memory so no accounting is necessary
1066 */
1067 len = ALIGN(len, huge_page_size(&default_hstate));
1068 file = hugetlb_file_setup(HUGETLB_ANON_FILE, len, VM_NORESERVE,
1069 &user, HUGETLB_ANONHUGE_INODE);
1070 if (IS_ERR(file))
1071 return PTR_ERR(file);
1072 }
1073
1074 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
1075
1076 down_write(&current->mm->mmap_sem);
1077 retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
1078 up_write(&current->mm->mmap_sem);
1079
1080 if (file)
1081 fput(file);
1082out:
1083 return retval;
1084}
1085
1046/* 1086/*
1047 * Some shared mappigns will want the pages marked read-only 1087 * Some shared mappigns will want the pages marked read-only
1048 * to track write events. If so, we'll downgrade vm_page_prot 1088 * to track write events. If so, we'll downgrade vm_page_prot
diff --git a/mm/nommu.c b/mm/nommu.c
index 8687973462bb..17773862619b 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -432,6 +432,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
432 /* 432 /*
433 * Ok, looks good - let it rip. 433 * Ok, looks good - let it rip.
434 */ 434 */
435 flush_icache_range(mm->brk, brk);
435 return mm->brk = brk; 436 return mm->brk = brk;
436} 437}
437 438
@@ -1353,10 +1354,14 @@ unsigned long do_mmap_pgoff(struct file *file,
1353share: 1354share:
1354 add_vma_to_mm(current->mm, vma); 1355 add_vma_to_mm(current->mm, vma);
1355 1356
1356 up_write(&nommu_region_sem); 1357 /* we flush the region from the icache only when the first executable
1358 * mapping of it is made */
1359 if (vma->vm_flags & VM_EXEC && !region->vm_icache_flushed) {
1360 flush_icache_range(region->vm_start, region->vm_end);
1361 region->vm_icache_flushed = true;
1362 }
1357 1363
1358 if (prot & PROT_EXEC) 1364 up_write(&nommu_region_sem);
1359 flush_icache_range(result, result + len);
1360 1365
1361 kleave(" = %lx", result); 1366 kleave(" = %lx", result);
1362 return result; 1367 return result;
@@ -1398,6 +1403,31 @@ error_getting_region:
1398} 1403}
1399EXPORT_SYMBOL(do_mmap_pgoff); 1404EXPORT_SYMBOL(do_mmap_pgoff);
1400 1405
1406SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len,
1407 unsigned long, prot, unsigned long, flags,
1408 unsigned long, fd, unsigned long, pgoff)
1409{
1410 struct file *file = NULL;
1411 unsigned long retval = -EBADF;
1412
1413 if (!(flags & MAP_ANONYMOUS)) {
1414 file = fget(fd);
1415 if (!file)
1416 goto out;
1417 }
1418
1419 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
1420
1421 down_write(&current->mm->mmap_sem);
1422 retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
1423 up_write(&current->mm->mmap_sem);
1424
1425 if (file)
1426 fput(file);
1427out:
1428 return retval;
1429}
1430
1401/* 1431/*
1402 * split a vma into two pieces at address 'addr', a new vma is allocated either 1432 * split a vma into two pieces at address 'addr', a new vma is allocated either
1403 * for the first part or the tail. 1433 * for the first part or the tail.
@@ -1891,9 +1921,11 @@ int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, in
1891 1921
1892 /* only read or write mappings where it is permitted */ 1922 /* only read or write mappings where it is permitted */
1893 if (write && vma->vm_flags & VM_MAYWRITE) 1923 if (write && vma->vm_flags & VM_MAYWRITE)
1894 len -= copy_to_user((void *) addr, buf, len); 1924 copy_to_user_page(vma, NULL, addr,
1925 (void *) addr, buf, len);
1895 else if (!write && vma->vm_flags & VM_MAYREAD) 1926 else if (!write && vma->vm_flags & VM_MAYREAD)
1896 len -= copy_from_user(buf, (void *) addr, len); 1927 copy_from_user_page(vma, NULL, addr,
1928 buf, (void *) addr, len);
1897 else 1929 else
1898 len = 0; 1930 len = 0;
1899 } else { 1931 } else {
diff --git a/mm/slab.c b/mm/slab.c
index 7d41f15b48d3..7451bdacaf18 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -654,7 +654,7 @@ static void init_node_lock_keys(int q)
654 654
655 l3 = s->cs_cachep->nodelists[q]; 655 l3 = s->cs_cachep->nodelists[q];
656 if (!l3 || OFF_SLAB(s->cs_cachep)) 656 if (!l3 || OFF_SLAB(s->cs_cachep))
657 return; 657 continue;
658 lockdep_set_class(&l3->list_lock, &on_slab_l3_key); 658 lockdep_set_class(&l3->list_lock, &on_slab_l3_key);
659 alc = l3->alien; 659 alc = l3->alien;
660 /* 660 /*
@@ -665,7 +665,7 @@ static void init_node_lock_keys(int q)
665 * for alloc_alien_cache, 665 * for alloc_alien_cache,
666 */ 666 */
667 if (!alc || (unsigned long)alc == BAD_ALIEN_MAGIC) 667 if (!alc || (unsigned long)alc == BAD_ALIEN_MAGIC)
668 return; 668 continue;
669 for_each_node(r) { 669 for_each_node(r) {
670 if (alc[r]) 670 if (alc[r])
671 lockdep_set_class(&alc[r]->lock, 671 lockdep_set_class(&alc[r]->lock,
diff --git a/mm/util.c b/mm/util.c
index b377ce430803..7c35ad95f927 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -4,10 +4,6 @@
4#include <linux/module.h> 4#include <linux/module.h>
5#include <linux/err.h> 5#include <linux/err.h>
6#include <linux/sched.h> 6#include <linux/sched.h>
7#include <linux/hugetlb.h>
8#include <linux/syscalls.h>
9#include <linux/mman.h>
10#include <linux/file.h>
11#include <asm/uaccess.h> 7#include <asm/uaccess.h>
12 8
13#define CREATE_TRACE_POINTS 9#define CREATE_TRACE_POINTS
@@ -272,46 +268,6 @@ int __attribute__((weak)) get_user_pages_fast(unsigned long start,
272} 268}
273EXPORT_SYMBOL_GPL(get_user_pages_fast); 269EXPORT_SYMBOL_GPL(get_user_pages_fast);
274 270
275SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len,
276 unsigned long, prot, unsigned long, flags,
277 unsigned long, fd, unsigned long, pgoff)
278{
279 struct file * file = NULL;
280 unsigned long retval = -EBADF;
281
282 if (!(flags & MAP_ANONYMOUS)) {
283 if (unlikely(flags & MAP_HUGETLB))
284 return -EINVAL;
285 file = fget(fd);
286 if (!file)
287 goto out;
288 } else if (flags & MAP_HUGETLB) {
289 struct user_struct *user = NULL;
290 /*
291 * VM_NORESERVE is used because the reservations will be
292 * taken when vm_ops->mmap() is called
293 * A dummy user value is used because we are not locking
294 * memory so no accounting is necessary
295 */
296 len = ALIGN(len, huge_page_size(&default_hstate));
297 file = hugetlb_file_setup(HUGETLB_ANON_FILE, len, VM_NORESERVE,
298 &user, HUGETLB_ANONHUGE_INODE);
299 if (IS_ERR(file))
300 return PTR_ERR(file);
301 }
302
303 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
304
305 down_write(&current->mm->mmap_sem);
306 retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
307 up_write(&current->mm->mmap_sem);
308
309 if (file)
310 fput(file);
311out:
312 return retval;
313}
314
315/* Tracepoints definitions. */ 271/* Tracepoints definitions. */
316EXPORT_TRACEPOINT_SYMBOL(kmalloc); 272EXPORT_TRACEPOINT_SYMBOL(kmalloc);
317EXPORT_TRACEPOINT_SYMBOL(kmem_cache_alloc); 273EXPORT_TRACEPOINT_SYMBOL(kmem_cache_alloc);
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index a23b45f08ec9..de0c2c726420 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -250,8 +250,7 @@ struct pktgen_dev {
250 __u64 count; /* Default No packets to send */ 250 __u64 count; /* Default No packets to send */
251 __u64 sofar; /* How many pkts we've sent so far */ 251 __u64 sofar; /* How many pkts we've sent so far */
252 __u64 tx_bytes; /* How many bytes we've transmitted */ 252 __u64 tx_bytes; /* How many bytes we've transmitted */
253 __u64 errors; /* Errors when trying to transmit, 253 __u64 errors; /* Errors when trying to transmit, */
254 pkts will be re-sent */
255 254
256 /* runtime counters relating to clone_skb */ 255 /* runtime counters relating to clone_skb */
257 256
@@ -3465,6 +3464,12 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev)
3465 pkt_dev->seq_num++; 3464 pkt_dev->seq_num++;
3466 pkt_dev->tx_bytes += pkt_dev->last_pkt_size; 3465 pkt_dev->tx_bytes += pkt_dev->last_pkt_size;
3467 break; 3466 break;
3467 case NET_XMIT_DROP:
3468 case NET_XMIT_CN:
3469 case NET_XMIT_POLICED:
3470 /* skb has been consumed */
3471 pkt_dev->errors++;
3472 break;
3468 default: /* Drivers are not supposed to return other values! */ 3473 default: /* Drivers are not supposed to return other values! */
3469 if (net_ratelimit()) 3474 if (net_ratelimit())
3470 pr_info("pktgen: %s xmit error: %d\n", 3475 pr_info("pktgen: %s xmit error: %d\n",
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 5cdbc102a418..040c4f05b653 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1397,6 +1397,7 @@ static struct devinet_sysctl_table {
1397 DEVINET_SYSCTL_RW_ENTRY(ACCEPT_SOURCE_ROUTE, 1397 DEVINET_SYSCTL_RW_ENTRY(ACCEPT_SOURCE_ROUTE,
1398 "accept_source_route"), 1398 "accept_source_route"),
1399 DEVINET_SYSCTL_RW_ENTRY(ACCEPT_LOCAL, "accept_local"), 1399 DEVINET_SYSCTL_RW_ENTRY(ACCEPT_LOCAL, "accept_local"),
1400 DEVINET_SYSCTL_RW_ENTRY(SRC_VMARK, "src_valid_mark"),
1400 DEVINET_SYSCTL_RW_ENTRY(PROXY_ARP, "proxy_arp"), 1401 DEVINET_SYSCTL_RW_ENTRY(PROXY_ARP, "proxy_arp"),
1401 DEVINET_SYSCTL_RW_ENTRY(MEDIUM_ID, "medium_id"), 1402 DEVINET_SYSCTL_RW_ENTRY(MEDIUM_ID, "medium_id"),
1402 DEVINET_SYSCTL_RW_ENTRY(BOOTP_RELAY, "bootp_relay"), 1403 DEVINET_SYSCTL_RW_ENTRY(BOOTP_RELAY, "bootp_relay"),
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index 3323168ee52d..82dbf711d6d0 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -252,6 +252,8 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif,
252 no_addr = in_dev->ifa_list == NULL; 252 no_addr = in_dev->ifa_list == NULL;
253 rpf = IN_DEV_RPFILTER(in_dev); 253 rpf = IN_DEV_RPFILTER(in_dev);
254 accept_local = IN_DEV_ACCEPT_LOCAL(in_dev); 254 accept_local = IN_DEV_ACCEPT_LOCAL(in_dev);
255 if (mark && !IN_DEV_SRC_VMARK(in_dev))
256 fl.mark = 0;
255 } 257 }
256 rcu_read_unlock(); 258 rcu_read_unlock();
257 259
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index 3787455fb696..d7dcee680728 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -34,9 +34,28 @@ void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband,
34 34
35 ht_cap->ht_supported = true; 35 ht_cap->ht_supported = true;
36 36
37 ht_cap->cap = le16_to_cpu(ht_cap_ie->cap_info) & sband->ht_cap.cap; 37 /*
38 ht_cap->cap &= ~IEEE80211_HT_CAP_SM_PS; 38 * The bits listed in this expression should be
39 ht_cap->cap |= sband->ht_cap.cap & IEEE80211_HT_CAP_SM_PS; 39 * the same for the peer and us, if the station
40 * advertises more then we can't use those thus
41 * we mask them out.
42 */
43 ht_cap->cap = le16_to_cpu(ht_cap_ie->cap_info) &
44 (sband->ht_cap.cap |
45 ~(IEEE80211_HT_CAP_LDPC_CODING |
46 IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
47 IEEE80211_HT_CAP_GRN_FLD |
48 IEEE80211_HT_CAP_SGI_20 |
49 IEEE80211_HT_CAP_SGI_40 |
50 IEEE80211_HT_CAP_DSSSCCK40));
51 /*
52 * The STBC bits are asymmetric -- if we don't have
53 * TX then mask out the peer's RX and vice versa.
54 */
55 if (!(sband->ht_cap.cap & IEEE80211_HT_CAP_TX_STBC))
56 ht_cap->cap &= ~IEEE80211_HT_CAP_RX_STBC;
57 if (!(sband->ht_cap.cap & IEEE80211_HT_CAP_RX_STBC))
58 ht_cap->cap &= ~IEEE80211_HT_CAP_TX_STBC;
40 59
41 ampdu_info = ht_cap_ie->ampdu_params_info; 60 ampdu_info = ht_cap_ie->ampdu_params_info;
42 ht_cap->ampdu_factor = 61 ht_cap->ampdu_factor =
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 10d13856f86c..1f2db647bb5c 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -382,6 +382,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
382struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, 382struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,
383 u8 *bssid,u8 *addr, u32 supp_rates) 383 u8 *bssid,u8 *addr, u32 supp_rates)
384{ 384{
385 struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
385 struct ieee80211_local *local = sdata->local; 386 struct ieee80211_local *local = sdata->local;
386 struct sta_info *sta; 387 struct sta_info *sta;
387 int band = local->hw.conf.channel->band; 388 int band = local->hw.conf.channel->band;
@@ -397,6 +398,9 @@ struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata,
397 return NULL; 398 return NULL;
398 } 399 }
399 400
401 if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH)
402 return NULL;
403
400 if (compare_ether_addr(bssid, sdata->u.ibss.bssid)) 404 if (compare_ether_addr(bssid, sdata->u.ibss.bssid))
401 return NULL; 405 return NULL;
402 406
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 8116d1a96a4a..0d2d94881f1f 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -515,6 +515,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
515 * and we need some headroom for passing the frame to monitor 515 * and we need some headroom for passing the frame to monitor
516 * interfaces, but never both at the same time. 516 * interfaces, but never both at the same time.
517 */ 517 */
518 BUILD_BUG_ON(IEEE80211_TX_STATUS_HEADROOM !=
519 sizeof(struct ieee80211_tx_status_rtap_hdr));
518 local->tx_headroom = max_t(unsigned int , local->hw.extra_tx_headroom, 520 local->tx_headroom = max_t(unsigned int , local->hw.extra_tx_headroom,
519 sizeof(struct ieee80211_tx_status_rtap_hdr)); 521 sizeof(struct ieee80211_tx_status_rtap_hdr));
520 522
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index d8d50fb5e823..c79e59f82fd9 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -915,6 +915,14 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata,
915 sdata->u.mgd.flags &= ~(IEEE80211_STA_CONNECTION_POLL | 915 sdata->u.mgd.flags &= ~(IEEE80211_STA_CONNECTION_POLL |
916 IEEE80211_STA_BEACON_POLL); 916 IEEE80211_STA_BEACON_POLL);
917 917
918 /*
919 * Always handle WMM once after association regardless
920 * of the first value the AP uses. Setting -1 here has
921 * that effect because the AP values is an unsigned
922 * 4-bit value.
923 */
924 sdata->u.mgd.wmm_last_param_set = -1;
925
918 ieee80211_led_assoc(local, 1); 926 ieee80211_led_assoc(local, 1);
919 927
920 sdata->vif.bss_conf.assoc = 1; 928 sdata->vif.bss_conf.assoc = 1;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 8834cc93c716..27ceaefd7bc8 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1419,6 +1419,10 @@ static bool need_dynamic_ps(struct ieee80211_local *local)
1419 if (!local->ps_sdata) 1419 if (!local->ps_sdata)
1420 return false; 1420 return false;
1421 1421
1422 /* No point if we're going to suspend */
1423 if (local->quiescing)
1424 return false;
1425
1422 return true; 1426 return true;
1423} 1427}
1424 1428
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 78a6e924c7e1..dc76267e436e 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1039,7 +1039,19 @@ int ieee80211_reconfig(struct ieee80211_local *local)
1039 1039
1040 /* restart hardware */ 1040 /* restart hardware */
1041 if (local->open_count) { 1041 if (local->open_count) {
1042 /*
1043 * Upon resume hardware can sometimes be goofy due to
1044 * various platform / driver / bus issues, so restarting
1045 * the device may at times not work immediately. Propagate
1046 * the error.
1047 */
1042 res = drv_start(local); 1048 res = drv_start(local);
1049 if (res) {
1050 WARN(local->suspended, "Harware became unavailable "
1051 "upon resume. This is could be a software issue"
1052 "prior to suspend or a harware issue\n");
1053 return res;
1054 }
1043 1055
1044 ieee80211_led_radio(local, true); 1056 ieee80211_led_radio(local, true);
1045 } 1057 }
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 1c924ee0a1ef..7d1f9e928f69 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -699,7 +699,8 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
699 spin_unlock_bh(&pool->sp_lock); 699 spin_unlock_bh(&pool->sp_lock);
700 700
701 len = 0; 701 len = 0;
702 if (test_bit(XPT_LISTENER, &xprt->xpt_flags)) { 702 if (test_bit(XPT_LISTENER, &xprt->xpt_flags) &&
703 !test_bit(XPT_CLOSE, &xprt->xpt_flags)) {
703 struct svc_xprt *newxpt; 704 struct svc_xprt *newxpt;
704 newxpt = xprt->xpt_ops->xpo_accept(xprt); 705 newxpt = xprt->xpt_ops->xpo_accept(xprt);
705 if (newxpt) { 706 if (newxpt) {
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index 1001db4912f7..82e6002c8d67 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -93,7 +93,18 @@ void cfg80211_send_rx_assoc(struct net_device *dev, const u8 *buf, size_t len)
93 } 93 }
94 } 94 }
95 95
96 WARN_ON(!bss); 96 /*
97 * We might be coming here because the driver reported
98 * a successful association at the same time as the
99 * user requested a deauth. In that case, we will have
100 * removed the BSS from the auth_bsses list due to the
101 * deauth request when the assoc response makes it. If
102 * the two code paths acquire the lock the other way
103 * around, that's just the standard situation of a
104 * deauth being requested while connected.
105 */
106 if (!bss)
107 goto out;
97 } else if (wdev->conn) { 108 } else if (wdev->conn) {
98 cfg80211_sme_failed_assoc(wdev); 109 cfg80211_sme_failed_assoc(wdev);
99 /* 110 /*
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 12dfa62aad18..0c2cbbebca95 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -601,7 +601,7 @@ int cfg80211_wext_siwscan(struct net_device *dev,
601 struct cfg80211_registered_device *rdev; 601 struct cfg80211_registered_device *rdev;
602 struct wiphy *wiphy; 602 struct wiphy *wiphy;
603 struct iw_scan_req *wreq = NULL; 603 struct iw_scan_req *wreq = NULL;
604 struct cfg80211_scan_request *creq; 604 struct cfg80211_scan_request *creq = NULL;
605 int i, err, n_channels = 0; 605 int i, err, n_channels = 0;
606 enum ieee80211_band band; 606 enum ieee80211_band band;
607 607
@@ -694,8 +694,10 @@ int cfg80211_wext_siwscan(struct net_device *dev,
694 /* translate "Scan for SSID" request */ 694 /* translate "Scan for SSID" request */
695 if (wreq) { 695 if (wreq) {
696 if (wrqu->data.flags & IW_SCAN_THIS_ESSID) { 696 if (wrqu->data.flags & IW_SCAN_THIS_ESSID) {
697 if (wreq->essid_len > IEEE80211_MAX_SSID_LEN) 697 if (wreq->essid_len > IEEE80211_MAX_SSID_LEN) {
698 return -EINVAL; 698 err = -EINVAL;
699 goto out;
700 }
699 memcpy(creq->ssids[0].ssid, wreq->essid, wreq->essid_len); 701 memcpy(creq->ssids[0].ssid, wreq->essid, wreq->essid_len);
700 creq->ssids[0].ssid_len = wreq->essid_len; 702 creq->ssids[0].ssid_len = wreq->essid_len;
701 } 703 }
@@ -707,12 +709,15 @@ int cfg80211_wext_siwscan(struct net_device *dev,
707 err = rdev->ops->scan(wiphy, dev, creq); 709 err = rdev->ops->scan(wiphy, dev, creq);
708 if (err) { 710 if (err) {
709 rdev->scan_req = NULL; 711 rdev->scan_req = NULL;
710 kfree(creq); 712 /* creq will be freed below */
711 } else { 713 } else {
712 nl80211_send_scan_start(rdev, dev); 714 nl80211_send_scan_start(rdev, dev);
715 /* creq now owned by driver */
716 creq = NULL;
713 dev_hold(dev); 717 dev_hold(dev);
714 } 718 }
715 out: 719 out:
720 kfree(creq);
716 cfg80211_unlock_rdev(rdev); 721 cfg80211_unlock_rdev(rdev);
717 return err; 722 return err;
718} 723}
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index cb81ca35b0d6..4725a549ad4d 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1445,7 +1445,7 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy,
1445 if (!dev) 1445 if (!dev)
1446 goto free_dst; 1446 goto free_dst;
1447 1447
1448 /* Copy neighbout for reachability confirmation */ 1448 /* Copy neighbour for reachability confirmation */
1449 dst0->neighbour = neigh_clone(dst->neighbour); 1449 dst0->neighbour = neigh_clone(dst->neighbour);
1450 1450
1451 xfrm_init_path((struct xfrm_dst *)dst0, dst, nfheader_len); 1451 xfrm_init_path((struct xfrm_dst *)dst0, dst, nfheader_len);
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 7a374c2eb043..9a2ee845e9d4 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -2365,7 +2365,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm)
2365 initrlim = init_task.signal->rlim + i; 2365 initrlim = init_task.signal->rlim + i;
2366 rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur); 2366 rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur);
2367 } 2367 }
2368 update_rlimit_cpu(rlim->rlim_cur); 2368 update_rlimit_cpu(current->signal->rlim[RLIMIT_CPU].rlim_cur);
2369 } 2369 }
2370} 2370}
2371 2371
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index c5699863643b..656e474dca47 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -441,6 +441,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream,
441 struct snd_pcm_hw_params *params) 441 struct snd_pcm_hw_params *params)
442{ 442{
443 int err; 443 int err;
444 struct aaci *aaci = substream->private_data;
444 445
445 aaci_pcm_hw_free(substream); 446 aaci_pcm_hw_free(substream);
446 if (aacirun->pcm_open) { 447 if (aacirun->pcm_open) {
@@ -560,7 +561,6 @@ static int aaci_pcm_open(struct snd_pcm_substream *substream)
560static int aaci_pcm_playback_hw_params(struct snd_pcm_substream *substream, 561static int aaci_pcm_playback_hw_params(struct snd_pcm_substream *substream,
561 struct snd_pcm_hw_params *params) 562 struct snd_pcm_hw_params *params)
562{ 563{
563 struct aaci *aaci = substream->private_data;
564 struct aaci_runtime *aacirun = substream->runtime->private_data; 564 struct aaci_runtime *aacirun = substream->runtime->private_data;
565 unsigned int channels = params_channels(params); 565 unsigned int channels = params_channels(params);
566 int ret; 566 int ret;
@@ -659,7 +659,6 @@ static struct snd_pcm_ops aaci_playback_ops = {
659static int aaci_pcm_capture_hw_params(struct snd_pcm_substream *substream, 659static int aaci_pcm_capture_hw_params(struct snd_pcm_substream *substream,
660 struct snd_pcm_hw_params *params) 660 struct snd_pcm_hw_params *params)
661{ 661{
662 struct aaci *aaci = substream->private_data;
663 struct aaci_runtime *aacirun = substream->runtime->private_data; 662 struct aaci_runtime *aacirun = substream->runtime->private_data;
664 int ret; 663 int ret;
665 664
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 9cbaf90d3d88..053c6d612a2a 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -1956,13 +1956,13 @@ int snd_pcm_hw_constraints_complete(struct snd_pcm_substream *substream)
1956 1956
1957 err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE, 1957 err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE,
1958 hw->rate_min, hw->rate_max); 1958 hw->rate_min, hw->rate_max);
1959 if (err < 0) 1959 if (err < 0)
1960 return err; 1960 return err;
1961 1961
1962 err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 1962 err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
1963 hw->period_bytes_min, hw->period_bytes_max); 1963 hw->period_bytes_min, hw->period_bytes_max);
1964 if (err < 0) 1964 if (err < 0)
1965 return err; 1965 return err;
1966 1966
1967 err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIODS, 1967 err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIODS,
1968 hw->periods_min, hw->periods_max); 1968 hw->periods_min, hw->periods_max);
diff --git a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c
index 751762f1c59a..0c40951b6523 100644
--- a/sound/isa/sb/emu8000.c
+++ b/sound/isa/sb/emu8000.c
@@ -377,12 +377,13 @@ init_arrays(struct snd_emu8000 *emu)
377static void __devinit 377static void __devinit
378size_dram(struct snd_emu8000 *emu) 378size_dram(struct snd_emu8000 *emu)
379{ 379{
380 int i, size; 380 int i, size, detected_size;
381 381
382 if (emu->dram_checked) 382 if (emu->dram_checked)
383 return; 383 return;
384 384
385 size = 0; 385 size = 0;
386 detected_size = 0;
386 387
387 /* write out a magic number */ 388 /* write out a magic number */
388 snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE); 389 snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE);
@@ -393,6 +394,8 @@ size_dram(struct snd_emu8000 *emu)
393 394
394 while (size < EMU8000_MAX_DRAM) { 395 while (size < EMU8000_MAX_DRAM) {
395 396
397 size += 512 * 1024; /* increment 512kbytes */
398
396 /* Write a unique data on the test address. 399 /* Write a unique data on the test address.
397 * if the address is out of range, the data is written on 400 * if the address is out of range, the data is written on
398 * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is 401 * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is
@@ -414,7 +417,7 @@ size_dram(struct snd_emu8000 *emu)
414 if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2) 417 if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2)
415 break; /* no memory at this address */ 418 break; /* no memory at this address */
416 419
417 size += 512 * 1024; /* increment 512kbytes */ 420 detected_size = size;
418 421
419 snd_emu8000_read_wait(emu); 422 snd_emu8000_read_wait(emu);
420 423
@@ -442,9 +445,9 @@ size_dram(struct snd_emu8000 *emu)
442 snd_emu8000_dma_chan(emu, 1, EMU8000_RAM_CLOSE); 445 snd_emu8000_dma_chan(emu, 1, EMU8000_RAM_CLOSE);
443 446
444 snd_printdd("EMU8000 [0x%lx]: %d Kb on-board memory detected\n", 447 snd_printdd("EMU8000 [0x%lx]: %d Kb on-board memory detected\n",
445 emu->port1, size/1024); 448 emu->port1, detected_size/1024);
446 449
447 emu->mem_size = size; 450 emu->mem_size = detected_size;
448 emu->dram_checked = 1; 451 emu->dram_checked = 1;
449} 452}
450 453
diff --git a/sound/oss/dev_table.c b/sound/oss/dev_table.c
index 08274c995d06..727bdb9ba2dc 100644
--- a/sound/oss/dev_table.c
+++ b/sound/oss/dev_table.c
@@ -67,14 +67,15 @@ int sound_install_audiodrv(int vers, char *name, struct audio_driver *driver,
67 return -(EBUSY); 67 return -(EBUSY);
68 } 68 }
69 d = (struct audio_driver *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_driver))); 69 d = (struct audio_driver *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_driver)));
70 70 sound_nblocks++;
71 if (sound_nblocks < 1024) 71 if (sound_nblocks >= MAX_MEM_BLOCKS)
72 sound_nblocks++; 72 sound_nblocks = MAX_MEM_BLOCKS - 1;
73 73
74 op = (struct audio_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_operations))); 74 op = (struct audio_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_operations)));
75 sound_nblocks++;
76 if (sound_nblocks >= MAX_MEM_BLOCKS)
77 sound_nblocks = MAX_MEM_BLOCKS - 1;
75 78
76 if (sound_nblocks < 1024)
77 sound_nblocks++;
78 if (d == NULL || op == NULL) { 79 if (d == NULL || op == NULL) {
79 printk(KERN_ERR "Sound: Can't allocate driver for (%s)\n", name); 80 printk(KERN_ERR "Sound: Can't allocate driver for (%s)\n", name);
80 sound_unload_audiodev(num); 81 sound_unload_audiodev(num);
@@ -128,9 +129,10 @@ int sound_install_mixer(int vers, char *name, struct mixer_operations *driver,
128 until you unload sound! */ 129 until you unload sound! */
129 130
130 op = (struct mixer_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct mixer_operations))); 131 op = (struct mixer_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct mixer_operations)));
132 sound_nblocks++;
133 if (sound_nblocks >= MAX_MEM_BLOCKS)
134 sound_nblocks = MAX_MEM_BLOCKS - 1;
131 135
132 if (sound_nblocks < 1024)
133 sound_nblocks++;
134 if (op == NULL) { 136 if (op == NULL) {
135 printk(KERN_ERR "Sound: Can't allocate mixer driver for (%s)\n", name); 137 printk(KERN_ERR "Sound: Can't allocate mixer driver for (%s)\n", name);
136 return -ENOMEM; 138 return -ENOMEM;
diff --git a/sound/oss/sound_config.h b/sound/oss/sound_config.h
index 55271fbe7f49..9d35c4c65b9b 100644
--- a/sound/oss/sound_config.h
+++ b/sound/oss/sound_config.h
@@ -142,4 +142,6 @@ static inline int translate_mode(struct file *file)
142#define TIMER_ARMED 121234 142#define TIMER_ARMED 121234
143#define TIMER_NOT_ARMED 1 143#define TIMER_NOT_ARMED 1
144 144
145#define MAX_MEM_BLOCKS 1024
146
145#endif 147#endif
diff --git a/sound/oss/soundcard.c b/sound/oss/soundcard.c
index 61aaedae6b7e..c62530943888 100644
--- a/sound/oss/soundcard.c
+++ b/sound/oss/soundcard.c
@@ -56,7 +56,7 @@
56/* 56/*
57 * Table for permanently allocated memory (used when unloading the module) 57 * Table for permanently allocated memory (used when unloading the module)
58 */ 58 */
59void * sound_mem_blocks[1024]; 59void * sound_mem_blocks[MAX_MEM_BLOCKS];
60int sound_nblocks = 0; 60int sound_nblocks = 0;
61 61
62/* Persistent DMA buffers */ 62/* Persistent DMA buffers */
@@ -574,7 +574,7 @@ static int __init oss_init(void)
574 NULL, "%s%d", dev_list[i].name, j); 574 NULL, "%s%d", dev_list[i].name, j);
575 } 575 }
576 576
577 if (sound_nblocks >= 1024) 577 if (sound_nblocks >= MAX_MEM_BLOCKS - 1)
578 printk(KERN_ERR "Sound warning: Deallocation table was too small.\n"); 578 printk(KERN_ERR "Sound warning: Deallocation table was too small.\n");
579 579
580 return 0; 580 return 0;
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index c11920623009..a7630e9edf8a 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -83,6 +83,7 @@ static const struct ac97_codec_id snd_ac97_codec_id_vendors[] = {
83{ 0x4e534300, 0xffffff00, "National Semiconductor", NULL, NULL }, 83{ 0x4e534300, 0xffffff00, "National Semiconductor", NULL, NULL },
84{ 0x50534300, 0xffffff00, "Philips", NULL, NULL }, 84{ 0x50534300, 0xffffff00, "Philips", NULL, NULL },
85{ 0x53494c00, 0xffffff00, "Silicon Laboratory", NULL, NULL }, 85{ 0x53494c00, 0xffffff00, "Silicon Laboratory", NULL, NULL },
86{ 0x53544d00, 0xffffff00, "STMicroelectronics", NULL, NULL },
86{ 0x54524100, 0xffffff00, "TriTech", NULL, NULL }, 87{ 0x54524100, 0xffffff00, "TriTech", NULL, NULL },
87{ 0x54584e00, 0xffffff00, "Texas Instruments", NULL, NULL }, 88{ 0x54584e00, 0xffffff00, "Texas Instruments", NULL, NULL },
88{ 0x56494100, 0xffffff00, "VIA Technologies", NULL, NULL }, 89{ 0x56494100, 0xffffff00, "VIA Technologies", NULL, NULL },
@@ -161,6 +162,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = {
161{ 0x4e534350, 0xffffffff, "LM4550", patch_lm4550, NULL }, // volume wrap fix 162{ 0x4e534350, 0xffffffff, "LM4550", patch_lm4550, NULL }, // volume wrap fix
162{ 0x50534304, 0xffffffff, "UCB1400", patch_ucb1400, NULL }, 163{ 0x50534304, 0xffffffff, "UCB1400", patch_ucb1400, NULL },
163{ 0x53494c20, 0xffffffe0, "Si3036,8", mpatch_si3036, mpatch_si3036, AC97_MODEM_PATCH }, 164{ 0x53494c20, 0xffffffe0, "Si3036,8", mpatch_si3036, mpatch_si3036, AC97_MODEM_PATCH },
165{ 0x53544d02, 0xffffffff, "ST7597", NULL, NULL },
164{ 0x54524102, 0xffffffff, "TR28022", NULL, NULL }, 166{ 0x54524102, 0xffffffff, "TR28022", NULL, NULL },
165{ 0x54524103, 0xffffffff, "TR28023", NULL, NULL }, 167{ 0x54524103, 0xffffffff, "TR28023", NULL, NULL },
166{ 0x54524106, 0xffffffff, "TR28026", NULL, NULL }, 168{ 0x54524106, 0xffffffff, "TR28026", NULL, NULL },
@@ -213,6 +215,14 @@ static int snd_ac97_valid_reg(struct snd_ac97 *ac97, unsigned short reg)
213{ 215{
214 /* filter some registers for buggy codecs */ 216 /* filter some registers for buggy codecs */
215 switch (ac97->id) { 217 switch (ac97->id) {
218 case AC97_ID_ST_AC97_ID4:
219 if (reg == 0x08)
220 return 0;
221 /* fall through */
222 case AC97_ID_ST7597:
223 if (reg == 0x22 || reg == 0x7a)
224 return 1;
225 /* fall through */
216 case AC97_ID_AK4540: 226 case AC97_ID_AK4540:
217 case AC97_ID_AK4542: 227 case AC97_ID_AK4542:
218 if (reg <= 0x1c || reg == 0x20 || reg == 0x26 || reg >= 0x7c) 228 if (reg <= 0x1c || reg == 0x20 || reg == 0x26 || reg >= 0x7c)
diff --git a/sound/pci/ac97/ac97_id.h b/sound/pci/ac97/ac97_id.h
index c129492c82b3..d603147c4a96 100644
--- a/sound/pci/ac97/ac97_id.h
+++ b/sound/pci/ac97/ac97_id.h
@@ -62,3 +62,5 @@
62#define AC97_ID_CM9761_78 0x434d4978 62#define AC97_ID_CM9761_78 0x434d4978
63#define AC97_ID_CM9761_82 0x434d4982 63#define AC97_ID_CM9761_82 0x434d4982
64#define AC97_ID_CM9761_83 0x434d4983 64#define AC97_ID_CM9761_83 0x434d4983
65#define AC97_ID_ST7597 0x53544d02
66#define AC97_ID_ST_AC97_ID4 0x53544d04
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index e288a5595f34..1caf5e3c1f6a 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -1855,6 +1855,7 @@ static unsigned int ad1981_jacks_blacklist[] = {
1855 0x10140554, /* Thinkpad T42p/R50p */ 1855 0x10140554, /* Thinkpad T42p/R50p */
1856 0x10140567, /* Thinkpad T43p 2668-G7U */ 1856 0x10140567, /* Thinkpad T43p 2668-G7U */
1857 0x10140581, /* Thinkpad X41-2527 */ 1857 0x10140581, /* Thinkpad X41-2527 */
1858 0x10280160, /* Dell Dimension 2400 */
1858 0x104380b0, /* Asus A7V8X-MX */ 1859 0x104380b0, /* Asus A7V8X-MX */
1859 0x11790241, /* Toshiba Satellite A-15 S127 */ 1860 0x11790241, /* Toshiba Satellite A-15 S127 */
1860 0x144dc01a, /* Samsung NP-X20C004/SEG */ 1861 0x144dc01a, /* Samsung NP-X20C004/SEG */
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index cb65bd0dd35b..459c1f62783b 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -166,18 +166,7 @@ static void ct_unmap_audio_buffer(struct ct_atc *atc, struct ct_atc_pcm *apcm)
166 166
167static unsigned long atc_get_ptp_phys(struct ct_atc *atc, int index) 167static unsigned long atc_get_ptp_phys(struct ct_atc *atc, int index)
168{ 168{
169 struct ct_vm *vm; 169 return atc->vm->get_ptp_phys(atc->vm, index);
170 void *kvirt_addr;
171 unsigned long phys_addr;
172
173 vm = atc->vm;
174 kvirt_addr = vm->get_ptp_virt(vm, index);
175 if (kvirt_addr == NULL)
176 phys_addr = (~0UL);
177 else
178 phys_addr = virt_to_phys(kvirt_addr);
179
180 return phys_addr;
181} 170}
182 171
183static unsigned int convert_format(snd_pcm_format_t snd_format) 172static unsigned int convert_format(snd_pcm_format_t snd_format)
@@ -1669,7 +1658,7 @@ int __devinit ct_atc_create(struct snd_card *card, struct pci_dev *pci,
1669 } 1658 }
1670 1659
1671 /* Set up device virtual memory management object */ 1660 /* Set up device virtual memory management object */
1672 err = ct_vm_create(&atc->vm); 1661 err = ct_vm_create(&atc->vm, pci);
1673 if (err < 0) 1662 if (err < 0)
1674 goto error1; 1663 goto error1;
1675 1664
diff --git a/sound/pci/ctxfi/ctvmem.c b/sound/pci/ctxfi/ctvmem.c
index 6b78752e9503..65da6e466f80 100644
--- a/sound/pci/ctxfi/ctvmem.c
+++ b/sound/pci/ctxfi/ctvmem.c
@@ -138,7 +138,7 @@ ct_vm_map(struct ct_vm *vm, struct snd_pcm_substream *substream, int size)
138 return NULL; 138 return NULL;
139 } 139 }
140 140
141 ptp = vm->ptp[0]; 141 ptp = (unsigned long *)vm->ptp[0].area;
142 pte_start = (block->addr >> CT_PAGE_SHIFT); 142 pte_start = (block->addr >> CT_PAGE_SHIFT);
143 pages = block->size >> CT_PAGE_SHIFT; 143 pages = block->size >> CT_PAGE_SHIFT;
144 for (i = 0; i < pages; i++) { 144 for (i = 0; i < pages; i++) {
@@ -158,25 +158,25 @@ static void ct_vm_unmap(struct ct_vm *vm, struct ct_vm_block *block)
158} 158}
159 159
160/* * 160/* *
161 * return the host (kmalloced) addr of the @index-th device 161 * return the host physical addr of the @index-th device
162 * page talbe page on success, or NULL on failure. 162 * page table page on success, or ~0UL on failure.
163 * The first returned NULL indicates the termination. 163 * The first returned ~0UL indicates the termination.
164 * */ 164 * */
165static void * 165static dma_addr_t
166ct_get_ptp_virt(struct ct_vm *vm, int index) 166ct_get_ptp_phys(struct ct_vm *vm, int index)
167{ 167{
168 void *addr; 168 dma_addr_t addr;
169 169
170 addr = (index >= CT_PTP_NUM) ? NULL : vm->ptp[index]; 170 addr = (index >= CT_PTP_NUM) ? ~0UL : vm->ptp[index].addr;
171 171
172 return addr; 172 return addr;
173} 173}
174 174
175int ct_vm_create(struct ct_vm **rvm) 175int ct_vm_create(struct ct_vm **rvm, struct pci_dev *pci)
176{ 176{
177 struct ct_vm *vm; 177 struct ct_vm *vm;
178 struct ct_vm_block *block; 178 struct ct_vm_block *block;
179 int i; 179 int i, err = 0;
180 180
181 *rvm = NULL; 181 *rvm = NULL;
182 182
@@ -188,23 +188,21 @@ int ct_vm_create(struct ct_vm **rvm)
188 188
189 /* Allocate page table pages */ 189 /* Allocate page table pages */
190 for (i = 0; i < CT_PTP_NUM; i++) { 190 for (i = 0; i < CT_PTP_NUM; i++) {
191 vm->ptp[i] = kmalloc(PAGE_SIZE, GFP_KERNEL); 191 err = snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV,
192 if (!vm->ptp[i]) 192 snd_dma_pci_data(pci),
193 PAGE_SIZE, &vm->ptp[i]);
194 if (err < 0)
193 break; 195 break;
194 } 196 }
195 if (!i) { 197 if (err < 0) {
196 /* no page table pages are allocated */ 198 /* no page table pages are allocated */
197 kfree(vm); 199 ct_vm_destroy(vm);
198 return -ENOMEM; 200 return -ENOMEM;
199 } 201 }
200 vm->size = CT_ADDRS_PER_PAGE * i; 202 vm->size = CT_ADDRS_PER_PAGE * i;
201 /* Initialise remaining ptps */
202 for (; i < CT_PTP_NUM; i++)
203 vm->ptp[i] = NULL;
204
205 vm->map = ct_vm_map; 203 vm->map = ct_vm_map;
206 vm->unmap = ct_vm_unmap; 204 vm->unmap = ct_vm_unmap;
207 vm->get_ptp_virt = ct_get_ptp_virt; 205 vm->get_ptp_phys = ct_get_ptp_phys;
208 INIT_LIST_HEAD(&vm->unused); 206 INIT_LIST_HEAD(&vm->unused);
209 INIT_LIST_HEAD(&vm->used); 207 INIT_LIST_HEAD(&vm->used);
210 block = kzalloc(sizeof(*block), GFP_KERNEL); 208 block = kzalloc(sizeof(*block), GFP_KERNEL);
@@ -242,7 +240,7 @@ void ct_vm_destroy(struct ct_vm *vm)
242 240
243 /* free allocated page table pages */ 241 /* free allocated page table pages */
244 for (i = 0; i < CT_PTP_NUM; i++) 242 for (i = 0; i < CT_PTP_NUM; i++)
245 kfree(vm->ptp[i]); 243 snd_dma_free_pages(&vm->ptp[i]);
246 244
247 vm->size = 0; 245 vm->size = 0;
248 246
diff --git a/sound/pci/ctxfi/ctvmem.h b/sound/pci/ctxfi/ctvmem.h
index 01e4fd0386a3..b23adfca4de6 100644
--- a/sound/pci/ctxfi/ctvmem.h
+++ b/sound/pci/ctxfi/ctvmem.h
@@ -22,6 +22,8 @@
22 22
23#include <linux/mutex.h> 23#include <linux/mutex.h>
24#include <linux/list.h> 24#include <linux/list.h>
25#include <linux/pci.h>
26#include <sound/memalloc.h>
25 27
26/* The chip can handle the page table of 4k pages 28/* The chip can handle the page table of 4k pages
27 * (emu20k1 can handle even 8k pages, but we don't use it right now) 29 * (emu20k1 can handle even 8k pages, but we don't use it right now)
@@ -41,7 +43,7 @@ struct snd_pcm_substream;
41 43
42/* Virtual memory management object for card device */ 44/* Virtual memory management object for card device */
43struct ct_vm { 45struct ct_vm {
44 void *ptp[CT_PTP_NUM]; /* Device page table pages */ 46 struct snd_dma_buffer ptp[CT_PTP_NUM]; /* Device page table pages */
45 unsigned int size; /* Available addr space in bytes */ 47 unsigned int size; /* Available addr space in bytes */
46 struct list_head unused; /* List of unused blocks */ 48 struct list_head unused; /* List of unused blocks */
47 struct list_head used; /* List of used blocks */ 49 struct list_head used; /* List of used blocks */
@@ -52,10 +54,10 @@ struct ct_vm {
52 int size); 54 int size);
53 /* Unmap device logical addr area. */ 55 /* Unmap device logical addr area. */
54 void (*unmap)(struct ct_vm *, struct ct_vm_block *block); 56 void (*unmap)(struct ct_vm *, struct ct_vm_block *block);
55 void *(*get_ptp_virt)(struct ct_vm *vm, int index); 57 dma_addr_t (*get_ptp_phys)(struct ct_vm *vm, int index);
56}; 58};
57 59
58int ct_vm_create(struct ct_vm **rvm); 60int ct_vm_create(struct ct_vm **rvm, struct pci_dev *pci);
59void ct_vm_destroy(struct ct_vm *vm); 61void ct_vm_destroy(struct ct_vm *vm);
60 62
61#endif /* CTVMEM_H */ 63#endif /* CTVMEM_H */
diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c
index 5fe34a8d8c81..e4581a42ace5 100644
--- a/sound/pci/hda/hda_beep.c
+++ b/sound/pci/hda/hda_beep.c
@@ -42,7 +42,7 @@ static void snd_hda_generate_beep(struct work_struct *work)
42 return; 42 return;
43 43
44 /* generate tone */ 44 /* generate tone */
45 snd_hda_codec_write_cache(codec, beep->nid, 0, 45 snd_hda_codec_write(codec, beep->nid, 0,
46 AC_VERB_SET_BEEP_CONTROL, beep->tone); 46 AC_VERB_SET_BEEP_CONTROL, beep->tone);
47} 47}
48 48
@@ -119,7 +119,7 @@ static void snd_hda_do_detach(struct hda_beep *beep)
119 beep->dev = NULL; 119 beep->dev = NULL;
120 cancel_work_sync(&beep->beep_work); 120 cancel_work_sync(&beep->beep_work);
121 /* turn off beep for sure */ 121 /* turn off beep for sure */
122 snd_hda_codec_write_cache(beep->codec, beep->nid, 0, 122 snd_hda_codec_write(beep->codec, beep->nid, 0,
123 AC_VERB_SET_BEEP_CONTROL, 0); 123 AC_VERB_SET_BEEP_CONTROL, 0);
124} 124}
125 125
@@ -192,7 +192,7 @@ int snd_hda_enable_beep_device(struct hda_codec *codec, int enable)
192 beep->enabled = enable; 192 beep->enabled = enable;
193 if (!enable) { 193 if (!enable) {
194 /* turn off beep */ 194 /* turn off beep */
195 snd_hda_codec_write_cache(beep->codec, beep->nid, 0, 195 snd_hda_codec_write(beep->codec, beep->nid, 0,
196 AC_VERB_SET_BEEP_CONTROL, 0); 196 AC_VERB_SET_BEEP_CONTROL, 0);
197 } 197 }
198 if (beep->mode == HDA_BEEP_MODE_SWREG) { 198 if (beep->mode == HDA_BEEP_MODE_SWREG) {
@@ -239,8 +239,12 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid)
239 mutex_init(&beep->mutex); 239 mutex_init(&beep->mutex);
240 240
241 if (beep->mode == HDA_BEEP_MODE_ON) { 241 if (beep->mode == HDA_BEEP_MODE_ON) {
242 beep->enabled = 1; 242 int err = snd_hda_do_attach(beep);
243 snd_hda_do_register(&beep->register_work); 243 if (err < 0) {
244 kfree(beep);
245 codec->beep = NULL;
246 return err;
247 }
244 } 248 }
245 249
246 return 0; 250 return 0;
@@ -253,7 +257,7 @@ void snd_hda_detach_beep_device(struct hda_codec *codec)
253 if (beep) { 257 if (beep) {
254 cancel_work_sync(&beep->register_work); 258 cancel_work_sync(&beep->register_work);
255 cancel_delayed_work(&beep->unregister_work); 259 cancel_delayed_work(&beep->unregister_work);
256 if (beep->enabled) 260 if (beep->dev)
257 snd_hda_do_detach(beep); 261 snd_hda_do_detach(beep);
258 codec->beep = NULL; 262 codec->beep = NULL;
259 kfree(beep); 263 kfree(beep);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index d02ea8926e7e..26ceace88c96 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1351,11 +1351,13 @@ EXPORT_SYMBOL_HDA(snd_hda_query_pin_caps);
1351 */ 1351 */
1352u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid) 1352u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid)
1353{ 1353{
1354 u32 pincap = snd_hda_query_pin_caps(codec, nid); 1354 u32 pincap;
1355
1356 if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */
1357 snd_hda_codec_read(codec, nid, 0, AC_VERB_SET_PIN_SENSE, 0);
1358 1355
1356 if (!codec->no_trigger_sense) {
1357 pincap = snd_hda_query_pin_caps(codec, nid);
1358 if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */
1359 snd_hda_codec_read(codec, nid, 0, AC_VERB_SET_PIN_SENSE, 0);
1360 }
1359 return snd_hda_codec_read(codec, nid, 0, 1361 return snd_hda_codec_read(codec, nid, 0,
1360 AC_VERB_GET_PIN_SENSE, 0); 1362 AC_VERB_GET_PIN_SENSE, 0);
1361} 1363}
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 11c4aa8ee996..0c8f05cc56be 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -818,6 +818,7 @@ struct hda_codec {
818 unsigned int pin_amp_workaround:1; /* pin out-amp takes index 818 unsigned int pin_amp_workaround:1; /* pin out-amp takes index
819 * (e.g. Conexant codecs) 819 * (e.g. Conexant codecs)
820 */ 820 */
821 unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
821#ifdef CONFIG_SND_HDA_POWER_SAVE 822#ifdef CONFIG_SND_HDA_POWER_SAVE
822 unsigned int power_on :1; /* current (global) power-state */ 823 unsigned int power_on :1; /* current (global) power-state */
823 unsigned int power_transition :1; /* power-state in transition */ 824 unsigned int power_transition :1; /* power-state in transition */
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 865715e3f938..214301d568fa 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -1276,6 +1276,8 @@ static int patch_ad1986a(struct hda_codec *codec)
1276 */ 1276 */
1277 spec->multiout.no_share_stream = 1; 1277 spec->multiout.no_share_stream = 1;
1278 1278
1279 codec->no_trigger_sense = 1;
1280
1279 return 0; 1281 return 0;
1280} 1282}
1281 1283
@@ -1461,6 +1463,8 @@ static int patch_ad1983(struct hda_codec *codec)
1461 1463
1462 codec->patch_ops = ad198x_patch_ops; 1464 codec->patch_ops = ad198x_patch_ops;
1463 1465
1466 codec->no_trigger_sense = 1;
1467
1464 return 0; 1468 return 0;
1465} 1469}
1466 1470
@@ -1904,6 +1908,9 @@ static int patch_ad1981(struct hda_codec *codec)
1904 codec->patch_ops.unsol_event = ad1981_hp_unsol_event; 1908 codec->patch_ops.unsol_event = ad1981_hp_unsol_event;
1905 break; 1909 break;
1906 } 1910 }
1911
1912 codec->no_trigger_sense = 1;
1913
1907 return 0; 1914 return 0;
1908} 1915}
1909 1916
@@ -3220,6 +3227,8 @@ static int patch_ad1988(struct hda_codec *codec)
3220#endif 3227#endif
3221 spec->vmaster_nid = 0x04; 3228 spec->vmaster_nid = 0x04;
3222 3229
3230 codec->no_trigger_sense = 1;
3231
3223 return 0; 3232 return 0;
3224} 3233}
3225 3234
@@ -3432,6 +3441,8 @@ static int patch_ad1884(struct hda_codec *codec)
3432 3441
3433 codec->patch_ops = ad198x_patch_ops; 3442 codec->patch_ops = ad198x_patch_ops;
3434 3443
3444 codec->no_trigger_sense = 1;
3445
3435 return 0; 3446 return 0;
3436} 3447}
3437 3448
@@ -4392,6 +4403,8 @@ static int patch_ad1884a(struct hda_codec *codec)
4392 break; 4403 break;
4393 } 4404 }
4394 4405
4406 codec->no_trigger_sense = 1;
4407
4395 return 0; 4408 return 0;
4396} 4409}
4397 4410
@@ -4728,6 +4741,9 @@ static int patch_ad1882(struct hda_codec *codec)
4728 spec->mixers[2] = ad1882_6stack_mixers; 4741 spec->mixers[2] = ad1882_6stack_mixers;
4729 break; 4742 break;
4730 } 4743 }
4744
4745 codec->no_trigger_sense = 1;
4746
4731 return 0; 4747 return 0;
4732} 4748}
4733 4749
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index e28c810bc00c..117919aa17f4 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -4460,14 +4460,7 @@ static inline int get_pin_presence(struct hda_codec *codec, hda_nid_t nid)
4460{ 4460{
4461 if (!nid) 4461 if (!nid)
4462 return 0; 4462 return 0;
4463 /* NOTE: we can't use snd_hda_jack_detect() here because STAC/IDT 4463 return snd_hda_jack_detect(codec, nid);
4464 * codecs behave wrongly when SET_PIN_SENSE is triggered, although
4465 * the pincap gives TRIG_REQ bit.
4466 */
4467 if (snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PIN_SENSE, 0) &
4468 AC_PINSENSE_PRESENCE)
4469 return 1;
4470 return 0;
4471} 4464}
4472 4465
4473static void stac92xx_line_out_detect(struct hda_codec *codec, 4466static void stac92xx_line_out_detect(struct hda_codec *codec,
@@ -4969,6 +4962,7 @@ static int patch_stac9200(struct hda_codec *codec)
4969 if (spec == NULL) 4962 if (spec == NULL)
4970 return -ENOMEM; 4963 return -ENOMEM;
4971 4964
4965 codec->no_trigger_sense = 1;
4972 codec->spec = spec; 4966 codec->spec = spec;
4973 spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); 4967 spec->num_pins = ARRAY_SIZE(stac9200_pin_nids);
4974 spec->pin_nids = stac9200_pin_nids; 4968 spec->pin_nids = stac9200_pin_nids;
@@ -5031,6 +5025,7 @@ static int patch_stac925x(struct hda_codec *codec)
5031 if (spec == NULL) 5025 if (spec == NULL)
5032 return -ENOMEM; 5026 return -ENOMEM;
5033 5027
5028 codec->no_trigger_sense = 1;
5034 codec->spec = spec; 5029 codec->spec = spec;
5035 spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); 5030 spec->num_pins = ARRAY_SIZE(stac925x_pin_nids);
5036 spec->pin_nids = stac925x_pin_nids; 5031 spec->pin_nids = stac925x_pin_nids;
@@ -5115,6 +5110,7 @@ static int patch_stac92hd73xx(struct hda_codec *codec)
5115 if (spec == NULL) 5110 if (spec == NULL)
5116 return -ENOMEM; 5111 return -ENOMEM;
5117 5112
5113 codec->no_trigger_sense = 1;
5118 codec->spec = spec; 5114 codec->spec = spec;
5119 codec->slave_dig_outs = stac92hd73xx_slave_dig_outs; 5115 codec->slave_dig_outs = stac92hd73xx_slave_dig_outs;
5120 spec->num_pins = ARRAY_SIZE(stac92hd73xx_pin_nids); 5116 spec->num_pins = ARRAY_SIZE(stac92hd73xx_pin_nids);
@@ -5262,6 +5258,7 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
5262 if (spec == NULL) 5258 if (spec == NULL)
5263 return -ENOMEM; 5259 return -ENOMEM;
5264 5260
5261 codec->no_trigger_sense = 1;
5265 codec->spec = spec; 5262 codec->spec = spec;
5266 codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs; 5263 codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs;
5267 spec->digbeep_nid = 0x21; 5264 spec->digbeep_nid = 0x21;
@@ -5473,6 +5470,7 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
5473 if (spec == NULL) 5470 if (spec == NULL)
5474 return -ENOMEM; 5471 return -ENOMEM;
5475 5472
5473 codec->no_trigger_sense = 1;
5476 codec->spec = spec; 5474 codec->spec = spec;
5477 codec->patch_ops = stac92xx_patch_ops; 5475 codec->patch_ops = stac92xx_patch_ops;
5478 spec->num_pins = STAC92HD71BXX_NUM_PINS; 5476 spec->num_pins = STAC92HD71BXX_NUM_PINS;
@@ -5725,6 +5723,7 @@ static int patch_stac922x(struct hda_codec *codec)
5725 if (spec == NULL) 5723 if (spec == NULL)
5726 return -ENOMEM; 5724 return -ENOMEM;
5727 5725
5726 codec->no_trigger_sense = 1;
5728 codec->spec = spec; 5727 codec->spec = spec;
5729 spec->num_pins = ARRAY_SIZE(stac922x_pin_nids); 5728 spec->num_pins = ARRAY_SIZE(stac922x_pin_nids);
5730 spec->pin_nids = stac922x_pin_nids; 5729 spec->pin_nids = stac922x_pin_nids;
@@ -5828,6 +5827,7 @@ static int patch_stac927x(struct hda_codec *codec)
5828 if (spec == NULL) 5827 if (spec == NULL)
5829 return -ENOMEM; 5828 return -ENOMEM;
5830 5829
5830 codec->no_trigger_sense = 1;
5831 codec->spec = spec; 5831 codec->spec = spec;
5832 codec->slave_dig_outs = stac927x_slave_dig_outs; 5832 codec->slave_dig_outs = stac927x_slave_dig_outs;
5833 spec->num_pins = ARRAY_SIZE(stac927x_pin_nids); 5833 spec->num_pins = ARRAY_SIZE(stac927x_pin_nids);
@@ -5962,6 +5962,7 @@ static int patch_stac9205(struct hda_codec *codec)
5962 if (spec == NULL) 5962 if (spec == NULL)
5963 return -ENOMEM; 5963 return -ENOMEM;
5964 5964
5965 codec->no_trigger_sense = 1;
5965 codec->spec = spec; 5966 codec->spec = spec;
5966 spec->num_pins = ARRAY_SIZE(stac9205_pin_nids); 5967 spec->num_pins = ARRAY_SIZE(stac9205_pin_nids);
5967 spec->pin_nids = stac9205_pin_nids; 5968 spec->pin_nids = stac9205_pin_nids;
@@ -6117,6 +6118,7 @@ static int patch_stac9872(struct hda_codec *codec)
6117 spec = kzalloc(sizeof(*spec), GFP_KERNEL); 6118 spec = kzalloc(sizeof(*spec), GFP_KERNEL);
6118 if (spec == NULL) 6119 if (spec == NULL)
6119 return -ENOMEM; 6120 return -ENOMEM;
6121 codec->no_trigger_sense = 1;
6120 codec->spec = spec; 6122 codec->spec = spec;
6121 spec->num_pins = ARRAY_SIZE(stac9872_pin_nids); 6123 spec->num_pins = ARRAY_SIZE(stac9872_pin_nids);
6122 spec->pin_nids = stac9872_pin_nids; 6124 spec->pin_nids = stac9872_pin_nids;
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
index 765d7bd4c3d4..9e66f6d306f8 100644
--- a/sound/pci/ice1712/aureon.c
+++ b/sound/pci/ice1712/aureon.c
@@ -703,11 +703,13 @@ static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned sho
703{ 703{
704 unsigned char nvol; 704 unsigned char nvol;
705 705
706 if ((master & WM_VOL_MUTE) || (vol & WM_VOL_MUTE)) 706 if ((master & WM_VOL_MUTE) || (vol & WM_VOL_MUTE)) {
707 nvol = 0; 707 nvol = 0;
708 else 708 } else {
709 nvol = ((vol % WM_VOL_CNT) * (master % WM_VOL_CNT)) / 709 nvol = ((vol % WM_VOL_CNT) * (master % WM_VOL_CNT)) /
710 WM_VOL_MAX; 710 WM_VOL_MAX;
711 nvol += 0x1b;
712 }
711 713
712 wm_put(ice, index, nvol); 714 wm_put(ice, index, nvol);
713 wm_put_nocache(ice, index, 0x180 | nvol); 715 wm_put_nocache(ice, index, 0x180 | nvol);
@@ -778,7 +780,7 @@ static int wm_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
778 for (ch = 0; ch < 2; ch++) { 780 for (ch = 0; ch < 2; ch++) {
779 unsigned int vol = ucontrol->value.integer.value[ch]; 781 unsigned int vol = ucontrol->value.integer.value[ch];
780 if (vol > WM_VOL_MAX) 782 if (vol > WM_VOL_MAX)
781 continue; 783 vol = WM_VOL_MAX;
782 vol |= spec->master[ch] & WM_VOL_MUTE; 784 vol |= spec->master[ch] & WM_VOL_MUTE;
783 if (vol != spec->master[ch]) { 785 if (vol != spec->master[ch]) {
784 int dac; 786 int dac;
@@ -834,8 +836,8 @@ static int wm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *
834 for (i = 0; i < voices; i++) { 836 for (i = 0; i < voices; i++) {
835 unsigned int vol = ucontrol->value.integer.value[i]; 837 unsigned int vol = ucontrol->value.integer.value[i];
836 if (vol > WM_VOL_MAX) 838 if (vol > WM_VOL_MAX)
837 continue; 839 vol = WM_VOL_MAX;
838 vol |= spec->vol[ofs+i]; 840 vol |= spec->vol[ofs+i] & WM_VOL_MUTE;
839 if (vol != spec->vol[ofs+i]) { 841 if (vol != spec->vol[ofs+i]) {
840 spec->vol[ofs+i] = vol; 842 spec->vol[ofs+i] = vol;
841 idx = WM_DAC_ATTEN + ofs + i; 843 idx = WM_DAC_ATTEN + ofs + i;
diff --git a/sound/soc/codecs/ac97.c b/sound/soc/codecs/ac97.c
index 69bd0acc81c8..a1bbe16b7f96 100644
--- a/sound/soc/codecs/ac97.c
+++ b/sound/soc/codecs/ac97.c
@@ -102,6 +102,12 @@ static int ac97_soc_probe(struct platform_device *pdev)
102 INIT_LIST_HEAD(&codec->dapm_widgets); 102 INIT_LIST_HEAD(&codec->dapm_widgets);
103 INIT_LIST_HEAD(&codec->dapm_paths); 103 INIT_LIST_HEAD(&codec->dapm_paths);
104 104
105 ret = snd_soc_new_ac97_codec(codec, &soc_ac97_ops, 0);
106 if (ret < 0) {
107 printk(KERN_ERR "ASoC: failed to init gen ac97 glue\n");
108 goto err;
109 }
110
105 /* register pcms */ 111 /* register pcms */
106 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); 112 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
107 if (ret < 0) 113 if (ret < 0)
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c
index 265e68c75df8..af8cb6995a1f 100644
--- a/sound/soc/codecs/wm8510.c
+++ b/sound/soc/codecs/wm8510.c
@@ -424,23 +424,23 @@ static int wm8510_pcm_hw_params(struct snd_pcm_substream *substream,
424 424
425 /* filter coefficient */ 425 /* filter coefficient */
426 switch (params_rate(params)) { 426 switch (params_rate(params)) {
427 case SNDRV_PCM_RATE_8000: 427 case 8000:
428 adn |= 0x5 << 1; 428 adn |= 0x5 << 1;
429 break; 429 break;
430 case SNDRV_PCM_RATE_11025: 430 case 11025:
431 adn |= 0x4 << 1; 431 adn |= 0x4 << 1;
432 break; 432 break;
433 case SNDRV_PCM_RATE_16000: 433 case 16000:
434 adn |= 0x3 << 1; 434 adn |= 0x3 << 1;
435 break; 435 break;
436 case SNDRV_PCM_RATE_22050: 436 case 22050:
437 adn |= 0x2 << 1; 437 adn |= 0x2 << 1;
438 break; 438 break;
439 case SNDRV_PCM_RATE_32000: 439 case 32000:
440 adn |= 0x1 << 1; 440 adn |= 0x1 << 1;
441 break; 441 break;
442 case SNDRV_PCM_RATE_44100: 442 case 44100:
443 case SNDRV_PCM_RATE_48000: 443 case 48000:
444 break; 444 break;
445 } 445 }
446 446
diff --git a/sound/soc/codecs/wm8940.c b/sound/soc/codecs/wm8940.c
index 3d850b97037a..31e39ffd1d8e 100644
--- a/sound/soc/codecs/wm8940.c
+++ b/sound/soc/codecs/wm8940.c
@@ -378,23 +378,23 @@ static int wm8940_i2s_hw_params(struct snd_pcm_substream *substream,
378 iface |= (1 << 9); 378 iface |= (1 << 9);
379 379
380 switch (params_rate(params)) { 380 switch (params_rate(params)) {
381 case SNDRV_PCM_RATE_8000: 381 case 8000:
382 addcntrl |= (0x5 << 1); 382 addcntrl |= (0x5 << 1);
383 break; 383 break;
384 case SNDRV_PCM_RATE_11025: 384 case 11025:
385 addcntrl |= (0x4 << 1); 385 addcntrl |= (0x4 << 1);
386 break; 386 break;
387 case SNDRV_PCM_RATE_16000: 387 case 16000:
388 addcntrl |= (0x3 << 1); 388 addcntrl |= (0x3 << 1);
389 break; 389 break;
390 case SNDRV_PCM_RATE_22050: 390 case 22050:
391 addcntrl |= (0x2 << 1); 391 addcntrl |= (0x2 << 1);
392 break; 392 break;
393 case SNDRV_PCM_RATE_32000: 393 case 32000:
394 addcntrl |= (0x1 << 1); 394 addcntrl |= (0x1 << 1);
395 break; 395 break;
396 case SNDRV_PCM_RATE_44100: 396 case 44100:
397 case SNDRV_PCM_RATE_48000: 397 case 48000:
398 break; 398 break;
399 } 399 }
400 ret = snd_soc_write(codec, WM8940_ADDCNTRL, addcntrl); 400 ret = snd_soc_write(codec, WM8940_ADDCNTRL, addcntrl);
diff --git a/sound/soc/codecs/wm8974.c b/sound/soc/codecs/wm8974.c
index a808675388fc..8812751da8c9 100644
--- a/sound/soc/codecs/wm8974.c
+++ b/sound/soc/codecs/wm8974.c
@@ -482,23 +482,23 @@ static int wm8974_pcm_hw_params(struct snd_pcm_substream *substream,
482 482
483 /* filter coefficient */ 483 /* filter coefficient */
484 switch (params_rate(params)) { 484 switch (params_rate(params)) {
485 case SNDRV_PCM_RATE_8000: 485 case 8000:
486 adn |= 0x5 << 1; 486 adn |= 0x5 << 1;
487 break; 487 break;
488 case SNDRV_PCM_RATE_11025: 488 case 11025:
489 adn |= 0x4 << 1; 489 adn |= 0x4 << 1;
490 break; 490 break;
491 case SNDRV_PCM_RATE_16000: 491 case 16000:
492 adn |= 0x3 << 1; 492 adn |= 0x3 << 1;
493 break; 493 break;
494 case SNDRV_PCM_RATE_22050: 494 case 22050:
495 adn |= 0x2 << 1; 495 adn |= 0x2 << 1;
496 break; 496 break;
497 case SNDRV_PCM_RATE_32000: 497 case 32000:
498 adn |= 0x1 << 1; 498 adn |= 0x1 << 1;
499 break; 499 break;
500 case SNDRV_PCM_RATE_44100: 500 case 44100:
501 case SNDRV_PCM_RATE_48000: 501 case 48000:
502 break; 502 break;
503 } 503 }
504 504
diff --git a/sound/soc/sh/fsi-ak4642.c b/sound/soc/sh/fsi-ak4642.c
index c7af09729c6e..5263ab18f827 100644
--- a/sound/soc/sh/fsi-ak4642.c
+++ b/sound/soc/sh/fsi-ak4642.c
@@ -42,42 +42,12 @@ static struct snd_soc_device fsi_snd_devdata = {
42 .codec_dev = &soc_codec_dev_ak4642, 42 .codec_dev = &soc_codec_dev_ak4642,
43}; 43};
44 44
45#define AK4642_BUS 0
46#define AK4642_ADR 0x12
47static int ak4642_add_i2c_device(void)
48{
49 struct i2c_board_info info;
50 struct i2c_adapter *adapter;
51 struct i2c_client *client;
52
53 memset(&info, 0, sizeof(struct i2c_board_info));
54 info.addr = AK4642_ADR;
55 strlcpy(info.type, "ak4642", I2C_NAME_SIZE);
56
57 adapter = i2c_get_adapter(AK4642_BUS);
58 if (!adapter) {
59 printk(KERN_DEBUG "can't get i2c adapter\n");
60 return -ENODEV;
61 }
62
63 client = i2c_new_device(adapter, &info);
64 i2c_put_adapter(adapter);
65 if (!client) {
66 printk(KERN_DEBUG "can't add i2c device\n");
67 return -ENODEV;
68 }
69
70 return 0;
71}
72
73static struct platform_device *fsi_snd_device; 45static struct platform_device *fsi_snd_device;
74 46
75static int __init fsi_ak4642_init(void) 47static int __init fsi_ak4642_init(void)
76{ 48{
77 int ret = -ENOMEM; 49 int ret = -ENOMEM;
78 50
79 ak4642_add_i2c_device();
80
81 fsi_snd_device = platform_device_alloc("soc-audio", -1); 51 fsi_snd_device = platform_device_alloc("soc-audio", -1);
82 if (!fsi_snd_device) 52 if (!fsi_snd_device)
83 goto out; 53 goto out;
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c
index 8f5bc1e8dabc..b2da478a0fae 100644
--- a/sound/usb/usbmidi.c
+++ b/sound/usb/usbmidi.c
@@ -1162,10 +1162,22 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi,
1162 pipe = usb_sndintpipe(umidi->dev, ep_info->out_ep); 1162 pipe = usb_sndintpipe(umidi->dev, ep_info->out_ep);
1163 else 1163 else
1164 pipe = usb_sndbulkpipe(umidi->dev, ep_info->out_ep); 1164 pipe = usb_sndbulkpipe(umidi->dev, ep_info->out_ep);
1165 if (umidi->usb_id == USB_ID(0x0a92, 0x1020)) /* ESI M4U */ 1165 switch (umidi->usb_id) {
1166 ep->max_transfer = 4; 1166 default:
1167 else
1168 ep->max_transfer = usb_maxpacket(umidi->dev, pipe, 1); 1167 ep->max_transfer = usb_maxpacket(umidi->dev, pipe, 1);
1168 break;
1169 /*
1170 * Various chips declare a packet size larger than 4 bytes, but
1171 * do not actually work with larger packets:
1172 */
1173 case USB_ID(0x0a92, 0x1020): /* ESI M4U */
1174 case USB_ID(0x1430, 0x474b): /* RedOctane GH MIDI INTERFACE */
1175 case USB_ID(0x15ca, 0x0101): /* Textech USB Midi Cable */
1176 case USB_ID(0x15ca, 0x1806): /* Textech USB Midi Cable */
1177 case USB_ID(0x1a86, 0x752d): /* QinHeng CH345 "USB2.0-MIDI" */
1178 ep->max_transfer = 4;
1179 break;
1180 }
1169 for (i = 0; i < OUTPUT_URBS; ++i) { 1181 for (i = 0; i < OUTPUT_URBS; ++i) {
1170 buffer = usb_buffer_alloc(umidi->dev, 1182 buffer = usb_buffer_alloc(umidi->dev,
1171 ep->max_transfer, GFP_KERNEL, 1183 ep->max_transfer, GFP_KERNEL,
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 4390d225686d..652a470b5f74 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -343,13 +343,18 @@ LIB_H += util/include/linux/string.h
343LIB_H += util/include/linux/types.h 343LIB_H += util/include/linux/types.h
344LIB_H += util/include/asm/asm-offsets.h 344LIB_H += util/include/asm/asm-offsets.h
345LIB_H += util/include/asm/bitops.h 345LIB_H += util/include/asm/bitops.h
346LIB_H += util/include/asm/bug.h
346LIB_H += util/include/asm/byteorder.h 347LIB_H += util/include/asm/byteorder.h
347LIB_H += util/include/asm/swab.h 348LIB_H += util/include/asm/swab.h
348LIB_H += util/include/asm/system.h 349LIB_H += util/include/asm/system.h
349LIB_H += util/include/asm/uaccess.h 350LIB_H += util/include/asm/uaccess.h
350LIB_H += perf.h 351LIB_H += perf.h
352LIB_H += util/cache.h
353LIB_H += util/callchain.h
354LIB_H += util/debug.h
351LIB_H += util/debugfs.h 355LIB_H += util/debugfs.h
352LIB_H += util/event.h 356LIB_H += util/event.h
357LIB_H += util/exec_cmd.h
353LIB_H += util/types.h 358LIB_H += util/types.h
354LIB_H += util/levenshtein.h 359LIB_H += util/levenshtein.h
355LIB_H += util/parse-options.h 360LIB_H += util/parse-options.h
@@ -362,6 +367,7 @@ LIB_H += util/session.h
362LIB_H += util/strbuf.h 367LIB_H += util/strbuf.h
363LIB_H += util/string.h 368LIB_H += util/string.h
364LIB_H += util/strlist.h 369LIB_H += util/strlist.h
370LIB_H += util/svghelper.h
365LIB_H += util/run-command.h 371LIB_H += util/run-command.h
366LIB_H += util/sigchain.h 372LIB_H += util/sigchain.h
367LIB_H += util/symbol.h 373LIB_H += util/symbol.h
@@ -370,6 +376,8 @@ LIB_H += util/values.h
370LIB_H += util/sort.h 376LIB_H += util/sort.h
371LIB_H += util/hist.h 377LIB_H += util/hist.h
372LIB_H += util/thread.h 378LIB_H += util/thread.h
379LIB_H += util/trace-event.h
380LIB_H += util/trace-event-perl.h
373LIB_H += util/probe-finder.h 381LIB_H += util/probe-finder.h
374LIB_H += util/probe-event.h 382LIB_H += util/probe-event.h
375 383
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c
index e693e6777af5..1e99ac806913 100644
--- a/tools/perf/builtin-buildid-list.c
+++ b/tools/perf/builtin-buildid-list.c
@@ -17,7 +17,7 @@
17static char const *input_name = "perf.data"; 17static char const *input_name = "perf.data";
18static int force; 18static int force;
19 19
20static const char *const buildid_list_usage[] = { 20static const char * const buildid_list_usage[] = {
21 "perf buildid-list [<options>]", 21 "perf buildid-list [<options>]",
22 NULL 22 NULL
23}; 23};
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
index 4d33b55d5584..bd71b8ceafb7 100644
--- a/tools/perf/builtin-diff.c
+++ b/tools/perf/builtin-diff.c
@@ -189,8 +189,9 @@ out_delete:
189 return ret; 189 return ret;
190} 190}
191 191
192static const char *const diff_usage[] = { 192static const char * const diff_usage[] = {
193 "perf diff [<options>] [old_file] [new_file]", 193 "perf diff [<options>] [old_file] [new_file]",
194 NULL,
194}; 195};
195 196
196static const struct option options[] = { 197static const struct option options[] = {
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c
index fc21ad79dd83..7ceb7416c316 100644
--- a/tools/perf/builtin-kmem.c
+++ b/tools/perf/builtin-kmem.c
@@ -137,7 +137,7 @@ static void insert_alloc_stat(unsigned long call_site, unsigned long ptr,
137 if (data && data->ptr == ptr) { 137 if (data && data->ptr == ptr) {
138 data->hit++; 138 data->hit++;
139 data->bytes_req += bytes_req; 139 data->bytes_req += bytes_req;
140 data->bytes_alloc += bytes_req; 140 data->bytes_alloc += bytes_alloc;
141 } else { 141 } else {
142 data = malloc(sizeof(*data)); 142 data = malloc(sizeof(*data));
143 if (!data) 143 if (!data)
@@ -177,7 +177,7 @@ static void insert_caller_stat(unsigned long call_site,
177 if (data && data->call_site == call_site) { 177 if (data && data->call_site == call_site) {
178 data->hit++; 178 data->hit++;
179 data->bytes_req += bytes_req; 179 data->bytes_req += bytes_req;
180 data->bytes_alloc += bytes_req; 180 data->bytes_alloc += bytes_alloc;
181 } else { 181 } else {
182 data = malloc(sizeof(*data)); 182 data = malloc(sizeof(*data));
183 if (!data) 183 if (!data)
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 63136d0534d4..265425322734 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -402,7 +402,7 @@ static void atexit_header(void)
402 perf_header__write(&session->header, output, true); 402 perf_header__write(&session->header, output, true);
403} 403}
404 404
405static int __cmd_record(int argc __used, const char **argv) 405static int __cmd_record(int argc, const char **argv)
406{ 406{
407 int i, counter; 407 int i, counter;
408 struct stat st; 408 struct stat st;
@@ -411,6 +411,7 @@ static int __cmd_record(int argc __used, const char **argv)
411 int err; 411 int err;
412 unsigned long waking = 0; 412 unsigned long waking = 0;
413 int child_ready_pipe[2], go_pipe[2]; 413 int child_ready_pipe[2], go_pipe[2];
414 const bool forks = target_pid == -1 && argc > 0;
414 char buf; 415 char buf;
415 416
416 page_size = sysconf(_SC_PAGE_SIZE); 417 page_size = sysconf(_SC_PAGE_SIZE);
@@ -422,7 +423,7 @@ static int __cmd_record(int argc __used, const char **argv)
422 signal(SIGCHLD, sig_handler); 423 signal(SIGCHLD, sig_handler);
423 signal(SIGINT, sig_handler); 424 signal(SIGINT, sig_handler);
424 425
425 if (pipe(child_ready_pipe) < 0 || pipe(go_pipe) < 0) { 426 if (forks && (pipe(child_ready_pipe) < 0 || pipe(go_pipe) < 0)) {
426 perror("failed to create pipes"); 427 perror("failed to create pipes");
427 exit(-1); 428 exit(-1);
428 } 429 }
@@ -483,7 +484,7 @@ static int __cmd_record(int argc __used, const char **argv)
483 484
484 atexit(atexit_header); 485 atexit(atexit_header);
485 486
486 if (target_pid == -1) { 487 if (forks) {
487 pid = fork(); 488 pid = fork();
488 if (pid < 0) { 489 if (pid < 0) {
489 perror("failed to fork"); 490 perror("failed to fork");
@@ -550,7 +551,7 @@ static int __cmd_record(int argc __used, const char **argv)
550 return err; 551 return err;
551 } 552 }
552 553
553 if (!system_wide) 554 if (!system_wide && profile_cpu == -1)
554 event__synthesize_thread(pid, process_synthesized_event, 555 event__synthesize_thread(pid, process_synthesized_event,
555 session); 556 session);
556 else 557 else
@@ -569,7 +570,8 @@ static int __cmd_record(int argc __used, const char **argv)
569 /* 570 /*
570 * Let the child rip 571 * Let the child rip
571 */ 572 */
572 close(go_pipe[1]); 573 if (forks)
574 close(go_pipe[1]);
573 575
574 for (;;) { 576 for (;;) {
575 int hits = samples; 577 int hits = samples;
@@ -667,7 +669,7 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)
667 669
668 argc = parse_options(argc, argv, options, record_usage, 670 argc = parse_options(argc, argv, options, record_usage,
669 PARSE_OPT_STOP_AT_NON_OPTION); 671 PARSE_OPT_STOP_AT_NON_OPTION);
670 if (!argc && target_pid == -1 && (!system_wide || profile_cpu == -1)) 672 if (!argc && target_pid == -1 && !system_wide && profile_cpu == -1)
671 usage_with_options(record_usage, options); 673 usage_with_options(record_usage, options);
672 674
673 symbol__init(); 675 symbol__init();
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 5c2ab5357ec6..db10c0e8ecae 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -294,8 +294,7 @@ setup:
294 return 0; 294 return 0;
295} 295}
296 296
297//static const char * const report_usage[] = { 297static const char * const report_usage[] = {
298const char * const report_usage[] = {
299 "perf report [<options>] <command>", 298 "perf report [<options>] <command>",
300 NULL 299 NULL
301}; 300};
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index e2285e28720f..574a215e800b 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -512,7 +512,7 @@ static char *get_script_path(const char *script_root, const char *suffix)
512 return path; 512 return path;
513} 513}
514 514
515static const char * const annotate_usage[] = { 515static const char * const trace_usage[] = {
516 "perf trace [<options>] <command>", 516 "perf trace [<options>] <command>",
517 NULL 517 NULL
518}; 518};
@@ -581,7 +581,7 @@ int cmd_trace(int argc, const char **argv, const char *prefix __used)
581 581
582 setup_scripting(); 582 setup_scripting();
583 583
584 argc = parse_options(argc, argv, options, annotate_usage, 584 argc = parse_options(argc, argv, options, trace_usage,
585 PARSE_OPT_STOP_AT_NON_OPTION); 585 PARSE_OPT_STOP_AT_NON_OPTION);
586 586
587 if (symbol__init() < 0) 587 if (symbol__init() < 0)
diff --git a/tools/perf/design.txt b/tools/perf/design.txt
index f000c30877ac..8d0de5130db3 100644
--- a/tools/perf/design.txt
+++ b/tools/perf/design.txt
@@ -21,7 +21,7 @@ There's one file descriptor per virtual counter used.
21The special file descriptor is opened via the perf_event_open() 21The special file descriptor is opened via the perf_event_open()
22system call: 22system call:
23 23
24 int sys_perf_event_open(struct perf_event_hw_event *hw_event_uptr, 24 int sys_perf_event_open(struct perf_event_attr *hw_event_uptr,
25 pid_t pid, int cpu, int group_fd, 25 pid_t pid, int cpu, int group_fd,
26 unsigned long flags); 26 unsigned long flags);
27 27
@@ -32,9 +32,9 @@ can be used to set the blocking mode, etc.
32Multiple counters can be kept open at a time, and the counters 32Multiple counters can be kept open at a time, and the counters
33can be poll()ed. 33can be poll()ed.
34 34
35When creating a new counter fd, 'perf_event_hw_event' is: 35When creating a new counter fd, 'perf_event_attr' is:
36 36
37struct perf_event_hw_event { 37struct perf_event_attr {
38 /* 38 /*
39 * The MSB of the config word signifies if the rest contains cpu 39 * The MSB of the config word signifies if the rest contains cpu
40 * specific (raw) counter configuration data, if unset, the next 40 * specific (raw) counter configuration data, if unset, the next
@@ -399,7 +399,7 @@ Notification of new events is possible through poll()/select()/epoll() and
399fcntl() managing signals. 399fcntl() managing signals.
400 400
401Normally a notification is generated for every page filled, however one can 401Normally a notification is generated for every page filled, however one can
402additionally set perf_event_hw_event.wakeup_events to generate one every 402additionally set perf_event_attr.wakeup_events to generate one every
403so many counter overflow events. 403so many counter overflow events.
404 404
405Future work will include a splice() interface to the ring-buffer. 405Future work will include a splice() interface to the ring-buffer.
diff --git a/virt/kvm/assigned-dev.c b/virt/kvm/assigned-dev.c
index fd9c097b760a..f73de631e3ee 100644
--- a/virt/kvm/assigned-dev.c
+++ b/virt/kvm/assigned-dev.c
@@ -508,8 +508,8 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm,
508 struct kvm_assigned_dev_kernel *match; 508 struct kvm_assigned_dev_kernel *match;
509 struct pci_dev *dev; 509 struct pci_dev *dev;
510 510
511 down_read(&kvm->slots_lock);
512 mutex_lock(&kvm->lock); 511 mutex_lock(&kvm->lock);
512 down_read(&kvm->slots_lock);
513 513
514 match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head, 514 match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
515 assigned_dev->assigned_dev_id); 515 assigned_dev->assigned_dev_id);
@@ -573,8 +573,8 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm,
573 } 573 }
574 574
575out: 575out:
576 mutex_unlock(&kvm->lock);
577 up_read(&kvm->slots_lock); 576 up_read(&kvm->slots_lock);
577 mutex_unlock(&kvm->lock);
578 return r; 578 return r;
579out_list_del: 579out_list_del:
580 list_del(&match->list); 580 list_del(&match->list);
@@ -585,8 +585,8 @@ out_put:
585 pci_dev_put(dev); 585 pci_dev_put(dev);
586out_free: 586out_free:
587 kfree(match); 587 kfree(match);
588 mutex_unlock(&kvm->lock);
589 up_read(&kvm->slots_lock); 588 up_read(&kvm->slots_lock);
589 mutex_unlock(&kvm->lock);
590 return r; 590 return r;
591} 591}
592 592
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index b5af88167613..a944be392d6e 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -64,7 +64,7 @@ MODULE_LICENSE("GPL");
64/* 64/*
65 * Ordering of locks: 65 * Ordering of locks:
66 * 66 *
67 * kvm->slots_lock --> kvm->lock --> kvm->irq_lock 67 * kvm->lock --> kvm->slots_lock --> kvm->irq_lock
68 */ 68 */
69 69
70DEFINE_SPINLOCK(kvm_lock); 70DEFINE_SPINLOCK(kvm_lock);
@@ -406,8 +406,11 @@ static struct kvm *kvm_create_vm(void)
406out: 406out:
407 return kvm; 407 return kvm;
408 408
409#if defined(KVM_COALESCED_MMIO_PAGE_OFFSET) || \
410 (defined(CONFIG_MMU_NOTIFIER) && defined(KVM_ARCH_WANT_MMU_NOTIFIER))
409out_err: 411out_err:
410 hardware_disable_all(); 412 hardware_disable_all();
413#endif
411out_err_nodisable: 414out_err_nodisable:
412 kfree(kvm); 415 kfree(kvm);
413 return ERR_PTR(r); 416 return ERR_PTR(r);