From 72508baf66e5d949a7755c8c0820eea128967e7e Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 13 Jan 2012 10:33:39 -0800 Subject: [PATCH] --- yaml --- r: 284467 b: refs/heads/master c: 57e6a7dde8cfca9ac1d6702cf9104d22bc11ba90 h: refs/heads/master i: 284465: 4a3fb314f4fcdcf14c5c7436d9bc341f1ecfa900 284463: f86ae763091faed234e677ab138c059a47279e07 v: v3 --- [refs] | 2 +- .../ABI/testing/sysfs-kernel-slab | 4 + .../DocBook/writing-an-alsa-driver.tmpl | 2 +- trunk/Documentation/cgroups/memory.txt | 9 +- .../bindings/power_supply/olpc_battery.txt | 5 + .../bindings/power_supply/sbs_sbs-battery.txt | 23 + .../bindings/sound/tegra-audio-wm8903.txt | 71 + .../devicetree/bindings/sound/tegra20-das.txt | 12 + .../devicetree/bindings/sound/tegra20-i2s.txt | 17 + .../devicetree/bindings/sound/wm8903.txt | 50 + .../devicetree/bindings/sound/wm8994.txt | 18 + .../devicetree/bindings/vendor-prefixes.txt | 2 + trunk/Documentation/digsig.txt | 96 + .../feature-removal-schedule.txt | 12 + trunk/Documentation/filesystems/ceph.txt | 18 +- trunk/Documentation/filesystems/proc.txt | 3 + trunk/Documentation/kernel-parameters.txt | 10 + trunk/Documentation/power/charger-manager.txt | 163 + trunk/Documentation/security/00-INDEX | 2 + trunk/Documentation/security/LSM.txt | 34 + trunk/Documentation/security/credentials.txt | 6 +- .../sound/alsa/HD-Audio-Models.txt | 15 +- .../sound/alsa/compress_offload.txt | 188 + trunk/Documentation/sysctl/kernel.txt | 22 + trunk/Documentation/vm/slub.txt | 7 +- trunk/MAINTAINERS | 1 + trunk/arch/Kconfig | 14 + trunk/arch/alpha/kernel/pci.c | 40 +- trunk/arch/arm/common/it8152.c | 9 +- trunk/arch/arm/common/via82c505.c | 3 +- trunk/arch/arm/configs/bonito_defconfig | 72 + trunk/arch/arm/configs/kota2_defconfig | 122 + trunk/arch/arm/configs/marzen_defconfig | 87 + trunk/arch/arm/include/asm/mach/pci.h | 2 +- trunk/arch/arm/include/asm/pci.h | 12 - trunk/arch/arm/kernel/bios32.c | 34 +- trunk/arch/arm/mach-cns3xxx/pcie.c | 8 +- trunk/arch/arm/mach-dove/pcie.c | 9 +- .../arm/mach-exynos/include/mach/cpufreq.h | 34 + trunk/arch/arm/mach-footbridge/dc21285.c | 8 +- trunk/arch/arm/mach-integrator/pci_v3.c | 19 +- trunk/arch/arm/mach-iop13xx/pci.c | 17 +- trunk/arch/arm/mach-ixp2000/enp2611.c | 3 +- trunk/arch/arm/mach-ixp2000/pci.c | 8 +- trunk/arch/arm/mach-ixp23xx/pci.c | 8 +- trunk/arch/arm/mach-ixp4xx/common-pci.c | 8 +- trunk/arch/arm/mach-kirkwood/pcie.c | 8 +- trunk/arch/arm/mach-ks8695/pci.c | 8 +- trunk/arch/arm/mach-mv78xx0/pcie.c | 8 +- .../arm/mach-omap2/board-rx51-peripherals.c | 3 + trunk/arch/arm/mach-omap2/mcbsp.c | 3 + trunk/arch/arm/mach-orion5x/pci.c | 16 +- trunk/arch/arm/mach-pxa/corgi.c | 9 + trunk/arch/arm/mach-pxa/eseries.c | 18 + trunk/arch/arm/mach-pxa/poodle.c | 6 + trunk/arch/arm/mach-pxa/stargate2.c | 6 + trunk/arch/arm/mach-pxa/tosa.c | 6 + trunk/arch/arm/mach-s3c64xx/mach-crag6410.c | 6 +- trunk/arch/arm/mach-sa1100/pci-nanoengine.c | 13 +- trunk/arch/arm/mach-shmobile/Kconfig | 27 +- trunk/arch/arm/mach-shmobile/Makefile | 9 + trunk/arch/arm/mach-shmobile/board-ap4evb.c | 15 +- trunk/arch/arm/mach-shmobile/board-bonito.c | 522 +++ trunk/arch/arm/mach-shmobile/board-mackerel.c | 14 +- trunk/arch/arm/mach-shmobile/board-marzen.c | 157 + trunk/arch/arm/mach-shmobile/clock-r8a7740.c | 382 ++ trunk/arch/arm/mach-shmobile/clock-r8a7779.c | 176 + trunk/arch/arm/mach-shmobile/clock-sh7372.c | 6 +- trunk/arch/arm/mach-shmobile/clock-sh73a0.c | 140 +- trunk/arch/arm/mach-shmobile/headsmp.S | 2 +- trunk/arch/arm/mach-shmobile/hotplug.c | 32 +- .../arm/mach-shmobile/include/mach/common.h | 22 + .../arm/mach-shmobile/include/mach/r8a7740.h | 584 +++ .../arm/mach-shmobile/include/mach/r8a7779.h | 363 ++ trunk/arch/arm/mach-shmobile/intc-r8a7740.c | 631 ++++ trunk/arch/arm/mach-shmobile/intc-r8a7779.c | 58 + trunk/arch/arm/mach-shmobile/pfc-r8a7740.c | 2562 ++++++++++++++ trunk/arch/arm/mach-shmobile/pfc-r8a7779.c | 2645 ++++++++++++++ trunk/arch/arm/mach-shmobile/platsmp.c | 21 + trunk/arch/arm/mach-shmobile/pm-r8a7779.c | 249 ++ trunk/arch/arm/mach-shmobile/setup-r8a7740.c | 352 ++ trunk/arch/arm/mach-shmobile/setup-r8a7779.c | 239 ++ trunk/arch/arm/mach-shmobile/setup-sh7372.c | 6 +- trunk/arch/arm/mach-shmobile/setup-sh73a0.c | 2 +- trunk/arch/arm/mach-shmobile/smp-r8a7779.c | 153 + trunk/arch/arm/mach-tegra/board-harmony.c | 8 +- trunk/arch/arm/mach-tegra/board-seaboard.c | 8 +- trunk/arch/arm/mach-tegra/pcie.c | 9 +- trunk/arch/arm/mach-versatile/pci.c | 19 +- trunk/arch/arm/plat-iop/pci.c | 8 +- trunk/arch/arm/plat-omap/cpu-omap.c | 171 - trunk/arch/avr32/include/asm/system.h | 2 +- trunk/arch/avr32/kernel/traps.c | 2 +- trunk/arch/blackfin/include/asm/pci.h | 4 - trunk/arch/frv/Kconfig | 1 + trunk/arch/frv/mb93090-mb00/pci-frv.c | 20 - trunk/arch/frv/mb93090-mb00/pci-frv.h | 2 - trunk/arch/frv/mb93090-mb00/pci-vdk.c | 11 +- trunk/arch/h8300/Kconfig | 1 + trunk/arch/h8300/include/asm/pci.h | 5 - trunk/arch/ia64/include/asm/pci.h | 6 - trunk/arch/ia64/include/asm/processor.h | 1 - trunk/arch/ia64/kernel/machine_kexec.c | 4 +- trunk/arch/ia64/pci/pci.c | 43 +- trunk/arch/m68k/Kconfig | 1 + trunk/arch/m68k/amiga/config.c | 3 +- trunk/arch/microblaze/Kconfig | 1 + .../arch/microblaze/include/asm/pci-bridge.h | 1 - trunk/arch/microblaze/include/asm/pci.h | 5 - trunk/arch/microblaze/pci/pci-common.c | 43 +- trunk/arch/mips/include/asm/ptrace.h | 2 +- trunk/arch/mips/kernel/traps.c | 2 +- trunk/arch/mips/pci/pci.c | 38 +- trunk/arch/mn10300/include/asm/exceptions.h | 2 +- trunk/arch/mn10300/unit-asb2305/pci-asb2305.c | 22 - trunk/arch/mn10300/unit-asb2305/pci-asb2305.h | 2 - trunk/arch/mn10300/unit-asb2305/pci.c | 12 +- trunk/arch/openrisc/Kconfig | 1 + trunk/arch/parisc/include/asm/processor.h | 2 - trunk/arch/parisc/kernel/process.c | 1 - trunk/arch/powerpc/include/asm/pci-bridge.h | 1 - trunk/arch/powerpc/include/asm/pci.h | 5 - trunk/arch/powerpc/kernel/machine_kexec_32.c | 4 +- trunk/arch/powerpc/kernel/machine_kexec_64.c | 6 +- trunk/arch/powerpc/kernel/pci-common.c | 30 +- trunk/arch/powerpc/kernel/pci_64.c | 40 +- trunk/arch/powerpc/mm/numa.c | 2 +- trunk/arch/powerpc/platforms/pseries/nvram.c | 1 - trunk/arch/s390/include/asm/processor.h | 2 +- trunk/arch/s390/kernel/nmi.c | 2 +- trunk/arch/score/Kconfig | 1 + trunk/arch/sh/boards/board-magicpanelr2.c | 34 +- trunk/arch/sh/boards/board-sh7757lcr.c | 39 + trunk/arch/sh/boards/mach-ap325rxa/setup.c | 12 - trunk/arch/sh/boards/mach-ecovec24/setup.c | 36 - trunk/arch/sh/boards/mach-kfr2r09/setup.c | 12 - trunk/arch/sh/boards/mach-migor/setup.c | 12 - trunk/arch/sh/boards/mach-rsk/setup.c | 43 +- trunk/arch/sh/boards/mach-se/7722/setup.c | 3 - trunk/arch/sh/boards/mach-se/7724/setup.c | 44 +- trunk/arch/sh/drivers/pci/pci.c | 41 +- trunk/arch/sh/include/asm/device.h | 10 - trunk/arch/sh/include/asm/hwblk.h | 70 - trunk/arch/sh/include/cpu-sh4/cpu/sh7722.h | 13 +- trunk/arch/sh/include/cpu-sh4/cpu/sh7723.h | 3 +- trunk/arch/sh/include/cpu-sh4/cpu/sh7724.h | 4 +- trunk/arch/sh/kernel/cpu/Makefile | 2 +- trunk/arch/sh/kernel/cpu/hwblk.c | 159 - trunk/arch/sh/kernel/cpu/sh4/sq.c | 8 +- trunk/arch/sh/kernel/cpu/sh4a/Makefile | 6 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7722.c | 77 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7723.c | 209 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7724.c | 201 +- trunk/arch/sh/kernel/cpu/sh4a/clock-sh7757.c | 2 +- trunk/arch/sh/kernel/cpu/sh4a/hwblk-sh7722.c | 106 - trunk/arch/sh/kernel/cpu/sh4a/hwblk-sh7723.c | 117 - trunk/arch/sh/kernel/cpu/sh4a/hwblk-sh7724.c | 121 - trunk/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 38 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7723.c | 39 - trunk/arch/sh/kernel/cpu/sh4a/setup-sh7724.c | 64 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7757.c | 7 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7780.c | 2 + trunk/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | 2 + trunk/arch/sh/kernel/cpu/sh4a/setup-sh7786.c | 2 +- trunk/arch/sh/kernel/cpu/shmobile/Makefile | 1 - trunk/arch/sh/kernel/cpu/shmobile/cpuidle.c | 3 +- .../arch/sh/kernel/cpu/shmobile/pm_runtime.c | 319 -- trunk/arch/sh/kernel/entry-common.S | 1 + trunk/arch/sh/kernel/process_32.c | 2 +- trunk/arch/sh/kernel/process_64.c | 2 +- trunk/arch/sh/kernel/signal_32.c | 4 - trunk/arch/sh/kernel/signal_64.c | 4 - trunk/arch/sh/kernel/time.c | 2 - trunk/arch/sh/mm/cache-sh2a.c | 123 +- trunk/arch/sparc/include/asm/pci_32.h | 5 - trunk/arch/sparc/include/asm/pci_64.h | 5 - trunk/arch/sparc/kernel/leon_pci.c | 25 +- trunk/arch/sparc/kernel/pci.c | 22 +- trunk/arch/tile/include/asm/pci.h | 7 - trunk/arch/tile/kernel/machine_kexec.c | 6 +- trunk/arch/tile/kernel/pci.c | 5 + trunk/arch/um/Kconfig.common | 1 + trunk/arch/unicore32/include/asm/pci.h | 5 - trunk/arch/unicore32/kernel/pci.c | 5 + trunk/arch/x86/Kconfig | 41 +- trunk/arch/x86/Kconfig.cpu | 6 - trunk/arch/x86/Kconfig.debug | 25 +- trunk/arch/x86/boot/compressed/Makefile | 10 +- trunk/arch/x86/boot/compressed/eboot.c | 1022 ++++++ trunk/arch/x86/boot/compressed/eboot.h | 61 + trunk/arch/x86/boot/compressed/efi_stub_32.S | 86 + trunk/arch/x86/boot/compressed/efi_stub_64.S | 1 + trunk/arch/x86/boot/compressed/head_32.S | 22 + trunk/arch/x86/boot/compressed/head_64.S | 20 + trunk/arch/x86/boot/compressed/string.c | 9 + trunk/arch/x86/boot/header.S | 158 + trunk/arch/x86/boot/string.c | 35 + trunk/arch/x86/boot/tools/build.c | 39 + trunk/arch/x86/crypto/Makefile | 4 + .../x86/crypto/serpent-sse2-i586-asm_32.S | 638 ++++ .../x86/crypto/serpent-sse2-x86_64-asm_64.S | 761 ++++ trunk/arch/x86/crypto/serpent_sse2_glue.c | 1070 ++++++ trunk/arch/x86/crypto/twofish_glue_3way.c | 218 ++ trunk/arch/x86/include/asm/amd_nb.h | 2 + trunk/arch/x86/include/asm/bootparam.h | 2 + trunk/arch/x86/include/asm/efi.h | 4 + trunk/arch/x86/include/asm/fixmap.h | 2 +- trunk/arch/x86/include/asm/init.h | 2 + trunk/arch/x86/include/asm/pci.h | 9 + trunk/arch/x86/include/asm/pci_x86.h | 2 - trunk/arch/x86/include/asm/serpent.h | 63 + trunk/arch/x86/include/asm/setup.h | 2 +- trunk/arch/x86/include/asm/smp.h | 6 + trunk/arch/x86/include/asm/thread_info.h | 4 +- trunk/arch/x86/include/asm/topology.h | 2 +- trunk/arch/x86/include/asm/x86_init.h | 1 + trunk/arch/x86/kernel/Makefile | 1 + trunk/arch/x86/kernel/amd_nb.c | 31 + trunk/arch/x86/kernel/asm-offsets.c | 2 + trunk/arch/x86/kernel/e820.c | 59 +- trunk/arch/x86/kernel/early_printk.c | 2 +- trunk/arch/x86/kernel/irq_32.c | 5 + trunk/arch/x86/kernel/irq_64.c | 35 +- trunk/arch/x86/kernel/nmi_selftest.c | 180 + trunk/arch/x86/kernel/setup.c | 7 +- trunk/arch/x86/kernel/smp.c | 72 +- trunk/arch/x86/kernel/smpboot.c | 17 +- trunk/arch/x86/kernel/tsc.c | 20 + trunk/arch/x86/kernel/x86_init.c | 1 + trunk/arch/x86/lguest/boot.c | 21 +- trunk/arch/x86/mm/init.c | 23 + trunk/arch/x86/mm/init_32.c | 29 +- trunk/arch/x86/mm/init_64.c | 11 +- trunk/arch/x86/mm/mmap.c | 4 +- trunk/arch/x86/mm/numa.c | 12 +- trunk/arch/x86/mm/pageattr.c | 6 - trunk/arch/x86/pci/Makefile | 5 +- trunk/arch/x86/pci/acpi.c | 75 +- trunk/arch/x86/pci/amd_bus.c | 43 +- trunk/arch/x86/pci/broadcom_bus.c | 62 +- trunk/arch/x86/pci/bus_numa.c | 31 +- trunk/arch/x86/pci/common.c | 19 +- trunk/arch/x86/pci/i386.c | 20 - trunk/arch/x86/pci/legacy.c | 3 - trunk/arch/x86/pci/numaq_32.c | 2 - trunk/arch/x86/platform/mrst/Makefile | 6 +- trunk/arch/x86/platform/mrst/mrst.c | 4 +- trunk/arch/x86/um/Kconfig | 8 - trunk/arch/xtensa/Kconfig | 1 + trunk/arch/xtensa/include/asm/pci.h | 5 - trunk/arch/xtensa/kernel/pci.c | 90 +- trunk/crypto/Kconfig | 52 +- trunk/crypto/Makefile | 2 +- trunk/crypto/algapi.c | 29 + trunk/crypto/ansi_cprng.c | 8 + trunk/crypto/crypto_user.c | 2 +- trunk/crypto/lrw.c | 156 +- trunk/crypto/serpent.c | 587 --- trunk/crypto/serpent_generic.c | 684 ++++ trunk/crypto/tcrypt.c | 310 ++ trunk/crypto/tcrypt.h | 2 + trunk/crypto/testmgr.c | 150 + trunk/crypto/testmgr.h | 3029 +++++++++++++++- trunk/crypto/twofish_common.c | 13 +- trunk/crypto/xts.c | 79 +- trunk/drivers/acpi/pci_irq.c | 10 +- trunk/drivers/base/Kconfig | 4 + trunk/drivers/base/base.h | 2 +- trunk/drivers/base/cpu.c | 30 +- trunk/drivers/base/memory.c | 17 +- trunk/drivers/block/rbd.c | 2 + trunk/drivers/block/virtio_blk.c | 87 +- trunk/drivers/char/hw_random/atmel-rng.c | 12 +- trunk/drivers/char/hw_random/n2-drv.c | 13 +- trunk/drivers/char/hw_random/octeon-rng.c | 13 +- trunk/drivers/char/hw_random/pasemi-rng.c | 12 +- trunk/drivers/char/hw_random/picoxcell-rng.c | 12 +- trunk/drivers/char/hw_random/ppc4xx-rng.c | 12 +- trunk/drivers/char/hw_random/timeriomem-rng.c | 13 +- trunk/drivers/char/hw_random/virtio-rng.c | 2 +- trunk/drivers/char/ramoops.c | 24 +- trunk/drivers/char/tpm/Kconfig | 2 + trunk/drivers/char/tpm/tpm.c | 137 +- trunk/drivers/char/tpm/tpm.h | 9 +- trunk/drivers/char/tpm/tpm_tis.c | 84 +- trunk/drivers/char/virtio_console.c | 140 +- trunk/drivers/cpufreq/Kconfig.arm | 15 +- trunk/drivers/cpufreq/Makefile | 2 + trunk/drivers/cpufreq/cpufreq.c | 3 +- trunk/drivers/cpufreq/cpufreq_ondemand.c | 3 +- trunk/drivers/cpufreq/cpufreq_userspace.c | 8 +- trunk/drivers/cpufreq/exynos-cpufreq.c | 290 ++ trunk/drivers/cpufreq/exynos4210-cpufreq.c | 643 +--- trunk/drivers/cpufreq/omap-cpufreq.c | 274 ++ trunk/drivers/cpufreq/powernow-k8.c | 47 +- trunk/drivers/cpufreq/s3c64xx-cpufreq.c | 35 +- trunk/drivers/crypto/amcc/crypto4xx_core.c | 13 +- trunk/drivers/crypto/caam/caamalg.c | 67 +- trunk/drivers/crypto/caam/compat.h | 1 + trunk/drivers/crypto/caam/ctrl.c | 26 +- trunk/drivers/crypto/caam/desc.h | 2265 ++++++------ trunk/drivers/crypto/caam/desc_constr.h | 7 +- trunk/drivers/crypto/caam/regs.h | 1 - trunk/drivers/crypto/mv_cesa.c | 12 +- trunk/drivers/crypto/picoxcell_crypto.c | 16 +- trunk/drivers/crypto/s5p-sss.c | 13 +- trunk/drivers/crypto/talitos.c | 493 ++- trunk/drivers/crypto/talitos.h | 45 +- trunk/drivers/firmware/Kconfig | 12 - trunk/drivers/firmware/Makefile | 1 - trunk/drivers/hid/hid-wacom.c | 16 +- trunk/drivers/hid/hid-wiimote-core.c | 10 +- trunk/drivers/input/keyboard/amikbd.c | 15 +- .../drivers/input/keyboard/davinci_keyscan.c | 13 +- .../input/keyboard/nomadik-ske-keypad.c | 13 +- trunk/drivers/input/misc/twl4030-pwrbutton.c | 15 +- trunk/drivers/input/mouse/amimouse.c | 16 +- trunk/drivers/input/mouse/bcm5974.c | 3 + trunk/drivers/input/serio/at32psif.c | 14 +- trunk/drivers/input/serio/serio_raw.c | 8 +- .../drivers/input/touchscreen/atmel-wm97xx.c | 13 +- trunk/drivers/input/touchscreen/mc13783_ts.c | 13 +- trunk/drivers/isdn/i4l/Kconfig | 2 +- trunk/drivers/lguest/Makefile | 2 +- trunk/drivers/lguest/lguest_device.c | 18 +- trunk/drivers/lguest/segments.c | 28 +- trunk/drivers/md/md.c | 6 + trunk/drivers/md/raid1.c | 11 +- trunk/drivers/mfd/Kconfig | 1 + trunk/drivers/mfd/Makefile | 2 +- trunk/drivers/mfd/max8925-core.c | 15 - trunk/drivers/mfd/wm8994-core.c | 158 +- trunk/drivers/mfd/wm8994-irq.c | 206 +- trunk/drivers/mfd/wm8994-regmap.c | 1238 +++++++ trunk/drivers/mfd/wm8994.h | 25 + trunk/drivers/mtd/mtdoops.c | 3 +- trunk/drivers/mtd/ubi/debug.h | 5 +- trunk/drivers/mtd/ubi/vtbl.c | 2 +- trunk/drivers/net/bonding/bond_alb.c | 112 +- trunk/drivers/net/ethernet/8390/ax88796.c | 3 +- trunk/drivers/net/ethernet/adi/bfin_mac.c | 3 +- trunk/drivers/net/ethernet/amd/au1000_eth.c | 3 +- .../net/ethernet/broadcom/bcm63xx_enet.c | 2 +- .../net/ethernet/broadcom/sb1250-mac.c | 3 +- trunk/drivers/net/ethernet/cadence/macb.c | 3 +- trunk/drivers/net/ethernet/dnet.c | 3 +- trunk/drivers/net/ethernet/freescale/fec.c | 12 +- trunk/drivers/net/ethernet/freescale/fec.h | 4 + .../drivers/net/ethernet/freescale/gianfar.c | 34 +- .../drivers/net/ethernet/freescale/gianfar.h | 3 + trunk/drivers/net/ethernet/lantiq_etop.c | 5 +- .../net/ethernet/marvell/mv643xx_eth.c | 3 +- .../drivers/net/ethernet/marvell/pxa168_eth.c | 3 +- trunk/drivers/net/ethernet/micrel/ksz884x.c | 2 +- trunk/drivers/net/ethernet/renesas/sh_eth.c | 3 +- trunk/drivers/net/ethernet/s6gmac.c | 2 +- trunk/drivers/net/ethernet/smsc/smsc911x.c | 3 +- .../net/ethernet/stmicro/stmmac/mmc_core.c | 1 + .../net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +- .../net/ethernet/stmicro/stmmac/stmmac_mdio.c | 3 +- .../ethernet/stmicro/stmmac/stmmac_platform.c | 2 +- trunk/drivers/net/ethernet/ti/cpmac.c | 2 +- trunk/drivers/net/ethernet/ti/davinci_mdio.c | 3 +- .../drivers/net/ethernet/tundra/tsi108_eth.c | 6 +- trunk/drivers/net/ethernet/via/via-rhine.c | 668 ++-- .../drivers/net/ethernet/xscale/ixp4xx_eth.c | 2 +- trunk/drivers/net/phy/dp83640.c | 2 +- trunk/drivers/net/phy/fixed.c | 2 +- trunk/drivers/net/phy/mdio-gpio.c | 2 +- trunk/drivers/net/phy/mdio-octeon.c | 3 +- trunk/drivers/net/phy/mdio_bus.c | 24 +- trunk/drivers/net/ppp/pptp.c | 4 +- trunk/drivers/net/usb/asix.c | 15 + trunk/drivers/net/virtio_net.c | 125 +- .../net/wireless/ath/ath9k/ar9003_phy.c | 2 +- trunk/drivers/net/wireless/ath/ath9k/ath9k.h | 1 - trunk/drivers/net/wireless/ath/ath9k/calib.c | 1 + trunk/drivers/net/wireless/ath/ath9k/calib.h | 1 - trunk/drivers/net/wireless/ath/ath9k/main.c | 8 +- .../wireless/brcm80211/brcmfmac/dhd_sdio.c | 4 +- .../net/wireless/brcm80211/brcmsmac/srom.c | 31 +- .../net/wireless/rtlwifi/rtl8192se/fw.c | 4 + trunk/drivers/parisc/dino.c | 47 +- trunk/drivers/parisc/lba_pci.c | 72 +- trunk/drivers/parport/parport_pc.c | 4 +- trunk/drivers/pci/access.c | 76 +- trunk/drivers/pci/ats.c | 17 + trunk/drivers/pci/bus.c | 32 +- trunk/drivers/pci/iov.c | 16 +- trunk/drivers/pci/msi.c | 43 +- trunk/drivers/pci/pci-driver.c | 3 +- trunk/drivers/pci/pci.c | 153 +- trunk/drivers/pci/pci.h | 10 + trunk/drivers/pci/pcie/Kconfig | 2 +- trunk/drivers/pci/probe.c | 68 +- trunk/drivers/pci/remove.c | 10 +- trunk/drivers/pci/setup-res.c | 6 +- trunk/drivers/platform/x86/Kconfig | 2 +- trunk/drivers/pnp/quirks.c | 42 + trunk/drivers/power/Kconfig | 32 +- trunk/drivers/power/Makefile | 5 +- trunk/drivers/power/bq27x00_battery.c | 210 +- trunk/drivers/power/charger-manager.c | 1072 ++++++ trunk/drivers/power/collie_battery.c | 55 +- trunk/drivers/power/da9030_battery.c | 13 +- trunk/drivers/power/da9052-battery.c | 664 ++++ trunk/drivers/power/ds2760_battery.c | 19 +- trunk/drivers/power/ds2780_battery.c | 18 +- trunk/drivers/power/gpio-charger.c | 12 +- trunk/drivers/power/intel_mid_battery.c | 13 +- trunk/drivers/power/isp1704_charger.c | 14 +- trunk/drivers/power/jz4740-battery.c | 14 +- trunk/drivers/power/lp8727_charger.c | 494 +++ trunk/drivers/power/max17042_battery.c | 94 +- trunk/drivers/power/max8903_charger.c | 14 +- trunk/drivers/power/max8925_power.c | 75 +- trunk/drivers/power/max8997_charger.c | 4 +- trunk/drivers/power/max8998_charger.c | 14 +- trunk/drivers/power/olpc_battery.c | 75 +- trunk/drivers/power/pcf50633-charger.c | 12 +- trunk/drivers/power/pda_power.c | 89 +- trunk/drivers/power/power_supply_core.c | 19 +- trunk/drivers/power/power_supply_sysfs.c | 12 +- trunk/drivers/power/s3c_adc_battery.c | 37 +- .../power/{bq20z75.c => sbs-battery.c} | 481 +-- trunk/drivers/power/tosa_battery.c | 79 +- trunk/drivers/power/wm831x_backup.c | 12 +- trunk/drivers/power/wm831x_power.c | 56 +- trunk/drivers/power/wm8350_power.c | 12 +- trunk/drivers/power/wm97xx_battery.c | 20 +- trunk/drivers/power/z2_battery.c | 4 +- trunk/drivers/rtc/Kconfig | 6 +- trunk/drivers/s390/kvm/kvm_virtio.c | 2 +- trunk/drivers/scsi/ipr.c | 67 +- trunk/drivers/scsi/ipr.h | 1 + trunk/drivers/sh/Makefile | 9 +- trunk/drivers/sh/clk/core.c | 9 +- trunk/drivers/sh/clk/cpg.c | 79 +- trunk/drivers/sh/pfc.c | 273 +- trunk/drivers/tty/serial/sh-sci.c | 183 +- trunk/drivers/tty/serial/sh-sci.h | 4 +- trunk/drivers/uio/uio_pci_generic.c | 78 +- trunk/drivers/video/nvidia/nvidia.c | 6 +- trunk/drivers/virtio/virtio_balloon.c | 108 +- trunk/drivers/virtio/virtio_mmio.c | 4 +- trunk/drivers/virtio/virtio_pci.c | 110 +- trunk/drivers/virtio/virtio_ring.c | 245 +- trunk/fs/autofs4/autofs_i.h | 1 + trunk/fs/autofs4/inode.c | 1 + trunk/fs/autofs4/waitq.c | 40 +- trunk/fs/block_dev.c | 13 +- trunk/fs/btrfs/disk-io.c | 5 +- trunk/fs/ceph/dir.c | 76 +- trunk/fs/ceph/export.c | 6 +- trunk/fs/ceph/inode.c | 3 +- trunk/fs/ceph/mds_client.c | 4 +- trunk/fs/ceph/super.c | 16 +- trunk/fs/ceph/super.h | 1 + trunk/fs/ceph/xattr.c | 22 + trunk/fs/coda/cnode.c | 38 +- trunk/fs/coda/coda_fs_i.h | 4 +- trunk/fs/coda/dir.c | 29 +- trunk/fs/coda/inode.c | 10 +- trunk/fs/dcache.c | 26 +- trunk/fs/direct-io.c | 57 +- trunk/fs/eventpoll.c | 234 +- trunk/fs/fuse/dev.c | 57 +- trunk/fs/fuse/dir.c | 58 +- trunk/fs/fuse/file.c | 58 +- trunk/fs/fuse/fuse_i.h | 10 +- trunk/fs/hfsplus/super.c | 11 +- trunk/fs/hugetlbfs/inode.c | 3 +- trunk/fs/nfs/internal.h | 2 +- trunk/fs/nfs/write.c | 4 +- trunk/fs/pipe.c | 2 +- trunk/fs/proc/array.c | 7 +- trunk/fs/proc/base.c | 2 + trunk/fs/ubifs/debug.c | 90 +- trunk/fs/ubifs/debug.h | 44 +- trunk/fs/ubifs/journal.c | 7 +- trunk/fs/ubifs/replay.c | 8 +- trunk/fs/ubifs/tnc.c | 55 +- trunk/fs/ubifs/tnc_misc.c | 10 +- trunk/include/asm-generic/tlb.h | 14 + trunk/include/crypto/algapi.h | 1 + trunk/include/crypto/lrw.h | 43 + trunk/include/crypto/serpent.h | 27 + trunk/include/crypto/twofish.h | 2 + trunk/include/crypto/xts.h | 27 + trunk/include/linux/crash_dump.h | 1 + trunk/include/linux/dcache.h | 2 + trunk/include/linux/digsig.h | 64 + trunk/include/linux/efi.h | 136 +- trunk/include/linux/eventpoll.h | 1 + trunk/include/linux/fs.h | 14 +- trunk/include/linux/fuse.h | 16 +- trunk/include/linux/huge_mm.h | 2 +- trunk/include/linux/inet_diag.h | 14 +- trunk/include/linux/kernel.h | 14 +- trunk/include/linux/key-type.h | 1 + trunk/include/linux/kmsg_dump.h | 1 - trunk/include/linux/linkage.h | 4 - trunk/include/linux/lp8727.h | 51 + trunk/include/linux/memcontrol.h | 105 +- trunk/include/linux/mfd/max8925.h | 7 +- trunk/include/linux/mfd/wm8994/core.h | 7 +- trunk/include/linux/mfd/wm8994/pdata.h | 31 +- trunk/include/linux/mfd/wm8994/registers.h | 112 + trunk/include/linux/migrate.h | 23 +- trunk/include/linux/mm.h | 10 - trunk/include/linux/mm_inline.h | 44 +- trunk/include/linux/mm_types.h | 9 +- trunk/include/linux/mmzone.h | 28 +- trunk/include/linux/mpi.h | 146 + trunk/include/linux/oom.h | 2 +- trunk/include/linux/page_cgroup.h | 46 +- trunk/include/linux/pagevec.h | 12 +- trunk/include/linux/pci.h | 50 +- trunk/include/linux/pci_ids.h | 23 + trunk/include/linux/pci_regs.h | 2 +- trunk/include/linux/pda_power.h | 2 + trunk/include/linux/phy.h | 7 +- trunk/include/linux/pkt_sched.h | 20 + trunk/include/linux/power/charger-manager.h | 147 + .../linux/power/{bq20z75.h => sbs-battery.h} | 10 +- trunk/include/linux/power_supply.h | 11 +- trunk/include/linux/prctl.h | 12 + trunk/include/linux/radix-tree.h | 3 - trunk/include/linux/rmap.h | 4 +- trunk/include/linux/s3c_adc_battery.h | 4 + trunk/include/linux/sched.h | 2 +- trunk/include/linux/security.h | 4 +- trunk/include/linux/serial_sci.h | 22 + trunk/include/linux/sh_clk.h | 10 +- trunk/include/linux/sh_pfc.h | 22 +- trunk/include/linux/sigma.h | 55 - trunk/include/linux/virtio.h | 75 +- trunk/include/linux/virtio_ring.h | 1 + trunk/include/net/bluetooth/hci_core.h | 4 +- trunk/include/net/red.h | 3 +- trunk/include/sound/Kbuild | 2 + trunk/include/sound/compress_driver.h | 167 + trunk/include/sound/compress_offload.h | 161 + trunk/include/sound/compress_params.h | 397 +++ trunk/include/sound/control.h | 8 + trunk/include/sound/core.h | 1 + trunk/include/sound/minors.h | 4 +- trunk/include/sound/sh_fsi.h | 12 + trunk/include/sound/soc-dapm.h | 5 + trunk/include/sound/soc.h | 27 +- trunk/include/sound/sta32x.h | 35 + trunk/include/sound/wm8903.h | 7 +- trunk/include/trace/events/vmscan.h | 22 +- trunk/init/Kconfig | 12 +- trunk/init/calibrate.c | 15 + trunk/init/main.c | 5 - trunk/kernel/exit.c | 6 +- trunk/kernel/kexec.c | 25 +- trunk/kernel/kprobes.c | 2 +- trunk/kernel/panic.c | 26 +- trunk/kernel/pid.c | 4 +- trunk/kernel/pid_namespace.c | 31 + trunk/kernel/sched/core.c | 7 - trunk/kernel/sched/fair.c | 10 +- trunk/kernel/sys.c | 121 + trunk/kernel/sysctl.c | 9 + trunk/lib/Kconfig | 25 + trunk/lib/Makefile | 3 + trunk/lib/decompress_unlzo.c | 2 +- trunk/lib/devres.c | 6 +- trunk/lib/digsig.c | 284 ++ trunk/lib/mpi/Makefile | 32 + trunk/lib/mpi/generic_mpi-asm-defs.h | 4 + trunk/lib/mpi/generic_mpih-add1.c | 61 + trunk/lib/mpi/generic_mpih-lshift.c | 63 + trunk/lib/mpi/generic_mpih-mul1.c | 57 + trunk/lib/mpi/generic_mpih-mul2.c | 60 + trunk/lib/mpi/generic_mpih-mul3.c | 61 + trunk/lib/mpi/generic_mpih-rshift.c | 63 + trunk/lib/mpi/generic_mpih-sub1.c | 60 + trunk/lib/mpi/longlong.h | 1478 ++++++++ trunk/lib/mpi/mpi-add.c | 234 ++ trunk/lib/mpi/mpi-bit.c | 236 ++ trunk/lib/mpi/mpi-cmp.c | 68 + trunk/lib/mpi/mpi-div.c | 333 ++ trunk/lib/mpi/mpi-gcd.c | 59 + trunk/lib/mpi/mpi-inline.c | 31 + trunk/lib/mpi/mpi-inline.h | 122 + trunk/lib/mpi/mpi-internal.h | 261 ++ trunk/lib/mpi/mpi-inv.c | 187 + trunk/lib/mpi/mpi-mpow.c | 134 + trunk/lib/mpi/mpi-mul.c | 194 + trunk/lib/mpi/mpi-pow.c | 323 ++ trunk/lib/mpi/mpi-scan.c | 136 + trunk/lib/mpi/mpicoder.c | 365 ++ trunk/lib/mpi/mpih-cmp.c | 56 + trunk/lib/mpi/mpih-div.c | 541 +++ trunk/lib/mpi/mpih-mul.c | 527 +++ trunk/lib/mpi/mpiutil.c | 208 ++ trunk/lib/radix-tree.c | 154 +- trunk/mm/compaction.c | 5 +- trunk/mm/debug-pagealloc.c | 3 - trunk/mm/filemap.c | 18 +- trunk/mm/huge_memory.c | 93 +- trunk/mm/ksm.c | 11 + trunk/mm/memcontrol.c | 1102 +++--- trunk/mm/memory-failure.c | 2 +- trunk/mm/memory.c | 4 +- trunk/mm/memory_hotplug.c | 2 +- trunk/mm/mempolicy.c | 2 +- trunk/mm/migrate.c | 173 +- trunk/mm/oom_kill.c | 42 +- trunk/mm/page_alloc.c | 55 +- trunk/mm/page_cgroup.c | 164 +- trunk/mm/rmap.c | 20 +- trunk/mm/slab.c | 39 +- trunk/mm/slub.c | 86 +- trunk/mm/swap.c | 79 +- trunk/mm/swap_state.c | 10 + trunk/mm/swapfile.c | 9 +- trunk/mm/vmalloc.c | 9 +- trunk/mm/vmscan.c | 680 ++-- trunk/mm/vmstat.c | 2 +- trunk/net/9p/trans_virtio.c | 6 +- trunk/net/bluetooth/af_bluetooth.c | 8 +- trunk/net/bluetooth/hci_event.c | 22 +- trunk/net/bluetooth/hci_sock.c | 2 - trunk/net/bluetooth/l2cap_core.c | 26 +- trunk/net/bluetooth/l2cap_sock.c | 2 + trunk/net/bluetooth/mgmt.c | 4 +- trunk/net/bluetooth/rfcomm/sock.c | 12 +- trunk/net/bluetooth/rfcomm/tty.c | 22 +- trunk/net/bluetooth/sco.c | 8 +- trunk/net/ceph/crush/mapper.c | 11 +- trunk/net/ceph/crypto.c | 3 +- trunk/net/ceph/osd_client.c | 21 +- trunk/net/core/net-sysfs.c | 6 +- trunk/net/core/netpoll.c | 2 +- trunk/net/dccp/diag.c | 4 +- trunk/net/decnet/dn_dev.c | 4 +- trunk/net/ipv4/devinet.c | 2 +- trunk/net/ipv4/fib_trie.c | 10 +- trunk/net/ipv4/igmp.c | 8 +- trunk/net/ipv4/inet_diag.c | 42 +- trunk/net/ipv4/ipip.c | 8 +- trunk/net/ipv4/ipmr.c | 2 +- trunk/net/ipv4/tcp_diag.c | 4 +- trunk/net/ipv4/tcp_memcontrol.c | 2 +- trunk/net/ipv4/udp_diag.c | 14 +- trunk/net/ipv6/addrconf.c | 2 +- trunk/net/ipv6/ip6_tunnel.c | 8 +- trunk/net/ipv6/raw.c | 2 +- trunk/net/ipv6/sit.c | 10 +- trunk/net/mac80211/agg-rx.c | 2 +- trunk/net/mac80211/cfg.c | 4 +- trunk/net/mac80211/ibss.c | 2 +- trunk/net/mac80211/sta_info.c | 6 +- trunk/net/mac80211/wpa.c | 2 +- trunk/net/netfilter/nf_conntrack_core.c | 2 +- trunk/net/netfilter/nf_conntrack_ecache.c | 4 +- trunk/net/netfilter/nf_conntrack_extend.c | 2 +- trunk/net/netfilter/nf_conntrack_helper.c | 2 +- trunk/net/netfilter/nf_conntrack_netlink.c | 2 +- trunk/net/netfilter/nf_log.c | 6 +- trunk/net/netfilter/nf_queue.c | 2 +- trunk/net/netfilter/nfnetlink.c | 4 +- trunk/net/netlabel/netlabel_domainhash.c | 4 +- trunk/net/netlabel/netlabel_unlabeled.c | 6 +- trunk/net/phonet/af_phonet.c | 2 +- trunk/net/phonet/pn_dev.c | 2 +- trunk/net/phonet/socket.c | 2 +- trunk/net/rds/iw_rdma.c | 15 +- trunk/net/sched/sch_sfq.c | 146 +- trunk/net/socket.c | 2 +- trunk/net/sunrpc/auth_gss/auth_gss.c | 2 +- trunk/net/wireless/nl80211.c | 34 +- trunk/net/xfrm/xfrm_user.c | 2 +- trunk/security/apparmor/audit.c | 2 +- trunk/security/apparmor/lsm.c | 6 +- trunk/security/inode.c | 191 +- trunk/security/integrity/Kconfig | 14 + trunk/security/integrity/Makefile | 1 + trunk/security/integrity/digsig.c | 48 + trunk/security/integrity/evm/evm.h | 12 + trunk/security/integrity/evm/evm_crypto.c | 76 +- trunk/security/integrity/evm/evm_main.c | 94 +- trunk/security/integrity/ima/ima_api.c | 4 +- trunk/security/integrity/ima/ima_queue.c | 17 +- trunk/security/integrity/integrity.h | 21 + trunk/security/keys/key.c | 3 + trunk/security/selinux/selinuxfs.c | 14 +- trunk/security/selinux/ss/conditional.c | 2 +- trunk/security/tomoyo/.gitignore | 2 + trunk/security/tomoyo/common.h | 2 +- trunk/sound/arm/pxa2xx-ac97.c | 13 +- trunk/sound/core/Kconfig | 13 + trunk/sound/core/Makefile | 5 + trunk/sound/core/compress_offload.c | 765 ++++ trunk/sound/core/ctljack.c | 56 + trunk/sound/core/oss/pcm_oss.c | 2 +- trunk/sound/core/seq/seq_dummy.c | 2 +- trunk/sound/core/sound.c | 1 + trunk/sound/drivers/aloop.c | 2 +- trunk/sound/drivers/dummy.c | 6 +- trunk/sound/drivers/ml403-ac97cr.c | 15 +- trunk/sound/drivers/mpu401/mpu401.c | 6 +- trunk/sound/drivers/mts64.c | 2 +- trunk/sound/drivers/opl3/opl3_midi.c | 2 +- trunk/sound/drivers/opl3/opl3_seq.c | 2 +- trunk/sound/drivers/pcsp/pcsp.c | 4 +- trunk/sound/drivers/pcsp/pcsp_lib.c | 2 +- trunk/sound/drivers/portman2x4.c | 2 +- trunk/sound/drivers/serial-u16550.c | 4 +- trunk/sound/drivers/virmidi.c | 2 +- trunk/sound/isa/ad1816a/ad1816a.c | 2 +- trunk/sound/isa/ad1848/ad1848.c | 4 +- trunk/sound/isa/adlib.c | 2 +- trunk/sound/isa/als100.c | 2 +- trunk/sound/isa/azt2320.c | 2 +- trunk/sound/isa/cmi8330.c | 4 +- trunk/sound/isa/cs423x/cs4231.c | 2 +- trunk/sound/isa/cs423x/cs4236.c | 4 +- trunk/sound/isa/es1688/es1688.c | 4 +- trunk/sound/isa/es18xx.c | 4 +- trunk/sound/isa/galaxy/galaxy.c | 2 +- trunk/sound/isa/gus/gusclassic.c | 2 +- trunk/sound/isa/gus/gusextreme.c | 2 +- trunk/sound/isa/gus/gusmax.c | 2 +- trunk/sound/isa/gus/interwave.c | 4 +- trunk/sound/isa/msnd/msnd_pinnacle.c | 2 +- trunk/sound/isa/opl3sa2.c | 4 +- trunk/sound/isa/opti9xx/miro.c | 2 +- trunk/sound/isa/opti9xx/opti92x-ad1848.c | 2 +- trunk/sound/isa/sb/jazz16.c | 2 +- trunk/sound/isa/sb/sb16.c | 4 +- trunk/sound/isa/sb/sb8.c | 2 +- trunk/sound/isa/sc6000.c | 2 +- trunk/sound/isa/wavefront/wavefront.c | 6 +- trunk/sound/mips/hal2.c | 13 +- trunk/sound/mips/sgio2audio.c | 13 +- trunk/sound/oss/ad1848.c | 8 +- trunk/sound/oss/msnd_pinnacle.c | 2 +- trunk/sound/oss/pas2_card.c | 12 +- trunk/sound/oss/pss.c | 10 +- trunk/sound/oss/trix.c | 2 +- trunk/sound/pci/ac97/ac97_codec.c | 2 +- trunk/sound/pci/ad1889.c | 2 +- trunk/sound/pci/ali5451/ali5451.c | 4 +- trunk/sound/pci/als300.c | 9 +- trunk/sound/pci/als4000.c | 2 +- trunk/sound/pci/asihpi/asihpi.c | 294 +- trunk/sound/pci/asihpi/hpi.h | 74 +- trunk/sound/pci/asihpi/hpi6000.c | 61 +- trunk/sound/pci/asihpi/hpi6000.h | 2 +- trunk/sound/pci/asihpi/hpi6205.c | 57 +- trunk/sound/pci/asihpi/hpi_internal.h | 115 +- trunk/sound/pci/asihpi/hpi_version.h | 32 + trunk/sound/pci/asihpi/hpicmn.c | 32 +- trunk/sound/pci/asihpi/hpicmn.h | 13 +- trunk/sound/pci/asihpi/hpidebug.c | 2 +- trunk/sound/pci/asihpi/hpidebug.h | 2 +- trunk/sound/pci/asihpi/hpidspcd.c | 30 +- trunk/sound/pci/asihpi/hpidspcd.h | 4 - trunk/sound/pci/asihpi/hpifunc.c | 10 + trunk/sound/pci/asihpi/hpimsginit.c | 2 +- trunk/sound/pci/asihpi/hpimsginit.h | 2 +- trunk/sound/pci/asihpi/hpimsgx.c | 3 +- trunk/sound/pci/asihpi/hpimsgx.h | 2 +- trunk/sound/pci/asihpi/hpioctl.c | 63 +- trunk/sound/pci/asihpi/hpioctl.h | 2 +- trunk/sound/pci/asihpi/hpios.c | 2 +- trunk/sound/pci/asihpi/hpios.h | 16 +- trunk/sound/pci/asihpi/hpipcida.h | 2 +- trunk/sound/pci/atiixp.c | 4 +- trunk/sound/pci/atiixp_modem.c | 2 +- trunk/sound/pci/au88x0/au88x0.c | 2 +- trunk/sound/pci/au88x0/au88x0_core.c | 10 +- trunk/sound/pci/au88x0/au88x0_pcm.c | 7 +- trunk/sound/pci/au88x0/au88x0_xtalk.c | 151 +- trunk/sound/pci/aw2/aw2-alsa.c | 2 +- trunk/sound/pci/azt3328.c | 2 +- trunk/sound/pci/bt87x.c | 4 +- trunk/sound/pci/ca0106/ca0106_main.c | 2 +- trunk/sound/pci/cmipci.c | 4 +- trunk/sound/pci/cs4281.c | 4 +- trunk/sound/pci/cs46xx/cs46xx.c | 8 +- trunk/sound/pci/cs5530.c | 9 +- trunk/sound/pci/cs5535audio/cs5535audio.c | 2 +- trunk/sound/pci/ctxfi/ctsrc.c | 2 +- trunk/sound/pci/ctxfi/cttimer.c | 4 +- trunk/sound/pci/ctxfi/xfi.c | 2 +- trunk/sound/pci/echoaudio/echoaudio.c | 2 +- trunk/sound/pci/emu10k1/emu10k1.c | 4 +- trunk/sound/pci/emu10k1/emu10k1_main.c | 12 + trunk/sound/pci/emu10k1/emu10k1x.c | 2 +- trunk/sound/pci/ens1370.c | 4 +- trunk/sound/pci/es1938.c | 2 +- trunk/sound/pci/es1968.c | 4 +- trunk/sound/pci/fm801.c | 2 +- trunk/sound/pci/hda/Kconfig | 1 + trunk/sound/pci/hda/Makefile | 2 +- trunk/sound/pci/hda/alc262_quirks.c | 875 ----- trunk/sound/pci/hda/alc880_quirks.c | 193 - trunk/sound/pci/hda/alc882_quirks.c | 2933 +-------------- trunk/sound/pci/hda/hda_codec.c | 302 +- trunk/sound/pci/hda/hda_codec.h | 6 +- trunk/sound/pci/hda/hda_intel.c | 112 +- trunk/sound/pci/hda/hda_jack.c | 353 ++ trunk/sound/pci/hda/hda_jack.h | 86 + trunk/sound/pci/hda/hda_local.h | 51 +- trunk/sound/pci/hda/hda_proc.c | 2 + trunk/sound/pci/hda/patch_analog.c | 1 + trunk/sound/pci/hda/patch_ca0110.c | 6 +- trunk/sound/pci/hda/patch_cirrus.c | 187 +- trunk/sound/pci/hda/patch_conexant.c | 79 +- trunk/sound/pci/hda/patch_hdmi.c | 59 +- trunk/sound/pci/hda/patch_realtek.c | 693 +++- trunk/sound/pci/hda/patch_sigmatel.c | 248 +- trunk/sound/pci/hda/patch_via.c | 30 +- trunk/sound/pci/ice1712/amp.c | 7 +- trunk/sound/pci/ice1712/envy24ht.h | 1 + trunk/sound/pci/ice1712/ice1712.c | 4 +- trunk/sound/pci/ice1712/ice1724.c | 65 +- trunk/sound/pci/intel8x0.c | 6 +- trunk/sound/pci/intel8x0m.c | 2 +- trunk/sound/pci/korg1212/korg1212.c | 2 +- trunk/sound/pci/lola/lola.c | 2 +- trunk/sound/pci/lx6464es/lx6464es.c | 2 +- trunk/sound/pci/maestro3.c | 4 +- trunk/sound/pci/mixart/mixart.c | 2 +- trunk/sound/pci/nm256/nm256.c | 12 +- trunk/sound/pci/oxygen/oxygen.c | 2 +- trunk/sound/pci/oxygen/virtuoso.c | 2 +- trunk/sound/pci/oxygen/xonar_cs43xx.c | 1 + trunk/sound/pci/oxygen/xonar_dg.c | 3 +- trunk/sound/pci/oxygen/xonar_wm87x6.c | 6 +- trunk/sound/pci/pcxhr/pcxhr.c | 4 +- trunk/sound/pci/riptide/riptide.c | 2 +- trunk/sound/pci/rme32.c | 4 +- trunk/sound/pci/rme96.c | 2 +- trunk/sound/pci/rme9652/hdsp.c | 5 +- trunk/sound/pci/rme9652/hdspm.c | 32 +- trunk/sound/pci/rme9652/rme9652.c | 4 +- trunk/sound/pci/sis7019.c | 31 +- trunk/sound/pci/sonicvibes.c | 6 +- trunk/sound/pci/trident/trident.c | 2 +- trunk/sound/pci/via82xx.c | 4 +- trunk/sound/pci/via82xx_modem.c | 2 +- trunk/sound/pci/vx222/vx222.c | 4 +- trunk/sound/pci/ymfpci/ymfpci.c | 4 +- trunk/sound/pcmcia/pdaudiocf/pdaudiocf.c | 2 +- trunk/sound/pcmcia/vx/vxpocket.c | 2 +- trunk/sound/ppc/powermac.c | 2 +- trunk/sound/sh/aica.c | 2 +- trunk/sound/sh/sh_dac_audio.c | 13 +- trunk/sound/soc/Kconfig | 15 - trunk/sound/soc/atmel/Kconfig | 2 +- trunk/sound/soc/atmel/atmel-pcm.c | 17 +- trunk/sound/soc/atmel/atmel_ssc_dai.c | 14 +- trunk/sound/soc/atmel/sam9g20_wm8731.c | 1 + trunk/sound/soc/atmel/snd-soc-afeb9260.c | 1 + trunk/sound/soc/au1x/ac97c.c | 42 +- trunk/sound/soc/au1x/db1000.c | 14 +- trunk/sound/soc/au1x/db1200.c | 15 +- trunk/sound/soc/au1x/dbdma2.c | 29 +- trunk/sound/soc/au1x/dma.c | 27 +- trunk/sound/soc/au1x/i2sc.c | 58 +- trunk/sound/soc/au1x/psc-ac97.c | 43 +- trunk/sound/soc/au1x/psc-i2s.c | 57 +- trunk/sound/soc/blackfin/bf5xx-ac97-pcm.c | 17 +- trunk/sound/soc/blackfin/bf5xx-ac97.c | 13 +- trunk/sound/soc/blackfin/bf5xx-ad1836.c | 1 + trunk/sound/soc/blackfin/bf5xx-ad193x.c | 1 + trunk/sound/soc/blackfin/bf5xx-ad1980.c | 1 + trunk/sound/soc/blackfin/bf5xx-ad73311.c | 1 + trunk/sound/soc/blackfin/bf5xx-i2s-pcm.c | 17 +- trunk/sound/soc/blackfin/bf5xx-i2s.c | 15 +- trunk/sound/soc/blackfin/bf5xx-ssm2602.c | 1 + trunk/sound/soc/blackfin/bf5xx-tdm-pcm.c | 17 +- trunk/sound/soc/blackfin/bf5xx-tdm.c | 14 +- trunk/sound/soc/blackfin/bfin-eval-adau1373.c | 13 +- trunk/sound/soc/blackfin/bfin-eval-adau1701.c | 13 +- trunk/sound/soc/blackfin/bfin-eval-adav80x.c | 13 +- trunk/sound/soc/codecs/88pm860x-codec.c | 38 +- trunk/sound/soc/codecs/Kconfig | 25 +- trunk/sound/soc/codecs/Makefile | 22 +- trunk/sound/soc/codecs/ac97.c | 16 +- trunk/sound/soc/codecs/ad1836.c | 11 +- trunk/sound/soc/codecs/ad193x.c | 209 +- trunk/sound/soc/codecs/ad193x.h | 17 +- trunk/sound/soc/codecs/ad1980.c | 12 +- trunk/sound/soc/codecs/ad73311.c | 12 +- trunk/sound/soc/codecs/adau1373.c | 8 +- trunk/sound/soc/codecs/adau1701.c | 8 +- trunk/sound/soc/codecs/adav80x.c | 2 +- trunk/sound/soc/codecs/ads117x.c | 12 +- trunk/sound/soc/codecs/ak4104.c | 8 +- trunk/sound/soc/codecs/ak4535.c | 11 +- trunk/sound/soc/codecs/ak4641.c | 21 +- trunk/sound/soc/codecs/ak4642.c | 148 +- trunk/sound/soc/codecs/ak4671.c | 8 +- trunk/sound/soc/codecs/alc5623.c | 28 +- trunk/sound/soc/codecs/alc5632.c | 1159 ++++++ trunk/sound/soc/codecs/alc5632.h | 251 ++ trunk/sound/soc/codecs/cq93vc.c | 14 +- trunk/sound/soc/codecs/cs4270.c | 11 +- trunk/sound/soc/codecs/cs4271.c | 4 +- trunk/sound/soc/codecs/cs42l51.c | 41 +- trunk/sound/soc/codecs/cs42l73.c | 1453 ++++++++ trunk/sound/soc/codecs/cs42l73.h | 227 ++ trunk/sound/soc/codecs/cx20442.c | 60 +- trunk/sound/soc/codecs/da7210.c | 91 +- trunk/sound/soc/codecs/dfbmcs320.c | 12 +- trunk/sound/soc/codecs/dmic.c | 12 +- trunk/sound/soc/codecs/jz4740.c | 28 +- trunk/sound/soc/codecs/lm4857.c | 13 +- trunk/sound/soc/codecs/max98088.c | 13 +- trunk/sound/soc/codecs/max98095.c | 16 +- trunk/sound/soc/codecs/max9850.c | 27 +- trunk/sound/soc/codecs/pcm3008.c | 14 +- trunk/sound/soc/codecs/rt5631.c | 12 +- trunk/sound/soc/codecs/sgtl5000.c | 21 +- .../sigma.c => sound/soc/codecs/sigmadsp.c} | 121 +- trunk/sound/soc/codecs/sigmadsp.h | 21 + trunk/sound/soc/codecs/sn95031.c | 22 +- trunk/sound/soc/codecs/spdif_transciever.c | 13 +- trunk/sound/soc/codecs/ssm2602.c | 17 +- trunk/sound/soc/codecs/sta32x.c | 103 +- trunk/sound/soc/codecs/stac9766.c | 21 +- trunk/sound/soc/codecs/tlv320aic23.c | 11 +- trunk/sound/soc/codecs/tlv320aic26.c | 10 +- trunk/sound/soc/codecs/tlv320aic32x4.c | 11 +- trunk/sound/soc/codecs/tlv320aic3x.c | 57 +- trunk/sound/soc/codecs/tlv320dac33.c | 11 +- trunk/sound/soc/codecs/tpa6130a2.c | 5 +- trunk/sound/soc/codecs/twl4030.c | 18 +- trunk/sound/soc/codecs/twl6040.c | 39 +- trunk/sound/soc/codecs/twl6040.h | 1 + trunk/sound/soc/codecs/uda134x.c | 17 +- trunk/sound/soc/codecs/uda1380.c | 66 +- trunk/sound/soc/codecs/wl1273.c | 14 +- trunk/sound/soc/codecs/wm1250-ev1.c | 10 +- trunk/sound/soc/codecs/wm2000.c | 227 +- trunk/sound/soc/codecs/wm2000.h | 7 - trunk/sound/soc/codecs/wm5100-tables.c | 1489 ++++---- trunk/sound/soc/codecs/wm5100.c | 415 ++- trunk/sound/soc/codecs/wm5100.h | 7 +- trunk/sound/soc/codecs/wm8350.c | 63 +- trunk/sound/soc/codecs/wm8400.c | 60 +- trunk/sound/soc/codecs/wm8510.c | 30 +- trunk/sound/soc/codecs/wm8523.c | 5 +- trunk/sound/soc/codecs/wm8580.c | 37 +- trunk/sound/soc/codecs/wm8711.c | 10 +- trunk/sound/soc/codecs/wm8727.c | 14 +- trunk/sound/soc/codecs/wm8728.c | 9 +- trunk/sound/soc/codecs/wm8731.c | 10 +- trunk/sound/soc/codecs/wm8737.c | 5 +- trunk/sound/soc/codecs/wm8741.c | 43 +- trunk/sound/soc/codecs/wm8750.c | 40 +- trunk/sound/soc/codecs/wm8753.c | 31 +- trunk/sound/soc/codecs/wm8770.c | 18 +- trunk/sound/soc/codecs/wm8776.c | 35 +- trunk/sound/soc/codecs/wm8782.c | 12 +- trunk/sound/soc/codecs/wm8804.c | 11 +- trunk/sound/soc/codecs/wm8900.c | 35 +- trunk/sound/soc/codecs/wm8903.c | 664 ++-- trunk/sound/soc/codecs/wm8904.c | 9 +- trunk/sound/soc/codecs/wm8940.c | 11 +- trunk/sound/soc/codecs/wm8955.c | 7 +- trunk/sound/soc/codecs/wm8958-dsp2.c | 3 +- trunk/sound/soc/codecs/wm8960.c | 91 +- trunk/sound/soc/codecs/wm8961.c | 40 +- trunk/sound/soc/codecs/wm8962.c | 1646 ++++----- trunk/sound/soc/codecs/wm8971.c | 9 +- trunk/sound/soc/codecs/wm8974.c | 9 +- trunk/sound/soc/codecs/wm8978.c | 5 +- trunk/sound/soc/codecs/wm8983.c | 7 +- trunk/sound/soc/codecs/wm8985.c | 7 +- trunk/sound/soc/codecs/wm8988.c | 9 +- trunk/sound/soc/codecs/wm8990.c | 11 +- trunk/sound/soc/codecs/wm8991.c | 9 +- trunk/sound/soc/codecs/wm8993.c | 35 +- trunk/sound/soc/codecs/wm8994-tables.c | 3147 ----------------- trunk/sound/soc/codecs/wm8994.c | 659 ++-- trunk/sound/soc/codecs/wm8994.h | 21 +- trunk/sound/soc/codecs/wm8995.c | 732 +++- trunk/sound/soc/codecs/wm8996.c | 945 ++--- trunk/sound/soc/codecs/wm9081.c | 368 +- trunk/sound/soc/codecs/wm9090.c | 22 +- trunk/sound/soc/codecs/wm9705.c | 16 +- trunk/sound/soc/codecs/wm9712.c | 19 +- trunk/sound/soc/codecs/wm9713.c | 21 +- trunk/sound/soc/codecs/wm_hubs.c | 8 +- trunk/sound/soc/davinci/davinci-evm.c | 6 + trunk/sound/soc/davinci/davinci-i2s.c | 53 +- trunk/sound/soc/davinci/davinci-mcasp.c | 54 +- trunk/sound/soc/davinci/davinci-pcm.c | 17 +- trunk/sound/soc/davinci/davinci-sffsdr.c | 1 + trunk/sound/soc/davinci/davinci-vcif.c | 28 +- trunk/sound/soc/ep93xx/edb93xx.c | 27 +- trunk/sound/soc/ep93xx/ep93xx-ac97.c | 14 +- trunk/sound/soc/ep93xx/ep93xx-i2s.c | 15 +- trunk/sound/soc/ep93xx/ep93xx-pcm.c | 18 +- trunk/sound/soc/ep93xx/simone.c | 13 +- trunk/sound/soc/ep93xx/snappercl15.c | 26 +- trunk/sound/soc/fsl/efika-audio-fabric.c | 14 +- trunk/sound/soc/fsl/fsl_dma.c | 15 +- trunk/sound/soc/fsl/fsl_ssi.c | 17 +- trunk/sound/soc/fsl/mpc5200_dma.c | 12 +- trunk/sound/soc/fsl/mpc5200_psc_ac97.c | 20 +- trunk/sound/soc/fsl/mpc5200_psc_i2s.c | 18 +- trunk/sound/soc/fsl/mpc8610_hpcd.c | 13 +- trunk/sound/soc/fsl/p1022_ds.c | 49 +- trunk/sound/soc/fsl/pcm030-audio-fabric.c | 14 +- trunk/sound/soc/imx/eukrea-tlv320.c | 1 + trunk/sound/soc/imx/imx-pcm-dma-mx2.c | 12 +- trunk/sound/soc/imx/imx-pcm-fiq.c | 12 +- trunk/sound/soc/imx/imx-ssi.c | 15 +- trunk/sound/soc/imx/mx27vis-aic32x4.c | 1 + trunk/sound/soc/imx/phycore-ac97.c | 1 + trunk/sound/soc/imx/wm1133-ev1.c | 1 + trunk/sound/soc/jz4740/jz4740-i2s.c | 14 +- trunk/sound/soc/jz4740/jz4740-pcm.c | 17 +- trunk/sound/soc/jz4740/qi_lb60.c | 1 + trunk/sound/soc/kirkwood/kirkwood-dma.c | 17 +- trunk/sound/soc/kirkwood/kirkwood-i2s.c | 17 +- trunk/sound/soc/kirkwood/kirkwood-openrd.c | 15 +- trunk/sound/soc/kirkwood/kirkwood-t5325.c | 25 +- trunk/sound/soc/kirkwood/kirkwood.h | 1 - trunk/sound/soc/mid-x86/Kconfig | 1 - trunk/sound/soc/mid-x86/mfld_machine.c | 17 +- trunk/sound/soc/mid-x86/sst_platform.c | 154 +- trunk/sound/soc/mid-x86/sst_platform.h | 82 +- trunk/sound/soc/mxs/mxs-pcm.c | 12 +- trunk/sound/soc/mxs/mxs-saif.c | 14 +- trunk/sound/soc/mxs/mxs-sgtl5000.c | 13 +- trunk/sound/soc/nuc900/nuc900-ac97.c | 15 +- trunk/sound/soc/nuc900/nuc900-audio.c | 1 + trunk/sound/soc/nuc900/nuc900-pcm.c | 12 +- trunk/sound/soc/omap/Kconfig | 5 + trunk/sound/soc/omap/Makefile | 2 + trunk/sound/soc/omap/am3517evm.c | 1 + trunk/sound/soc/omap/ams-delta.c | 11 +- trunk/sound/soc/omap/igep0020.c | 1 + trunk/sound/soc/omap/n810.c | 1 + trunk/sound/soc/omap/omap-dmic.c | 546 +++ trunk/sound/soc/omap/omap-dmic.h | 69 + trunk/sound/soc/omap/omap-hdmi.c | 14 +- trunk/sound/soc/omap/omap-mcbsp.c | 16 +- trunk/sound/soc/omap/omap-mcpdm.c | 19 +- trunk/sound/soc/omap/omap-pcm.c | 17 +- trunk/sound/soc/omap/omap3evm.c | 1 + trunk/sound/soc/omap/omap3pandora.c | 1 + trunk/sound/soc/omap/omap4-hdmi-card.c | 13 +- trunk/sound/soc/omap/osk5912.c | 1 + trunk/sound/soc/omap/overo.c | 1 + trunk/sound/soc/omap/rx51.c | 3 +- trunk/sound/soc/omap/sdp3430.c | 1 + trunk/sound/soc/omap/sdp4430.c | 86 +- trunk/sound/soc/omap/zoom2.c | 1 + trunk/sound/soc/pxa/corgi.c | 81 +- trunk/sound/soc/pxa/e740_wm9705.c | 84 +- trunk/sound/soc/pxa/e750_wm9705.c | 73 +- trunk/sound/soc/pxa/e800_wm9712.c | 73 +- trunk/sound/soc/pxa/em-x270.c | 1 + trunk/sound/soc/pxa/hx4700.c | 30 +- trunk/sound/soc/pxa/imote2.c | 58 +- trunk/sound/soc/pxa/magician.c | 1 + trunk/sound/soc/pxa/mioa701_wm9713.c | 14 +- trunk/sound/soc/pxa/palm27x.c | 14 +- trunk/sound/soc/pxa/poodle.c | 79 +- trunk/sound/soc/pxa/pxa-ssp.c | 14 +- trunk/sound/soc/pxa/pxa2xx-ac97.c | 18 +- trunk/sound/soc/pxa/pxa2xx-i2s.c | 2 +- trunk/sound/soc/pxa/pxa2xx-pcm.c | 12 +- trunk/sound/soc/pxa/raumfeld.c | 2 + trunk/sound/soc/pxa/saarb.c | 24 +- trunk/sound/soc/pxa/spitz.c | 38 +- trunk/sound/soc/pxa/tavorevb3.c | 25 +- trunk/sound/soc/pxa/tosa.c | 78 +- trunk/sound/soc/pxa/z2.c | 29 +- trunk/sound/soc/pxa/zylonite.c | 1 + trunk/sound/soc/s6000/s6000-i2s.c | 14 +- trunk/sound/soc/s6000/s6000-pcm.c | 12 +- trunk/sound/soc/s6000/s6105-ipcam.c | 1 + trunk/sound/soc/samsung/Kconfig | 18 +- trunk/sound/soc/samsung/Makefile | 8 +- trunk/sound/soc/samsung/ac97.c | 16 +- trunk/sound/soc/samsung/dma.c | 17 +- trunk/sound/soc/samsung/goni_wm8994.c | 1 + trunk/sound/soc/samsung/h1940_uda1380.c | 1 + trunk/sound/soc/samsung/i2s.c | 42 +- trunk/sound/soc/samsung/idma.c | 20 +- trunk/sound/soc/samsung/idma.h | 2 +- trunk/sound/soc/samsung/jive_wm8750.c | 1 + trunk/sound/soc/samsung/littlemill.c | 253 ++ trunk/sound/soc/samsung/ln2440sbc_alc650.c | 1 + trunk/sound/soc/samsung/lowland.c | 237 ++ trunk/sound/soc/samsung/neo1973_wm8753.c | 1 + trunk/sound/soc/samsung/pcm.c | 34 +- trunk/sound/soc/samsung/rx1950_uda1380.c | 1 + trunk/sound/soc/samsung/s3c2412-i2s.c | 14 +- trunk/sound/soc/samsung/s3c24xx-i2s.c | 14 +- .../sound/soc/samsung/s3c24xx_simtec_hermes.c | 17 +- .../soc/samsung/s3c24xx_simtec_tlv320aic23.c | 19 +- trunk/sound/soc/samsung/s3c24xx_uda134x.c | 15 +- trunk/sound/soc/samsung/smartq_wm8987.c | 1 + trunk/sound/soc/samsung/smdk2443_wm9710.c | 1 + trunk/sound/soc/samsung/smdk_spdif.c | 1 + trunk/sound/soc/samsung/smdk_wm8580.c | 1 + trunk/sound/soc/samsung/smdk_wm8580pcm.c | 15 +- trunk/sound/soc/samsung/smdk_wm8994.c | 1 + trunk/sound/soc/samsung/smdk_wm8994pcm.c | 15 +- trunk/sound/soc/samsung/smdk_wm9713.c | 1 + trunk/sound/soc/samsung/spdif.c | 14 +- trunk/sound/soc/samsung/speyside.c | 23 +- .../{speyside_wm8962.c => tobermory.c} | 78 +- trunk/sound/soc/sh/dma-sh7760.c | 12 +- trunk/sound/soc/sh/fsi-ak4642.c | 128 +- trunk/sound/soc/sh/fsi-da7210.c | 1 + trunk/sound/soc/sh/fsi-hdmi.c | 14 +- trunk/sound/soc/sh/fsi.c | 40 +- trunk/sound/soc/sh/hac.c | 14 +- trunk/sound/soc/sh/migor.c | 1 + trunk/sound/soc/sh/sh7760-ac97.c | 5 +- trunk/sound/soc/sh/siu_dai.c | 21 +- trunk/sound/soc/sh/ssi.c | 14 +- trunk/sound/soc/soc-cache.c | 765 ---- trunk/sound/soc/soc-core.c | 238 +- trunk/sound/soc/soc-dapm.c | 90 +- trunk/sound/soc/soc-jack.c | 4 - trunk/sound/soc/soc-pcm.c | 56 +- trunk/sound/soc/tegra/Kconfig | 9 + trunk/sound/soc/tegra/Makefile | 2 + trunk/sound/soc/tegra/tegra_alc5632.c | 214 ++ trunk/sound/soc/tegra/tegra_das.c | 66 +- trunk/sound/soc/tegra/tegra_i2s.c | 164 +- trunk/sound/soc/tegra/tegra_i2s.h | 1 + trunk/sound/soc/tegra/tegra_pcm.c | 18 +- trunk/sound/soc/tegra/tegra_spdif.c | 14 +- trunk/sound/soc/tegra/tegra_wm8903.c | 193 +- trunk/sound/soc/tegra/trimslice.c | 41 +- trunk/sound/soc/txx9/txx9aclc-ac97.c | 13 +- trunk/sound/soc/txx9/txx9aclc-generic.c | 1 + trunk/sound/soc/txx9/txx9aclc.c | 12 +- trunk/sound/sparc/amd7930.c | 2 +- trunk/sound/sparc/cs4231.c | 15 +- trunk/sound/sparc/dbri.c | 16 +- trunk/sound/usb/6fire/chip.c | 2 +- trunk/sound/usb/caiaq/device.c | 2 +- trunk/sound/usb/card.c | 6 +- trunk/sound/usb/endpoint.c | 5 +- trunk/sound/usb/format.c | 8 +- trunk/sound/usb/misc/ua101.c | 2 +- trunk/sound/usb/quirks-table.h | 36 + trunk/sound/usb/usx2y/us122l.c | 2 +- trunk/sound/usb/usx2y/usb_stream.c | 6 +- trunk/sound/usb/usx2y/usbusx2y.c | 2 +- .../virtual => tools}/lguest/.gitignore | 0 .../virtual => tools}/lguest/Makefile | 0 .../virtual => tools}/lguest/extract | 0 .../virtual => tools}/lguest/lguest.c | 2 +- .../virtual => tools}/lguest/lguest.txt | 0 trunk/tools/testing/selftests/Makefile | 11 + .../testing/selftests/breakpoints/Makefile | 20 + .../selftests/breakpoints/breakpoint_test.c | 394 +++ trunk/tools/testing/selftests/run_tests | 8 + trunk/tools/virtio/linux/virtio.h | 22 +- trunk/tools/virtio/virtio_test.c | 6 +- 1169 files changed, 56008 insertions(+), 25946 deletions(-) create mode 100644 trunk/Documentation/devicetree/bindings/power_supply/olpc_battery.txt create mode 100644 trunk/Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/tegra20-das.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/tegra20-i2s.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/wm8903.txt create mode 100644 trunk/Documentation/devicetree/bindings/sound/wm8994.txt create mode 100644 trunk/Documentation/digsig.txt create mode 100644 trunk/Documentation/power/charger-manager.txt create mode 100644 trunk/Documentation/security/LSM.txt create mode 100644 trunk/Documentation/sound/alsa/compress_offload.txt create mode 100644 trunk/arch/arm/configs/bonito_defconfig create mode 100644 trunk/arch/arm/configs/kota2_defconfig create mode 100644 trunk/arch/arm/configs/marzen_defconfig create mode 100644 trunk/arch/arm/mach-exynos/include/mach/cpufreq.h create mode 100644 trunk/arch/arm/mach-shmobile/board-bonito.c create mode 100644 trunk/arch/arm/mach-shmobile/board-marzen.c create mode 100644 trunk/arch/arm/mach-shmobile/clock-r8a7740.c create mode 100644 trunk/arch/arm/mach-shmobile/clock-r8a7779.c create mode 100644 trunk/arch/arm/mach-shmobile/include/mach/r8a7740.h create mode 100644 trunk/arch/arm/mach-shmobile/include/mach/r8a7779.h create mode 100644 trunk/arch/arm/mach-shmobile/intc-r8a7740.c create mode 100644 trunk/arch/arm/mach-shmobile/intc-r8a7779.c create mode 100644 trunk/arch/arm/mach-shmobile/pfc-r8a7740.c create mode 100644 trunk/arch/arm/mach-shmobile/pfc-r8a7779.c create mode 100644 trunk/arch/arm/mach-shmobile/pm-r8a7779.c create mode 100644 trunk/arch/arm/mach-shmobile/setup-r8a7740.c create mode 100644 trunk/arch/arm/mach-shmobile/setup-r8a7779.c create mode 100644 trunk/arch/arm/mach-shmobile/smp-r8a7779.c delete mode 100644 trunk/arch/arm/plat-omap/cpu-omap.c delete mode 100644 trunk/arch/sh/include/asm/hwblk.h delete mode 100644 trunk/arch/sh/kernel/cpu/hwblk.c delete mode 100644 trunk/arch/sh/kernel/cpu/sh4a/hwblk-sh7722.c delete mode 100644 trunk/arch/sh/kernel/cpu/sh4a/hwblk-sh7723.c delete mode 100644 trunk/arch/sh/kernel/cpu/sh4a/hwblk-sh7724.c delete mode 100644 trunk/arch/sh/kernel/cpu/shmobile/pm_runtime.c create mode 100644 trunk/arch/x86/boot/compressed/eboot.c create mode 100644 trunk/arch/x86/boot/compressed/eboot.h create mode 100644 trunk/arch/x86/boot/compressed/efi_stub_32.S create mode 100644 trunk/arch/x86/boot/compressed/efi_stub_64.S create mode 100644 trunk/arch/x86/crypto/serpent-sse2-i586-asm_32.S create mode 100644 trunk/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S create mode 100644 trunk/arch/x86/crypto/serpent_sse2_glue.c create mode 100644 trunk/arch/x86/include/asm/serpent.h create mode 100644 trunk/arch/x86/kernel/nmi_selftest.c delete mode 100644 trunk/crypto/serpent.c create mode 100644 trunk/crypto/serpent_generic.c create mode 100644 trunk/drivers/cpufreq/exynos-cpufreq.c create mode 100644 trunk/drivers/cpufreq/omap-cpufreq.c create mode 100644 trunk/drivers/mfd/wm8994-regmap.c create mode 100644 trunk/drivers/mfd/wm8994.h create mode 100644 trunk/drivers/power/charger-manager.c create mode 100644 trunk/drivers/power/da9052-battery.c create mode 100644 trunk/drivers/power/lp8727_charger.c rename trunk/drivers/power/{bq20z75.c => sbs-battery.c} (52%) create mode 100644 trunk/include/crypto/lrw.h create mode 100644 trunk/include/crypto/serpent.h create mode 100644 trunk/include/crypto/xts.h create mode 100644 trunk/include/linux/digsig.h create mode 100755 trunk/include/linux/lp8727.h create mode 100644 trunk/include/linux/mpi.h create mode 100644 trunk/include/linux/power/charger-manager.h rename trunk/include/linux/power/{bq20z75.h => sbs-battery.h} (85%) delete mode 100644 trunk/include/linux/sigma.h create mode 100644 trunk/include/sound/compress_driver.h create mode 100644 trunk/include/sound/compress_offload.h create mode 100644 trunk/include/sound/compress_params.h create mode 100644 trunk/include/sound/sta32x.h create mode 100644 trunk/lib/digsig.c create mode 100644 trunk/lib/mpi/Makefile create mode 100644 trunk/lib/mpi/generic_mpi-asm-defs.h create mode 100644 trunk/lib/mpi/generic_mpih-add1.c create mode 100644 trunk/lib/mpi/generic_mpih-lshift.c create mode 100644 trunk/lib/mpi/generic_mpih-mul1.c create mode 100644 trunk/lib/mpi/generic_mpih-mul2.c create mode 100644 trunk/lib/mpi/generic_mpih-mul3.c create mode 100644 trunk/lib/mpi/generic_mpih-rshift.c create mode 100644 trunk/lib/mpi/generic_mpih-sub1.c create mode 100644 trunk/lib/mpi/longlong.h create mode 100644 trunk/lib/mpi/mpi-add.c create mode 100644 trunk/lib/mpi/mpi-bit.c create mode 100644 trunk/lib/mpi/mpi-cmp.c create mode 100644 trunk/lib/mpi/mpi-div.c create mode 100644 trunk/lib/mpi/mpi-gcd.c create mode 100644 trunk/lib/mpi/mpi-inline.c create mode 100644 trunk/lib/mpi/mpi-inline.h create mode 100644 trunk/lib/mpi/mpi-internal.h create mode 100644 trunk/lib/mpi/mpi-inv.c create mode 100644 trunk/lib/mpi/mpi-mpow.c create mode 100644 trunk/lib/mpi/mpi-mul.c create mode 100644 trunk/lib/mpi/mpi-pow.c create mode 100644 trunk/lib/mpi/mpi-scan.c create mode 100644 trunk/lib/mpi/mpicoder.c create mode 100644 trunk/lib/mpi/mpih-cmp.c create mode 100644 trunk/lib/mpi/mpih-div.c create mode 100644 trunk/lib/mpi/mpih-mul.c create mode 100644 trunk/lib/mpi/mpiutil.c create mode 100644 trunk/security/integrity/digsig.c create mode 100644 trunk/security/tomoyo/.gitignore create mode 100644 trunk/sound/core/compress_offload.c create mode 100644 trunk/sound/core/ctljack.c create mode 100644 trunk/sound/pci/asihpi/hpi_version.h delete mode 100644 trunk/sound/pci/hda/alc262_quirks.c create mode 100644 trunk/sound/pci/hda/hda_jack.c create mode 100644 trunk/sound/pci/hda/hda_jack.h create mode 100644 trunk/sound/soc/codecs/alc5632.c create mode 100644 trunk/sound/soc/codecs/alc5632.h create mode 100644 trunk/sound/soc/codecs/cs42l73.c create mode 100644 trunk/sound/soc/codecs/cs42l73.h rename trunk/{drivers/firmware/sigma.c => sound/soc/codecs/sigmadsp.c} (53%) create mode 100644 trunk/sound/soc/codecs/sigmadsp.h delete mode 100644 trunk/sound/soc/codecs/wm8994-tables.c create mode 100644 trunk/sound/soc/omap/omap-dmic.c create mode 100644 trunk/sound/soc/omap/omap-dmic.h create mode 100644 trunk/sound/soc/samsung/littlemill.c create mode 100644 trunk/sound/soc/samsung/lowland.c rename trunk/sound/soc/samsung/{speyside_wm8962.c => tobermory.c} (69%) create mode 100644 trunk/sound/soc/tegra/tegra_alc5632.c rename trunk/{Documentation/virtual => tools}/lguest/.gitignore (100%) rename trunk/{Documentation/virtual => tools}/lguest/Makefile (100%) rename trunk/{Documentation/virtual => tools}/lguest/extract (100%) rename trunk/{Documentation/virtual => tools}/lguest/lguest.c (99%) rename trunk/{Documentation/virtual => tools}/lguest/lguest.txt (100%) create mode 100644 trunk/tools/testing/selftests/Makefile create mode 100644 trunk/tools/testing/selftests/breakpoints/Makefile create mode 100644 trunk/tools/testing/selftests/breakpoints/breakpoint_test.c create mode 100644 trunk/tools/testing/selftests/run_tests diff --git a/[refs] b/[refs] index 8c2fa2aabc43..f772b8c3d105 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 66ad863b410efb7f537719006f9ac52400c1a5c5 +refs/heads/master: 57e6a7dde8cfca9ac1d6702cf9104d22bc11ba90 diff --git a/trunk/Documentation/ABI/testing/sysfs-kernel-slab b/trunk/Documentation/ABI/testing/sysfs-kernel-slab index 8b093f8222d3..91bd6ca5440f 100644 --- a/trunk/Documentation/ABI/testing/sysfs-kernel-slab +++ b/trunk/Documentation/ABI/testing/sysfs-kernel-slab @@ -346,6 +346,10 @@ Description: number of objects per slab. If a slab cannot be allocated because of fragmentation, SLUB will retry with the minimum order possible depending on its characteristics. + When debug_guardpage_minorder=N (N > 0) parameter is specified + (see Documentation/kernel-parameters.txt), the minimum possible + order is used and this sysfs entry can not be used to change + the order at run time. What: /sys/kernel/slab/cache/order_fallback Date: April 2008 diff --git a/trunk/Documentation/DocBook/writing-an-alsa-driver.tmpl b/trunk/Documentation/DocBook/writing-an-alsa-driver.tmpl index 5de23c007078..cab4ec58e46e 100644 --- a/trunk/Documentation/DocBook/writing-an-alsa-driver.tmpl +++ b/trunk/Documentation/DocBook/writing-an-alsa-driver.tmpl @@ -404,7 +404,7 @@ /* SNDRV_CARDS: maximum number of cards supported by this module */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; - static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; + static bool enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* definition of the chip-specific record */ struct mychip { diff --git a/trunk/Documentation/cgroups/memory.txt b/trunk/Documentation/cgroups/memory.txt index 4d8774f6f48a..4c95c0034a4b 100644 --- a/trunk/Documentation/cgroups/memory.txt +++ b/trunk/Documentation/cgroups/memory.txt @@ -61,7 +61,7 @@ Brief summary of control files. memory.failcnt # show the number of memory usage hits limits memory.memsw.failcnt # show the number of memory+Swap hits limits memory.max_usage_in_bytes # show max memory usage recorded - memory.memsw.usage_in_bytes # show max memory+Swap usage recorded + memory.memsw.max_usage_in_bytes # show max memory+Swap usage recorded memory.soft_limit_in_bytes # set/show soft limit of memory usage memory.stat # show various statistics memory.use_hierarchy # set/show hierarchical account enabled @@ -410,8 +410,11 @@ memory.stat file includes following statistics cache - # of bytes of page cache memory. rss - # of bytes of anonymous and swap cache memory. mapped_file - # of bytes of mapped file (includes tmpfs/shmem) -pgpgin - # of pages paged in (equivalent to # of charging events). -pgpgout - # of pages paged out (equivalent to # of uncharging events). +pgpgin - # of charging events to the memory cgroup. The charging + event happens each time a page is accounted as either mapped + anon page(RSS) or cache page(Page Cache) to the cgroup. +pgpgout - # of uncharging events to the memory cgroup. The uncharging + event happens each time a page is unaccounted from the cgroup. swap - # of bytes of swap usage inactive_anon - # of bytes of anonymous memory and swap cache memory on LRU list. diff --git a/trunk/Documentation/devicetree/bindings/power_supply/olpc_battery.txt b/trunk/Documentation/devicetree/bindings/power_supply/olpc_battery.txt new file mode 100644 index 000000000000..c8901b3992d9 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/power_supply/olpc_battery.txt @@ -0,0 +1,5 @@ +OLPC battery +~~~~~~~~~~~~ + +Required properties: + - compatible : "olpc,xo1-battery" diff --git a/trunk/Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt b/trunk/Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt new file mode 100644 index 000000000000..c40e8926facf --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/power_supply/sbs_sbs-battery.txt @@ -0,0 +1,23 @@ +SBS sbs-battery +~~~~~~~~~~ + +Required properties : + - compatible : "sbs,sbs-battery" + +Optional properties : + - sbs,i2c-retry-count : The number of times to retry i2c transactions on i2c + IO failure. + - sbs,poll-retry-count : The number of times to try looking for new status + after an external change notification. + - sbs,battery-detect-gpios : The gpio which signals battery detection and + a flag specifying its polarity. + +Example: + + bq20z75@b { + compatible = "sbs,sbs-battery"; + reg = < 0xb >; + sbs,i2c-retry-count = <2>; + sbs,poll-retry-count = <10>; + sbs,battery-detect-gpios = <&gpio-controller 122 1>; + } diff --git a/trunk/Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt b/trunk/Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt new file mode 100644 index 000000000000..d5b0da8bf1d8 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/tegra-audio-wm8903.txt @@ -0,0 +1,71 @@ +NVIDIA Tegra audio complex + +Required properties: +- compatible : "nvidia,tegra-audio-wm8903" +- nvidia,model : The user-visible name of this sound complex. +- nvidia,audio-routing : A list of the connections between audio components. + Each entry is a pair of strings, the first being the connection's sink, + the second being the connection's source. Valid names for sources and + sinks are the WM8903's pins, and the jacks on the board: + + WM8903 pins: + + * IN1L + * IN1R + * IN2L + * IN2R + * IN3L + * IN3R + * DMICDAT + * HPOUTL + * HPOUTR + * LINEOUTL + * LINEOUTR + * LOP + * LON + * ROP + * RON + * MICBIAS + + Board connectors: + + * Headphone Jack + * Int Spk + * Mic Jack + +- nvidia,i2s-controller : The phandle of the Tegra I2S1 controller +- nvidia,audio-codec : The phandle of the WM8903 audio codec + +Optional properties: +- nvidia,spkr-en-gpios : The GPIO that enables the speakers +- nvidia,hp-mute-gpios : The GPIO that mutes the headphones +- nvidia,hp-det-gpios : The GPIO that detect headphones are plugged in +- nvidia,int-mic-en-gpios : The GPIO that enables the internal microphone +- nvidia,ext-mic-en-gpios : The GPIO that enables the external microphone + +Example: + +sound { + compatible = "nvidia,tegra-audio-wm8903-harmony", + "nvidia,tegra-audio-wm8903" + nvidia,model = "tegra-wm8903-harmony"; + + nvidia,audio-routing = + "Headphone Jack", "HPOUTR", + "Headphone Jack", "HPOUTL", + "Int Spk", "ROP", + "Int Spk", "RON", + "Int Spk", "LOP", + "Int Spk", "LON", + "Mic Jack", "MICBIAS", + "IN1L", "Mic Jack"; + + nvidia,i2s-controller = <&i2s1>; + nvidia,audio-codec = <&wm8903>; + + nvidia,spkr-en-gpios = <&codec 2 0>; + nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ + nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ + nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ +}; + diff --git a/trunk/Documentation/devicetree/bindings/sound/tegra20-das.txt b/trunk/Documentation/devicetree/bindings/sound/tegra20-das.txt new file mode 100644 index 000000000000..6de3a7ee4efb --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/tegra20-das.txt @@ -0,0 +1,12 @@ +NVIDIA Tegra 20 DAS (Digital Audio Switch) controller + +Required properties: +- compatible : "nvidia,tegra20-das" +- reg : Should contain DAS registers location and length + +Example: + +das@70000c00 { + compatible = "nvidia,tegra20-das"; + reg = <0x70000c00 0x80>; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/tegra20-i2s.txt b/trunk/Documentation/devicetree/bindings/sound/tegra20-i2s.txt new file mode 100644 index 000000000000..0df2b5c816e3 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/tegra20-i2s.txt @@ -0,0 +1,17 @@ +NVIDIA Tegra 20 I2S controller + +Required properties: +- compatible : "nvidia,tegra20-i2s" +- reg : Should contain I2S registers location and length +- interrupts : Should contain I2S interrupt +- nvidia,dma-request-selector : The Tegra DMA controller's phandle and + request selector for this I2S controller + +Example: + +i2s@70002800 { + compatible = "nvidia,tegra20-i2s"; + reg = <0x70002800 0x200>; + interrupts = < 45 >; + nvidia,dma-request-selector = < &apbdma 2 >; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/wm8903.txt b/trunk/Documentation/devicetree/bindings/sound/wm8903.txt new file mode 100644 index 000000000000..f102cbc42694 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/wm8903.txt @@ -0,0 +1,50 @@ +WM8903 audio CODEC + +This device supports I2C only. + +Required properties: + + - compatible : "wlf,wm8903" + + - reg : the I2C address of the device. + + - gpio-controller : Indicates this device is a GPIO controller. + + - #gpio-cells : Should be two. The first cell is the pin number and the + second cell is used to specify optional parameters (currently unused). + +Optional properties: + + - interrupts : The interrupt line the codec is connected to. + + - micdet-cfg : Default register value for R6 (Mic Bias). If absent, the + default is 0. + + - micdet-delay : The debounce delay for microphone detection in mS. If + absent, the default is 100. + + - gpio-cfg : A list of GPIO configuration register values. The list must + be 5 entries long. If absent, no configuration of these registers is + performed. If any entry has the value 0xffffffff, that GPIO's + configuration will not be modified. + +Example: + +codec: wm8903@1a { + compatible = "wlf,wm8903"; + reg = <0x1a>; + interrupts = < 347 >; + + gpio-controller; + #gpio-cells = <2>; + + micdet-cfg = <0>; + micdet-delay = <100>; + gpio-cfg = < + 0x0600 /* DMIC_LR, output */ + 0x0680 /* DMIC_DAT, input */ + 0x0000 /* GPIO, output, low */ + 0x0200 /* Interrupt, output */ + 0x01a0 /* BCLK, input, active high */ + >; +}; diff --git a/trunk/Documentation/devicetree/bindings/sound/wm8994.txt b/trunk/Documentation/devicetree/bindings/sound/wm8994.txt new file mode 100644 index 000000000000..7a7eb1e7bda6 --- /dev/null +++ b/trunk/Documentation/devicetree/bindings/sound/wm8994.txt @@ -0,0 +1,18 @@ +WM1811/WM8994/WM8958 audio CODEC + +These devices support both I2C and SPI (configured with pin strapping +on the board). + +Required properties: + + - compatible : "wlf,wm1811", "wlf,wm8994", "wlf,wm8958" + + - reg : the I2C address of the device for I2C, the chip select + number for SPI. + +Example: + +codec: wm8994@1a { + compatible = "wlf,wm8994"; + reg = <0x1a>; +}; diff --git a/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt b/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt index 18626965159e..ecc6a6cd26c1 100644 --- a/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/trunk/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -34,6 +34,7 @@ powervr Imagination Technologies qcom Qualcomm, Inc. ramtron Ramtron International samsung Samsung Semiconductor +sbs Smart Battery System schindler Schindler sil Silicon Image simtek @@ -41,4 +42,5 @@ sirf SiRF Technology, Inc. st STMicroelectronics stericsson ST-Ericsson ti Texas Instruments +wlf Wolfson Microelectronics xlnx Xilinx diff --git a/trunk/Documentation/digsig.txt b/trunk/Documentation/digsig.txt new file mode 100644 index 000000000000..3f682889068b --- /dev/null +++ b/trunk/Documentation/digsig.txt @@ -0,0 +1,96 @@ +Digital Signature Verification API + +CONTENTS + +1. Introduction +2. API +3. User-space utilities + + +1. Introduction + +Digital signature verification API provides a method to verify digital signature. +Currently digital signatures are used by the IMA/EVM integrity protection subsystem. + +Digital signature verification is implemented using cut-down kernel port of +GnuPG multi-precision integers (MPI) library. The kernel port provides +memory allocation errors handling, has been refactored according to kernel +coding style, and checkpatch.pl reported errors and warnings have been fixed. + +Public key and signature consist of header and MPIs. + +struct pubkey_hdr { + uint8_t version; /* key format version */ + time_t timestamp; /* key made, always 0 for now */ + uint8_t algo; + uint8_t nmpi; + char mpi[0]; +} __packed; + +struct signature_hdr { + uint8_t version; /* signature format version */ + time_t timestamp; /* signature made */ + uint8_t algo; + uint8_t hash; + uint8_t keyid[8]; + uint8_t nmpi; + char mpi[0]; +} __packed; + +keyid equals to SHA1[12-19] over the total key content. +Signature header is used as an input to generate a signature. +Such approach insures that key or signature header could not be changed. +It protects timestamp from been changed and can be used for rollback +protection. + +2. API + +API currently includes only 1 function: + + digsig_verify() - digital signature verification with public key + + +/** + * digsig_verify() - digital signature verification with public key + * @keyring: keyring to search key in + * @sig: digital signature + * @sigen: length of the signature + * @data: data + * @datalen: length of the data + * @return: 0 on success, -EINVAL otherwise + * + * Verifies data integrity against digital signature. + * Currently only RSA is supported. + * Normally hash of the content is used as a data for this function. + * + */ +int digsig_verify(struct key *keyring, const char *sig, int siglen, + const char *data, int datalen); + +3. User-space utilities + +The signing and key management utilities evm-utils provide functionality +to generate signatures, to load keys into the kernel keyring. +Keys can be in PEM or converted to the kernel format. +When the key is added to the kernel keyring, the keyid defines the name +of the key: 5D2B05FC633EE3E8 in the example bellow. + +Here is example output of the keyctl utility. + +$ keyctl show +Session Keyring + -3 --alswrv 0 0 keyring: _ses +603976250 --alswrv 0 -1 \_ keyring: _uid.0 +817777377 --alswrv 0 0 \_ user: kmk +891974900 --alswrv 0 0 \_ encrypted: evm-key +170323636 --alswrv 0 0 \_ keyring: _module +548221616 --alswrv 0 0 \_ keyring: _ima +128198054 --alswrv 0 0 \_ keyring: _evm + +$ keyctl list 128198054 +1 key in keyring: +620789745: --alswrv 0 0 user: 5D2B05FC633EE3E8 + + +Dmitry Kasatkin +06.10.2011 diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 5575759b84ee..d49c2ec72d12 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -544,3 +544,15 @@ When: 3.5 Why: The iwlagn module has been renamed iwlwifi. The alias will be around for backward compatibility for several cycles and then dropped. Who: Don Fry + +---------------------------- + +What: pci_scan_bus_parented() +When: 3.5 +Why: The pci_scan_bus_parented() interface creates a new root bus. The + bus is created with default resources (ioport_resource and + iomem_resource) that are always wrong, so we rely on arch code to + correct them later. Callers of pci_scan_bus_parented() should + convert to using pci_scan_root_bus() so they can supply a list of + bus resources when the bus is created. +Who: Bjorn Helgaas diff --git a/trunk/Documentation/filesystems/ceph.txt b/trunk/Documentation/filesystems/ceph.txt index 763d8ebbbebd..d6030aa33376 100644 --- a/trunk/Documentation/filesystems/ceph.txt +++ b/trunk/Documentation/filesystems/ceph.txt @@ -119,12 +119,20 @@ Mount Options must rely on TCP's error correction to detect data corruption in the data payload. - noasyncreaddir - Disable client's use its local cache to satisfy readdir - requests. (This does not change correctness; the client uses - cached metadata only when a lease or capability ensures it is - valid.) + dcache + Use the dcache contents to perform negative lookups and + readdir when the client has the entire directory contents in + its cache. (This does not change correctness; the client uses + cached metadata only when a lease or capability ensures it is + valid.) + + nodcache + Do not use the dcache as above. This avoids a significant amount of + complex code, sacrificing performance without affecting correctness, + and is useful for tracking down bugs. + noasyncreaddir + Do not use the dcache as above for readdir. More Information ================ diff --git a/trunk/Documentation/filesystems/proc.txt b/trunk/Documentation/filesystems/proc.txt index 12fee132fbe2..a76a26a1db8a 100644 --- a/trunk/Documentation/filesystems/proc.txt +++ b/trunk/Documentation/filesystems/proc.txt @@ -307,6 +307,9 @@ Table 1-4: Contents of the stat files (as of 2.6.30-rc7) blkio_ticks time spent waiting for block IO gtime guest time of the task in jiffies cgtime guest time of the task children in jiffies + start_data address above which program data+bss is placed + end_data address below which program data+bss is placed + start_brk address above which program heap can be expanded with brk() .............................................................................. The /proc/PID/maps file containing the currently mapped memory regions and diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index c92b1532f05a..eb93fd0ec734 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -1824,6 +1824,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. nomfgpt [X86-32] Disable Multi-Function General Purpose Timer usage (for AMD Geode machines). + nonmi_ipi [X86] Disable using NMI IPIs during panic/reboot to + shutdown the other cpus. Instead use the REBOOT_VECTOR + irq. + nopat [X86] Disable PAT (page attribute table extension of pagetables) support. @@ -2395,6 +2399,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. slram= [HW,MTD] + slab_max_order= [MM, SLAB] + Determines the maximum allowed order for slabs. + A high setting may cause OOMs due to memory + fragmentation. Defaults to 1 for systems with + more than 32MB of RAM, 0 otherwise. + slub_debug[=options[,slabs]] [MM, SLUB] Enabling slub_debug allows one to determine the culprit if slab objects become corrupted. Enabling diff --git a/trunk/Documentation/power/charger-manager.txt b/trunk/Documentation/power/charger-manager.txt new file mode 100644 index 000000000000..fdcca991df30 --- /dev/null +++ b/trunk/Documentation/power/charger-manager.txt @@ -0,0 +1,163 @@ +Charger Manager + (C) 2011 MyungJoo Ham , GPL + +Charger Manager provides in-kernel battery charger management that +requires temperature monitoring during suspend-to-RAM state +and where each battery may have multiple chargers attached and the userland +wants to look at the aggregated information of the multiple chargers. + +Charger Manager is a platform_driver with power-supply-class entries. +An instance of Charger Manager (a platform-device created with Charger-Manager) +represents an independent battery with chargers. If there are multiple +batteries with their own chargers acting independently in a system, +the system may need multiple instances of Charger Manager. + +1. Introduction +=============== + +Charger Manager supports the following: + +* Support for multiple chargers (e.g., a device with USB, AC, and solar panels) + A system may have multiple chargers (or power sources) and some of + they may be activated at the same time. Each charger may have its + own power-supply-class and each power-supply-class can provide + different information about the battery status. This framework + aggregates charger-related information from multiple sources and + shows combined information as a single power-supply-class. + +* Support for in suspend-to-RAM polling (with suspend_again callback) + While the battery is being charged and the system is in suspend-to-RAM, + we may need to monitor the battery health by looking at the ambient or + battery temperature. We can accomplish this by waking up the system + periodically. However, such a method wakes up devices unncessary for + monitoring the battery health and tasks, and user processes that are + supposed to be kept suspended. That, in turn, incurs unnecessary power + consumption and slow down charging process. Or even, such peak power + consumption can stop chargers in the middle of charging + (external power input < device power consumption), which not + only affects the charging time, but the lifespan of the battery. + + Charger Manager provides a function "cm_suspend_again" that can be + used as suspend_again callback of platform_suspend_ops. If the platform + requires tasks other than cm_suspend_again, it may implement its own + suspend_again callback that calls cm_suspend_again in the middle. + Normally, the platform will need to resume and suspend some devices + that are used by Charger Manager. + +2. Global Charger-Manager Data related with suspend_again +======================================================== +In order to setup Charger Manager with suspend-again feature +(in-suspend monitoring), the user should provide charger_global_desc +with setup_charger_manager(struct charger_global_desc *). +This charger_global_desc data for in-suspend monitoring is global +as the name suggests. Thus, the user needs to provide only once even +if there are multiple batteries. If there are multiple batteries, the +multiple instances of Charger Manager share the same charger_global_desc +and it will manage in-suspend monitoring for all instances of Charger Manager. + +The user needs to provide all the two entries properly in order to activate +in-suspend monitoring: + +struct charger_global_desc { + +char *rtc_name; + : The name of rtc (e.g., "rtc0") used to wakeup the system from + suspend for Charger Manager. The alarm interrupt (AIE) of the rtc + should be able to wake up the system from suspend. Charger Manager + saves and restores the alarm value and use the previously-defined + alarm if it is going to go off earlier than Charger Manager so that + Charger Manager does not interfere with previously-defined alarms. + +bool (*rtc_only_wakeup)(void); + : This callback should let CM know whether + the wakeup-from-suspend is caused only by the alarm of "rtc" in the + same struct. If there is any other wakeup source triggered the + wakeup, it should return false. If the "rtc" is the only wakeup + reason, it should return true. +}; + +3. How to setup suspend_again +============================= +Charger Manager provides a function "extern bool cm_suspend_again(void)". +When cm_suspend_again is called, it monitors every battery. The suspend_ops +callback of the system's platform_suspend_ops can call cm_suspend_again +function to know whether Charger Manager wants to suspend again or not. +If there are no other devices or tasks that want to use suspend_again +feature, the platform_suspend_ops may directly refer to cm_suspend_again +for its suspend_again callback. + +The cm_suspend_again() returns true (meaning "I want to suspend again") +if the system was woken up by Charger Manager and the polling +(in-suspend monitoring) results in "normal". + +4. Charger-Manager Data (struct charger_desc) +============================================= +For each battery charged independently from other batteries (if a series of +batteries are charged by a single charger, they are counted as one independent +battery), an instance of Charger Manager is attached to it. + +struct charger_desc { + +char *psy_name; + : The power-supply-class name of the battery. Default is + "battery" if psy_name is NULL. Users can access the psy entries + at "/sys/class/power_supply/[psy_name]/". + +enum polling_modes polling_mode; + : CM_POLL_DISABLE: do not poll this battery. + CM_POLL_ALWAYS: always poll this battery. + CM_POLL_EXTERNAL_POWER_ONLY: poll this battery if and only if + an external power source is attached. + CM_POLL_CHARGING_ONLY: poll this battery if and only if the + battery is being charged. + +unsigned int fullbatt_uV; + : If specified with a non-zero value, Charger Manager assumes + that the battery is full (capacity = 100) if the battery is not being + charged and the battery voltage is equal to or greater than + fullbatt_uV. + +unsigned int polling_interval_ms; + : Required polling interval in ms. Charger Manager will poll + this battery every polling_interval_ms or more frequently. + +enum data_source battery_present; + CM_FUEL_GAUGE: get battery presence information from fuel gauge. + CM_CHARGER_STAT: get battery presence from chargers. + +char **psy_charger_stat; + : An array ending with NULL that has power-supply-class names of + chargers. Each power-supply-class should provide "PRESENT" (if + battery_present is "CM_CHARGER_STAT"), "ONLINE" (shows whether an + external power source is attached or not), and "STATUS" (shows whether + the battery is {"FULL" or not FULL} or {"FULL", "Charging", + "Discharging", "NotCharging"}). + +int num_charger_regulators; +struct regulator_bulk_data *charger_regulators; + : Regulators representing the chargers in the form for + regulator framework's bulk functions. + +char *psy_fuel_gauge; + : Power-supply-class name of the fuel gauge. + +int (*temperature_out_of_range)(int *mC); +bool measure_battery_temp; + : This callback returns 0 if the temperature is safe for charging, + a positive number if it is too hot to charge, and a negative number + if it is too cold to charge. With the variable mC, the callback returns + the temperature in 1/1000 of centigrade. + The source of temperature can be battery or ambient one according to + the value of measure_battery_temp. +}; + +5. Other Considerations +======================= + +At the charger/battery-related events such as battery-pulled-out, +charger-pulled-out, charger-inserted, DCIN-over/under-voltage, charger-stopped, +and others critical to chargers, the system should be configured to wake up. +At least the following should wake up the system from a suspend: +a) charger-on/off b) external-power-in/out c) battery-in/out (while charging) + +It is usually accomplished by configuring the PMIC as a wakeup source. diff --git a/trunk/Documentation/security/00-INDEX b/trunk/Documentation/security/00-INDEX index 19bc49439cac..99b85d39751c 100644 --- a/trunk/Documentation/security/00-INDEX +++ b/trunk/Documentation/security/00-INDEX @@ -1,5 +1,7 @@ 00-INDEX - this file. +LSM.txt + - description of the Linux Security Module framework. SELinux.txt - how to get started with the SELinux security enhancement. Smack.txt diff --git a/trunk/Documentation/security/LSM.txt b/trunk/Documentation/security/LSM.txt new file mode 100644 index 000000000000..c335a763a2ed --- /dev/null +++ b/trunk/Documentation/security/LSM.txt @@ -0,0 +1,34 @@ +Linux Security Module framework +------------------------------- + +The Linux Security Module (LSM) framework provides a mechanism for +various security checks to be hooked by new kernel extensions. The name +"module" is a bit of a misnomer since these extensions are not actually +loadable kernel modules. Instead, they are selectable at build-time via +CONFIG_DEFAULT_SECURITY and can be overridden at boot-time via the +"security=..." kernel command line argument, in the case where multiple +LSMs were built into a given kernel. + +The primary users of the LSM interface are Mandatory Access Control +(MAC) extensions which provide a comprehensive security policy. Examples +include SELinux, Smack, Tomoyo, and AppArmor. In addition to the larger +MAC extensions, other extensions can be built using the LSM to provide +specific changes to system operation when these tweaks are not available +in the core functionality of Linux itself. + +Without a specific LSM built into the kernel, the default LSM will be the +Linux capabilities system. Most LSMs choose to extend the capabilities +system, building their checks on top of the defined capability hooks. +For more details on capabilities, see capabilities(7) in the Linux +man-pages project. + +Based on http://kerneltrap.org/Linux/Documenting_Security_Module_Intent, +a new LSM is accepted into the kernel when its intent (a description of +what it tries to protect against and in what cases one would expect to +use it) has been appropriately documented in Documentation/security/. +This allows an LSM's code to be easily compared to its goals, and so +that end users and distros can make a more informed decision about which +LSMs suit their requirements. + +For extensive documentation on the available LSM hook interfaces, please +see include/linux/security.h. diff --git a/trunk/Documentation/security/credentials.txt b/trunk/Documentation/security/credentials.txt index fc0366cbd7ce..86257052e31a 100644 --- a/trunk/Documentation/security/credentials.txt +++ b/trunk/Documentation/security/credentials.txt @@ -221,10 +221,10 @@ The Linux kernel supports the following types of credentials: (5) LSM The Linux Security Module allows extra controls to be placed over the - operations that a task may do. Currently Linux supports two main - alternate LSM options: SELinux and Smack. + operations that a task may do. Currently Linux supports several LSM + options. - Both work by labelling the objects in a system and then applying sets of + Some work by labelling the objects in a system and then applying sets of rules (policies) that say what operations a task with one label may do to an object with another label. diff --git a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt index edad99abec21..c8c54544abc5 100644 --- a/trunk/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/trunk/Documentation/sound/alsa/HD-Audio-Models.txt @@ -42,19 +42,7 @@ ALC260 ALC262 ====== - fujitsu Fujitsu Laptop - benq Benq ED8 - benq-t31 Benq T31 - hippo Hippo (ATI) with jack detection, Sony UX-90s - hippo_1 Hippo (Benq) with jack detection - toshiba-s06 Toshiba S06 - toshiba-rx1 Toshiba RX1 - tyan Tyan Thunder n6650W (S2915-E) - ultra Samsung Q1 Ultra Vista model - lenovo-3000 Lenovo 3000 y410 - nec NEC Versa S9100 - basic fixed pin assignment w/o SPDIF - auto auto-config reading BIOS (default) + N/A ALC267/268 ========== @@ -350,7 +338,6 @@ STAC92HD83* mic-ref Reference board with power management for ports dell-s14 Dell laptop dell-vostro-3500 Dell Vostro 3500 laptop - hp HP laptops with (inverted) mute-LED hp-dv7-4000 HP dv-7 4000 auto BIOS setup (default) diff --git a/trunk/Documentation/sound/alsa/compress_offload.txt b/trunk/Documentation/sound/alsa/compress_offload.txt new file mode 100644 index 000000000000..c83a835350f0 --- /dev/null +++ b/trunk/Documentation/sound/alsa/compress_offload.txt @@ -0,0 +1,188 @@ + compress_offload.txt + ===================== + Pierre-Louis.Bossart + Vinod Koul + +Overview + +Since its early days, the ALSA API was defined with PCM support or +constant bitrates payloads such as IEC61937 in mind. Arguments and +returned values in frames are the norm, making it a challenge to +extend the existing API to compressed data streams. + +In recent years, audio digital signal processors (DSP) were integrated +in system-on-chip designs, and DSPs are also integrated in audio +codecs. Processing compressed data on such DSPs results in a dramatic +reduction of power consumption compared to host-based +processing. Support for such hardware has not been very good in Linux, +mostly because of a lack of a generic API available in the mainline +kernel. + +Rather than requiring a compability break with an API change of the +ALSA PCM interface, a new 'Compressed Data' API is introduced to +provide a control and data-streaming interface for audio DSPs. + +The design of this API was inspired by the 2-year experience with the +Intel Moorestown SOC, with many corrections required to upstream the +API in the mainline kernel instead of the staging tree and make it +usable by others. + +Requirements + +The main requirements are: + +- separation between byte counts and time. Compressed formats may have + a header per file, per frame, or no header at all. The payload size + may vary from frame-to-frame. As a result, it is not possible to + estimate reliably the duration of audio buffers when handling + compressed data. Dedicated mechanisms are required to allow for + reliable audio-video synchronization, which requires precise + reporting of the number of samples rendered at any given time. + +- Handling of multiple formats. PCM data only requires a specification + of the sampling rate, number of channels and bits per sample. In + contrast, compressed data comes in a variety of formats. Audio DSPs + may also provide support for a limited number of audio encoders and + decoders embedded in firmware, or may support more choices through + dynamic download of libraries. + +- Focus on main formats. This API provides support for the most + popular formats used for audio and video capture and playback. It is + likely that as audio compression technology advances, new formats + will be added. + +- Handling of multiple configurations. Even for a given format like + AAC, some implementations may support AAC multichannel but HE-AAC + stereo. Likewise WMA10 level M3 may require too much memory and cpu + cycles. The new API needs to provide a generic way of listing these + formats. + +- Rendering/Grabbing only. This API does not provide any means of + hardware acceleration, where PCM samples are provided back to + user-space for additional processing. This API focuses instead on + streaming compressed data to a DSP, with the assumption that the + decoded samples are routed to a physical output or logical back-end. + + - Complexity hiding. Existing user-space multimedia frameworks all + have existing enums/structures for each compressed format. This new + API assumes the existence of a platform-specific compatibility layer + to expose, translate and make use of the capabilities of the audio + DSP, eg. Android HAL or PulseAudio sinks. By construction, regular + applications are not supposed to make use of this API. + + +Design + +The new API shares a number of concepts with with the PCM API for flow +control. Start, pause, resume, drain and stop commands have the same +semantics no matter what the content is. + +The concept of memory ring buffer divided in a set of fragments is +borrowed from the ALSA PCM API. However, only sizes in bytes can be +specified. + +Seeks/trick modes are assumed to be handled by the host. + +The notion of rewinds/forwards is not supported. Data committed to the +ring buffer cannot be invalidated, except when dropping all buffers. + +The Compressed Data API does not make any assumptions on how the data +is transmitted to the audio DSP. DMA transfers from main memory to an +embedded audio cluster or to a SPI interface for external DSPs are +possible. As in the ALSA PCM case, a core set of routines is exposed; +each driver implementer will have to write support for a set of +mandatory routines and possibly make use of optional ones. + +The main additions are + +- get_caps +This routine returns the list of audio formats supported. Querying the +codecs on a capture stream will return encoders, decoders will be +listed for playback streams. + +- get_codec_caps For each codec, this routine returns a list of +capabilities. The intent is to make sure all the capabilities +correspond to valid settings, and to minimize the risks of +configuration failures. For example, for a complex codec such as AAC, +the number of channels supported may depend on a specific profile. If +the capabilities were exposed with a single descriptor, it may happen +that a specific combination of profiles/channels/formats may not be +supported. Likewise, embedded DSPs have limited memory and cpu cycles, +it is likely that some implementations make the list of capabilities +dynamic and dependent on existing workloads. In addition to codec +settings, this routine returns the minimum buffer size handled by the +implementation. This information can be a function of the DMA buffer +sizes, the number of bytes required to synchronize, etc, and can be +used by userspace to define how much needs to be written in the ring +buffer before playback can start. + +- set_params +This routine sets the configuration chosen for a specific codec. The +most important field in the parameters is the codec type; in most +cases decoders will ignore other fields, while encoders will strictly +comply to the settings + +- get_params +This routines returns the actual settings used by the DSP. Changes to +the settings should remain the exception. + +- get_timestamp +The timestamp becomes a multiple field structure. It lists the number +of bytes transferred, the number of samples processed and the number +of samples rendered/grabbed. All these values can be used to determine +the avarage bitrate, figure out if the ring buffer needs to be +refilled or the delay due to decoding/encoding/io on the DSP. + +Note that the list of codecs/profiles/modes was derived from the +OpenMAX AL specification instead of reinventing the wheel. +Modifications include: +- Addition of FLAC and IEC formats +- Merge of encoder/decoder capabilities +- Profiles/modes listed as bitmasks to make descriptors more compact +- Addition of set_params for decoders (missing in OpenMAX AL) +- Addition of AMR/AMR-WB encoding modes (missing in OpenMAX AL) +- Addition of format information for WMA +- Addition of encoding options when required (derived from OpenMAX IL) +- Addition of rateControlSupported (missing in OpenMAX AL) + +Not supported: + +- Support for VoIP/circuit-switched calls is not the target of this + API. Support for dynamic bit-rate changes would require a tight + coupling between the DSP and the host stack, limiting power savings. + +- Packet-loss concealment is not supported. This would require an + additional interface to let the decoder synthesize data when frames + are lost during transmission. This may be added in the future. + +- Volume control/routing is not handled by this API. Devices exposing a + compressed data interface will be considered as regular ALSA devices; + volume changes and routing information will be provided with regular + ALSA kcontrols. + +- Embedded audio effects. Such effects should be enabled in the same + manner, no matter if the input was PCM or compressed. + +- multichannel IEC encoding. Unclear if this is required. + +- Encoding/decoding acceleration is not supported as mentioned + above. It is possible to route the output of a decoder to a capture + stream, or even implement transcoding capabilities. This routing + would be enabled with ALSA kcontrols. + +- Audio policy/resource management. This API does not provide any + hooks to query the utilization of the audio DSP, nor any premption + mechanisms. + +- No notion of underun/overrun. Since the bytes written are compressed + in nature and data written/read doesn't translate directly to + rendered output in time, this does not deal with underrun/overun and + maybe dealt in user-library + +Credits: +- Mark Brown and Liam Girdwood for discussions on the need for this API +- Harsha Priya for her work on intel_sst compressed API +- Rakesh Ughreja for valuable feedback +- Sing Nallasellan, Sikkandar Madar and Prasanna Samaga for + demonstrating and quantifying the benefits of audio offload on a + real platform. diff --git a/trunk/Documentation/sysctl/kernel.txt b/trunk/Documentation/sysctl/kernel.txt index 1f2463671a1a..8c20fbd8b42d 100644 --- a/trunk/Documentation/sysctl/kernel.txt +++ b/trunk/Documentation/sysctl/kernel.txt @@ -49,6 +49,7 @@ show up in /proc/sys/kernel: - panic - panic_on_oops - panic_on_unrecovered_nmi +- panic_on_stackoverflow - pid_max - powersave-nap [ PPC only ] - printk @@ -393,6 +394,19 @@ Controls the kernel's behaviour when an oops or BUG is encountered. ============================================================== +panic_on_stackoverflow: + +Controls the kernel's behavior when detecting the overflows of +kernel, IRQ and exception stacks except a user stack. +This file shows up if CONFIG_DEBUG_STACKOVERFLOW is enabled. + +0: try to continue operation. + +1: panic immediately. + +============================================================== + + pid_max: PID allocation wrap value. When the kernel's next PID value @@ -401,6 +415,14 @@ PIDs of value pid_max or larger are not allocated. ============================================================== +ns_last_pid: + +The last pid allocated in the current (the one task using this sysctl +lives in) pid namespace. When selecting a pid for a next task on fork +kernel tries to allocate a number starting from this one. + +============================================================== + powersave-nap: (PPC only) If set, Linux-PPC will use the 'nap' mode of powersaving, diff --git a/trunk/Documentation/vm/slub.txt b/trunk/Documentation/vm/slub.txt index f464f47bc60d..6752870c4970 100644 --- a/trunk/Documentation/vm/slub.txt +++ b/trunk/Documentation/vm/slub.txt @@ -117,7 +117,7 @@ can be influenced by kernel parameters: slub_min_objects=x (default 4) slub_min_order=x (default 0) -slub_max_order=x (default 1) +slub_max_order=x (default 3 (PAGE_ALLOC_COSTLY_ORDER)) slub_min_objects allows to specify how many objects must at least fit into one slab in order for the allocation order to be acceptable. @@ -131,7 +131,10 @@ slub_min_objects. slub_max_order specified the order at which slub_min_objects should no longer be checked. This is useful to avoid SLUB trying to generate super large order pages to fit slub_min_objects of a slab cache with -large object sizes into one high order page. +large object sizes into one high order page. Setting command line +parameter debug_guardpage_minorder=N (N > 0), forces setting +slub_max_order to 0, what cause minimum possible order of slabs +allocation. SLUB Debug output ----------------- diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 311b0c405572..1094edf0da17 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -537,6 +537,7 @@ F: sound/soc/codecs/adau* F: sound/soc/codecs/adav* F: sound/soc/codecs/ad1* F: sound/soc/codecs/ssm* +F: sound/soc/codecs/sigmadsp.* ANALOG DEVICES INC ASOC DRIVERS L: uclinux-dist-devel@blackfin.uclinux.org diff --git a/trunk/arch/Kconfig b/trunk/arch/Kconfig index 2505740b81d2..4f55c736be11 100644 --- a/trunk/arch/Kconfig +++ b/trunk/arch/Kconfig @@ -185,4 +185,18 @@ config HAVE_RCU_TABLE_FREE config ARCH_HAVE_NMI_SAFE_CMPXCHG bool +config HAVE_ALIGNED_STRUCT_PAGE + bool + help + This makes sure that struct pages are double word aligned and that + e.g. the SLUB allocator can perform double word atomic operations + on a struct page for better performance. However selecting this + might increase the size of a struct page by a word. + +config HAVE_CMPXCHG_LOCAL + bool + +config HAVE_CMPXCHG_DOUBLE + bool + source "kernel/gcov/Kconfig" diff --git a/trunk/arch/alpha/kernel/pci.c b/trunk/arch/alpha/kernel/pci.c index f3cae275d3f5..8c723c1b086a 100644 --- a/trunk/arch/alpha/kernel/pci.c +++ b/trunk/arch/alpha/kernel/pci.c @@ -281,27 +281,9 @@ pcibios_fixup_device_resources(struct pci_dev *dev, struct pci_bus *bus) void __devinit pcibios_fixup_bus(struct pci_bus *bus) { - /* Propagate hose info into the subordinate devices. */ - - struct pci_controller *hose = bus->sysdata; struct pci_dev *dev = bus->self; - if (!dev) { - /* Root bus. */ - u32 pci_mem_end; - u32 sg_base = hose->sg_pci ? hose->sg_pci->dma_base : ~0; - unsigned long end; - - bus->resource[0] = hose->io_space; - bus->resource[1] = hose->mem_space; - - /* Adjust hose mem_space limit to prevent PCI allocations - in the iommu windows. */ - pci_mem_end = min((u32)__direct_map_base, sg_base) - 1; - end = hose->mem_space->start + pci_mem_end; - if (hose->mem_space->end > end) - hose->mem_space->end = end; - } else if (pci_probe_only && + if (pci_probe_only && dev && (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI) { pci_read_bridge_bases(bus); pcibios_fixup_device_resources(dev, bus); @@ -414,13 +396,31 @@ void __init common_init_pci(void) { struct pci_controller *hose; + struct list_head resources; struct pci_bus *bus; int next_busno; int need_domain_info = 0; + u32 pci_mem_end; + u32 sg_base; + unsigned long end; /* Scan all of the recorded PCI controllers. */ for (next_busno = 0, hose = hose_head; hose; hose = hose->next) { - bus = pci_scan_bus(next_busno, alpha_mv.pci_ops, hose); + sg_base = hose->sg_pci ? hose->sg_pci->dma_base : ~0; + + /* Adjust hose mem_space limit to prevent PCI allocations + in the iommu windows. */ + pci_mem_end = min((u32)__direct_map_base, sg_base) - 1; + end = hose->mem_space->start + pci_mem_end; + if (hose->mem_space->end > end) + hose->mem_space->end = end; + + INIT_LIST_HEAD(&resources); + pci_add_resource(&resources, hose->io_space); + pci_add_resource(&resources, hose->mem_space); + + bus = pci_scan_root_bus(NULL, next_busno, alpha_mv.pci_ops, + hose, &resources); hose->bus = bus; hose->need_domain_info = need_domain_info; next_busno = bus->subordinate + 1; diff --git a/trunk/arch/arm/common/it8152.c b/trunk/arch/arm/common/it8152.c index b539ec855e1a..d1bcd7b13ebc 100644 --- a/trunk/arch/arm/common/it8152.c +++ b/trunk/arch/arm/common/it8152.c @@ -299,8 +299,8 @@ int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) goto err1; } - sys->resource[0] = &it8152_io; - sys->resource[1] = &it8152_mem; + pci_add_resource(&sys->resources, &it8152_io); + pci_add_resource(&sys->resources, &it8152_mem); if (platform_notify || platform_notify_remove) { printk(KERN_ERR "PCI: Can't use platform_notify\n"); @@ -327,6 +327,9 @@ int __init it8152_pci_setup(int nr, struct pci_sys_data *sys) */ unsigned int pcibios_max_latency = 255; +/* ITE bridge requires setting latency timer to avoid early bus access + termination by PCI bus master devices +*/ void pcibios_set_master(struct pci_dev *dev) { u8 lat; @@ -352,7 +355,7 @@ void pcibios_set_master(struct pci_dev *dev) struct pci_bus * __init it8152_pci_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(nr, &it8152_ops, sys); + return pci_scan_root_bus(NULL, nr, &it8152_ops, sys, &sys->resources); } EXPORT_SYMBOL(dma_set_coherent_mask); diff --git a/trunk/arch/arm/common/via82c505.c b/trunk/arch/arm/common/via82c505.c index 8421d39109b3..67dd2affc57a 100644 --- a/trunk/arch/arm/common/via82c505.c +++ b/trunk/arch/arm/common/via82c505.c @@ -86,7 +86,8 @@ int __init via82c505_setup(int nr, struct pci_sys_data *sys) struct pci_bus * __init via82c505_scan_bus(int nr, struct pci_sys_data *sysdata) { if (nr == 0) - return pci_scan_bus(0, &via82c505_ops, sysdata); + return pci_scan_root_bus(NULL, 0, &via82c505_ops, sysdata, + &sysdata->resources); return NULL; } diff --git a/trunk/arch/arm/configs/bonito_defconfig b/trunk/arch/arm/configs/bonito_defconfig new file mode 100644 index 000000000000..54571082d920 --- /dev/null +++ b/trunk/arch/arm/configs/bonito_defconfig @@ -0,0 +1,72 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_SHMOBILE=y +CONFIG_ARCH_R8A7740=y +CONFIG_MACH_BONITO=y +# CONFIG_SH_TIMER_TMU is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttySC5,115200 earlyprintk=sh-sci.5,115200 ignore_loglevel" +CONFIG_KEXEC=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +# CONFIG_SUSPEND is not set +CONFIG_PM_RUNTIME=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_FIRMWARE_IN_KERNEL is not set +CONFIG_MTD=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_ARM_INTEGRATOR=y +CONFIG_MTD_BLOCK2MTD=y +CONFIG_SCSI=y +CONFIG_BLK_DEV_SD=y +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=9 +CONFIG_SERIAL_SH_SCI_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_SH_MOBILE=y +CONFIG_GPIO_SYSFS=y +# CONFIG_HWMON is not set +# CONFIG_MFD_SUPPORT is not set +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_UIO=y +CONFIG_UIO_PDRV=y +CONFIG_UIO_PDRV_GENIRQ=y +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ARM_UNWIND is not set diff --git a/trunk/arch/arm/configs/kota2_defconfig b/trunk/arch/arm/configs/kota2_defconfig new file mode 100644 index 000000000000..b7735d6347ac --- /dev/null +++ b/trunk/arch/arm/configs/kota2_defconfig @@ -0,0 +1,122 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_CGROUPS=y +CONFIG_CPUSETS=y +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +CONFIG_SYSCTL_SYSCALL=y +CONFIG_EMBEDDED=y +CONFIG_SLAB=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_SHMOBILE=y +CONFIG_KEYBOARD_GPIO_POLLED=y +CONFIG_ARCH_SH73A0=y +CONFIG_MACH_KOTA2=y +CONFIG_MEMORY_SIZE=0x1e0000000 +# CONFIG_SH_TIMER_TMU is not set +# CONFIG_SWP_EMULATE is not set +CONFIG_CPU_BPREDICT_DISABLE=y +CONFIG_ARM_ERRATA_460075=y +CONFIG_ARM_ERRATA_742230=y +CONFIG_ARM_ERRATA_742231=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_ERRATA_751472=y +CONFIG_PL310_ERRATA_753970=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_NO_HZ=y +CONFIG_SMP=y +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_HIGHMEM=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel" +CONFIG_CMDLINE_FORCE=y +CONFIG_KEXEC=y +CONFIG_CPU_IDLE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_PM_RUNTIME=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_CFG80211=y +CONFIG_WIRELESS_EXT_SYSFS=y +CONFIG_MAC80211=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_BLK_DEV is not set +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +CONFIG_B43=y +CONFIG_B43_PHY_N=y +CONFIG_B43_DEBUG=y +CONFIG_INPUT_SPARSEKMAP=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_SH_KEYSC=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=9 +CONFIG_SERIAL_SH_SCI_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_I2C_SH_MOBILE=y +# CONFIG_HWMON is not set +CONFIG_BCMA=y +CONFIG_BCMA_DEBUG=y +CONFIG_FB=y +CONFIG_FB_SH_MOBILE_LCDC=y +CONFIG_LCD_PLATFORM=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_MMC_SDHI=y +CONFIG_MMC_SH_MMCIF=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_RENESAS_TPU=y +CONFIG_LEDS_TRIGGERS=y +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_REDUCED=y +# CONFIG_FTRACE is not set +CONFIG_DEBUG_USER=y diff --git a/trunk/arch/arm/configs/marzen_defconfig b/trunk/arch/arm/configs/marzen_defconfig new file mode 100644 index 000000000000..864f9a5c39dd --- /dev/null +++ b/trunk/arch/arm/configs/marzen_defconfig @@ -0,0 +1,87 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_EXPERIMENTAL=y +CONFIG_KERNEL_LZMA=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_SYSCTL_SYSCALL=y +CONFIG_EMBEDDED=y +CONFIG_SLAB=y +# CONFIG_BLOCK is not set +CONFIG_ARCH_SHMOBILE=y +CONFIG_ARCH_R8A7779=y +CONFIG_MACH_MARZEN=y +CONFIG_MEMORY_START=0x60000000 +CONFIG_MEMORY_SIZE=0x10000000 +CONFIG_SHMOBILE_TIMER_HZ=1024 +# CONFIG_SH_TIMER_CMT is not set +# CONFIG_SWP_EMULATE is not set +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_458693=y +CONFIG_ARM_ERRATA_460075=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_NO_HZ=y +CONFIG_SMP=y +# CONFIG_ARM_CPU_TOPOLOGY is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_HIGHMEM=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel" +CONFIG_CMDLINE_FORCE=y +CONFIG_KEXEC=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_PM_RUNTIME=y +CONFIG_NET=y +CONFIG_INET=y +# CONFIG_IPV6 is not set +# CONFIG_WIRELESS is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +CONFIG_NETDEVICES=y +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_SMC911X=y +CONFIG_SMSC911X=y +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_WLAN is not set +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=6 +CONFIG_SERIAL_SH_SCI_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_GPIO_SYSFS=y +# CONFIG_HWMON is not set +CONFIG_SSB=y +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_UIO=y +CONFIG_UIO_PDRV_GENIRQ=y +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_FILE_LOCKING is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +CONFIG_TMPFS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_REDUCED=y +# CONFIG_FTRACE is not set +CONFIG_DEBUG_USER=y +CONFIG_AVERAGE=y diff --git a/trunk/arch/arm/include/asm/mach/pci.h b/trunk/arch/arm/include/asm/mach/pci.h index 186efd4e05c9..d943b7d20f11 100644 --- a/trunk/arch/arm/include/asm/mach/pci.h +++ b/trunk/arch/arm/include/asm/mach/pci.h @@ -40,7 +40,7 @@ struct pci_sys_data { u64 mem_offset; /* bus->cpu memory mapping offset */ unsigned long io_offset; /* bus->cpu IO mapping offset */ struct pci_bus *bus; /* PCI bus */ - struct resource *resource[3]; /* Primary PCI bus resources */ + struct list_head resources; /* root bus resources (apertures) */ /* Bridge swizzling */ u8 (*swizzle)(struct pci_dev *, u8 *); /* IRQ mapping */ diff --git a/trunk/arch/arm/include/asm/pci.h b/trunk/arch/arm/include/asm/pci.h index 2b1f245db0c6..da337ba57ffd 100644 --- a/trunk/arch/arm/include/asm/pci.h +++ b/trunk/arch/arm/include/asm/pci.h @@ -31,18 +31,6 @@ static inline int pci_proc_domain(struct pci_bus *bus) } #endif /* CONFIG_PCI_DOMAINS */ -#ifdef CONFIG_PCI_HOST_ITE8152 -/* ITE bridge requires setting latency timer to avoid early bus access - termination by PIC bus mater devices -*/ -extern void pcibios_set_master(struct pci_dev *dev); -#else -static inline void pcibios_set_master(struct pci_dev *dev) -{ - /* No special bus mastering setup handling */ -} -#endif - static inline void pcibios_penalize_isa_irq(int irq, int active) { /* We don't do dynamic PCI IRQ allocation */ diff --git a/trunk/arch/arm/kernel/bios32.c b/trunk/arch/arm/kernel/bios32.c index b530e9116a0c..f58ba3589908 100644 --- a/trunk/arch/arm/kernel/bios32.c +++ b/trunk/arch/arm/kernel/bios32.c @@ -316,21 +316,6 @@ pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev) } } -static void __devinit -pbus_assign_bus_resources(struct pci_bus *bus, struct pci_sys_data *root) -{ - struct pci_dev *dev = bus->self; - int i; - - if (!dev) { - /* - * Assign root bus resources. - */ - for (i = 0; i < 3; i++) - bus->resource[i] = root->resource[i]; - } -} - /* * pcibios_fixup_bus - Called after each bus is probed, * but before its children are examined. @@ -341,8 +326,6 @@ void pcibios_fixup_bus(struct pci_bus *bus) struct pci_dev *dev; u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK; - pbus_assign_bus_resources(bus, root); - /* * Walk the devices on this bus, working out what we can * and can't support. @@ -508,12 +491,18 @@ static void __init pcibios_init_hw(struct hw_pci *hw) sys->busnr = busnr; sys->swizzle = hw->swizzle; sys->map_irq = hw->map_irq; - sys->resource[0] = &ioport_resource; - sys->resource[1] = &iomem_resource; + INIT_LIST_HEAD(&sys->resources); ret = hw->setup(nr, sys); if (ret > 0) { + if (list_empty(&sys->resources)) { + pci_add_resource(&sys->resources, + &ioport_resource); + pci_add_resource(&sys->resources, + &iomem_resource); + } + sys->bus = hw->scan(nr, sys); if (!sys->bus) @@ -571,6 +560,13 @@ void __init pci_common_init(struct hw_pci *hw) } } +#ifndef CONFIG_PCI_HOST_ITE8152 +void pcibios_set_master(struct pci_dev *dev) +{ + /* No special bus mastering setup handling */ +} +#endif + char * __init pcibios_setup(char *str) { if (!strcmp(str, "debug")) { diff --git a/trunk/arch/arm/mach-cns3xxx/pcie.c b/trunk/arch/arm/mach-cns3xxx/pcie.c index 0f8fca48a5ed..e159d69967c9 100644 --- a/trunk/arch/arm/mach-cns3xxx/pcie.c +++ b/trunk/arch/arm/mach-cns3xxx/pcie.c @@ -151,13 +151,12 @@ static int cns3xxx_pci_setup(int nr, struct pci_sys_data *sys) struct cns3xxx_pcie *cnspci = sysdata_to_cnspci(sys); struct resource *res_io = &cnspci->res_io; struct resource *res_mem = &cnspci->res_mem; - struct resource **sysres = sys->resource; BUG_ON(request_resource(&iomem_resource, res_io) || request_resource(&iomem_resource, res_mem)); - sysres[0] = res_io; - sysres[1] = res_mem; + pci_add_resource(&sys->resources, res_io); + pci_add_resource(&sys->resources, res_mem); return 1; } @@ -169,7 +168,8 @@ static struct pci_ops cns3xxx_pcie_ops = { static struct pci_bus *cns3xxx_pci_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(sys->busnr, &cns3xxx_pcie_ops, sys); + return pci_scan_root_bus(NULL, sys->busnr, &cns3xxx_pcie_ops, sys, + &sys->resources); } static int cns3xxx_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) diff --git a/trunk/arch/arm/mach-dove/pcie.c b/trunk/arch/arm/mach-dove/pcie.c index 6c11a4df7178..52e96d397ba8 100644 --- a/trunk/arch/arm/mach-dove/pcie.c +++ b/trunk/arch/arm/mach-dove/pcie.c @@ -69,7 +69,7 @@ static int __init dove_pcie_setup(int nr, struct pci_sys_data *sys) pp->res[0].flags = IORESOURCE_IO; if (request_resource(&ioport_resource, &pp->res[0])) panic("Request PCIe IO resource failed\n"); - sys->resource[0] = &pp->res[0]; + pci_add_resource(&sys->resources, &pp->res[0]); /* * IORESOURCE_MEM @@ -88,9 +88,7 @@ static int __init dove_pcie_setup(int nr, struct pci_sys_data *sys) pp->res[1].flags = IORESOURCE_MEM; if (request_resource(&iomem_resource, &pp->res[1])) panic("Request PCIe Memory resource failed\n"); - sys->resource[1] = &pp->res[1]; - - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &pp->res[1]); return 1; } @@ -184,7 +182,8 @@ dove_pcie_scan_bus(int nr, struct pci_sys_data *sys) struct pci_bus *bus; if (nr < num_pcie_ports) { - bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); + bus = pci_scan_root_bus(NULL, sys->busnr, &pcie_ops, sys, + &sys->resources); } else { bus = NULL; BUG(); diff --git a/trunk/arch/arm/mach-exynos/include/mach/cpufreq.h b/trunk/arch/arm/mach-exynos/include/mach/cpufreq.h new file mode 100644 index 000000000000..3df27f2d5034 --- /dev/null +++ b/trunk/arch/arm/mach-exynos/include/mach/cpufreq.h @@ -0,0 +1,34 @@ +/* linux/arch/arm/mach-exynos/include/mach/cpufreq.h + * + * Copyright (c) 2010 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * EXYNOS - CPUFreq support + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +enum cpufreq_level_index { + L0, L1, L2, L3, L4, + L5, L6, L7, L8, L9, + L10, L11, L12, L13, L14, + L15, L16, L17, L18, L19, + L20, +}; + +struct exynos_dvfs_info { + unsigned long mpll_freq_khz; + unsigned int pll_safe_idx; + unsigned int pm_lock_idx; + unsigned int max_support_idx; + unsigned int min_support_idx; + struct clk *cpu_clk; + unsigned int *volt_table; + struct cpufreq_frequency_table *freq_table; + void (*set_freq)(unsigned int, unsigned int); + bool (*need_apll_change)(unsigned int, unsigned int); +}; + +extern int exynos4210_cpufreq_init(struct exynos_dvfs_info *); diff --git a/trunk/arch/arm/mach-footbridge/dc21285.c b/trunk/arch/arm/mach-footbridge/dc21285.c index 18c32a5541d9..f685650c25d7 100644 --- a/trunk/arch/arm/mach-footbridge/dc21285.c +++ b/trunk/arch/arm/mach-footbridge/dc21285.c @@ -275,9 +275,9 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) allocate_resource(&iomem_resource, &res[0], 0x40000000, 0x80000000, 0xffffffff, 0x40000000, NULL, NULL); - sys->resource[0] = &ioport_resource; - sys->resource[1] = &res[0]; - sys->resource[2] = &res[1]; + pci_add_resource(&sys->resources, &ioport_resource); + pci_add_resource(&sys->resources, &res[0]); + pci_add_resource(&sys->resources, &res[1]); sys->mem_offset = DC21285_PCI_MEM; return 1; @@ -285,7 +285,7 @@ int __init dc21285_setup(int nr, struct pci_sys_data *sys) struct pci_bus * __init dc21285_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(0, &dc21285_ops, sys); + return pci_scan_root_bus(NULL, 0, &dc21285_ops, sys, &sys->resources); } #define dc21285_request_irq(_a, _b, _c, _d, _e) \ diff --git a/trunk/arch/arm/mach-integrator/pci_v3.c b/trunk/arch/arm/mach-integrator/pci_v3.c index b4d8f8b8a085..3c82566acece 100644 --- a/trunk/arch/arm/mach-integrator/pci_v3.c +++ b/trunk/arch/arm/mach-integrator/pci_v3.c @@ -359,7 +359,7 @@ static struct resource pre_mem = { .flags = IORESOURCE_MEM | IORESOURCE_PREFETCH, }; -static int __init pci_v3_setup_resources(struct resource **resource) +static int __init pci_v3_setup_resources(struct pci_sys_data *sys) { if (request_resource(&iomem_resource, &non_mem)) { printk(KERN_ERR "PCI: unable to allocate non-prefetchable " @@ -374,13 +374,13 @@ static int __init pci_v3_setup_resources(struct resource **resource) } /* - * bus->resource[0] is the IO resource for this bus - * bus->resource[1] is the mem resource for this bus - * bus->resource[2] is the prefetch mem resource for this bus + * the IO resource for this bus + * the mem resource for this bus + * the prefetch mem resource for this bus */ - resource[0] = &ioport_resource; - resource[1] = &non_mem; - resource[2] = &pre_mem; + pci_add_resource(&sys->resources, &ioport_resource); + pci_add_resource(&sys->resources, &non_mem); + pci_add_resource(&sys->resources, &pre_mem); return 1; } @@ -481,7 +481,7 @@ int __init pci_v3_setup(int nr, struct pci_sys_data *sys) if (nr == 0) { sys->mem_offset = PHYS_PCI_MEM_BASE; - ret = pci_v3_setup_resources(sys->resource); + ret = pci_v3_setup_resources(sys); } return ret; @@ -489,7 +489,8 @@ int __init pci_v3_setup(int nr, struct pci_sys_data *sys) struct pci_bus * __init pci_v3_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(sys->busnr, &pci_v3_ops, sys); + return pci_scan_root_bus(NULL, sys->busnr, &pci_v3_ops, sys, + &sys->resources); } /* diff --git a/trunk/arch/arm/mach-iop13xx/pci.c b/trunk/arch/arm/mach-iop13xx/pci.c index db012fadf88c..b8f5a8736511 100644 --- a/trunk/arch/arm/mach-iop13xx/pci.c +++ b/trunk/arch/arm/mach-iop13xx/pci.c @@ -537,14 +537,14 @@ struct pci_bus *iop13xx_scan_bus(int nr, struct pci_sys_data *sys) while(time_before(jiffies, atux_trhfa_timeout)) udelay(100); - bus = pci_bus_atux = pci_scan_bus(sys->busnr, - &iop13xx_atux_ops, - sys); + bus = pci_bus_atux = pci_scan_root_bus(NULL, sys->busnr, + &iop13xx_atux_ops, + sys, &sys->resources); break; case IOP13XX_INIT_ATU_ATUE: - bus = pci_bus_atue = pci_scan_bus(sys->busnr, - &iop13xx_atue_ops, - sys); + bus = pci_bus_atue = pci_scan_root_bus(NULL, sys->busnr, + &iop13xx_atue_ops, + sys, &sys->resources); break; } @@ -1084,9 +1084,8 @@ int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) request_resource(&ioport_resource, &res[0]); request_resource(&iomem_resource, &res[1]); - sys->resource[0] = &res[0]; - sys->resource[1] = &res[1]; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &res[0]); + pci_add_resource(&sys->resources, &res[1]); return 1; } diff --git a/trunk/arch/arm/mach-ixp2000/enp2611.c b/trunk/arch/arm/mach-ixp2000/enp2611.c index ee525416f0d2..e872d238cd0f 100644 --- a/trunk/arch/arm/mach-ixp2000/enp2611.c +++ b/trunk/arch/arm/mach-ixp2000/enp2611.c @@ -145,7 +145,8 @@ static struct pci_ops enp2611_pci_ops = { static struct pci_bus * __init enp2611_pci_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(sys->busnr, &enp2611_pci_ops, sys); + return pci_scan_root_bus(NULL, sys->busnr, &enp2611_pci_ops, sys, + &sys->resources); } static int __init enp2611_pci_map_irq(const struct pci_dev *dev, u8 slot, diff --git a/trunk/arch/arm/mach-ixp2000/pci.c b/trunk/arch/arm/mach-ixp2000/pci.c index f5098b306fd3..626fda435aa9 100644 --- a/trunk/arch/arm/mach-ixp2000/pci.c +++ b/trunk/arch/arm/mach-ixp2000/pci.c @@ -132,7 +132,8 @@ static struct pci_ops ixp2000_pci_ops = { struct pci_bus *ixp2000_pci_scan_bus(int nr, struct pci_sys_data *sysdata) { - return pci_scan_bus(sysdata->busnr, &ixp2000_pci_ops, sysdata); + return pci_scan_root_bus(NULL, sysdata->busnr, &ixp2000_pci_ops, + sysdata, &sysdata->resources); } @@ -242,9 +243,8 @@ int ixp2000_pci_setup(int nr, struct pci_sys_data *sys) if (nr >= 1) return 0; - sys->resource[0] = &ixp2000_pci_io_space; - sys->resource[1] = &ixp2000_pci_mem_space; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &ixp2000_pci_io_space); + pci_add_resource(&sys->resources, &ixp2000_pci_mem_space); return 1; } diff --git a/trunk/arch/arm/mach-ixp23xx/pci.c b/trunk/arch/arm/mach-ixp23xx/pci.c index e6be5711c700..25b5c462cea2 100644 --- a/trunk/arch/arm/mach-ixp23xx/pci.c +++ b/trunk/arch/arm/mach-ixp23xx/pci.c @@ -143,7 +143,8 @@ struct pci_ops ixp23xx_pci_ops = { struct pci_bus *ixp23xx_pci_scan_bus(int nr, struct pci_sys_data *sysdata) { - return pci_scan_bus(sysdata->busnr, &ixp23xx_pci_ops, sysdata); + return pci_scan_root_bus(NULL, sysdata->busnr, &ixp23xx_pci_ops, + sysdata, &sysdata->resources); } int ixp23xx_pci_abort_handler(unsigned long addr, unsigned int fsr, struct pt_regs *regs) @@ -280,9 +281,8 @@ int ixp23xx_pci_setup(int nr, struct pci_sys_data *sys) if (nr >= 1) return 0; - sys->resource[0] = &ixp23xx_pci_io_space; - sys->resource[1] = &ixp23xx_pci_mem_space; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &ixp23xx_pci_io_space); + pci_add_resource(&sys->resources, &ixp23xx_pci_mem_space); return 1; } diff --git a/trunk/arch/arm/mach-ixp4xx/common-pci.c b/trunk/arch/arm/mach-ixp4xx/common-pci.c index 8325058ef871..5eff15f24bc2 100644 --- a/trunk/arch/arm/mach-ixp4xx/common-pci.c +++ b/trunk/arch/arm/mach-ixp4xx/common-pci.c @@ -472,9 +472,8 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys) request_resource(&ioport_resource, &res[0]); request_resource(&iomem_resource, &res[1]); - sys->resource[0] = &res[0]; - sys->resource[1] = &res[1]; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &res[0]); + pci_add_resource(&sys->resources, &res[1]); platform_notify = ixp4xx_pci_platform_notify; platform_notify_remove = ixp4xx_pci_platform_notify_remove; @@ -484,7 +483,8 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys) struct pci_bus * __devinit ixp4xx_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(sys->busnr, &ixp4xx_ops, sys); + return pci_scan_root_bus(NULL, sys->busnr, &ixp4xx_ops, sys, + &sys->resources); } int dma_set_coherent_mask(struct device *dev, u64 mask) diff --git a/trunk/arch/arm/mach-kirkwood/pcie.c b/trunk/arch/arm/mach-kirkwood/pcie.c index fb451bfe478b..a066a6d8d9d2 100644 --- a/trunk/arch/arm/mach-kirkwood/pcie.c +++ b/trunk/arch/arm/mach-kirkwood/pcie.c @@ -198,9 +198,8 @@ static int __init kirkwood_pcie_setup(int nr, struct pci_sys_data *sys) if (request_resource(&iomem_resource, &pp->res[1])) panic("Request PCIe%d Memory resource failed\n", index); - sys->resource[0] = &pp->res[0]; - sys->resource[1] = &pp->res[1]; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &pp->res[0]); + pci_add_resource(&sys->resources, &pp->res[1]); sys->io_offset = 0; /* @@ -236,7 +235,8 @@ kirkwood_pcie_scan_bus(int nr, struct pci_sys_data *sys) struct pci_bus *bus; if (nr < num_pcie_ports) { - bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); + bus = pci_scan_root_bus(NULL, sys->busnr, &pcie_ops, sys, + &sys->resources); } else { bus = NULL; BUG(); diff --git a/trunk/arch/arm/mach-ks8695/pci.c b/trunk/arch/arm/mach-ks8695/pci.c index c7c9a188d105..b26f992071df 100644 --- a/trunk/arch/arm/mach-ks8695/pci.c +++ b/trunk/arch/arm/mach-ks8695/pci.c @@ -143,7 +143,8 @@ static struct pci_ops ks8695_pci_ops = { static struct pci_bus* __init ks8695_pci_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(sys->busnr, &ks8695_pci_ops, sys); + return pci_scan_root_bus(NULL, sys->busnr, &ks8695_pci_ops, sys, + &sys->resources); } static struct resource pci_mem = { @@ -168,9 +169,8 @@ static int __init ks8695_pci_setup(int nr, struct pci_sys_data *sys) request_resource(&iomem_resource, &pci_mem); request_resource(&ioport_resource, &pci_io); - sys->resource[0] = &pci_io; - sys->resource[1] = &pci_mem; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &pci_io); + pci_add_resource(&sys->resources, &pci_mem); /* Assign and enable processor bridge */ ks8695_local_writeconfig(PCI_BASE_ADDRESS_0, KS8695_PCIMEM_PA); diff --git a/trunk/arch/arm/mach-mv78xx0/pcie.c b/trunk/arch/arm/mach-mv78xx0/pcie.c index 12fcb108b0e1..8459f6d7d8ca 100644 --- a/trunk/arch/arm/mach-mv78xx0/pcie.c +++ b/trunk/arch/arm/mach-mv78xx0/pcie.c @@ -155,9 +155,8 @@ static int __init mv78xx0_pcie_setup(int nr, struct pci_sys_data *sys) orion_pcie_set_local_bus_nr(pp->base, sys->busnr); orion_pcie_setup(pp->base); - sys->resource[0] = &pp->res[0]; - sys->resource[1] = &pp->res[1]; - sys->resource[2] = NULL; + pci_add_resource(&sys->resources, &pp->res[0]); + pci_add_resource(&sys->resources, &pp->res[1]); return 1; } @@ -251,7 +250,8 @@ mv78xx0_pcie_scan_bus(int nr, struct pci_sys_data *sys) struct pci_bus *bus; if (nr < num_pcie_ports) { - bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); + bus = pci_scan_root_bus(NULL, sys->busnr, &pcie_ops, sys, + &sys->resources); } else { bus = NULL; BUG(); diff --git a/trunk/arch/arm/mach-omap2/board-rx51-peripherals.c b/trunk/arch/arm/mach-omap2/board-rx51-peripherals.c index d67bcdf724d7..acb4e77b39ef 100644 --- a/trunk/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/trunk/arch/arm/mach-omap2/board-rx51-peripherals.c @@ -944,6 +944,9 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = { .platform_data = &rx51_lp5523_platform_data, }, #endif + { + I2C_BOARD_INFO("bq27200", 0x55), + }, { I2C_BOARD_INFO("tpa6130a2", 0x60), .platform_data = &rx51_tpa6130a2_data, diff --git a/trunk/arch/arm/mach-omap2/mcbsp.c b/trunk/arch/arm/mach-omap2/mcbsp.c index 28fcb27005d2..fb4bcf81a183 100644 --- a/trunk/arch/arm/mach-omap2/mcbsp.c +++ b/trunk/arch/arm/mach-omap2/mcbsp.c @@ -156,6 +156,9 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) else /* The FIFO has 128 locations */ pdata->buffer_size = 0x80; + } else if (oh->class->rev == MCBSP_CONFIG_TYPE4) { + /* The FIFO has 128 locations for all instances */ + pdata->buffer_size = 0x80; } if (oh->class->rev >= MCBSP_CONFIG_TYPE3) diff --git a/trunk/arch/arm/mach-orion5x/pci.c b/trunk/arch/arm/mach-orion5x/pci.c index a494c470e3e4..09a045f0c406 100644 --- a/trunk/arch/arm/mach-orion5x/pci.c +++ b/trunk/arch/arm/mach-orion5x/pci.c @@ -177,7 +177,7 @@ static int __init pcie_setup(struct pci_sys_data *sys) res[0].end = res[0].start + ORION5X_PCIE_IO_SIZE - 1; if (request_resource(&ioport_resource, &res[0])) panic("Request PCIe IO resource failed\n"); - sys->resource[0] = &res[0]; + pci_add_resource(&sys->resources, &res[0]); /* * IORESOURCE_MEM @@ -188,9 +188,8 @@ static int __init pcie_setup(struct pci_sys_data *sys) res[1].end = res[1].start + ORION5X_PCIE_MEM_SIZE - 1; if (request_resource(&iomem_resource, &res[1])) panic("Request PCIe Memory resource failed\n"); - sys->resource[1] = &res[1]; + pci_add_resource(&sys->resources, &res[1]); - sys->resource[2] = NULL; sys->io_offset = 0; return 1; @@ -506,7 +505,7 @@ static int __init pci_setup(struct pci_sys_data *sys) res[0].end = res[0].start + ORION5X_PCI_IO_SIZE - 1; if (request_resource(&ioport_resource, &res[0])) panic("Request PCI IO resource failed\n"); - sys->resource[0] = &res[0]; + pci_add_resource(&sys->resources, &res[0]); /* * IORESOURCE_MEM @@ -517,9 +516,8 @@ static int __init pci_setup(struct pci_sys_data *sys) res[1].end = res[1].start + ORION5X_PCI_MEM_SIZE - 1; if (request_resource(&iomem_resource, &res[1])) panic("Request PCI Memory resource failed\n"); - sys->resource[1] = &res[1]; + pci_add_resource(&sys->resources, &res[1]); - sys->resource[2] = NULL; sys->io_offset = 0; return 1; @@ -580,9 +578,11 @@ struct pci_bus __init *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys struct pci_bus *bus; if (nr == 0) { - bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); + bus = pci_scan_root_bus(NULL, sys->busnr, &pcie_ops, sys, + &sys->resources); } else if (nr == 1 && !orion5x_pci_disabled) { - bus = pci_scan_bus(sys->busnr, &pci_ops, sys); + bus = pci_scan_root_bus(NULL, sys->busnr, &pci_ops, sys, + &sys->resources); } else { bus = NULL; BUG(); diff --git a/trunk/arch/arm/mach-pxa/corgi.c b/trunk/arch/arm/mach-pxa/corgi.c index 66600f05e436..11f1e735966e 100644 --- a/trunk/arch/arm/mach-pxa/corgi.c +++ b/trunk/arch/arm/mach-pxa/corgi.c @@ -435,6 +435,14 @@ static struct platform_device corgiled_device = { }, }; +/* + * Corgi Audio + */ +static struct platform_device corgi_audio_device = { + .name = "corgi-audio", + .id = -1, +}; + /* * MMC/SD Device * @@ -641,6 +649,7 @@ static struct platform_device *devices[] __initdata = { &corgifb_device, &corgikbd_device, &corgiled_device, + &corgi_audio_device, &sharpsl_nand_device, &sharpsl_rom_device, }; diff --git a/trunk/arch/arm/mach-pxa/eseries.c b/trunk/arch/arm/mach-pxa/eseries.c index f79a610c62fc..4cb2391a782e 100644 --- a/trunk/arch/arm/mach-pxa/eseries.c +++ b/trunk/arch/arm/mach-pxa/eseries.c @@ -528,12 +528,18 @@ static struct platform_device e740_t7l66xb_device = { .resource = eseries_tmio_resources, }; +static struct platform_device e740_audio_device = { + .name = "e740-audio", + .id = -1, +}; + /* ----------------------------------------------------------------------- */ static struct platform_device *e740_devices[] __initdata = { &e740_fb_device, &e740_t7l66xb_device, &e7xx_gpio_vbus, + &e740_audio_device, }; static void __init e740_init(void) @@ -722,12 +728,18 @@ static struct platform_device e750_tc6393xb_device = { .resource = eseries_tmio_resources, }; +static struct platform_device e750_audio_device = { + .name = "e750-audio", + .id = -1, +}; + /* ------------------------------------------------------------- */ static struct platform_device *e750_devices[] __initdata = { &e750_fb_device, &e750_tc6393xb_device, &e7xx_gpio_vbus, + &e750_audio_device, }; static void __init e750_init(void) @@ -929,12 +941,18 @@ static struct platform_device e800_tc6393xb_device = { .resource = eseries_tmio_resources, }; +static struct platform_device e800_audio_device = { + .name = "e800-audio", + .id = -1, +}; + /* ----------------------------------------------------------------------- */ static struct platform_device *e800_devices[] __initdata = { &e800_fb_device, &e800_tc6393xb_device, &e800_gpio_vbus, + &e800_audio_device, }; static void __init e800_init(void) diff --git a/trunk/arch/arm/mach-pxa/poodle.c b/trunk/arch/arm/mach-pxa/poodle.c index 69036e42ca31..744baee12c0c 100644 --- a/trunk/arch/arm/mach-pxa/poodle.c +++ b/trunk/arch/arm/mach-pxa/poodle.c @@ -158,6 +158,11 @@ static struct scoop_pcmcia_config poodle_pcmcia_config = { EXPORT_SYMBOL(poodle_scoop_device); +static struct platform_device poodle_audio_device = { + .name = "poodle-audio", + .id = -1, +}; + /* LoCoMo device */ static struct resource locomo_resources[] = { [0] = { @@ -407,6 +412,7 @@ static struct platform_device sharpsl_rom_device = { static struct platform_device *devices[] __initdata = { &poodle_locomo_device, &poodle_scoop_device, + &poodle_audio_device, &sharpsl_nand_device, &sharpsl_rom_device, }; diff --git a/trunk/arch/arm/mach-pxa/stargate2.c b/trunk/arch/arm/mach-pxa/stargate2.c index d8a2467de92e..b0656e158d90 100644 --- a/trunk/arch/arm/mach-pxa/stargate2.c +++ b/trunk/arch/arm/mach-pxa/stargate2.c @@ -593,10 +593,16 @@ static struct pxa2xx_udc_mach_info imote2_udc_info __initdata = { .udc_command = sg2_udc_command, }; +static struct platform_device imote2_audio_device = { + .name = "imote2-audio", + .id = -1, +}; + static struct platform_device *imote2_devices[] = { &stargate2_flash_device, &imote2_leds, &sht15, + &imote2_audio_device, }; static void __init imote2_init(void) diff --git a/trunk/arch/arm/mach-pxa/tosa.c b/trunk/arch/arm/mach-pxa/tosa.c index 7ce5c436cc4e..4d4eb60bad1e 100644 --- a/trunk/arch/arm/mach-pxa/tosa.c +++ b/trunk/arch/arm/mach-pxa/tosa.c @@ -889,6 +889,11 @@ static struct platform_device wm9712_device = { .id = -1, }; +static struct platform_device tosa_audio_device = { + .name = "tosa-audio", + .id = -1, +}; + static struct platform_device *devices[] __initdata = { &tosascoop_device, &tosascoop_jc_device, @@ -901,6 +906,7 @@ static struct platform_device *devices[] __initdata = { &sharpsl_rom_device, &wm9712_device, &tosa_gpio_vbus, + &tosa_audio_device, }; static void tosa_poweroff(void) diff --git a/trunk/arch/arm/mach-s3c64xx/mach-crag6410.c b/trunk/arch/arm/mach-s3c64xx/mach-crag6410.c index 680fd758ff2d..1cc91d794c97 100644 --- a/trunk/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/trunk/arch/arm/mach-s3c64xx/mach-crag6410.c @@ -286,8 +286,8 @@ static struct platform_device lowland_device = { .id = -1, }; -static struct platform_device speyside_wm8962_device = { - .name = "speyside-wm8962", +static struct platform_device tobermory_device = { + .name = "tobermory", .id = -1, }; @@ -347,7 +347,7 @@ static struct platform_device *crag6410_devices[] __initdata = { &crag6410_lcd_powerdev, &crag6410_backlight_device, &speyside_device, - &speyside_wm8962_device, + &tobermory_device, &littlemill_device, &lowland_device, &wallvdd_device, diff --git a/trunk/arch/arm/mach-sa1100/pci-nanoengine.c b/trunk/arch/arm/mach-sa1100/pci-nanoengine.c index dd39fee59549..0d01ca788922 100644 --- a/trunk/arch/arm/mach-sa1100/pci-nanoengine.c +++ b/trunk/arch/arm/mach-sa1100/pci-nanoengine.c @@ -131,7 +131,8 @@ static int __init pci_nanoengine_map_irq(const struct pci_dev *dev, u8 slot, struct pci_bus * __init pci_nanoengine_scan_bus(int nr, struct pci_sys_data *sys) { - return pci_scan_bus(sys->busnr, &pci_nano_ops, sys); + return pci_scan_root_bus(NULL, sys->busnr, &pci_nano_ops, sys, + &sys->resources); } static struct resource pci_io_ports = { @@ -226,7 +227,7 @@ static struct resource pci_prefetchable_memory = { .flags = IORESOURCE_MEM | IORESOURCE_PREFETCH, }; -static int __init pci_nanoengine_setup_resources(struct resource **resource) +static int __init pci_nanoengine_setup_resources(struct pci_sys_data *sys) { if (request_resource(&ioport_resource, &pci_io_ports)) { printk(KERN_ERR "PCI: unable to allocate io port region\n"); @@ -243,9 +244,9 @@ static int __init pci_nanoengine_setup_resources(struct resource **resource) printk(KERN_ERR "PCI: unable to allocate prefetchable\n"); return -EBUSY; } - resource[0] = &pci_io_ports; - resource[1] = &pci_non_prefetchable_memory; - resource[2] = &pci_prefetchable_memory; + pci_add_resource(&sys->resources, &pci_io_ports); + pci_add_resource(&sys->resources, &pci_non_prefetchable_memory); + pci_add_resource(&sys->resources, &pci_prefetchable_memory); return 1; } @@ -260,7 +261,7 @@ int __init pci_nanoengine_setup(int nr, struct pci_sys_data *sys) if (nr == 0) { sys->mem_offset = NANO_PCI_MEM_RW_PHYS; sys->io_offset = 0x400; - ret = pci_nanoengine_setup_resources(sys->resource); + ret = pci_nanoengine_setup_resources(sys); /* Enable alternate memory bus master mode, see * "Intel StrongARM SA1110 Developer's Manual", * section 10.8, "Alternate Memory Bus Master Mode". */ diff --git a/trunk/arch/arm/mach-shmobile/Kconfig b/trunk/arch/arm/mach-shmobile/Kconfig index 0828fab2b65c..060e5644c49c 100644 --- a/trunk/arch/arm/mach-shmobile/Kconfig +++ b/trunk/arch/arm/mach-shmobile/Kconfig @@ -28,6 +28,19 @@ config ARCH_SH73A0 select ARM_GIC select I2C +config ARCH_R8A7740 + bool "R-Mobile A1 (R8A77400)" + select CPU_V7 + select SH_CLK_CPG + select ARCH_WANT_OPTIONAL_GPIOLIB + +config ARCH_R8A7779 + bool "R-Car H1 (R8A77790)" + select CPU_V7 + select SH_CLK_CPG + select ARM_GIC + select ARCH_WANT_OPTIONAL_GPIOLIB + comment "SH-Mobile Board Type" config MACH_G3EVM @@ -75,6 +88,16 @@ config MACH_KOTA2 select ARCH_REQUIRE_GPIOLIB depends on ARCH_SH73A0 +config MACH_BONITO + bool "bonito board" + select ARCH_REQUIRE_GPIOLIB + depends on ARCH_R8A7740 + +config MACH_MARZEN + bool "MARZEN board" + depends on ARCH_R8A7779 + select ARCH_REQUIRE_GPIOLIB + comment "SH-Mobile System Configuration" menu "Memory configuration" @@ -83,7 +106,7 @@ config MEMORY_START hex "Physical memory start address" default "0x50000000" if MACH_G3EVM default "0x40000000" if MACH_G4EVM || MACH_AP4EVB || MACH_AG5EVM || \ - MACH_MACKEREL + MACH_MACKEREL || MACH_BONITO default "0x41000000" if MACH_KOTA2 default "0x00000000" ---help--- @@ -95,7 +118,7 @@ config MEMORY_SIZE hex "Physical memory size" default "0x08000000" if MACH_G3EVM default "0x08000000" if MACH_G4EVM - default "0x20000000" if MACH_AG5EVM + default "0x20000000" if MACH_AG5EVM || MACH_BONITO default "0x1e000000" if MACH_KOTA2 default "0x10000000" if MACH_AP4EVB || MACH_MACKEREL default "0x04000000" diff --git a/trunk/arch/arm/mach-shmobile/Makefile b/trunk/arch/arm/mach-shmobile/Makefile index 5ca1f9d66995..7ad6954c46cd 100644 --- a/trunk/arch/arm/mach-shmobile/Makefile +++ b/trunk/arch/arm/mach-shmobile/Makefile @@ -10,12 +10,15 @@ obj-$(CONFIG_ARCH_SH7367) += setup-sh7367.o clock-sh7367.o intc-sh7367.o obj-$(CONFIG_ARCH_SH7377) += setup-sh7377.o clock-sh7377.o intc-sh7377.o obj-$(CONFIG_ARCH_SH7372) += setup-sh7372.o clock-sh7372.o intc-sh7372.o obj-$(CONFIG_ARCH_SH73A0) += setup-sh73a0.o clock-sh73a0.o intc-sh73a0.o +obj-$(CONFIG_ARCH_R8A7740) += setup-r8a7740.o clock-r8a7740.o intc-r8a7740.o +obj-$(CONFIG_ARCH_R8A7779) += setup-r8a7779.o clock-r8a7779.o intc-r8a7779.o # SMP objects smp-y := platsmp.o headsmp.o smp-$(CONFIG_HOTPLUG_CPU) += hotplug.o smp-$(CONFIG_LOCAL_TIMERS) += localtimer.o smp-$(CONFIG_ARCH_SH73A0) += smp-sh73a0.o +smp-$(CONFIG_ARCH_R8A7779) += smp-r8a7779.o # Pinmux setup pfc-y := @@ -23,16 +26,20 @@ pfc-$(CONFIG_ARCH_SH7367) += pfc-sh7367.o pfc-$(CONFIG_ARCH_SH7377) += pfc-sh7377.o pfc-$(CONFIG_ARCH_SH7372) += pfc-sh7372.o pfc-$(CONFIG_ARCH_SH73A0) += pfc-sh73a0.o +pfc-$(CONFIG_ARCH_R8A7740) += pfc-r8a7740.o +pfc-$(CONFIG_ARCH_R8A7779) += pfc-r8a7779.o # IRQ objects obj-$(CONFIG_ARCH_SH7367) += entry-intc.o obj-$(CONFIG_ARCH_SH7377) += entry-intc.o obj-$(CONFIG_ARCH_SH7372) += entry-intc.o +obj-$(CONFIG_ARCH_R8A7740) += entry-intc.o # PM objects obj-$(CONFIG_SUSPEND) += suspend.o obj-$(CONFIG_CPU_IDLE) += cpuidle.o obj-$(CONFIG_ARCH_SH7372) += pm-sh7372.o sleep-sh7372.o +obj-$(CONFIG_ARCH_R8A7779) += pm-r8a7779.o # Board objects obj-$(CONFIG_MACH_G3EVM) += board-g3evm.o @@ -41,6 +48,8 @@ obj-$(CONFIG_MACH_AP4EVB) += board-ap4evb.o obj-$(CONFIG_MACH_AG5EVM) += board-ag5evm.o obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o obj-$(CONFIG_MACH_KOTA2) += board-kota2.o +obj-$(CONFIG_MACH_BONITO) += board-bonito.o +obj-$(CONFIG_MACH_MARZEN) += board-marzen.o # Framework support obj-$(CONFIG_SMP) += $(smp-y) diff --git a/trunk/arch/arm/mach-shmobile/board-ap4evb.c b/trunk/arch/arm/mach-shmobile/board-ap4evb.c index 6a6f9f7568c2..d2e7b73aa9b6 100644 --- a/trunk/arch/arm/mach-shmobile/board-ap4evb.c +++ b/trunk/arch/arm/mach-shmobile/board-ap4evb.c @@ -762,9 +762,22 @@ static struct platform_device fsi_device = { }, }; +static struct fsi_ak4642_info fsi2_ak4643_info = { + .name = "AK4643", + .card = "FSI2A-AK4643", + .cpu_dai = "fsia-dai", + .codec = "ak4642-codec.0-0013", + .platform = "sh_fsi2", + .id = FSI_PORT_A, +}; + static struct platform_device fsi_ak4643_device = { - .name = "sh_fsi2_a_ak4643", + .name = "fsi-ak4642-audio", + .dev = { + .platform_data = &fsi_info, + }, }; + static struct sh_mobile_meram_cfg hdmi_meram_cfg = { .icb[0] = { .marker_icb = 30, diff --git a/trunk/arch/arm/mach-shmobile/board-bonito.c b/trunk/arch/arm/mach-shmobile/board-bonito.c new file mode 100644 index 000000000000..4d2201622323 --- /dev/null +++ b/trunk/arch/arm/mach-shmobile/board-bonito.c @@ -0,0 +1,522 @@ +/* + * bonito board support + * + * Copyright (C) 2011 Renesas Solutions Corp. + * Copyright (C) 2011 Kuninori Morimoto + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include