From 8737038f279f5e167bf0de70171263f6adc98edd Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Fri, 8 Jul 2011 09:57:15 +0100 Subject: [PATCH] --- yaml --- r: 258230 b: refs/heads/master c: 7f294e4983b67be802277d139522837b3ce5769f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/CREDITS | 8 + .../sysfs-class-backlight-driver-adp8870 | 56 + .../Documentation/accounting/cgroupstats.txt | 4 +- trunk/Documentation/arm/Booting | 5 - .../arm/SH-Mobile/zboot-rom-sdhi.txt | 42 - .../cgroups/blkio-controller.txt | 31 +- trunk/Documentation/cgroups/cgroups.txt | 60 +- trunk/Documentation/cgroups/cpuacct.txt | 21 +- trunk/Documentation/cgroups/cpusets.txt | 28 +- trunk/Documentation/cgroups/devices.txt | 6 +- .../cgroups/freezer-subsystem.txt | 20 +- trunk/Documentation/cgroups/memory.txt | 58 +- .../devicetree/bindings/arm/pmu.txt | 21 - .../feature-removal-schedule.txt | 17 - trunk/Documentation/kernel-parameters.txt | 2 + trunk/Documentation/kmemleak.txt | 4 +- trunk/Documentation/md.txt | 2 +- trunk/Documentation/printk-formats.txt | 119 +- .../scheduler/sched-design-CFS.txt | 7 +- .../scheduler/sched-rt-group.txt | 7 +- trunk/Documentation/vm/hwpoison.txt | 6 +- trunk/MAINTAINERS | 38 +- trunk/Makefile | 19 +- trunk/arch/alpha/kernel/osf_sys.c | 11 +- trunk/arch/arm/Kconfig | 37 +- trunk/arch/arm/boot/compressed/Makefile | 10 +- .../arch/arm/boot/compressed/head-shmobile.S | 12 +- trunk/arch/arm/boot/compressed/head.S | 9 +- trunk/arch/arm/boot/compressed/mmcif-sh7372.c | 2 +- trunk/arch/arm/boot/compressed/sdhi-sh7372.c | 95 -- .../arch/arm/boot/compressed/sdhi-shmobile.c | 449 -------- .../arch/arm/boot/compressed/sdhi-shmobile.h | 11 - trunk/arch/arm/configs/davinci_all_defconfig | 2 +- trunk/arch/arm/configs/netx_defconfig | 2 +- trunk/arch/arm/configs/viper_defconfig | 2 +- trunk/arch/arm/configs/xcep_defconfig | 2 +- trunk/arch/arm/configs/zeus_defconfig | 2 +- trunk/arch/arm/include/asm/bitops.h | 4 +- trunk/arch/arm/include/asm/pmu.h | 2 +- trunk/arch/arm/include/asm/proc-fns.h | 14 +- trunk/arch/arm/include/asm/scatterlist.h | 4 - trunk/arch/arm/include/asm/setup.h | 6 +- trunk/arch/arm/include/asm/tcm.h | 2 - trunk/arch/arm/kernel/devtree.c | 3 + trunk/arch/arm/kernel/entry-armv.S | 6 +- trunk/arch/arm/kernel/entry-common.S | 2 + trunk/arch/arm/kernel/head-nommu.S | 8 - trunk/arch/arm/kernel/head.S | 8 - trunk/arch/arm/kernel/perf_event.c | 4 +- trunk/arch/arm/kernel/pmu.c | 87 +- trunk/arch/arm/kernel/smp.c | 11 +- trunk/arch/arm/kernel/smp_scu.c | 2 - trunk/arch/arm/kernel/tcm.c | 68 +- trunk/arch/arm/kernel/traps.c | 4 +- trunk/arch/arm/mach-davinci/devices-da8xx.c | 2 +- trunk/arch/arm/mach-davinci/devices.c | 2 +- trunk/arch/arm/mach-davinci/gpio.c | 7 +- trunk/arch/arm/mach-ep93xx/core.c | 6 +- trunk/arch/arm/mach-exynos4/Kconfig | 6 + trunk/arch/arm/mach-exynos4/Makefile | 2 +- trunk/arch/arm/mach-exynos4/cpu.c | 2 +- .../mach-exynos4/include/mach/regs-usb-phy.h | 2 +- trunk/arch/arm/mach-exynos4/platsmp.c | 8 + .../{usb-phy.c => setup-usb-phy.c} | 0 trunk/arch/arm/mach-exynos4/time.c | 2 + .../arch/arm/mach-footbridge/dc21285-timer.c | 1 + .../include/mach/debug-macro.S | 5 +- trunk/arch/arm/mach-msm/platsmp.c | 8 + trunk/arch/arm/mach-mxs/ocotp.c | 2 + trunk/arch/arm/mach-omap1/dma.c | 11 +- trunk/arch/arm/mach-omap2/board-2430sdp.c | 2 +- trunk/arch/arm/mach-omap2/board-3430sdp.c | 6 +- trunk/arch/arm/mach-omap2/board-4430sdp.c | 11 +- trunk/arch/arm/mach-omap2/board-apollon.c | 2 +- trunk/arch/arm/mach-omap2/board-cm-t35.c | 2 - trunk/arch/arm/mach-omap2/board-cm-t3517.c | 5 +- trunk/arch/arm/mach-omap2/board-devkit8000.c | 2 - trunk/arch/arm/mach-omap2/board-omap3beagle.c | 8 +- .../arch/arm/mach-omap2/board-omap3pandora.c | 4 +- .../arm/mach-omap2/board-omap3touchbook.c | 2 - trunk/arch/arm/mach-omap2/board-omap4panda.c | 8 +- trunk/arch/arm/mach-omap2/board-overo.c | 4 +- .../arm/mach-omap2/board-rx51-peripherals.c | 3 +- .../arch/arm/mach-omap2/board-zoom-display.c | 2 +- .../arm/mach-omap2/common-board-devices.c | 20 +- .../arm/mach-omap2/common-board-devices.h | 2 + trunk/arch/arm/mach-omap2/devices.c | 2 +- trunk/arch/arm/mach-omap2/hsmmc.c | 16 +- trunk/arch/arm/mach-omap2/hsmmc.h | 1 + trunk/arch/arm/mach-omap2/mux.c | 5 +- trunk/arch/arm/mach-omap2/mux.h | 6 +- trunk/arch/arm/mach-omap2/mux44xx.c | 5 +- trunk/arch/arm/mach-omap2/omap-smp.c | 8 + trunk/arch/arm/mach-omap2/omap_hwmod.c | 2 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 2 +- trunk/arch/arm/mach-omap2/omap_phy_internal.c | 4 +- trunk/arch/arm/mach-realview/Kconfig | 1 - trunk/arch/arm/mach-realview/platsmp.c | 8 + trunk/arch/arm/mach-s3c2410/Makefile | 1 - trunk/arch/arm/mach-s3c2410/irq.c | 34 - trunk/arch/arm/mach-s5pv210/cpufreq.c | 8 +- trunk/arch/arm/mach-shmobile/board-ag5evm.c | 4 +- trunk/arch/arm/mach-shmobile/board-ap4evb.c | 56 + trunk/arch/arm/mach-shmobile/board-mackerel.c | 284 ++++- trunk/arch/arm/mach-shmobile/clock-sh7372.c | 7 + .../mach-shmobile/include/mach/sdhi-sh7372.h | 21 - .../arm/mach-shmobile/include/mach/sdhi.h | 16 - trunk/arch/arm/mach-shmobile/intc-sh73a0.c | 6 + trunk/arch/arm/mach-shmobile/platsmp.c | 5 + trunk/arch/arm/mach-shmobile/setup-sh7367.c | 14 +- .../arch/arm/mach-tegra/board-harmony-power.c | 4 +- trunk/arch/arm/mach-tegra/board-harmony.h | 3 +- trunk/arch/arm/mach-tegra/platsmp.c | 8 + trunk/arch/arm/mach-u300/clock.h | 2 +- .../arm/mach-u300/include/mach/u300-regs.h | 22 +- trunk/arch/arm/mach-u300/timer.c | 3 +- trunk/arch/arm/mach-ux500/cpu-db8500.c | 3 + trunk/arch/arm/mach-ux500/platsmp.c | 8 + trunk/arch/arm/mach-vexpress/ct-ca9x4.c | 4 + trunk/arch/arm/mach-vexpress/v2m.c | 15 +- trunk/arch/arm/mm/context.c | 17 +- trunk/arch/arm/mm/copypage-v6.c | 1 + trunk/arch/arm/mm/fault.c | 2 +- trunk/arch/arm/mm/init.c | 29 +- trunk/arch/arm/mm/proc-arm7tdmi.S | 2 +- trunk/arch/arm/mm/proc-arm9tdmi.S | 2 +- trunk/arch/arm/mm/proc-v7.S | 10 +- .../arm/plat-mxc/devices/platform-imx-dma.c | 6 +- .../arch/arm/plat-nomadik/include/plat/gpio.h | 1 + trunk/arch/arm/plat-omap/include/plat/flash.h | 1 + trunk/arch/arm/plat-omap/include/plat/iovmm.h | 3 - trunk/arch/arm/plat-omap/include/plat/mmc.h | 3 + trunk/arch/arm/plat-omap/iovmm.c | 4 - trunk/arch/arm/plat-omap/sram.c | 12 +- trunk/arch/arm/plat-s3c24xx/dma.c | 2 +- trunk/arch/arm/plat-s3c24xx/irq.c | 6 + trunk/arch/arm/plat-s5p/dev-onenand.c | 12 - .../arch/arm/plat-s5p/include/plat/map-s5p.h | 2 +- trunk/arch/arm/plat-samsung/dev-onenand.c | 12 - .../arch/arm/plat-samsung/include/plat/devs.h | 6 +- trunk/arch/avr32/configs/atngw100_defconfig | 1 + .../configs/atngw100_evklcd100_defconfig | 1 + .../configs/atngw100_evklcd101_defconfig | 1 + .../avr32/configs/atngw100_mrmt_defconfig | 3 +- .../arch/avr32/configs/atngw100mkii_defconfig | 1 + .../configs/atngw100mkii_evklcd100_defconfig | 1 + .../configs/atngw100mkii_evklcd101_defconfig | 1 + trunk/arch/avr32/configs/atstk1002_defconfig | 1 + trunk/arch/avr32/configs/atstk1003_defconfig | 1 + trunk/arch/avr32/configs/atstk1004_defconfig | 1 + trunk/arch/avr32/configs/atstk1006_defconfig | 1 + trunk/arch/avr32/configs/favr-32_defconfig | 1 + trunk/arch/avr32/configs/hammerhead_defconfig | 1 + trunk/arch/avr32/configs/merisc_defconfig | 1 + trunk/arch/avr32/configs/mimc200_defconfig | 1 + trunk/arch/avr32/include/asm/processor.h | 1 - trunk/arch/avr32/mach-at32ap/at32ap700x.c | 3 +- .../arch/avr32/mach-at32ap/include/mach/cpu.h | 12 + trunk/arch/avr32/mach-at32ap/intc.c | 4 +- .../arch/blackfin/configs/CM-BF548_defconfig | 2 +- trunk/arch/blackfin/lib/strncpy.S | 2 +- trunk/arch/m68k/Kconfig.nommu | 52 +- trunk/arch/m68k/kernel/m68k_ksyms.c | 3 +- trunk/arch/m68k/kernel/vmlinux.lds_no.S | 20 +- trunk/arch/m68k/lib/memcpy.c | 9 +- trunk/arch/m68k/lib/memset.c | 9 +- trunk/arch/m68k/lib/muldi3.c | 21 +- trunk/arch/mips/configs/mtx1_defconfig | 2 +- trunk/arch/mn10300/kernel/traps.c | 4 +- trunk/arch/mn10300/kernel/vmlinux.lds.S | 1 + .../arch/mn10300/mm/cache-dbg-flush-by-reg.S | 4 +- trunk/arch/powerpc/boot/.gitignore | 1 - trunk/arch/powerpc/boot/dtc-src/.gitignore | 3 - .../powerpc/configs/52xx/pcm030_defconfig | 2 +- trunk/arch/powerpc/configs/ps3_defconfig | 2 +- trunk/arch/powerpc/include/asm/rio.h | 2 +- trunk/arch/powerpc/kernel/cputable.c | 2 +- trunk/arch/powerpc/kernel/prom.c | 27 +- trunk/arch/powerpc/mm/init_32.c | 15 - trunk/arch/powerpc/mm/init_64.c | 14 - trunk/arch/powerpc/mm/mem.c | 19 + trunk/arch/powerpc/sysdev/fsl_lbc.c | 6 +- trunk/arch/s390/Kconfig | 1 + trunk/arch/s390/include/asm/pgalloc.h | 8 +- trunk/arch/s390/include/asm/pgtable.h | 39 +- trunk/arch/s390/include/asm/qdio.h | 119 +- trunk/arch/s390/include/asm/tlb.h | 94 +- trunk/arch/s390/kvm/kvm-s390.c | 1 + trunk/arch/s390/kvm/sie64a.S | 2 + trunk/arch/s390/mm/pgtable.c | 292 ++--- trunk/arch/sh/Kconfig | 2 +- trunk/arch/sh/boards/mach-ap325rxa/setup.c | 32 +- trunk/arch/sh/boards/mach-ecovec24/setup.c | 51 + trunk/arch/sh/boot/compressed/Makefile | 22 +- trunk/arch/sh/configs/titan_defconfig | 2 +- trunk/arch/sh/include/asm/cmpxchg-grb.h | 21 +- trunk/arch/sh/include/asm/pgtable.h | 1 + trunk/arch/sh/include/asm/processor_64.h | 1 - trunk/arch/sh/include/asm/ptrace.h | 6 +- trunk/arch/sh/include/asm/tlb.h | 1 + trunk/arch/sh/include/cpu-sh4/cpu/sh7722.h | 1 + trunk/arch/sh/include/cpu-sh4/cpu/sh7724.h | 9 + trunk/arch/sh/include/cpu-sh4/cpu/sh7757.h | 1 + trunk/arch/sh/kernel/cpu/sh4a/setup-sh7724.c | 40 + trunk/arch/sh/kernel/process_32.c | 3 +- trunk/arch/sh/mm/cache-debugfs.c | 25 +- trunk/arch/sh/mm/consistent.c | 2 +- trunk/arch/sparc/Kconfig | 18 +- trunk/arch/sparc/include/asm/floppy_32.h | 8 +- trunk/arch/sparc/include/asm/floppy_64.h | 4 +- trunk/arch/sparc/include/asm/leon.h | 3 + trunk/arch/sparc/include/asm/leon_pci.h | 21 + trunk/arch/sparc/include/asm/pci_32.h | 24 + trunk/arch/sparc/include/asm/pcic.h | 2 +- trunk/arch/sparc/include/asm/system_32.h | 2 +- trunk/arch/sparc/include/asm/system_64.h | 2 +- trunk/arch/sparc/kernel/Makefile | 4 +- trunk/arch/sparc/kernel/apc.c | 2 +- trunk/arch/sparc/kernel/auxio_32.c | 2 +- trunk/arch/sparc/kernel/chmc.c | 2 +- trunk/arch/sparc/kernel/entry.S | 8 +- trunk/arch/sparc/kernel/leon_kernel.c | 31 + trunk/arch/sparc/kernel/leon_pci.c | 253 +++++ trunk/arch/sparc/kernel/leon_pci_grpci2.c | 897 +++++++++++++++ trunk/arch/sparc/kernel/module.c | 2 +- trunk/arch/sparc/kernel/pci_common.c | 4 +- trunk/arch/sparc/kernel/pci_schizo.c | 6 +- trunk/arch/sparc/kernel/prom_irqtrans.c | 2 +- trunk/arch/sparc/kernel/psycho_common.c | 2 +- trunk/arch/sparc/kernel/sbus.c | 4 +- trunk/arch/sparc/kernel/setup_32.c | 2 +- trunk/arch/sparc/kernel/setup_64.c | 2 +- trunk/arch/sparc/kernel/smp_32.c | 6 +- trunk/arch/sparc/kernel/sun4d_irq.c | 126 +- trunk/arch/sparc/kernel/sys_sparc32.c | 2 +- trunk/arch/sparc/kernel/sys_sparc_64.c | 6 +- trunk/arch/sparc/kernel/time_64.c | 2 +- trunk/arch/sparc/kernel/traps_64.c | 2 +- trunk/arch/sparc/kernel/unaligned_64.c | 6 +- trunk/arch/sparc/kernel/us2e_cpufreq.c | 6 +- trunk/arch/sparc/kernel/us3_cpufreq.c | 4 +- trunk/arch/sparc/kernel/viohs.c | 2 +- trunk/arch/sparc/kernel/visemul.c | 14 +- trunk/arch/sparc/mm/fault_32.c | 2 +- trunk/arch/sparc/mm/init_32.c | 2 +- trunk/arch/sparc/mm/init_64.c | 6 +- trunk/arch/sparc/mm/srmmu.c | 4 +- trunk/arch/sparc/mm/sun4c.c | 8 +- trunk/arch/sparc/mm/tsb.c | 6 +- trunk/arch/sparc/prom/console_32.c | 2 +- trunk/arch/sparc/prom/init_32.c | 2 +- trunk/arch/sparc/prom/mp.c | 2 +- trunk/arch/unicore32/Kconfig | 4 - trunk/arch/unicore32/Makefile | 38 +- trunk/arch/unicore32/boot/compressed/Makefile | 2 +- .../{debug_defconfig => unicore32_defconfig} | 8 +- trunk/arch/unicore32/include/asm/Kbuild | 59 + trunk/arch/unicore32/kernel/Makefile | 1 - trunk/arch/unicore32/kernel/vmlinux.lds.S | 2 +- trunk/arch/x86/kernel/amd_iommu.c | 48 +- trunk/arch/x86/kernel/amd_iommu_init.c | 8 +- trunk/arch/x86/kernel/apic/apic.c | 3 +- trunk/arch/x86/kernel/apic/x2apic_uv_x.c | 8 +- trunk/arch/x86/kernel/devicetree.c | 11 + trunk/arch/x86/kernel/process.c | 4 +- trunk/arch/x86/kernel/process_32.c | 1 - trunk/arch/x86/kernel/process_64.c | 1 - trunk/arch/x86/kernel/smpboot.c | 13 + trunk/arch/x86/kvm/emulate.c | 82 +- trunk/arch/x86/oprofile/op_model_amd.c | 13 +- trunk/arch/x86/xen/multicalls.c | 12 +- trunk/block/blk-ioc.c | 4 +- trunk/block/cfq-iosched.c | 11 +- trunk/drivers/ata/libata-eh.c | 12 +- trunk/drivers/base/power/clock_ops.c | 16 +- trunk/drivers/block/nbd.c | 22 +- trunk/drivers/block/xen-blkback/blkback.c | 10 +- trunk/drivers/block/xen-blkback/xenbus.c | 3 +- trunk/drivers/bluetooth/hci_ldisc.c | 17 +- trunk/drivers/char/hpet.c | 25 +- trunk/drivers/clocksource/sh_cmt.c | 12 +- trunk/drivers/clocksource/sh_tmu.c | 12 +- trunk/drivers/cpufreq/cpufreq_stats.c | 1 + trunk/drivers/dma/shdma.c | 22 +- trunk/drivers/firmware/iscsi_ibft_find.c | 2 + trunk/drivers/gpio/Kconfig | 28 +- trunk/drivers/gpio/gpio-exynos4.c | 29 +- trunk/drivers/gpio/gpio-nomadik.c | 40 +- trunk/drivers/gpio/gpio-omap.c | 23 +- trunk/drivers/gpu/drm/drm_bufs.c | 17 +- trunk/drivers/gpu/drm/drm_crtc.c | 2 +- trunk/drivers/gpu/drm/drm_edid.c | 19 +- trunk/drivers/gpu/drm/drm_ioc32.c | 9 +- trunk/drivers/gpu/drm/drm_pci.c | 3 +- trunk/drivers/gpu/drm/drm_vm.c | 2 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 2 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 8 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 32 +- trunk/drivers/gpu/drm/i915/i915_irq.c | 2 +- trunk/drivers/gpu/drm/i915/intel_crt.c | 4 + trunk/drivers/gpu/drm/i915/intel_display.c | 89 +- trunk/drivers/gpu/drm/i915/intel_dp.c | 15 +- trunk/drivers/gpu/drm/i915/intel_drv.h | 1 + trunk/drivers/gpu/drm/i915/intel_hdmi.c | 16 +- trunk/drivers/gpu/drm/i915/intel_i2c.c | 3 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 8 + trunk/drivers/gpu/drm/i915/intel_modes.c | 30 + trunk/drivers/gpu/drm/i915/intel_sdvo.c | 14 +- trunk/drivers/gpu/drm/mga/mga_drv.h | 19 - trunk/drivers/gpu/drm/nouveau/nouveau_hw.c | 2 + trunk/drivers/gpu/drm/nouveau/nouveau_mem.c | 4 +- trunk/drivers/gpu/drm/nouveau/nouveau_sgdma.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_state.c | 114 +- trunk/drivers/gpu/drm/nouveau/nouveau_vm.c | 1 + trunk/drivers/gpu/drm/nouveau/nv04_crtc.c | 8 +- trunk/drivers/gpu/drm/nouveau/nvreg.h | 2 + trunk/drivers/gpu/drm/radeon/Kconfig | 9 +- trunk/drivers/gpu/drm/radeon/atombios.h | 1 + trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 19 +- .../gpu/drm/radeon/cayman_blit_shaders.c | 326 +++++- .../gpu/drm/radeon/cayman_blit_shaders.h | 3 + trunk/drivers/gpu/drm/radeon/evergreen.c | 107 +- .../gpu/drm/radeon/evergreen_blit_kms.c | 561 +++++---- trunk/drivers/gpu/drm/radeon/evergreend.h | 8 +- trunk/drivers/gpu/drm/radeon/ni.c | 13 +- trunk/drivers/gpu/drm/radeon/r100_track.h | 8 +- trunk/drivers/gpu/drm/radeon/r600.c | 14 +- trunk/drivers/gpu/drm/radeon/r600_cs.c | 28 +- trunk/drivers/gpu/drm/radeon/r600d.h | 3 + trunk/drivers/gpu/drm/radeon/radeon.h | 1 + trunk/drivers/gpu/drm/radeon/radeon_asic.c | 39 +- .../drivers/gpu/drm/radeon/radeon_atombios.c | 4 + trunk/drivers/gpu/drm/radeon/radeon_clocks.c | 8 +- trunk/drivers/gpu/drm/radeon/radeon_combios.c | 11 +- .../gpu/drm/radeon/radeon_connectors.c | 71 +- trunk/drivers/gpu/drm/radeon/radeon_cs.c | 1 + trunk/drivers/gpu/drm/radeon/radeon_device.c | 5 + trunk/drivers/gpu/drm/radeon/radeon_display.c | 13 +- trunk/drivers/gpu/drm/radeon/radeon_drv.c | 4 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 129 ++- trunk/drivers/gpu/drm/radeon/radeon_family.h | 2 + trunk/drivers/gpu/drm/radeon/radeon_fence.c | 51 +- trunk/drivers/gpu/drm/radeon/radeon_mode.h | 2 + trunk/drivers/gpu/drm/radeon/radeon_pm.c | 1 + trunk/drivers/gpu/drm/radeon/reg_srcs/r600 | 1 - trunk/drivers/gpu/drm/savage/savage_bci.c | 3 - trunk/drivers/hwmon/coretemp.c | 23 +- trunk/drivers/hwmon/max6642.c | 22 +- trunk/drivers/ide/ide-cd.c | 3 +- trunk/drivers/input/serio/serport.c | 10 +- trunk/drivers/isdn/gigaset/ser-gigaset.c | 8 +- trunk/drivers/isdn/hardware/mISDN/hfcsusb.c | 1 + trunk/drivers/leds/Kconfig | 20 +- trunk/drivers/md/bitmap.c | 104 +- trunk/drivers/md/bitmap.h | 10 - trunk/drivers/md/md.c | 41 +- trunk/drivers/md/md.h | 2 + trunk/drivers/md/raid1.c | 24 +- trunk/drivers/md/raid1.h | 2 + trunk/drivers/md/raid5.c | 16 +- trunk/drivers/media/dvb/dvb-usb/anysee.c | 17 +- trunk/drivers/media/media-devnode.c | 4 +- .../media/video/cx23885/cx23885-cards.c | 2 +- .../media/video/gspca/coarse_expo_autogain.h | 116 -- trunk/drivers/media/video/gspca/ov519.c | 8 +- trunk/drivers/media/video/gspca/sonixj.c | 2 +- .../media/video/gspca/stv06xx/stv06xx_hdcs.h | 2 +- trunk/drivers/media/video/ivtv/ivtv-driver.c | 10 +- .../drivers/media/video/ivtv/ivtv-firmware.c | 11 +- trunk/drivers/media/video/ivtv/ivtv-ioctl.c | 129 ++- trunk/drivers/media/video/ivtv/ivtv-ioctl.h | 3 +- trunk/drivers/media/video/ivtv/ivtv-streams.c | 4 +- trunk/drivers/media/video/ivtv/ivtv-vbi.c | 2 +- trunk/drivers/media/video/ivtv/ivtvfb.c | 33 +- trunk/drivers/media/video/omap3isp/isp.c | 2 +- trunk/drivers/media/video/soc_camera.c | 2 +- trunk/drivers/media/video/uvc/uvc_entity.c | 2 +- trunk/drivers/misc/apds990x.c | 2 + trunk/drivers/misc/cs5535-mfgpt.c | 2 +- trunk/drivers/misc/spear13xx_pcie_gadget.c | 2 +- trunk/drivers/misc/ti-st/st_core.c | 6 +- trunk/drivers/mmc/host/mmci.c | 22 +- trunk/drivers/mmc/host/omap_hsmmc.c | 3 + trunk/drivers/net/3c509.c | 14 +- trunk/drivers/net/3c59x.c | 4 +- trunk/drivers/net/arm/am79c961a.c | 126 +- trunk/drivers/net/arm/ep93xx_eth.c | 82 +- trunk/drivers/net/bonding/bond_main.c | 11 + trunk/drivers/net/caif/caif_serial.c | 6 +- trunk/drivers/net/can/flexcan.c | 5 +- trunk/drivers/net/can/slcan.c | 9 +- trunk/drivers/net/davinci_emac.c | 10 +- trunk/drivers/net/depca.c | 35 +- trunk/drivers/net/dl2k.c | 2 +- trunk/drivers/net/dm9000.c | 6 +- trunk/drivers/net/gianfar.c | 29 +- trunk/drivers/net/gianfar.h | 8 +- trunk/drivers/net/gianfar_ethtool.c | 64 +- trunk/drivers/net/hamradio/6pack.c | 8 +- trunk/drivers/net/hamradio/mkiss.c | 11 +- trunk/drivers/net/hp100.c | 12 +- trunk/drivers/net/ibmlana.c | 4 +- trunk/drivers/net/igb/igb_main.c | 3 + trunk/drivers/net/irda/irtty-sir.c | 16 +- trunk/drivers/net/irda/smsc-ircc2.c | 44 +- trunk/drivers/net/ks8842.c | 2 +- trunk/drivers/net/ne3210.c | 15 +- trunk/drivers/net/ppp_async.c | 6 +- trunk/drivers/net/ppp_synctty.c | 6 +- trunk/drivers/net/qlcnic/qlcnic_hw.c | 1 + trunk/drivers/net/qlcnic/qlcnic_main.c | 1 + trunk/drivers/net/slip.c | 11 +- trunk/drivers/net/smc-mca.c | 6 +- trunk/drivers/net/smc91x.c | 6 +- trunk/drivers/net/tg3.c | 2 +- trunk/drivers/net/tokenring/madgemc.c | 2 +- trunk/drivers/net/tulip/de4x5.c | 4 +- trunk/drivers/net/usb/catc.c | 2 +- trunk/drivers/net/usb/cdc_ncm.c | 3 +- trunk/drivers/net/wan/x25_asy.c | 7 +- trunk/drivers/net/wireless/ath/ath5k/base.c | 11 +- trunk/drivers/net/wireless/ath/ath5k/reset.c | 5 +- trunk/drivers/net/wireless/ath/ath9k/Kconfig | 1 - .../net/wireless/ath/ath9k/ar9002_calib.c | 2 +- .../net/wireless/ath/ath9k/ar9003_eeprom.c | 10 +- .../net/wireless/ath/ath9k/ar9003_phy.c | 22 + .../net/wireless/ath/ath9k/eeprom_9287.c | 10 +- trunk/drivers/net/wireless/ath/ath9k/hw.c | 5 +- trunk/drivers/net/wireless/ath/ath9k/hw.h | 2 + trunk/drivers/net/wireless/ath/ath9k/main.c | 4 +- trunk/drivers/net/wireless/ath/ath9k/rc.c | 3 +- trunk/drivers/net/wireless/b43/phy_n.c | 2 +- .../net/wireless/iwlegacy/iwl-4965-lib.c | 4 +- .../drivers/net/wireless/iwlegacy/iwl-4965.c | 14 +- .../drivers/net/wireless/iwlegacy/iwl-core.c | 30 +- .../drivers/net/wireless/iwlegacy/iwl-core.h | 2 +- trunk/drivers/net/wireless/iwlegacy/iwl-dev.h | 13 +- .../net/wireless/iwlegacy/iwl4965-base.c | 20 +- trunk/drivers/net/wireless/iwlwifi/iwl-2000.c | 74 -- trunk/drivers/net/wireless/iwlwifi/iwl-5000.c | 3 - trunk/drivers/net/wireless/iwlwifi/iwl-6000.c | 30 +- .../net/wireless/iwlwifi/iwl-agn-hcmd.c | 12 +- .../net/wireless/iwlwifi/iwl-agn-rxon.c | 19 +- trunk/drivers/net/wireless/iwlwifi/iwl-agn.c | 25 +- trunk/drivers/net/wireless/iwlwifi/iwl-agn.h | 1 + trunk/drivers/net/wireless/iwlwifi/iwl-core.c | 6 +- trunk/drivers/net/wireless/iwlwifi/iwl-core.h | 1 + trunk/drivers/net/wireless/iwlwifi/iwl-dev.h | 13 +- trunk/drivers/net/wireless/iwlwifi/iwl-rx.c | 24 +- trunk/drivers/net/wireless/libertas/cmd.c | 6 +- trunk/drivers/net/wireless/libertas/if_sdio.c | 21 +- trunk/drivers/net/wireless/mwifiex/sdio.h | 4 +- trunk/drivers/net/wireless/rt2x00/Kconfig | 1 - .../net/wireless/rt2x00/rt2x00config.c | 3 +- trunk/drivers/net/wireless/rt2x00/rt2x00dev.c | 4 + trunk/drivers/net/wireless/rtlwifi/pci.c | 25 +- trunk/drivers/net/wireless/wl12xx/conf.h | 3 + trunk/drivers/net/wireless/wl12xx/main.c | 1 + trunk/drivers/net/wireless/wl12xx/scan.c | 49 +- trunk/drivers/net/wireless/wl12xx/scan.h | 3 + trunk/drivers/net/wireless/zd1211rw/zd_usb.c | 53 +- trunk/drivers/oprofile/buffer_sync.c | 21 +- trunk/drivers/pci/Makefile | 1 + trunk/drivers/pci/intel-iommu.c | 2 +- trunk/drivers/pci/pci.c | 4 +- trunk/drivers/ptp/ptp_chardev.c | 11 +- trunk/drivers/rtc/Kconfig | 9 + trunk/drivers/rtc/Makefile | 1 + trunk/drivers/rtc/interface.c | 2 +- trunk/drivers/rtc/rtc-dev.c | 3 +- trunk/drivers/rtc/rtc-m41t93.c | 2 +- .../kernel/rtc.c => drivers/rtc/rtc-puv3.c} | 14 +- trunk/drivers/s390/cio/qdio_main.c | 6 +- trunk/drivers/s390/net/qeth_core.h | 2 +- trunk/drivers/s390/net/qeth_core_main.c | 57 +- trunk/drivers/s390/scsi/zfcp_fsf.c | 45 +- trunk/drivers/s390/scsi/zfcp_qdio.c | 11 +- trunk/drivers/s390/scsi/zfcp_qdio.h | 9 +- trunk/drivers/scsi/scsi_scan.c | 2 +- trunk/drivers/scsi/scsi_sysfs.c | 1 + trunk/drivers/sh/clk/core.c | 2 +- trunk/drivers/spi/amba-pl022.c | 1 + trunk/drivers/spi/omap2_mcspi.c | 2 +- trunk/drivers/ssb/driver_pcicore.c | 10 +- trunk/drivers/staging/Kconfig | 18 - .../staging/altera-stapl/altera-jtag.c | 2 +- trunk/drivers/staging/altera-stapl/altera.c | 2 +- .../staging/altera-stapl}/altera.h | 0 trunk/drivers/staging/ath6kl/Kconfig | 1 + .../staging/ath6kl/os/linux/cfg80211.c | 3 +- .../staging/brcm80211/brcmfmac/wl_iw.c | 2 - trunk/drivers/staging/gma500/psb_drv.c | 15 +- trunk/drivers/staging/gma500/psb_fb.c | 10 + trunk/drivers/staging/gma500/psb_intel_bios.c | 13 +- trunk/drivers/staging/iio/accel/adis16201.h | 2 +- trunk/drivers/staging/iio/accel/adis16203.h | 2 +- trunk/drivers/staging/iio/dac/max517.c | 2 +- .../drivers/staging/iio/imu/adis16400_ring.c | 10 +- .../staging/iio/industrialio-trigger.c | 1 + trunk/drivers/staging/mei/init.c | 4 +- trunk/drivers/staging/olpc_dcon/Kconfig | 1 + trunk/drivers/staging/rts_pstor/sd.c | 2 +- trunk/drivers/staging/usbip/stub_dev.c | 21 + trunk/drivers/staging/usbip/stub_rx.c | 20 +- trunk/drivers/tty/n_gsm.c | 6 +- trunk/drivers/tty/n_hdlc.c | 18 +- trunk/drivers/tty/n_r3964.c | 10 +- trunk/drivers/tty/n_tty.c | 61 +- trunk/drivers/tty/serial/pch_uart.c | 4 +- trunk/drivers/tty/tty_buffer.c | 27 +- trunk/drivers/tty/vt/selection.c | 3 +- trunk/drivers/usb/class/cdc-acm.c | 2 + trunk/drivers/usb/core/hub.c | 6 +- trunk/drivers/usb/core/inode.c | 1 - trunk/drivers/usb/gadget/Kconfig | 5 +- trunk/drivers/usb/gadget/amd5536udc.c | 1 + trunk/drivers/usb/gadget/at91_udc.c | 1 + trunk/drivers/usb/gadget/dummy_hcd.c | 1 + trunk/drivers/usb/gadget/inode.c | 4 +- trunk/drivers/usb/gadget/mv_udc_core.c | 8 +- trunk/drivers/usb/gadget/net2280.c | 1 + trunk/drivers/usb/gadget/pxa25x_udc.c | 5 +- trunk/drivers/usb/gadget/s3c-hsotg.c | 22 +- trunk/drivers/usb/gadget/s3c-hsudc.c | 7 +- trunk/drivers/usb/gadget/s3c2410_udc.c | 1 + trunk/drivers/usb/host/ohci-pxa27x.c | 7 +- trunk/drivers/usb/host/xhci-dbg.c | 8 +- trunk/drivers/usb/host/xhci-mem.c | 14 +- trunk/drivers/usb/host/xhci-pci.c | 14 +- trunk/drivers/usb/host/xhci-ring.c | 2 +- trunk/drivers/usb/host/xhci.c | 18 +- trunk/drivers/usb/host/xhci.h | 6 + trunk/drivers/usb/musb/musb_core.c | 1 + trunk/drivers/usb/renesas_usbhs/mod_gadget.c | 1 + trunk/drivers/usb/serial/ftdi_sio.c | 1 + trunk/drivers/usb/serial/ftdi_sio_ids.h | 1 + trunk/drivers/usb/serial/option.c | 34 +- trunk/drivers/usb/storage/transport.c | 29 + trunk/drivers/usb/storage/unusual_devs.h | 19 + trunk/drivers/usb/storage/usb.c | 13 +- trunk/drivers/usb/storage/usb.h | 2 + trunk/drivers/video/arcfb.c | 5 +- trunk/drivers/video/aty/atyfb_base.c | 10 +- trunk/drivers/video/backlight/Kconfig | 12 + trunk/drivers/video/backlight/Makefile | 1 + trunk/drivers/video/backlight/adp8870_bl.c | 1012 +++++++++++++++++ trunk/drivers/video/bf537-lq035.c | 1 + trunk/drivers/video/broadsheetfb.c | 4 +- trunk/drivers/video/efifb.c | 34 +- trunk/drivers/video/hecubafb.c | 5 +- trunk/drivers/video/imxfb.c | 4 +- trunk/drivers/video/metronomefb.c | 4 +- trunk/drivers/video/modedb.c | 1 + trunk/drivers/video/pxa168fb.c | 17 +- trunk/drivers/video/s3c-fb.c | 22 +- trunk/drivers/video/savage/savagefb_driver.c | 16 + trunk/drivers/video/sh_mobile_hdmi.c | 18 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 4 +- trunk/drivers/video/vga16fb.c | 2 + trunk/drivers/video/xen-fbfront.c | 3 +- trunk/drivers/w1/masters/Kconfig | 2 +- trunk/drivers/xen/events.c | 18 +- trunk/drivers/xen/swiotlb-xen.c | 12 +- trunk/fs/afs/dir.c | 8 +- trunk/fs/afs/fsclient.c | 3 +- trunk/fs/afs/inode.c | 10 +- trunk/fs/afs/super.c | 74 +- trunk/fs/afs/write.c | 21 +- trunk/fs/block_dev.c | 4 +- trunk/fs/btrfs/btrfs_inode.h | 3 - trunk/fs/btrfs/ctree.c | 32 +- trunk/fs/btrfs/ctree.h | 22 +- trunk/fs/btrfs/delayed-inode.c | 8 +- trunk/fs/btrfs/disk-io.c | 41 +- trunk/fs/btrfs/extent-tree.c | 158 ++- trunk/fs/btrfs/extent_io.c | 2 +- trunk/fs/btrfs/extent_io.h | 2 +- trunk/fs/btrfs/file.c | 10 +- trunk/fs/btrfs/free-space-cache.c | 231 +++- trunk/fs/btrfs/inode-map.c | 34 +- trunk/fs/btrfs/inode.c | 265 +++-- trunk/fs/btrfs/ioctl.c | 49 +- trunk/fs/btrfs/relocation.c | 34 +- trunk/fs/btrfs/scrub.c | 192 ++-- trunk/fs/btrfs/super.c | 10 +- trunk/fs/btrfs/transaction.c | 307 ++--- trunk/fs/btrfs/transaction.h | 29 +- trunk/fs/btrfs/volumes.c | 10 +- trunk/fs/btrfs/xattr.c | 2 - trunk/fs/buffer.c | 4 +- trunk/fs/ceph/addr.c | 2 +- trunk/fs/ceph/caps.c | 10 +- trunk/fs/ceph/dir.c | 11 +- trunk/fs/ceph/export.c | 4 +- trunk/fs/ceph/file.c | 35 +- trunk/fs/ceph/inode.c | 18 +- trunk/fs/ceph/ioctl.c | 6 +- trunk/fs/ceph/locks.c | 29 +- trunk/fs/ceph/snap.c | 2 +- trunk/fs/ceph/xattr.c | 6 +- trunk/fs/cifs/Kconfig | 3 +- trunk/fs/cifs/cache.c | 6 +- trunk/fs/cifs/cifsencrypt.c | 2 +- trunk/fs/cifs/cifsfs.c | 33 + trunk/fs/cifs/cifsfs.h | 2 +- trunk/fs/cifs/connect.c | 29 +- trunk/fs/cifs/fscache.c | 51 +- trunk/fs/dcookies.c | 3 + trunk/fs/exec.c | 5 +- trunk/fs/fat/file.c | 2 +- trunk/fs/fuse/inode.c | 2 + trunk/fs/gfs2/glock.c | 9 +- trunk/fs/jfs/jfs_logmgr.c | 2 +- trunk/fs/namei.c | 33 +- trunk/fs/nilfs2/btree.c | 39 +- trunk/fs/nilfs2/segment.c | 2 +- trunk/fs/ocfs2/super.c | 2 +- trunk/fs/partitions/check.c | 10 +- trunk/fs/proc/namespaces.c | 9 +- trunk/fs/proc/root.c | 11 +- trunk/fs/super.c | 2 +- trunk/fs/sysfs/mount.c | 37 +- trunk/fs/sysfs/sysfs.h | 2 +- trunk/fs/ubifs/io.c | 2 + trunk/fs/ubifs/journal.c | 1 + trunk/fs/ubifs/orphan.c | 2 +- trunk/fs/ubifs/recovery.c | 164 +-- trunk/fs/ubifs/replay.c | 3 +- trunk/fs/ubifs/shrinker.c | 6 +- trunk/fs/ubifs/super.c | 179 +-- trunk/fs/ubifs/tnc.c | 9 +- trunk/fs/ubifs/ubifs.h | 4 +- trunk/include/asm-generic/pgtable.h | 2 +- trunk/include/asm-generic/unistd.h | 4 +- trunk/include/drm/drm_crtc.h | 2 + trunk/include/drm/drm_pciids.h | 11 + trunk/include/linux/basic_mmio_gpio.h | 1 + trunk/include/linux/blkdev.h | 4 +- trunk/include/linux/ethtool.h | 6 +- trunk/include/linux/fs.h | 12 +- trunk/include/linux/genhd.h | 1 + trunk/include/linux/i2c/adp8870.h | 153 +++ trunk/include/linux/ieee80211.h | 8 +- trunk/include/linux/if_packet.h | 3 + trunk/include/linux/if_vlan.h | 25 +- trunk/include/linux/irqreturn.h | 6 +- trunk/include/linux/kernel.h | 4 +- trunk/include/linux/kmsg_dump.h | 1 + trunk/include/linux/kobject_ns.h | 10 +- trunk/include/linux/memcontrol.h | 6 + trunk/include/linux/netdevice.h | 2 +- .../linux/netfilter/nf_conntrack_common.h | 3 + trunk/include/linux/percpu.h | 3 + trunk/include/linux/perf_event.h | 8 +- trunk/include/linux/sched.h | 1 + trunk/include/linux/seqlock.h | 1 + trunk/include/linux/skbuff.h | 5 + trunk/include/linux/swap.h | 8 +- trunk/include/linux/swiotlb.h | 1 + trunk/include/linux/sysfs.h | 7 - trunk/include/linux/topology.h | 2 +- trunk/include/linux/tty_ldisc.h | 9 +- trunk/include/linux/usb_usual.h | 4 +- trunk/include/linux/uts.h | 2 +- trunk/include/media/v4l2-dev.h | 4 +- trunk/include/net/net_namespace.h | 10 +- trunk/include/net/sctp/command.h | 1 + trunk/include/net/sctp/structs.h | 2 +- trunk/include/trace/events/net.h | 12 +- trunk/include/trace/events/vmscan.h | 83 ++ trunk/init/Kconfig | 10 +- trunk/init/calibrate.c | 3 - trunk/kernel/events/core.c | 22 +- trunk/kernel/exit.c | 31 +- trunk/kernel/gcov/Kconfig | 3 +- trunk/kernel/irq/handle.c | 6 - trunk/kernel/irq/irqdesc.c | 14 +- trunk/kernel/irq/manage.c | 27 +- trunk/kernel/irq/spurious.c | 31 +- trunk/kernel/lockdep.c | 2 +- trunk/kernel/sched.c | 33 +- trunk/kernel/sched_rt.c | 6 +- trunk/kernel/signal.c | 2 +- trunk/kernel/sysctl.c | 6 + trunk/kernel/time/clockevents.c | 5 +- trunk/kernel/timer.c | 15 +- trunk/kernel/trace/ftrace.c | 9 +- trunk/kernel/trace/trace_kprobe.c | 8 +- trunk/lib/Kconfig.debug | 2 +- trunk/lib/bitmap.c | 2 +- trunk/lib/kobject.c | 26 +- trunk/lib/swiotlb.c | 5 + trunk/lib/vsprintf.c | 4 +- trunk/mm/compaction.c | 76 +- trunk/mm/filemap.c | 2 +- trunk/mm/huge_memory.c | 5 +- trunk/mm/hugetlb.c | 12 +- trunk/mm/ksm.c | 6 + trunk/mm/memcontrol.c | 81 +- trunk/mm/memory-failure.c | 4 +- trunk/mm/memory.c | 8 +- trunk/mm/memory_hotplug.c | 6 + trunk/mm/migrate.c | 2 +- trunk/mm/mmap.c | 12 +- trunk/mm/page_cgroup.c | 71 +- trunk/mm/slab.c | 9 +- trunk/mm/slub.c | 12 +- trunk/mm/thrash.c | 105 +- trunk/mm/vmscan.c | 20 +- trunk/net/8021q/vlan_core.c | 60 +- trunk/net/8021q/vlan_dev.c | 2 +- trunk/net/bluetooth/l2cap_core.c | 2 +- trunk/net/bridge/br_netfilter.c | 6 + trunk/net/caif/chnl_net.c | 9 +- trunk/net/ceph/osd_client.c | 15 +- trunk/net/core/dev.c | 30 +- trunk/net/core/net-sysfs.c | 23 +- trunk/net/core/net_namespace.c | 28 +- trunk/net/core/netpoll.c | 7 + trunk/net/ipv4/af_inet.c | 3 + trunk/net/ipv4/ip_options.c | 15 +- trunk/net/ipv4/ip_output.c | 6 +- trunk/net/ipv4/netfilter/ip_queue.c | 3 +- trunk/net/ipv4/netfilter/ipt_CLUSTERIP.c | 6 +- trunk/net/ipv4/netfilter/ipt_MASQUERADE.c | 2 +- .../netfilter/nf_conntrack_l3proto_ipv4.c | 2 +- .../ipv4/netfilter/nf_conntrack_proto_icmp.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_core.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_helper.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_rule.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_standalone.c | 4 +- trunk/net/ipv4/route.c | 78 +- trunk/net/ipv6/af_inet6.c | 4 + trunk/net/ipv6/netfilter/ip6_queue.c | 3 +- .../netfilter/nf_conntrack_l3proto_ipv6.c | 2 +- .../netfilter/nf_conntrack_proto_icmpv6.c | 2 +- trunk/net/irda/iriap.c | 5 + trunk/net/l2tp/l2tp_debugfs.c | 2 +- trunk/net/mac80211/ibss.c | 6 +- trunk/net/mac80211/ieee80211_i.h | 3 - trunk/net/mac80211/iface.c | 4 + trunk/net/mac80211/key.c | 21 +- trunk/net/mac80211/mlme.c | 1 + trunk/net/mac80211/scan.c | 1 - trunk/net/mac80211/tx.c | 7 +- trunk/net/netfilter/ipset/ip_set_core.c | 2 +- .../netfilter/ipset/ip_set_hash_ipportnet.c | 10 +- trunk/net/netfilter/ipset/ip_set_hash_net.c | 8 +- .../net/netfilter/ipset/ip_set_hash_netport.c | 6 +- trunk/net/netfilter/ipvs/ip_vs_core.c | 16 +- trunk/net/netfilter/nf_conntrack_core.c | 7 +- trunk/net/netfilter/nf_conntrack_ftp.c | 2 +- trunk/net/netfilter/nf_conntrack_h323_main.c | 10 +- trunk/net/netfilter/nf_conntrack_irc.c | 3 +- trunk/net/netfilter/nf_conntrack_pptp.c | 3 +- trunk/net/netfilter/nf_conntrack_sane.c | 2 +- trunk/net/netfilter/nf_conntrack_sip.c | 2 +- trunk/net/netfilter/xt_socket.c | 4 +- trunk/net/packet/af_packet.c | 17 +- trunk/net/sched/sch_generic.c | 3 +- trunk/net/sctp/associola.c | 23 +- trunk/net/sctp/sm_sideeffect.c | 3 + trunk/net/sctp/sm_statefuns.c | 14 +- trunk/net/wireless/nl80211.c | 9 +- trunk/net/wireless/scan.c | 43 +- trunk/net/xfrm/xfrm_replay.c | 4 +- trunk/scripts/Makefile.asm-generic | 1 + trunk/scripts/checkpatch.pl | 5 + trunk/scripts/depmod.sh | 48 + trunk/security/apparmor/lsm.c | 2 +- trunk/security/selinux/hooks.c | 25 +- trunk/security/selinux/selinuxfs.c | 37 +- trunk/security/selinux/ss/policydb.c | 3 + trunk/security/tomoyo/mount.c | 2 +- trunk/sound/core/misc.c | 40 +- trunk/sound/pci/asihpi/hpidspcd.c | 2 +- trunk/sound/pci/fm801.c | 13 +- trunk/sound/pci/hda/patch_analog.c | 16 +- trunk/sound/pci/hda/patch_conexant.c | 1 + trunk/sound/pci/hda/patch_realtek.c | 15 +- trunk/sound/soc/atmel/atmel_ssc_dai.c | 5 +- trunk/sound/soc/blackfin/bf5xx-ad1836.c | 4 +- trunk/sound/soc/codecs/ad1836.c | 14 +- trunk/sound/soc/codecs/ad1836.h | 6 + trunk/sound/soc/codecs/cx20442.c | 8 +- trunk/sound/soc/codecs/wm8804.c | 9 +- trunk/sound/soc/codecs/wm8915.c | 3 +- trunk/sound/soc/codecs/wm8962.c | 4 +- trunk/sound/soc/codecs/wm_hubs.c | 8 +- trunk/sound/soc/fsl/fsl_dma.c | 9 +- trunk/sound/soc/samsung/i2s.c | 4 +- trunk/sound/soc/soc-cache.c | 3 + trunk/sound/soc/soc-dapm.c | 22 +- trunk/sound/usb/6fire/firmware.c | 1 + trunk/sound/usb/quirks.c | 2 +- trunk/tools/perf/builtin-test.c | 2 +- trunk/tools/perf/util/PERF-VERSION-GEN | 7 +- trunk/tools/perf/util/event.c | 16 - trunk/tools/perf/util/event.h | 2 - trunk/tools/perf/util/evlist.c | 68 +- trunk/tools/perf/util/evlist.h | 6 +- trunk/tools/perf/util/evsel.c | 16 + trunk/tools/perf/util/evsel.h | 7 + trunk/tools/perf/util/python.c | 14 +- trunk/tools/perf/util/session.c | 12 +- trunk/tools/testing/ktest/ktest.pl | 8 +- trunk/virt/kvm/kvm_main.c | 15 +- 808 files changed, 9953 insertions(+), 5660 deletions(-) create mode 100644 trunk/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870 delete mode 100644 trunk/Documentation/arm/SH-Mobile/zboot-rom-sdhi.txt delete mode 100644 trunk/Documentation/devicetree/bindings/arm/pmu.txt delete mode 100644 trunk/arch/arm/boot/compressed/sdhi-sh7372.c delete mode 100644 trunk/arch/arm/boot/compressed/sdhi-shmobile.c delete mode 100644 trunk/arch/arm/boot/compressed/sdhi-shmobile.h rename trunk/arch/arm/mach-exynos4/{usb-phy.c => setup-usb-phy.c} (100%) delete mode 100644 trunk/arch/arm/mach-s3c2410/irq.c delete mode 100644 trunk/arch/arm/mach-shmobile/include/mach/sdhi-sh7372.h delete mode 100644 trunk/arch/arm/mach-shmobile/include/mach/sdhi.h delete mode 100644 trunk/arch/powerpc/boot/dtc-src/.gitignore create mode 100644 trunk/arch/sparc/include/asm/leon_pci.h create mode 100644 trunk/arch/sparc/kernel/leon_pci.c create mode 100644 trunk/arch/sparc/kernel/leon_pci_grpci2.c rename trunk/arch/unicore32/configs/{debug_defconfig => unicore32_defconfig} (97%) delete mode 100644 trunk/drivers/media/video/gspca/coarse_expo_autogain.h rename trunk/{arch/unicore32/kernel/rtc.c => drivers/rtc/rtc-puv3.c} (98%) rename trunk/{include/staging => drivers/staging/altera-stapl}/altera.h (100%) create mode 100644 trunk/drivers/video/backlight/adp8870_bl.c create mode 100644 trunk/include/linux/i2c/adp8870.h create mode 100755 trunk/scripts/depmod.sh diff --git a/[refs] b/[refs] index 9fa1f522a8aa..b008ae065f20 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4cde7e0dca98e0e93dceb174d83f766d0d637c23 +refs/heads/master: 7f294e4983b67be802277d139522837b3ce5769f diff --git a/trunk/CREDITS b/trunk/CREDITS index a7ea8e343836..d78359f5f64d 100644 --- a/trunk/CREDITS +++ b/trunk/CREDITS @@ -518,6 +518,14 @@ N: Zach Brown E: zab@zabbo.net D: maestro pci sound +M: David Brownell +D: Kernel engineer, mentor, and friend. Maintained USB EHCI and +D: gadget layers, SPI subsystem, GPIO subsystem, and more than a few +D: device drivers. His encouragement also helped many engineers get +D: started working on the Linux kernel. David passed away in early +D: 2011, and will be greatly missed. +W: https://lkml.org/lkml/2011/4/5/36 + N: Gary Brubaker E: xavyer@ix.netcom.com D: USB Serial Empeg Empeg-car Mark I/II Driver diff --git a/trunk/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870 b/trunk/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870 new file mode 100644 index 000000000000..aa11dbdd794b --- /dev/null +++ b/trunk/Documentation/ABI/testing/sysfs-class-backlight-driver-adp8870 @@ -0,0 +1,56 @@ +What: /sys/class/backlight//_max +What: /sys/class/backlight//l1_daylight_max +What: /sys/class/backlight//l2_bright_max +What: /sys/class/backlight//l3_office_max +What: /sys/class/backlight//l4_indoor_max +What: /sys/class/backlight//l5_dark_max +Date: Mai 2011 +KernelVersion: 2.6.40 +Contact: device-drivers-devel@blackfin.uclinux.org +Description: + Control the maximum brightness for + on this . Values are between 0 and 127. This file + will also show the brightness level stored for this + . + +What: /sys/class/backlight//_dim +What: /sys/class/backlight//l2_bright_dim +What: /sys/class/backlight//l3_office_dim +What: /sys/class/backlight//l4_indoor_dim +What: /sys/class/backlight//l5_dark_dim +Date: Mai 2011 +KernelVersion: 2.6.40 +Contact: device-drivers-devel@blackfin.uclinux.org +Description: + Control the dim brightness for + on this . Values are between 0 and 127, typically + set to 0. Full off when the backlight is disabled. + This file will also show the dim brightness level stored for + this . + +What: /sys/class/backlight//ambient_light_level +Date: Mai 2011 +KernelVersion: 2.6.40 +Contact: device-drivers-devel@blackfin.uclinux.org +Description: + Get conversion value of the light sensor. + This value is updated every 80 ms (when the light sensor + is enabled). Returns integer between 0 (dark) and + 8000 (max ambient brightness) + +What: /sys/class/backlight//ambient_light_zone +Date: Mai 2011 +KernelVersion: 2.6.40 +Contact: device-drivers-devel@blackfin.uclinux.org +Description: + Get/Set current ambient light zone. Reading returns + integer between 1..5 (1 = daylight, 2 = bright, ..., 5 = dark). + Writing a value between 1..5 forces the backlight controller + to enter the corresponding ambient light zone. + Writing 0 returns to normal/automatic ambient light level + operation. The ambient light sensing feature on these devices + is an extension to the API documented in + Documentation/ABI/stable/sysfs-class-backlight. + It can be enabled by writing the value stored in + /sys/class/backlight//max_brightness to + /sys/class/backlight//brightness. \ No newline at end of file diff --git a/trunk/Documentation/accounting/cgroupstats.txt b/trunk/Documentation/accounting/cgroupstats.txt index eda40fd39cad..d16a9849e60e 100644 --- a/trunk/Documentation/accounting/cgroupstats.txt +++ b/trunk/Documentation/accounting/cgroupstats.txt @@ -21,7 +21,7 @@ information will not be available. To extract cgroup statistics a utility very similar to getdelays.c has been developed, the sample output of the utility is shown below -~/balbir/cgroupstats # ./getdelays -C "/cgroup/a" +~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup/a" sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0 -~/balbir/cgroupstats # ./getdelays -C "/cgroup" +~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup" sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2 diff --git a/trunk/Documentation/arm/Booting b/trunk/Documentation/arm/Booting index a341d87d276e..4e686a2ed91e 100644 --- a/trunk/Documentation/arm/Booting +++ b/trunk/Documentation/arm/Booting @@ -164,8 +164,3 @@ In either case, the following conditions must be met: - The boot loader is expected to call the kernel image by jumping directly to the first instruction of the kernel image. - On CPUs supporting the ARM instruction set, the entry must be - made in ARM state, even for a Thumb-2 kernel. - - On CPUs supporting only the Thumb instruction set such as - Cortex-M class CPUs, the entry must be made in Thumb state. diff --git a/trunk/Documentation/arm/SH-Mobile/zboot-rom-sdhi.txt b/trunk/Documentation/arm/SH-Mobile/zboot-rom-sdhi.txt deleted file mode 100644 index 441959846e1a..000000000000 --- a/trunk/Documentation/arm/SH-Mobile/zboot-rom-sdhi.txt +++ /dev/null @@ -1,42 +0,0 @@ -ROM-able zImage boot from eSD ------------------------------ - -An ROM-able zImage compiled with ZBOOT_ROM_SDHI may be written to eSD and -SuperH Mobile ARM will to boot directly from the SDHI hardware block. - -This is achieved by the mask ROM loading the first portion of the image into -MERAM and then jumping to it. This portion contains loader code which -copies the entire image to SDRAM and jumps to it. From there the zImage -boot code proceeds as normal, uncompressing the image into its final -location and then jumping to it. - -This code has been tested on an mackerel board using the developer 1A eSD -boot mode which is configured using the following jumper settings. - - 8 7 6 5 4 3 2 1 - x|x|x|x| |x|x| -S4 -+-+-+-+-+-+-+- - | | | |x| | |x on - -The eSD card needs to be present in SDHI slot 1 (CN7). -As such S1 and S33 also need to be configured as per -the notes in arch/arm/mach-shmobile/board-mackerel.c. - -A partial zImage must be written to physical partition #1 (boot) -of the eSD at sector 0 in vrl4 format. A utility vrl4 is supplied to -accomplish this. - -e.g. - vrl4 < zImage | dd of=/dev/sdX bs=512 count=17 - -A full copy of _the same_ zImage should be written to physical partition #1 -(boot) of the eSD at sector 0. This should _not_ be in vrl4 format. - - vrl4 < zImage | dd of=/dev/sdX bs=512 - -Note: The commands above assume that the physical partition has been -switched. No such facility currently exists in the Linux Kernel. - -Physical partitions are described in the eSD specification. At the time of -writing they are not the same as partitions that are typically configured -using fdisk and visible through /proc/partitions diff --git a/trunk/Documentation/cgroups/blkio-controller.txt b/trunk/Documentation/cgroups/blkio-controller.txt index 465351d4cf85..cd45c8ea7463 100644 --- a/trunk/Documentation/cgroups/blkio-controller.txt +++ b/trunk/Documentation/cgroups/blkio-controller.txt @@ -28,16 +28,19 @@ cgroups. Here is what you can do. - Enable group scheduling in CFQ CONFIG_CFQ_GROUP_IOSCHED=y -- Compile and boot into kernel and mount IO controller (blkio). +- Compile and boot into kernel and mount IO controller (blkio); see + cgroups.txt, Why are cgroups needed?. - mount -t cgroup -o blkio none /cgroup + mount -t tmpfs cgroup_root /sys/fs/cgroup + mkdir /sys/fs/cgroup/blkio + mount -t cgroup -o blkio none /sys/fs/cgroup/blkio - Create two cgroups - mkdir -p /cgroup/test1/ /cgroup/test2 + mkdir -p /sys/fs/cgroup/blkio/test1/ /sys/fs/cgroup/blkio/test2 - Set weights of group test1 and test2 - echo 1000 > /cgroup/test1/blkio.weight - echo 500 > /cgroup/test2/blkio.weight + echo 1000 > /sys/fs/cgroup/blkio/test1/blkio.weight + echo 500 > /sys/fs/cgroup/blkio/test2/blkio.weight - Create two same size files (say 512MB each) on same disk (file1, file2) and launch two dd threads in different cgroup to read those files. @@ -46,12 +49,12 @@ cgroups. Here is what you can do. echo 3 > /proc/sys/vm/drop_caches dd if=/mnt/sdb/zerofile1 of=/dev/null & - echo $! > /cgroup/test1/tasks - cat /cgroup/test1/tasks + echo $! > /sys/fs/cgroup/blkio/test1/tasks + cat /sys/fs/cgroup/blkio/test1/tasks dd if=/mnt/sdb/zerofile2 of=/dev/null & - echo $! > /cgroup/test2/tasks - cat /cgroup/test2/tasks + echo $! > /sys/fs/cgroup/blkio/test2/tasks + cat /sys/fs/cgroup/blkio/test2/tasks - At macro level, first dd should finish first. To get more precise data, keep on looking at (with the help of script), at blkio.disk_time and @@ -68,13 +71,13 @@ Throttling/Upper Limit policy - Enable throttling in block layer CONFIG_BLK_DEV_THROTTLING=y -- Mount blkio controller - mount -t cgroup -o blkio none /cgroup/blkio +- Mount blkio controller (see cgroups.txt, Why are cgroups needed?) + mount -t cgroup -o blkio none /sys/fs/cgroup/blkio - Specify a bandwidth rate on particular device for root group. The format for policy is ": ". - echo "8:16 1048576" > /cgroup/blkio/blkio.read_bps_device + echo "8:16 1048576" > /sys/fs/cgroup/blkio/blkio.read_bps_device Above will put a limit of 1MB/second on reads happening for root group on device having major/minor number 8:16. @@ -108,7 +111,7 @@ Hierarchical Cgroups CFQ and throttling will practically treat all groups at same level. pivot - / | \ \ + / / \ \ root test1 test2 test3 Down the line we can implement hierarchical accounting/control support @@ -149,7 +152,7 @@ Proportional weight policy files Following is the format. - #echo dev_maj:dev_minor weight > /path/to/cgroup/blkio.weight_device + # echo dev_maj:dev_minor weight > blkio.weight_device Configure weight=300 on /dev/sdb (8:16) in this cgroup # echo 8:16 300 > blkio.weight_device # cat blkio.weight_device diff --git a/trunk/Documentation/cgroups/cgroups.txt b/trunk/Documentation/cgroups/cgroups.txt index 0ed99f08f1f3..cd67e90003c0 100644 --- a/trunk/Documentation/cgroups/cgroups.txt +++ b/trunk/Documentation/cgroups/cgroups.txt @@ -138,11 +138,11 @@ With the ability to classify tasks differently for different resources the admin can easily set up a script which receives exec notifications and depending on who is launching the browser he can - # echo browser_pid > /mnt///tasks + # echo browser_pid > /sys/fs/cgroup///tasks With only a single hierarchy, he now would potentially have to create a separate cgroup for every browser launched and associate it with -approp network and other resource class. This may lead to +appropriate network and other resource class. This may lead to proliferation of such cgroups. Also lets say that the administrator would like to give enhanced network @@ -153,9 +153,9 @@ apps enhanced CPU power, With ability to write pids directly to resource classes, it's just a matter of : - # echo pid > /mnt/network//tasks + # echo pid > /sys/fs/cgroup/network//tasks (after some time) - # echo pid > /mnt/network//tasks + # echo pid > /sys/fs/cgroup/network//tasks Without this ability, he would have to split the cgroup into multiple separate ones and then associate the new cgroups with the @@ -310,21 +310,24 @@ subsystem, this is the case for the cpuset. To start a new job that is to be contained within a cgroup, using the "cpuset" cgroup subsystem, the steps are something like: - 1) mkdir /dev/cgroup - 2) mount -t cgroup -ocpuset cpuset /dev/cgroup - 3) Create the new cgroup by doing mkdir's and write's (or echo's) in - the /dev/cgroup virtual file system. - 4) Start a task that will be the "founding father" of the new job. - 5) Attach that task to the new cgroup by writing its pid to the - /dev/cgroup tasks file for that cgroup. - 6) fork, exec or clone the job tasks from this founding father task. + 1) mount -t tmpfs cgroup_root /sys/fs/cgroup + 2) mkdir /sys/fs/cgroup/cpuset + 3) mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset + 4) Create the new cgroup by doing mkdir's and write's (or echo's) in + the /sys/fs/cgroup virtual file system. + 5) Start a task that will be the "founding father" of the new job. + 6) Attach that task to the new cgroup by writing its pid to the + /sys/fs/cgroup/cpuset/tasks file for that cgroup. + 7) fork, exec or clone the job tasks from this founding father task. For example, the following sequence of commands will setup a cgroup named "Charlie", containing just CPUs 2 and 3, and Memory Node 1, and then start a subshell 'sh' in that cgroup: - mount -t cgroup cpuset -ocpuset /dev/cgroup - cd /dev/cgroup + mount -t tmpfs cgroup_root /sys/fs/cgroup + mkdir /sys/fs/cgroup/cpuset + mount -t cgroup cpuset -ocpuset /sys/fs/cgroup/cpuset + cd /sys/fs/cgroup/cpuset mkdir Charlie cd Charlie /bin/echo 2-3 > cpuset.cpus @@ -345,7 +348,7 @@ Creating, modifying, using the cgroups can be done through the cgroup virtual filesystem. To mount a cgroup hierarchy with all available subsystems, type: -# mount -t cgroup xxx /dev/cgroup +# mount -t cgroup xxx /sys/fs/cgroup The "xxx" is not interpreted by the cgroup code, but will appear in /proc/mounts so may be any useful identifying string that you like. @@ -354,23 +357,32 @@ Note: Some subsystems do not work without some user input first. For instance, if cpusets are enabled the user will have to populate the cpus and mems files for each new cgroup created before that group can be used. +As explained in section `1.2 Why are cgroups needed?' you should create +different hierarchies of cgroups for each single resource or group of +resources you want to control. Therefore, you should mount a tmpfs on +/sys/fs/cgroup and create directories for each cgroup resource or resource +group. + +# mount -t tmpfs cgroup_root /sys/fs/cgroup +# mkdir /sys/fs/cgroup/rg1 + To mount a cgroup hierarchy with just the cpuset and memory subsystems, type: -# mount -t cgroup -o cpuset,memory hier1 /dev/cgroup +# mount -t cgroup -o cpuset,memory hier1 /sys/fs/cgroup/rg1 To change the set of subsystems bound to a mounted hierarchy, just remount with different options: -# mount -o remount,cpuset,blkio hier1 /dev/cgroup +# mount -o remount,cpuset,blkio hier1 /sys/fs/cgroup/rg1 Now memory is removed from the hierarchy and blkio is added. Note this will add blkio to the hierarchy but won't remove memory or cpuset, because the new options are appended to the old ones: -# mount -o remount,blkio /dev/cgroup +# mount -o remount,blkio /sys/fs/cgroup/rg1 To Specify a hierarchy's release_agent: # mount -t cgroup -o cpuset,release_agent="/sbin/cpuset_release_agent" \ - xxx /dev/cgroup + xxx /sys/fs/cgroup/rg1 Note that specifying 'release_agent' more than once will return failure. @@ -379,17 +391,17 @@ when the hierarchy consists of a single (root) cgroup. Supporting the ability to arbitrarily bind/unbind subsystems from an existing cgroup hierarchy is intended to be implemented in the future. -Then under /dev/cgroup you can find a tree that corresponds to the -tree of the cgroups in the system. For instance, /dev/cgroup +Then under /sys/fs/cgroup/rg1 you can find a tree that corresponds to the +tree of the cgroups in the system. For instance, /sys/fs/cgroup/rg1 is the cgroup that holds the whole system. If you want to change the value of release_agent: -# echo "/sbin/new_release_agent" > /dev/cgroup/release_agent +# echo "/sbin/new_release_agent" > /sys/fs/cgroup/rg1/release_agent It can also be changed via remount. -If you want to create a new cgroup under /dev/cgroup: -# cd /dev/cgroup +If you want to create a new cgroup under /sys/fs/cgroup/rg1: +# cd /sys/fs/cgroup/rg1 # mkdir my_cgroup Now you want to do something with this cgroup. diff --git a/trunk/Documentation/cgroups/cpuacct.txt b/trunk/Documentation/cgroups/cpuacct.txt index 8b930946c52a..9ad85df4b983 100644 --- a/trunk/Documentation/cgroups/cpuacct.txt +++ b/trunk/Documentation/cgroups/cpuacct.txt @@ -10,26 +10,25 @@ directly present in its group. Accounting groups can be created by first mounting the cgroup filesystem. -# mkdir /cgroups -# mount -t cgroup -ocpuacct none /cgroups - -With the above step, the initial or the parent accounting group -becomes visible at /cgroups. At bootup, this group includes all the -tasks in the system. /cgroups/tasks lists the tasks in this cgroup. -/cgroups/cpuacct.usage gives the CPU time (in nanoseconds) obtained by -this group which is essentially the CPU time obtained by all the tasks +# mount -t cgroup -ocpuacct none /sys/fs/cgroup + +With the above step, the initial or the parent accounting group becomes +visible at /sys/fs/cgroup. At bootup, this group includes all the tasks in +the system. /sys/fs/cgroup/tasks lists the tasks in this cgroup. +/sys/fs/cgroup/cpuacct.usage gives the CPU time (in nanoseconds) obtained +by this group which is essentially the CPU time obtained by all the tasks in the system. -New accounting groups can be created under the parent group /cgroups. +New accounting groups can be created under the parent group /sys/fs/cgroup. -# cd /cgroups +# cd /sys/fs/cgroup # mkdir g1 # echo $$ > g1 The above steps create a new group g1 and move the current shell process (bash) into it. CPU time consumed by this bash and its children can be obtained from g1/cpuacct.usage and the same is accumulated in -/cgroups/cpuacct.usage also. +/sys/fs/cgroup/cpuacct.usage also. cpuacct.stat file lists a few statistics which further divide the CPU time obtained by the cgroup into user and system times. Currently diff --git a/trunk/Documentation/cgroups/cpusets.txt b/trunk/Documentation/cgroups/cpusets.txt index 98a30829af7a..5b0d78e55ccc 100644 --- a/trunk/Documentation/cgroups/cpusets.txt +++ b/trunk/Documentation/cgroups/cpusets.txt @@ -661,21 +661,21 @@ than stress the kernel. To start a new job that is to be contained within a cpuset, the steps are: - 1) mkdir /dev/cpuset - 2) mount -t cgroup -ocpuset cpuset /dev/cpuset + 1) mkdir /sys/fs/cgroup/cpuset + 2) mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset 3) Create the new cpuset by doing mkdir's and write's (or echo's) in - the /dev/cpuset virtual file system. + the /sys/fs/cgroup/cpuset virtual file system. 4) Start a task that will be the "founding father" of the new job. 5) Attach that task to the new cpuset by writing its pid to the - /dev/cpuset tasks file for that cpuset. + /sys/fs/cgroup/cpuset tasks file for that cpuset. 6) fork, exec or clone the job tasks from this founding father task. For example, the following sequence of commands will setup a cpuset named "Charlie", containing just CPUs 2 and 3, and Memory Node 1, and then start a subshell 'sh' in that cpuset: - mount -t cgroup -ocpuset cpuset /dev/cpuset - cd /dev/cpuset + mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset + cd /sys/fs/cgroup/cpuset mkdir Charlie cd Charlie /bin/echo 2-3 > cpuset.cpus @@ -710,14 +710,14 @@ Creating, modifying, using the cpusets can be done through the cpuset virtual filesystem. To mount it, type: -# mount -t cgroup -o cpuset cpuset /dev/cpuset +# mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset -Then under /dev/cpuset you can find a tree that corresponds to the -tree of the cpusets in the system. For instance, /dev/cpuset +Then under /sys/fs/cgroup/cpuset you can find a tree that corresponds to the +tree of the cpusets in the system. For instance, /sys/fs/cgroup/cpuset is the cpuset that holds the whole system. -If you want to create a new cpuset under /dev/cpuset: -# cd /dev/cpuset +If you want to create a new cpuset under /sys/fs/cgroup/cpuset: +# cd /sys/fs/cgroup/cpuset # mkdir my_cpuset Now you want to do something with this cpuset. @@ -765,12 +765,12 @@ wrapper around the cgroup filesystem. The command -mount -t cpuset X /dev/cpuset +mount -t cpuset X /sys/fs/cgroup/cpuset is equivalent to -mount -t cgroup -ocpuset,noprefix X /dev/cpuset -echo "/sbin/cpuset_release_agent" > /dev/cpuset/release_agent +mount -t cgroup -ocpuset,noprefix X /sys/fs/cgroup/cpuset +echo "/sbin/cpuset_release_agent" > /sys/fs/cgroup/cpuset/release_agent 2.2 Adding/removing cpus ------------------------ diff --git a/trunk/Documentation/cgroups/devices.txt b/trunk/Documentation/cgroups/devices.txt index 57ca4c89fe5c..16624a7f8222 100644 --- a/trunk/Documentation/cgroups/devices.txt +++ b/trunk/Documentation/cgroups/devices.txt @@ -22,16 +22,16 @@ removed from the child(ren). An entry is added using devices.allow, and removed using devices.deny. For instance - echo 'c 1:3 mr' > /cgroups/1/devices.allow + echo 'c 1:3 mr' > /sys/fs/cgroup/1/devices.allow allows cgroup 1 to read and mknod the device usually known as /dev/null. Doing - echo a > /cgroups/1/devices.deny + echo a > /sys/fs/cgroup/1/devices.deny will remove the default 'a *:* rwm' entry. Doing - echo a > /cgroups/1/devices.allow + echo a > /sys/fs/cgroup/1/devices.allow will add the 'a *:* rwm' entry to the whitelist. diff --git a/trunk/Documentation/cgroups/freezer-subsystem.txt b/trunk/Documentation/cgroups/freezer-subsystem.txt index 41f37fea1276..c21d77742a07 100644 --- a/trunk/Documentation/cgroups/freezer-subsystem.txt +++ b/trunk/Documentation/cgroups/freezer-subsystem.txt @@ -59,28 +59,28 @@ is non-freezable. * Examples of usage : - # mkdir /containers - # mount -t cgroup -ofreezer freezer /containers - # mkdir /containers/0 - # echo $some_pid > /containers/0/tasks + # mkdir /sys/fs/cgroup/freezer + # mount -t cgroup -ofreezer freezer /sys/fs/cgroup/freezer + # mkdir /sys/fs/cgroup/freezer/0 + # echo $some_pid > /sys/fs/cgroup/freezer/0/tasks to get status of the freezer subsystem : - # cat /containers/0/freezer.state + # cat /sys/fs/cgroup/freezer/0/freezer.state THAWED to freeze all tasks in the container : - # echo FROZEN > /containers/0/freezer.state - # cat /containers/0/freezer.state + # echo FROZEN > /sys/fs/cgroup/freezer/0/freezer.state + # cat /sys/fs/cgroup/freezer/0/freezer.state FREEZING - # cat /containers/0/freezer.state + # cat /sys/fs/cgroup/freezer/0/freezer.state FROZEN to unfreeze all tasks in the container : - # echo THAWED > /containers/0/freezer.state - # cat /containers/0/freezer.state + # echo THAWED > /sys/fs/cgroup/freezer/0/freezer.state + # cat /sys/fs/cgroup/freezer/0/freezer.state THAWED This is the basic mechanism which should do the right thing for user space task diff --git a/trunk/Documentation/cgroups/memory.txt b/trunk/Documentation/cgroups/memory.txt index 7c163477fcd8..06eb6d957c83 100644 --- a/trunk/Documentation/cgroups/memory.txt +++ b/trunk/Documentation/cgroups/memory.txt @@ -1,8 +1,8 @@ Memory Resource Controller -NOTE: The Memory Resource Controller has been generically been referred - to as the memory controller in this document. Do not confuse memory - controller used here with the memory controller that is used in hardware. +NOTE: The Memory Resource Controller has generically been referred to as the + memory controller in this document. Do not confuse memory controller + used here with the memory controller that is used in hardware. (For editors) In this document: @@ -70,6 +70,7 @@ Brief summary of control files. (See sysctl's vm.swappiness) memory.move_charge_at_immigrate # set/show controls of moving charges memory.oom_control # set/show oom controls. + memory.numa_stat # show the number of memory usage per numa node 1. History @@ -181,7 +182,7 @@ behind this approach is that a cgroup that aggressively uses a shared page will eventually get charged for it (once it is uncharged from the cgroup that brought it in -- this will happen on memory pressure). -Exception: If CONFIG_CGROUP_CGROUP_MEM_RES_CTLR_SWAP is not used.. +Exception: If CONFIG_CGROUP_CGROUP_MEM_RES_CTLR_SWAP is not used. When you do swapoff and make swapped-out pages of shmem(tmpfs) to be backed into memory in force, charges for pages are accounted against the caller of swapoff rather than the users of shmem. @@ -213,7 +214,7 @@ affecting global LRU, memory+swap limit is better than just limiting swap from OS point of view. * What happens when a cgroup hits memory.memsw.limit_in_bytes -When a cgroup his memory.memsw.limit_in_bytes, it's useless to do swap-out +When a cgroup hits memory.memsw.limit_in_bytes, it's useless to do swap-out in this cgroup. Then, swap-out will not be done by cgroup routine and file caches are dropped. But as mentioned above, global LRU can do swapout memory from it for sanity of the system's memory management state. You can't forbid @@ -263,16 +264,17 @@ b. Enable CONFIG_RESOURCE_COUNTERS c. Enable CONFIG_CGROUP_MEM_RES_CTLR d. Enable CONFIG_CGROUP_MEM_RES_CTLR_SWAP (to use swap extension) -1. Prepare the cgroups -# mkdir -p /cgroups -# mount -t cgroup none /cgroups -o memory +1. Prepare the cgroups (see cgroups.txt, Why are cgroups needed?) +# mount -t tmpfs none /sys/fs/cgroup +# mkdir /sys/fs/cgroup/memory +# mount -t cgroup none /sys/fs/cgroup/memory -o memory 2. Make the new group and move bash into it -# mkdir /cgroups/0 -# echo $$ > /cgroups/0/tasks +# mkdir /sys/fs/cgroup/memory/0 +# echo $$ > /sys/fs/cgroup/memory/0/tasks Since now we're in the 0 cgroup, we can alter the memory limit: -# echo 4M > /cgroups/0/memory.limit_in_bytes +# echo 4M > /sys/fs/cgroup/memory/0/memory.limit_in_bytes NOTE: We can use a suffix (k, K, m, M, g or G) to indicate values in kilo, mega or gigabytes. (Here, Kilo, Mega, Giga are Kibibytes, Mebibytes, Gibibytes.) @@ -280,11 +282,11 @@ mega or gigabytes. (Here, Kilo, Mega, Giga are Kibibytes, Mebibytes, Gibibytes.) NOTE: We can write "-1" to reset the *.limit_in_bytes(unlimited). NOTE: We cannot set limits on the root cgroup any more. -# cat /cgroups/0/memory.limit_in_bytes +# cat /sys/fs/cgroup/memory/0/memory.limit_in_bytes 4194304 We can check the usage: -# cat /cgroups/0/memory.usage_in_bytes +# cat /sys/fs/cgroup/memory/0/memory.usage_in_bytes 1216512 A successful write to this file does not guarantee a successful set of @@ -464,6 +466,24 @@ value for efficient access. (Of course, when necessary, it's synchronized.) If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP) value in memory.stat(see 5.2). +5.6 numa_stat + +This is similar to numa_maps but operates on a per-memcg basis. This is +useful for providing visibility into the numa locality information within +an memcg since the pages are allowed to be allocated from any physical +node. One of the usecases is evaluating application performance by +combining this information with the application's cpu allocation. + +We export "total", "file", "anon" and "unevictable" pages per-node for +each memcg. The ouput format of memory.numa_stat is: + +total= N0= N1= ... +file= N0= N1= ... +anon= N0= N1= ... +unevictable= N0= N1= ... + +And we have total = file + anon + unevictable. + 6. Hierarchy support The memory controller supports a deep hierarchy and hierarchical accounting. @@ -471,13 +491,13 @@ The hierarchy is created by creating the appropriate cgroups in the cgroup filesystem. Consider for example, the following cgroup filesystem hierarchy - root + root / | \ - / | \ - a b c - | \ - | \ - d e + / | \ + a b c + | \ + | \ + d e In the diagram above, with hierarchical accounting enabled, all memory usage of e, is accounted to its ancestors up until the root (i.e, c and root), diff --git a/trunk/Documentation/devicetree/bindings/arm/pmu.txt b/trunk/Documentation/devicetree/bindings/arm/pmu.txt deleted file mode 100644 index 1c044eb320cc..000000000000 --- a/trunk/Documentation/devicetree/bindings/arm/pmu.txt +++ /dev/null @@ -1,21 +0,0 @@ -* ARM Performance Monitor Units - -ARM cores often have a PMU for counting cpu and cache events like cache misses -and hits. The interface to the PMU is part of the ARM ARM. The ARM PMU -representation in the device tree should be done as under:- - -Required properties: - -- compatible : should be one of - "arm,cortex-a9-pmu" - "arm,cortex-a8-pmu" - "arm,arm1176-pmu" - "arm,arm1136-pmu" -- interrupts : 1 combined interrupt or 1 per core. - -Example: - -pmu { - compatible = "arm,cortex-a9-pmu"; - interrupts = <100 101>; -}; diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 1a9446b59153..72e238465b0b 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -481,23 +481,6 @@ Who: FUJITA Tomonori ---------------------------- -What: namespace cgroup (ns_cgroup) -When: 2.6.38 -Why: The ns_cgroup leads to some problems: - * cgroup creation is out-of-control - * cgroup name can conflict when pids are looping - * it is not possible to have a single process handling - a lot of namespaces without falling in a exponential creation time - * we may want to create a namespace without creating a cgroup - - The ns_cgroup is replaced by a compatibility flag 'clone_children', - where a newly created cgroup will copy the parent cgroup values. - The userspace has to manually create a cgroup and add a task to - the 'tasks' file. -Who: Daniel Lezcano - ----------------------------- - What: iwlwifi disable_hw_scan module parameters When: 2.6.40 Why: Hareware scan is the prefer method for iwlwifi devices for diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index d9a203b058f1..fd248a318211 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -2598,6 +2598,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. unlock ejectable media); m = MAX_SECTORS_64 (don't transfer more than 64 sectors = 32 KB at a time); + n = INITIAL_READ10 (force a retry of the + initial READ(10) command); o = CAPACITY_OK (accept the capacity reported by the device); r = IGNORE_RESIDUE (the device reports diff --git a/trunk/Documentation/kmemleak.txt b/trunk/Documentation/kmemleak.txt index 090e6ee04536..51063e681ca4 100644 --- a/trunk/Documentation/kmemleak.txt +++ b/trunk/Documentation/kmemleak.txt @@ -11,7 +11,9 @@ with the difference that the orphan objects are not freed but only reported via /sys/kernel/debug/kmemleak. A similar method is used by the Valgrind tool (memcheck --leak-check) to detect the memory leaks in user-space applications. -Kmemleak is supported on x86, arm, powerpc, sparc, sh, microblaze and tile. + +Please check DEBUG_KMEMLEAK dependencies in lib/Kconfig.debug for supported +architectures. Usage ----- diff --git a/trunk/Documentation/md.txt b/trunk/Documentation/md.txt index 2366b1c8cf19..f0eee83ff78a 100644 --- a/trunk/Documentation/md.txt +++ b/trunk/Documentation/md.txt @@ -555,7 +555,7 @@ also have sync_min sync_max The two values, given as numbers of sectors, indicate a range - withing the array where 'check'/'repair' will operate. Must be + within the array where 'check'/'repair' will operate. Must be a multiple of chunk_size. When it reaches "sync_max" it will pause, rather than complete. You can use 'select' or 'poll' on "sync_completed" to wait for diff --git a/trunk/Documentation/printk-formats.txt b/trunk/Documentation/printk-formats.txt index 1b5a5ddbc3ef..5df176ed59b8 100644 --- a/trunk/Documentation/printk-formats.txt +++ b/trunk/Documentation/printk-formats.txt @@ -9,7 +9,121 @@ If variable is of Type, use printk format specifier: size_t %zu or %zx ssize_t %zd or %zx -Raw pointer value SHOULD be printed with %p. +Raw pointer value SHOULD be printed with %p. The kernel supports +the following extended format specifiers for pointer types: + +Symbols/Function Pointers: + + %pF versatile_init+0x0/0x110 + %pf versatile_init + %pS versatile_init+0x0/0x110 + %ps versatile_init + %pB prev_fn_of_versatile_init+0x88/0x88 + + For printing symbols and function pointers. The 'S' and 's' specifiers + result in the symbol name with ('S') or without ('s') offsets. Where + this is used on a kernel without KALLSYMS - the symbol address is + printed instead. + + The 'B' specifier results in the symbol name with offsets and should be + used when printing stack backtraces. The specifier takes into + consideration the effect of compiler optimisations which may occur + when tail-call's are used and marked with the noreturn GCC attribute. + + On ia64, ppc64 and parisc64 architectures function pointers are + actually function descriptors which must first be resolved. The 'F' and + 'f' specifiers perform this resolution and then provide the same + functionality as the 'S' and 's' specifiers. + +Kernel Pointers: + + %pK 0x01234567 or 0x0123456789abcdef + + For printing kernel pointers which should be hidden from unprivileged + users. The behaviour of %pK depends on the kptr_restrict sysctl - see + Documentation/sysctl/kernel.txt for more details. + +Struct Resources: + + %pr [mem 0x60000000-0x6fffffff flags 0x2200] or + [mem 0x0000000060000000-0x000000006fffffff flags 0x2200] + %pR [mem 0x60000000-0x6fffffff pref] or + [mem 0x0000000060000000-0x000000006fffffff pref] + + For printing struct resources. The 'R' and 'r' specifiers result in a + printed resource with ('R') or without ('r') a decoded flags member. + +MAC/FDDI addresses: + + %pM 00:01:02:03:04:05 + %pMF 00-01-02-03-04-05 + %pm 000102030405 + + For printing 6-byte MAC/FDDI addresses in hex notation. The 'M' and 'm' + specifiers result in a printed address with ('M') or without ('m') byte + separators. The default byte separator is the colon (':'). + + Where FDDI addresses are concerned the 'F' specifier can be used after + the 'M' specifier to use dash ('-') separators instead of the default + separator. + +IPv4 addresses: + + %pI4 1.2.3.4 + %pi4 001.002.003.004 + %p[Ii][hnbl] + + For printing IPv4 dot-separated decimal addresses. The 'I4' and 'i4' + specifiers result in a printed address with ('i4') or without ('I4') + leading zeros. + + The additional 'h', 'n', 'b', and 'l' specifiers are used to specify + host, network, big or little endian order addresses respectively. Where + no specifier is provided the default network/big endian order is used. + +IPv6 addresses: + + %pI6 0001:0002:0003:0004:0005:0006:0007:0008 + %pi6 00010002000300040005000600070008 + %pI6c 1:2:3:4:5:6:7:8 + + For printing IPv6 network-order 16-bit hex addresses. The 'I6' and 'i6' + specifiers result in a printed address with ('I6') or without ('i6') + colon-separators. Leading zeros are always used. + + The additional 'c' specifier can be used with the 'I' specifier to + print a compressed IPv6 address as described by + http://tools.ietf.org/html/rfc5952 + +UUID/GUID addresses: + + %pUb 00010203-0405-0607-0809-0a0b0c0d0e0f + %pUB 00010203-0405-0607-0809-0A0B0C0D0E0F + %pUl 03020100-0504-0706-0809-0a0b0c0e0e0f + %pUL 03020100-0504-0706-0809-0A0B0C0E0E0F + + For printing 16-byte UUID/GUIDs addresses. The additional 'l', 'L', + 'b' and 'B' specifiers are used to specify a little endian order in + lower ('l') or upper case ('L') hex characters - and big endian order + in lower ('b') or upper case ('B') hex characters. + + Where no additional specifiers are used the default little endian + order with lower case hex characters will be printed. + +struct va_format: + + %pV + + For printing struct va_format structures. These contain a format string + and va_list as follows: + + struct va_format { + const char *fmt; + va_list *va; + }; + + Do not use this feature without some mechanism to verify the + correctness of the format string and va_list arguments. u64 SHOULD be printed with %llu/%llx, (unsigned long long): @@ -32,4 +146,5 @@ Reminder: sizeof() result is of type size_t. Thank you for your cooperation and attention. -By Randy Dunlap +By Randy Dunlap and +Andrew Murray diff --git a/trunk/Documentation/scheduler/sched-design-CFS.txt b/trunk/Documentation/scheduler/sched-design-CFS.txt index 99961993257a..91ecff07cede 100644 --- a/trunk/Documentation/scheduler/sched-design-CFS.txt +++ b/trunk/Documentation/scheduler/sched-design-CFS.txt @@ -223,9 +223,10 @@ When CONFIG_FAIR_GROUP_SCHED is defined, a "cpu.shares" file is created for each group created using the pseudo filesystem. See example steps below to create task groups and modify their CPU share using the "cgroups" pseudo filesystem. - # mkdir /dev/cpuctl - # mount -t cgroup -ocpu none /dev/cpuctl - # cd /dev/cpuctl + # mount -t tmpfs cgroup_root /sys/fs/cgroup + # mkdir /sys/fs/cgroup/cpu + # mount -t cgroup -ocpu none /sys/fs/cgroup/cpu + # cd /sys/fs/cgroup/cpu # mkdir multimedia # create "multimedia" group of tasks # mkdir browser # create "browser" group of tasks diff --git a/trunk/Documentation/scheduler/sched-rt-group.txt b/trunk/Documentation/scheduler/sched-rt-group.txt index 605b0d40329d..71b54d549987 100644 --- a/trunk/Documentation/scheduler/sched-rt-group.txt +++ b/trunk/Documentation/scheduler/sched-rt-group.txt @@ -129,9 +129,8 @@ priority! Enabling CONFIG_RT_GROUP_SCHED lets you explicitly allocate real CPU bandwidth to task groups. -This uses the /cgroup virtual file system and -"/cgroup//cpu.rt_runtime_us" to control the CPU time reserved for each -control group. +This uses the cgroup virtual file system and "/cpu.rt_runtime_us" +to control the CPU time reserved for each control group. For more information on working with control groups, you should read Documentation/cgroups/cgroups.txt as well. @@ -150,7 +149,7 @@ For now, this can be simplified to just the following (but see Future plans): =============== There is work in progress to make the scheduling period for each group -("/cgroup//cpu.rt_period_us") configurable as well. +("/cpu.rt_period_us") configurable as well. The constraint on the period is that a subgroup must have a smaller or equal period to its parent. But realistically its not very useful _yet_ diff --git a/trunk/Documentation/vm/hwpoison.txt b/trunk/Documentation/vm/hwpoison.txt index 12f9ba20ccb7..550068466605 100644 --- a/trunk/Documentation/vm/hwpoison.txt +++ b/trunk/Documentation/vm/hwpoison.txt @@ -129,12 +129,12 @@ Limit injection to pages owned by memgroup. Specified by inode number of the memcg. Example: - mkdir /cgroup/hwpoison + mkdir /sys/fs/cgroup/mem/hwpoison usemem -m 100 -s 1000 & - echo `jobs -p` > /cgroup/hwpoison/tasks + echo `jobs -p` > /sys/fs/cgroup/mem/hwpoison/tasks - memcg_ino=$(ls -id /cgroup/hwpoison | cut -f1 -d' ') + memcg_ino=$(ls -id /sys/fs/cgroup/mem/hwpoison | cut -f1 -d' ') echo $memcg_ino > /debug/hwpoison/corrupt-filter-memcg page-types -p `pidof init` --hwpoison # shall do nothing diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 29801f760b6f..6c59eb90fdf4 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1739,7 +1739,7 @@ S: Supported F: drivers/net/enic/ CIRRUS LOGIC EP93XX ETHERNET DRIVER -M: Lennert Buytenhek +M: Hartley Sweeten L: netdev@vger.kernel.org S: Maintained F: drivers/net/arm/ep93xx_eth.c @@ -1889,7 +1889,6 @@ L: cpufreq@vger.kernel.org W: http://www.codemonkey.org.uk/projects/cpufreq/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git S: Maintained -F: arch/x86/kernel/cpu/cpufreq/ F: drivers/cpufreq/ F: include/linux/cpufreq.h @@ -3820,6 +3819,12 @@ S: Maintained F: drivers/leds/ F: include/linux/leds.h +LEGACY EEPROM DRIVER +M: Jean Delvare +S: Maintained +F: Documentation/misc-devices/eeprom +F: drivers/misc/eeprom/eeprom.c + LEGO USB Tower driver M: Juergen Stuber L: legousb-devel@lists.sourceforge.net @@ -4145,7 +4150,7 @@ F: include/linux/mm.h F: mm/ MEMORY RESOURCE CONTROLLER -M: Balbir Singh +M: Balbir Singh M: Daisuke Nishimura M: KAMEZAWA Hiroyuki L: linux-mm@kvack.org @@ -4252,8 +4257,7 @@ F: drivers/mmc/ F: include/linux/mmc/ MULTIMEDIA CARD (MMC) ETC. OVER SPI -M: David Brownell -S: Odd Fixes +S: Orphan F: drivers/mmc/host/mmc_spi.c F: include/linux/spi/mmc_spi.h @@ -4603,7 +4607,6 @@ F: drivers/media/video/omap3isp/* OMAP USB SUPPORT M: Felipe Balbi -M: David Brownell L: linux-usb@vger.kernel.org L: linux-omap@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git @@ -4892,7 +4895,7 @@ F: mm/percpu*.c F: arch/*/include/asm/percpu.h PER-TASK DELAY ACCOUNTING -M: Balbir Singh +M: Balbir Singh S: Maintained F: include/linux/delayacct.h F: kernel/delayacct.c @@ -4947,6 +4950,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/epip/linux-2.6-unicore32.gi F: drivers/input/serio/i8042-unicore32io.h F: drivers/i2c/busses/i2c-puv3.c F: drivers/video/fb-puv3.c +F: drivers/rtc/rtc-puv3.c PMC SIERRA MaxRAID DRIVER M: Anil Ravindranath @@ -5984,7 +5988,6 @@ F: Documentation/serial/specialix.txt F: drivers/staging/tty/specialix* SPI SUBSYSTEM -M: David Brownell M: Grant Likely L: spi-devel-general@lists.sourceforge.net Q: http://patchwork.kernel.org/project/spi-devel-general/list/ @@ -6100,7 +6103,7 @@ F: include/target/ F: Documentation/target/ TASKSTATS STATISTICS INTERFACE -M: Balbir Singh +M: Balbir Singh S: Maintained F: Documentation/accounting/taskstats* F: include/linux/taskstats* @@ -6432,9 +6435,8 @@ S: Maintained F: drivers/usb/misc/rio500* USB EHCI DRIVER -M: David Brownell L: linux-usb@vger.kernel.org -S: Odd Fixes +S: Orphan F: Documentation/usb/ehci.txt F: drivers/usb/host/ehci* @@ -6448,9 +6450,10 @@ S: Maintained F: drivers/media/video/et61x251/ USB GADGET/PERIPHERAL SUBSYSTEM -M: David Brownell +M: Felipe Balbi L: linux-usb@vger.kernel.org W: http://www.linux-usb.org/gadget +T: git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git S: Maintained F: drivers/usb/gadget/ F: include/linux/usb/gadget* @@ -6492,9 +6495,8 @@ S: Maintained F: sound/usb/midi.* USB OHCI DRIVER -M: David Brownell L: linux-usb@vger.kernel.org -S: Odd Fixes +S: Orphan F: Documentation/usb/ohci.txt F: drivers/usb/host/ohci* @@ -6720,6 +6722,14 @@ S: Maintained F: Documentation/filesystems/vfat.txt F: fs/fat/ +VIDEOBUF2 FRAMEWORK +M: Pawel Osciak +M: Marek Szyprowski +L: linux-media@vger.kernel.org +S: Maintained +F: drivers/media/video/videobuf2-* +F: include/media/videobuf2-* + VIRTIO CONSOLE DRIVER M: Amit Shah L: virtualization@lists.linux-foundation.org diff --git a/trunk/Makefile b/trunk/Makefile index afb8e0d26f2c..0499c2ee8541 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 0 SUBLEVEL = 0 -EXTRAVERSION = -rc1 +EXTRAVERSION = -rc3 NAME = Sneaky Weasel # *DOCUMENTATION* @@ -378,7 +378,7 @@ KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds # Read KERNELRELEASE from include/config/kernel.release (if it exists) KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) -KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) +KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION) export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC @@ -1005,7 +1005,7 @@ endef define filechk_version.h (echo \#define LINUX_VERSION_CODE $(shell \ - expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \ + expr $(VERSION) \* 65536 + 0$(PATCHLEVEL) \* 256 + 0$(SUBLEVEL)); \ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) endef @@ -1110,11 +1110,6 @@ modules_install: _modinst_ _modinst_post PHONY += _modinst_ _modinst_: - @if [ -z "`$(DEPMOD) -V 2>/dev/null | grep module-init-tools`" ]; then \ - echo "Warning: you may need to install module-init-tools"; \ - echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt";\ - sleep 1; \ - fi @rm -rf $(MODLIB)/kernel @rm -f $(MODLIB)/source @mkdir -p $(MODLIB)/kernel @@ -1531,12 +1526,8 @@ quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files)) # Run depmod only if we have System.map and depmod is executable quiet_cmd_depmod = DEPMOD $(KERNELRELEASE) - cmd_depmod = \ - if [ -r System.map -a -x $(DEPMOD) ]; then \ - $(DEPMOD) -ae -F System.map \ - $(if $(strip $(INSTALL_MOD_PATH)), -b $(INSTALL_MOD_PATH) ) \ - $(KERNELRELEASE); \ - fi + cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \ + $(KERNELRELEASE) # Create temporary dir for module support files # clean it up only when building all modules diff --git a/trunk/arch/alpha/kernel/osf_sys.c b/trunk/arch/alpha/kernel/osf_sys.c index 376f22130791..326f0a2d56e5 100644 --- a/trunk/arch/alpha/kernel/osf_sys.c +++ b/trunk/arch/alpha/kernel/osf_sys.c @@ -409,7 +409,7 @@ SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen) return -EFAULT; len = namelen; - if (namelen > 32) + if (len > 32) len = 32; down_read(&uts_sem); @@ -594,7 +594,7 @@ SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, buf, long, count) down_read(&uts_sem); res = sysinfo_table[offset]; len = strlen(res)+1; - if (len > count) + if ((unsigned long)len > (unsigned long)count) len = count; if (copy_to_user(buf, res, len)) err = -EFAULT; @@ -649,7 +649,7 @@ SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void __user *, buffer, return 1; case GSI_GET_HWRPB: - if (nbytes < sizeof(*hwrpb)) + if (nbytes > sizeof(*hwrpb)) return -EINVAL; if (copy_to_user(buffer, hwrpb, nbytes) != 0) return -EFAULT; @@ -1008,6 +1008,7 @@ SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options, { struct rusage r; long ret, err; + unsigned int status = 0; mm_segment_t old_fs; if (!ur) @@ -1016,13 +1017,15 @@ SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options, old_fs = get_fs(); set_fs (KERNEL_DS); - ret = sys_wait4(pid, ustatus, options, (struct rusage __user *) &r); + ret = sys_wait4(pid, (unsigned int __user *) &status, options, + (struct rusage __user *) &r); set_fs (old_fs); if (!access_ok(VERIFY_WRITE, ur, sizeof(*ur))) return -EFAULT; err = 0; + err |= put_user(status, ustatus); err |= __put_user(r.ru_utime.tv_sec, &ur->ru_utime.tv_sec); err |= __put_user(r.ru_utime.tv_usec, &ur->ru_utime.tv_usec); err |= __put_user(r.ru_stime.tv_sec, &ur->ru_stime.tv_sec); diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 84fda2bebd7a..9adc278a22ab 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -37,9 +37,6 @@ config ARM Europe. There is an ARM Linux project with a web page at . -config ARM_HAS_SG_CHAIN - bool - config HAVE_PWM bool @@ -1349,6 +1346,7 @@ config SMP_ON_UP config HAVE_ARM_SCU bool + depends on SMP help This option enables support for the ARM system coherency unit @@ -1717,34 +1715,17 @@ config ZBOOT_ROM Say Y here if you intend to execute your compressed kernel image (zImage) directly from ROM or flash. If unsure, say N. -choice - prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)" - depends on ZBOOT_ROM && ARCH_SH7372 && EXPERIMENTAL - default ZBOOT_ROM_NONE - help - Include experimental SD/MMC loading code in the ROM-able zImage. - With this enabled it is possible to write the the ROM-able zImage - kernel image to an MMC or SD card and boot the kernel straight - from the reset vector. At reset the processor Mask ROM will load - the first part of the the ROM-able zImage which in turn loads the - rest the kernel image to RAM. - -config ZBOOT_ROM_NONE - bool "No SD/MMC loader in zImage (EXPERIMENTAL)" - help - Do not load image from SD or MMC - config ZBOOT_ROM_MMCIF bool "Include MMCIF loader in zImage (EXPERIMENTAL)" + depends on ZBOOT_ROM && ARCH_SH7372 && EXPERIMENTAL help - Load image from MMCIF hardware block. - -config ZBOOT_ROM_SH_MOBILE_SDHI - bool "Include SuperH Mobile SDHI loader in zImage (EXPERIMENTAL)" - help - Load image from SDHI hardware block - -endchoice + Say Y here to include experimental MMCIF loading code in the + ROM-able zImage. With this enabled it is possible to write the + the ROM-able zImage kernel image to an MMC card and boot the + kernel straight from the reset vector. At reset the processor + Mask ROM will load the first part of the the ROM-able zImage + which in turn loads the rest the kernel image to RAM using the + MMCIF hardware block. config CMDLINE string "Default kernel command string" diff --git a/trunk/arch/arm/boot/compressed/Makefile b/trunk/arch/arm/boot/compressed/Makefile index 0c74a6fab952..23aad0722303 100644 --- a/trunk/arch/arm/boot/compressed/Makefile +++ b/trunk/arch/arm/boot/compressed/Makefile @@ -6,19 +6,13 @@ OBJS = -# Ensure that MMCIF loader code appears early in the image +# Ensure that mmcif loader code appears early in the image # to minimise that number of bocks that have to be read in # order to load it. ifeq ($(CONFIG_ZBOOT_ROM_MMCIF),y) +ifeq ($(CONFIG_ARCH_SH7372),y) OBJS += mmcif-sh7372.o endif - -# Ensure that SDHI loader code appears early in the image -# to minimise that number of bocks that have to be read in -# order to load it. -ifeq ($(CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI),y) -OBJS += sdhi-shmobile.o -OBJS += sdhi-sh7372.o endif AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET) diff --git a/trunk/arch/arm/boot/compressed/head-shmobile.S b/trunk/arch/arm/boot/compressed/head-shmobile.S index fe3719b516fd..c943d2e7da9d 100644 --- a/trunk/arch/arm/boot/compressed/head-shmobile.S +++ b/trunk/arch/arm/boot/compressed/head-shmobile.S @@ -25,14 +25,14 @@ /* load board-specific initialization code */ #include -#if defined(CONFIG_ZBOOT_ROM_MMCIF) || defined(CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI) - /* Load image from MMC/SD */ - adr sp, __tmp_stack + 256 +#ifdef CONFIG_ZBOOT_ROM_MMCIF + /* Load image from MMC */ + adr sp, __tmp_stack + 128 ldr r0, __image_start ldr r1, __image_end subs r1, r1, r0 ldr r0, __load_base - bl mmc_loader + bl mmcif_loader /* Jump to loaded code */ ldr r0, __loaded @@ -51,9 +51,9 @@ __loaded: .long __continue .align __tmp_stack: - .space 256 + .space 128 __continue: -#endif /* CONFIG_ZBOOT_ROM_MMC || CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI */ +#endif /* CONFIG_ZBOOT_ROM_MMCIF */ b 1f __atags:@ tag #1 diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 51af7091d84d..942fad97e447 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -353,8 +353,7 @@ not_relocated: mov r0, #0 mov r0, #0 @ must be zero mov r1, r7 @ restore architecture number mov r2, r8 @ restore atags pointer - ARM( mov pc, r4 ) @ call kernel - THUMB( bx r4 ) @ entry point is always ARM + mov pc, r4 @ call kernel .align 2 .type LC0, #object @@ -692,9 +691,9 @@ proc_types: .word 0x41069260 @ ARM926EJ-S (v5TEJ) .word 0xff0ffff0 - b __arm926ejs_mmu_cache_on - b __armv4_mmu_cache_off - b __armv5tej_mmu_cache_flush + W(b) __arm926ejs_mmu_cache_on + W(b) __armv4_mmu_cache_off + W(b) __armv5tej_mmu_cache_flush .word 0x00007000 @ ARM7 IDs .word 0x0000f000 diff --git a/trunk/arch/arm/boot/compressed/mmcif-sh7372.c b/trunk/arch/arm/boot/compressed/mmcif-sh7372.c index b6f61d9a5a1b..7453c8337b83 100644 --- a/trunk/arch/arm/boot/compressed/mmcif-sh7372.c +++ b/trunk/arch/arm/boot/compressed/mmcif-sh7372.c @@ -40,7 +40,7 @@ * to an MMC card * # dd if=vrl4.out of=/dev/sdx bs=512 seek=1 */ -asmlinkage void mmc_loader(unsigned char *buf, unsigned long len) +asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) { mmc_init_progress(); mmc_update_progress(MMC_PROGRESS_ENTER); diff --git a/trunk/arch/arm/boot/compressed/sdhi-sh7372.c b/trunk/arch/arm/boot/compressed/sdhi-sh7372.c deleted file mode 100644 index d403a8b24d7f..000000000000 --- a/trunk/arch/arm/boot/compressed/sdhi-sh7372.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * SuperH Mobile SDHI - * - * Copyright (C) 2010 Magnus Damm - * Copyright (C) 2010 Kuninori Morimoto - * Copyright (C) 2010 Simon Horman - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. - * - * Parts inspired by u-boot - */ - -#include -#include -#include -#include - -#include "sdhi-shmobile.h" - -#define PORT179CR 0xe60520b3 -#define PORT180CR 0xe60520b4 -#define PORT181CR 0xe60520b5 -#define PORT182CR 0xe60520b6 -#define PORT183CR 0xe60520b7 -#define PORT184CR 0xe60520b8 - -#define SMSTPCR3 0xe615013c - -#define CR_INPUT_ENABLE 0x10 -#define CR_FUNCTION1 0x01 - -#define SDHI1_BASE (void __iomem *)0xe6860000 -#define SDHI_BASE SDHI1_BASE - -/* SuperH Mobile SDHI loader - * - * loads the zImage from an SD card starting from block 0 - * on physical partition 1 - * - * The image must be start with a vrl4 header and - * the zImage must start at offset 512 of the image. That is, - * at block 1 (=byte 512) of physical partition 1 - * - * Use the following line to write the vrl4 formated zImage - * to an SD card - * # dd if=vrl4.out of=/dev/sdx bs=512 - */ -asmlinkage void mmc_loader(unsigned short *buf, unsigned long len) -{ - int high_capacity; - - mmc_init_progress(); - - mmc_update_progress(MMC_PROGRESS_ENTER); - /* Initialise SDHI1 */ - /* PORT184CR: GPIO_FN_SDHICMD1 Control */ - __raw_writeb(CR_FUNCTION1, PORT184CR); - /* PORT179CR: GPIO_FN_SDHICLK1 Control */ - __raw_writeb(CR_INPUT_ENABLE|CR_FUNCTION1, PORT179CR); - /* PORT181CR: GPIO_FN_SDHID1_3 Control */ - __raw_writeb(CR_FUNCTION1, PORT183CR); - /* PORT182CR: GPIO_FN_SDHID1_2 Control */ - __raw_writeb(CR_FUNCTION1, PORT182CR); - /* PORT183CR: GPIO_FN_SDHID1_1 Control */ - __raw_writeb(CR_FUNCTION1, PORT181CR); - /* PORT180CR: GPIO_FN_SDHID1_0 Control */ - __raw_writeb(CR_FUNCTION1, PORT180CR); - - /* Enable clock to SDHI1 hardware block */ - __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 13), SMSTPCR3); - - /* setup SDHI hardware */ - mmc_update_progress(MMC_PROGRESS_INIT); - high_capacity = sdhi_boot_init(SDHI_BASE); - if (high_capacity < 0) - goto err; - - mmc_update_progress(MMC_PROGRESS_LOAD); - /* load kernel */ - if (sdhi_boot_do_read(SDHI_BASE, high_capacity, - 0, /* Kernel is at block 1 */ - (len + TMIO_BBS - 1) / TMIO_BBS, buf)) - goto err; - - /* Disable clock to SDHI1 hardware block */ - __raw_writel(__raw_readl(SMSTPCR3) & (1 << 13), SMSTPCR3); - - mmc_update_progress(MMC_PROGRESS_DONE); - - return; -err: - for(;;); -} diff --git a/trunk/arch/arm/boot/compressed/sdhi-shmobile.c b/trunk/arch/arm/boot/compressed/sdhi-shmobile.c deleted file mode 100644 index bd3d46980955..000000000000 --- a/trunk/arch/arm/boot/compressed/sdhi-shmobile.c +++ /dev/null @@ -1,449 +0,0 @@ -/* - * SuperH Mobile SDHI - * - * Copyright (C) 2010 Magnus Damm - * Copyright (C) 2010 Kuninori Morimoto - * Copyright (C) 2010 Simon Horman - * - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file "COPYING" in the main directory of this archive - * for more details. - * - * Parts inspired by u-boot - */ - -#include -#include -#include -#include -#include -#include -#include - -#define OCR_FASTBOOT (1<<29) -#define OCR_HCS (1<<30) -#define OCR_BUSY (1<<31) - -#define RESP_CMD12 0x00000030 - -static inline u16 sd_ctrl_read16(void __iomem *base, int addr) -{ - return __raw_readw(base + addr); -} - -static inline u32 sd_ctrl_read32(void __iomem *base, int addr) -{ - return __raw_readw(base + addr) | - __raw_readw(base + addr + 2) << 16; -} - -static inline void sd_ctrl_write16(void __iomem *base, int addr, u16 val) -{ - __raw_writew(val, base + addr); -} - -static inline void sd_ctrl_write32(void __iomem *base, int addr, u32 val) -{ - __raw_writew(val, base + addr); - __raw_writew(val >> 16, base + addr + 2); -} - -#define ALL_ERROR (TMIO_STAT_CMD_IDX_ERR | TMIO_STAT_CRCFAIL | \ - TMIO_STAT_STOPBIT_ERR | TMIO_STAT_DATATIMEOUT | \ - TMIO_STAT_RXOVERFLOW | TMIO_STAT_TXUNDERRUN | \ - TMIO_STAT_CMDTIMEOUT | TMIO_STAT_ILL_ACCESS | \ - TMIO_STAT_ILL_FUNC) - -static int sdhi_intr(void __iomem *base) -{ - unsigned long state = sd_ctrl_read32(base, CTL_STATUS); - - if (state & ALL_ERROR) { - sd_ctrl_write32(base, CTL_STATUS, ~ALL_ERROR); - sd_ctrl_write32(base, CTL_IRQ_MASK, - ALL_ERROR | - sd_ctrl_read32(base, CTL_IRQ_MASK)); - return -EINVAL; - } - if (state & TMIO_STAT_CMDRESPEND) { - sd_ctrl_write32(base, CTL_STATUS, ~TMIO_STAT_CMDRESPEND); - sd_ctrl_write32(base, CTL_IRQ_MASK, - TMIO_STAT_CMDRESPEND | - sd_ctrl_read32(base, CTL_IRQ_MASK)); - return 0; - } - if (state & TMIO_STAT_RXRDY) { - sd_ctrl_write32(base, CTL_STATUS, ~TMIO_STAT_RXRDY); - sd_ctrl_write32(base, CTL_IRQ_MASK, - TMIO_STAT_RXRDY | TMIO_STAT_TXUNDERRUN | - sd_ctrl_read32(base, CTL_IRQ_MASK)); - return 0; - } - if (state & TMIO_STAT_DATAEND) { - sd_ctrl_write32(base, CTL_STATUS, ~TMIO_STAT_DATAEND); - sd_ctrl_write32(base, CTL_IRQ_MASK, - TMIO_STAT_DATAEND | - sd_ctrl_read32(base, CTL_IRQ_MASK)); - return 0; - } - - return -EAGAIN; -} - -static int sdhi_boot_wait_resp_end(void __iomem *base) -{ - int err = -EAGAIN, timeout = 10000000; - - while (timeout--) { - err = sdhi_intr(base); - if (err != -EAGAIN) - break; - udelay(1); - } - - return err; -} - -/* SDHI_CLK_CTRL */ -#define CLK_MMC_ENABLE (1 << 8) -#define CLK_MMC_INIT (1 << 6) /* clk / 256 */ - -static void sdhi_boot_mmc_clk_stop(void __iomem *base) -{ - sd_ctrl_write16(base, CTL_CLK_AND_WAIT_CTL, 0x0000); - msleep(10); - sd_ctrl_write16(base, CTL_SD_CARD_CLK_CTL, ~CLK_MMC_ENABLE & - sd_ctrl_read16(base, CTL_SD_CARD_CLK_CTL)); - msleep(10); -} - -static void sdhi_boot_mmc_clk_start(void __iomem *base) -{ - sd_ctrl_write16(base, CTL_SD_CARD_CLK_CTL, CLK_MMC_ENABLE | - sd_ctrl_read16(base, CTL_SD_CARD_CLK_CTL)); - msleep(10); - sd_ctrl_write16(base, CTL_CLK_AND_WAIT_CTL, CLK_MMC_ENABLE); - msleep(10); -} - -static void sdhi_boot_reset(void __iomem *base) -{ - sd_ctrl_write16(base, CTL_RESET_SD, 0x0000); - msleep(10); - sd_ctrl_write16(base, CTL_RESET_SD, 0x0001); - msleep(10); -} - -/* Set MMC clock / power. - * Note: This controller uses a simple divider scheme therefore it cannot - * run a MMC card at full speed (20MHz). The max clock is 24MHz on SD, but as - * MMC wont run that fast, it has to be clocked at 12MHz which is the next - * slowest setting. - */ -static int sdhi_boot_mmc_set_ios(void __iomem *base, struct mmc_ios *ios) -{ - if (sd_ctrl_read32(base, CTL_STATUS) & TMIO_STAT_CMD_BUSY) - return -EBUSY; - - if (ios->clock) - sd_ctrl_write16(base, CTL_SD_CARD_CLK_CTL, - ios->clock | CLK_MMC_ENABLE); - - /* Power sequence - OFF -> ON -> UP */ - switch (ios->power_mode) { - case MMC_POWER_OFF: /* power down SD bus */ - sdhi_boot_mmc_clk_stop(base); - break; - case MMC_POWER_ON: /* power up SD bus */ - break; - case MMC_POWER_UP: /* start bus clock */ - sdhi_boot_mmc_clk_start(base); - break; - } - - switch (ios->bus_width) { - case MMC_BUS_WIDTH_1: - sd_ctrl_write16(base, CTL_SD_MEM_CARD_OPT, 0x80e0); - break; - case MMC_BUS_WIDTH_4: - sd_ctrl_write16(base, CTL_SD_MEM_CARD_OPT, 0x00e0); - break; - } - - /* Let things settle. delay taken from winCE driver */ - udelay(140); - - return 0; -} - -/* These are the bitmasks the tmio chip requires to implement the MMC response - * types. Note that R1 and R6 are the same in this scheme. */ -#define RESP_NONE 0x0300 -#define RESP_R1 0x0400 -#define RESP_R1B 0x0500 -#define RESP_R2 0x0600 -#define RESP_R3 0x0700 -#define DATA_PRESENT 0x0800 -#define TRANSFER_READ 0x1000 - -static int sdhi_boot_request(void __iomem *base, struct mmc_command *cmd) -{ - int err, c = cmd->opcode; - - switch (mmc_resp_type(cmd)) { - case MMC_RSP_NONE: c |= RESP_NONE; break; - case MMC_RSP_R1: c |= RESP_R1; break; - case MMC_RSP_R1B: c |= RESP_R1B; break; - case MMC_RSP_R2: c |= RESP_R2; break; - case MMC_RSP_R3: c |= RESP_R3; break; - default: - return -EINVAL; - } - - /* No interrupts so this may not be cleared */ - sd_ctrl_write32(base, CTL_STATUS, ~TMIO_STAT_CMDRESPEND); - - sd_ctrl_write32(base, CTL_IRQ_MASK, TMIO_STAT_CMDRESPEND | - sd_ctrl_read32(base, CTL_IRQ_MASK)); - sd_ctrl_write32(base, CTL_ARG_REG, cmd->arg); - sd_ctrl_write16(base, CTL_SD_CMD, c); - - - sd_ctrl_write32(base, CTL_IRQ_MASK, - ~(TMIO_STAT_CMDRESPEND | ALL_ERROR) & - sd_ctrl_read32(base, CTL_IRQ_MASK)); - - err = sdhi_boot_wait_resp_end(base); - if (err) - return err; - - cmd->resp[0] = sd_ctrl_read32(base, CTL_RESPONSE); - - return 0; -} - -static int sdhi_boot_do_read_single(void __iomem *base, int high_capacity, - unsigned long block, unsigned short *buf) -{ - int err, i; - - /* CMD17 - Read */ - { - struct mmc_command cmd; - - cmd.opcode = MMC_READ_SINGLE_BLOCK | \ - TRANSFER_READ | DATA_PRESENT; - if (high_capacity) - cmd.arg = block; - else - cmd.arg = block * TMIO_BBS; - cmd.flags = MMC_RSP_R1; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - } - - sd_ctrl_write32(base, CTL_IRQ_MASK, - ~(TMIO_STAT_DATAEND | TMIO_STAT_RXRDY | - TMIO_STAT_TXUNDERRUN) & - sd_ctrl_read32(base, CTL_IRQ_MASK)); - err = sdhi_boot_wait_resp_end(base); - if (err) - return err; - - sd_ctrl_write16(base, CTL_SD_XFER_LEN, TMIO_BBS); - for (i = 0; i < TMIO_BBS / sizeof(*buf); i++) - *buf++ = sd_ctrl_read16(base, RESP_CMD12); - - err = sdhi_boot_wait_resp_end(base); - if (err) - return err; - - return 0; -} - -int sdhi_boot_do_read(void __iomem *base, int high_capacity, - unsigned long offset, unsigned short count, - unsigned short *buf) -{ - unsigned long i; - int err = 0; - - for (i = 0; i < count; i++) { - err = sdhi_boot_do_read_single(base, high_capacity, offset + i, - buf + (i * TMIO_BBS / - sizeof(*buf))); - if (err) - return err; - } - - return 0; -} - -#define VOLTAGES (MMC_VDD_32_33 | MMC_VDD_33_34) - -int sdhi_boot_init(void __iomem *base) -{ - bool sd_v2 = false, sd_v1_0 = false; - unsigned short cid; - int err, high_capacity = 0; - - sdhi_boot_mmc_clk_stop(base); - sdhi_boot_reset(base); - - /* mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0 */ - { - struct mmc_ios ios; - ios.power_mode = MMC_POWER_ON; - ios.bus_width = MMC_BUS_WIDTH_1; - ios.clock = CLK_MMC_INIT; - err = sdhi_boot_mmc_set_ios(base, &ios); - if (err) - return err; - } - - /* CMD0 */ - { - struct mmc_command cmd; - msleep(1); - cmd.opcode = MMC_GO_IDLE_STATE; - cmd.arg = 0; - cmd.flags = MMC_RSP_NONE; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - msleep(2); - } - - /* CMD8 - Test for SD version 2 */ - { - struct mmc_command cmd; - cmd.opcode = SD_SEND_IF_COND; - cmd.arg = (VOLTAGES != 0) << 8 | 0xaa; - cmd.flags = MMC_RSP_R1; - err = sdhi_boot_request(base, &cmd); /* Ignore error */ - if ((cmd.resp[0] & 0xff) == 0xaa) - sd_v2 = true; - } - - /* CMD55 - Get OCR (SD) */ - { - int timeout = 1000; - struct mmc_command cmd; - - cmd.arg = 0; - - do { - cmd.opcode = MMC_APP_CMD; - cmd.flags = MMC_RSP_R1; - cmd.arg = 0; - err = sdhi_boot_request(base, &cmd); - if (err) - break; - - cmd.opcode = SD_APP_OP_COND; - cmd.flags = MMC_RSP_R3; - cmd.arg = (VOLTAGES & 0xff8000); - if (sd_v2) - cmd.arg |= OCR_HCS; - cmd.arg |= OCR_FASTBOOT; - err = sdhi_boot_request(base, &cmd); - if (err) - break; - - msleep(1); - } while((!(cmd.resp[0] & OCR_BUSY)) && --timeout); - - if (!err && timeout) { - if (!sd_v2) - sd_v1_0 = true; - high_capacity = (cmd.resp[0] & OCR_HCS) == OCR_HCS; - } - } - - /* CMD1 - Get OCR (MMC) */ - if (!sd_v2 && !sd_v1_0) { - int timeout = 1000; - struct mmc_command cmd; - - do { - cmd.opcode = MMC_SEND_OP_COND; - cmd.arg = VOLTAGES | OCR_HCS; - cmd.flags = MMC_RSP_R3; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - - msleep(1); - } while((!(cmd.resp[0] & OCR_BUSY)) && --timeout); - - if (!timeout) - return -EAGAIN; - - high_capacity = (cmd.resp[0] & OCR_HCS) == OCR_HCS; - } - - /* CMD2 - Get CID */ - { - struct mmc_command cmd; - cmd.opcode = MMC_ALL_SEND_CID; - cmd.arg = 0; - cmd.flags = MMC_RSP_R2; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - } - - /* CMD3 - * MMC: Set the relative address - * SD: Get the relative address - * Also puts the card into the standby state - */ - { - struct mmc_command cmd; - cmd.opcode = MMC_SET_RELATIVE_ADDR; - cmd.arg = 0; - cmd.flags = MMC_RSP_R1; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - cid = cmd.resp[0] >> 16; - } - - /* CMD9 - Get CSD */ - { - struct mmc_command cmd; - cmd.opcode = MMC_SEND_CSD; - cmd.arg = cid << 16; - cmd.flags = MMC_RSP_R2; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - } - - /* CMD7 - Select the card */ - { - struct mmc_command cmd; - cmd.opcode = MMC_SELECT_CARD; - //cmd.arg = rca << 16; - cmd.arg = cid << 16; - //cmd.flags = MMC_RSP_R1B; - cmd.flags = MMC_RSP_R1; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - } - - /* CMD16 - Set the block size */ - { - struct mmc_command cmd; - cmd.opcode = MMC_SET_BLOCKLEN; - cmd.arg = TMIO_BBS; - cmd.flags = MMC_RSP_R1; - err = sdhi_boot_request(base, &cmd); - if (err) - return err; - } - - return high_capacity; -} diff --git a/trunk/arch/arm/boot/compressed/sdhi-shmobile.h b/trunk/arch/arm/boot/compressed/sdhi-shmobile.h deleted file mode 100644 index 92eaa09f985e..000000000000 --- a/trunk/arch/arm/boot/compressed/sdhi-shmobile.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef SDHI_MOBILE_H -#define SDHI_MOBILE_H - -#include - -int sdhi_boot_do_read(void __iomem *base, int high_capacity, - unsigned long offset, unsigned short count, - unsigned short *buf); -int sdhi_boot_init(void __iomem *base); - -#endif diff --git a/trunk/arch/arm/configs/davinci_all_defconfig b/trunk/arch/arm/configs/davinci_all_defconfig index 889922ad229c..67b5abb6f857 100644 --- a/trunk/arch/arm/configs/davinci_all_defconfig +++ b/trunk/arch/arm/configs/davinci_all_defconfig @@ -157,7 +157,7 @@ CONFIG_LEDS_GPIO=m CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y CONFIG_XFS_FS=m diff --git a/trunk/arch/arm/configs/netx_defconfig b/trunk/arch/arm/configs/netx_defconfig index 316af5479d90..9c0ad7993986 100644 --- a/trunk/arch/arm/configs/netx_defconfig +++ b/trunk/arch/arm/configs/netx_defconfig @@ -60,7 +60,7 @@ CONFIG_FB_ARMCLCD=y # CONFIG_VGA_CONSOLE is not set CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_LOGO=y -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y CONFIG_INOTIFY=y CONFIG_TMPFS=y CONFIG_JFFS2_FS=y diff --git a/trunk/arch/arm/configs/viper_defconfig b/trunk/arch/arm/configs/viper_defconfig index 8b0c717378fa..1d01ddd33122 100644 --- a/trunk/arch/arm/configs/viper_defconfig +++ b/trunk/arch/arm/configs/viper_defconfig @@ -142,7 +142,7 @@ CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m CONFIG_USB_G_SERIAL=m CONFIG_USB_G_PRINTER=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_SA1100=m CONFIG_EXT2_FS=m diff --git a/trunk/arch/arm/configs/xcep_defconfig b/trunk/arch/arm/configs/xcep_defconfig index 5b5504143647..721832ffe2d7 100644 --- a/trunk/arch/arm/configs/xcep_defconfig +++ b/trunk/arch/arm/configs/xcep_defconfig @@ -73,7 +73,7 @@ CONFIG_SENSORS_MAX6650=m # CONFIG_VGA_CONSOLE is not set # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_SA1100=m CONFIG_DMADEVICES=y # CONFIG_DNOTIFY is not set diff --git a/trunk/arch/arm/configs/zeus_defconfig b/trunk/arch/arm/configs/zeus_defconfig index 960f65514d88..59577ad3f4ef 100644 --- a/trunk/arch/arm/configs/zeus_defconfig +++ b/trunk/arch/arm/configs/zeus_defconfig @@ -158,7 +158,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m CONFIG_LEDS_TRIGGER_GPIO=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_PXA=m CONFIG_EXT2_FS=y diff --git a/trunk/arch/arm/include/asm/bitops.h b/trunk/arch/arm/include/asm/bitops.h index f4280593dfa3..b4892a06442c 100644 --- a/trunk/arch/arm/include/asm/bitops.h +++ b/trunk/arch/arm/include/asm/bitops.h @@ -26,8 +26,8 @@ #include #include -#define smp_mb__before_clear_bit() smp_mb() -#define smp_mb__after_clear_bit() smp_mb() +#define smp_mb__before_clear_bit() mb() +#define smp_mb__after_clear_bit() mb() /* * These functions are the basis of our bit ops. diff --git a/trunk/arch/arm/include/asm/pmu.h b/trunk/arch/arm/include/asm/pmu.h index 67c70a31a1be..7544ce6b481a 100644 --- a/trunk/arch/arm/include/asm/pmu.h +++ b/trunk/arch/arm/include/asm/pmu.h @@ -52,7 +52,7 @@ reserve_pmu(enum arm_pmu_type device); * a cookie. */ extern int -release_pmu(enum arm_pmu_type type); +release_pmu(struct platform_device *pdev); /** * init_pmu() - Initialise the PMU. diff --git a/trunk/arch/arm/include/asm/proc-fns.h b/trunk/arch/arm/include/asm/proc-fns.h index 633d1cb84d87..8ec535e11fd7 100644 --- a/trunk/arch/arm/include/asm/proc-fns.h +++ b/trunk/arch/arm/include/asm/proc-fns.h @@ -82,13 +82,13 @@ extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext); extern void cpu_reset(unsigned long addr) __attribute__((noreturn)); #else -#define cpu_proc_init processor._proc_init -#define cpu_proc_fin processor._proc_fin -#define cpu_reset processor.reset -#define cpu_do_idle processor._do_idle -#define cpu_dcache_clean_area processor.dcache_clean_area -#define cpu_set_pte_ext processor.set_pte_ext -#define cpu_do_switch_mm processor.switch_mm +#define cpu_proc_init() processor._proc_init() +#define cpu_proc_fin() processor._proc_fin() +#define cpu_reset(addr) processor.reset(addr) +#define cpu_do_idle() processor._do_idle() +#define cpu_dcache_clean_area(addr,sz) processor.dcache_clean_area(addr,sz) +#define cpu_set_pte_ext(ptep,pte,ext) processor.set_pte_ext(ptep,pte,ext) +#define cpu_do_switch_mm(pgd,mm) processor.switch_mm(pgd,mm) #endif extern void cpu_resume(void); diff --git a/trunk/arch/arm/include/asm/scatterlist.h b/trunk/arch/arm/include/asm/scatterlist.h index cefdb8f898a1..2f87870d9347 100644 --- a/trunk/arch/arm/include/asm/scatterlist.h +++ b/trunk/arch/arm/include/asm/scatterlist.h @@ -1,10 +1,6 @@ #ifndef _ASMARM_SCATTERLIST_H #define _ASMARM_SCATTERLIST_H -#ifdef CONFIG_ARM_HAS_SG_CHAIN -#define ARCH_HAS_SG_CHAIN -#endif - #include #include #include diff --git a/trunk/arch/arm/include/asm/setup.h b/trunk/arch/arm/include/asm/setup.h index b13720d2c98a..ee2ad8ae07af 100644 --- a/trunk/arch/arm/include/asm/setup.h +++ b/trunk/arch/arm/include/asm/setup.h @@ -192,11 +192,7 @@ static struct tagtable __tagtable_##fn __tag = { tag, fn } /* * Memory map description */ -#ifdef CONFIG_ARCH_EP93XX -# define NR_BANKS 16 -#else -# define NR_BANKS 8 -#endif +#define NR_BANKS 8 struct membank { phys_addr_t start; diff --git a/trunk/arch/arm/include/asm/tcm.h b/trunk/arch/arm/include/asm/tcm.h index 8578d726ad78..5929ef5d927a 100644 --- a/trunk/arch/arm/include/asm/tcm.h +++ b/trunk/arch/arm/include/asm/tcm.h @@ -27,7 +27,5 @@ void *tcm_alloc(size_t len); void tcm_free(void *addr, size_t len); -bool tcm_dtcm_present(void); -bool tcm_itcm_present(void); #endif diff --git a/trunk/arch/arm/kernel/devtree.c b/trunk/arch/arm/kernel/devtree.c index a701e4226a6c..0cdd7b456cb2 100644 --- a/trunk/arch/arm/kernel/devtree.c +++ b/trunk/arch/arm/kernel/devtree.c @@ -76,6 +76,9 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys) unsigned long dt_root; const char *model; + if (!dt_phys) + return NULL; + devtree = phys_to_virt(dt_phys); /* check device tree validity */ diff --git a/trunk/arch/arm/kernel/entry-armv.S b/trunk/arch/arm/kernel/entry-armv.S index e8d885676807..90c62cd51ca9 100644 --- a/trunk/arch/arm/kernel/entry-armv.S +++ b/trunk/arch/arm/kernel/entry-armv.S @@ -435,6 +435,10 @@ __irq_usr: usr_entry kuser_cmpxchg_check +#ifdef CONFIG_IRQSOFF_TRACER + bl trace_hardirqs_off +#endif + get_thread_info tsk #ifdef CONFIG_PREEMPT ldr r8, [tsk, #TI_PREEMPT] @ get preempt count @@ -453,7 +457,7 @@ __irq_usr: #endif mov why, #0 - b ret_to_user + b ret_to_user_from_irq UNWIND(.fnend ) ENDPROC(__irq_usr) diff --git a/trunk/arch/arm/kernel/entry-common.S b/trunk/arch/arm/kernel/entry-common.S index 1e7b04a40a31..b2a27b6b0046 100644 --- a/trunk/arch/arm/kernel/entry-common.S +++ b/trunk/arch/arm/kernel/entry-common.S @@ -64,6 +64,7 @@ work_resched: ENTRY(ret_to_user) ret_slow_syscall: disable_irq @ disable interrupts +ENTRY(ret_to_user_from_irq) ldr r1, [tsk, #TI_FLAGS] tst r1, #_TIF_WORK_MASK bne work_pending @@ -75,6 +76,7 @@ no_work_pending: arch_ret_to_user r1, lr restore_user_regs fast = 0, offset = 0 +ENDPROC(ret_to_user_from_irq) ENDPROC(ret_to_user) /* diff --git a/trunk/arch/arm/kernel/head-nommu.S b/trunk/arch/arm/kernel/head-nommu.S index d46f25968bec..6b1e0ad9ec3b 100644 --- a/trunk/arch/arm/kernel/head-nommu.S +++ b/trunk/arch/arm/kernel/head-nommu.S @@ -32,16 +32,8 @@ * numbers for r1. * */ - .arm - __HEAD ENTRY(stext) - - THUMB( adr r9, BSYM(1f) ) @ Kernel is always entered in ARM. - THUMB( bx r9 ) @ If this is a Thumb-2 kernel, - THUMB( .thumb ) @ switch to Thumb now. - THUMB(1: ) - setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode @ and irqs disabled #ifndef CONFIG_CPU_CP15 diff --git a/trunk/arch/arm/kernel/head.S b/trunk/arch/arm/kernel/head.S index 742b6108a001..278c1b0ebb2e 100644 --- a/trunk/arch/arm/kernel/head.S +++ b/trunk/arch/arm/kernel/head.S @@ -71,16 +71,8 @@ * crap here - that's what the boot loader (or in extreme, well justified * circumstances, zImage) is for. */ - .arm - __HEAD ENTRY(stext) - - THUMB( adr r9, BSYM(1f) ) @ Kernel is always entered in ARM. - THUMB( bx r9 ) @ If this is a Thumb-2 kernel, - THUMB( .thumb ) @ switch to Thumb now. - THUMB(1: ) - setmode PSR_F_BIT | PSR_I_BIT | SVC_MODE, r9 @ ensure svc mode @ and irqs disabled mrc p15, 0, r9, c0, c0 @ get processor id diff --git a/trunk/arch/arm/kernel/perf_event.c b/trunk/arch/arm/kernel/perf_event.c index a6c643f2d2ca..d53c0abc4dd3 100644 --- a/trunk/arch/arm/kernel/perf_event.c +++ b/trunk/arch/arm/kernel/perf_event.c @@ -435,7 +435,7 @@ armpmu_reserve_hardware(void) if (irq >= 0) free_irq(irq, NULL); } - release_pmu(ARM_PMU_DEVICE_CPU); + release_pmu(pmu_device); pmu_device = NULL; } @@ -454,7 +454,7 @@ armpmu_release_hardware(void) } armpmu->stop(); - release_pmu(ARM_PMU_DEVICE_CPU); + release_pmu(pmu_device); pmu_device = NULL; } diff --git a/trunk/arch/arm/kernel/pmu.c b/trunk/arch/arm/kernel/pmu.c index 2b70709376c3..2c79eec19262 100644 --- a/trunk/arch/arm/kernel/pmu.c +++ b/trunk/arch/arm/kernel/pmu.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -26,88 +25,36 @@ static volatile long pmu_lock; static struct platform_device *pmu_devices[ARM_NUM_PMU_DEVICES]; -static int __devinit pmu_register(struct platform_device *pdev, - enum arm_pmu_type type) +static int __devinit pmu_device_probe(struct platform_device *pdev) { - if (type < 0 || type >= ARM_NUM_PMU_DEVICES) { + + if (pdev->id < 0 || pdev->id >= ARM_NUM_PMU_DEVICES) { pr_warning("received registration request for unknown " - "device %d\n", type); + "device %d\n", pdev->id); return -EINVAL; } - if (pmu_devices[type]) { - pr_warning("rejecting duplicate registration of PMU device " - "type %d.", type); - return -ENOSPC; - } + if (pmu_devices[pdev->id]) + pr_warning("registering new PMU device type %d overwrites " + "previous registration!\n", pdev->id); + else + pr_info("registered new PMU device of type %d\n", + pdev->id); - pr_info("registered new PMU device of type %d\n", type); - pmu_devices[type] = pdev; + pmu_devices[pdev->id] = pdev; return 0; } -#define OF_MATCH_PMU(_name, _type) { \ - .compatible = _name, \ - .data = (void *)_type, \ -} - -#define OF_MATCH_CPU(name) OF_MATCH_PMU(name, ARM_PMU_DEVICE_CPU) - -static struct of_device_id armpmu_of_device_ids[] = { - OF_MATCH_CPU("arm,cortex-a9-pmu"), - OF_MATCH_CPU("arm,cortex-a8-pmu"), - OF_MATCH_CPU("arm,arm1136-pmu"), - OF_MATCH_CPU("arm,arm1176-pmu"), - {}, -}; - -#define PLAT_MATCH_PMU(_name, _type) { \ - .name = _name, \ - .driver_data = _type, \ -} - -#define PLAT_MATCH_CPU(_name) PLAT_MATCH_PMU(_name, ARM_PMU_DEVICE_CPU) - -static struct platform_device_id armpmu_plat_device_ids[] = { - PLAT_MATCH_CPU("arm-pmu"), - {}, -}; - -enum arm_pmu_type armpmu_device_type(struct platform_device *pdev) -{ - const struct of_device_id *of_id; - const struct platform_device_id *pdev_id; - - /* provided by of_device_id table */ - if (pdev->dev.of_node) { - of_id = of_match_device(armpmu_of_device_ids, &pdev->dev); - BUG_ON(!of_id); - return (enum arm_pmu_type)of_id->data; - } - - /* Provided by platform_device_id table */ - pdev_id = platform_get_device_id(pdev); - BUG_ON(!pdev_id); - return pdev_id->driver_data; -} - -static int __devinit armpmu_device_probe(struct platform_device *pdev) -{ - return pmu_register(pdev, armpmu_device_type(pdev)); -} - -static struct platform_driver armpmu_driver = { +static struct platform_driver pmu_driver = { .driver = { .name = "arm-pmu", - .of_match_table = armpmu_of_device_ids, }, - .probe = armpmu_device_probe, - .id_table = armpmu_plat_device_ids, + .probe = pmu_device_probe, }; static int __init register_pmu_driver(void) { - return platform_driver_register(&armpmu_driver); + return platform_driver_register(&pmu_driver); } device_initcall(register_pmu_driver); @@ -130,11 +77,11 @@ reserve_pmu(enum arm_pmu_type device) EXPORT_SYMBOL_GPL(reserve_pmu); int -release_pmu(enum arm_pmu_type device) +release_pmu(struct platform_device *pdev) { - if (WARN_ON(!pmu_devices[device])) + if (WARN_ON(pdev != pmu_devices[pdev->id])) return -EINVAL; - clear_bit_unlock(device, &pmu_lock); + clear_bit_unlock(pdev->id, &pmu_lock); return 0; } EXPORT_SYMBOL_GPL(release_pmu); diff --git a/trunk/arch/arm/kernel/smp.c b/trunk/arch/arm/kernel/smp.c index 0ffcf5c0da43..344e52b16c8c 100644 --- a/trunk/arch/arm/kernel/smp.c +++ b/trunk/arch/arm/kernel/smp.c @@ -361,21 +361,14 @@ void __init smp_prepare_cpus(unsigned int max_cpus) */ if (max_cpus > ncores) max_cpus = ncores; - if (ncores > 1 && max_cpus) { + + if (max_cpus > 1) { /* * Enable the local timer or broadcast device for the * boot CPU, but only if we have more than one CPU. */ percpu_timer_setup(); - /* - * Initialise the present map, which describes the set of CPUs - * actually populated at the present time. A platform should - * re-initialize the map in platform_smp_prepare_cpus() if - * present != possible (e.g. physical hotplug). - */ - init_cpu_present(&cpu_possible_map); - /* * Initialise the SCU if there are more than one CPU * and let them know where to start. diff --git a/trunk/arch/arm/kernel/smp_scu.c b/trunk/arch/arm/kernel/smp_scu.c index 79ed5e7f204a..a1e757c3439b 100644 --- a/trunk/arch/arm/kernel/smp_scu.c +++ b/trunk/arch/arm/kernel/smp_scu.c @@ -20,7 +20,6 @@ #define SCU_INVALIDATE 0x0c #define SCU_FPGA_REVISION 0x10 -#ifdef CONFIG_SMP /* * Get the number of CPU cores from the SCU configuration */ @@ -51,7 +50,6 @@ void __init scu_enable(void __iomem *scu_base) */ flush_cache_all(); } -#endif /* * Set the executing CPUs power mode as defined. This will be in diff --git a/trunk/arch/arm/kernel/tcm.c b/trunk/arch/arm/kernel/tcm.c index 30e302d33e0a..f5cf660eefcc 100644 --- a/trunk/arch/arm/kernel/tcm.c +++ b/trunk/arch/arm/kernel/tcm.c @@ -19,8 +19,6 @@ #include "tcm.h" static struct gen_pool *tcm_pool; -static bool dtcm_present; -static bool itcm_present; /* TCM section definitions from the linker */ extern char __itcm_start, __sitcm_text, __eitcm_text; @@ -92,18 +90,6 @@ void tcm_free(void *addr, size_t len) } EXPORT_SYMBOL(tcm_free); -bool tcm_dtcm_present(void) -{ - return dtcm_present; -} -EXPORT_SYMBOL(tcm_dtcm_present); - -bool tcm_itcm_present(void) -{ - return itcm_present; -} -EXPORT_SYMBOL(tcm_itcm_present); - static int __init setup_tcm_bank(u8 type, u8 bank, u8 banks, u32 *offset) { @@ -148,10 +134,6 @@ static int __init setup_tcm_bank(u8 type, u8 bank, u8 banks, (tcm_region & 1) ? "" : "not "); } - /* Not much fun you can do with a size 0 bank */ - if (tcm_size == 0) - return 0; - /* Force move the TCM bank to where we want it, enable */ tcm_region = *offset | (tcm_region & 0x00000ffeU) | 1; @@ -183,20 +165,12 @@ void __init tcm_init(void) u32 tcm_status = read_cpuid_tcmstatus(); u8 dtcm_banks = (tcm_status >> 16) & 0x03; u8 itcm_banks = (tcm_status & 0x03); - size_t dtcm_code_sz = &__edtcm_data - &__sdtcm_data; - size_t itcm_code_sz = &__eitcm_text - &__sitcm_text; char *start; char *end; char *ram; int ret; int i; - /* Values greater than 2 for D/ITCM banks are "reserved" */ - if (dtcm_banks > 2) - dtcm_banks = 0; - if (itcm_banks > 2) - itcm_banks = 0; - /* Setup DTCM if present */ if (dtcm_banks > 0) { for (i = 0; i < dtcm_banks; i++) { @@ -204,13 +178,6 @@ void __init tcm_init(void) if (ret) return; } - /* This means you compiled more code than fits into DTCM */ - if (dtcm_code_sz > (dtcm_end - DTCM_OFFSET)) { - pr_info("CPU DTCM: %u bytes of code compiled to " - "DTCM but only %lu bytes of DTCM present\n", - dtcm_code_sz, (dtcm_end - DTCM_OFFSET)); - goto no_dtcm; - } dtcm_res.end = dtcm_end - 1; request_resource(&iomem_resource, &dtcm_res); dtcm_iomap[0].length = dtcm_end - DTCM_OFFSET; @@ -219,16 +186,12 @@ void __init tcm_init(void) start = &__sdtcm_data; end = &__edtcm_data; ram = &__dtcm_start; - memcpy(start, ram, dtcm_code_sz); - pr_debug("CPU DTCM: copied data from %p - %p\n", - start, end); - dtcm_present = true; - } else if (dtcm_code_sz) { - pr_info("CPU DTCM: %u bytes of code compiled to DTCM but no " - "DTCM banks present in CPU\n", dtcm_code_sz); + /* This means you compiled more code than fits into DTCM */ + BUG_ON((end - start) > (dtcm_end - DTCM_OFFSET)); + memcpy(start, ram, (end-start)); + pr_debug("CPU DTCM: copied data from %p - %p\n", start, end); } -no_dtcm: /* Setup ITCM if present */ if (itcm_banks > 0) { for (i = 0; i < itcm_banks; i++) { @@ -236,13 +199,6 @@ void __init tcm_init(void) if (ret) return; } - /* This means you compiled more code than fits into ITCM */ - if (itcm_code_sz > (itcm_end - ITCM_OFFSET)) { - pr_info("CPU ITCM: %u bytes of code compiled to " - "ITCM but only %lu bytes of ITCM present\n", - itcm_code_sz, (itcm_end - ITCM_OFFSET)); - return; - } itcm_res.end = itcm_end - 1; request_resource(&iomem_resource, &itcm_res); itcm_iomap[0].length = itcm_end - ITCM_OFFSET; @@ -251,13 +207,10 @@ void __init tcm_init(void) start = &__sitcm_text; end = &__eitcm_text; ram = &__itcm_start; - memcpy(start, ram, itcm_code_sz); - pr_debug("CPU ITCM: copied code from %p - %p\n", - start, end); - itcm_present = true; - } else if (itcm_code_sz) { - pr_info("CPU ITCM: %u bytes of code compiled to ITCM but no " - "ITCM banks present in CPU\n", itcm_code_sz); + /* This means you compiled more code than fits into ITCM */ + BUG_ON((end - start) > (itcm_end - ITCM_OFFSET)); + memcpy(start, ram, (end-start)); + pr_debug("CPU ITCM: copied code from %p - %p\n", start, end); } } @@ -268,6 +221,7 @@ void __init tcm_init(void) */ static int __init setup_tcm_pool(void) { + u32 tcm_status = read_cpuid_tcmstatus(); u32 dtcm_pool_start = (u32) &__edtcm_data; u32 itcm_pool_start = (u32) &__eitcm_text; int ret; @@ -282,7 +236,7 @@ static int __init setup_tcm_pool(void) pr_debug("Setting up TCM memory pool\n"); /* Add the rest of DTCM to the TCM pool */ - if (dtcm_present) { + if (tcm_status & (0x03 << 16)) { if (dtcm_pool_start < dtcm_end) { ret = gen_pool_add(tcm_pool, dtcm_pool_start, dtcm_end - dtcm_pool_start, -1); @@ -299,7 +253,7 @@ static int __init setup_tcm_pool(void) } /* Add the rest of ITCM to the TCM pool */ - if (itcm_present) { + if (tcm_status & 0x03) { if (itcm_pool_start < itcm_end) { ret = gen_pool_add(tcm_pool, itcm_pool_start, itcm_end - itcm_pool_start, -1); diff --git a/trunk/arch/arm/kernel/traps.c b/trunk/arch/arm/kernel/traps.c index d52eec268b47..6807cb1e76dd 100644 --- a/trunk/arch/arm/kernel/traps.c +++ b/trunk/arch/arm/kernel/traps.c @@ -139,7 +139,7 @@ static void dump_instr(const char *lvl, struct pt_regs *regs) fs = get_fs(); set_fs(KERNEL_DS); - for (i = -4; i < 1; i++) { + for (i = -4; i < 1 + !!thumb; i++) { unsigned int val, bad; if (thumb) @@ -563,7 +563,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) if (!pmd_present(*pmd)) goto bad_access; pte = pte_offset_map_lock(mm, pmd, addr, &ptl); - if (!pte_present(*pte) || !pte_dirty(*pte)) { + if (!pte_present(*pte) || !pte_write(*pte) || !pte_dirty(*pte)) { pte_unmap_unlock(pte, ptl); goto bad_access; } diff --git a/trunk/arch/arm/mach-davinci/devices-da8xx.c b/trunk/arch/arm/mach-davinci/devices-da8xx.c index 4e66881c7aee..fc4e98ea7543 100644 --- a/trunk/arch/arm/mach-davinci/devices-da8xx.c +++ b/trunk/arch/arm/mach-davinci/devices-da8xx.c @@ -494,7 +494,7 @@ static struct platform_device da850_mcasp_device = { .resource = da850_mcasp_resources, }; -struct platform_device davinci_pcm_device = { +static struct platform_device davinci_pcm_device = { .name = "davinci-pcm-audio", .id = -1, }; diff --git a/trunk/arch/arm/mach-davinci/devices.c b/trunk/arch/arm/mach-davinci/devices.c index 8f4f736aa267..806a2f02b980 100644 --- a/trunk/arch/arm/mach-davinci/devices.c +++ b/trunk/arch/arm/mach-davinci/devices.c @@ -298,7 +298,7 @@ static void davinci_init_wdt(void) /*-------------------------------------------------------------------------*/ -struct platform_device davinci_pcm_device = { +static struct platform_device davinci_pcm_device = { .name = "davinci-pcm-audio", .id = -1, }; diff --git a/trunk/arch/arm/mach-davinci/gpio.c b/trunk/arch/arm/mach-davinci/gpio.c index a0b838894ac9..e7221398e5af 100644 --- a/trunk/arch/arm/mach-davinci/gpio.c +++ b/trunk/arch/arm/mach-davinci/gpio.c @@ -252,9 +252,11 @@ static struct irq_chip gpio_irqchip = { static void gpio_irq_handler(unsigned irq, struct irq_desc *desc) { - struct davinci_gpio_regs __iomem *g = irq2regs(irq); + struct davinci_gpio_regs __iomem *g; u32 mask = 0xffff; + g = (__force struct davinci_gpio_regs __iomem *) irq_desc_get_handler_data(desc); + /* we only care about one bank */ if (irq & 1) mask <<= 16; @@ -422,8 +424,7 @@ static int __init davinci_gpio_irq_setup(void) /* set up all irqs in this bank */ irq_set_chained_handler(bank_irq, gpio_irq_handler); - irq_set_chip_data(bank_irq, (__force void *)g); - irq_set_handler_data(bank_irq, (void *)irq); + irq_set_handler_data(bank_irq, (__force void *)g); for (i = 0; i < 16 && gpio < ngpio; i++, irq++, gpio++) { irq_set_chip(irq, &gpio_irqchip); diff --git a/trunk/arch/arm/mach-ep93xx/core.c b/trunk/arch/arm/mach-ep93xx/core.c index 82079545adc4..1d4b65fd673e 100644 --- a/trunk/arch/arm/mach-ep93xx/core.c +++ b/trunk/arch/arm/mach-ep93xx/core.c @@ -402,11 +402,15 @@ static struct resource ep93xx_eth_resource[] = { } }; +static u64 ep93xx_eth_dma_mask = DMA_BIT_MASK(32); + static struct platform_device ep93xx_eth_device = { .name = "ep93xx-eth", .id = -1, .dev = { - .platform_data = &ep93xx_eth_data, + .platform_data = &ep93xx_eth_data, + .coherent_dma_mask = DMA_BIT_MASK(32), + .dma_mask = &ep93xx_eth_dma_mask, }, .num_resources = ARRAY_SIZE(ep93xx_eth_resource), .resource = ep93xx_eth_resource, diff --git a/trunk/arch/arm/mach-exynos4/Kconfig b/trunk/arch/arm/mach-exynos4/Kconfig index b92c1e557145..1435fc31c4b2 100644 --- a/trunk/arch/arm/mach-exynos4/Kconfig +++ b/trunk/arch/arm/mach-exynos4/Kconfig @@ -91,6 +91,11 @@ config EXYNOS4_SETUP_FIMC help Common setup code for the camera interfaces. +config EXYNOS4_SETUP_USB_PHY + bool + help + Common setup code for USB PHY controller + # machine support menu "EXYNOS4 Machines" @@ -176,6 +181,7 @@ config MACH_NURI select EXYNOS4_SETUP_I2C3 select EXYNOS4_SETUP_I2C5 select EXYNOS4_SETUP_SDHCI + select EXYNOS4_SETUP_USB_PHY select SAMSUNG_DEV_PWM help Machine support for Samsung Mobile NURI Board. diff --git a/trunk/arch/arm/mach-exynos4/Makefile b/trunk/arch/arm/mach-exynos4/Makefile index a9bb94fabaa7..60fe5ecf3599 100644 --- a/trunk/arch/arm/mach-exynos4/Makefile +++ b/trunk/arch/arm/mach-exynos4/Makefile @@ -56,4 +56,4 @@ obj-$(CONFIG_EXYNOS4_SETUP_KEYPAD) += setup-keypad.o obj-$(CONFIG_EXYNOS4_SETUP_SDHCI) += setup-sdhci.o obj-$(CONFIG_EXYNOS4_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o -obj-$(CONFIG_USB_SUPPORT) += usb-phy.o +obj-$(CONFIG_EXYNOS4_SETUP_USB_PHY) += setup-usb-phy.o diff --git a/trunk/arch/arm/mach-exynos4/cpu.c b/trunk/arch/arm/mach-exynos4/cpu.c index 08813a6f66b1..9babe4473e88 100644 --- a/trunk/arch/arm/mach-exynos4/cpu.c +++ b/trunk/arch/arm/mach-exynos4/cpu.c @@ -98,7 +98,7 @@ static struct map_desc exynos4_iodesc[] __initdata = { .length = SZ_4K, .type = MT_DEVICE, }, { - .virtual = (unsigned long)S5P_VA_USB_HSPHY, + .virtual = (unsigned long)S3C_VA_USB_HSPHY, .pfn = __phys_to_pfn(EXYNOS4_PA_HSPHY), .length = SZ_4K, .type = MT_DEVICE, diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h index 703118d5173c..c337cf3a71bf 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-usb-phy.h @@ -11,7 +11,7 @@ #ifndef __PLAT_S5P_REGS_USB_PHY_H #define __PLAT_S5P_REGS_USB_PHY_H -#define EXYNOS4_HSOTG_PHYREG(x) ((x) + S5P_VA_USB_HSPHY) +#define EXYNOS4_HSOTG_PHYREG(x) ((x) + S3C_VA_USB_HSPHY) #define EXYNOS4_PHYPWR EXYNOS4_HSOTG_PHYREG(0x00) #define PHY1_HSIC_NORMAL_MASK (0xf << 9) diff --git a/trunk/arch/arm/mach-exynos4/platsmp.c b/trunk/arch/arm/mach-exynos4/platsmp.c index b68d5bdf04cf..c5e65a02be8d 100644 --- a/trunk/arch/arm/mach-exynos4/platsmp.c +++ b/trunk/arch/arm/mach-exynos4/platsmp.c @@ -154,6 +154,14 @@ void __init smp_init_cpus(void) void __init platform_smp_prepare_cpus(unsigned int max_cpus) { + int i; + + /* + * Initialise the present map, which describes the set of CPUs + * actually populated at the present time. + */ + for (i = 0; i < max_cpus; i++) + set_cpu_present(i, true); scu_enable(scu_base_addr()); diff --git a/trunk/arch/arm/mach-exynos4/usb-phy.c b/trunk/arch/arm/mach-exynos4/setup-usb-phy.c similarity index 100% rename from trunk/arch/arm/mach-exynos4/usb-phy.c rename to trunk/arch/arm/mach-exynos4/setup-usb-phy.c diff --git a/trunk/arch/arm/mach-exynos4/time.c b/trunk/arch/arm/mach-exynos4/time.c index 86b9fa0d3639..ebb8f38d5405 100644 --- a/trunk/arch/arm/mach-exynos4/time.c +++ b/trunk/arch/arm/mach-exynos4/time.c @@ -206,6 +206,7 @@ static cycle_t exynos4_pwm4_read(struct clocksource *cs) return (cycle_t) ~__raw_readl(S3C_TIMERREG(0x40)); } +#ifdef CONFIG_PM static void exynos4_pwm4_resume(struct clocksource *cs) { unsigned long pclk; @@ -218,6 +219,7 @@ static void exynos4_pwm4_resume(struct clocksource *cs) exynos4_pwm_init(4, ~0); exynos4_pwm_start(4, 1); } +#endif struct clocksource pwm_clocksource = { .name = "pwm_timer4", diff --git a/trunk/arch/arm/mach-footbridge/dc21285-timer.c b/trunk/arch/arm/mach-footbridge/dc21285-timer.c index 5f1f9867fc70..121ad1d4fa39 100644 --- a/trunk/arch/arm/mach-footbridge/dc21285-timer.c +++ b/trunk/arch/arm/mach-footbridge/dc21285-timer.c @@ -103,6 +103,7 @@ static void __init footbridge_timer_init(void) clockevents_calc_mult_shift(ce, mem_fclk_21285, 5); ce->max_delta_ns = clockevent_delta2ns(0xffffff, ce); ce->min_delta_ns = clockevent_delta2ns(0x000004, ce); + ce->cpumask = cpumask_of(smp_processor_id()); clockevents_register_device(ce); } diff --git a/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S b/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S index 30b971d65815..1be2eeb7a0a0 100644 --- a/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S +++ b/trunk/arch/arm/mach-footbridge/include/mach/debug-macro.S @@ -26,6 +26,7 @@ #include #else +#include /* For EBSA285 debugging */ .equ dc21285_high, ARMCSR_BASE & 0xff000000 .equ dc21285_low, ARMCSR_BASE & 0x00ffffff @@ -36,8 +37,8 @@ .else mov \rp, #0 .endif - orr \rv, \rp, #0x42000000 - orr \rp, \rp, #dc21285_high + orr \rv, \rp, #dc21285_high + orr \rp, \rp, #0x42000000 .endm .macro senduart,rd,rx diff --git a/trunk/arch/arm/mach-msm/platsmp.c b/trunk/arch/arm/mach-msm/platsmp.c index 315b9f365329..2034098cf015 100644 --- a/trunk/arch/arm/mach-msm/platsmp.c +++ b/trunk/arch/arm/mach-msm/platsmp.c @@ -157,4 +157,12 @@ void __init smp_init_cpus(void) void __init platform_smp_prepare_cpus(unsigned int max_cpus) { + int i; + + /* + * Initialise the present map, which describes the set of CPUs + * actually populated at the present time. + */ + for (i = 0; i < max_cpus; i++) + set_cpu_present(i, true); } diff --git a/trunk/arch/arm/mach-mxs/ocotp.c b/trunk/arch/arm/mach-mxs/ocotp.c index 65157a35dbba..54add60f94c9 100644 --- a/trunk/arch/arm/mach-mxs/ocotp.c +++ b/trunk/arch/arm/mach-mxs/ocotp.c @@ -16,6 +16,8 @@ #include #include +#include /* for cpu_relax() */ + #include #define OCOTP_WORD_OFFSET 0x20 diff --git a/trunk/arch/arm/mach-omap1/dma.c b/trunk/arch/arm/mach-omap1/dma.c index d8559344c6e2..f5a52204b89f 100644 --- a/trunk/arch/arm/mach-omap1/dma.c +++ b/trunk/arch/arm/mach-omap1/dma.c @@ -284,14 +284,15 @@ static int __init omap1_system_dma_init(void) dma_base = ioremap(res[0].start, resource_size(&res[0])); if (!dma_base) { pr_err("%s: Unable to ioremap\n", __func__); - return -ENODEV; + ret = -ENODEV; + goto exit_device_put; } ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res)); if (ret) { dev_err(&pdev->dev, "%s: Unable to add resources for %s%d\n", __func__, pdev->name, pdev->id); - goto exit_device_del; + goto exit_device_put; } p = kzalloc(sizeof(struct omap_system_dma_plat_info), GFP_KERNEL); @@ -299,7 +300,7 @@ static int __init omap1_system_dma_init(void) dev_err(&pdev->dev, "%s: Unable to allocate 'p' for %s\n", __func__, pdev->name); ret = -ENOMEM; - goto exit_device_put; + goto exit_device_del; } d = kzalloc(sizeof(struct omap_dma_dev_attr), GFP_KERNEL); @@ -380,10 +381,10 @@ static int __init omap1_system_dma_init(void) kfree(d); exit_release_p: kfree(p); -exit_device_put: - platform_device_put(pdev); exit_device_del: platform_device_del(pdev); +exit_device_put: + platform_device_put(pdev); return ret; } diff --git a/trunk/arch/arm/mach-omap2/board-2430sdp.c b/trunk/arch/arm/mach-omap2/board-2430sdp.c index d54969be0a54..5de6eac0a725 100644 --- a/trunk/arch/arm/mach-omap2/board-2430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-2430sdp.c @@ -26,13 +26,13 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include diff --git a/trunk/arch/arm/mach-omap2/board-3430sdp.c b/trunk/arch/arm/mach-omap2/board-3430sdp.c index ae2963a98041..5dac974be625 100644 --- a/trunk/arch/arm/mach-omap2/board-3430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-3430sdp.c @@ -622,19 +622,19 @@ static struct omap_device_pad serial3_pads[] __initdata = { OMAP_MUX_MODE0), }; -static struct omap_board_data serial1_data = { +static struct omap_board_data serial1_data __initdata = { .id = 0, .pads = serial1_pads, .pads_cnt = ARRAY_SIZE(serial1_pads), }; -static struct omap_board_data serial2_data = { +static struct omap_board_data serial2_data __initdata = { .id = 1, .pads = serial2_pads, .pads_cnt = ARRAY_SIZE(serial2_pads), }; -static struct omap_board_data serial3_data = { +static struct omap_board_data serial3_data __initdata = { .id = 2, .pads = serial3_pads, .pads_cnt = ARRAY_SIZE(serial3_pads), diff --git a/trunk/arch/arm/mach-omap2/board-4430sdp.c b/trunk/arch/arm/mach-omap2/board-4430sdp.c index 73fa90bb6953..63de2d396e2d 100644 --- a/trunk/arch/arm/mach-omap2/board-4430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-4430sdp.c @@ -258,7 +258,7 @@ static struct gpio sdp4430_eth_gpios[] __initdata = { { ETH_KS8851_IRQ, GPIOF_IN, "eth_irq" }, }; -static int omap_ethernet_init(void) +static int __init omap_ethernet_init(void) { int status; @@ -322,6 +322,7 @@ static struct omap2_hsmmc_info mmc[] = { .gpio_wp = -EINVAL, .nonremovable = true, .ocr_mask = MMC_VDD_29_30, + .no_off_init = true, }, { .mmc = 1, @@ -681,19 +682,19 @@ static struct omap_device_pad serial4_pads[] __initdata = { OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), }; -static struct omap_board_data serial2_data = { +static struct omap_board_data serial2_data __initdata = { .id = 1, .pads = serial2_pads, .pads_cnt = ARRAY_SIZE(serial2_pads), }; -static struct omap_board_data serial3_data = { +static struct omap_board_data serial3_data __initdata = { .id = 2, .pads = serial3_pads, .pads_cnt = ARRAY_SIZE(serial3_pads), }; -static struct omap_board_data serial4_data = { +static struct omap_board_data serial4_data __initdata = { .id = 3, .pads = serial4_pads, .pads_cnt = ARRAY_SIZE(serial4_pads), @@ -729,7 +730,7 @@ static void __init omap_4430sdp_init(void) if (omap_rev() == OMAP4430_REV_ES1_0) package = OMAP_PACKAGE_CBL; - omap4_mux_init(board_mux, package); + omap4_mux_init(board_mux, NULL, package); omap_board_config = sdp4430_config; omap_board_config_size = ARRAY_SIZE(sdp4430_config); diff --git a/trunk/arch/arm/mach-omap2/board-apollon.c b/trunk/arch/arm/mach-omap2/board-apollon.c index f3beb8eeef77..b124bdfb4239 100644 --- a/trunk/arch/arm/mach-omap2/board-apollon.c +++ b/trunk/arch/arm/mach-omap2/board-apollon.c @@ -27,13 +27,13 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include diff --git a/trunk/arch/arm/mach-omap2/board-cm-t35.c b/trunk/arch/arm/mach-omap2/board-cm-t35.c index c63115bc1536..77456dec93ea 100644 --- a/trunk/arch/arm/mach-omap2/board-cm-t35.c +++ b/trunk/arch/arm/mach-omap2/board-cm-t35.c @@ -63,8 +63,6 @@ #define SB_T35_SMSC911X_CS 4 #define SB_T35_SMSC911X_GPIO 65 -#define NAND_BLOCK_SIZE SZ_128K - #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) #include #include diff --git a/trunk/arch/arm/mach-omap2/board-cm-t3517.c b/trunk/arch/arm/mach-omap2/board-cm-t3517.c index 08f08e812492..c3a9fd35034a 100644 --- a/trunk/arch/arm/mach-omap2/board-cm-t3517.c +++ b/trunk/arch/arm/mach-omap2/board-cm-t3517.c @@ -48,6 +48,7 @@ #include "mux.h" #include "control.h" +#include "common-board-devices.h" #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) static struct gpio_led cm_t3517_leds[] = { @@ -177,7 +178,7 @@ static struct usbhs_omap_board_data cm_t3517_ehci_pdata __initdata = { .reset_gpio_port[2] = -EINVAL, }; -static int cm_t3517_init_usbh(void) +static int __init cm_t3517_init_usbh(void) { int err; @@ -203,8 +204,6 @@ static inline int cm_t3517_init_usbh(void) #endif #if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE) -#define NAND_BLOCK_SIZE SZ_128K - static struct mtd_partition cm_t3517_nand_partitions[] = { { .name = "xloader", diff --git a/trunk/arch/arm/mach-omap2/board-devkit8000.c b/trunk/arch/arm/mach-omap2/board-devkit8000.c index cf520d7dd614..34956ec83296 100644 --- a/trunk/arch/arm/mach-omap2/board-devkit8000.c +++ b/trunk/arch/arm/mach-omap2/board-devkit8000.c @@ -61,8 +61,6 @@ #include "timer-gp.h" #include "common-board-devices.h" -#define NAND_BLOCK_SIZE SZ_128K - #define OMAP_DM9000_GPIO_IRQ 25 #define OMAP3_DEVKIT_TS_GPIO 27 diff --git a/trunk/arch/arm/mach-omap2/board-omap3beagle.c b/trunk/arch/arm/mach-omap2/board-omap3beagle.c index be71426359f2..7f21d24bd437 100644 --- a/trunk/arch/arm/mach-omap2/board-omap3beagle.c +++ b/trunk/arch/arm/mach-omap2/board-omap3beagle.c @@ -54,8 +54,6 @@ #include "pm.h" #include "common-board-devices.h" -#define NAND_BLOCK_SIZE SZ_128K - /* * OMAP3 Beagle revision * Run time detection of Beagle revision is done by reading GPIO. @@ -106,6 +104,9 @@ static void __init omap3_beagle_init_rev(void) beagle_rev = gpio_get_value(171) | (gpio_get_value(172) << 1) | (gpio_get_value(173) << 2); + gpio_free_array(omap3_beagle_rev_gpios, + ARRAY_SIZE(omap3_beagle_rev_gpios)); + switch (beagle_rev) { case 7: printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n"); @@ -579,6 +580,9 @@ static void __init omap3_beagle_init(void) omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions, ARRAY_SIZE(omap3beagle_nand_partitions)); + /* Ensure msecure is mux'd to be able to set the RTC. */ + omap_mux_init_signal("sys_drm_msecure", OMAP_PIN_OFF_OUTPUT_HIGH); + /* Ensure SDRC pins are mux'd for self-refresh */ omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT); omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT); diff --git a/trunk/arch/arm/mach-omap2/board-omap3pandora.c b/trunk/arch/arm/mach-omap2/board-omap3pandora.c index 1d10736c6d3c..2a0bb4818cae 100644 --- a/trunk/arch/arm/mach-omap2/board-omap3pandora.c +++ b/trunk/arch/arm/mach-omap2/board-omap3pandora.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -41,7 +42,6 @@ #include #include -#include #include #include #include @@ -57,8 +57,6 @@ #define PANDORA_WIFI_NRESET_GPIO 23 #define OMAP3_PANDORA_TS_GPIO 94 -#define NAND_BLOCK_SIZE SZ_128K - static struct mtd_partition omap3pandora_nand_partitions[] = { { .name = "xloader", diff --git a/trunk/arch/arm/mach-omap2/board-omap3touchbook.c b/trunk/arch/arm/mach-omap2/board-omap3touchbook.c index 82872d7d313b..5f649faf7377 100644 --- a/trunk/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/trunk/arch/arm/mach-omap2/board-omap3touchbook.c @@ -56,8 +56,6 @@ #include -#define NAND_BLOCK_SIZE SZ_128K - #define OMAP3_AC_GPIO 136 #define OMAP3_TS_GPIO 162 #define TB_BL_PWM_TIMER 9 diff --git a/trunk/arch/arm/mach-omap2/board-omap4panda.c b/trunk/arch/arm/mach-omap2/board-omap4panda.c index 90485fced973..0cfe2005cb50 100644 --- a/trunk/arch/arm/mach-omap2/board-omap4panda.c +++ b/trunk/arch/arm/mach-omap2/board-omap4panda.c @@ -526,19 +526,19 @@ static struct omap_device_pad serial4_pads[] __initdata = { OMAP_PIN_OUTPUT | OMAP_MUX_MODE0), }; -static struct omap_board_data serial2_data = { +static struct omap_board_data serial2_data __initdata = { .id = 1, .pads = serial2_pads, .pads_cnt = ARRAY_SIZE(serial2_pads), }; -static struct omap_board_data serial3_data = { +static struct omap_board_data serial3_data __initdata = { .id = 2, .pads = serial3_pads, .pads_cnt = ARRAY_SIZE(serial3_pads), }; -static struct omap_board_data serial4_data = { +static struct omap_board_data serial4_data __initdata = { .id = 3, .pads = serial4_pads, .pads_cnt = ARRAY_SIZE(serial4_pads), @@ -687,7 +687,7 @@ static void __init omap4_panda_init(void) if (omap_rev() == OMAP4430_REV_ES1_0) package = OMAP_PACKAGE_CBL; - omap4_mux_init(board_mux, package); + omap4_mux_init(board_mux, NULL, package); if (wl12xx_set_platform_data(&omap_panda_wlan_data)) pr_err("error setting wl12xx data\n"); diff --git a/trunk/arch/arm/mach-omap2/board-overo.c b/trunk/arch/arm/mach-omap2/board-overo.c index 1555918e3ffa..175e1ab2b04d 100644 --- a/trunk/arch/arm/mach-omap2/board-overo.c +++ b/trunk/arch/arm/mach-omap2/board-overo.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -45,7 +46,6 @@ #include #include