From 6b1ba2392b71b3d04da597a76a5b7b5cac6c960d Mon Sep 17 00:00:00 2001 From: Olof Johansson Date: Fri, 19 Apr 2013 11:50:32 -0700 Subject: [PATCH] --- yaml --- r: 374170 b: refs/heads/master c: 61b464aef0e306f141dbc0bb3f9c58049a987a7e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/CREDITS | 8 + .../devicetree/bindings/mfd/ab8500.txt | 6 +- .../bindings/tty/serial/of-serial.txt | 3 + trunk/Documentation/hwmon/lm75 | 2 +- trunk/Documentation/i2c/busses/i2c-diolan-u2c | 2 +- trunk/Documentation/input/alps.txt | 67 +++- .../Documentation/networking/ipvs-sysctl.txt | 7 + trunk/Documentation/networking/tuntap.txt | 77 ++++ .../sound/alsa/ALSA-Configuration.txt | 7 +- trunk/Documentation/sound/alsa/seq_oss.html | 2 +- trunk/Documentation/trace/ftrace.txt | 2 +- trunk/MAINTAINERS | 87 ++-- trunk/Makefile | 2 +- trunk/arch/Kconfig | 7 - trunk/arch/alpha/Kconfig | 2 +- trunk/arch/alpha/Makefile | 2 +- trunk/arch/alpha/include/asm/floppy.h | 2 +- trunk/arch/alpha/kernel/irq.c | 7 - trunk/arch/alpha/kernel/irq_alpha.c | 10 +- trunk/arch/alpha/kernel/sys_nautilus.c | 5 + trunk/arch/alpha/kernel/sys_titan.c | 14 +- trunk/arch/arc/include/asm/dma-mapping.h | 2 +- trunk/arch/arc/include/asm/elf.h | 3 - trunk/arch/arc/include/asm/entry.h | 2 +- trunk/arch/arc/include/asm/kgdb.h | 6 +- trunk/arch/arc/include/asm/ptrace.h | 2 +- trunk/arch/arc/include/asm/syscalls.h | 2 - trunk/arch/arc/include/uapi/asm/ptrace.h | 4 +- trunk/arch/arc/kernel/entry.S | 27 +- trunk/arch/arc/kernel/kgdb.c | 1 + trunk/arch/arc/kernel/setup.c | 4 +- trunk/arch/arc/kernel/sys.c | 2 - trunk/arch/arm/Kconfig | 36 +- trunk/arch/arm/Kconfig.debug | 3 +- trunk/arch/arm/boot/Makefile | 2 +- .../arch/arm/boot/dts/armada-370-mirabox.dts | 2 +- trunk/arch/arm/boot/dts/armada-370-rd.dts | 8 + trunk/arch/arm/boot/dts/armada-370-xp.dtsi | 5 +- trunk/arch/arm/boot/dts/armada-370.dtsi | 6 + trunk/arch/arm/boot/dts/armada-xp.dtsi | 4 +- trunk/arch/arm/boot/dts/at91sam9x5.dtsi | 28 +- trunk/arch/arm/boot/dts/bcm2835.dtsi | 2 +- trunk/arch/arm/boot/dts/dbx5x0.dtsi | 7 +- trunk/arch/arm/boot/dts/dove.dtsi | 5 + trunk/arch/arm/boot/dts/exynos4.dtsi | 9 + trunk/arch/arm/boot/dts/exynos5440.dtsi | 6 + trunk/arch/arm/boot/dts/href.dtsi | 2 +- trunk/arch/arm/boot/dts/hrefv60plus.dts | 2 +- trunk/arch/arm/boot/dts/imx53-mba53.dts | 3 +- trunk/arch/arm/boot/dts/kirkwood-dns320.dts | 2 - trunk/arch/arm/boot/dts/kirkwood-dns325.dts | 1 - trunk/arch/arm/boot/dts/kirkwood-dockstar.dts | 1 - .../arch/arm/boot/dts/kirkwood-dreamplug.dts | 1 - .../arch/arm/boot/dts/kirkwood-goflexnet.dts | 2 +- trunk/arch/arm/boot/dts/kirkwood-ib62x0.dts | 1 - trunk/arch/arm/boot/dts/kirkwood-iconnect.dts | 1 - .../arm/boot/dts/kirkwood-iomega_ix2_200.dts | 1 - .../arm/boot/dts/kirkwood-km_kirkwood.dts | 1 - trunk/arch/arm/boot/dts/kirkwood-lschlv2.dts | 1 - trunk/arch/arm/boot/dts/kirkwood-lsxhl.dts | 1 - trunk/arch/arm/boot/dts/kirkwood-mplcec4.dts | 1 - .../arm/boot/dts/kirkwood-ns2-common.dtsi | 1 - trunk/arch/arm/boot/dts/kirkwood-nsa310.dts | 1 - .../arm/boot/dts/kirkwood-openblocks_a6.dts | 2 - trunk/arch/arm/boot/dts/kirkwood-topkick.dts | 1 - trunk/arch/arm/boot/dts/kirkwood.dtsi | 5 +- .../orion5x-lacie-ethernet-disk-mini-v2.dts | 2 +- trunk/arch/arm/boot/dts/orion5x.dtsi | 9 +- trunk/arch/arm/boot/dts/snowball.dts | 2 +- trunk/arch/arm/boot/dts/socfpga.dtsi | 3 + trunk/arch/arm/boot/dts/tegra20.dtsi | 3 +- trunk/arch/arm/boot/dts/tegra30.dtsi | 3 +- trunk/arch/arm/configs/mxs_defconfig | 1 + trunk/arch/arm/configs/omap2plus_defconfig | 3 + trunk/arch/arm/include/asm/delay.h | 2 +- trunk/arch/arm/include/asm/highmem.h | 7 + trunk/arch/arm/include/asm/mmu_context.h | 2 + trunk/arch/arm/include/asm/tlbflush.h | 15 + trunk/arch/arm/include/asm/xen/events.h | 25 +- trunk/arch/arm/kernel/entry-common.S | 12 + trunk/arch/arm/kernel/head.S | 2 +- trunk/arch/arm/kernel/hw_breakpoint.c | 6 +- trunk/arch/arm/kernel/setup.c | 24 +- trunk/arch/arm/kernel/smp.c | 5 +- trunk/arch/arm/kernel/smp_tlb.c | 66 ++++ trunk/arch/arm/kvm/vgic.c | 35 +- trunk/arch/arm/lib/delay.c | 8 +- trunk/arch/arm/lib/memset.S | 33 +- trunk/arch/arm/mach-at91/board-foxg20.c | 1 + trunk/arch/arm/mach-at91/board-stamp9g20.c | 1 + trunk/arch/arm/mach-at91/include/mach/gpio.h | 8 + trunk/arch/arm/mach-at91/irq.c | 20 +- trunk/arch/arm/mach-at91/pm.c | 10 +- trunk/arch/arm/mach-cns3xxx/core.c | 16 +- .../arm/mach-cns3xxx/include/mach/cns3xxx.h | 16 +- trunk/arch/arm/mach-davinci/dma.c | 3 + .../arm/mach-ep93xx/include/mach/uncompress.h | 10 +- trunk/arch/arm/mach-footbridge/Kconfig | 1 + trunk/arch/arm/mach-imx/clk-imx35.c | 1 + trunk/arch/arm/mach-imx/clk-imx6q.c | 2 +- trunk/arch/arm/mach-imx/common.h | 2 + trunk/arch/arm/mach-imx/headsmp.S | 18 +- trunk/arch/arm/mach-imx/hotplug.c | 12 + trunk/arch/arm/mach-imx/imx25-dt.c | 5 + trunk/arch/arm/mach-imx/pm-imx6q.c | 15 - trunk/arch/arm/mach-imx/src.c | 12 + trunk/arch/arm/mach-ixp4xx/vulcan-setup.c | 1 + trunk/arch/arm/mach-kirkwood/board-dt.c | 25 +- trunk/arch/arm/mach-kirkwood/guruplug-setup.c | 2 + trunk/arch/arm/mach-kirkwood/openrd-setup.c | 1 + .../arch/arm/mach-kirkwood/rd88f6281-setup.c | 1 + trunk/arch/arm/mach-mmp/gplugd.c | 1 + trunk/arch/arm/mach-msm/timer.c | 5 +- trunk/arch/arm/mach-mvebu/Makefile | 2 +- trunk/arch/arm/mach-mvebu/armada-370-xp.c | 9 +- trunk/arch/arm/mach-mxs/icoll.c | 2 +- trunk/arch/arm/mach-mxs/mach-mxs.c | 34 +- trunk/arch/arm/mach-mxs/mm.c | 1 + trunk/arch/arm/mach-mxs/ocotp.c | 1 + trunk/arch/arm/mach-omap1/Kconfig | 6 - trunk/arch/arm/mach-omap1/clock_data.c | 12 +- trunk/arch/arm/mach-omap1/common.h | 2 + trunk/arch/arm/mach-omap1/include/mach/usb.h | 2 +- trunk/arch/arm/mach-omap1/usb.c | 6 +- trunk/arch/arm/mach-omap2/Kconfig | 8 +- trunk/arch/arm/mach-omap2/Makefile | 3 - trunk/arch/arm/mach-omap2/board-2430sdp.c | 47 +-- trunk/arch/arm/mach-omap2/board-3430sdp.c | 55 +-- trunk/arch/arm/mach-omap2/board-4430sdp.c | 6 + trunk/arch/arm/mach-omap2/board-am3517evm.c | 77 +--- trunk/arch/arm/mach-omap2/board-cm-t35.c | 63 +-- trunk/arch/arm/mach-omap2/board-devkit8000.c | 30 +- trunk/arch/arm/mach-omap2/board-generic.c | 2 + trunk/arch/arm/mach-omap2/board-h4.c | 4 +- trunk/arch/arm/mach-omap2/board-igep0020.c | 2 +- trunk/arch/arm/mach-omap2/board-ldp.c | 63 +-- trunk/arch/arm/mach-omap2/board-omap3beagle.c | 2 +- trunk/arch/arm/mach-omap2/board-omap3evm.c | 72 +--- .../arch/arm/mach-omap2/board-omap3pandora.c | 7 +- .../arch/arm/mach-omap2/board-omap3stalker.c | 14 +- trunk/arch/arm/mach-omap2/board-overo.c | 61 +-- .../arm/mach-omap2/board-rx51-peripherals.c | 4 + trunk/arch/arm/mach-omap2/board-rx51-video.c | 26 +- trunk/arch/arm/mach-omap2/board-rx51.c | 2 + .../arch/arm/mach-omap2/board-zoom-display.c | 94 +---- .../arm/mach-omap2/board-zoom-peripherals.c | 53 ++- trunk/arch/arm/mach-omap2/cclock33xx_data.c | 8 + trunk/arch/arm/mach-omap2/cclock44xx_data.c | 20 + trunk/arch/arm/mach-omap2/common.h | 4 +- trunk/arch/arm/mach-omap2/dpll3xxx.c | 30 +- trunk/arch/arm/mach-omap2/dsp.c | 4 +- trunk/arch/arm/mach-omap2/dss-common.c | 58 +-- trunk/arch/arm/mach-omap2/gpmc.c | 6 +- trunk/arch/arm/mach-omap2/id.c | 12 +- trunk/arch/arm/mach-omap2/io.c | 27 +- trunk/arch/arm/mach-omap2/mux.c | 9 +- trunk/arch/arm/mach-omap2/omap4-common.c | 10 +- trunk/arch/arm/mach-omap2/omap4-sar-layout.h | 14 +- trunk/arch/arm/mach-omap2/omap54xx.h | 1 + trunk/arch/arm/mach-omap2/omap_hwmod.c | 11 +- trunk/arch/arm/mach-omap2/omap_hwmod.h | 15 +- .../arm/mach-omap2/omap_hwmod_33xx_data.c | 15 + .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 7 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 6 + trunk/arch/arm/mach-omap2/powerdomain.c | 18 +- trunk/arch/arm/mach-omap2/prm44xx.c | 6 +- trunk/arch/arm/mach-omap2/soc.h | 2 + trunk/arch/arm/mach-omap2/timer.c | 9 +- trunk/arch/arm/mach-pxa/raumfeld.c | 1 + trunk/arch/arm/mach-s5pv210/clock.c | 36 +- trunk/arch/arm/mach-s5pv210/mach-goni.c | 2 +- trunk/arch/arm/mach-shmobile/board-marzen.c | 1 + trunk/arch/arm/mach-spear3xx/spear3xx.c | 2 +- trunk/arch/arm/mach-ux500/board-mop500-sdi.c | 1 - trunk/arch/arm/mach-ux500/board-mop500.c | 12 + trunk/arch/arm/mach-ux500/board-mop500.h | 1 + trunk/arch/arm/mach-ux500/cpu-db8500.c | 5 +- trunk/arch/arm/mm/cache-l2x0.c | 11 +- trunk/arch/arm/mm/context.c | 3 +- trunk/arch/arm/mm/dma-mapping.c | 5 +- trunk/arch/arm/mm/mmu.c | 73 ++-- trunk/arch/arm/mm/proc-v7.S | 19 +- trunk/arch/arm/net/bpf_jit_32.c | 2 +- trunk/arch/arm/plat-orion/addr-map.c | 7 +- trunk/arch/arm/plat-spear/Kconfig | 2 +- trunk/arch/arm64/Kconfig | 1 - trunk/arch/arm64/Kconfig.debug | 11 - trunk/arch/arm64/configs/defconfig | 1 - trunk/arch/arm64/include/asm/ucontext.h | 2 +- trunk/arch/arm64/kernel/arm64ksyms.c | 2 + trunk/arch/arm64/kernel/signal32.c | 1 - trunk/arch/arm64/mm/mmu.c | 2 +- trunk/arch/avr32/Kconfig | 2 +- trunk/arch/blackfin/Kconfig | 2 +- trunk/arch/cris/Kconfig | 2 +- trunk/arch/frv/Kconfig | 2 +- trunk/arch/h8300/Kconfig | 2 +- trunk/arch/ia64/Kconfig | 2 +- trunk/arch/ia64/kernel/process.c | 5 +- trunk/arch/m32r/Kconfig | 2 +- trunk/arch/m32r/include/uapi/asm/stat.h | 4 +- trunk/arch/m68k/Kconfig | 2 +- trunk/arch/m68k/Kconfig.machine | 1 - trunk/arch/m68k/include/asm/MC68328.h | 10 +- trunk/arch/m68k/kernel/setup_no.c | 3 + trunk/arch/m68k/mm/init.c | 2 +- trunk/arch/m68k/platform/coldfire/m528x.c | 2 +- trunk/arch/microblaze/Kconfig | 2 +- trunk/arch/mips/Kconfig | 9 +- .../arch/mips/bcm63xx/boards/board_bcm963xx.c | 5 +- trunk/arch/mips/bcm63xx/nvram.c | 7 +- trunk/arch/mips/bcm63xx/setup.c | 2 +- trunk/arch/mips/cavium-octeon/setup.c | 5 +- .../include/asm/mach-bcm63xx/bcm63xx_nvram.h | 4 +- .../asm/mach-sead3/cpu-feature-overrides.h | 4 - trunk/arch/mips/include/asm/mipsregs.h | 209 +++++++++- trunk/arch/mips/include/asm/signal.h | 2 +- trunk/arch/mips/include/uapi/asm/signal.h | 8 +- trunk/arch/mips/kernel/Makefile | 25 +- trunk/arch/mips/kernel/cpu-probe.c | 13 +- trunk/arch/mips/kernel/linux32.c | 2 +- trunk/arch/mips/kernel/mcount.S | 11 +- trunk/arch/mips/kernel/proc.c | 2 +- trunk/arch/mips/kernel/traps.c | 2 +- trunk/arch/mips/lib/bitops.c | 16 +- trunk/arch/mips/lib/csum_partial.S | 4 +- trunk/arch/mips/mm/c-r4k.c | 6 +- trunk/arch/mips/mm/sc-mips.c | 6 +- trunk/arch/mips/pci/pci-alchemy.c | 4 +- trunk/arch/mn10300/Kconfig | 2 +- trunk/arch/openrisc/Kconfig | 3 +- trunk/arch/parisc/Kconfig | 2 +- trunk/arch/powerpc/Kconfig | 3 +- trunk/arch/powerpc/include/asm/mmu-hash64.h | 128 +++--- trunk/arch/powerpc/kernel/cputable.c | 2 +- trunk/arch/powerpc/kernel/epapr_paravirt.c | 6 + trunk/arch/powerpc/kernel/exceptions-64s.S | 178 +++++---- trunk/arch/powerpc/kernel/prom_init.c | 14 +- trunk/arch/powerpc/kernel/ptrace.c | 1 + trunk/arch/powerpc/kvm/book3s_64_mmu_host.c | 4 +- trunk/arch/powerpc/mm/hash_utils_64.c | 22 +- trunk/arch/powerpc/mm/mmu_context_hash64.c | 11 +- trunk/arch/powerpc/mm/pgtable_64.c | 2 +- trunk/arch/powerpc/mm/slb_low.S | 50 +-- trunk/arch/powerpc/mm/tlb_hash64.c | 2 +- trunk/arch/powerpc/perf/power7-pmu.c | 13 + .../arch/powerpc/platforms/85xx/sgy_cts1000.c | 6 +- trunk/arch/powerpc/platforms/Kconfig.cputype | 6 +- trunk/arch/s390/Kconfig | 2 +- trunk/arch/s390/include/asm/cpu_mf.h | 1 + trunk/arch/s390/include/asm/eadm.h | 6 +- trunk/arch/s390/include/asm/pgtable.h | 4 +- trunk/arch/s390/include/asm/tlbflush.h | 2 - trunk/arch/s390/kernel/entry.S | 3 +- trunk/arch/s390/kernel/entry64.S | 5 +- trunk/arch/s390/kernel/setup.c | 2 + trunk/arch/s390/lib/uaccess_pt.c | 83 ++-- trunk/arch/score/Kconfig | 2 +- trunk/arch/sparc/Kconfig | 8 +- trunk/arch/sparc/include/asm/spitfire.h | 1 + trunk/arch/sparc/kernel/cpu.c | 6 + trunk/arch/sparc/kernel/head_64.S | 25 +- trunk/arch/sparc/kernel/leon_pci_grpci2.c | 41 +- trunk/arch/tile/Kconfig | 2 +- trunk/arch/tile/configs/tilegx_defconfig | 1 - trunk/arch/tile/configs/tilepro_defconfig | 1 - trunk/arch/tile/kernel/setup.c | 25 +- trunk/arch/um/drivers/chan.h | 2 +- trunk/arch/um/drivers/chan_kern.c | 4 +- trunk/arch/um/drivers/chan_user.c | 12 +- trunk/arch/um/drivers/chan_user.h | 6 +- trunk/arch/um/drivers/line.c | 42 +- trunk/arch/um/drivers/net_kern.c | 2 + trunk/arch/um/drivers/ssl.c | 1 - trunk/arch/um/drivers/stdio_console.c | 1 - trunk/arch/um/os-Linux/signal.c | 2 +- trunk/arch/um/os-Linux/start_up.c | 2 + trunk/arch/unicore32/Kconfig | 2 +- trunk/arch/x86/Kconfig | 2 +- trunk/arch/x86/boot/compressed/Makefile | 5 +- trunk/arch/x86/include/asm/kprobes.h | 1 + trunk/arch/x86/include/asm/kvm_host.h | 4 +- trunk/arch/x86/include/asm/syscall.h | 4 +- trunk/arch/x86/include/asm/xen/hypercall.h | 4 +- trunk/arch/x86/include/uapi/asm/msr-index.h | 1 + trunk/arch/x86/kernel/cpu/perf_event_intel.c | 4 + .../arch/x86/kernel/cpu/perf_event_intel_ds.c | 10 + trunk/arch/x86/kernel/kprobes/core.c | 5 +- trunk/arch/x86/kernel/microcode_intel_early.c | 30 +- trunk/arch/x86/kvm/lapic.c | 2 +- trunk/arch/x86/kvm/x86.c | 69 ++-- trunk/arch/x86/lib/usercopy_64.c | 4 +- trunk/arch/x86/power/cpu.c | 2 + trunk/arch/x86/xen/mmu.c | 3 +- trunk/arch/xtensa/Kconfig | 2 +- trunk/block/blk-flush.c | 2 +- trunk/block/partition-generic.c | 1 + trunk/drivers/acpi/Kconfig | 2 +- trunk/drivers/acpi/acpi_i2c.c | 2 +- trunk/drivers/acpi/apei/cper.c | 2 +- trunk/drivers/acpi/pci_root.c | 85 ++-- trunk/drivers/acpi/processor_idle.c | 13 +- trunk/drivers/acpi/processor_perflib.c | 4 +- trunk/drivers/acpi/sleep.c | 8 + trunk/drivers/amba/tegra-ahb.c | 2 +- trunk/drivers/ata/Kconfig | 13 +- trunk/drivers/ata/ahci.c | 2 + trunk/drivers/ata/ata_piix.c | 4 + trunk/drivers/ata/libata-acpi.c | 2 +- trunk/drivers/ata/pata_samsung_cf.c | 13 +- trunk/drivers/ata/sata_fsl.c | 3 +- trunk/drivers/base/power/qos.c | 60 ++- trunk/drivers/base/regmap/regcache-rbtree.c | 2 +- trunk/drivers/base/regmap/regmap.c | 9 +- trunk/drivers/block/Kconfig | 4 +- trunk/drivers/block/aoe/aoecmd.c | 3 +- trunk/drivers/block/cciss.c | 2 +- trunk/drivers/block/loop.c | 31 +- trunk/drivers/block/mg_disk.c | 4 +- trunk/drivers/block/mtip32xx/mtip32xx.c | 4 +- trunk/drivers/block/nvme.c | 33 +- trunk/drivers/block/rbd.c | 47 ++- trunk/drivers/block/rsxx/Makefile | 2 +- trunk/drivers/block/rsxx/config.c | 8 +- trunk/drivers/block/rsxx/core.c | 237 ++++++++++- trunk/drivers/block/rsxx/cregs.c | 112 ++++-- trunk/drivers/block/rsxx/dma.c | 239 +++++++---- trunk/drivers/block/rsxx/rsxx.h | 6 +- trunk/drivers/block/rsxx/rsxx_cfg.h | 2 +- trunk/drivers/block/rsxx/rsxx_priv.h | 34 +- trunk/drivers/block/xen-blkback/blkback.c | 68 ++-- trunk/drivers/block/xen-blkback/common.h | 40 +- trunk/drivers/block/xen-blkback/xenbus.c | 14 +- trunk/drivers/block/xen-blkfront.c | 154 +++++--- trunk/drivers/bluetooth/ath3k.c | 8 + trunk/drivers/bluetooth/btusb.c | 4 + trunk/drivers/char/hw_random/core.c | 9 + trunk/drivers/char/hw_random/virtio-rng.c | 13 +- trunk/drivers/char/virtio_console.c | 44 ++- trunk/drivers/clk/clk-vt8500.c | 2 +- trunk/drivers/clk/tegra/clk-tegra20.c | 3 +- trunk/drivers/clk/tegra/clk-tegra30.c | 1 - trunk/drivers/cpufreq/acpi-cpufreq.c | 2 - trunk/drivers/cpufreq/cpufreq-cpu0.c | 10 +- trunk/drivers/cpufreq/cpufreq_governor.h | 6 +- trunk/drivers/cpufreq/cpufreq_stats.c | 12 +- trunk/drivers/cpufreq/intel_pstate.c | 34 +- trunk/drivers/crypto/caam/caamalg.c | 27 +- trunk/drivers/crypto/caam/compat.h | 1 - trunk/drivers/crypto/talitos.c | 30 +- trunk/drivers/dma/Kconfig | 1 + trunk/drivers/dma/dw_dmac.c | 23 +- trunk/drivers/dma/dw_dmac_regs.h | 1 + trunk/drivers/edac/amd64_edac.c | 15 +- trunk/drivers/edac/edac_mc.c | 6 +- trunk/drivers/edac/edac_mc_sysfs.c | 17 +- trunk/drivers/eisa/pci_eisa.c | 67 +++- trunk/drivers/extcon/extcon-max77693.c | 103 +++-- trunk/drivers/extcon/extcon-max8997.c | 56 +-- trunk/drivers/firmware/Kconfig | 18 + trunk/drivers/firmware/efivars.c | 150 ++++--- trunk/drivers/gpio/gpio-ich.c | 2 +- trunk/drivers/gpio/gpio-mvebu.c | 7 + trunk/drivers/gpio/gpio-stmpe.c | 15 +- trunk/drivers/gpio/gpiolib-of.c | 5 +- trunk/drivers/gpu/drm/drm_crtc.c | 2 - trunk/drivers/gpu/drm/drm_edid.c | 3 +- trunk/drivers/gpu/drm/drm_fops.c | 6 +- .../drivers/gpu/drm/exynos/exynos_drm_fimd.c | 21 +- trunk/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 370 +++++++++++++++--- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.c | 21 + trunk/drivers/gpu/drm/exynos/exynos_drm_gem.h | 5 + .../drivers/gpu/drm/exynos/exynos_drm_vidi.c | 6 +- trunk/drivers/gpu/drm/exynos/exynos_mixer.c | 2 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 2 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 5 + trunk/drivers/gpu/drm/i915/i915_drv.h | 1 + .../gpu/drm/i915/i915_gem_execbuffer.c | 13 +- trunk/drivers/gpu/drm/i915/intel_crt.c | 40 +- trunk/drivers/gpu/drm/i915/intel_display.c | 10 +- trunk/drivers/gpu/drm/i915/intel_dp.c | 17 +- trunk/drivers/gpu/drm/i915/intel_i2c.c | 11 +- trunk/drivers/gpu/drm/i915/intel_panel.c | 13 +- trunk/drivers/gpu/drm/i915/intel_pm.c | 3 + trunk/drivers/gpu/drm/mgag200/mgag200_mode.c | 10 +- .../gpu/drm/nouveau/core/core/object.c | 3 +- .../gpu/drm/nouveau/core/engine/disp/nv50.c | 4 +- .../drm/nouveau/core/include/subdev/therm.h | 2 +- .../gpu/drm/nouveau/core/subdev/bios/base.c | 17 + .../gpu/drm/nouveau/core/subdev/therm/base.c | 18 +- .../gpu/drm/nouveau/core/subdev/therm/ic.c | 6 +- .../gpu/drm/nouveau/core/subdev/therm/nv40.c | 67 +++- .../gpu/drm/nouveau/core/subdev/therm/priv.h | 3 +- .../gpu/drm/nouveau/core/subdev/therm/temp.c | 30 +- trunk/drivers/gpu/drm/nouveau/nouveau_abi16.c | 23 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.c | 32 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.h | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_pm.c | 44 ++- trunk/drivers/gpu/drm/nouveau/nv50_display.c | 5 +- trunk/drivers/gpu/drm/radeon/ni.c | 33 +- .../drivers/gpu/drm/radeon/radeon_benchmark.c | 21 +- trunk/drivers/gpu/drm/radeon/radeon_bios.c | 26 ++ trunk/drivers/gpu/drm/radeon/si.c | 1 + trunk/drivers/hid/hid-core.c | 13 +- trunk/drivers/hid/hid-ids.h | 11 +- trunk/drivers/hid/hid-magicmouse.c | 29 +- trunk/drivers/hid/hid-multitouch.c | 6 +- trunk/drivers/hid/usbhid/hid-quirks.c | 2 + trunk/drivers/hwmon/lineage-pem.c | 2 + trunk/drivers/hwmon/lm75.h | 2 +- trunk/drivers/hwmon/pmbus/ltc2978.c | 14 +- trunk/drivers/hwmon/pmbus/pmbus_core.c | 12 +- trunk/drivers/i2c/Kconfig | 2 +- trunk/drivers/i2c/busses/Kconfig | 6 +- .../i2c/busses/i2c-designware-platdrv.c | 1 - trunk/drivers/i2c/busses/i2c-ismt.c | 2 + trunk/drivers/i2c/busses/i2c-tegra.c | 13 +- trunk/drivers/i2c/muxes/i2c-mux-pca9541.c | 2 +- .../iio/common/st_sensors/st_sensors_core.c | 9 +- trunk/drivers/iio/dac/ad5064.c | 64 +-- trunk/drivers/iio/imu/inv_mpu6050/Kconfig | 1 + trunk/drivers/infiniband/hw/cxgb4/cm.c | 12 + trunk/drivers/infiniband/hw/cxgb4/qp.c | 4 +- .../drivers/infiniband/hw/ipath/ipath_verbs.c | 2 +- trunk/drivers/infiniband/hw/mlx4/cm.c | 1 - trunk/drivers/infiniband/hw/qib/Kconfig | 6 +- trunk/drivers/infiniband/hw/qib/qib_driver.c | 5 +- trunk/drivers/infiniband/hw/qib/qib_iba6120.c | 3 +- trunk/drivers/infiniband/hw/qib/qib_init.c | 8 +- trunk/drivers/infiniband/hw/qib/qib_sd7220.c | 2 +- trunk/drivers/infiniband/hw/qib/qib_verbs.c | 4 +- trunk/drivers/infiniband/ulp/ipoib/ipoib_cm.c | 8 +- trunk/drivers/input/joystick/analog.c | 8 +- trunk/drivers/input/keyboard/tc3589x-keypad.c | 8 +- trunk/drivers/input/mouse/alps.c | 85 +++- trunk/drivers/input/mouse/alps.h | 1 + trunk/drivers/input/mouse/cypress_ps2.c | 19 +- trunk/drivers/input/tablet/wacom_wac.c | 4 + trunk/drivers/input/touchscreen/ads7846.c | 7 +- trunk/drivers/input/touchscreen/mms114.c | 34 +- trunk/drivers/iommu/Kconfig | 2 +- trunk/drivers/iommu/amd_iommu.c | 22 +- trunk/drivers/iommu/amd_iommu_init.c | 2 +- trunk/drivers/iommu/irq_remapping.c | 1 - trunk/drivers/irqchip/Makefile | 1 + .../irqchip}/irq-armada-370-xp.c | 114 +++--- trunk/drivers/irqchip/irq-gic.c | 2 +- trunk/drivers/isdn/hisax/Kconfig | 6 +- trunk/drivers/isdn/i4l/isdn_tty.c | 4 +- trunk/drivers/md/dm-bufio.c | 2 + trunk/drivers/md/dm-cache-metadata.c | 64 ++- trunk/drivers/md/dm-cache-metadata.h | 2 +- trunk/drivers/md/dm-cache-policy-cleaner.c | 7 +- trunk/drivers/md/dm-cache-policy-internal.h | 2 + trunk/drivers/md/dm-cache-policy-mq.c | 8 +- trunk/drivers/md/dm-cache-policy.c | 8 + trunk/drivers/md/dm-cache-policy.h | 2 + trunk/drivers/md/dm-cache-target.c | 214 ++++++---- trunk/drivers/md/dm-thin.c | 11 +- trunk/drivers/md/dm-verity.c | 39 +- trunk/drivers/md/md.c | 6 +- trunk/drivers/md/md.h | 4 +- .../md/persistent-data/dm-btree-remove.c | 46 +-- trunk/drivers/md/raid5.c | 116 ++++-- trunk/drivers/md/raid5.h | 5 +- trunk/drivers/media/i2c/m5mols/m5mols_core.c | 2 +- trunk/drivers/media/pci/bt8xx/bttv-driver.c | 20 +- trunk/drivers/media/platform/Kconfig | 2 +- .../media/platform/exynos-gsc/gsc-core.c | 8 +- .../media/platform/s5p-fimc/fimc-core.c | 6 +- .../media/platform/s5p-fimc/fimc-lite-reg.c | 8 +- .../media/platform/s5p-fimc/fimc-lite.c | 1 + .../media/platform/s5p-fimc/fimc-mdevice.c | 39 +- .../drivers/media/platform/s5p-mfc/s5p_mfc.c | 2 +- .../media/platform/s5p-mfc/s5p_mfc_enc.c | 1 + trunk/drivers/media/radio/radio-ma901.c | 11 + trunk/drivers/media/rc/Kconfig | 2 +- trunk/drivers/media/v4l2-core/Makefile | 2 +- trunk/drivers/mfd/Kconfig | 1 + trunk/drivers/mfd/ab8500-gpadc.c | 17 +- trunk/drivers/mfd/omap-usb-host.c | 6 +- trunk/drivers/mfd/palmas.c | 36 +- trunk/drivers/mfd/tps65912-core.c | 1 + trunk/drivers/mfd/twl4030-audio.c | 2 +- trunk/drivers/mfd/twl4030-madc.c | 2 +- trunk/drivers/misc/mei/hw-me.c | 29 +- trunk/drivers/misc/mei/init.c | 18 + trunk/drivers/misc/mei/mei_dev.h | 1 + trunk/drivers/misc/mei/pci-me.c | 52 +-- trunk/drivers/misc/vmw_vmci/vmci_datagram.c | 4 +- trunk/drivers/mtd/bcm47xxpart.c | 52 ++- trunk/drivers/mtd/nand/nand_base.c | 16 + trunk/drivers/mtd/nand/nand_ids.c | 80 ++-- trunk/drivers/net/bonding/bond_main.c | 16 +- trunk/drivers/net/bonding/bond_sysfs.c | 97 ++--- trunk/drivers/net/can/sja1000/Kconfig | 1 + trunk/drivers/net/can/sja1000/plx_pci.c | 4 +- trunk/drivers/net/can/sja1000/sja1000.c | 6 +- trunk/drivers/net/can/sja1000/sja1000.h | 2 +- .../net/ethernet/atheros/atl1e/atl1e.h | 3 +- .../net/ethernet/atheros/atl1e/atl1e_main.c | 20 +- .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 1 + .../net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | 18 +- .../net/ethernet/broadcom/bnx2x/bnx2x_link.c | 17 +- .../net/ethernet/broadcom/bnx2x/bnx2x_link.h | 4 +- .../net/ethernet/broadcom/bnx2x/bnx2x_stats.h | 3 +- trunk/drivers/net/ethernet/broadcom/tg3.c | 29 +- trunk/drivers/net/ethernet/calxeda/xgmac.c | 9 +- .../net/ethernet/chelsio/cxgb4/t4_hw.c | 12 +- trunk/drivers/net/ethernet/davicom/dm9000.c | 214 +++++----- trunk/drivers/net/ethernet/davicom/dm9000.h | 11 +- trunk/drivers/net/ethernet/dec/tulip/Kconfig | 1 + trunk/drivers/net/ethernet/emulex/benet/be.h | 1 + .../net/ethernet/emulex/benet/be_cmds.c | 36 +- .../drivers/net/ethernet/emulex/benet/be_hw.h | 4 +- .../net/ethernet/emulex/benet/be_main.c | 10 + trunk/drivers/net/ethernet/freescale/fec.c | 113 +++--- trunk/drivers/net/ethernet/freescale/fec.h | 1 + .../drivers/net/ethernet/freescale/fec_ptp.c | 3 + .../net/ethernet/intel/e1000/e1000_ethtool.c | 14 +- .../net/ethernet/intel/e1000e/ethtool.c | 13 + .../net/ethernet/intel/e1000e/ich8lan.c | 71 +++- .../net/ethernet/intel/e1000e/ich8lan.h | 2 + .../net/ethernet/intel/e1000e/netdev.c | 89 ++--- .../drivers/net/ethernet/intel/e1000e/regs.h | 1 + .../net/ethernet/intel/igb/e1000_82575.c | 44 ++- trunk/drivers/net/ethernet/intel/igb/igb.h | 2 +- .../net/ethernet/intel/igb/igb_hwmon.c | 14 + .../drivers/net/ethernet/intel/igb/igb_main.c | 80 +--- .../drivers/net/ethernet/intel/igb/igb_ptp.c | 2 +- .../net/ethernet/intel/ixgb/ixgb_main.c | 7 +- .../net/ethernet/intel/ixgbe/ixgbe_main.c | 11 +- .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 24 +- trunk/drivers/net/ethernet/lantiq_etop.c | 2 +- .../net/ethernet/marvell/mv643xx_eth.c | 55 ++- trunk/drivers/net/ethernet/marvell/sky2.c | 2 +- trunk/drivers/net/ethernet/marvell/sky2.h | 2 +- trunk/drivers/net/ethernet/mellanox/mlx4/cq.c | 2 +- .../net/ethernet/mellanox/mlx4/en_netdev.c | 112 +++--- trunk/drivers/net/ethernet/mellanox/mlx4/eq.c | 2 +- trunk/drivers/net/ethernet/mellanox/mlx4/fw.c | 8 + .../drivers/net/ethernet/mellanox/mlx4/main.c | 2 +- .../drivers/net/ethernet/mellanox/mlx4/mlx4.h | 2 +- .../net/ethernet/mellanox/mlx4/mlx4_en.h | 1 - trunk/drivers/net/ethernet/mellanox/mlx4/mr.c | 10 +- trunk/drivers/net/ethernet/mellanox/mlx4/pd.c | 2 +- .../drivers/net/ethernet/mellanox/mlx4/port.c | 8 +- trunk/drivers/net/ethernet/mellanox/mlx4/qp.c | 8 +- .../ethernet/mellanox/mlx4/resource_tracker.c | 48 ++- .../drivers/net/ethernet/mellanox/mlx4/srq.c | 2 +- trunk/drivers/net/ethernet/micrel/ks8851.c | 2 +- trunk/drivers/net/ethernet/nxp/lpc_eth.c | 3 +- .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 4 +- trunk/drivers/net/ethernet/realtek/r8169.c | 28 +- trunk/drivers/net/ethernet/renesas/sh_eth.c | 38 +- trunk/drivers/net/ethernet/renesas/sh_eth.h | 3 +- trunk/drivers/net/ethernet/sfc/efx.h | 4 +- trunk/drivers/net/ethernet/sfc/nic.c | 3 +- trunk/drivers/net/ethernet/sfc/rx.c | 2 +- trunk/drivers/net/ethernet/ti/cpsw.c | 6 +- trunk/drivers/net/ethernet/ti/davinci_emac.c | 4 +- trunk/drivers/net/hippi/rrunner.c | 3 + trunk/drivers/net/macvlan.c | 1 + trunk/drivers/net/netconsole.c | 15 +- trunk/drivers/net/team/team.c | 2 + trunk/drivers/net/tun.c | 2 + trunk/drivers/net/usb/Kconfig | 2 +- trunk/drivers/net/usb/cdc_mbim.c | 11 +- trunk/drivers/net/usb/cdc_ncm.c | 49 ++- trunk/drivers/net/usb/qmi_wwan.c | 49 +-- trunk/drivers/net/usb/smsc75xx.c | 12 +- trunk/drivers/net/vmxnet3/vmxnet3_drv.c | 1 + trunk/drivers/net/vmxnet3/vmxnet3_ethtool.c | 6 + trunk/drivers/net/vmxnet3/vmxnet3_int.h | 4 +- trunk/drivers/net/vxlan.c | 10 + .../net/wireless/ath/ath9k/ar9003_calib.c | 4 + trunk/drivers/net/wireless/ath/ath9k/link.c | 29 +- trunk/drivers/net/wireless/b43/dma.c | 65 ++- trunk/drivers/net/wireless/b43/phy_n.c | 8 +- .../wireless/brcm80211/brcmsmac/phy/phy_lcn.c | 369 ++++++----------- .../brcm80211/brcmsmac/phy/phytbl_lcn.c | 64 +-- .../drivers/net/wireless/iwlegacy/3945-mac.c | 22 +- trunk/drivers/net/wireless/iwlegacy/4965-rs.c | 3 +- trunk/drivers/net/wireless/iwlwifi/dvm/lib.c | 9 + trunk/drivers/net/wireless/iwlwifi/dvm/rxon.c | 18 +- trunk/drivers/net/wireless/iwlwifi/dvm/sta.c | 2 +- trunk/drivers/net/wireless/iwlwifi/dvm/tx.c | 2 +- .../drivers/net/wireless/iwlwifi/dvm/ucode.c | 4 +- .../net/wireless/iwlwifi/iwl-devtrace.h | 2 +- trunk/drivers/net/wireless/iwlwifi/iwl-drv.c | 3 +- .../net/wireless/iwlwifi/iwl-modparams.h | 2 +- .../drivers/net/wireless/iwlwifi/iwl-trans.h | 20 +- .../drivers/net/wireless/iwlwifi/mvm/fw-api.h | 18 +- trunk/drivers/net/wireless/iwlwifi/mvm/fw.c | 133 +------ trunk/drivers/net/wireless/iwlwifi/mvm/mvm.h | 3 +- trunk/drivers/net/wireless/iwlwifi/mvm/ops.c | 18 +- trunk/drivers/net/wireless/iwlwifi/mvm/rx.c | 37 +- trunk/drivers/net/wireless/iwlwifi/mvm/sta.c | 10 + trunk/drivers/net/wireless/iwlwifi/mvm/tx.c | 6 +- .../net/wireless/iwlwifi/pcie/internal.h | 34 +- trunk/drivers/net/wireless/iwlwifi/pcie/rx.c | 14 +- .../drivers/net/wireless/iwlwifi/pcie/trans.c | 13 + trunk/drivers/net/wireless/iwlwifi/pcie/tx.c | 268 ++++++------- trunk/drivers/net/wireless/mwifiex/cfg80211.c | 3 +- trunk/drivers/net/wireless/mwifiex/cmdevt.c | 22 +- trunk/drivers/net/wireless/mwifiex/init.c | 8 + trunk/drivers/net/wireless/mwifiex/join.c | 7 +- trunk/drivers/net/wireless/mwifiex/main.h | 4 +- trunk/drivers/net/wireless/mwifiex/pcie.c | 1 + trunk/drivers/net/wireless/mwifiex/scan.c | 8 +- .../drivers/net/wireless/mwifiex/sta_ioctl.c | 10 +- trunk/drivers/net/wireless/rt2x00/Kconfig | 4 +- trunk/drivers/net/wireless/rt2x00/rt2800pci.c | 14 +- .../net/wireless/rtlwifi/rtl8192cu/hw.c | 89 ++--- trunk/drivers/net/wireless/rtlwifi/usb.c | 1 + trunk/drivers/nfc/microread/mei.c | 38 +- trunk/drivers/pci/pci-acpi.c | 15 +- trunk/drivers/pci/pci-driver.c | 5 +- trunk/drivers/pci/pcie/portdrv_pci.c | 13 - trunk/drivers/pci/rom.c | 28 +- trunk/drivers/pinctrl/mvebu/pinctrl-mvebu.c | 2 +- trunk/drivers/pinctrl/pinconf.c | 2 +- trunk/drivers/pinctrl/pinconf.h | 2 +- trunk/drivers/pinctrl/pinctrl-abx500.c | 2 +- trunk/drivers/pinctrl/pinctrl-at91.c | 61 ++- trunk/drivers/pinctrl/pinmux.c | 5 + trunk/drivers/rtc/rtc-da9052.c | 8 +- trunk/drivers/rtc/rtc-mv.c | 28 +- trunk/drivers/s390/block/scm_blk.c | 76 +++- trunk/drivers/s390/block/scm_blk.h | 2 + trunk/drivers/s390/block/scm_drv.c | 23 +- trunk/drivers/s390/char/sclp_cmd.c | 2 + trunk/drivers/s390/char/tty3270.c | 16 +- trunk/drivers/s390/cio/chsc.c | 17 + trunk/drivers/s390/cio/chsc.h | 2 + trunk/drivers/s390/cio/scm.c | 18 +- trunk/drivers/s390/net/qeth_core.h | 1 + trunk/drivers/s390/net/qeth_core_main.c | 45 ++- trunk/drivers/s390/net/qeth_l3_main.c | 23 +- trunk/drivers/s390/net/qeth_l3_sys.c | 2 + trunk/drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 6 +- trunk/drivers/scsi/fcoe/fcoe.c | 15 +- trunk/drivers/scsi/fcoe/fcoe_ctlr.c | 60 ++- trunk/drivers/scsi/libfc/fc_disc.c | 26 +- trunk/drivers/spi/Kconfig | 3 +- trunk/drivers/spi/spi-bcm63xx.c | 3 +- trunk/drivers/spi/spi-mpc512x-psc.c | 2 +- trunk/drivers/spi/spi-pxa2xx.c | 1 - trunk/drivers/spi/spi-s3c64xx.c | 41 +- trunk/drivers/spi/spi-tegra20-slink.c | 25 +- trunk/drivers/spi/spi.c | 17 +- trunk/drivers/staging/comedi/drivers/dt9812.c | 16 +- trunk/drivers/staging/comedi/drivers/s626.c | 2 +- trunk/drivers/staging/comedi/drivers/usbdux.c | 31 +- .../staging/comedi/drivers/usbduxfast.c | 30 +- .../staging/comedi/drivers/usbduxsigma.c | 27 +- trunk/drivers/staging/imx-drm/ipuv3-crtc.c | 23 +- trunk/drivers/staging/tidspbridge/rmgr/drv.c | 70 ++-- trunk/drivers/staging/vt6656/card.c | 2 +- trunk/drivers/staging/vt6656/main_usb.c | 4 - trunk/drivers/staging/zcache/Kconfig | 2 +- trunk/drivers/staging/zcache/ramster/tcp.c | 25 +- .../drivers/target/iscsi/iscsi_target_auth.c | 5 +- trunk/drivers/target/target_core_file.h | 2 +- trunk/drivers/target/target_core_pscsi.c | 11 +- trunk/drivers/target/target_core_sbc.c | 7 +- trunk/drivers/target/target_core_tpg.c | 3 +- trunk/drivers/target/target_core_transport.c | 4 +- trunk/drivers/thermal/dove_thermal.c | 16 +- trunk/drivers/thermal/exynos_thermal.c | 2 +- trunk/drivers/thermal/kirkwood_thermal.c | 8 +- trunk/drivers/thermal/rcar_thermal.c | 29 +- .../tty/serial/8250/{8250.c => 8250_core.c} | 54 ++- trunk/drivers/tty/serial/8250/8250_pci.c | 34 +- trunk/drivers/tty/serial/8250/8250_pnp.c | 12 +- trunk/drivers/tty/serial/8250/Kconfig | 17 + trunk/drivers/tty/serial/8250/Makefile | 8 +- trunk/drivers/tty/serial/Kconfig | 4 +- trunk/drivers/tty/serial/atmel_serial.c | 11 +- trunk/drivers/tty/serial/bcm63xx_uart.c | 8 +- trunk/drivers/tty/serial/mpc52xx_uart.c | 2 +- trunk/drivers/tty/serial/of_serial.c | 6 + trunk/drivers/tty/serial/sunsu.c | 21 +- trunk/drivers/tty/serial/vt8500_serial.c | 9 +- trunk/drivers/tty/serial/xilinx_uartps.c | 2 + trunk/drivers/tty/tty_buffer.c | 2 +- trunk/drivers/tty/vt/vc_screen.c | 6 +- trunk/drivers/usb/Makefile | 2 +- trunk/drivers/usb/c67x00/c67x00-sched.c | 4 +- trunk/drivers/usb/chipidea/udc.c | 6 +- trunk/drivers/usb/class/cdc-acm.c | 22 +- trunk/drivers/usb/class/cdc-wdm.c | 23 +- trunk/drivers/usb/core/hcd-pci.c | 23 +- trunk/drivers/usb/core/hcd.c | 8 + trunk/drivers/usb/core/port.c | 1 - trunk/drivers/usb/core/usb-acpi.c | 8 +- trunk/drivers/usb/dwc3/core.c | 1 + trunk/drivers/usb/dwc3/dwc3-exynos.c | 2 - trunk/drivers/usb/dwc3/dwc3-omap.c | 8 +- trunk/drivers/usb/dwc3/dwc3-pci.c | 2 - trunk/drivers/usb/dwc3/ep0.c | 7 +- trunk/drivers/usb/dwc3/gadget.c | 3 - trunk/drivers/usb/gadget/Kconfig | 1 + trunk/drivers/usb/gadget/Makefile | 12 +- trunk/drivers/usb/gadget/composite.c | 5 +- trunk/drivers/usb/gadget/f_rndis.c | 3 +- trunk/drivers/usb/gadget/f_uac1.c | 1 + trunk/drivers/usb/gadget/g_ffs.c | 4 +- trunk/drivers/usb/gadget/imx_udc.c | 20 +- trunk/drivers/usb/gadget/net2272.c | 9 +- trunk/drivers/usb/gadget/net2280.c | 8 +- trunk/drivers/usb/gadget/omap_udc.c | 3 +- trunk/drivers/usb/gadget/pxa25x_udc.c | 24 +- trunk/drivers/usb/gadget/pxa27x_udc.c | 18 +- trunk/drivers/usb/gadget/s3c2410_udc.c | 28 +- trunk/drivers/usb/gadget/u_serial.c | 2 +- trunk/drivers/usb/gadget/u_uac1.c | 3 + trunk/drivers/usb/gadget/udc-core.c | 2 +- trunk/drivers/usb/host/ehci-hcd.c | 7 +- trunk/drivers/usb/host/ehci-hub.c | 2 +- trunk/drivers/usb/host/ehci-q.c | 49 ++- trunk/drivers/usb/host/ehci-sched.c | 2 + trunk/drivers/usb/host/ehci-timer.c | 2 +- trunk/drivers/usb/host/xhci-mem.c | 36 +- trunk/drivers/usb/host/xhci-pci.c | 1 + trunk/drivers/usb/host/xhci-ring.c | 61 +-- trunk/drivers/usb/host/xhci.c | 25 +- trunk/drivers/usb/host/xhci.h | 9 +- trunk/drivers/usb/musb/Kconfig | 5 - trunk/drivers/usb/musb/da8xx.c | 2 +- trunk/drivers/usb/musb/musb_core.c | 6 - trunk/drivers/usb/musb/musb_gadget.c | 9 +- trunk/drivers/usb/musb/omap2430.c | 12 +- trunk/drivers/usb/otg/otg.c | 10 +- trunk/drivers/usb/phy/Kconfig | 1 + trunk/drivers/usb/phy/omap-control-usb.c | 24 +- trunk/drivers/usb/phy/omap-usb3.c | 8 +- trunk/drivers/usb/phy/samsung-usbphy.c | 8 +- trunk/drivers/usb/serial/ark3116.c | 10 +- trunk/drivers/usb/serial/ch341.c | 11 +- trunk/drivers/usb/serial/cp210x.c | 20 + trunk/drivers/usb/serial/cypress_m8.c | 14 +- trunk/drivers/usb/serial/f81232.c | 9 +- trunk/drivers/usb/serial/ftdi_sio.c | 20 +- trunk/drivers/usb/serial/ftdi_sio_ids.h | 7 + trunk/drivers/usb/serial/garmin_gps.c | 7 +- trunk/drivers/usb/serial/io_edgeport.c | 12 +- trunk/drivers/usb/serial/io_ti.c | 13 +- trunk/drivers/usb/serial/mct_u232.c | 13 +- trunk/drivers/usb/serial/mos7840.c | 16 +- trunk/drivers/usb/serial/option.c | 5 + trunk/drivers/usb/serial/oti6858.c | 10 +- trunk/drivers/usb/serial/pl2303.c | 11 +- trunk/drivers/usb/serial/qcaux.c | 1 + trunk/drivers/usb/serial/qcserial.c | 7 +- trunk/drivers/usb/serial/quatech2.c | 19 +- trunk/drivers/usb/serial/spcp8x5.c | 9 +- trunk/drivers/usb/serial/ssu100.c | 12 +- trunk/drivers/usb/serial/ti_usb_3410_5052.c | 10 +- trunk/drivers/usb/serial/usb-serial.c | 4 +- trunk/drivers/usb/storage/initializers.c | 76 +--- trunk/drivers/usb/storage/initializers.h | 4 +- trunk/drivers/usb/storage/unusual_devs.h | 344 +++++++++++++++- trunk/drivers/vfio/pci/vfio_pci_config.c | 1 + trunk/drivers/vfio/pci/vfio_pci_intrs.c | 1 + trunk/drivers/vhost/net.c | 3 +- trunk/drivers/vhost/tcm_vhost.c | 26 +- trunk/drivers/video/atmel_lcdfb.c | 22 +- trunk/drivers/video/ep93xx-fb.c | 1 + trunk/drivers/video/fbmon.c | 2 +- trunk/drivers/video/mxsfb.c | 7 +- trunk/drivers/video/omap/lcd_ams_delta.c | 1 + trunk/drivers/video/omap/lcd_osk.c | 3 + trunk/drivers/video/omap/omapfb_main.c | 2 + .../video/omap2/displays/panel-generic-dpi.c | 2 +- .../drivers/video/omap2/displays/panel-n8x0.c | 2 +- .../video/omap2/displays/panel-picodlp.c | 2 +- .../drivers/video/omap2/displays/panel-taal.c | 2 +- .../video/omap2/displays/panel-tfp410.c | 2 +- .../omap2/displays/panel-tpo-td043mtea1.c | 13 +- trunk/drivers/video/omap2/dss/dss_features.c | 6 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 1 + trunk/drivers/video/uvesafb.c | 3 +- trunk/drivers/w1/masters/w1-gpio.c | 6 +- trunk/drivers/w1/w1.c | 3 +- trunk/drivers/watchdog/sp5100_tco.c | 126 +----- trunk/drivers/watchdog/sp5100_tco.h | 2 +- trunk/drivers/xen/Kconfig | 2 +- trunk/drivers/xen/events.c | 20 +- trunk/drivers/xen/fallback.c | 3 +- trunk/drivers/xen/xen-acpi-processor.c | 11 +- trunk/drivers/xen/xen-pciback/pci_stub.c | 59 ++- trunk/drivers/xen/xen-pciback/pciback_ops.c | 3 +- trunk/drivers/xen/xen-stub.c | 1 - trunk/fs/block_dev.c | 1 + trunk/fs/btrfs/ctree.c | 30 +- trunk/fs/btrfs/disk-io.c | 14 +- trunk/fs/btrfs/extent-tree.c | 89 ++++- trunk/fs/btrfs/extent_io.c | 33 ++ trunk/fs/btrfs/extent_io.h | 2 + trunk/fs/btrfs/file-item.c | 6 +- trunk/fs/btrfs/file.c | 10 + trunk/fs/btrfs/inode.c | 25 +- trunk/fs/btrfs/locking.h | 1 - trunk/fs/btrfs/ordered-data.c | 2 + trunk/fs/btrfs/qgroup.c | 13 +- trunk/fs/btrfs/scrub.c | 3 +- trunk/fs/btrfs/send.c | 10 +- trunk/fs/btrfs/transaction.c | 11 +- trunk/fs/btrfs/volumes.c | 19 +- trunk/fs/cifs/asn1.c | 53 +-- trunk/fs/cifs/cifsfs.c | 25 ++ trunk/fs/cifs/cifsfs.h | 4 + trunk/fs/cifs/file.c | 6 +- trunk/fs/cifs/inode.c | 10 +- trunk/fs/cifs/netmisc.c | 2 +- trunk/fs/compat.c | 15 +- trunk/fs/dcache.c | 16 +- trunk/fs/ext2/ialloc.c | 1 - trunk/fs/ext2/inode.c | 2 + trunk/fs/ext3/super.c | 4 +- trunk/fs/ext4/ext4.h | 8 +- trunk/fs/ext4/extents.c | 108 ++++- trunk/fs/ext4/extents_status.c | 212 +++++++++- trunk/fs/ext4/extents_status.h | 9 + trunk/fs/ext4/ialloc.c | 4 +- trunk/fs/ext4/indirect.c | 4 +- trunk/fs/ext4/inode.c | 182 ++++++++- trunk/fs/ext4/mballoc.c | 23 +- trunk/fs/ext4/move_extent.c | 43 +- trunk/fs/ext4/page-io.c | 12 +- trunk/fs/ext4/resize.c | 4 +- trunk/fs/ext4/super.c | 6 +- trunk/fs/freevxfs/vxfs_super.c | 1 + trunk/fs/gfs2/file.c | 5 +- trunk/fs/gfs2/incore.h | 1 + trunk/fs/gfs2/lock_dlm.c | 39 +- trunk/fs/gfs2/rgrp.c | 32 +- trunk/fs/hostfs/hostfs_kern.c | 10 +- trunk/fs/hpfs/super.c | 1 + trunk/fs/internal.h | 5 + trunk/fs/isofs/inode.c | 1 + trunk/fs/jbd2/transaction.c | 15 +- trunk/fs/namespace.c | 54 ++- trunk/fs/nfs/blocklayout/blocklayoutdm.c | 4 +- trunk/fs/nfs/idmap.c | 13 +- trunk/fs/nfs/nfs4filelayout.c | 1 - trunk/fs/nfs/nfs4proc.c | 16 +- trunk/fs/nfs/pnfs.c | 81 +++- trunk/fs/nfs/pnfs.h | 6 + trunk/fs/nfs/super.c | 1 + trunk/fs/nfsd/nfs4state.c | 36 +- trunk/fs/nfsd/nfs4xdr.c | 2 +- trunk/fs/nfsd/nfscache.c | 11 +- trunk/fs/nfsd/vfs.c | 3 +- trunk/fs/pipe.c | 3 + trunk/fs/pnode.c | 6 + trunk/fs/pnode.h | 1 + trunk/fs/proc/inode.c | 6 +- trunk/fs/proc/root.c | 4 + trunk/fs/quota/dquot.c | 5 +- trunk/fs/read_write.c | 28 ++ trunk/fs/reiserfs/super.c | 4 +- trunk/fs/reiserfs/xattr.c | 4 +- trunk/fs/splice.c | 4 +- trunk/fs/squashfs/super.c | 1 + trunk/fs/sysfs/dir.c | 17 +- trunk/fs/sysfs/mount.c | 4 + trunk/fs/sysv/super.c | 1 + trunk/fs/ubifs/super.c | 12 +- trunk/fs/udf/super.c | 1 + trunk/fs/xfs/xfs_buf.c | 6 + trunk/fs/xfs/xfs_iomap.c | 4 +- trunk/include/acpi/processor.h | 3 + trunk/include/asm-generic/atomic.h | 6 - trunk/include/asm-generic/cmpxchg.h | 10 + trunk/include/drm/drm_pciids.h | 13 +- trunk/include/linux/compat.h | 4 +- trunk/include/linux/debug_locks.h | 4 +- trunk/include/linux/devfreq.h | 16 +- trunk/include/linux/edac.h | 7 +- trunk/include/linux/freezer.h | 3 - trunk/include/linux/fs_struct.h | 2 + trunk/include/linux/hash.h | 3 +- trunk/include/linux/idr.h | 68 +++- trunk/include/linux/iio/common/st_sensors.h | 9 +- trunk/include/linux/irq_work.h | 2 +- trunk/include/linux/kernel.h | 1 - trunk/include/linux/kvm_host.h | 2 +- trunk/include/linux/kvm_types.h | 1 + trunk/include/linux/list.h | 4 +- trunk/include/linux/mfd/max77693-private.h | 23 ++ trunk/include/linux/mfd/palmas.h | 1 + trunk/include/linux/mfd/tps65912.h | 1 + trunk/include/linux/mfd/wm831x/auxadc.h | 2 + trunk/include/linux/mfd/wm831x/core.h | 2 +- trunk/include/linux/mm.h | 1 - trunk/include/linux/mman.h | 4 +- trunk/include/linux/mmzone.h | 2 +- trunk/include/linux/mount.h | 2 + trunk/include/linux/mtd/nand.h | 7 + trunk/include/linux/mxsfb.h | 7 +- trunk/include/linux/netdevice.h | 4 +- trunk/include/linux/nvme.h | 28 ++ trunk/include/linux/pci.h | 1 + trunk/include/linux/perf_event.h | 6 + trunk/include/linux/printk.h | 6 + trunk/include/linux/res_counter.h | 1 + trunk/include/linux/signal.h | 4 +- trunk/include/linux/skbuff.h | 20 +- trunk/include/linux/thermal.h | 2 +- trunk/include/linux/udp.h | 1 + trunk/include/linux/usb/cdc_ncm.h | 1 + trunk/include/linux/usb/composite.h | 3 +- trunk/include/linux/usb/hcd.h | 2 + trunk/include/linux/usb/serial.h | 2 + trunk/include/linux/usb/ulpi.h | 8 + trunk/include/linux/user_namespace.h | 4 + trunk/include/net/dst.h | 6 +- trunk/include/net/flow_keys.h | 1 + trunk/include/net/inet_frag.h | 9 + trunk/include/net/ip_fib.h | 12 +- trunk/include/net/ip_vs.h | 12 + trunk/include/net/ipip.h | 16 +- trunk/include/scsi/libfc.h | 3 +- trunk/include/sound/max98090.h | 0 trunk/include/sound/soc-dapm.h | 1 + trunk/include/uapi/linux/acct.h | 6 +- trunk/include/uapi/linux/aio_abi.h | 4 +- trunk/include/uapi/linux/packet_diag.h | 4 +- trunk/include/uapi/linux/raid/md_p.h | 6 +- trunk/include/uapi/linux/serial_core.h | 5 +- trunk/include/uapi/linux/unix_diag.h | 4 +- trunk/include/video/atmel_lcdc.h | 2 +- trunk/include/video/omap-panel-data.h | 152 +++++++ trunk/include/video/omap-panel-generic-dpi.h | 37 -- trunk/include/video/omap-panel-n8x0.h | 15 - trunk/include/video/omap-panel-nokia-dsi.h | 32 -- trunk/include/video/omap-panel-picodlp.h | 23 -- trunk/include/video/omap-panel-tfp410.h | 35 -- trunk/include/xen/interface/io/blkif.h | 10 + trunk/include/xen/interface/physdev.h | 6 + trunk/init/Kconfig | 4 - trunk/ipc/mqueue.c | 15 +- trunk/ipc/msg.c | 1 + trunk/kernel/events/core.c | 8 +- trunk/kernel/exit.c | 2 +- trunk/kernel/fork.c | 5 +- trunk/kernel/futex.c | 46 +-- trunk/kernel/lockdep.c | 17 +- trunk/kernel/pid_namespace.c | 3 +- trunk/kernel/printk.c | 80 ++-- trunk/kernel/signal.c | 5 +- trunk/kernel/sys.c | 57 +-- trunk/kernel/time/tick-broadcast.c | 3 +- trunk/kernel/trace/Kconfig | 24 +- trunk/kernel/trace/ftrace.c | 4 +- trunk/kernel/trace/trace.c | 86 +++- trunk/kernel/trace/trace.h | 6 + trunk/kernel/trace/trace_irqsoff.c | 19 +- trunk/kernel/trace/trace_sched_wakeup.c | 18 +- trunk/kernel/user.c | 2 + trunk/kernel/user_namespace.c | 15 + trunk/kernel/workqueue.c | 51 +-- trunk/lib/bust_spinlocks.c | 3 +- trunk/lib/dma-debug.c | 45 ++- trunk/lib/idr.c | 80 ++-- trunk/lib/xz/Kconfig | 2 +- trunk/mm/Kconfig | 8 +- trunk/mm/fremap.c | 17 +- trunk/mm/hugetlb.c | 8 +- trunk/mm/memory_hotplug.c | 8 +- trunk/mm/mlock.c | 11 +- trunk/mm/mmap.c | 6 +- trunk/mm/nommu.c | 2 +- trunk/mm/process_vm_access.c | 8 - trunk/net/8021q/vlan.c | 14 +- trunk/net/batman-adv/bat_iv_ogm.c | 6 +- trunk/net/bluetooth/sco.c | 1 + trunk/net/bridge/br_device.c | 2 +- trunk/net/bridge/br_fdb.c | 2 +- trunk/net/bridge/br_input.c | 2 +- trunk/net/bridge/br_mdb.c | 4 + trunk/net/bridge/br_multicast.c | 3 +- trunk/net/bridge/br_netlink.c | 2 + trunk/net/bridge/br_private.h | 4 +- trunk/net/ceph/osdmap.c | 42 +- trunk/net/core/dev.c | 16 +- trunk/net/core/dev_addr_lists.c | 6 +- trunk/net/core/flow.c | 2 +- trunk/net/core/flow_dissector.c | 2 + trunk/net/core/rtnetlink.c | 7 +- trunk/net/core/scm.c | 4 +- trunk/net/dcb/dcbnl.c | 8 + trunk/net/ieee802154/6lowpan.h | 2 +- trunk/net/ipv4/af_inet.c | 3 +- trunk/net/ipv4/devinet.c | 6 +- trunk/net/ipv4/inet_connection_sock.c | 1 + trunk/net/ipv4/inet_fragment.c | 20 +- trunk/net/ipv4/ip_fragment.c | 11 +- trunk/net/ipv4/ip_gre.c | 5 +- trunk/net/ipv4/ip_options.c | 7 +- trunk/net/ipv4/ipconfig.c | 3 +- trunk/net/ipv4/netfilter/Kconfig | 13 - trunk/net/ipv4/tcp.c | 2 +- trunk/net/ipv4/tcp_input.c | 7 +- trunk/net/ipv4/tcp_ipv4.c | 14 +- trunk/net/ipv4/tcp_output.c | 8 +- trunk/net/ipv4/udp.c | 7 + trunk/net/ipv6/addrconf.c | 53 ++- trunk/net/ipv6/ip6_input.c | 15 +- trunk/net/ipv6/netfilter/ip6t_NPT.c | 4 +- trunk/net/ipv6/netfilter/nf_conntrack_reasm.c | 12 +- trunk/net/ipv6/reassembly.c | 8 +- trunk/net/ipv6/tcp_ipv6.c | 7 + trunk/net/ipv6/udp.c | 8 + trunk/net/irda/af_irda.c | 6 +- trunk/net/irda/ircomm/ircomm_tty.c | 29 +- trunk/net/key/af_key.c | 9 +- trunk/net/l2tp/l2tp_core.c | 206 +++++----- trunk/net/l2tp/l2tp_core.h | 22 +- trunk/net/l2tp/l2tp_debugfs.c | 28 +- trunk/net/l2tp/l2tp_ip.c | 6 + trunk/net/l2tp/l2tp_ip6.c | 7 + trunk/net/l2tp/l2tp_netlink.c | 72 ++-- trunk/net/l2tp/l2tp_ppp.c | 111 ++---- trunk/net/mac80211/cfg.c | 27 +- trunk/net/mac80211/chan.c | 17 +- trunk/net/mac80211/ieee80211_i.h | 4 +- trunk/net/mac80211/iface.c | 43 +- trunk/net/mac80211/mesh.c | 3 +- trunk/net/mac80211/mlme.c | 34 +- trunk/net/mac80211/offchannel.c | 23 +- trunk/net/mac80211/rx.c | 14 +- trunk/net/mac80211/sta_info.c | 12 +- trunk/net/mac80211/tx.c | 3 +- trunk/net/netfilter/ipvs/ip_vs_core.c | 14 +- trunk/net/netfilter/ipvs/ip_vs_ctl.c | 7 + trunk/net/netfilter/ipvs/ip_vs_proto_sctp.c | 16 +- trunk/net/netfilter/nf_conntrack_helper.c | 11 +- trunk/net/netfilter/nf_conntrack_proto_dccp.c | 12 +- trunk/net/netfilter/nf_conntrack_proto_gre.c | 12 +- trunk/net/netfilter/nf_conntrack_proto_sctp.c | 12 +- .../netfilter/nf_conntrack_proto_udplite.c | 12 +- trunk/net/netfilter/nf_conntrack_standalone.c | 1 + trunk/net/netfilter/nfnetlink.c | 7 +- trunk/net/netfilter/nfnetlink_acct.c | 2 + trunk/net/netfilter/nfnetlink_queue_core.c | 6 +- trunk/net/netfilter/xt_AUDIT.c | 3 + trunk/net/netlabel/netlabel_unlabeled.c | 27 +- trunk/net/netlink/genetlink.c | 1 + trunk/net/nfc/llcp/llcp.c | 66 +++- trunk/net/nfc/llcp/sock.c | 8 +- trunk/net/openvswitch/actions.c | 4 +- trunk/net/openvswitch/datapath.c | 3 + trunk/net/openvswitch/flow.c | 6 +- trunk/net/openvswitch/vport-netdev.c | 3 +- trunk/net/openvswitch/vport.c | 3 +- trunk/net/rds/stats.c | 1 + trunk/net/sched/sch_cbq.c | 5 +- trunk/net/sched/sch_fq_codel.c | 2 +- trunk/net/sched/sch_generic.c | 2 +- trunk/net/sched/sch_qfq.c | 66 +++- trunk/net/sctp/associola.c | 2 +- trunk/net/sctp/sm_statefuns.c | 2 +- trunk/net/sunrpc/auth_gss/svcauth_gss.c | 12 +- trunk/net/sunrpc/rpc_pipe.c | 1 + trunk/net/sunrpc/sched.c | 9 +- trunk/net/sunrpc/xprtsock.c | 15 +- trunk/net/unix/af_unix.c | 9 +- trunk/net/vmw_vsock/af_vsock.c | 6 +- trunk/net/vmw_vsock/vmci_transport.c | 31 +- trunk/net/vmw_vsock/vsock_addr.c | 10 - trunk/net/vmw_vsock/vsock_addr.h | 2 - trunk/net/wireless/core.c | 67 +++- trunk/net/wireless/core.h | 3 + trunk/net/wireless/nl80211.c | 103 ++--- trunk/net/wireless/scan.c | 24 +- trunk/net/wireless/sme.c | 6 +- trunk/net/wireless/trace.h | 5 +- trunk/net/wireless/wext-sme.c | 6 + trunk/net/xfrm/xfrm_replay.c | 66 +++- trunk/scripts/Makefile.headersinst | 11 +- trunk/security/keys/compat.c | 4 +- trunk/security/keys/process_keys.c | 2 +- trunk/security/selinux/xfrm.c | 2 +- trunk/security/yama/yama_lsm.c | 4 +- trunk/sound/core/seq/seq_timer.c | 8 +- trunk/sound/oss/sequencer.c | 6 + trunk/sound/pci/asihpi/asihpi.c | 3 +- trunk/sound/pci/hda/hda_codec.c | 28 +- trunk/sound/pci/hda/hda_eld.c | 2 +- trunk/sound/pci/hda/hda_generic.c | 48 ++- trunk/sound/pci/hda/hda_intel.c | 138 +++++-- trunk/sound/pci/hda/patch_ca0132.c | 28 +- trunk/sound/pci/hda/patch_cirrus.c | 8 +- trunk/sound/pci/hda/patch_conexant.c | 16 +- trunk/sound/pci/hda/patch_hdmi.c | 2 +- trunk/sound/pci/hda/patch_realtek.c | 4 +- trunk/sound/pci/hda/patch_sigmatel.c | 29 ++ trunk/sound/soc/codecs/max98090.c | 0 trunk/sound/soc/codecs/max98090.h | 0 trunk/sound/soc/codecs/si476x.c | 1 + trunk/sound/soc/codecs/wm_adsp.c | 5 +- trunk/sound/soc/fsl/imx-ssi.c | 5 + trunk/sound/soc/fsl/pcm030-audio-fabric.c | 2 +- trunk/sound/soc/sh/dma-sh7760.c | 4 +- trunk/sound/soc/soc-core.c | 8 +- trunk/sound/soc/soc-dapm.c | 14 + trunk/sound/soc/spear/spear_pcm.c | 12 +- trunk/sound/usb/card.c | 15 + trunk/sound/usb/clock.c | 45 ++- trunk/sound/usb/mixer.c | 21 +- trunk/tools/lib/traceevent/Makefile | 2 +- trunk/tools/perf/Makefile | 8 +- trunk/tools/perf/bench/bench.h | 24 ++ trunk/tools/perf/builtin-record.c | 6 +- trunk/tools/perf/util/hist.h | 5 +- trunk/tools/perf/util/strlist.c | 2 +- trunk/tools/usb/ffs-test.c | 2 +- trunk/virt/kvm/ioapic.c | 7 +- trunk/virt/kvm/kvm_main.c | 47 ++- 1124 files changed, 11719 insertions(+), 6940 deletions(-) rename trunk/{arch/arm/mach-mvebu => drivers/irqchip}/irq-armada-370-xp.c (89%) rename trunk/drivers/tty/serial/8250/{8250.c => 8250_core.c} (98%) mode change 100755 => 100644 trunk/include/sound/max98090.h create mode 100644 trunk/include/video/omap-panel-data.h delete mode 100644 trunk/include/video/omap-panel-generic-dpi.h delete mode 100644 trunk/include/video/omap-panel-n8x0.h delete mode 100644 trunk/include/video/omap-panel-nokia-dsi.h delete mode 100644 trunk/include/video/omap-panel-picodlp.h delete mode 100644 trunk/include/video/omap-panel-tfp410.h mode change 100755 => 100644 trunk/sound/soc/codecs/max98090.c mode change 100755 => 100644 trunk/sound/soc/codecs/max98090.h diff --git a/[refs] b/[refs] index 5af80a792839..2a7134ad382a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f5fa4098c3fcc0e504fbc0682dccd331dbbcf197 +refs/heads/master: 61b464aef0e306f141dbc0bb3f9c58049a987a7e diff --git a/trunk/CREDITS b/trunk/CREDITS index 78163cb3eb6a..afaa7cec6ea5 100644 --- a/trunk/CREDITS +++ b/trunk/CREDITS @@ -1510,6 +1510,14 @@ D: Natsemi ethernet D: Cobalt Networks (x86) support D: This-and-That +N: Mark M. Hoffman +E: mhoffman@lightlink.com +D: asb100, lm93 and smsc47b397 hardware monitoring drivers +D: hwmon subsystem core +D: hwmon subsystem maintainer +D: i2c-sis96x and i2c-stub SMBus drivers +S: USA + N: Dirk Hohndel E: hohndel@suse.de D: The XFree86[tm] Project diff --git a/trunk/Documentation/devicetree/bindings/mfd/ab8500.txt b/trunk/Documentation/devicetree/bindings/mfd/ab8500.txt index 13b707b7355c..c3a14e0ad0ad 100644 --- a/trunk/Documentation/devicetree/bindings/mfd/ab8500.txt +++ b/trunk/Documentation/devicetree/bindings/mfd/ab8500.txt @@ -13,9 +13,6 @@ Required parent device properties: 4 = active high level-sensitive 8 = active low level-sensitive -Optional parent device properties: -- reg : contains the PRCMU mailbox address for the AB8500 i2c port - The AB8500 consists of a large and varied group of sub-devices: Device IRQ Names Supply Names Description @@ -86,9 +83,8 @@ Non-standard child device properties: - stericsson,amic2-bias-vamic1 : Analoge Mic wishes to use a non-standard Vamic - stericsson,earpeice-cmv : Earpeice voltage (only: 950 | 1100 | 1270 | 1580) -ab8500@5 { +ab8500 { compatible = "stericsson,ab8500"; - reg = <5>; /* mailbox 5 is i2c */ interrupts = <0 40 0x4>; interrupt-controller; #interrupt-cells = <2>; diff --git a/trunk/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/trunk/Documentation/devicetree/bindings/tty/serial/of-serial.txt index 1e1145ca4f3c..8f01cb190f25 100644 --- a/trunk/Documentation/devicetree/bindings/tty/serial/of-serial.txt +++ b/trunk/Documentation/devicetree/bindings/tty/serial/of-serial.txt @@ -11,6 +11,9 @@ Required properties: - "nvidia,tegra20-uart" - "nxp,lpc3220-uart" - "ibm,qpace-nwp-serial" + - "altr,16550-FIFO32" + - "altr,16550-FIFO64" + - "altr,16550-FIFO128" - "serial" if the port type is unknown. - reg : offset and length of the register set for the device. - interrupts : should contain uart interrupt. diff --git a/trunk/Documentation/hwmon/lm75 b/trunk/Documentation/hwmon/lm75 index c91a1d15fa28..69af1c7db6b7 100644 --- a/trunk/Documentation/hwmon/lm75 +++ b/trunk/Documentation/hwmon/lm75 @@ -23,7 +23,7 @@ Supported chips: Datasheet: Publicly available at the Maxim website http://www.maxim-ic.com/ * Microchip (TelCom) TCN75 - Prefix: 'lm75' + Prefix: 'tcn75' Addresses scanned: none Datasheet: Publicly available at the Microchip website http://www.microchip.com/ diff --git a/trunk/Documentation/i2c/busses/i2c-diolan-u2c b/trunk/Documentation/i2c/busses/i2c-diolan-u2c index 30fe4bb9a069..0d6018c316c7 100644 --- a/trunk/Documentation/i2c/busses/i2c-diolan-u2c +++ b/trunk/Documentation/i2c/busses/i2c-diolan-u2c @@ -5,7 +5,7 @@ Supported adapters: Documentation: http://www.diolan.com/i2c/u2c12.html -Author: Guenter Roeck +Author: Guenter Roeck Description ----------- diff --git a/trunk/Documentation/input/alps.txt b/trunk/Documentation/input/alps.txt index 3262b6e4d686..e544c7ff8cfa 100644 --- a/trunk/Documentation/input/alps.txt +++ b/trunk/Documentation/input/alps.txt @@ -3,10 +3,26 @@ ALPS Touchpad Protocol Introduction ------------ - -Currently the ALPS touchpad driver supports four protocol versions in use by -ALPS touchpads, called versions 1, 2, 3, and 4. Information about the various -protocol versions is contained in the following sections. +Currently the ALPS touchpad driver supports five protocol versions in use by +ALPS touchpads, called versions 1, 2, 3, 4 and 5. + +Since roughly mid-2010 several new ALPS touchpads have been released and +integrated into a variety of laptops and netbooks. These new touchpads +have enough behavior differences that the alps_model_data definition +table, describing the properties of the different versions, is no longer +adequate. The design choices were to re-define the alps_model_data +table, with the risk of regression testing existing devices, or isolate +the new devices outside of the alps_model_data table. The latter design +choice was made. The new touchpad signatures are named: "Rushmore", +"Pinnacle", and "Dolphin", which you will see in the alps.c code. +For the purposes of this document, this group of ALPS touchpads will +generically be called "new ALPS touchpads". + +We experimented with probing the ACPI interface _HID (Hardware ID)/_CID +(Compatibility ID) definition as a way to uniquely identify the +different ALPS variants but there did not appear to be a 1:1 mapping. +In fact, it appeared to be an m:n mapping between the _HID and actual +hardware type. Detection --------- @@ -20,9 +36,13 @@ If the E6 report is successful, the touchpad model is identified using the "E7 report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is matched against known models in the alps_model_data_array. -With protocol versions 3 and 4, the E7 report model signature is always -73-02-64. To differentiate between these versions, the response from the -"Enter Command Mode" sequence must be inspected as described below. +For older touchpads supporting protocol versions 3 and 4, the E7 report +model signature is always 73-02-64. To differentiate between these +versions, the response from the "Enter Command Mode" sequence must be +inspected as described below. + +The new ALPS touchpads have an E7 signature of 73-03-50 or 73-03-0A but +seem to be better differentiated by the EC Command Mode response. Command Mode ------------ @@ -47,6 +67,14 @@ address of the register being read, and the third contains the value of the register. Registers are written by writing the value one nibble at a time using the same encoding used for addresses. +For the new ALPS touchpads, the EC command is used to enter command +mode. The response in the new ALPS touchpads is significantly different, +and more important in determining the behavior. This code has been +separated from the original alps_model_data table and put in the +alps_identify function. For example, there seem to be two hardware init +sequences for the "Dolphin" touchpads as determined by the second byte +of the EC response. + Packet Format ------------- @@ -187,3 +215,28 @@ There are several things worth noting here. well. So far no v4 devices with tracksticks have been encountered. + +ALPS Absolute Mode - Protocol Version 5 +--------------------------------------- +This is basically Protocol Version 3 but with different logic for packet +decode. It uses the same alps_process_touchpad_packet_v3 call with a +specialized decode_fields function pointer to correctly interpret the +packets. This appears to only be used by the Dolphin devices. + +For single-touch, the 6-byte packet format is: + + byte 0: 1 1 0 0 1 0 0 0 + byte 1: 0 x6 x5 x4 x3 x2 x1 x0 + byte 2: 0 y6 y5 y4 y3 y2 y1 y0 + byte 3: 0 M R L 1 m r l + byte 4: y10 y9 y8 y7 x10 x9 x8 x7 + byte 5: 0 z6 z5 z4 z3 z2 z1 z0 + +For mt, the format is: + + byte 0: 1 1 1 n3 1 n2 n1 x24 + byte 1: 1 y7 y6 y5 y4 y3 y2 y1 + byte 2: ? x2 x1 y12 y11 y10 y9 y8 + byte 3: 0 x23 x22 x21 x20 x19 x18 x17 + byte 4: 0 x9 x8 x7 x6 x5 x4 x3 + byte 5: 0 x16 x15 x14 x13 x12 x11 x10 diff --git a/trunk/Documentation/networking/ipvs-sysctl.txt b/trunk/Documentation/networking/ipvs-sysctl.txt index f2a2488f1bf3..9573d0c48c6e 100644 --- a/trunk/Documentation/networking/ipvs-sysctl.txt +++ b/trunk/Documentation/networking/ipvs-sysctl.txt @@ -15,6 +15,13 @@ amemthresh - INTEGER enabled and the variable is automatically set to 2, otherwise the strategy is disabled and the variable is set to 1. +backup_only - BOOLEAN + 0 - disabled (default) + not 0 - enabled + + If set, disable the director function while the server is + in backup mode to avoid packet loops for DR/TUN methods. + conntrack - BOOLEAN 0 - disabled (default) not 0 - enabled diff --git a/trunk/Documentation/networking/tuntap.txt b/trunk/Documentation/networking/tuntap.txt index c0aab985bad9..949d5dcdd9a3 100644 --- a/trunk/Documentation/networking/tuntap.txt +++ b/trunk/Documentation/networking/tuntap.txt @@ -105,6 +105,83 @@ Copyright (C) 1999-2000 Maxim Krasnyansky Proto [2 bytes] Raw protocol(IP, IPv6, etc) frame. + 3.3 Multiqueue tuntap interface: + + From version 3.8, Linux supports multiqueue tuntap which can uses multiple + file descriptors (queues) to parallelize packets sending or receiving. The + device allocation is the same as before, and if user wants to create multiple + queues, TUNSETIFF with the same device name must be called many times with + IFF_MULTI_QUEUE flag. + + char *dev should be the name of the device, queues is the number of queues to + be created, fds is used to store and return the file descriptors (queues) + created to the caller. Each file descriptor were served as the interface of a + queue which could be accessed by userspace. + + #include + #include + + int tun_alloc_mq(char *dev, int queues, int *fds) + { + struct ifreq ifr; + int fd, err, i; + + if (!dev) + return -1; + + memset(&ifr, 0, sizeof(ifr)); + /* Flags: IFF_TUN - TUN device (no Ethernet headers) + * IFF_TAP - TAP device + * + * IFF_NO_PI - Do not provide packet information + * IFF_MULTI_QUEUE - Create a queue of multiqueue device + */ + ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_MULTI_QUEUE; + strcpy(ifr.ifr_name, dev); + + for (i = 0; i < queues; i++) { + if ((fd = open("/dev/net/tun", O_RDWR)) < 0) + goto err; + err = ioctl(fd, TUNSETIFF, (void *)&ifr); + if (err) { + close(fd); + goto err; + } + fds[i] = fd; + } + + return 0; + err: + for (--i; i >= 0; i--) + close(fds[i]); + return err; + } + + A new ioctl(TUNSETQUEUE) were introduced to enable or disable a queue. When + calling it with IFF_DETACH_QUEUE flag, the queue were disabled. And when + calling it with IFF_ATTACH_QUEUE flag, the queue were enabled. The queue were + enabled by default after it was created through TUNSETIFF. + + fd is the file descriptor (queue) that we want to enable or disable, when + enable is true we enable it, otherwise we disable it + + #include + #include + + int tun_set_queue(int fd, int enable) + { + struct ifreq ifr; + + memset(&ifr, 0, sizeof(ifr)); + + if (enable) + ifr.ifr_flags = IFF_ATTACH_QUEUE; + else + ifr.ifr_flags = IFF_DETACH_QUEUE; + + return ioctl(fd, TUNSETQUEUE, (void *)&ifr); + } + Universal TUN/TAP device driver Frequently Asked Question. 1. What platforms are supported by TUN/TAP driver ? diff --git a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt index ce6581c8ca26..95731a08f257 100644 --- a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt @@ -890,9 +890,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. enable_msi - Enable Message Signaled Interrupt (MSI) (default = off) power_save - Automatic power-saving timeout (in second, 0 = disable) - power_save_controller - Support runtime D3 of HD-audio controller - (-1 = on for supported chip (default), false = off, - true = force to on even for unsupported hardware) + power_save_controller - Reset HD-audio controller in power-saving mode + (default = on) align_buffer_size - Force rounding of buffer/period sizes to multiples of 128 bytes. This is more efficient in terms of memory access but isn't required by the HDA spec and prevents @@ -912,7 +911,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. models depending on the codec chip. The list of available models is found in HD-Audio-Models.txt - The model name "genric" is treated as a special case. When this + The model name "generic" is treated as a special case. When this model is given, the driver uses the generic codec parser without "codec-patch". It's sometimes good for testing and debugging. diff --git a/trunk/Documentation/sound/alsa/seq_oss.html b/trunk/Documentation/sound/alsa/seq_oss.html index d9776cf60c07..9663b45f6fde 100644 --- a/trunk/Documentation/sound/alsa/seq_oss.html +++ b/trunk/Documentation/sound/alsa/seq_oss.html @@ -285,7 +285,7 @@

7.2.4 Close Callback

The close callback is called when this device is closed by the -applicaion. If any private data was allocated in open callback, it must +application. If any private data was allocated in open callback, it must be released in the close callback. The deletion of ALSA port should be done here, too. This callback must not be NULL.

diff --git a/trunk/Documentation/trace/ftrace.txt b/trunk/Documentation/trace/ftrace.txt index 53d6a3c51d87..a372304aef10 100644 --- a/trunk/Documentation/trace/ftrace.txt +++ b/trunk/Documentation/trace/ftrace.txt @@ -1873,7 +1873,7 @@ feature: status\input | 0 | 1 | else | --------------+------------+------------+------------+ - not allocated |(do nothing)| alloc+swap | EINVAL | + not allocated |(do nothing)| alloc+swap |(do nothing)| --------------+------------+------------+------------+ allocated | free | swap | clear | --------------+------------+------------+------------+ diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 95616582c728..836a6183c37f 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1338,12 +1338,6 @@ S: Maintained F: drivers/platform/x86/asus*.c F: drivers/platform/x86/eeepc*.c -ASUS ASB100 HARDWARE MONITOR DRIVER -M: "Mark M. Hoffman" -L: lm-sensors@lm-sensors.org -S: Maintained -F: drivers/hwmon/asb100.c - ASYNCHRONOUS TRANSFERS/TRANSFORMS (IOAT) API M: Dan Williams W: http://sourceforge.net/projects/xscaleiop @@ -1467,6 +1461,12 @@ F: drivers/dma/at_hdmac.c F: drivers/dma/at_hdmac_regs.h F: include/linux/platform_data/dma-atmel.h +ATMEL I2C DRIVER +M: Ludovic Desroches +L: linux-i2c@vger.kernel.org +S: Supported +F: drivers/i2c/busses/i2c-at91.c + ATMEL ISI DRIVER M: Josh Wu L: linux-media@vger.kernel.org @@ -2629,7 +2629,7 @@ F: include/uapi/drm/ INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets) M: Daniel Vetter -L: intel-gfx@lists.freedesktop.org (subscribers-only) +L: intel-gfx@lists.freedesktop.org L: dri-devel@lists.freedesktop.org T: git git://people.freedesktop.org/~danvet/drm-intel S: Supported @@ -3242,6 +3242,12 @@ F: Documentation/firmware_class/ F: drivers/base/firmware*.c F: include/linux/firmware.h +FLASHSYSTEM DRIVER (IBM FlashSystem 70/80 PCI SSD Flash Card) +M: Joshua Morris +M: Philip Kelleher +S: Maintained +F: drivers/block/rsxx/ + FLOPPY DRIVER M: Jiri Kosina T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/floppy.git @@ -3851,7 +3857,7 @@ F: drivers/i2c/busses/i2c-ismt.c F: Documentation/i2c/busses/i2c-ismt I2C/SMBUS STUB DRIVER -M: "Mark M. Hoffman" +M: Jean Delvare L: linux-i2c@vger.kernel.org S: Maintained F: drivers/i2c/i2c-stub.c @@ -4005,6 +4011,22 @@ M: Stanislaw Gruszka S: Maintained F: drivers/usb/atm/ueagle-atm.c +INA209 HARDWARE MONITOR DRIVER +M: Guenter Roeck +L: lm-sensors@lm-sensors.org +S: Maintained +F: Documentation/hwmon/ina209 +F: Documentation/devicetree/bindings/i2c/ina209.txt +F: drivers/hwmon/ina209.c + +INA2XX HARDWARE MONITOR DRIVER +M: Guenter Roeck +L: lm-sensors@lm-sensors.org +S: Maintained +F: Documentation/hwmon/ina2xx +F: drivers/hwmon/ina2xx.c +F: include/linux/platform_data/ina2xx.h + INDUSTRY PACK SUBSYSTEM (IPACK) M: Samuel Iglesias Gonsalvez M: Jens Taprogge @@ -5043,9 +5065,8 @@ S: Maintained F: drivers/net/ethernet/marvell/sk* MARVELL LIBERTAS WIRELESS DRIVER -M: Dan Williams L: libertas-dev@lists.infradead.org -S: Maintained +S: Orphan F: drivers/net/wireless/libertas/ MARVELL MV643XX ETHERNET DRIVER @@ -5098,6 +5119,15 @@ S: Maintained F: Documentation/hwmon/max6650 F: drivers/hwmon/max6650.c +MAX6697 HARDWARE MONITOR DRIVER +M: Guenter Roeck +L: lm-sensors@lm-sensors.org +S: Maintained +F: Documentation/hwmon/max6697 +F: Documentation/devicetree/bindings/i2c/max6697.txt +F: drivers/hwmon/max6697.c +F: include/linux/platform_data/max6697.h + MAXIRADIO FM RADIO RECEIVER DRIVER M: Hans Verkuil L: linux-media@vger.kernel.org @@ -5538,6 +5568,7 @@ F: include/uapi/linux/if_* F: include/uapi/linux/netdevice.h NETXEN (1/10) GbE SUPPORT +M: Manish Chopra M: Sony Chacko M: Rajesh Borundia L: netdev@vger.kernel.org @@ -5622,6 +5653,14 @@ S: Maintained F: drivers/video/riva/ F: drivers/video/nvidia/ +NVM EXPRESS DRIVER +M: Matthew Wilcox +L: linux-nvme@lists.infradead.org +T: git git://git.infradead.org/users/willy/linux-nvme.git +S: Supported +F: drivers/block/nvme.c +F: include/linux/nvme.h + OMAP SUPPORT M: Tony Lindgren L: linux-omap@vger.kernel.org @@ -5650,7 +5689,7 @@ S: Maintained F: arch/arm/*omap*/*clock* OMAP POWER MANAGEMENT SUPPORT -M: Kevin Hilman +M: Kevin Hilman L: linux-omap@vger.kernel.org S: Maintained F: arch/arm/*omap*/*pm* @@ -5744,7 +5783,7 @@ F: arch/arm/*omap*/usb* OMAP GPIO DRIVER M: Santosh Shilimkar -M: Kevin Hilman +M: Kevin Hilman L: linux-omap@vger.kernel.org S: Maintained F: drivers/gpio/gpio-omap.c @@ -6176,7 +6215,7 @@ F: include/linux/power_supply.h F: drivers/power/ PNP SUPPORT -M: Adam Belay +M: Rafael J. Wysocki M: Bjorn Helgaas S: Maintained F: drivers/pnp/ @@ -6412,6 +6451,8 @@ F: Documentation/networking/LICENSE.qla3xxx F: drivers/net/ethernet/qlogic/qla3xxx.* QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER +M: Rajesh Borundia +M: Shahed Shaikh M: Jitendra Kalsaria M: Sony Chacko M: linux-driver@qlogic.com @@ -6516,12 +6557,6 @@ S: Maintained F: Documentation/blockdev/ramdisk.txt F: drivers/block/brd.c -RAMSAM DRIVER (IBM RamSan 70/80 PCI SSD Flash Card) -M: Joshua Morris -M: Philip Kelleher -S: Maintained -F: drivers/block/rsxx/ - RANDOM NUMBER DRIVER M: Theodore Ts'o" S: Maintained @@ -7138,7 +7173,7 @@ F: arch/arm/mach-s3c2410/bast-irq.c TI DAVINCI MACHINE SUPPORT M: Sekhar Nori -M: Kevin Hilman +M: Kevin Hilman L: davinci-linux-open-source@linux.davincidsp.com (moderated for non-subscribers) T: git git://gitorious.org/linux-davinci/linux-davinci.git Q: http://patchwork.kernel.org/project/linux-davinci/list/ @@ -7171,13 +7206,6 @@ L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/sis/sis900.* -SIS 96X I2C/SMBUS DRIVER -M: "Mark M. Hoffman" -L: linux-i2c@vger.kernel.org -S: Maintained -F: Documentation/i2c/busses/i2c-sis96x -F: drivers/i2c/busses/i2c-sis96x.c - SIS FRAMEBUFFER DRIVER M: Thomas Winischhofer W: http://www.winischhofer.net/linuxsisvga.shtml @@ -7255,7 +7283,7 @@ F: Documentation/hwmon/sch5627 F: drivers/hwmon/sch5627.c SMSC47B397 HARDWARE MONITOR DRIVER -M: "Mark M. Hoffman" +M: Jean Delvare L: lm-sensors@lm-sensors.org S: Maintained F: Documentation/hwmon/smsc47b397 @@ -7678,9 +7706,10 @@ F: include/linux/swiotlb.h SYNOPSYS ARC ARCHITECTURE M: Vineet Gupta -L: linux-snps-arc@vger.kernel.org S: Supported F: arch/arc/ +F: Documentation/devicetree/bindings/arc/ +F: drivers/tty/serial/arc-uart.c SYSV FILESYSTEM M: Christoph Hellwig diff --git a/trunk/Makefile b/trunk/Makefile index a05ea42c5f18..6db672b15bda 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 9 SUBLEVEL = 0 -EXTRAVERSION = -rc2 +EXTRAVERSION = -rc6 NAME = Unicycling Gorilla # *DOCUMENTATION* diff --git a/trunk/arch/Kconfig b/trunk/arch/Kconfig index 5a1779c93940..1455579791ec 100644 --- a/trunk/arch/Kconfig +++ b/trunk/arch/Kconfig @@ -319,13 +319,6 @@ config ARCH_WANT_OLD_COMPAT_IPC select ARCH_WANT_COMPAT_IPC_PARSE_VERSION bool -config HAVE_VIRT_TO_BUS - bool - help - An architecture should select this if it implements the - deprecated interface virt_to_bus(). All new architectures - should probably not select this. - config HAVE_ARCH_SECCOMP_FILTER bool help diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 5833aa441481..8a33ba01301f 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -9,7 +9,7 @@ config ALPHA select HAVE_PERF_EVENTS select HAVE_DMA_ATTRS select HAVE_GENERIC_HARDIRQS - select HAVE_VIRT_TO_BUS + select VIRT_TO_BUS select GENERIC_IRQ_PROBE select AUTO_IRQ_AFFINITY if SMP select GENERIC_IRQ_SHOW diff --git a/trunk/arch/alpha/Makefile b/trunk/arch/alpha/Makefile index 4759fe751aa1..2cc3cc519c54 100644 --- a/trunk/arch/alpha/Makefile +++ b/trunk/arch/alpha/Makefile @@ -12,7 +12,7 @@ NM := $(NM) -B LDFLAGS_vmlinux := -static -N #-relax CHECKFLAGS += -D__alpha__ -m64 -cflags-y := -pipe -mno-fp-regs -ffixed-8 -msmall-data +cflags-y := -pipe -mno-fp-regs -ffixed-8 cflags-y += $(call cc-option, -fno-jump-tables) cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4 diff --git a/trunk/arch/alpha/include/asm/floppy.h b/trunk/arch/alpha/include/asm/floppy.h index 46cefbd50e73..bae97eb19d26 100644 --- a/trunk/arch/alpha/include/asm/floppy.h +++ b/trunk/arch/alpha/include/asm/floppy.h @@ -26,7 +26,7 @@ #define fd_disable_irq() disable_irq(FLOPPY_IRQ) #define fd_cacheflush(addr,size) /* nothing */ #define fd_request_irq() request_irq(FLOPPY_IRQ, floppy_interrupt,\ - IRQF_DISABLED, "floppy", NULL) + 0, "floppy", NULL) #define fd_free_irq() free_irq(FLOPPY_IRQ, NULL) #ifdef CONFIG_PCI diff --git a/trunk/arch/alpha/kernel/irq.c b/trunk/arch/alpha/kernel/irq.c index 2872accd2215..7b2be251c30f 100644 --- a/trunk/arch/alpha/kernel/irq.c +++ b/trunk/arch/alpha/kernel/irq.c @@ -117,13 +117,6 @@ handle_irq(int irq) return; } - /* - * From here we must proceed with IPL_MAX. Note that we do not - * explicitly enable interrupts afterwards - some MILO PALcode - * (namely LX164 one) seems to have severe problems with RTI - * at IPL 0. - */ - local_irq_disable(); irq_enter(); generic_handle_irq_desc(irq, desc); irq_exit(); diff --git a/trunk/arch/alpha/kernel/irq_alpha.c b/trunk/arch/alpha/kernel/irq_alpha.c index 772ddfdb71a8..f433fc11877a 100644 --- a/trunk/arch/alpha/kernel/irq_alpha.c +++ b/trunk/arch/alpha/kernel/irq_alpha.c @@ -45,6 +45,14 @@ do_entInt(unsigned long type, unsigned long vector, unsigned long la_ptr, struct pt_regs *regs) { struct pt_regs *old_regs; + + /* + * Disable interrupts during IRQ handling. + * Note that there is no matching local_irq_enable() due to + * severe problems with RTI at IPL0 and some MILO PALcode + * (namely LX164). + */ + local_irq_disable(); switch (type) { case 0: #ifdef CONFIG_SMP @@ -62,7 +70,6 @@ do_entInt(unsigned long type, unsigned long vector, { long cpu; - local_irq_disable(); smp_percpu_timer_interrupt(regs); cpu = smp_processor_id(); if (cpu != boot_cpuid) { @@ -222,7 +229,6 @@ process_mcheck_info(unsigned long vector, unsigned long la_ptr, struct irqaction timer_irqaction = { .handler = timer_interrupt, - .flags = IRQF_DISABLED, .name = "timer", }; diff --git a/trunk/arch/alpha/kernel/sys_nautilus.c b/trunk/arch/alpha/kernel/sys_nautilus.c index 4d4c046f708d..1383f8601a93 100644 --- a/trunk/arch/alpha/kernel/sys_nautilus.c +++ b/trunk/arch/alpha/kernel/sys_nautilus.c @@ -188,6 +188,10 @@ nautilus_machine_check(unsigned long vector, unsigned long la_ptr) extern void free_reserved_mem(void *, void *); extern void pcibios_claim_one_bus(struct pci_bus *); +static struct resource irongate_io = { + .name = "Irongate PCI IO", + .flags = IORESOURCE_IO, +}; static struct resource irongate_mem = { .name = "Irongate PCI MEM", .flags = IORESOURCE_MEM, @@ -209,6 +213,7 @@ nautilus_init_pci(void) irongate = pci_get_bus_and_slot(0, 0); bus->self = irongate; + bus->resource[0] = &irongate_io; bus->resource[1] = &irongate_mem; pci_bus_size_bridges(bus); diff --git a/trunk/arch/alpha/kernel/sys_titan.c b/trunk/arch/alpha/kernel/sys_titan.c index 5cf4a481b8c5..a53cf03f49d5 100644 --- a/trunk/arch/alpha/kernel/sys_titan.c +++ b/trunk/arch/alpha/kernel/sys_titan.c @@ -280,15 +280,15 @@ titan_late_init(void) * all reported to the kernel as machine checks, so the handler * is a nop so it can be called to count the individual events. */ - titan_request_irq(63+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(63+16, titan_intr_nop, 0, "CChip Error", NULL); - titan_request_irq(62+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(62+16, titan_intr_nop, 0, "PChip 0 H_Error", NULL); - titan_request_irq(61+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(61+16, titan_intr_nop, 0, "PChip 1 H_Error", NULL); - titan_request_irq(60+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(60+16, titan_intr_nop, 0, "PChip 0 C_Error", NULL); - titan_request_irq(59+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(59+16, titan_intr_nop, 0, "PChip 1 C_Error", NULL); /* @@ -348,9 +348,9 @@ privateer_init_pci(void) * Hook a couple of extra err interrupts that the * common titan code won't. */ - titan_request_irq(53+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(53+16, titan_intr_nop, 0, "NMI", NULL); - titan_request_irq(50+16, titan_intr_nop, IRQF_DISABLED, + titan_request_irq(50+16, titan_intr_nop, 0, "Temperature Warning", NULL); /* diff --git a/trunk/arch/arc/include/asm/dma-mapping.h b/trunk/arch/arc/include/asm/dma-mapping.h index 31f77aec0823..45b8e0cea176 100644 --- a/trunk/arch/arc/include/asm/dma-mapping.h +++ b/trunk/arch/arc/include/asm/dma-mapping.h @@ -126,7 +126,7 @@ dma_map_sg(struct device *dev, struct scatterlist *sg, int i; for_each_sg(sg, s, nents, i) - sg->dma_address = dma_map_page(dev, sg_page(s), s->offset, + s->dma_address = dma_map_page(dev, sg_page(s), s->offset, s->length, dir); return nents; diff --git a/trunk/arch/arc/include/asm/elf.h b/trunk/arch/arc/include/asm/elf.h index f4c8d36ebecb..a26282857683 100644 --- a/trunk/arch/arc/include/asm/elf.h +++ b/trunk/arch/arc/include/asm/elf.h @@ -72,7 +72,4 @@ extern int elf_check_arch(const struct elf32_hdr *); */ #define ELF_PLATFORM (NULL) -#define SET_PERSONALITY(ex) \ - set_personality(PER_LINUX | (current->personality & (~PER_MASK))) - #endif diff --git a/trunk/arch/arc/include/asm/entry.h b/trunk/arch/arc/include/asm/entry.h index 23daa326fc9b..eb2ae53187d9 100644 --- a/trunk/arch/arc/include/asm/entry.h +++ b/trunk/arch/arc/include/asm/entry.h @@ -415,7 +415,7 @@ *-------------------------------------------------------------*/ .macro SAVE_ALL_EXCEPTION marker - st \marker, [sp, 8] + st \marker, [sp, 8] /* orig_r8 */ st r0, [sp, 4] /* orig_r0, needed only for sys calls */ /* Restore r9 used to code the early prologue */ diff --git a/trunk/arch/arc/include/asm/kgdb.h b/trunk/arch/arc/include/asm/kgdb.h index f3c4934f0ca9..4930957ca3d3 100644 --- a/trunk/arch/arc/include/asm/kgdb.h +++ b/trunk/arch/arc/include/asm/kgdb.h @@ -13,7 +13,7 @@ #ifdef CONFIG_KGDB -#include +#include /* to ensure compatibility with Linux 2.6.35, we don't implement the get/set * register API yet */ @@ -53,9 +53,7 @@ enum arc700_linux_regnums { }; #else -static inline void kgdb_trap(struct pt_regs *regs, int param) -{ -} +#define kgdb_trap(regs, param) #endif #endif /* __ARC_KGDB_H__ */ diff --git a/trunk/arch/arc/include/asm/ptrace.h b/trunk/arch/arc/include/asm/ptrace.h index 8ae783d20a81..6179de7e07c2 100644 --- a/trunk/arch/arc/include/asm/ptrace.h +++ b/trunk/arch/arc/include/asm/ptrace.h @@ -123,7 +123,7 @@ static inline long regs_return_value(struct pt_regs *regs) #define orig_r8_IS_SCALL 0x0001 #define orig_r8_IS_SCALL_RESTARTED 0x0002 #define orig_r8_IS_BRKPT 0x0004 -#define orig_r8_IS_EXCPN 0x0004 +#define orig_r8_IS_EXCPN 0x0008 #define orig_r8_IS_IRQ1 0x0010 #define orig_r8_IS_IRQ2 0x0020 diff --git a/trunk/arch/arc/include/asm/syscalls.h b/trunk/arch/arc/include/asm/syscalls.h index e53a5340ba4f..dd785befe7fd 100644 --- a/trunk/arch/arc/include/asm/syscalls.h +++ b/trunk/arch/arc/include/asm/syscalls.h @@ -16,8 +16,6 @@ #include int sys_clone_wrapper(int, int, int, int, int); -int sys_fork_wrapper(void); -int sys_vfork_wrapper(void); int sys_cacheflush(uint32_t, uint32_t uint32_t); int sys_arc_settls(void *); int sys_arc_gettls(void); diff --git a/trunk/arch/arc/include/uapi/asm/ptrace.h b/trunk/arch/arc/include/uapi/asm/ptrace.h index 6afa4f702075..30333cec0fef 100644 --- a/trunk/arch/arc/include/uapi/asm/ptrace.h +++ b/trunk/arch/arc/include/uapi/asm/ptrace.h @@ -28,14 +28,14 @@ */ struct user_regs_struct { - struct scratch { + struct { long pad; long bta, lp_start, lp_end, lp_count; long status32, ret, blink, fp, gp; long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0; long sp; } scratch; - struct callee { + struct { long pad; long r25, r24, r23, r22, r21, r20; long r19, r18, r17, r16, r15, r14, r13; diff --git a/trunk/arch/arc/kernel/entry.S b/trunk/arch/arc/kernel/entry.S index ef6800ba2f03..91eeab81f52d 100644 --- a/trunk/arch/arc/kernel/entry.S +++ b/trunk/arch/arc/kernel/entry.S @@ -452,7 +452,7 @@ tracesys: ; using ERET won't work since next-PC has already committed lr r12, [efa] GET_CURR_TASK_FIELD_PTR TASK_THREAD, r11 - st r12, [r11, THREAD_FAULT_ADDR] + st r12, [r11, THREAD_FAULT_ADDR] ; thread.fault_address ; PRE Sys Call Ptrace hook mov r0, sp ; pt_regs needed @@ -792,31 +792,6 @@ ARC_EXIT ret_from_fork ;################### Special Sys Call Wrappers ########################## -; TBD: call do_fork directly from here -ARC_ENTRY sys_fork_wrapper - SAVE_CALLEE_SAVED_USER - bl @sys_fork - DISCARD_CALLEE_SAVED_USER - - GET_CURR_THR_INFO_FLAGS r10 - btst r10, TIF_SYSCALL_TRACE - bnz tracesys_exit - - b ret_from_system_call -ARC_EXIT sys_fork_wrapper - -ARC_ENTRY sys_vfork_wrapper - SAVE_CALLEE_SAVED_USER - bl @sys_vfork - DISCARD_CALLEE_SAVED_USER - - GET_CURR_THR_INFO_FLAGS r10 - btst r10, TIF_SYSCALL_TRACE - bnz tracesys_exit - - b ret_from_system_call -ARC_EXIT sys_vfork_wrapper - ARC_ENTRY sys_clone_wrapper SAVE_CALLEE_SAVED_USER bl @sys_clone diff --git a/trunk/arch/arc/kernel/kgdb.c b/trunk/arch/arc/kernel/kgdb.c index 2888ba5be47e..52bdc83c1495 100644 --- a/trunk/arch/arc/kernel/kgdb.c +++ b/trunk/arch/arc/kernel/kgdb.c @@ -9,6 +9,7 @@ */ #include +#include #include #include diff --git a/trunk/arch/arc/kernel/setup.c b/trunk/arch/arc/kernel/setup.c index dc0f968dae0a..2d95ac07df7b 100644 --- a/trunk/arch/arc/kernel/setup.c +++ b/trunk/arch/arc/kernel/setup.c @@ -232,10 +232,8 @@ char *arc_extn_mumbojumbo(int cpu_id, char *buf, int len) n += scnprintf(buf + n, len - n, "\n"); -#ifdef _ASM_GENERIC_UNISTD_H n += scnprintf(buf + n, len - n, - "OS ABI [v2]\t: asm-generic/{unistd,stat,fcntl}\n"); -#endif + "OS ABI [v3]\t: no-legacy-syscalls\n"); return buf; } diff --git a/trunk/arch/arc/kernel/sys.c b/trunk/arch/arc/kernel/sys.c index f6bdd07583f3..9d6c1ca26af6 100644 --- a/trunk/arch/arc/kernel/sys.c +++ b/trunk/arch/arc/kernel/sys.c @@ -6,8 +6,6 @@ #include #define sys_clone sys_clone_wrapper -#define sys_fork sys_fork_wrapper -#define sys_vfork sys_vfork_wrapper #undef __SYSCALL #define __SYSCALL(nr, call) [nr] = (call), diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 5b714695b01b..1cacda426a0e 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -49,7 +49,6 @@ config ARM select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_SYSCALL_TRACEPOINTS select HAVE_UID16 - select HAVE_VIRT_TO_BUS select KTIME_SCALAR select PERF_USE_VMALLOC select RTC_LIB @@ -556,7 +555,6 @@ config ARCH_IXP4XX config ARCH_DOVE bool "Marvell Dove" select ARCH_REQUIRE_GPIOLIB - select COMMON_CLK_DOVE select CPU_V7 select GENERIC_CLOCKEVENTS select MIGHT_HAVE_PCI @@ -744,6 +742,7 @@ config ARCH_RPC select NEED_MACH_IO_H select NEED_MACH_MEMORY_H select NO_IOPORT + select VIRT_TO_BUS help On the Acorn Risc-PC, Linux can support the internal IDE disk and CD-ROM interface, serial and parallel port, and the floppy drive. @@ -879,6 +878,7 @@ config ARCH_SHARK select ISA_DMA select NEED_MACH_MEMORY_H select PCI + select VIRT_TO_BUS select ZONE_DMA help Support for the StrongARM based Digital DNARD machine, also known @@ -1006,12 +1006,12 @@ config ARCH_MULTI_V4_V5 bool config ARCH_MULTI_V6 - bool "ARMv6 based platforms (ARM11, Scorpion, ...)" + bool "ARMv6 based platforms (ARM11)" select ARCH_MULTI_V6_V7 select CPU_V6 config ARCH_MULTI_V7 - bool "ARMv7 based platforms (Cortex-A, PJ4, Krait)" + bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" default y select ARCH_MULTI_V6_V7 select ARCH_VEXPRESS @@ -1183,9 +1183,9 @@ config ARM_NR_BANKS default 8 config IWMMXT - bool "Enable iWMMXt support" + bool "Enable iWMMXt support" if !CPU_PJ4 depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 - default y if PXA27x || PXA3xx || ARCH_MMP + default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 help Enable support for iWMMXt context switching at run time if running on a CPU that supports it. @@ -1439,6 +1439,16 @@ config ARM_ERRATA_775420 to deadlock. This workaround puts DSB before executing ISB if an abort may occur on cache maintenance. +config ARM_ERRATA_798181 + bool "ARM errata: TLBI/DSB failure on Cortex-A15" + depends on CPU_V7 && SMP + help + On Cortex-A15 (r0p0..r3p2) the TLBI*IS/DSB operations are not + adequately shooting down all use of the old entries. This + option enables the Linux kernel workaround for this erratum + which sends an IPI to the CPUs that are running the same ASID + as the one being invalidated. + endmenu source "arch/arm/common/Kconfig" @@ -1462,10 +1472,6 @@ config ISA_DMA bool select ISA_DMA_API -config ARCH_NO_VIRT_TO_BUS - def_bool y - depends on !ARCH_RPC && !ARCH_NETWINDER && !ARCH_SHARK - # Select ISA DMA interface config ISA_DMA_API bool @@ -1657,13 +1663,16 @@ config LOCAL_TIMERS accounting to be spread across the timer interval, preventing a "thundering herd" at every timer tick. +# The GPIO number here must be sorted by descending number. In case of +# a multiplatform kernel, we just want the highest value required by the +# selected platforms. config ARCH_NR_GPIO int default 1024 if ARCH_SHMOBILE || ARCH_TEGRA - default 355 if ARCH_U8500 - default 264 if MACH_H4700 default 512 if SOC_OMAP5 + default 355 if ARCH_U8500 default 288 if ARCH_VT8500 || ARCH_SUNXI + default 264 if MACH_H4700 default 0 help Maximum number of GPIOs in the system. @@ -1887,8 +1896,9 @@ config XEN_DOM0 config XEN bool "Xen guest support on ARM (EXPERIMENTAL)" - depends on ARM && OF + depends on ARM && AEABI && OF depends on CPU_V7 && !CPU_V6 + depends on !GENERIC_ATOMIC64 help Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. diff --git a/trunk/arch/arm/Kconfig.debug b/trunk/arch/arm/Kconfig.debug index acddddac7ee4..9b31f4311ea2 100644 --- a/trunk/arch/arm/Kconfig.debug +++ b/trunk/arch/arm/Kconfig.debug @@ -492,9 +492,10 @@ config DEBUG_IMX_UART_PORT DEBUG_IMX31_UART || \ DEBUG_IMX35_UART || \ DEBUG_IMX51_UART || \ - DEBUG_IMX50_IMX53_UART || \ + DEBUG_IMX53_UART || \ DEBUG_IMX6Q_UART default 1 + depends on ARCH_MXC help Choose UART port on which kernel low-level debug messages should be output. diff --git a/trunk/arch/arm/boot/Makefile b/trunk/arch/arm/boot/Makefile index 71768b8a1ab9..84aa2caf07ed 100644 --- a/trunk/arch/arm/boot/Makefile +++ b/trunk/arch/arm/boot/Makefile @@ -115,4 +115,4 @@ i: $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ $(obj)/Image System.map "$(INSTALL_PATH)" -subdir- := bootp compressed +subdir- := bootp compressed dts diff --git a/trunk/arch/arm/boot/dts/armada-370-mirabox.dts b/trunk/arch/arm/boot/dts/armada-370-mirabox.dts index dd0c57dd9f30..3234875824dc 100644 --- a/trunk/arch/arm/boot/dts/armada-370-mirabox.dts +++ b/trunk/arch/arm/boot/dts/armada-370-mirabox.dts @@ -54,7 +54,7 @@ }; mvsdio@d00d4000 { - pinctrl-0 = <&sdio_pins2>; + pinctrl-0 = <&sdio_pins3>; pinctrl-names = "default"; status = "okay"; /* diff --git a/trunk/arch/arm/boot/dts/armada-370-rd.dts b/trunk/arch/arm/boot/dts/armada-370-rd.dts index f8e4855bc9a5..070bba4f2585 100644 --- a/trunk/arch/arm/boot/dts/armada-370-rd.dts +++ b/trunk/arch/arm/boot/dts/armada-370-rd.dts @@ -64,5 +64,13 @@ status = "okay"; /* No CD or WP GPIOs */ }; + + usb@d0050000 { + status = "okay"; + }; + + usb@d0051000 { + status = "okay"; + }; }; }; diff --git a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi index 6f1acc75e155..5b708208b607 100644 --- a/trunk/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370-xp.dtsi @@ -31,7 +31,6 @@ mpic: interrupt-controller@d0020000 { compatible = "marvell,mpic"; #interrupt-cells = <1>; - #address-cells = <1>; #size-cells = <1>; interrupt-controller; }; @@ -54,7 +53,7 @@ reg = <0xd0012000 0x100>; reg-shift = <2>; interrupts = <41>; - reg-io-width = <4>; + reg-io-width = <1>; status = "disabled"; }; serial@d0012100 { @@ -62,7 +61,7 @@ reg = <0xd0012100 0x100>; reg-shift = <2>; interrupts = <42>; - reg-io-width = <4>; + reg-io-width = <1>; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/armada-370.dtsi b/trunk/arch/arm/boot/dts/armada-370.dtsi index 8188d138020e..a195debb67d3 100644 --- a/trunk/arch/arm/boot/dts/armada-370.dtsi +++ b/trunk/arch/arm/boot/dts/armada-370.dtsi @@ -59,6 +59,12 @@ "mpp50", "mpp51", "mpp52"; marvell,function = "sd0"; }; + + sdio_pins3: sdio-pins3 { + marvell,pins = "mpp48", "mpp49", "mpp50", + "mpp51", "mpp52", "mpp53"; + marvell,function = "sd0"; + }; }; gpio0: gpio@d0018100 { diff --git a/trunk/arch/arm/boot/dts/armada-xp.dtsi b/trunk/arch/arm/boot/dts/armada-xp.dtsi index 1443949c165e..ca00d8326c87 100644 --- a/trunk/arch/arm/boot/dts/armada-xp.dtsi +++ b/trunk/arch/arm/boot/dts/armada-xp.dtsi @@ -46,7 +46,7 @@ reg = <0xd0012200 0x100>; reg-shift = <2>; interrupts = <43>; - reg-io-width = <4>; + reg-io-width = <1>; status = "disabled"; }; serial@d0012300 { @@ -54,7 +54,7 @@ reg = <0xd0012300 0x100>; reg-shift = <2>; interrupts = <44>; - reg-io-width = <4>; + reg-io-width = <1>; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi index aa98e641931f..a98c0d50fbbe 100644 --- a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi @@ -238,8 +238,32 @@ nand { pinctrl_nand: nand-0 { atmel,pins = - <3 4 0x0 0x1 /* PD5 gpio RDY pin pull_up */ - 3 5 0x0 0x1>; /* PD4 gpio enable pin pull_up */ + <3 0 0x1 0x0 /* PD0 periph A Read Enable */ + 3 1 0x1 0x0 /* PD1 periph A Write Enable */ + 3 2 0x1 0x0 /* PD2 periph A Address Latch Enable */ + 3 3 0x1 0x0 /* PD3 periph A Command Latch Enable */ + 3 4 0x0 0x1 /* PD4 gpio Chip Enable pin pull_up */ + 3 5 0x0 0x1 /* PD5 gpio RDY/BUSY pin pull_up */ + 3 6 0x1 0x0 /* PD6 periph A Data bit 0 */ + 3 7 0x1 0x0 /* PD7 periph A Data bit 1 */ + 3 8 0x1 0x0 /* PD8 periph A Data bit 2 */ + 3 9 0x1 0x0 /* PD9 periph A Data bit 3 */ + 3 10 0x1 0x0 /* PD10 periph A Data bit 4 */ + 3 11 0x1 0x0 /* PD11 periph A Data bit 5 */ + 3 12 0x1 0x0 /* PD12 periph A Data bit 6 */ + 3 13 0x1 0x0>; /* PD13 periph A Data bit 7 */ + }; + + pinctrl_nand_16bits: nand_16bits-0 { + atmel,pins = + <3 14 0x1 0x0 /* PD14 periph A Data bit 8 */ + 3 15 0x1 0x0 /* PD15 periph A Data bit 9 */ + 3 16 0x1 0x0 /* PD16 periph A Data bit 10 */ + 3 17 0x1 0x0 /* PD17 periph A Data bit 11 */ + 3 18 0x1 0x0 /* PD18 periph A Data bit 12 */ + 3 19 0x1 0x0 /* PD19 periph A Data bit 13 */ + 3 20 0x1 0x0 /* PD20 periph A Data bit 14 */ + 3 21 0x1 0x0>; /* PD21 periph A Data bit 15 */ }; }; diff --git a/trunk/arch/arm/boot/dts/bcm2835.dtsi b/trunk/arch/arm/boot/dts/bcm2835.dtsi index 4bf2a8774aa7..7e0481e2441a 100644 --- a/trunk/arch/arm/boot/dts/bcm2835.dtsi +++ b/trunk/arch/arm/boot/dts/bcm2835.dtsi @@ -105,7 +105,7 @@ compatible = "fixed-clock"; reg = <1>; #clock-cells = <0>; - clock-frequency = <150000000>; + clock-frequency = <250000000>; }; }; }; diff --git a/trunk/arch/arm/boot/dts/dbx5x0.dtsi b/trunk/arch/arm/boot/dts/dbx5x0.dtsi index 69140ba99f46..aaa63d0a8096 100644 --- a/trunk/arch/arm/boot/dts/dbx5x0.dtsi +++ b/trunk/arch/arm/boot/dts/dbx5x0.dtsi @@ -191,8 +191,8 @@ prcmu: prcmu@80157000 { compatible = "stericsson,db8500-prcmu"; - reg = <0x80157000 0x1000>; - reg-names = "prcmu"; + reg = <0x80157000 0x1000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>; + reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm"; interrupts = <0 47 0x4>; #address-cells = <1>; #size-cells = <1>; @@ -319,9 +319,8 @@ }; }; - ab8500@5 { + ab8500 { compatible = "stericsson,ab8500"; - reg = <5>; /* mailbox 5 is i2c */ interrupt-parent = <&intc>; interrupts = <0 40 0x4>; interrupt-controller; diff --git a/trunk/arch/arm/boot/dts/dove.dtsi b/trunk/arch/arm/boot/dts/dove.dtsi index 67dbe20868a2..f7509cafc377 100644 --- a/trunk/arch/arm/boot/dts/dove.dtsi +++ b/trunk/arch/arm/boot/dts/dove.dtsi @@ -197,6 +197,11 @@ status = "disabled"; }; + rtc@d8500 { + compatible = "marvell,orion-rtc"; + reg = <0xd8500 0x20>; + }; + crypto: crypto@30000 { compatible = "marvell,orion-crypto"; reg = <0x30000 0x10000>, diff --git a/trunk/arch/arm/boot/dts/exynos4.dtsi b/trunk/arch/arm/boot/dts/exynos4.dtsi index e1347fceb5bc..1a62bcf18aa3 100644 --- a/trunk/arch/arm/boot/dts/exynos4.dtsi +++ b/trunk/arch/arm/boot/dts/exynos4.dtsi @@ -275,18 +275,27 @@ compatible = "arm,pl330", "arm,primecell"; reg = <0x12680000 0x1000>; interrupts = <0 35 0>; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; }; pdma1: pdma@12690000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x12690000 0x1000>; interrupts = <0 36 0>; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; }; mdma1: mdma@12850000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x12850000 0x1000>; interrupts = <0 34 0>; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <1>; }; }; }; diff --git a/trunk/arch/arm/boot/dts/exynos5440.dtsi b/trunk/arch/arm/boot/dts/exynos5440.dtsi index 5f3562ad6746..9a99755920c0 100644 --- a/trunk/arch/arm/boot/dts/exynos5440.dtsi +++ b/trunk/arch/arm/boot/dts/exynos5440.dtsi @@ -142,12 +142,18 @@ compatible = "arm,pl330", "arm,primecell"; reg = <0x120000 0x1000>; interrupts = <0 34 0>; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; }; pdma1: pdma@121B0000 { compatible = "arm,pl330", "arm,primecell"; reg = <0x121000 0x1000>; interrupts = <0 35 0>; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; }; }; diff --git a/trunk/arch/arm/boot/dts/href.dtsi b/trunk/arch/arm/boot/dts/href.dtsi index 592fb9dc35bd..379128eb9d98 100644 --- a/trunk/arch/arm/boot/dts/href.dtsi +++ b/trunk/arch/arm/boot/dts/href.dtsi @@ -221,7 +221,7 @@ }; }; - ab8500@5 { + ab8500 { ab8500-regulators { ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { regulator-name = "V-DISPLAY"; diff --git a/trunk/arch/arm/boot/dts/hrefv60plus.dts b/trunk/arch/arm/boot/dts/hrefv60plus.dts index 55f4191a626e..2b587a74b813 100644 --- a/trunk/arch/arm/boot/dts/hrefv60plus.dts +++ b/trunk/arch/arm/boot/dts/hrefv60plus.dts @@ -158,7 +158,7 @@ }; }; - ab8500@5 { + ab8500 { ab8500-regulators { ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { regulator-name = "V-DISPLAY"; diff --git a/trunk/arch/arm/boot/dts/imx53-mba53.dts b/trunk/arch/arm/boot/dts/imx53-mba53.dts index e54fffd48369..468c0a1d48d9 100644 --- a/trunk/arch/arm/boot/dts/imx53-mba53.dts +++ b/trunk/arch/arm/boot/dts/imx53-mba53.dts @@ -42,10 +42,9 @@ fsl,pins = <689 0x10000 /* DISP1_DRDY */ 482 0x10000 /* DISP1_HSYNC */ 489 0x10000 /* DISP1_VSYNC */ - 684 0x10000 /* DISP1_DAT_0 */ 515 0x10000 /* DISP1_DAT_22 */ 523 0x10000 /* DISP1_DAT_23 */ - 543 0x10000 /* DISP1_DAT_21 */ + 545 0x10000 /* DISP1_DAT_21 */ 553 0x10000 /* DISP1_DAT_20 */ 558 0x10000 /* DISP1_DAT_19 */ 564 0x10000 /* DISP1_DAT_18 */ diff --git a/trunk/arch/arm/boot/dts/kirkwood-dns320.dts b/trunk/arch/arm/boot/dts/kirkwood-dns320.dts index 5bb0bf39d3b8..c9c44b2f62d7 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-dns320.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-dns320.dts @@ -42,12 +42,10 @@ ocp@f1000000 { serial@12000 { - clock-frequency = <166666667>; status = "okay"; }; serial@12100 { - clock-frequency = <166666667>; status = "okay"; }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-dns325.dts b/trunk/arch/arm/boot/dts/kirkwood-dns325.dts index d430713ea9b9..e4e4930dc5cf 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-dns325.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-dns325.dts @@ -50,7 +50,6 @@ }; }; serial@12000 { - clock-frequency = <200000000>; status = "okay"; }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts b/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts index 2e3dd34e21a5..0196cf6b0ef2 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-dockstar.dts @@ -37,7 +37,6 @@ }; }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts b/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts index ef2d8c705709..289e51d86372 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-dreamplug.dts @@ -38,7 +38,6 @@ }; }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-goflexnet.dts b/trunk/arch/arm/boot/dts/kirkwood-goflexnet.dts index 1b133e0c566e..c3573be7b92c 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-goflexnet.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-goflexnet.dts @@ -73,11 +73,11 @@ }; }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; nand@3000000 { + chip-delay = <40>; status = "okay"; partition@0 { diff --git a/trunk/arch/arm/boot/dts/kirkwood-ib62x0.dts b/trunk/arch/arm/boot/dts/kirkwood-ib62x0.dts index 71902da33d63..5335b1aa8601 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-ib62x0.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-ib62x0.dts @@ -51,7 +51,6 @@ }; }; serial@12000 { - clock-frequency = <200000000>; status = "okay"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts b/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts index 504f16be8b54..12ccf74ac3c4 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-iconnect.dts @@ -78,7 +78,6 @@ }; }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts index 6cae4599c4b3..93c3afbef9ee 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts @@ -115,7 +115,6 @@ }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts b/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts index 8db3123ac80f..5bbd0542cdd3 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-km_kirkwood.dts @@ -34,7 +34,6 @@ }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-lschlv2.dts b/trunk/arch/arm/boot/dts/kirkwood-lschlv2.dts index 9510c9ea666c..9f55d95f35f5 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-lschlv2.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-lschlv2.dts @@ -13,7 +13,6 @@ ocp@f1000000 { serial@12000 { - clock-frequency = <166666667>; status = "okay"; }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-lsxhl.dts b/trunk/arch/arm/boot/dts/kirkwood-lsxhl.dts index 739019c4cba9..5c84c118ed8d 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-lsxhl.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-lsxhl.dts @@ -13,7 +13,6 @@ ocp@f1000000 { serial@12000 { - clock-frequency = <200000000>; status = "okay"; }; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-mplcec4.dts b/trunk/arch/arm/boot/dts/kirkwood-mplcec4.dts index 662dfd81b1ce..758824118a9a 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-mplcec4.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-mplcec4.dts @@ -90,7 +90,6 @@ }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/trunk/arch/arm/boot/dts/kirkwood-ns2-common.dtsi index e8e7ecef1650..6affd924fe11 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-ns2-common.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood-ns2-common.dtsi @@ -23,7 +23,6 @@ }; serial@12000 { - clock-frequency = <166666667>; status = "okay"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-nsa310.dts b/trunk/arch/arm/boot/dts/kirkwood-nsa310.dts index 3a178cf708d7..a7412b937a8a 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-nsa310.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-nsa310.dts @@ -117,7 +117,6 @@ }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-openblocks_a6.dts b/trunk/arch/arm/boot/dts/kirkwood-openblocks_a6.dts index ede7fe0d7a87..d27f7245f8e7 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-openblocks_a6.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-openblocks_a6.dts @@ -18,12 +18,10 @@ ocp@f1000000 { serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; serial@12100 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood-topkick.dts b/trunk/arch/arm/boot/dts/kirkwood-topkick.dts index 842ff95d60df..66eb45b00b25 100644 --- a/trunk/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/trunk/arch/arm/boot/dts/kirkwood-topkick.dts @@ -108,7 +108,6 @@ }; serial@12000 { - clock-frequency = <200000000>; status = "ok"; }; diff --git a/trunk/arch/arm/boot/dts/kirkwood.dtsi b/trunk/arch/arm/boot/dts/kirkwood.dtsi index 2c738d9dc82a..fada7e6d24d8 100644 --- a/trunk/arch/arm/boot/dts/kirkwood.dtsi +++ b/trunk/arch/arm/boot/dts/kirkwood.dtsi @@ -38,6 +38,7 @@ interrupt-controller; #interrupt-cells = <2>; interrupts = <35>, <36>, <37>, <38>; + clocks = <&gate_clk 7>; }; gpio1: gpio@10140 { @@ -49,6 +50,7 @@ interrupt-controller; #interrupt-cells = <2>; interrupts = <39>, <40>, <41>; + clocks = <&gate_clk 7>; }; serial@12000 { @@ -57,7 +59,6 @@ reg-shift = <2>; interrupts = <33>; clocks = <&gate_clk 7>; - /* set clock-frequency in board dts */ status = "disabled"; }; @@ -67,7 +68,6 @@ reg-shift = <2>; interrupts = <34>; clocks = <&gate_clk 7>; - /* set clock-frequency in board dts */ status = "disabled"; }; @@ -75,6 +75,7 @@ compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc"; reg = <0x10300 0x20>; interrupts = <53>; + clocks = <&gate_clk 7>; }; spi@10600 { diff --git a/trunk/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts b/trunk/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts index 5a3a58b7e18f..0077fc8510b7 100644 --- a/trunk/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts +++ b/trunk/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts @@ -11,7 +11,7 @@ / { model = "LaCie Ethernet Disk mini V2"; - compatible = "lacie,ethernet-disk-mini-v2", "marvell-orion5x-88f5182", "marvell,orion5x"; + compatible = "lacie,ethernet-disk-mini-v2", "marvell,orion5x-88f5182", "marvell,orion5x"; memory { reg = <0x00000000 0x4000000>; /* 64 MB */ diff --git a/trunk/arch/arm/boot/dts/orion5x.dtsi b/trunk/arch/arm/boot/dts/orion5x.dtsi index 8aad00f81ed9..f7bec3b1ba32 100644 --- a/trunk/arch/arm/boot/dts/orion5x.dtsi +++ b/trunk/arch/arm/boot/dts/orion5x.dtsi @@ -13,6 +13,9 @@ compatible = "marvell,orion5x"; interrupt-parent = <&intc>; + aliases { + gpio0 = &gpio0; + }; intc: interrupt-controller { compatible = "marvell,orion-intc", "marvell,intc"; interrupt-controller; @@ -32,7 +35,9 @@ #gpio-cells = <2>; gpio-controller; reg = <0x10100 0x40>; - ngpio = <32>; + ngpios = <32>; + interrupt-controller; + #interrupt-cells = <2>; interrupts = <6>, <7>, <8>, <9>; }; @@ -91,7 +96,7 @@ reg = <0x90000 0x10000>, <0xf2200000 0x800>; reg-names = "regs", "sram"; - interrupts = <22>; + interrupts = <28>; status = "okay"; }; }; diff --git a/trunk/arch/arm/boot/dts/snowball.dts b/trunk/arch/arm/boot/dts/snowball.dts index 27f31a5fa494..d3ec32f6b790 100644 --- a/trunk/arch/arm/boot/dts/snowball.dts +++ b/trunk/arch/arm/boot/dts/snowball.dts @@ -298,7 +298,7 @@ }; }; - ab8500@5 { + ab8500 { ab8500-regulators { ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { regulator-name = "V-DISPLAY"; diff --git a/trunk/arch/arm/boot/dts/socfpga.dtsi b/trunk/arch/arm/boot/dts/socfpga.dtsi index 936d2306e7e1..7e8769bd5977 100644 --- a/trunk/arch/arm/boot/dts/socfpga.dtsi +++ b/trunk/arch/arm/boot/dts/socfpga.dtsi @@ -75,6 +75,9 @@ compatible = "arm,pl330", "arm,primecell"; reg = <0xffe01000 0x1000>; interrupts = <0 180 4>; + #dma-cells = <1>; + #dma-channels = <8>; + #dma-requests = <32>; }; }; diff --git a/trunk/arch/arm/boot/dts/tegra20.dtsi b/trunk/arch/arm/boot/dts/tegra20.dtsi index 9a428931d042..3d3f64d2111a 100644 --- a/trunk/arch/arm/boot/dts/tegra20.dtsi +++ b/trunk/arch/arm/boot/dts/tegra20.dtsi @@ -118,6 +118,7 @@ compatible = "arm,cortex-a9-twd-timer"; reg = <0x50040600 0x20>; interrupts = <1 13 0x304>; + clocks = <&tegra_car 132>; }; intc: interrupt-controller { @@ -384,7 +385,7 @@ spi@7000d800 { compatible = "nvidia,tegra20-slink"; - reg = <0x7000d480 0x200>; + reg = <0x7000d800 0x200>; interrupts = <0 83 0x04>; nvidia,dma-request-selector = <&apbdma 17>; #address-cells = <1>; diff --git a/trunk/arch/arm/boot/dts/tegra30.dtsi b/trunk/arch/arm/boot/dts/tegra30.dtsi index 767803e1fd55..dbf46c272562 100644 --- a/trunk/arch/arm/boot/dts/tegra30.dtsi +++ b/trunk/arch/arm/boot/dts/tegra30.dtsi @@ -119,6 +119,7 @@ compatible = "arm,cortex-a9-twd-timer"; reg = <0x50040600 0x20>; interrupts = <1 13 0xf04>; + clocks = <&tegra_car 214>; }; intc: interrupt-controller { @@ -371,7 +372,7 @@ spi@7000d800 { compatible = "nvidia,tegra30-slink", "nvidia,tegra20-slink"; - reg = <0x7000d480 0x200>; + reg = <0x7000d800 0x200>; interrupts = <0 83 0x04>; nvidia,dma-request-selector = <&apbdma 17>; #address-cells = <1>; diff --git a/trunk/arch/arm/configs/mxs_defconfig b/trunk/arch/arm/configs/mxs_defconfig index fbbc5bb022d5..6a99e30f81d2 100644 --- a/trunk/arch/arm/configs/mxs_defconfig +++ b/trunk/arch/arm/configs/mxs_defconfig @@ -116,6 +116,7 @@ CONFIG_SND_SOC=y CONFIG_SND_MXS_SOC=y CONFIG_SND_SOC_MXS_SGTL5000=y CONFIG_USB=y +CONFIG_USB_EHCI_HCD=y CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_STORAGE=y diff --git a/trunk/arch/arm/configs/omap2plus_defconfig b/trunk/arch/arm/configs/omap2plus_defconfig index b16bae2c9a60..33903ca0d879 100644 --- a/trunk/arch/arm/configs/omap2plus_defconfig +++ b/trunk/arch/arm/configs/omap2plus_defconfig @@ -93,6 +93,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_SENSORS_LIS3LV02D=m CONFIG_SENSORS_TSL2550=m CONFIG_SENSORS_LIS3_I2C=m +CONFIG_BMP085_I2C=m CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y CONFIG_SCSI_MULTI_LUN=y @@ -126,6 +127,8 @@ CONFIG_INPUT_MISC=y CONFIG_INPUT_TWL4030_PWRBUTTON=y CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y diff --git a/trunk/arch/arm/include/asm/delay.h b/trunk/arch/arm/include/asm/delay.h index 720799fd3a81..dff714d886d5 100644 --- a/trunk/arch/arm/include/asm/delay.h +++ b/trunk/arch/arm/include/asm/delay.h @@ -24,7 +24,7 @@ extern struct arm_delay_ops { void (*delay)(unsigned long); void (*const_udelay)(unsigned long); void (*udelay)(unsigned long); - bool const_clock; + unsigned long ticks_per_jiffy; } arm_delay_ops; #define __delay(n) arm_delay_ops.delay(n) diff --git a/trunk/arch/arm/include/asm/highmem.h b/trunk/arch/arm/include/asm/highmem.h index 8c5e828f484d..91b99abe7a95 100644 --- a/trunk/arch/arm/include/asm/highmem.h +++ b/trunk/arch/arm/include/asm/highmem.h @@ -41,6 +41,13 @@ extern void kunmap_high(struct page *page); #endif #endif +/* + * Needed to be able to broadcast the TLB invalidation for kmap. + */ +#ifdef CONFIG_ARM_ERRATA_798181 +#undef ARCH_NEEDS_KMAP_HIGH_GET +#endif + #ifdef ARCH_NEEDS_KMAP_HIGH_GET extern void *kmap_high_get(struct page *page); #else diff --git a/trunk/arch/arm/include/asm/mmu_context.h b/trunk/arch/arm/include/asm/mmu_context.h index 863a6611323c..a7b85e0d0cc1 100644 --- a/trunk/arch/arm/include/asm/mmu_context.h +++ b/trunk/arch/arm/include/asm/mmu_context.h @@ -27,6 +27,8 @@ void __check_vmalloc_seq(struct mm_struct *mm); void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); #define init_new_context(tsk,mm) ({ atomic64_set(&mm->context.id, 0); 0; }) +DECLARE_PER_CPU(atomic64_t, active_asids); + #else /* !CONFIG_CPU_HAS_ASID */ #ifdef CONFIG_MMU diff --git a/trunk/arch/arm/include/asm/tlbflush.h b/trunk/arch/arm/include/asm/tlbflush.h index 4db8c8820f0d..9e9c041358ca 100644 --- a/trunk/arch/arm/include/asm/tlbflush.h +++ b/trunk/arch/arm/include/asm/tlbflush.h @@ -450,6 +450,21 @@ static inline void local_flush_bp_all(void) isb(); } +#ifdef CONFIG_ARM_ERRATA_798181 +static inline void dummy_flush_tlb_a15_erratum(void) +{ + /* + * Dummy TLBIMVAIS. Using the unmapped address 0 and ASID 0. + */ + asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (0)); + dsb(); +} +#else +static inline void dummy_flush_tlb_a15_erratum(void) +{ +} +#endif + /* * flush_pmd_entry * diff --git a/trunk/arch/arm/include/asm/xen/events.h b/trunk/arch/arm/include/asm/xen/events.h index 5c27696de14f..8b1f37bfeeec 100644 --- a/trunk/arch/arm/include/asm/xen/events.h +++ b/trunk/arch/arm/include/asm/xen/events.h @@ -2,6 +2,7 @@ #define _ASM_ARM_XEN_EVENTS_H #include +#include enum ipi_vector { XEN_PLACEHOLDER_VECTOR, @@ -15,26 +16,8 @@ static inline int xen_irqs_disabled(struct pt_regs *regs) return raw_irqs_disabled_flags(regs->ARM_cpsr); } -/* - * We cannot use xchg because it does not support 8-byte - * values. However it is safe to use {ldr,dtd}exd directly because all - * platforms which Xen can run on support those instructions. - */ -static inline xen_ulong_t xchg_xen_ulong(xen_ulong_t *ptr, xen_ulong_t val) -{ - xen_ulong_t oldval; - unsigned int tmp; - - wmb(); - asm volatile("@ xchg_xen_ulong\n" - "1: ldrexd %0, %H0, [%3]\n" - " strexd %1, %2, %H2, [%3]\n" - " teq %1, #0\n" - " bne 1b" - : "=&r" (oldval), "=&r" (tmp) - : "r" (val), "r" (ptr) - : "memory", "cc"); - return oldval; -} +#define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((ptr), \ + atomic64_t, \ + counter), (val)) #endif /* _ASM_ARM_XEN_EVENTS_H */ diff --git a/trunk/arch/arm/kernel/entry-common.S b/trunk/arch/arm/kernel/entry-common.S index 3248cde504ed..fefd7f971437 100644 --- a/trunk/arch/arm/kernel/entry-common.S +++ b/trunk/arch/arm/kernel/entry-common.S @@ -276,7 +276,13 @@ ENDPROC(ftrace_graph_caller_old) */ .macro mcount_enter +/* + * This pad compensates for the push {lr} at the call site. Note that we are + * unable to unwind through a function which does not otherwise save its lr. + */ + UNWIND(.pad #4) stmdb sp!, {r0-r3, lr} + UNWIND(.save {r0-r3, lr}) .endm .macro mcount_get_lr reg @@ -289,6 +295,7 @@ ENDPROC(ftrace_graph_caller_old) .endm ENTRY(__gnu_mcount_nc) +UNWIND(.fnstart) #ifdef CONFIG_DYNAMIC_FTRACE mov ip, lr ldmia sp!, {lr} @@ -296,17 +303,22 @@ ENTRY(__gnu_mcount_nc) #else __mcount #endif +UNWIND(.fnend) ENDPROC(__gnu_mcount_nc) #ifdef CONFIG_DYNAMIC_FTRACE ENTRY(ftrace_caller) +UNWIND(.fnstart) __ftrace_caller +UNWIND(.fnend) ENDPROC(ftrace_caller) #endif #ifdef CONFIG_FUNCTION_GRAPH_TRACER ENTRY(ftrace_graph_caller) +UNWIND(.fnstart) __ftrace_graph_caller +UNWIND(.fnend) ENDPROC(ftrace_graph_caller) #endif diff --git a/trunk/arch/arm/kernel/head.S b/trunk/arch/arm/kernel/head.S index e0eb9a1cae77..8bac553fe213 100644 --- a/trunk/arch/arm/kernel/head.S +++ b/trunk/arch/arm/kernel/head.S @@ -267,7 +267,7 @@ __create_page_tables: addne r6, r6, #1 << SECTION_SHIFT strne r6, [r3] -#if defined(CONFIG_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8) +#if defined(CONFIG_ARM_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8) sub r4, r4, #4 @ Fixup page table pointer @ for 64-bit descriptors #endif diff --git a/trunk/arch/arm/kernel/hw_breakpoint.c b/trunk/arch/arm/kernel/hw_breakpoint.c index 96093b75ab90..5dc1aa6f0f7d 100644 --- a/trunk/arch/arm/kernel/hw_breakpoint.c +++ b/trunk/arch/arm/kernel/hw_breakpoint.c @@ -966,7 +966,7 @@ static void reset_ctrl_regs(void *unused) } if (err) { - pr_warning("CPU %d debug is powered down!\n", cpu); + pr_warn_once("CPU %d debug is powered down!\n", cpu); cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); return; } @@ -987,7 +987,7 @@ static void reset_ctrl_regs(void *unused) isb(); if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { - pr_warning("CPU %d failed to disable vector catch\n", cpu); + pr_warn_once("CPU %d failed to disable vector catch\n", cpu); return; } @@ -1007,7 +1007,7 @@ static void reset_ctrl_regs(void *unused) } if (cpumask_intersects(&debug_err_mask, cpumask_of(cpu))) { - pr_warning("CPU %d failed to clear debug register pairs\n", cpu); + pr_warn_once("CPU %d failed to clear debug register pairs\n", cpu); return; } diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 3f6cbb2e3eda..d343a6c3a6d1 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -353,6 +353,23 @@ void __init early_print(const char *str, ...) printk("%s", buf); } +static void __init cpuid_init_hwcaps(void) +{ + unsigned int divide_instrs; + + if (cpu_architecture() < CPU_ARCH_ARMv7) + return; + + divide_instrs = (read_cpuid_ext(CPUID_EXT_ISAR0) & 0x0f000000) >> 24; + + switch (divide_instrs) { + case 2: + elf_hwcap |= HWCAP_IDIVA; + case 1: + elf_hwcap |= HWCAP_IDIVT; + } +} + static void __init feat_v6_fixup(void) { int id = read_cpuid_id(); @@ -483,8 +500,11 @@ static void __init setup_processor(void) snprintf(elf_platform, ELF_PLATFORM_SIZE, "%s%c", list->elf_name, ENDIANNESS); elf_hwcap = list->elf_hwcap; + + cpuid_init_hwcaps(); + #ifndef CONFIG_ARM_THUMB - elf_hwcap &= ~HWCAP_THUMB; + elf_hwcap &= ~(HWCAP_THUMB | HWCAP_IDIVT); #endif feat_v6_fixup(); @@ -524,7 +544,7 @@ int __init arm_add_memory(phys_addr_t start, phys_addr_t size) size -= start & ~PAGE_MASK; bank->start = PAGE_ALIGN(start); -#ifndef CONFIG_LPAE +#ifndef CONFIG_ARM_LPAE if (bank->start + size < bank->start) { printk(KERN_CRIT "Truncating memory at 0x%08llx to fit in " "32-bit physical address space\n", (long long)start); diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 31644f1978d5..1f2ccccaf009 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -480,7 +480,7 @@ static void __cpuinit broadcast_timer_setup(struct clock_event_device *evt) evt->features = CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_DUMMY; - evt->rating = 400; + evt->rating = 100; evt->mult = 1; evt->set_mode = broadcast_timer_set_mode; @@ -673,9 +673,6 @@ static int cpufreq_callback(struct notifier_block *nb, if (freq->flags & CPUFREQ_CONST_LOOPS) return NOTIFY_OK; - if (arm_delay_ops.const_clock) - return NOTIFY_OK; - if (!per_cpu(l_p_j_ref, cpu)) { per_cpu(l_p_j_ref, cpu) = per_cpu(cpu_data, cpu).loops_per_jiffy; diff --git a/trunk/arch/arm/kernel/smp_tlb.c b/trunk/arch/arm/kernel/smp_tlb.c index bd0300531399..e82e1d248772 100644 --- a/trunk/arch/arm/kernel/smp_tlb.c +++ b/trunk/arch/arm/kernel/smp_tlb.c @@ -12,6 +12,7 @@ #include #include +#include /**********************************************************************/ @@ -69,12 +70,72 @@ static inline void ipi_flush_bp_all(void *ignored) local_flush_bp_all(); } +#ifdef CONFIG_ARM_ERRATA_798181 +static int erratum_a15_798181(void) +{ + unsigned int midr = read_cpuid_id(); + + /* Cortex-A15 r0p0..r3p2 affected */ + if ((midr & 0xff0ffff0) != 0x410fc0f0 || midr > 0x413fc0f2) + return 0; + return 1; +} +#else +static int erratum_a15_798181(void) +{ + return 0; +} +#endif + +static void ipi_flush_tlb_a15_erratum(void *arg) +{ + dmb(); +} + +static void broadcast_tlb_a15_erratum(void) +{ + if (!erratum_a15_798181()) + return; + + dummy_flush_tlb_a15_erratum(); + smp_call_function_many(cpu_online_mask, ipi_flush_tlb_a15_erratum, + NULL, 1); +} + +static void broadcast_tlb_mm_a15_erratum(struct mm_struct *mm) +{ + int cpu; + cpumask_t mask = { CPU_BITS_NONE }; + + if (!erratum_a15_798181()) + return; + + dummy_flush_tlb_a15_erratum(); + for_each_online_cpu(cpu) { + if (cpu == smp_processor_id()) + continue; + /* + * We only need to send an IPI if the other CPUs are running + * the same ASID as the one being invalidated. There is no + * need for locking around the active_asids check since the + * switch_mm() function has at least one dmb() (as required by + * this workaround) in case a context switch happens on + * another CPU after the condition below. + */ + if (atomic64_read(&mm->context.id) == + atomic64_read(&per_cpu(active_asids, cpu))) + cpumask_set_cpu(cpu, &mask); + } + smp_call_function_many(&mask, ipi_flush_tlb_a15_erratum, NULL, 1); +} + void flush_tlb_all(void) { if (tlb_ops_need_broadcast()) on_each_cpu(ipi_flush_tlb_all, NULL, 1); else local_flush_tlb_all(); + broadcast_tlb_a15_erratum(); } void flush_tlb_mm(struct mm_struct *mm) @@ -83,6 +144,7 @@ void flush_tlb_mm(struct mm_struct *mm) on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1); else local_flush_tlb_mm(mm); + broadcast_tlb_mm_a15_erratum(mm); } void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) @@ -95,6 +157,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) &ta, 1); } else local_flush_tlb_page(vma, uaddr); + broadcast_tlb_mm_a15_erratum(vma->vm_mm); } void flush_tlb_kernel_page(unsigned long kaddr) @@ -105,6 +168,7 @@ void flush_tlb_kernel_page(unsigned long kaddr) on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1); } else local_flush_tlb_kernel_page(kaddr); + broadcast_tlb_a15_erratum(); } void flush_tlb_range(struct vm_area_struct *vma, @@ -119,6 +183,7 @@ void flush_tlb_range(struct vm_area_struct *vma, &ta, 1); } else local_flush_tlb_range(vma, start, end); + broadcast_tlb_mm_a15_erratum(vma->vm_mm); } void flush_tlb_kernel_range(unsigned long start, unsigned long end) @@ -130,6 +195,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) on_each_cpu(ipi_flush_tlb_kernel_range, &ta, 1); } else local_flush_tlb_kernel_range(start, end); + broadcast_tlb_a15_erratum(); } void flush_bp_all(void) diff --git a/trunk/arch/arm/kvm/vgic.c b/trunk/arch/arm/kvm/vgic.c index c9a17316e9fe..0e4cfe123b38 100644 --- a/trunk/arch/arm/kvm/vgic.c +++ b/trunk/arch/arm/kvm/vgic.c @@ -883,8 +883,7 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq) lr, irq, vgic_cpu->vgic_lr[lr]); BUG_ON(!test_bit(lr, vgic_cpu->lr_used)); vgic_cpu->vgic_lr[lr] |= GICH_LR_PENDING_BIT; - - goto out; + return true; } /* Try to use another LR for this interrupt */ @@ -898,7 +897,6 @@ static bool vgic_queue_irq(struct kvm_vcpu *vcpu, u8 sgi_source_id, int irq) vgic_cpu->vgic_irq_lr_map[irq] = lr; set_bit(lr, vgic_cpu->lr_used); -out: if (!vgic_irq_is_edge(vcpu, irq)) vgic_cpu->vgic_lr[lr] |= GICH_LR_EOI; @@ -1018,21 +1016,6 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu) kvm_debug("MISR = %08x\n", vgic_cpu->vgic_misr); - /* - * We do not need to take the distributor lock here, since the only - * action we perform is clearing the irq_active_bit for an EOIed - * level interrupt. There is a potential race with - * the queuing of an interrupt in __kvm_vgic_flush_hwstate(), where we - * check if the interrupt is already active. Two possibilities: - * - * - The queuing is occurring on the same vcpu: cannot happen, - * as we're already in the context of this vcpu, and - * executing the handler - * - The interrupt has been migrated to another vcpu, and we - * ignore this interrupt for this run. Big deal. It is still - * pending though, and will get considered when this vcpu - * exits. - */ if (vgic_cpu->vgic_misr & GICH_MISR_EOI) { /* * Some level interrupts have been EOIed. Clear their @@ -1054,6 +1037,13 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu) } else { vgic_cpu_irq_clear(vcpu, irq); } + + /* + * Despite being EOIed, the LR may not have + * been marked as empty. + */ + set_bit(lr, (unsigned long *)vgic_cpu->vgic_elrsr); + vgic_cpu->vgic_lr[lr] &= ~GICH_LR_ACTIVE_BIT; } } @@ -1064,9 +1054,8 @@ static bool vgic_process_maintenance(struct kvm_vcpu *vcpu) } /* - * Sync back the VGIC state after a guest run. We do not really touch - * the distributor here (the irq_pending_on_cpu bit is safe to set), - * so there is no need for taking its lock. + * Sync back the VGIC state after a guest run. The distributor lock is + * needed so we don't get preempted in the middle of the state processing. */ static void __kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) { @@ -1112,10 +1101,14 @@ void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu) void kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu) { + struct vgic_dist *dist = &vcpu->kvm->arch.vgic; + if (!irqchip_in_kernel(vcpu->kvm)) return; + spin_lock(&dist->lock); __kvm_vgic_sync_hwstate(vcpu); + spin_unlock(&dist->lock); } int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu) diff --git a/trunk/arch/arm/lib/delay.c b/trunk/arch/arm/lib/delay.c index 6b93f6a1a3c7..64dbfa57204a 100644 --- a/trunk/arch/arm/lib/delay.c +++ b/trunk/arch/arm/lib/delay.c @@ -58,7 +58,7 @@ static void __timer_delay(unsigned long cycles) static void __timer_const_udelay(unsigned long xloops) { unsigned long long loops = xloops; - loops *= loops_per_jiffy; + loops *= arm_delay_ops.ticks_per_jiffy; __timer_delay(loops >> UDELAY_SHIFT); } @@ -73,11 +73,13 @@ void __init register_current_timer_delay(const struct delay_timer *timer) pr_info("Switching to timer-based delay loop\n"); delay_timer = timer; lpj_fine = timer->freq / HZ; - loops_per_jiffy = lpj_fine; + + /* cpufreq may scale loops_per_jiffy, so keep a private copy */ + arm_delay_ops.ticks_per_jiffy = lpj_fine; arm_delay_ops.delay = __timer_delay; arm_delay_ops.const_udelay = __timer_const_udelay; arm_delay_ops.udelay = __timer_udelay; - arm_delay_ops.const_clock = true; + delay_calibrated = true; } else { pr_info("Ignoring duplicate/late registration of read_current_timer delay\n"); diff --git a/trunk/arch/arm/lib/memset.S b/trunk/arch/arm/lib/memset.S index d912e7397ecc..94b0650ea98f 100644 --- a/trunk/arch/arm/lib/memset.S +++ b/trunk/arch/arm/lib/memset.S @@ -14,31 +14,15 @@ .text .align 5 - .word 0 - -1: subs r2, r2, #4 @ 1 do we have enough - blt 5f @ 1 bytes to align with? - cmp r3, #2 @ 1 - strltb r1, [ip], #1 @ 1 - strleb r1, [ip], #1 @ 1 - strb r1, [ip], #1 @ 1 - add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) -/* - * The pointer is now aligned and the length is adjusted. Try doing the - * memset again. - */ ENTRY(memset) -/* - * Preserve the contents of r0 for the return value. - */ - mov ip, r0 - ands r3, ip, #3 @ 1 unaligned? - bne 1b @ 1 + ands r3, r0, #3 @ 1 unaligned? + mov ip, r0 @ preserve r0 as return value + bne 6f @ 1 /* * we know that the pointer in ip is aligned to a word boundary. */ - orr r1, r1, r1, lsl #8 +1: orr r1, r1, r1, lsl #8 orr r1, r1, r1, lsl #16 mov r3, r1 cmp r2, #16 @@ -127,4 +111,13 @@ ENTRY(memset) tst r2, #1 strneb r1, [ip], #1 mov pc, lr + +6: subs r2, r2, #4 @ 1 do we have enough + blt 5b @ 1 bytes to align with? + cmp r3, #2 @ 1 + strltb r1, [ip], #1 @ 1 + strleb r1, [ip], #1 @ 1 + strb r1, [ip], #1 @ 1 + add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) + b 1b ENDPROC(memset) diff --git a/trunk/arch/arm/mach-at91/board-foxg20.c b/trunk/arch/arm/mach-at91/board-foxg20.c index 2ea7059b840b..c20a870ea9c9 100644 --- a/trunk/arch/arm/mach-at91/board-foxg20.c +++ b/trunk/arch/arm/mach-at91/board-foxg20.c @@ -176,6 +176,7 @@ static struct w1_gpio_platform_data w1_gpio_pdata = { /* If you choose to use a pin other than PB16 it needs to be 3.3V */ .pin = AT91_PIN_PB16, .is_open_drain = 1, + .ext_pullup_enable_pin = -EINVAL, }; static struct platform_device w1_device = { diff --git a/trunk/arch/arm/mach-at91/board-stamp9g20.c b/trunk/arch/arm/mach-at91/board-stamp9g20.c index a033b8df9fb2..869cbecf00b7 100644 --- a/trunk/arch/arm/mach-at91/board-stamp9g20.c +++ b/trunk/arch/arm/mach-at91/board-stamp9g20.c @@ -188,6 +188,7 @@ static struct spi_board_info portuxg20_spi_devices[] = { static struct w1_gpio_platform_data w1_gpio_pdata = { .pin = AT91_PIN_PA29, .is_open_drain = 1, + .ext_pullup_enable_pin = -EINVAL, }; static struct platform_device w1_device = { diff --git a/trunk/arch/arm/mach-at91/include/mach/gpio.h b/trunk/arch/arm/mach-at91/include/mach/gpio.h index eed465ab0dd7..5fc23771c154 100644 --- a/trunk/arch/arm/mach-at91/include/mach/gpio.h +++ b/trunk/arch/arm/mach-at91/include/mach/gpio.h @@ -209,6 +209,14 @@ extern int at91_get_gpio_value(unsigned pin); extern void at91_gpio_suspend(void); extern void at91_gpio_resume(void); +#ifdef CONFIG_PINCTRL_AT91 +extern void at91_pinctrl_gpio_suspend(void); +extern void at91_pinctrl_gpio_resume(void); +#else +static inline void at91_pinctrl_gpio_suspend(void) {} +static inline void at91_pinctrl_gpio_resume(void) {} +#endif + #endif /* __ASSEMBLY__ */ #endif diff --git a/trunk/arch/arm/mach-at91/irq.c b/trunk/arch/arm/mach-at91/irq.c index 8e210262aeee..e0ca59171022 100644 --- a/trunk/arch/arm/mach-at91/irq.c +++ b/trunk/arch/arm/mach-at91/irq.c @@ -92,23 +92,21 @@ static int at91_aic_set_wake(struct irq_data *d, unsigned value) void at91_irq_suspend(void) { - int i = 0, bit; + int bit = -1; if (has_aic5()) { /* disable enabled irqs */ - while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { + while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) { at91_aic_write(AT91_AIC5_SSR, bit & AT91_AIC5_INTSEL_MSK); at91_aic_write(AT91_AIC5_IDCR, 1); - i = bit; } /* enable wakeup irqs */ - i = 0; - while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { + bit = -1; + while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) { at91_aic_write(AT91_AIC5_SSR, bit & AT91_AIC5_INTSEL_MSK); at91_aic_write(AT91_AIC5_IECR, 1); - i = bit; } } else { at91_aic_write(AT91_AIC_IDCR, *backups); @@ -118,23 +116,21 @@ void at91_irq_suspend(void) void at91_irq_resume(void) { - int i = 0, bit; + int bit = -1; if (has_aic5()) { /* disable wakeup irqs */ - while ((bit = find_next_bit(wakeups, n_irqs, i)) < n_irqs) { + while ((bit = find_next_bit(wakeups, n_irqs, bit + 1)) < n_irqs) { at91_aic_write(AT91_AIC5_SSR, bit & AT91_AIC5_INTSEL_MSK); at91_aic_write(AT91_AIC5_IDCR, 1); - i = bit; } /* enable irqs disabled for suspend */ - i = 0; - while ((bit = find_next_bit(backups, n_irqs, i)) < n_irqs) { + bit = -1; + while ((bit = find_next_bit(backups, n_irqs, bit + 1)) < n_irqs) { at91_aic_write(AT91_AIC5_SSR, bit & AT91_AIC5_INTSEL_MSK); at91_aic_write(AT91_AIC5_IECR, 1); - i = bit; } } else { at91_aic_write(AT91_AIC_IDCR, *wakeups); diff --git a/trunk/arch/arm/mach-at91/pm.c b/trunk/arch/arm/mach-at91/pm.c index b8017c1a864d..530db304ec5e 100644 --- a/trunk/arch/arm/mach-at91/pm.c +++ b/trunk/arch/arm/mach-at91/pm.c @@ -201,7 +201,10 @@ extern u32 at91_slow_clock_sz; static int at91_pm_enter(suspend_state_t state) { - at91_gpio_suspend(); + if (of_have_populated_dt()) + at91_pinctrl_gpio_suspend(); + else + at91_gpio_suspend(); at91_irq_suspend(); pr_debug("AT91: PM - wake mask %08x, pm state %d\n", @@ -288,7 +291,10 @@ static int at91_pm_enter(suspend_state_t state) error: target_state = PM_SUSPEND_ON; at91_irq_resume(); - at91_gpio_resume(); + if (of_have_populated_dt()) + at91_pinctrl_gpio_resume(); + else + at91_gpio_resume(); return 0; } diff --git a/trunk/arch/arm/mach-cns3xxx/core.c b/trunk/arch/arm/mach-cns3xxx/core.c index e698f26cc0cb..52e4bb5cf12d 100644 --- a/trunk/arch/arm/mach-cns3xxx/core.c +++ b/trunk/arch/arm/mach-cns3xxx/core.c @@ -22,19 +22,9 @@ static struct map_desc cns3xxx_io_desc[] __initdata = { { - .virtual = CNS3XXX_TC11MP_TWD_BASE_VIRT, - .pfn = __phys_to_pfn(CNS3XXX_TC11MP_TWD_BASE), - .length = SZ_4K, - .type = MT_DEVICE, - }, { - .virtual = CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT, - .pfn = __phys_to_pfn(CNS3XXX_TC11MP_GIC_CPU_BASE), - .length = SZ_4K, - .type = MT_DEVICE, - }, { - .virtual = CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT, - .pfn = __phys_to_pfn(CNS3XXX_TC11MP_GIC_DIST_BASE), - .length = SZ_4K, + .virtual = CNS3XXX_TC11MP_SCU_BASE_VIRT, + .pfn = __phys_to_pfn(CNS3XXX_TC11MP_SCU_BASE), + .length = SZ_8K, .type = MT_DEVICE, }, { .virtual = CNS3XXX_TIMER1_2_3_BASE_VIRT, diff --git a/trunk/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h b/trunk/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h index 191c8e57f289..b1021aafa481 100644 --- a/trunk/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h +++ b/trunk/arch/arm/mach-cns3xxx/include/mach/cns3xxx.h @@ -94,10 +94,10 @@ #define RTC_INTR_STS_OFFSET 0x34 #define CNS3XXX_MISC_BASE 0x76000000 /* Misc Control */ -#define CNS3XXX_MISC_BASE_VIRT 0xFFF07000 /* Misc Control */ +#define CNS3XXX_MISC_BASE_VIRT 0xFB000000 /* Misc Control */ #define CNS3XXX_PM_BASE 0x77000000 /* Power Management Control */ -#define CNS3XXX_PM_BASE_VIRT 0xFFF08000 +#define CNS3XXX_PM_BASE_VIRT 0xFB001000 #define PM_CLK_GATE_OFFSET 0x00 #define PM_SOFT_RST_OFFSET 0x04 @@ -109,7 +109,7 @@ #define PM_PLL_HM_PD_OFFSET 0x1C #define CNS3XXX_UART0_BASE 0x78000000 /* UART 0 */ -#define CNS3XXX_UART0_BASE_VIRT 0xFFF09000 +#define CNS3XXX_UART0_BASE_VIRT 0xFB002000 #define CNS3XXX_UART1_BASE 0x78400000 /* UART 1 */ #define CNS3XXX_UART1_BASE_VIRT 0xFFF0A000 @@ -130,7 +130,7 @@ #define CNS3XXX_I2S_BASE_VIRT 0xFFF10000 #define CNS3XXX_TIMER1_2_3_BASE 0x7C800000 /* Timer */ -#define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFFF10800 +#define CNS3XXX_TIMER1_2_3_BASE_VIRT 0xFB003000 #define TIMER1_COUNTER_OFFSET 0x00 #define TIMER1_AUTO_RELOAD_OFFSET 0x04 @@ -227,16 +227,16 @@ * Testchip peripheral and fpga gic regions */ #define CNS3XXX_TC11MP_SCU_BASE 0x90000000 /* IRQ, Test chip */ -#define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFF000000 +#define CNS3XXX_TC11MP_SCU_BASE_VIRT 0xFB004000 #define CNS3XXX_TC11MP_GIC_CPU_BASE 0x90000100 /* Test chip interrupt controller CPU interface */ -#define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT 0xFF000100 +#define CNS3XXX_TC11MP_GIC_CPU_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x100) #define CNS3XXX_TC11MP_TWD_BASE 0x90000600 -#define CNS3XXX_TC11MP_TWD_BASE_VIRT 0xFF000600 +#define CNS3XXX_TC11MP_TWD_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x600) #define CNS3XXX_TC11MP_GIC_DIST_BASE 0x90001000 /* Test chip interrupt controller distributor */ -#define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT 0xFF001000 +#define CNS3XXX_TC11MP_GIC_DIST_BASE_VIRT (CNS3XXX_TC11MP_SCU_BASE_VIRT + 0x1000) #define CNS3XXX_TC11MP_L220_BASE 0x92002000 /* L220 registers */ #define CNS3XXX_TC11MP_L220_BASE_VIRT 0xFF002000 diff --git a/trunk/arch/arm/mach-davinci/dma.c b/trunk/arch/arm/mach-davinci/dma.c index a685e9706b7b..45b7c71d9cc1 100644 --- a/trunk/arch/arm/mach-davinci/dma.c +++ b/trunk/arch/arm/mach-davinci/dma.c @@ -743,6 +743,9 @@ EXPORT_SYMBOL(edma_free_channel); */ int edma_alloc_slot(unsigned ctlr, int slot) { + if (!edma_cc[ctlr]) + return -EINVAL; + if (slot >= 0) slot = EDMA_CHAN_SLOT(slot); diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h b/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h index d2afb4dd82ab..b5cc77d2380b 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h @@ -47,9 +47,13 @@ static void __raw_writel(unsigned int value, unsigned int ptr) static inline void putc(int c) { - /* Transmit fifo not full? */ - while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF) - ; + int i; + + for (i = 0; i < 10000; i++) { + /* Transmit fifo not full? */ + if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)) + break; + } __raw_writeb(c, PHYS_UART_DATA); } diff --git a/trunk/arch/arm/mach-footbridge/Kconfig b/trunk/arch/arm/mach-footbridge/Kconfig index abda5a18a664..0f2111a11315 100644 --- a/trunk/arch/arm/mach-footbridge/Kconfig +++ b/trunk/arch/arm/mach-footbridge/Kconfig @@ -67,6 +67,7 @@ config ARCH_NETWINDER select ISA select ISA_DMA select PCI + select VIRT_TO_BUS help Say Y here if you intend to run this kernel on the Rebel.COM NetWinder. Information about this machine can be found at: diff --git a/trunk/arch/arm/mach-imx/clk-imx35.c b/trunk/arch/arm/mach-imx/clk-imx35.c index 74e3a34d78b8..e13a8fa5e62c 100644 --- a/trunk/arch/arm/mach-imx/clk-imx35.c +++ b/trunk/arch/arm/mach-imx/clk-imx35.c @@ -264,6 +264,7 @@ int __init mx35_clocks_init(void) clk_prepare_enable(clk[gpio3_gate]); clk_prepare_enable(clk[iim_gate]); clk_prepare_enable(clk[emi_gate]); + clk_prepare_enable(clk[max_gate]); /* * SCC is needed to boot via mmc after a watchdog reset. The clock code diff --git a/trunk/arch/arm/mach-imx/clk-imx6q.c b/trunk/arch/arm/mach-imx/clk-imx6q.c index 7b025ee528a5..2f9ff93a4e61 100644 --- a/trunk/arch/arm/mach-imx/clk-imx6q.c +++ b/trunk/arch/arm/mach-imx/clk-imx6q.c @@ -172,7 +172,7 @@ static struct clk *clk[clk_max]; static struct clk_onecell_data clk_data; static enum mx6q_clks const clks_init_on[] __initconst = { - mmdc_ch0_axi, rom, + mmdc_ch0_axi, rom, pll1_sys, }; static struct clk_div_table clk_enet_ref_table[] = { diff --git a/trunk/arch/arm/mach-imx/common.h b/trunk/arch/arm/mach-imx/common.h index 5a800bfcec5b..5bf4a97ab241 100644 --- a/trunk/arch/arm/mach-imx/common.h +++ b/trunk/arch/arm/mach-imx/common.h @@ -110,6 +110,8 @@ void tzic_handle_irq(struct pt_regs *); extern void imx_enable_cpu(int cpu, bool enable); extern void imx_set_cpu_jump(int cpu, void *jump_addr); +extern u32 imx_get_cpu_arg(int cpu); +extern void imx_set_cpu_arg(int cpu, u32 arg); extern void v7_cpu_resume(void); extern u32 *pl310_get_save_ptr(void); #ifdef CONFIG_SMP diff --git a/trunk/arch/arm/mach-imx/headsmp.S b/trunk/arch/arm/mach-imx/headsmp.S index 921fc1555854..a58c8b0527cc 100644 --- a/trunk/arch/arm/mach-imx/headsmp.S +++ b/trunk/arch/arm/mach-imx/headsmp.S @@ -26,16 +26,16 @@ ENDPROC(v7_secondary_startup) #ifdef CONFIG_PM /* - * The following code is located into the .data section. This is to - * allow phys_l2x0_saved_regs to be accessed with a relative load - * as we are running on physical address here. + * The following code must assume it is running from physical address + * where absolute virtual addresses to the data section have to be + * turned into relative ones. */ - .data - .align #ifdef CONFIG_CACHE_L2X0 .macro pl310_resume - ldr r2, phys_l2x0_saved_regs + adr r0, l2x0_saved_regs_offset + ldr r2, [r0] + add r2, r2, r0 ldr r0, [r2, #L2X0_R_PHY_BASE] @ get physical base of l2x0 ldr r1, [r2, #L2X0_R_AUX_CTRL] @ get aux_ctrl value str r1, [r0, #L2X0_AUX_CTRL] @ restore aux_ctrl @@ -43,9 +43,9 @@ ENDPROC(v7_secondary_startup) str r1, [r0, #L2X0_CTRL] @ re-enable L2 .endm - .globl phys_l2x0_saved_regs -phys_l2x0_saved_regs: - .long 0 +l2x0_saved_regs_offset: + .word l2x0_saved_regs - . + #else .macro pl310_resume .endm diff --git a/trunk/arch/arm/mach-imx/hotplug.c b/trunk/arch/arm/mach-imx/hotplug.c index 7bc5fe15dda2..361a253e2b63 100644 --- a/trunk/arch/arm/mach-imx/hotplug.c +++ b/trunk/arch/arm/mach-imx/hotplug.c @@ -46,11 +46,23 @@ static inline void cpu_enter_lowpower(void) void imx_cpu_die(unsigned int cpu) { cpu_enter_lowpower(); + /* + * We use the cpu jumping argument register to sync with + * imx_cpu_kill() which is running on cpu0 and waiting for + * the register being cleared to kill the cpu. + */ + imx_set_cpu_arg(cpu, ~0); cpu_do_idle(); } int imx_cpu_kill(unsigned int cpu) { + unsigned long timeout = jiffies + msecs_to_jiffies(50); + + while (imx_get_cpu_arg(cpu) == 0) + if (time_after(jiffies, timeout)) + return 0; imx_enable_cpu(cpu, false); + imx_set_cpu_arg(cpu, 0); return 1; } diff --git a/trunk/arch/arm/mach-imx/imx25-dt.c b/trunk/arch/arm/mach-imx/imx25-dt.c index 03b65e5ea541..82348391582a 100644 --- a/trunk/arch/arm/mach-imx/imx25-dt.c +++ b/trunk/arch/arm/mach-imx/imx25-dt.c @@ -27,6 +27,11 @@ static const char * const imx25_dt_board_compat[] __initconst = { NULL }; +static void __init imx25_timer_init(void) +{ + mx25_clocks_init_dt(); +} + DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)") .map_io = mx25_map_io, .init_early = imx25_init_early, diff --git a/trunk/arch/arm/mach-imx/pm-imx6q.c b/trunk/arch/arm/mach-imx/pm-imx6q.c index ee42d20cba19..5faba7a3c95f 100644 --- a/trunk/arch/arm/mach-imx/pm-imx6q.c +++ b/trunk/arch/arm/mach-imx/pm-imx6q.c @@ -22,8 +22,6 @@ #include "common.h" #include "hardware.h" -extern unsigned long phys_l2x0_saved_regs; - static int imx6q_suspend_finish(unsigned long val) { cpu_do_idle(); @@ -57,18 +55,5 @@ static const struct platform_suspend_ops imx6q_pm_ops = { void __init imx6q_pm_init(void) { - /* - * The l2x0 core code provides an infrastucture to save and restore - * l2x0 registers across suspend/resume cycle. But because imx6q - * retains L2 content during suspend and needs to resume L2 before - * MMU is enabled, it can only utilize register saving support and - * have to take care of restoring on its own. So we save physical - * address of the data structure used by l2x0 core to save registers, - * and later restore the necessary ones in imx6q resume entry. - */ -#ifdef CONFIG_CACHE_L2X0 - phys_l2x0_saved_regs = __pa(&l2x0_saved_regs); -#endif - suspend_set_ops(&imx6q_pm_ops); } diff --git a/trunk/arch/arm/mach-imx/src.c b/trunk/arch/arm/mach-imx/src.c index e15f1555c59b..09a742f8c7ab 100644 --- a/trunk/arch/arm/mach-imx/src.c +++ b/trunk/arch/arm/mach-imx/src.c @@ -43,6 +43,18 @@ void imx_set_cpu_jump(int cpu, void *jump_addr) src_base + SRC_GPR1 + cpu * 8); } +u32 imx_get_cpu_arg(int cpu) +{ + cpu = cpu_logical_map(cpu); + return readl_relaxed(src_base + SRC_GPR1 + cpu * 8 + 4); +} + +void imx_set_cpu_arg(int cpu, u32 arg) +{ + cpu = cpu_logical_map(cpu); + writel_relaxed(arg, src_base + SRC_GPR1 + cpu * 8 + 4); +} + void imx_src_prepare_restart(void) { u32 val; diff --git a/trunk/arch/arm/mach-ixp4xx/vulcan-setup.c b/trunk/arch/arm/mach-ixp4xx/vulcan-setup.c index d42730a1d4ab..d599e354ca57 100644 --- a/trunk/arch/arm/mach-ixp4xx/vulcan-setup.c +++ b/trunk/arch/arm/mach-ixp4xx/vulcan-setup.c @@ -163,6 +163,7 @@ static struct platform_device vulcan_max6369 = { static struct w1_gpio_platform_data vulcan_w1_gpio_pdata = { .pin = 14, + .ext_pullup_enable_pin = -EINVAL, }; static struct platform_device vulcan_w1_gpio = { diff --git a/trunk/arch/arm/mach-kirkwood/board-dt.c b/trunk/arch/arm/mach-kirkwood/board-dt.c index 2e73e9d53f70..d367aa6b47bb 100644 --- a/trunk/arch/arm/mach-kirkwood/board-dt.c +++ b/trunk/arch/arm/mach-kirkwood/board-dt.c @@ -41,16 +41,12 @@ static void __init kirkwood_legacy_clk_init(void) struct device_node *np = of_find_compatible_node( NULL, NULL, "marvell,kirkwood-gating-clock"); - struct of_phandle_args clkspec; + struct clk *clk; clkspec.np = np; clkspec.args_count = 1; - clkspec.args[0] = CGC_BIT_GE0; - orion_clkdev_add(NULL, "mv643xx_eth_port.0", - of_clk_get_from_provider(&clkspec)); - clkspec.args[0] = CGC_BIT_PEX0; orion_clkdev_add("0", "pcie", of_clk_get_from_provider(&clkspec)); @@ -59,9 +55,24 @@ static void __init kirkwood_legacy_clk_init(void) orion_clkdev_add("1", "pcie", of_clk_get_from_provider(&clkspec)); - clkspec.args[0] = CGC_BIT_GE1; - orion_clkdev_add(NULL, "mv643xx_eth_port.1", + clkspec.args[0] = CGC_BIT_SDIO; + orion_clkdev_add(NULL, "mvsdio", of_clk_get_from_provider(&clkspec)); + + /* + * The ethernet interfaces forget the MAC address assigned by + * u-boot if the clocks are turned off. Until proper DT support + * is available we always enable them for now. + */ + clkspec.args[0] = CGC_BIT_GE0; + clk = of_clk_get_from_provider(&clkspec); + orion_clkdev_add(NULL, "mv643xx_eth_port.0", clk); + clk_prepare_enable(clk); + + clkspec.args[0] = CGC_BIT_GE1; + clk = of_clk_get_from_provider(&clkspec); + orion_clkdev_add(NULL, "mv643xx_eth_port.1", clk); + clk_prepare_enable(clk); } static void __init kirkwood_of_clk_init(void) diff --git a/trunk/arch/arm/mach-kirkwood/guruplug-setup.c b/trunk/arch/arm/mach-kirkwood/guruplug-setup.c index 1c6e736cbbf8..08dd739aa709 100644 --- a/trunk/arch/arm/mach-kirkwood/guruplug-setup.c +++ b/trunk/arch/arm/mach-kirkwood/guruplug-setup.c @@ -53,6 +53,8 @@ static struct mv_sata_platform_data guruplug_sata_data = { static struct mvsdio_platform_data guruplug_mvsdio_data = { /* unfortunately the CD signal has not been connected */ + .gpio_card_detect = -1, + .gpio_write_protect = -1, }; static struct gpio_led guruplug_led_pins[] = { diff --git a/trunk/arch/arm/mach-kirkwood/openrd-setup.c b/trunk/arch/arm/mach-kirkwood/openrd-setup.c index 8ddd69fdc937..6a6eb548307d 100644 --- a/trunk/arch/arm/mach-kirkwood/openrd-setup.c +++ b/trunk/arch/arm/mach-kirkwood/openrd-setup.c @@ -55,6 +55,7 @@ static struct mv_sata_platform_data openrd_sata_data = { static struct mvsdio_platform_data openrd_mvsdio_data = { .gpio_card_detect = 29, /* MPP29 used as SD card detect */ + .gpio_write_protect = -1, }; static unsigned int openrd_mpp_config[] __initdata = { diff --git a/trunk/arch/arm/mach-kirkwood/rd88f6281-setup.c b/trunk/arch/arm/mach-kirkwood/rd88f6281-setup.c index c7d93b48926b..d24223166e06 100644 --- a/trunk/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/trunk/arch/arm/mach-kirkwood/rd88f6281-setup.c @@ -69,6 +69,7 @@ static struct mv_sata_platform_data rd88f6281_sata_data = { static struct mvsdio_platform_data rd88f6281_mvsdio_data = { .gpio_card_detect = 28, + .gpio_write_protect = -1, }; static unsigned int rd88f6281_mpp_config[] __initdata = { diff --git a/trunk/arch/arm/mach-mmp/gplugd.c b/trunk/arch/arm/mach-mmp/gplugd.c index d1e2d595e79c..f62b68d926f4 100644 --- a/trunk/arch/arm/mach-mmp/gplugd.c +++ b/trunk/arch/arm/mach-mmp/gplugd.c @@ -9,6 +9,7 @@ */ #include +#include #include #include diff --git a/trunk/arch/arm/mach-msm/timer.c b/trunk/arch/arm/mach-msm/timer.c index 2969027f02fa..f9fd77e8f1f5 100644 --- a/trunk/arch/arm/mach-msm/timer.c +++ b/trunk/arch/arm/mach-msm/timer.c @@ -62,7 +62,10 @@ static int msm_timer_set_next_event(unsigned long cycles, { u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE); - writel_relaxed(0, event_base + TIMER_CLEAR); + ctrl &= ~TIMER_ENABLE_EN; + writel_relaxed(ctrl, event_base + TIMER_ENABLE); + + writel_relaxed(ctrl, event_base + TIMER_CLEAR); writel_relaxed(cycles, event_base + TIMER_MATCH_VAL); writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE); return 0; diff --git a/trunk/arch/arm/mach-mvebu/Makefile b/trunk/arch/arm/mach-mvebu/Makefile index da93bcbc74c1..c3be068f1c96 100644 --- a/trunk/arch/arm/mach-mvebu/Makefile +++ b/trunk/arch/arm/mach-mvebu/Makefile @@ -5,6 +5,6 @@ AFLAGS_coherency_ll.o := -Wa,-march=armv7-a obj-y += system-controller.o obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o -obj-$(CONFIG_ARCH_MVEBU) += addr-map.o coherency.o coherency_ll.o pmsu.o irq-armada-370-xp.o +obj-$(CONFIG_ARCH_MVEBU) += addr-map.o coherency.o coherency_ll.o pmsu.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o diff --git a/trunk/arch/arm/mach-mvebu/armada-370-xp.c b/trunk/arch/arm/mach-mvebu/armada-370-xp.c index a5ea616d6d12..433e8c5343b2 100644 --- a/trunk/arch/arm/mach-mvebu/armada-370-xp.c +++ b/trunk/arch/arm/mach-mvebu/armada-370-xp.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include #include @@ -54,6 +56,10 @@ void __init armada_370_xp_init_early(void) * to make sure such the allocations won't fail. */ init_dma_coherent_pool_size(SZ_1M); + +#ifdef CONFIG_CACHE_L2X0 + l2x0_of_init(0, ~0UL); +#endif } static void __init armada_370_xp_dt_init(void) @@ -72,8 +78,7 @@ DT_MACHINE_START(ARMADA_XP_DT, "Marvell Armada 370/XP (Device Tree)") .init_machine = armada_370_xp_dt_init, .map_io = armada_370_xp_map_io, .init_early = armada_370_xp_init_early, - .init_irq = armada_370_xp_init_irq, - .handle_irq = armada_370_xp_handle_irq, + .init_irq = irqchip_init, .init_time = armada_370_xp_timer_and_clk_init, .restart = mvebu_restart, .dt_compat = armada_370_xp_dt_compat, diff --git a/trunk/arch/arm/mach-mxs/icoll.c b/trunk/arch/arm/mach-mxs/icoll.c index 8fb23af154b3..e26eeba46598 100644 --- a/trunk/arch/arm/mach-mxs/icoll.c +++ b/trunk/arch/arm/mach-mxs/icoll.c @@ -100,7 +100,7 @@ static struct irq_domain_ops icoll_irq_domain_ops = { .xlate = irq_domain_xlate_onecell, }; -void __init icoll_of_init(struct device_node *np, +static void __init icoll_of_init(struct device_node *np, struct device_node *interrupt_parent) { /* diff --git a/trunk/arch/arm/mach-mxs/mach-mxs.c b/trunk/arch/arm/mach-mxs/mach-mxs.c index 052186713347..e7b781d3788f 100644 --- a/trunk/arch/arm/mach-mxs/mach-mxs.c +++ b/trunk/arch/arm/mach-mxs/mach-mxs.c @@ -41,8 +41,6 @@ static struct fb_videomode mx23evk_video_modes[] = { .lower_margin = 4, .hsync_len = 1, .vsync_len = 1, - .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT | - FB_SYNC_DOTCLK_FAILING_ACT, }, }; @@ -59,8 +57,6 @@ static struct fb_videomode mx28evk_video_modes[] = { .lower_margin = 10, .hsync_len = 10, .vsync_len = 10, - .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT | - FB_SYNC_DOTCLK_FAILING_ACT, }, }; @@ -77,7 +73,6 @@ static struct fb_videomode m28evk_video_modes[] = { .lower_margin = 45, .hsync_len = 1, .vsync_len = 1, - .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT, }, }; @@ -94,9 +89,7 @@ static struct fb_videomode apx4devkit_video_modes[] = { .lower_margin = 13, .hsync_len = 48, .vsync_len = 3, - .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | - FB_SYNC_DATA_ENABLE_HIGH_ACT | - FB_SYNC_DOTCLK_FAILING_ACT, + .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, }, }; @@ -113,9 +106,7 @@ static struct fb_videomode apf28dev_video_modes[] = { .lower_margin = 0x15, .hsync_len = 64, .vsync_len = 4, - .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT | - FB_SYNC_DATA_ENABLE_HIGH_ACT | - FB_SYNC_DOTCLK_FAILING_ACT, + .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, }, }; @@ -132,7 +123,6 @@ static struct fb_videomode cfa10049_video_modes[] = { .lower_margin = 2, .hsync_len = 15, .vsync_len = 15, - .sync = FB_SYNC_DATA_ENABLE_HIGH_ACT }, }; @@ -259,6 +249,8 @@ static void __init imx23_evk_init(void) mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes); mxsfb_pdata.default_bpp = 32; mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; + mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | + MXSFB_SYNC_DOTCLK_FAILING_ACT; } static inline void enable_clk_enet_out(void) @@ -278,6 +270,8 @@ static void __init imx28_evk_init(void) mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes); mxsfb_pdata.default_bpp = 32; mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; + mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | + MXSFB_SYNC_DOTCLK_FAILING_ACT; mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); } @@ -297,6 +291,7 @@ static void __init m28evk_init(void) mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes); mxsfb_pdata.default_bpp = 16; mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; + mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; } static void __init sc_sps1_init(void) @@ -322,6 +317,8 @@ static void __init apx4devkit_init(void) mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes); mxsfb_pdata.default_bpp = 32; mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; + mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | + MXSFB_SYNC_DOTCLK_FAILING_ACT; } #define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) @@ -402,17 +399,18 @@ static void __init cfa10049_init(void) { enable_clk_enet_out(); update_fec_mac_prop(OUI_CRYSTALFONTZ); + + mxsfb_pdata.mode_list = cfa10049_video_modes; + mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); + mxsfb_pdata.default_bpp = 32; + mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; + mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; } static void __init cfa10037_init(void) { enable_clk_enet_out(); update_fec_mac_prop(OUI_CRYSTALFONTZ); - - mxsfb_pdata.mode_list = cfa10049_video_modes; - mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); - mxsfb_pdata.default_bpp = 32; - mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; } static void __init apf28_init(void) @@ -423,6 +421,8 @@ static void __init apf28_init(void) mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); mxsfb_pdata.default_bpp = 16; mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; + mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | + MXSFB_SYNC_DOTCLK_FAILING_ACT; } static void __init mxs_machine_init(void) diff --git a/trunk/arch/arm/mach-mxs/mm.c b/trunk/arch/arm/mach-mxs/mm.c index a4294aa9f301..e63b7d87acbd 100644 --- a/trunk/arch/arm/mach-mxs/mm.c +++ b/trunk/arch/arm/mach-mxs/mm.c @@ -18,6 +18,7 @@ #include #include +#include /* * Define the MX23 memory map. diff --git a/trunk/arch/arm/mach-mxs/ocotp.c b/trunk/arch/arm/mach-mxs/ocotp.c index 54add60f94c9..1dff46703753 100644 --- a/trunk/arch/arm/mach-mxs/ocotp.c +++ b/trunk/arch/arm/mach-mxs/ocotp.c @@ -19,6 +19,7 @@ #include /* for cpu_relax() */ #include +#include #define OCOTP_WORD_OFFSET 0x20 #define OCOTP_WORD_COUNT 0x20 diff --git a/trunk/arch/arm/mach-omap1/Kconfig b/trunk/arch/arm/mach-omap1/Kconfig index 903da8eb886c..cdd05f2e67ee 100644 --- a/trunk/arch/arm/mach-omap1/Kconfig +++ b/trunk/arch/arm/mach-omap1/Kconfig @@ -55,12 +55,6 @@ config MACH_OMAP_H3 TI OMAP 1710 H3 board support. Say Y here if you have such a board. -config MACH_OMAP_HTCWIZARD - bool "HTC Wizard" - depends on ARCH_OMAP850 - help - HTC Wizard smartphone support (AKA QTEK 9100, ...) - config MACH_HERALD bool "HTC Herald" depends on ARCH_OMAP850 diff --git a/trunk/arch/arm/mach-omap1/clock_data.c b/trunk/arch/arm/mach-omap1/clock_data.c index cb7c6ae2e3fc..6c4f766365a2 100644 --- a/trunk/arch/arm/mach-omap1/clock_data.c +++ b/trunk/arch/arm/mach-omap1/clock_data.c @@ -538,15 +538,6 @@ static struct clk usb_hhc_ck16xx = { }; static struct clk usb_dc_ck = { - .name = "usb_dc_ck", - .ops = &clkops_generic, - /* Direct from ULPD, no parent */ - .rate = 48000000, - .enable_reg = OMAP1_IO_ADDRESS(SOFT_REQ_REG), - .enable_bit = USB_REQ_EN_SHIFT, -}; - -static struct clk usb_dc_ck7xx = { .name = "usb_dc_ck", .ops = &clkops_generic, /* Direct from ULPD, no parent */ @@ -727,8 +718,7 @@ static struct omap_clk omap_clks[] = { CLK(NULL, "usb_clko", &usb_clko, CK_16XX | CK_1510 | CK_310), CLK(NULL, "usb_hhc_ck", &usb_hhc_ck1510, CK_1510 | CK_310), CLK(NULL, "usb_hhc_ck", &usb_hhc_ck16xx, CK_16XX), - CLK(NULL, "usb_dc_ck", &usb_dc_ck, CK_16XX), - CLK(NULL, "usb_dc_ck", &usb_dc_ck7xx, CK_7XX), + CLK(NULL, "usb_dc_ck", &usb_dc_ck, CK_16XX | CK_7XX), CLK(NULL, "mclk", &mclk_1510, CK_1510 | CK_310), CLK(NULL, "mclk", &mclk_16xx, CK_16XX), CLK(NULL, "bclk", &bclk_1510, CK_1510 | CK_310), diff --git a/trunk/arch/arm/mach-omap1/common.h b/trunk/arch/arm/mach-omap1/common.h index fb18831e88aa..14f7e9920479 100644 --- a/trunk/arch/arm/mach-omap1/common.h +++ b/trunk/arch/arm/mach-omap1/common.h @@ -31,6 +31,8 @@ #include +#include + #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) void omap7xx_map_io(void); #else diff --git a/trunk/arch/arm/mach-omap1/include/mach/usb.h b/trunk/arch/arm/mach-omap1/include/mach/usb.h index 753cd5ce6949..45e5ac707cbb 100644 --- a/trunk/arch/arm/mach-omap1/include/mach/usb.h +++ b/trunk/arch/arm/mach-omap1/include/mach/usb.h @@ -2,7 +2,7 @@ * FIXME correct answer depends on hmc_mode, * as does (on omap1) any nonzero value for config->otg port number */ -#ifdef CONFIG_USB_GADGET_OMAP +#if IS_ENABLED(CONFIG_USB_OMAP) #define is_usb0_device(config) 1 #else #define is_usb0_device(config) 0 diff --git a/trunk/arch/arm/mach-omap1/usb.c b/trunk/arch/arm/mach-omap1/usb.c index 1a1db5971cd9..4118db50d5e8 100644 --- a/trunk/arch/arm/mach-omap1/usb.c +++ b/trunk/arch/arm/mach-omap1/usb.c @@ -123,7 +123,7 @@ omap_otg_init(struct omap_usb_config *config) syscon = omap_readl(OTG_SYSCON_1); syscon |= HST_IDLE_EN|DEV_IDLE_EN|OTG_IDLE_EN; -#ifdef CONFIG_USB_GADGET_OMAP +#if IS_ENABLED(CONFIG_USB_OMAP) if (config->otg || config->register_dev) { struct platform_device *udc_device = config->udc_device; int status; @@ -169,7 +169,7 @@ omap_otg_init(struct omap_usb_config *config) void omap_otg_init(struct omap_usb_config *config) {} #endif -#ifdef CONFIG_USB_GADGET_OMAP +#if IS_ENABLED(CONFIG_USB_OMAP) static struct resource udc_resources[] = { /* order is significant! */ @@ -600,7 +600,7 @@ static void __init omap_1510_usb_init(struct omap_usb_config *config) while (!(omap_readw(ULPD_DPLL_CTRL) & DPLL_LOCK)) cpu_relax(); -#ifdef CONFIG_USB_GADGET_OMAP +#if IS_ENABLED(CONFIG_USB_OMAP) if (config->register_dev) { int status; diff --git a/trunk/arch/arm/mach-omap2/Kconfig b/trunk/arch/arm/mach-omap2/Kconfig index 49ac3dfebef9..b9c0ed3f648c 100644 --- a/trunk/arch/arm/mach-omap2/Kconfig +++ b/trunk/arch/arm/mach-omap2/Kconfig @@ -311,9 +311,6 @@ config MACH_OMAP_ZOOM2 default y select OMAP_PACKAGE_CBB select REGULATOR_FIXED_VOLTAGE if REGULATOR - select SERIAL_8250 - select SERIAL_8250_CONSOLE - select SERIAL_CORE_CONSOLE config MACH_OMAP_ZOOM3 bool "OMAP3630 Zoom3 board" @@ -321,9 +318,6 @@ config MACH_OMAP_ZOOM3 default y select OMAP_PACKAGE_CBP select REGULATOR_FIXED_VOLTAGE if REGULATOR - select SERIAL_8250 - select SERIAL_8250_CONSOLE - select SERIAL_CORE_CONSOLE config MACH_CM_T35 bool "CompuLab CM-T35/CM-T3730 modules" @@ -414,7 +408,7 @@ config OMAP3_SDRC_AC_TIMING config OMAP4_ERRATA_I688 bool "OMAP4 errata: Async Bridge Corruption" - depends on ARCH_OMAP4 && !ARCH_MULTIPLATFORM + depends on (ARCH_OMAP4 || SOC_OMAP5) && !ARCH_MULTIPLATFORM select ARCH_HAS_BARRIERS help If a data is stalled inside asynchronous bridge because of back diff --git a/trunk/arch/arm/mach-omap2/Makefile b/trunk/arch/arm/mach-omap2/Makefile index b068b7fe99ef..62bb352c2d37 100644 --- a/trunk/arch/arm/mach-omap2/Makefile +++ b/trunk/arch/arm/mach-omap2/Makefile @@ -229,7 +229,6 @@ obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o -obj-$(CONFIG_MACH_ENCORE) += board-omap3encore.o obj-$(CONFIG_MACH_OVERO) += board-overo.o obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o @@ -255,8 +254,6 @@ obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o -obj-$(CONFIG_MACH_PCM049) += board-omap4pcm049.o - obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o diff --git a/trunk/arch/arm/mach-omap2/board-2430sdp.c b/trunk/arch/arm/mach-omap2/board-2430sdp.c index a3e0aaa4886b..244d8a5aa54b 100644 --- a/trunk/arch/arm/mach-omap2/board-2430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-2430sdp.c @@ -38,7 +38,7 @@ #include "gpmc-smc91x.h" #include