From 3d90303f63ffa65bc016c89a55ad24abce33369e Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Fri, 14 Oct 2011 09:37:27 +0200 Subject: [PATCH] --- yaml --- r: 272862 b: refs/heads/master c: d546029043202ab306630fd2a10221feaed029e3 h: refs/heads/master v: v3 --- [refs] | 2 +- .../ABI/testing/sysfs-class-scsi_host | 13 + trunk/Documentation/cgroups/memory.txt | 85 +- trunk/Documentation/hwmon/coretemp | 14 +- trunk/Documentation/kernel-parameters.txt | 9 +- trunk/Documentation/networking/dmfe.txt | 3 +- trunk/Documentation/networking/ip-sysctl.txt | 4 +- trunk/Documentation/networking/scaling.txt | 2 +- trunk/Documentation/vm/transhuge.txt | 7 +- trunk/MAINTAINERS | 24 +- trunk/Makefile | 2 +- trunk/arch/alpha/Kconfig | 2 +- trunk/arch/arm/Kconfig | 15 +- trunk/arch/arm/Makefile | 4 +- trunk/arch/arm/boot/dts/prima2-cb.dts | 9 +- trunk/arch/arm/boot/dts/tegra-harmony.dts | 12 +- trunk/arch/arm/boot/dts/tegra-seaboard.dts | 6 +- trunk/arch/arm/configs/mx1_defconfig | 91 + trunk/arch/arm/configs/mx21_defconfig | 97 + .../{imx_v4_v5_defconfig => mx27_defconfig} | 68 +- .../configs/{mx5_defconfig => mx51_defconfig} | 60 +- trunk/arch/arm/include/asm/futex.h | 34 +- trunk/arch/arm/include/asm/unistd.h | 4 +- trunk/arch/arm/kernel/smp_scu.c | 10 + trunk/arch/arm/kernel/vmlinux.lds.S | 15 +- trunk/arch/arm/mach-at91/at91cap9.c | 2 - trunk/arch/arm/mach-at91/at91cap9_devices.c | 6 - trunk/arch/arm/mach-at91/at91rm9200.c | 2 - trunk/arch/arm/mach-at91/at91rm9200_devices.c | 8 - trunk/arch/arm/mach-at91/at91sam9260.c | 2 - .../arch/arm/mach-at91/at91sam9260_devices.c | 8 - trunk/arch/arm/mach-at91/at91sam9261.c | 29 +- .../arch/arm/mach-at91/at91sam9261_devices.c | 8 - trunk/arch/arm/mach-at91/at91sam9263.c | 2 - .../arch/arm/mach-at91/at91sam9263_devices.c | 6 - trunk/arch/arm/mach-at91/at91sam9g45.c | 2 - .../arch/arm/mach-at91/at91sam9g45_devices.c | 6 - trunk/arch/arm/mach-at91/include/mach/board.h | 5 - trunk/arch/arm/mach-davinci/Kconfig | 10 - trunk/arch/arm/mach-davinci/board-da850-evm.c | 114 - trunk/arch/arm/mach-davinci/da850.c | 9 - .../arch/arm/mach-davinci/include/mach/mmc.h | 3 - .../arch/arm/mach-davinci/include/mach/mux.h | 10 - trunk/arch/arm/mach-dove/common.c | 2 +- trunk/arch/arm/mach-exynos4/clock.c | 8 +- trunk/arch/arm/mach-exynos4/mct.c | 10 +- trunk/arch/arm/mach-exynos4/platsmp.c | 2 + trunk/arch/arm/mach-exynos4/setup-keypad.c | 11 +- trunk/arch/arm/mach-imx/Kconfig | 52 +- trunk/arch/arm/mach-imx/Makefile | 15 +- trunk/arch/arm/mach-imx/cache-l2x0.c | 56 + trunk/arch/arm/mach-imx/clock-imx25.c | 6 - trunk/arch/arm/mach-imx/clock-imx27.c | 6 +- trunk/arch/arm/mach-imx/clock-imx31.c | 8 +- trunk/arch/arm/mach-imx/clock-imx35.c | 7 +- trunk/arch/arm/mach-imx/cpu-imx25.c | 41 - trunk/arch/arm/mach-imx/cpu-imx27.c | 28 +- trunk/arch/arm/mach-imx/cpu-imx31.c | 49 +- trunk/arch/arm/mach-imx/cpu-imx35.c | 30 +- trunk/arch/arm/mach-imx/devices-imx27.h | 4 - trunk/arch/arm/mach-imx/devices-imx31.h | 4 - trunk/arch/arm/mach-imx/devices-imx35.h | 4 - trunk/arch/arm/mach-imx/mach-apf9328.c | 1 - trunk/arch/arm/mach-imx/mach-armadillo5x0.c | 19 +- trunk/arch/arm/mach-imx/mach-bug.c | 1 - trunk/arch/arm/mach-imx/mach-cpuimx27.c | 1 - trunk/arch/arm/mach-imx/mach-cpuimx35.c | 3 +- .../arch/arm/mach-imx/mach-eukrea_cpuimx25.c | 1 - .../arm/mach-imx/mach-imx27_visstrim_m10.c | 1 - trunk/arch/arm/mach-imx/mach-imx27ipcam.c | 1 - trunk/arch/arm/mach-imx/mach-imx27lite.c | 1 - trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c | 1 - trunk/arch/arm/mach-imx/mach-mx1ads.c | 17 +- trunk/arch/arm/mach-imx/mach-mx21ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx25_3ds.c | 11 - trunk/arch/arm/mach-imx/mach-mx27_3ds.c | 3 +- trunk/arch/arm/mach-imx/mach-mx27ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx31_3ds.c | 1 - trunk/arch/arm/mach-imx/mach-mx31ads.c | 1 - trunk/arch/arm/mach-imx/mach-mx31lilly.c | 1 - trunk/arch/arm/mach-imx/mach-mx31lite.c | 1 - trunk/arch/arm/mach-imx/mach-mx31moboard.c | 18 - trunk/arch/arm/mach-imx/mach-mx35_3ds.c | 1 - trunk/arch/arm/mach-imx/mach-mxt_td60.c | 1 - trunk/arch/arm/mach-imx/mach-pca100.c | 1 - trunk/arch/arm/mach-imx/mach-pcm037.c | 1 - trunk/arch/arm/mach-imx/mach-pcm038.c | 1 - trunk/arch/arm/mach-imx/mach-pcm043.c | 1 - trunk/arch/arm/mach-imx/mach-qong.c | 2 - trunk/arch/arm/mach-imx/mach-scb9328.c | 1 - trunk/arch/arm/mach-imx/mach-vpr200.c | 3 +- trunk/arch/arm/mach-imx/mm-imx3.c | 256 -- trunk/arch/arm/mach-imx/mm-imx31.c | 91 + trunk/arch/arm/mach-imx/mm-imx35.c | 109 + trunk/arch/arm/mach-imx/pm-imx27.c | 2 +- .../arch/arm/mach-integrator/integrator_ap.c | 2 + trunk/arch/arm/mach-integrator/pci_v3.c | 2 - trunk/arch/arm/mach-mx5/Kconfig | 29 +- trunk/arch/arm/mach-mx5/Makefile | 3 +- trunk/arch/arm/mach-mx5/board-cpuimx51.c | 28 +- trunk/arch/arm/mach-mx5/board-cpuimx51sd.c | 26 +- trunk/arch/arm/mach-mx5/board-mx50_rdp.c | 1 - trunk/arch/arm/mach-mx5/board-mx51_3ds.c | 2 +- trunk/arch/arm/mach-mx5/board-mx51_babbage.c | 27 +- trunk/arch/arm/mach-mx5/board-mx51_efikamx.c | 14 +- trunk/arch/arm/mach-mx5/board-mx51_efikasb.c | 25 +- trunk/arch/arm/mach-mx5/board-mx53_ard.c | 6 +- trunk/arch/arm/mach-mx5/board-mx53_evk.c | 1 - trunk/arch/arm/mach-mx5/board-mx53_loco.c | 22 +- trunk/arch/arm/mach-mx5/board-mx53_smd.c | 17 +- trunk/arch/arm/mach-mx5/clock-mx51-mx53.c | 33 +- trunk/arch/arm/mach-mx5/cpu.c | 74 +- trunk/arch/arm/mach-mx5/devices-imx51.h | 17 - trunk/arch/arm/mach-mx5/devices-imx53.h | 4 +- trunk/arch/arm/mach-mx5/devices.c | 120 + trunk/arch/arm/mach-mx5/devices.h | 5 + trunk/arch/arm/mach-mx5/ehci.c | 2 +- .../arm/mach-mx5/eukrea_mbimx51-baseboard.c | 3 +- .../arm/mach-mx5/eukrea_mbimxsd-baseboard.c | 6 +- trunk/arch/arm/mach-mx5/mm-mx50.c | 72 + trunk/arch/arm/mach-mx5/mm.c | 90 +- trunk/arch/arm/mach-mx5/mx51_efika.c | 20 +- trunk/arch/arm/mach-mx5/pm-imx5.c | 3 +- trunk/arch/arm/mach-mx5/system.c | 1 - trunk/arch/arm/mach-mxs/Kconfig | 6 - trunk/arch/arm/mach-mxs/Makefile | 6 +- trunk/arch/arm/mach-mxs/clock-mx28.c | 8 +- trunk/arch/arm/mach-mxs/devices-mx23.h | 2 - trunk/arch/arm/mach-mxs/devices-mx28.h | 5 - trunk/arch/arm/mach-mxs/devices/Kconfig | 6 - trunk/arch/arm/mach-mxs/devices/Makefile | 2 - .../arm/mach-mxs/devices/platform-mxs-saif.c | 60 - .../mach-mxs/devices/platform-rtc-stmp3xxx.c | 51 - .../mach-mxs/include/mach/devices-common.h | 12 - trunk/arch/arm/mach-mxs/include/mach/gpio.h | 4 + trunk/arch/arm/mach-mxs/include/mach/mxs.h | 2 - trunk/arch/arm/mach-mxs/mach-mx23evk.c | 2 +- trunk/arch/arm/mach-mxs/mach-mx28evk.c | 98 +- trunk/arch/arm/mach-mxs/mach-stmp378x_devb.c | 2 +- trunk/arch/arm/mach-mxs/mach-tx28.c | 1 - trunk/arch/arm/mach-mxs/{mm.c => mm-mx23.c} | 19 - trunk/arch/arm/mach-mxs/mm-mx28.c | 44 + trunk/arch/arm/mach-prima2/Makefile | 1 - trunk/arch/arm/mach-prima2/irq.c | 3 - trunk/arch/arm/mach-prima2/rtciobrg.c | 139 - trunk/arch/arm/mach-s3c2443/clock.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-smdk6410.c | 39 - trunk/arch/arm/mach-s5pv210/clock.c | 6 +- trunk/arch/arm/mm/cache-v7.S | 20 + trunk/arch/arm/mm/dma-mapping.c | 2 + trunk/arch/arm/plat-mxc/Kconfig | 39 +- trunk/arch/arm/plat-mxc/audmux-v2.c | 18 +- trunk/arch/arm/plat-mxc/avic.c | 91 +- trunk/arch/arm/plat-mxc/cpu.c | 9 - trunk/arch/arm/plat-mxc/devices.c | 14 + trunk/arch/arm/plat-mxc/devices/Kconfig | 9 +- trunk/arch/arm/plat-mxc/devices/Makefile | 2 +- .../arm/plat-mxc/devices/platform-ahci-imx.c | 156 + .../plat-mxc/devices/platform-fsl-usb2-udc.c | 5 - .../arm/plat-mxc/devices/platform-imx-i2c.c | 6 - .../arm/plat-mxc/devices/platform-mxc-ehci.c | 9 - .../arm/plat-mxc/devices/platform-pata_imx.c | 59 - trunk/arch/arm/plat-mxc/include/mach/common.h | 27 +- .../plat-mxc/include/mach/devices-common.h | 18 +- .../arm/plat-mxc/include/mach/entry-macro.S | 58 +- trunk/arch/arm/plat-mxc/include/mach/gpio.h | 9 +- .../arch/arm/plat-mxc/include/mach/hardware.h | 13 +- trunk/arch/arm/plat-mxc/include/mach/io.h | 22 +- .../arm/plat-mxc/include/mach/iomux-mx3.h | 1 - .../arm/plat-mxc/include/mach/iomux-mx51.h | 2270 +++++++---- .../arm/plat-mxc/include/mach/iomux-mx53.h | 3530 +++++++++++------ .../arch/arm/plat-mxc/include/mach/iomux-v3.h | 1 - trunk/arch/arm/plat-mxc/include/mach/memory.h | 16 +- trunk/arch/arm/plat-mxc/include/mach/mx25.h | 5 - trunk/arch/arm/plat-mxc/include/mach/mx35.h | 2 +- trunk/arch/arm/plat-mxc/include/mach/mx3x.h | 18 +- trunk/arch/arm/plat-mxc/include/mach/mx51.h | 183 +- trunk/arch/arm/plat-mxc/include/mach/mx53.h | 1 - trunk/arch/arm/plat-mxc/include/mach/mxc.h | 7 + trunk/arch/arm/plat-mxc/include/mach/system.h | 35 +- trunk/arch/arm/plat-mxc/irq-common.c | 21 +- trunk/arch/arm/plat-mxc/irq-common.h | 3 +- trunk/arch/arm/plat-mxc/pwm.c | 2 +- trunk/arch/arm/plat-mxc/system.c | 3 - trunk/arch/arm/plat-mxc/tzic.c | 32 +- trunk/arch/arm/plat-s5p/irq-gpioint.c | 9 +- trunk/arch/arm/plat-samsung/clock.c | 11 + .../arm/plat-samsung/include/plat/clock.h | 8 + .../include/plat/watchdog-reset.h | 10 +- trunk/arch/powerpc/platforms/powermac/pci.c | 14 + trunk/arch/s390/include/asm/elf.h | 3 +- trunk/arch/s390/include/asm/pgtable.h | 2 + trunk/arch/s390/kernel/asm-offsets.c | 3 + trunk/arch/s390/kernel/entry64.S | 6 + trunk/arch/s390/kvm/kvm-s390.c | 5 +- trunk/arch/s390/mm/pgtable.c | 17 +- trunk/arch/sparc/include/asm/spitfire.h | 2 + trunk/arch/sparc/include/asm/xor_64.h | 4 +- trunk/arch/sparc/kernel/cpu.c | 12 + trunk/arch/sparc/kernel/cpumap.c | 2 + trunk/arch/sparc/kernel/head_64.S | 25 +- trunk/arch/sparc/kernel/process_32.c | 3 +- trunk/arch/sparc/kernel/process_64.c | 3 - trunk/arch/sparc/kernel/setup_32.c | 2 +- trunk/arch/sparc/kernel/setup_64.c | 18 +- trunk/arch/sparc/mm/init_64.c | 5 + trunk/arch/um/Kconfig.x86 | 4 + trunk/arch/um/Makefile | 2 +- trunk/arch/um/drivers/line.c | 61 +- trunk/arch/um/drivers/xterm.c | 1 + trunk/arch/um/include/asm/ptrace-generic.h | 4 - trunk/arch/um/include/shared/line.h | 1 + trunk/arch/um/include/shared/registers.h | 2 +- trunk/arch/um/kernel/process.c | 2 +- trunk/arch/um/kernel/ptrace.c | 28 - trunk/arch/um/os-Linux/registers.c | 9 +- trunk/arch/um/os-Linux/skas/mem.c | 2 +- trunk/arch/um/os-Linux/skas/process.c | 19 +- trunk/arch/um/sys-i386/asm/ptrace.h | 5 - trunk/arch/um/sys-i386/ptrace.c | 28 +- trunk/arch/um/sys-i386/shared/sysdep/ptrace.h | 1 + trunk/arch/um/sys-x86_64/ptrace.c | 12 +- .../arch/um/sys-x86_64/shared/sysdep/ptrace.h | 1 + trunk/arch/x86/include/asm/alternative-asm.h | 1 - trunk/arch/x86/include/asm/alternative.h | 4 - trunk/arch/x86/include/asm/cpufeature.h | 2 - trunk/arch/x86/kernel/rtc.c | 23 +- trunk/arch/x86/kvm/emulate.c | 2 +- trunk/arch/x86/kvm/mmu.c | 3 +- trunk/arch/x86/platform/mrst/vrtc.c | 9 + trunk/arch/x86/xen/mmu.c | 6 +- trunk/arch/x86/xen/setup.c | 10 +- trunk/arch/x86/xen/smp.c | 1 - trunk/arch/x86/xen/time.c | 5 +- trunk/block/blk-cgroup.c | 37 +- trunk/block/blk-core.c | 28 +- trunk/block/blk-softirq.c | 2 +- trunk/block/blk-sysfs.c | 15 +- trunk/block/cfq-iosched.c | 20 +- trunk/drivers/acpi/acpica/acconfig.h | 2 +- trunk/drivers/acpi/apei/Kconfig | 1 + trunk/drivers/acpi/apei/apei-base.c | 2 +- trunk/drivers/base/power/clock_ops.c | 75 +- trunk/drivers/block/floppy.c | 8 +- trunk/drivers/block/xen-blkback/common.h | 2 +- trunk/drivers/block/xen-blkback/xenbus.c | 6 +- trunk/drivers/bluetooth/btusb.c | 6 + trunk/drivers/bluetooth/btwilink.c | 16 +- trunk/drivers/char/tpm/Kconfig | 1 + trunk/drivers/char/tpm/tpm.c | 9 +- trunk/drivers/char/tpm/tpm_nsc.c | 2 - trunk/drivers/cpufreq/pcc-cpufreq.c | 3 + trunk/drivers/firewire/ohci.c | 3 + trunk/drivers/gpio/gpio-generic.c | 15 +- trunk/drivers/gpio/gpio-mxc.c | 12 - trunk/drivers/gpio/gpio-mxs.c | 2 - trunk/drivers/gpu/drm/i915/i915_drv.c | 4 +- trunk/drivers/gpu/drm/i915/intel_display.c | 22 +- trunk/drivers/gpu/drm/i915/intel_drv.h | 3 - trunk/drivers/gpu/drm/i915/intel_sdvo.c | 88 +- trunk/drivers/gpu/drm/radeon/atombios_dp.c | 16 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 58 +- trunk/drivers/gpu/drm/radeon/ni.c | 44 +- trunk/drivers/gpu/drm/radeon/r100.c | 22 +- trunk/drivers/gpu/drm/radeon/r200.c | 4 +- trunk/drivers/gpu/drm/radeon/r600.c | 14 +- trunk/drivers/gpu/drm/radeon/radeon.h | 7 +- trunk/drivers/gpu/drm/radeon/radeon_asic.h | 8 +- .../gpu/drm/radeon/radeon_connectors.c | 8 +- trunk/drivers/gpu/drm/radeon/radeon_cursor.c | 40 +- trunk/drivers/gpu/drm/radeon/radeon_display.c | 2 +- .../drivers/gpu/drm/radeon/radeon_encoders.c | 9 +- trunk/drivers/gpu/drm/radeon/radeon_ttm.c | 7 +- trunk/drivers/gpu/drm/radeon/rv770.c | 51 - trunk/drivers/gpu/drm/ttm/ttm_bo.c | 3 +- trunk/drivers/hid/hid-wacom.c | 2 + trunk/drivers/hwmon/coretemp.c | 216 +- trunk/drivers/hwmon/ds620.c | 2 +- trunk/drivers/hwmon/pmbus/pmbus_core.c | 9 +- trunk/drivers/hwmon/w83791d.c | 4 +- trunk/drivers/ide/ide-disk.c | 7 +- trunk/drivers/infiniband/hw/cxgb3/iwch_cm.c | 10 +- trunk/drivers/input/keyboard/adp5588-keys.c | 1 - trunk/drivers/input/misc/cm109.c | 2 +- trunk/drivers/input/mouse/bcm5974.c | 20 + trunk/drivers/input/tablet/wacom_sys.c | 14 - trunk/drivers/input/tablet/wacom_wac.c | 45 +- trunk/drivers/input/touchscreen/wacom_w8001.c | 2 + trunk/drivers/iommu/dmar.c | 2 +- trunk/drivers/leds/ledtrig-timer.c | 2 + trunk/drivers/media/video/omap/omap_vout.c | 13 - trunk/drivers/media/video/omap3isp/ispccdc.c | 1 + trunk/drivers/media/video/uvc/uvc_driver.c | 2 +- trunk/drivers/media/video/uvc/uvc_entity.c | 2 +- trunk/drivers/media/video/uvc/uvc_video.c | 10 +- trunk/drivers/media/video/uvc/uvcvideo.h | 2 +- trunk/drivers/media/video/v4l2-dev.c | 11 + trunk/drivers/media/video/v4l2-device.c | 2 + trunk/drivers/mfd/jz4740-adc.c | 2 +- trunk/drivers/mfd/max8997.c | 5 + trunk/drivers/mfd/omap-usb-host.c | 2 +- trunk/drivers/mfd/tps65910-irq.c | 2 + trunk/drivers/mfd/twl4030-madc.c | 5 +- trunk/drivers/mfd/wm8350-gpio.c | 4 +- trunk/drivers/misc/lis3lv02d/lis3lv02d.c | 14 +- trunk/drivers/misc/pti.c | 12 +- trunk/drivers/mmc/card/block.c | 3 + trunk/drivers/mmc/host/davinci_mmc.c | 13 - trunk/drivers/net/Kconfig | 11 +- trunk/drivers/net/bnx2x/bnx2x.h | 124 +- trunk/drivers/net/bnx2x/bnx2x_cmn.c | 27 +- trunk/drivers/net/bnx2x/bnx2x_dcb.c | 1 + trunk/drivers/net/bnx2x/bnx2x_ethtool.c | 48 +- trunk/drivers/net/bnx2x/bnx2x_link.c | 46 +- trunk/drivers/net/bnx2x/bnx2x_main.c | 178 +- trunk/drivers/net/bnx2x/bnx2x_reg.h | 19 +- trunk/drivers/net/bnx2x/bnx2x_stats.c | 7 +- trunk/drivers/net/bonding/bond_3ad.c | 3 +- trunk/drivers/net/bonding/bond_alb.c | 3 +- trunk/drivers/net/bonding/bond_main.c | 13 +- trunk/drivers/net/can/ti_hecc.c | 1 + trunk/drivers/net/cxgb3/cxgb3_offload.c | 23 +- trunk/drivers/net/cxgb3/l2t.c | 15 +- trunk/drivers/net/cxgb3/l2t.h | 16 +- trunk/drivers/net/cxgb4/cxgb4_main.c | 3 + trunk/drivers/net/e1000/e1000_hw.c | 6 + trunk/drivers/net/gianfar_ethtool.c | 8 +- trunk/drivers/net/greth.c | 12 +- trunk/drivers/net/greth.h | 1 + trunk/drivers/net/ibmveth.c | 52 +- trunk/drivers/net/ixgbe/ixgbe_main.c | 4 +- trunk/drivers/net/netconsole.c | 8 +- trunk/drivers/net/pch_gbe/pch_gbe.h | 12 +- trunk/drivers/net/pch_gbe/pch_gbe_main.c | 346 +- trunk/drivers/net/phy/dp83640.c | 4 +- trunk/drivers/net/ppp_generic.c | 7 +- trunk/drivers/net/pxa168_eth.c | 1 + trunk/drivers/net/r8169.c | 32 +- trunk/drivers/net/sfc/efx.c | 18 +- trunk/drivers/net/sfc/io.h | 6 - trunk/drivers/net/sfc/mcdi.c | 46 +- trunk/drivers/net/sfc/nic.c | 7 - trunk/drivers/net/sfc/nic.h | 2 - trunk/drivers/net/sfc/siena.c | 25 +- trunk/drivers/net/sfc/workarounds.h | 2 - trunk/drivers/net/tg3.c | 2 - trunk/drivers/net/usb/ipheth.c | 5 + .../net/wireless/ath/ath9k/ar9002_calib.c | 3 +- .../wireless/ath/ath9k/ar9003_2p2_initvals.h | 2 +- .../net/wireless/ath/ath9k/ar9003_phy.c | 2 +- trunk/drivers/net/wireless/ath/ath9k/main.c | 6 + trunk/drivers/net/wireless/ath/ath9k/recv.c | 10 +- trunk/drivers/net/wireless/b43/main.c | 3 +- trunk/drivers/net/wireless/ipw2x00/ipw2100.c | 21 +- trunk/drivers/net/wireless/ipw2x00/ipw2200.c | 39 +- .../net/wireless/iwlegacy/iwl-3945-rs.c | 13 +- .../drivers/net/wireless/iwlegacy/iwl-core.c | 4 +- .../drivers/net/wireless/iwlegacy/iwl-hcmd.c | 2 +- trunk/drivers/net/wireless/iwlegacy/iwl-tx.c | 4 +- .../net/wireless/iwlegacy/iwl3945-base.c | 8 +- .../net/wireless/iwlegacy/iwl4965-base.c | 10 +- .../net/wireless/iwlwifi/iwl-agn-ucode.c | 2 +- trunk/drivers/net/wireless/iwlwifi/iwl-agn.c | 5 + trunk/drivers/net/wireless/iwlwifi/iwl-scan.c | 30 +- .../net/wireless/iwlwifi/iwl-trans-tx-pcie.c | 2 + trunk/drivers/net/wireless/rt2x00/rt2800lib.c | 47 +- trunk/drivers/net/wireless/rtlwifi/core.c | 8 + .../net/wireless/rtlwifi/rtl8192cu/trx.c | 11 +- trunk/drivers/net/wireless/rtlwifi/usb.c | 1 + trunk/drivers/net/xen-netback/interface.c | 4 +- trunk/drivers/pci/pci.c | 6 +- trunk/drivers/pci/probe.c | 17 +- trunk/drivers/rtc/rtc-imxdi.c | 1 + trunk/drivers/rtc/rtc-s3c.c | 26 + trunk/drivers/s390/cio/cio.c | 8 +- trunk/drivers/scsi/3w-9xxx.c | 2 + trunk/drivers/scsi/Kconfig | 1 + trunk/drivers/scsi/Makefile | 2 +- trunk/drivers/scsi/aacraid/commsup.c | 2 + trunk/drivers/scsi/bnx2i/bnx2i_hwi.c | 2 +- trunk/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 2 +- trunk/drivers/scsi/fcoe/fcoe.c | 13 +- trunk/drivers/scsi/hpsa.c | 57 +- trunk/drivers/scsi/isci/host.c | 13 +- trunk/drivers/scsi/isci/host.h | 3 + trunk/drivers/scsi/isci/init.c | 47 +- trunk/drivers/scsi/isci/phy.c | 13 + trunk/drivers/scsi/isci/registers.h | 12 + trunk/drivers/scsi/isci/request.c | 30 +- .../scsi/isci/unsolicited_frame_control.c | 2 +- .../scsi/isci/unsolicited_frame_control.h | 2 +- trunk/drivers/scsi/libfc/fc_exch.c | 59 +- trunk/drivers/scsi/libfc/fc_fcp.c | 11 +- trunk/drivers/scsi/libfc/fc_lport.c | 11 +- trunk/drivers/scsi/libsas/sas_expander.c | 2 +- trunk/drivers/scsi/qla2xxx/qla_attr.c | 7 +- trunk/drivers/scsi/qla2xxx/qla_dbg.c | 36 +- trunk/drivers/scsi/qla2xxx/qla_def.h | 2 + trunk/drivers/scsi/qla2xxx/qla_fw.h | 5 + trunk/drivers/scsi/qla2xxx/qla_init.c | 3 - trunk/drivers/scsi/qla2xxx/qla_inline.h | 29 + trunk/drivers/scsi/qla2xxx/qla_iocb.c | 282 +- trunk/drivers/scsi/qla2xxx/qla_isr.c | 109 +- trunk/drivers/scsi/qla2xxx/qla_mid.c | 2 +- trunk/drivers/scsi/qla2xxx/qla_nx.c | 25 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 30 +- trunk/drivers/scsi/qla2xxx/qla_version.h | 2 +- trunk/drivers/spi/spi-fsl-spi.c | 3 + trunk/drivers/spi/spi-imx.c | 4 +- trunk/drivers/spi/spi-topcliff-pch.c | 93 +- .../drivers/staging/comedi/drivers/ni_labpc.c | 4 +- trunk/drivers/staging/zcache/zcache-main.c | 2 +- .../target/iscsi/iscsi_target_parameters.c | 2 +- .../drivers/target/iscsi/iscsi_target_util.c | 270 +- trunk/drivers/target/target_core_cdb.c | 35 +- trunk/drivers/target/target_core_transport.c | 9 +- trunk/drivers/target/tcm_fc/tcm_fc.h | 12 +- trunk/drivers/target/tcm_fc/tfc_cmd.c | 90 +- trunk/drivers/target/tcm_fc/tfc_conf.c | 7 +- trunk/drivers/target/tcm_fc/tfc_io.c | 62 +- trunk/drivers/tty/serial/crisv10.c | 4 +- trunk/drivers/usb/host/ohci-at91.c | 239 +- trunk/drivers/usb/host/xhci-hub.c | 2 +- trunk/drivers/usb/host/xhci-ring.c | 19 + trunk/drivers/watchdog/hpwdt.c | 9 +- trunk/drivers/watchdog/lantiq_wdt.c | 8 +- trunk/drivers/watchdog/sbc_epx_c3.c | 2 +- trunk/drivers/watchdog/watchdog_dev.c | 14 +- trunk/drivers/xen/events.c | 40 +- trunk/drivers/zorro/zorro.c | 7 +- trunk/fs/btrfs/file.c | 33 +- trunk/fs/btrfs/inode.c | 18 +- trunk/fs/btrfs/ioctl.c | 21 +- trunk/fs/cifs/cifsencrypt.c | 54 +- trunk/fs/cifs/cifsfs.c | 10 +- trunk/fs/cifs/cifssmb.c | 3 +- trunk/fs/cifs/connect.c | 4 +- trunk/fs/ext3/inode.c | 4 +- trunk/fs/ext3/namei.c | 3 +- trunk/fs/ext4/inode.c | 4 +- trunk/fs/ext4/namei.c | 3 +- trunk/fs/gfs2/log.c | 4 +- trunk/fs/gfs2/meta_io.c | 6 +- trunk/fs/gfs2/ops_fstype.c | 2 +- trunk/fs/gfs2/quota.c | 2 +- trunk/fs/hfsplus/super.c | 15 +- trunk/fs/hfsplus/wrapper.c | 4 +- trunk/fs/namei.c | 12 +- trunk/fs/namespace.c | 2 +- trunk/fs/nfs/nfs4_fs.h | 8 +- trunk/fs/nfs/nfs4proc.c | 20 +- trunk/fs/nfs/nfs4renewd.c | 12 +- trunk/fs/nfs/nfs4state.c | 6 + trunk/fs/nfs/super.c | 25 +- trunk/fs/nfs/write.c | 2 +- trunk/fs/proc/task_mmu.c | 80 +- trunk/fs/quota/quota.c | 2 +- trunk/fs/stat.c | 2 - trunk/fs/xfs/xfs_aops.c | 3 +- trunk/include/linux/basic_mmio_gpio.h | 15 +- trunk/include/linux/blk_types.h | 6 +- trunk/include/linux/blkdev.h | 1 - trunk/include/linux/fs.h | 2 - trunk/include/linux/irqdomain.h | 1 + trunk/include/linux/kvm.h | 1 + trunk/include/linux/memcontrol.h | 19 - trunk/include/linux/mfd/wm8994/pdata.h | 2 +- trunk/include/linux/namei.h | 3 +- trunk/include/linux/pci.h | 3 +- trunk/include/linux/ptp_classify.h | 13 +- trunk/include/linux/rtc/sirfsoc_rtciobrg.h | 18 - trunk/include/linux/sched.h | 1 - trunk/include/linux/skbuff.h | 1 + trunk/include/linux/snmp.h | 2 + trunk/include/linux/swap.h | 6 + trunk/include/net/flow.h | 25 +- trunk/include/net/request_sock.h | 3 +- trunk/include/net/sctp/command.h | 1 + trunk/include/net/tcp.h | 22 +- trunk/include/net/transp_v6.h | 1 + trunk/include/trace/events/writeback.h | 10 +- trunk/init/main.c | 19 +- trunk/kernel/irq/chip.c | 2 +- trunk/kernel/irq/irqdomain.c | 6 +- trunk/kernel/posix-cpu-timers.c | 5 +- trunk/kernel/ptrace.c | 23 +- trunk/kernel/resource.c | 7 +- trunk/kernel/sched.c | 26 +- trunk/kernel/sched_rt.c | 4 +- trunk/kernel/taskstats.c | 1 + trunk/kernel/tsacct.c | 15 +- trunk/kernel/workqueue.c | 7 +- trunk/lib/sha1.c | 1 + trunk/lib/xz/xz_dec_bcj.c | 27 +- trunk/mm/backing-dev.c | 30 +- trunk/mm/filemap.c | 6 +- trunk/mm/memcontrol.c | 172 +- trunk/mm/mempolicy.c | 9 +- trunk/mm/slub.c | 2 +- trunk/mm/vmalloc.c | 8 + trunk/mm/vmscan.c | 66 +- trunk/mm/vmstat.c | 4 +- trunk/net/batman-adv/soft-interface.c | 10 +- trunk/net/bluetooth/hci_event.c | 17 +- trunk/net/bridge/netfilter/Kconfig | 2 +- trunk/net/caif/caif_dev.c | 6 +- trunk/net/can/af_can.c | 2 +- trunk/net/can/bcm.c | 53 +- trunk/net/ceph/ceph_common.c | 1 + trunk/net/ceph/messenger.c | 1 + trunk/net/ceph/osd_client.c | 4 +- trunk/net/ceph/osdmap.c | 84 +- trunk/net/core/dev.c | 8 + trunk/net/core/fib_rules.c | 4 +- trunk/net/core/flow.c | 36 +- trunk/net/core/skbuff.c | 22 +- trunk/net/ethernet/eth.c | 2 +- trunk/net/ipv4/af_inet.c | 7 +- trunk/net/ipv4/fib_semantics.c | 10 +- trunk/net/ipv4/netfilter/ip_queue.c | 12 +- trunk/net/ipv4/proc.c | 2 + trunk/net/ipv4/tcp_input.c | 2 +- trunk/net/ipv4/tcp_ipv4.c | 49 +- trunk/net/ipv6/addrconf.c | 4 +- trunk/net/ipv6/datagram.c | 5 +- trunk/net/ipv6/ip6_flowlabel.c | 8 +- trunk/net/ipv6/ip6mr.c | 8 +- trunk/net/ipv6/ipv6_sockglue.c | 2 +- trunk/net/ipv6/netfilter/ip6_queue.c | 12 +- trunk/net/ipv6/raw.c | 4 +- trunk/net/ipv6/route.c | 37 +- trunk/net/ipv6/tcp_ipv6.c | 34 +- trunk/net/ipv6/udp.c | 4 +- trunk/net/irda/irsysctl.c | 6 +- trunk/net/irda/qos.c | 6 +- trunk/net/mac80211/sta_info.c | 2 +- trunk/net/netfilter/nf_conntrack_pptp.c | 1 + trunk/net/netfilter/nf_conntrack_proto_tcp.c | 6 +- trunk/net/netfilter/nfnetlink_queue.c | 4 +- trunk/net/netfilter/xt_rateest.c | 9 +- trunk/net/packet/af_packet.c | 5 +- trunk/net/rds/iw_rdma.c | 13 +- trunk/net/sched/cls_rsvp.h | 27 +- trunk/net/sctp/sm_sideeffect.c | 5 + trunk/net/sctp/sm_statefuns.c | 6 + trunk/net/wireless/nl80211.c | 5 +- trunk/net/wireless/reg.c | 1 + trunk/net/wireless/sme.c | 2 + trunk/net/xfrm/xfrm_input.c | 5 + trunk/net/xfrm/xfrm_policy.c | 10 +- trunk/sound/core/pcm_lib.c | 33 +- trunk/sound/pci/fm801.c | 15 +- trunk/sound/pci/hda/hda_codec.c | 6 +- trunk/sound/pci/hda/hda_intel.c | 9 +- trunk/sound/pci/hda/patch_cirrus.c | 2 +- trunk/sound/pci/hda/patch_realtek.c | 17 +- trunk/sound/pci/hda/patch_sigmatel.c | 2 + trunk/sound/soc/blackfin/bf5xx-ad193x.c | 4 +- trunk/sound/soc/blackfin/bf5xx-ad73311.c | 2 +- trunk/sound/soc/codecs/ssm2602.c | 3 +- trunk/sound/soc/codecs/wm8753.c | 4 +- trunk/sound/soc/codecs/wm8962.c | 26 - trunk/sound/soc/fsl/mpc5200_dma.c | 6 +- trunk/sound/soc/imx/imx-pcm-fiq.c | 1 - trunk/sound/soc/kirkwood/kirkwood-i2s.c | 2 +- trunk/sound/soc/omap/mcpdm.c | 2 +- trunk/sound/soc/omap/mcpdm.h | 2 +- trunk/sound/soc/omap/omap-mcbsp.c | 6 + trunk/sound/soc/pxa/zylonite.c | 8 +- trunk/sound/soc/soc-cache.c | 12 +- trunk/sound/soc/soc-core.c | 22 +- trunk/sound/soc/soc-dapm.c | 2 +- trunk/sound/soc/soc-jack.c | 2 +- trunk/sound/usb/card.c | 7 +- trunk/tools/perf/Makefile | 9 +- trunk/tools/perf/builtin-record.c | 3 + trunk/tools/perf/builtin-test.c | 2 +- trunk/tools/perf/builtin-top.c | 9 +- trunk/tools/perf/util/event.c | 5 + trunk/tools/perf/util/event.h | 2 +- trunk/tools/perf/util/evlist.c | 13 + trunk/tools/perf/util/evlist.h | 1 + trunk/tools/perf/util/evsel.c | 57 +- trunk/tools/perf/util/probe-finder.c | 2 +- trunk/tools/perf/util/python.c | 2 +- trunk/tools/perf/util/session.h | 3 +- trunk/tools/perf/util/sort.c | 10 +- trunk/tools/perf/util/symbol.c | 153 +- 588 files changed, 9303 insertions(+), 7027 deletions(-) create mode 100644 trunk/Documentation/ABI/testing/sysfs-class-scsi_host create mode 100644 trunk/arch/arm/configs/mx1_defconfig create mode 100644 trunk/arch/arm/configs/mx21_defconfig rename trunk/arch/arm/configs/{imx_v4_v5_defconfig => mx27_defconfig} (69%) rename trunk/arch/arm/configs/{mx5_defconfig => mx51_defconfig} (82%) create mode 100644 trunk/arch/arm/mach-imx/cache-l2x0.c delete mode 100644 trunk/arch/arm/mach-imx/cpu-imx25.c delete mode 100644 trunk/arch/arm/mach-imx/mm-imx3.c create mode 100644 trunk/arch/arm/mach-imx/mm-imx31.c create mode 100644 trunk/arch/arm/mach-imx/mm-imx35.c create mode 100644 trunk/arch/arm/mach-mx5/devices.c create mode 100644 trunk/arch/arm/mach-mx5/devices.h create mode 100644 trunk/arch/arm/mach-mx5/mm-mx50.c delete mode 100644 trunk/arch/arm/mach-mxs/devices/platform-mxs-saif.c delete mode 100644 trunk/arch/arm/mach-mxs/devices/platform-rtc-stmp3xxx.c rename trunk/arch/arm/mach-mxs/{mm.c => mm-mx23.c} (75%) create mode 100644 trunk/arch/arm/mach-mxs/mm-mx28.c delete mode 100644 trunk/arch/arm/mach-prima2/rtciobrg.c create mode 100644 trunk/arch/arm/plat-mxc/devices/platform-ahci-imx.c delete mode 100644 trunk/arch/arm/plat-mxc/devices/platform-pata_imx.c delete mode 100644 trunk/include/linux/rtc/sirfsoc_rtciobrg.h diff --git a/[refs] b/[refs] index fb3e870ce5b9..75f7c9263a89 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 112d17d6f75b93e1dcaec2e2232a411148b3bf71 +refs/heads/master: d546029043202ab306630fd2a10221feaed029e3 diff --git a/trunk/Documentation/ABI/testing/sysfs-class-scsi_host b/trunk/Documentation/ABI/testing/sysfs-class-scsi_host new file mode 100644 index 000000000000..29a4f892e433 --- /dev/null +++ b/trunk/Documentation/ABI/testing/sysfs-class-scsi_host @@ -0,0 +1,13 @@ +What: /sys/class/scsi_host/hostX/isci_id +Date: June 2011 +Contact: Dave Jiang +Description: + This file contains the enumerated host ID for the Intel + SCU controller. The Intel(R) C600 Series Chipset SATA/SAS + Storage Control Unit embeds up to two 4-port controllers in + a single PCI device. The controllers are enumerated in order + which usually means the lowest number scsi_host corresponds + with the first controller, but this association is not + guaranteed. The 'isci_id' attribute unambiguously identifies + the controller index: '0' for the first controller, + '1' for the second. diff --git a/trunk/Documentation/cgroups/memory.txt b/trunk/Documentation/cgroups/memory.txt index 6f3c598971fc..06eb6d957c83 100644 --- a/trunk/Documentation/cgroups/memory.txt +++ b/trunk/Documentation/cgroups/memory.txt @@ -380,7 +380,7 @@ will be charged as a new owner of it. 5.2 stat file -5.2.1 memory.stat file includes following statistics +memory.stat file includes following statistics # per-memory cgroup local status cache - # of bytes of page cache memory. @@ -438,89 +438,6 @@ Note: file_mapped is accounted only when the memory cgroup is owner of page cache.) -5.2.2 memory.vmscan_stat - -memory.vmscan_stat includes statistics information for memory scanning and -freeing, reclaiming. The statistics shows memory scanning information since -memory cgroup creation and can be reset to 0 by writing 0 as - - #echo 0 > ../memory.vmscan_stat - -This file contains following statistics. - -[param]_[file_or_anon]_pages_by_[reason]_[under_heararchy] -[param]_elapsed_ns_by_[reason]_[under_hierarchy] - -For example, - - scanned_file_pages_by_limit indicates the number of scanned - file pages at vmscan. - -Now, 3 parameters are supported - - scanned - the number of pages scanned by vmscan - rotated - the number of pages activated at vmscan - freed - the number of pages freed by vmscan - -If "rotated" is high against scanned/freed, the memcg seems busy. - -Now, 2 reason are supported - - limit - the memory cgroup's limit - system - global memory pressure + softlimit - (global memory pressure not under softlimit is not handled now) - -When under_hierarchy is added in the tail, the number indicates the -total memcg scan of its children and itself. - -elapsed_ns is a elapsed time in nanosecond. This may include sleep time -and not indicates CPU usage. So, please take this as just showing -latency. - -Here is an example. - -# cat /cgroup/memory/A/memory.vmscan_stat -scanned_pages_by_limit 9471864 -scanned_anon_pages_by_limit 6640629 -scanned_file_pages_by_limit 2831235 -rotated_pages_by_limit 4243974 -rotated_anon_pages_by_limit 3971968 -rotated_file_pages_by_limit 272006 -freed_pages_by_limit 2318492 -freed_anon_pages_by_limit 962052 -freed_file_pages_by_limit 1356440 -elapsed_ns_by_limit 351386416101 -scanned_pages_by_system 0 -scanned_anon_pages_by_system 0 -scanned_file_pages_by_system 0 -rotated_pages_by_system 0 -rotated_anon_pages_by_system 0 -rotated_file_pages_by_system 0 -freed_pages_by_system 0 -freed_anon_pages_by_system 0 -freed_file_pages_by_system 0 -elapsed_ns_by_system 0 -scanned_pages_by_limit_under_hierarchy 9471864 -scanned_anon_pages_by_limit_under_hierarchy 6640629 -scanned_file_pages_by_limit_under_hierarchy 2831235 -rotated_pages_by_limit_under_hierarchy 4243974 -rotated_anon_pages_by_limit_under_hierarchy 3971968 -rotated_file_pages_by_limit_under_hierarchy 272006 -freed_pages_by_limit_under_hierarchy 2318492 -freed_anon_pages_by_limit_under_hierarchy 962052 -freed_file_pages_by_limit_under_hierarchy 1356440 -elapsed_ns_by_limit_under_hierarchy 351386416101 -scanned_pages_by_system_under_hierarchy 0 -scanned_anon_pages_by_system_under_hierarchy 0 -scanned_file_pages_by_system_under_hierarchy 0 -rotated_pages_by_system_under_hierarchy 0 -rotated_anon_pages_by_system_under_hierarchy 0 -rotated_file_pages_by_system_under_hierarchy 0 -freed_pages_by_system_under_hierarchy 0 -freed_anon_pages_by_system_under_hierarchy 0 -freed_file_pages_by_system_under_hierarchy 0 -elapsed_ns_by_system_under_hierarchy 0 - 5.3 swappiness Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only. diff --git a/trunk/Documentation/hwmon/coretemp b/trunk/Documentation/hwmon/coretemp index fa8776ab9b18..84d46c0c71a3 100644 --- a/trunk/Documentation/hwmon/coretemp +++ b/trunk/Documentation/hwmon/coretemp @@ -35,13 +35,6 @@ the Out-Of-Spec bit. Following table summarizes the exported sysfs files: All Sysfs entries are named with their core_id (represented here by 'X'). tempX_input - Core temperature (in millidegrees Celsius). tempX_max - All cooling devices should be turned on (on Core2). - Initialized with IA32_THERM_INTERRUPT. When the CPU - temperature reaches this temperature, an interrupt is - generated and tempX_max_alarm is set. -tempX_max_hyst - If the CPU temperature falls below than temperature, - an interrupt is generated and tempX_max_alarm is reset. -tempX_max_alarm - Set if the temperature reaches or exceeds tempX_max. - Reset if the temperature drops to or below tempX_max_hyst. tempX_crit - Maximum junction temperature (in millidegrees Celsius). tempX_crit_alarm - Set when Out-of-spec bit is set, never clears. Correct CPU operation is no longer guaranteed. @@ -49,9 +42,10 @@ tempX_label - Contains string "Core X", where X is processor number. For Package temp, this will be "Physical id Y", where Y is the package number. -The TjMax temperature is set to 85 degrees C if undocumented model specific -register (UMSR) 0xee has bit 30 set. If not the TjMax is 100 degrees C as -(sometimes) documented in processor datasheet. +On CPU models which support it, TjMax is read from a model-specific register. +On other models, it is set to an arbitrary value based on weak heuristics. +If these heuristics don't work for you, you can pass the correct TjMax value +as a module parameter (tjmax). Appendix A. Known TjMax lists (TBD): Some information comes from ark.intel.com diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index 614d0382e2cb..854ed5ca7e3f 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -2086,9 +2086,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. Override pmtimer IOPort with a hex value. e.g. pmtmr=0x508 - pnp.debug [PNP] - Enable PNP debug messages. This depends on the - CONFIG_PNP_DEBUG_MESSAGES option. + pnp.debug=1 [PNP] + Enable PNP debug messages (depends on the + CONFIG_PNP_DEBUG_MESSAGES option). Change at run-time + via /sys/module/pnp/parameters/debug. We always show + current resource usage; turning this on also shows + possible settings and some assignment information. pnpacpi= [ACPI] { off } diff --git a/trunk/Documentation/networking/dmfe.txt b/trunk/Documentation/networking/dmfe.txt index 8006c227fda2..25320bf19c86 100644 --- a/trunk/Documentation/networking/dmfe.txt +++ b/trunk/Documentation/networking/dmfe.txt @@ -1,3 +1,5 @@ +Note: This driver doesn't have a maintainer. + Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver for Linux. This program is free software; you can redistribute it and/or @@ -55,7 +57,6 @@ Test and make sure PCI latency is now correct for all cases. Authors: Sten Wang : Original Author -Tobias Ringstrom : Current Maintainer Contributors: diff --git a/trunk/Documentation/networking/ip-sysctl.txt b/trunk/Documentation/networking/ip-sysctl.txt index 81546990f41c..ca5cdcd0f0e3 100644 --- a/trunk/Documentation/networking/ip-sysctl.txt +++ b/trunk/Documentation/networking/ip-sysctl.txt @@ -1042,7 +1042,7 @@ conf/interface/*: The functional behaviour for certain settings is different depending on whether local forwarding is enabled or not. -accept_ra - BOOLEAN +accept_ra - INTEGER Accept Router Advertisements; autoconfigure using them. Possible values are: @@ -1106,7 +1106,7 @@ dad_transmits - INTEGER The amount of Duplicate Address Detection probes to send. Default: 1 -forwarding - BOOLEAN +forwarding - INTEGER Configure interface-specific Host/Router behaviour. Note: It is recommended to have the same setting on all diff --git a/trunk/Documentation/networking/scaling.txt b/trunk/Documentation/networking/scaling.txt index 58fd7414e6c0..8ce7c30e7230 100644 --- a/trunk/Documentation/networking/scaling.txt +++ b/trunk/Documentation/networking/scaling.txt @@ -243,7 +243,7 @@ configured. The number of entries in the global flow table is set through: The number of entries in the per-queue flow table are set through: - /sys/class/net//queues/tx-/rps_flow_cnt + /sys/class/net//queues/rx-/rps_flow_cnt == Suggested Configuration diff --git a/trunk/Documentation/vm/transhuge.txt b/trunk/Documentation/vm/transhuge.txt index 0924aaca3302..29bdf62aac09 100644 --- a/trunk/Documentation/vm/transhuge.txt +++ b/trunk/Documentation/vm/transhuge.txt @@ -123,10 +123,11 @@ be automatically shutdown if it's set to "never". khugepaged runs usually at low frequency so while one may not want to invoke defrag algorithms synchronously during the page faults, it should be worth invoking defrag at least in khugepaged. However it's -also possible to disable defrag in khugepaged: +also possible to disable defrag in khugepaged by writing 0 or enable +defrag in khugepaged by writing 1: -echo yes >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag -echo no >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag +echo 0 >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag +echo 1 >/sys/kernel/mm/transparent_hugepage/khugepaged/defrag You can also control how many pages khugepaged should scan at each pass: diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 28f65c249b97..ace8f9c81b96 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1278,7 +1278,6 @@ F: drivers/input/misc/ati_remote2.c ATLX ETHERNET DRIVERS M: Jay Cliburn M: Chris Snook -M: Jie Yang L: netdev@vger.kernel.org W: http://sourceforge.net/projects/atl1 W: http://atl1.sourceforge.net @@ -1574,7 +1573,6 @@ F: drivers/scsi/bfa/ BROCADE BNA 10 GIGABIT ETHERNET DRIVER M: Rasesh Mody -M: Debashis Dutt L: netdev@vger.kernel.org S: Supported F: drivers/net/bna/ @@ -1758,7 +1756,6 @@ F: Documentation/zh_CN/ CISCO VIC ETHERNET NIC DRIVER M: Christian Benvenuti -M: Vasanthy Kolluri M: Roopa Prabhu M: David Wang S: Supported @@ -3262,6 +3259,17 @@ F: Documentation/input/multi-touch-protocol.txt F: drivers/input/input-mt.c K: \b(ABS|SYN)_MT_ +INTEL C600 SERIES SAS CONTROLLER DRIVER +M: Intel SCU Linux support +M: Dan Williams +M: Dave Jiang +M: Ed Nadolski +L: linux-scsi@vger.kernel.org +T: git git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git +S: Maintained +F: drivers/scsi/isci/ +F: firmware/isci/ + INTEL IDLE DRIVER M: Len Brown L: linux-pm@lists.linux-foundation.org @@ -4404,7 +4412,8 @@ L: netfilter@vger.kernel.org L: coreteam@netfilter.org W: http://www.netfilter.org/ W: http://www.iptables.org/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-2.6.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next-2.6.git S: Supported F: include/linux/netfilter* F: include/linux/netfilter/ @@ -4774,7 +4783,7 @@ F: drivers/net/wireless/orinoco/ OSD LIBRARY and FILESYSTEM M: Boaz Harrosh -M: Benny Halevy +M: Benny Halevy L: osd-dev@open-osd.org W: http://open-osd.org T: git git://git.open-osd.org/open-osd.git @@ -6365,7 +6374,6 @@ S: Supported F: arch/arm/mach-tegra TEHUTI ETHERNET DRIVER -M: Alexander Indenbaum M: Andy Gospodarek L: netdev@vger.kernel.org S: Supported @@ -7200,6 +7208,9 @@ W: http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices S: Supported F: Documentation/hwmon/wm83?? F: drivers/leds/leds-wm83*.c +F: drivers/input/misc/wm831x-on.c +F: drivers/input/touchscreen/wm831x-ts.c +F: drivers/input/touchscreen/wm97*.c F: drivers/mfd/wm8*.c F: drivers/power/wm83*.c F: drivers/rtc/rtc-wm83*.c @@ -7209,6 +7220,7 @@ F: drivers/watchdog/wm83*_wdt.c F: include/linux/mfd/wm831x/ F: include/linux/mfd/wm8350/ F: include/linux/mfd/wm8400* +F: include/linux/wm97xx.h F: include/sound/wm????.h F: sound/soc/codecs/wm* diff --git a/trunk/Makefile b/trunk/Makefile index 522fa4784e69..31f967c31e7f 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 1 SUBLEVEL = 0 -EXTRAVERSION = -rc6 +EXTRAVERSION = -rc9 NAME = "Divemaster Edition" # *DOCUMENTATION* diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 60cde53d266c..8bb936226dee 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -51,7 +51,7 @@ config GENERIC_CMOS_UPDATE def_bool y config GENERIC_GPIO - def_bool y + bool config ZONE_DMA bool diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 3c47745c7f7b..3146ed3f6eca 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -397,7 +397,6 @@ config ARCH_MXC select CLKSRC_MMIO select GENERIC_IRQ_CHIP select HAVE_SCHED_CLOCK - select MULTI_IRQ_HANDLER help Support for Freescale MXC/iMX-based family of processors @@ -1284,6 +1283,20 @@ config ARM_ERRATA_364296 processor into full low interrupt latency mode. ARM11MPCore is not affected. +config ARM_ERRATA_764369 + bool "ARM errata: Data cache line maintenance operation by MVA may not succeed" + depends on CPU_V7 && SMP + help + This option enables the workaround for erratum 764369 + affecting Cortex-A9 MPCore with two or more processors (all + current revisions). Under certain timing circumstances, a data + cache line maintenance operation by MVA targeting an Inner + Shareable memory region may fail to proceed up to either the + Point of Coherency or to the Point of Unification of the + system. This workaround adds a DSB instruction before the + relevant cache maintenance functions and sets a specific bit + in the diagnostic control register of the SCU. + endmenu source "arch/arm/common/Kconfig" diff --git a/trunk/arch/arm/Makefile b/trunk/arch/arm/Makefile index 9260c293405c..70c424eaf7b0 100644 --- a/trunk/arch/arm/Makefile +++ b/trunk/arch/arm/Makefile @@ -154,7 +154,9 @@ machine-$(CONFIG_ARCH_LPC32XX) := lpc32xx machine-$(CONFIG_ARCH_MMP) := mmp machine-$(CONFIG_ARCH_MSM) := msm machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 -machine-$(CONFIG_ARCH_IMX_V4_V5) := imx +machine-$(CONFIG_ARCH_MX1) := imx +machine-$(CONFIG_ARCH_MX2) := imx +machine-$(CONFIG_ARCH_MX25) := imx machine-$(CONFIG_ARCH_MX3) := imx machine-$(CONFIG_ARCH_MX5) := mx5 machine-$(CONFIG_ARCH_MXS) := mxs diff --git a/trunk/arch/arm/boot/dts/prima2-cb.dts b/trunk/arch/arm/boot/dts/prima2-cb.dts index 17b6737c4ee5..6fecc88065b2 100644 --- a/trunk/arch/arm/boot/dts/prima2-cb.dts +++ b/trunk/arch/arm/boot/dts/prima2-cb.dts @@ -67,11 +67,6 @@ compatible = "sirf,prima2-rstc"; reg = <0x88010000 0x1000>; }; - - rsc-controller@88020000 { - compatible = "sirf,prima2-rsc"; - reg = <0x88020000 0x1000>; - }; }; mem-iobg { @@ -279,7 +274,7 @@ gpio: gpio-controller@b0120000 { #gpio-cells = <2>; #interrupt-cells = <2>; - compatible = "sirf,prima2-gpio-pinmux"; + compatible = "sirf,prima2-gpio"; reg = <0xb0120000 0x10000>; gpio-controller; interrupt-controller; @@ -363,7 +358,7 @@ }; rtc-iobg { - compatible = "sirf,prima2-rtciobg", "sirf-prima2-rtciobg-bus"; + compatible = "sirf,prima2-rtciobg", "simple-bus"; #address-cells = <1>; #size-cells = <1>; reg = <0x80030000 0x10000>; diff --git a/trunk/arch/arm/boot/dts/tegra-harmony.dts b/trunk/arch/arm/boot/dts/tegra-harmony.dts index 4c053340ce33..e5818668d091 100644 --- a/trunk/arch/arm/boot/dts/tegra-harmony.dts +++ b/trunk/arch/arm/boot/dts/tegra-harmony.dts @@ -57,14 +57,14 @@ }; sdhci@c8000200 { - gpios = <&gpio 69 0>, /* cd, gpio PI5 */ - <&gpio 57 0>, /* wp, gpio PH1 */ - <&gpio 155 0>; /* power, gpio PT3 */ + cd-gpios = <&gpio 69 0>; /* gpio PI5 */ + wp-gpios = <&gpio 57 0>; /* gpio PH1 */ + power-gpios = <&gpio 155 0>; /* gpio PT3 */ }; sdhci@c8000600 { - gpios = <&gpio 58 0>, /* cd, gpio PH2 */ - <&gpio 59 0>, /* wp, gpio PH3 */ - <&gpio 70 0>; /* power, gpio PI6 */ + cd-gpios = <&gpio 58 0>; /* gpio PH2 */ + wp-gpios = <&gpio 59 0>; /* gpio PH3 */ + power-gpios = <&gpio 70 0>; /* gpio PI6 */ }; }; diff --git a/trunk/arch/arm/boot/dts/tegra-seaboard.dts b/trunk/arch/arm/boot/dts/tegra-seaboard.dts index 1940cae00748..64cedca6fc79 100644 --- a/trunk/arch/arm/boot/dts/tegra-seaboard.dts +++ b/trunk/arch/arm/boot/dts/tegra-seaboard.dts @@ -21,8 +21,8 @@ }; sdhci@c8000400 { - gpios = <&gpio 69 0>, /* cd, gpio PI5 */ - <&gpio 57 0>, /* wp, gpio PH1 */ - <&gpio 70 0>; /* power, gpio PI6 */ + cd-gpios = <&gpio 69 0>; /* gpio PI5 */ + wp-gpios = <&gpio 57 0>; /* gpio PH1 */ + power-gpios = <&gpio 70 0>; /* gpio PI6 */ }; }; diff --git a/trunk/arch/arm/configs/mx1_defconfig b/trunk/arch/arm/configs/mx1_defconfig new file mode 100644 index 000000000000..c9436d0bf593 --- /dev/null +++ b/trunk/arch/arm/configs/mx1_defconfig @@ -0,0 +1,91 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_SYSVIPC=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED_V2=y +CONFIG_EXPERT=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_ARCH_MXC=y +CONFIG_ARCH_MX1=y +CONFIG_ARCH_MX1ADS=y +CONFIG_MACH_SCB9328=y +CONFIG_MACH_APF9328=y +CONFIG_MXC_IRQ_PRIOR=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/mtdblock2 rw ip=off" +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_FW_LOADER=m +CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_PHYSMAP=y +# CONFIG_BLK_DEV is not set +# CONFIG_MISC_DEVICES is not set +CONFIG_NETDEVICES=y +CONFIG_PHYLIB=y +CONFIG_SMSC_PHY=y +CONFIG_NET_ETHERNET=y +CONFIG_DM9000=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_INPUT is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_W1=y +CONFIG_W1_MASTER_MXC=y +CONFIG_W1_SLAVE_THERM=y +# CONFIG_HWMON is not set +CONFIG_FB=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_IMX=y +CONFIG_USB_ETH=m +CONFIG_MMC=y +CONFIG_MMC_MXC=y +# CONFIG_DNOTIFY is not set +CONFIG_INOTIFY=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V4=y +CONFIG_ROOT_NFS=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/mx21_defconfig b/trunk/arch/arm/configs/mx21_defconfig new file mode 100644 index 000000000000..411f88dd4402 --- /dev/null +++ b/trunk/arch/arm/configs/mx21_defconfig @@ -0,0 +1,97 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_EXPERT=y +CONFIG_KALLSYMS_EXTRA_PASS=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_MXC=y +CONFIG_ARCH_MX2=y +CONFIG_MACH_MX21ADS=y +CONFIG_MXC_PWM=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_NET=y +CONFIG_INET=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6 is not set +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +# CONFIG_FW_LOADER is not set +CONFIG_MTD=y +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=3 +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y +CONFIG_NETDEVICES=y +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_SERIO is not set +# CONFIG_CONSOLE_TRANSLATIONS is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_HW_RANDOM is not set +CONFIG_I2C=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_IMX=y +CONFIG_SPI=y +# CONFIG_HWMON is not set +CONFIG_FB=y +CONFIG_FB_IMX=y +# CONFIG_VGA_CONSOLE is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +CONFIG_LOGO=y +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_MMC=y +CONFIG_MMC_MXC=y +# CONFIG_DNOTIFY is not set +CONFIG_MSDOS_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_ROOT_NFS=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/imx_v4_v5_defconfig b/trunk/arch/arm/configs/mx27_defconfig similarity index 69% rename from trunk/arch/arm/configs/imx_v4_v5_defconfig rename to trunk/arch/arm/configs/mx27_defconfig index 11a4192197c8..9ad4c656c9bd 100644 --- a/trunk/arch/arm/configs/imx_v4_v5_defconfig +++ b/trunk/arch/arm/configs/mx27_defconfig @@ -3,7 +3,9 @@ CONFIG_EXPERIMENTAL=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_EXPERT=y +CONFIG_KALLSYMS_EXTRA_PASS=y # CONFIG_COMPAT_BRK is not set CONFIG_SLAB=y CONFIG_PROFILING=y @@ -15,12 +17,8 @@ CONFIG_MODULE_UNLOAD=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_ARCH_MXC=y -CONFIG_ARCH_IMX_V4_V5=y -CONFIG_ARCH_MX1ADS=y -CONFIG_MACH_SCB9328=y -CONFIG_MACH_MX21ADS=y -CONFIG_MACH_MX25_3DS=y -CONFIG_MACH_EUKREA_CPUIMX25=y +CONFIG_ARCH_MX2=y +CONFIG_MACH_MX27=y CONFIG_MACH_MX27ADS=y CONFIG_MACH_PCM038=y CONFIG_MACH_CPUIMX27=y @@ -31,7 +29,6 @@ CONFIG_MACH_IMX27_VISSTRIM_M10=y CONFIG_MACH_IMX27LITE=y CONFIG_MACH_PCA100=y CONFIG_MACH_MXT_TD60=y -CONFIG_MACH_IMX27IPCAM=y CONFIG_MXC_IRQ_PRIOR=y CONFIG_MXC_PWM=y CONFIG_NO_HZ=y @@ -42,6 +39,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_FPE_NWFPE=y CONFIG_FPE_NWFPE_XP=y +CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_NET=y CONFIG_PACKET=y @@ -57,9 +55,8 @@ CONFIG_IP_PNP_DHCP=y # CONFIG_INET_DIAG is not set # CONFIG_IPV6 is not set CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y CONFIG_MTD=y +CONFIG_MTD_PARTITIONS=y CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y @@ -72,15 +69,12 @@ CONFIG_MTD_CFI_GEOMETRY=y CONFIG_MTD_CFI_INTELEXT=y CONFIG_MTD_PHYSMAP=y CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_MXC=y CONFIG_MTD_UBI=y -CONFIG_MISC_DEVICES=y CONFIG_EEPROM_AT24=y -CONFIG_EEPROM_AT25=y CONFIG_NETDEVICES=y CONFIG_NET_ETHERNET=y -CONFIG_SMC91X=y -CONFIG_DM9000=y -CONFIG_SMC911X=y +CONFIG_FEC=y # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_INPUT_MOUSEDEV is not set @@ -90,10 +84,10 @@ CONFIG_INPUT_EVDEV=y CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_ADS7846=m # CONFIG_SERIO is not set -# CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_8250=m CONFIG_SERIAL_IMX=y CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set # CONFIG_HW_RANDOM is not set CONFIG_I2C=y CONFIG_I2C_CHARDEV=y @@ -104,56 +98,19 @@ CONFIG_W1=y CONFIG_W1_MASTER_MXC=y CONFIG_W1_SLAVE_THERM=y # CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_IMX2_WDT=y -CONFIG_MFD_MC13XXX=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_MC13783=y -CONFIG_REGULATOR_MC13892=y CONFIG_FB=y CONFIG_FB_IMX=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_PWM=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FONTS=y CONFIG_FONT_8x8=y -CONFIG_LOGO=y -CONFIG_SOUND=y -CONFIG_SND=y -# CONFIG_SND_ARM is not set -# CONFIG_SND_SPI is not set -CONFIG_SND_SOC=y -CONFIG_SND_IMX_SOC=y -CONFIG_SND_SOC_MX27VIS_AIC32X4=y -CONFIG_SND_SOC_PHYCORE_AC97=y -CONFIG_SND_SOC_EUKREA_TLV320=y -CONFIG_USB_HID=m -CONFIG_USB=y +# CONFIG_HID_SUPPORT is not set +CONFIG_USB=m # CONFIG_USB_DEVICE_CLASS is not set -CONFIG_USB_EHCI_HCD=y -CONFIG_USB_EHCI_MXC=y CONFIG_USB_ULPI=y CONFIG_MMC=y CONFIG_MMC_MXC=y -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_MC13783=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -CONFIG_LEDS_TRIGGER_BACKLIGHT=y -CONFIG_LEDS_TRIGGER_GPIO=y -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_PCF8563=y -CONFIG_RTC_DRV_IMXDI=y -CONFIG_RTC_MXC=y -CONFIG_DMADEVICES=y -CONFIG_IMX_SDMA=y -CONFIG_IMX_DMA=y -# CONFIG_IOMMU_SUPPORT is not set # CONFIG_DNOTIFY is not set # CONFIG_PROC_PAGE_MONITOR is not set CONFIG_TMPFS=y @@ -162,9 +119,12 @@ CONFIG_UBIFS_FS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_ROOT_NFS=y +CONFIG_NLS=y CONFIG_NLS_CODEPAGE_437=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_ISO8859_1=y CONFIG_NLS_ISO8859_15=m +CONFIG_DEBUG_FS=y +# CONFIG_RCU_CPU_STALL_DETECTOR is not set CONFIG_SYSCTL_SYSCALL_CHECK=y # CONFIG_CRYPTO_ANSI_CPRNG is not set diff --git a/trunk/arch/arm/configs/mx5_defconfig b/trunk/arch/arm/configs/mx51_defconfig similarity index 82% rename from trunk/arch/arm/configs/mx5_defconfig rename to trunk/arch/arm/configs/mx51_defconfig index d0d8dfece37e..88c5802a2351 100644 --- a/trunk/arch/arm/configs/mx5_defconfig +++ b/trunk/arch/arm/configs/mx51_defconfig @@ -1,6 +1,5 @@ CONFIG_EXPERIMENTAL=y # CONFIG_LOCALVERSION_AUTO is not set -CONFIG_KERNEL_LZO=y CONFIG_SYSVIPC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_RELAY=y @@ -14,29 +13,21 @@ CONFIG_MODULE_SRCVERSION_ALL=y # CONFIG_LBDAF is not set # CONFIG_BLK_DEV_BSG is not set CONFIG_ARCH_MXC=y -CONFIG_ARCH_MX5=y +CONFIG_ARCH_MX51=y CONFIG_MACH_MX51_BABBAGE=y CONFIG_MACH_MX51_3DS=y CONFIG_MACH_EUKREA_CPUIMX51=y -CONFIG_MACH_EUKREA_CPUIMX51SD=y -CONFIG_MACH_MX51_EFIKAMX=y -CONFIG_MACH_MX51_EFIKASB=y -CONFIG_MACH_MX53_EVK=y -CONFIG_MACH_MX53_SMD=y -CONFIG_MACH_MX53_LOCO=y -CONFIG_MACH_MX53_ARD=y -CONFIG_MXC_PWM=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_VMSPLIT_2G=y CONFIG_PREEMPT_VOLUNTARY=y CONFIG_AEABI=y # CONFIG_OABI_COMPAT is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 -CONFIG_CMDLINE="noinitrd console=ttymxc0,115200" +CONFIG_CMDLINE="noinitrd console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.101:/shared/nfs ip=dhcp" CONFIG_VFP=y CONFIG_NEON=y CONFIG_BINFMT_MISC=m +CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_TEST_SUSPEND=y CONFIG_NET=y @@ -51,13 +42,13 @@ CONFIG_IP_PNP_DHCP=y # CONFIG_INET_LRO is not set # CONFIG_IPV6 is not set # CONFIG_WIRELESS is not set -CONFIG_DEVTMPFS=y -CONFIG_DEVTMPFS_MOUNT=y # CONFIG_STANDALONE is not set CONFIG_CONNECTOR=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=65536 +# CONFIG_MISC_DEVICES is not set +CONFIG_SCSI=y # CONFIG_SCSI_PROC_FS is not set CONFIG_BLK_DEV_SD=y CONFIG_SCSI_MULTI_LUN=y @@ -65,10 +56,8 @@ CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y # CONFIG_SCSI_LOWLEVEL is not set -CONFIG_ATA=y -CONFIG_PATA_IMX=y +CONFIG_ATA=m CONFIG_NETDEVICES=y -CONFIG_MII=m CONFIG_MARVELL_PHY=y CONFIG_DAVICOM_PHY=y CONFIG_QSEMI_PHY=y @@ -82,57 +71,49 @@ CONFIG_REALTEK_PHY=y CONFIG_NATIONAL_PHY=y CONFIG_STE10XP=y CONFIG_LSI_ET1011C_PHY=y -CONFIG_MICREL_PHY=y +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_GPIO=y CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_FEC=y # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_WLAN is not set +CONFIG_INPUT_FF_MEMLESS=m # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_EVBUG=m CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_EVBUG=m CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ELANTECH=y -CONFIG_INPUT_MISC=y -CONFIG_INPUT_MMA8450=y CONFIG_SERIO_SERPORT=m CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_LEGACY_PTYS is not set # CONFIG_DEVKMEM is not set CONFIG_SERIAL_IMX=y CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_LEGACY_PTYS is not set CONFIG_HW_RANDOM=y CONFIG_I2C=y # CONFIG_I2C_COMPAT is not set -CONFIG_I2C_CHARDEV=y +CONFIG_I2C_CHARDEV=m # CONFIG_I2C_HELPER_AUTO is not set CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCF=m CONFIG_I2C_ALGOPCA=m -CONFIG_I2C_IMX=y -CONFIG_SPI=y -CONFIG_SPI_IMX=y CONFIG_GPIO_SYSFS=y # CONFIG_HWMON is not set -CONFIG_WATCHDOG=y -CONFIG_IMX2_WDT=y -CONFIG_MFD_MC13XXX=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_MC13892=y +# CONFIG_HID_SUPPORT is not set CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_MXC=y CONFIG_USB_STORAGE=y CONFIG_MMC=y CONFIG_MMC_BLOCK=m -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_RTC_CLASS=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y -CONFIG_RTC_MXC=y CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y @@ -146,6 +127,7 @@ CONFIG_EXT4_FS_SECURITY=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_AUTOFS_FS=y CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=y CONFIG_ISO9660_FS=m @@ -169,13 +151,17 @@ CONFIG_NLS_ISO8859_15=m CONFIG_NLS_UTF8=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y # CONFIG_SCHED_DEBUG is not set # CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_FTRACE is not set # CONFIG_ARM_UNWIND is not set +CONFIG_DEBUG_LL=y +CONFIG_EARLY_PRINTK=y CONFIG_SECURITYFS=y -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_LZO=m +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_HW is not set CONFIG_CRC_CCITT=m diff --git a/trunk/arch/arm/include/asm/futex.h b/trunk/arch/arm/include/asm/futex.h index 8c73900da9ed..253cc86318bf 100644 --- a/trunk/arch/arm/include/asm/futex.h +++ b/trunk/arch/arm/include/asm/futex.h @@ -25,17 +25,17 @@ #ifdef CONFIG_SMP -#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ +#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \ smp_mb(); \ __asm__ __volatile__( \ - "1: ldrex %1, [%2]\n" \ + "1: ldrex %1, [%3]\n" \ " " insn "\n" \ - "2: strex %1, %0, [%2]\n" \ - " teq %1, #0\n" \ + "2: strex %2, %0, [%3]\n" \ + " teq %2, #0\n" \ " bne 1b\n" \ " mov %0, #0\n" \ - __futex_atomic_ex_table("%4") \ - : "=&r" (ret), "=&r" (oldval) \ + __futex_atomic_ex_table("%5") \ + : "=&r" (ret), "=&r" (oldval), "=&r" (tmp) \ : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ : "cc", "memory") @@ -73,14 +73,14 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, #include #include -#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \ +#define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \ __asm__ __volatile__( \ - "1: " T(ldr) " %1, [%2]\n" \ + "1: " T(ldr) " %1, [%3]\n" \ " " insn "\n" \ - "2: " T(str) " %0, [%2]\n" \ + "2: " T(str) " %0, [%3]\n" \ " mov %0, #0\n" \ - __futex_atomic_ex_table("%4") \ - : "=&r" (ret), "=&r" (oldval) \ + __futex_atomic_ex_table("%5") \ + : "=&r" (ret), "=&r" (oldval), "=&r" (tmp) \ : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \ : "cc", "memory") @@ -117,7 +117,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr) int cmp = (encoded_op >> 24) & 15; int oparg = (encoded_op << 8) >> 20; int cmparg = (encoded_op << 20) >> 20; - int oldval = 0, ret; + int oldval = 0, ret, tmp; if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) oparg = 1 << oparg; @@ -129,19 +129,19 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr) switch (op) { case FUTEX_OP_SET: - __futex_atomic_op("mov %0, %3", ret, oldval, uaddr, oparg); + __futex_atomic_op("mov %0, %4", ret, oldval, tmp, uaddr, oparg); break; case FUTEX_OP_ADD: - __futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg); + __futex_atomic_op("add %0, %1, %4", ret, oldval, tmp, uaddr, oparg); break; case FUTEX_OP_OR: - __futex_atomic_op("orr %0, %1, %3", ret, oldval, uaddr, oparg); + __futex_atomic_op("orr %0, %1, %4", ret, oldval, tmp, uaddr, oparg); break; case FUTEX_OP_ANDN: - __futex_atomic_op("and %0, %1, %3", ret, oldval, uaddr, ~oparg); + __futex_atomic_op("and %0, %1, %4", ret, oldval, tmp, uaddr, ~oparg); break; case FUTEX_OP_XOR: - __futex_atomic_op("eor %0, %1, %3", ret, oldval, uaddr, oparg); + __futex_atomic_op("eor %0, %1, %4", ret, oldval, tmp, uaddr, oparg); break; default: ret = -ENOSYS; diff --git a/trunk/arch/arm/include/asm/unistd.h b/trunk/arch/arm/include/asm/unistd.h index 2c04ed5efeb5..c60a2944f95b 100644 --- a/trunk/arch/arm/include/asm/unistd.h +++ b/trunk/arch/arm/include/asm/unistd.h @@ -478,8 +478,8 @@ /* * Unimplemented (or alternatively implemented) syscalls */ -#define __IGNORE_fadvise64_64 1 -#define __IGNORE_migrate_pages 1 +#define __IGNORE_fadvise64_64 +#define __IGNORE_migrate_pages #endif /* __KERNEL__ */ #endif /* __ASM_ARM_UNISTD_H */ diff --git a/trunk/arch/arm/kernel/smp_scu.c b/trunk/arch/arm/kernel/smp_scu.c index 79ed5e7f204a..7fcddb75c877 100644 --- a/trunk/arch/arm/kernel/smp_scu.c +++ b/trunk/arch/arm/kernel/smp_scu.c @@ -13,6 +13,7 @@ #include #include +#include #define SCU_CTRL 0x00 #define SCU_CONFIG 0x04 @@ -37,6 +38,15 @@ void __init scu_enable(void __iomem *scu_base) { u32 scu_ctrl; +#ifdef CONFIG_ARM_ERRATA_764369 + /* Cortex-A9 only */ + if ((read_cpuid(CPUID_ID) & 0xff0ffff0) == 0x410fc090) { + scu_ctrl = __raw_readl(scu_base + 0x30); + if (!(scu_ctrl & 1)) + __raw_writel(scu_ctrl | 0x1, scu_base + 0x30); + } +#endif + scu_ctrl = __raw_readl(scu_base + SCU_CTRL); /* already enabled? */ if (scu_ctrl & 1) diff --git a/trunk/arch/arm/kernel/vmlinux.lds.S b/trunk/arch/arm/kernel/vmlinux.lds.S index bf977f8514f6..4e66f62b8d41 100644 --- a/trunk/arch/arm/kernel/vmlinux.lds.S +++ b/trunk/arch/arm/kernel/vmlinux.lds.S @@ -23,8 +23,10 @@ #if defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK) #define ARM_EXIT_KEEP(x) x +#define ARM_EXIT_DISCARD(x) #else #define ARM_EXIT_KEEP(x) +#define ARM_EXIT_DISCARD(x) x #endif OUTPUT_ARCH(arm) @@ -39,6 +41,11 @@ jiffies = jiffies_64 + 4; SECTIONS { /* + * XXX: The linker does not define how output sections are + * assigned to input sections when there are multiple statements + * matching the same input section name. There is no documented + * order of matching. + * * unwind exit sections must be discarded before the rest of the * unwind sections get included. */ @@ -47,6 +54,9 @@ SECTIONS *(.ARM.extab.exit.text) ARM_CPU_DISCARD(*(.ARM.exidx.cpuexit.text)) ARM_CPU_DISCARD(*(.ARM.extab.cpuexit.text)) + ARM_EXIT_DISCARD(EXIT_TEXT) + ARM_EXIT_DISCARD(EXIT_DATA) + EXIT_CALL #ifndef CONFIG_HOTPLUG *(.ARM.exidx.devexit.text) *(.ARM.extab.devexit.text) @@ -58,6 +68,8 @@ SECTIONS #ifndef CONFIG_SMP_ON_UP *(.alt.smp.init) #endif + *(.discard) + *(.discard.*) } #ifdef CONFIG_XIP_KERNEL @@ -279,9 +291,6 @@ SECTIONS STABS_DEBUG .comment 0 : { *(.comment) } - - /* Default discards */ - DISCARDS } /* diff --git a/trunk/arch/arm/mach-at91/at91cap9.c b/trunk/arch/arm/mach-at91/at91cap9.c index ecdd54dd68c6..bfc684441ef8 100644 --- a/trunk/arch/arm/mach-at91/at91cap9.c +++ b/trunk/arch/arm/mach-at91/at91cap9.c @@ -219,8 +219,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91cap9_devices.c b/trunk/arch/arm/mach-at91/at91cap9_devices.c index b46615a59355..dba0d8d8a4bd 100644 --- a/trunk/arch/arm/mach-at91/at91cap9_devices.c +++ b/trunk/arch/arm/mach-at91/at91cap9_devices.c @@ -80,12 +80,6 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) at91_set_gpio_output(data->vbus_pin[i], 0); } - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91rm9200.c b/trunk/arch/arm/mach-at91/at91rm9200.c index 713d3bdbd284..f73302dbc6a5 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200.c +++ b/trunk/arch/arm/mach-at91/at91rm9200.c @@ -193,8 +193,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91rm9200_devices.c b/trunk/arch/arm/mach-at91/at91rm9200_devices.c index 3f2711391a69..7227755ffec6 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200_devices.c +++ b/trunk/arch/arm/mach-at91/at91rm9200_devices.c @@ -60,17 +60,9 @@ static struct platform_device at91rm9200_usbh_device = { void __init at91_add_device_usbh(struct at91_usbh_data *data) { - int i; - if (!data) return; - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91rm9200_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9260.c b/trunk/arch/arm/mach-at91/at91sam9260.c index a9be75825e34..cb397be14448 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260.c +++ b/trunk/arch/arm/mach-at91/at91sam9260.c @@ -199,8 +199,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t4_clk", "atmel_tcb.1", &tc4_clk), CLKDEV_CON_DEV_ID("t5_clk", "atmel_tcb.1", &tc5_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9260_devices.c b/trunk/arch/arm/mach-at91/at91sam9260_devices.c index 344075fbb39e..39f81f47b4ba 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9260_devices.c @@ -61,17 +61,9 @@ static struct platform_device at91_usbh_device = { void __init at91_add_device_usbh(struct at91_usbh_data *data) { - int i; - if (!data) return; - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9261.c b/trunk/arch/arm/mach-at91/at91sam9261.c index 658a5185abfd..6c8e3b5f669f 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261.c +++ b/trunk/arch/arm/mach-at91/at91sam9261.c @@ -129,20 +129,6 @@ static struct clk lcdc_clk = { .type = CLK_TYPE_PERIPHERAL, }; -/* HClocks */ -static struct clk hck0 = { - .name = "hck0", - .pmc_mask = AT91_PMC_HCK0, - .type = CLK_TYPE_SYSTEM, - .id = 0, -}; -static struct clk hck1 = { - .name = "hck1", - .pmc_mask = AT91_PMC_HCK1, - .type = CLK_TYPE_SYSTEM, - .id = 1, -}; - static struct clk *periph_clocks[] __initdata = { &pioA_clk, &pioB_clk, @@ -175,7 +161,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.2", &ssc2_clk), - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &hck0), }; static struct clk_lookup usart_clocks_lookups[] = { @@ -214,6 +199,20 @@ static struct clk pck3 = { .id = 3, }; +/* HClocks */ +static struct clk hck0 = { + .name = "hck0", + .pmc_mask = AT91_PMC_HCK0, + .type = CLK_TYPE_SYSTEM, + .id = 0, +}; +static struct clk hck1 = { + .name = "hck1", + .pmc_mask = AT91_PMC_HCK1, + .type = CLK_TYPE_SYSTEM, + .id = 1, +}; + static void __init at91sam9261_register_clocks(void) { int i; diff --git a/trunk/arch/arm/mach-at91/at91sam9261_devices.c b/trunk/arch/arm/mach-at91/at91sam9261_devices.c index 3b8fb79d6b10..0f917928eeb7 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9261_devices.c @@ -64,17 +64,9 @@ static struct platform_device at91sam9261_usbh_device = { void __init at91_add_device_usbh(struct at91_usbh_data *data) { - int i; - if (!data) return; - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91sam9261_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9263.c b/trunk/arch/arm/mach-at91/at91sam9263.c index f83fbb0ee0c5..044f3c927e64 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263.c +++ b/trunk/arch/arm/mach-at91/at91sam9263.c @@ -189,8 +189,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.0", &spi0_clk), CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tcb_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &ohci_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9263_devices.c b/trunk/arch/arm/mach-at91/at91sam9263_devices.c index d4aef76a092d..a050f41fc860 100644 --- a/trunk/arch/arm/mach-at91/at91sam9263_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9263_devices.c @@ -74,12 +74,6 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) at91_set_gpio_output(data->vbus_pin[i], 0); } - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_data = *data; platform_device_register(&at91_usbh_device); } diff --git a/trunk/arch/arm/mach-at91/at91sam9g45.c b/trunk/arch/arm/mach-at91/at91sam9g45.c index 8f5db7b9e6ea..e04c5fb6f1ee 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45.c @@ -215,8 +215,6 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.1", &tcb0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc0_clk), CLKDEV_CON_DEV_ID("pclk", "ssc.1", &ssc1_clk), - /* fake hclk clock */ - CLKDEV_CON_DEV_ID("hclk", "at91_ohci", &uhphs_clk), }; static struct clk_lookup usart_clocks_lookups[] = { diff --git a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c index e4a98574893d..600bffb01edb 100644 --- a/trunk/arch/arm/mach-at91/at91sam9g45_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9g45_devices.c @@ -124,12 +124,6 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data) at91_set_gpio_output(data->vbus_pin[i], 0); } - /* Enable overcurrent notification */ - for (i = 0; i < data->ports; i++) { - if (data->overcurrent_pin[i]) - at91_set_gpio_input(data->overcurrent_pin[i], 1); - } - usbh_ohci_data = *data; platform_device_register(&at91_usbh_ohci_device); } diff --git a/trunk/arch/arm/mach-at91/include/mach/board.h b/trunk/arch/arm/mach-at91/include/mach/board.h index d07767f4052e..ed544a0d5a1d 100644 --- a/trunk/arch/arm/mach-at91/include/mach/board.h +++ b/trunk/arch/arm/mach-at91/include/mach/board.h @@ -98,11 +98,6 @@ extern void __init at91_add_device_eth(struct at91_eth_data *data); struct at91_usbh_data { u8 ports; /* number of ports on root hub */ u8 vbus_pin[2]; /* port power-control pin */ - u8 vbus_pin_inverted; - u8 overcurrent_supported; - u8 overcurrent_pin[2]; - u8 overcurrent_status[2]; - u8 overcurrent_changed[2]; }; extern void __init at91_add_device_usbh(struct at91_usbh_data *data); extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data); diff --git a/trunk/arch/arm/mach-davinci/Kconfig b/trunk/arch/arm/mach-davinci/Kconfig index 32d837d8eab9..c0deacae778d 100644 --- a/trunk/arch/arm/mach-davinci/Kconfig +++ b/trunk/arch/arm/mach-davinci/Kconfig @@ -192,16 +192,6 @@ config DA850_UI_RMII endchoice -config DA850_WL12XX - bool "AM18x wl1271 daughter board" - depends on MACH_DAVINCI_DA850_EVM - help - The wl1271 daughter card for AM18x EVMs is a combo wireless - connectivity add-on card, based on the LS Research TiWi module with - Texas Instruments' wl1271 solution. - Say Y if you want to use a wl1271 expansion card connected to the - AM18x EVM. - config GPIO_PCA953X default MACH_DAVINCI_DA850_EVM diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index cb7a1f0b299f..008d51407cd7 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -31,8 +31,6 @@ #include #include #include -#include -#include #include #include @@ -51,9 +49,6 @@ #define DA850_MMCSD_CD_PIN GPIO_TO_PIN(4, 0) #define DA850_MMCSD_WP_PIN GPIO_TO_PIN(4, 1) -#define DA850_WLAN_EN GPIO_TO_PIN(6, 9) -#define DA850_WLAN_IRQ GPIO_TO_PIN(6, 10) - #define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6) static struct mtd_partition da850evm_spiflash_part[] = { @@ -1148,110 +1143,6 @@ static __init int da850_evm_init_cpufreq(void) static __init int da850_evm_init_cpufreq(void) { return 0; } #endif -#ifdef CONFIG_DA850_WL12XX - -static void wl12xx_set_power(int index, bool power_on) -{ - static bool power_state; - - pr_debug("Powering %s wl12xx", power_on ? "on" : "off"); - - if (power_on == power_state) - return; - power_state = power_on; - - if (power_on) { - /* Power up sequence required for wl127x devices */ - gpio_set_value(DA850_WLAN_EN, 1); - usleep_range(15000, 15000); - gpio_set_value(DA850_WLAN_EN, 0); - usleep_range(1000, 1000); - gpio_set_value(DA850_WLAN_EN, 1); - msleep(70); - } else { - gpio_set_value(DA850_WLAN_EN, 0); - } -} - -static struct davinci_mmc_config da850_wl12xx_mmc_config = { - .set_power = wl12xx_set_power, - .wires = 4, - .max_freq = 25000000, - .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_NONREMOVABLE | - MMC_CAP_POWER_OFF_CARD, - .version = MMC_CTLR_VERSION_2, -}; - -static const short da850_wl12xx_pins[] __initconst = { - DA850_MMCSD1_DAT_0, DA850_MMCSD1_DAT_1, DA850_MMCSD1_DAT_2, - DA850_MMCSD1_DAT_3, DA850_MMCSD1_CLK, DA850_MMCSD1_CMD, - DA850_GPIO6_9, DA850_GPIO6_10, - -1 -}; - -static struct wl12xx_platform_data da850_wl12xx_wlan_data __initdata = { - .irq = -1, - .board_ref_clock = WL12XX_REFCLOCK_38, - .platform_quirks = WL12XX_PLATFORM_QUIRK_EDGE_IRQ, -}; - -static __init int da850_wl12xx_init(void) -{ - int ret; - - ret = davinci_cfg_reg_list(da850_wl12xx_pins); - if (ret) { - pr_err("wl12xx/mmc mux setup failed: %d\n", ret); - goto exit; - } - - ret = da850_register_mmcsd1(&da850_wl12xx_mmc_config); - if (ret) { - pr_err("wl12xx/mmc registration failed: %d\n", ret); - goto exit; - } - - ret = gpio_request_one(DA850_WLAN_EN, GPIOF_OUT_INIT_LOW, "wl12xx_en"); - if (ret) { - pr_err("Could not request wl12xx enable gpio: %d\n", ret); - goto exit; - } - - ret = gpio_request_one(DA850_WLAN_IRQ, GPIOF_IN, "wl12xx_irq"); - if (ret) { - pr_err("Could not request wl12xx irq gpio: %d\n", ret); - goto free_wlan_en; - } - - da850_wl12xx_wlan_data.irq = gpio_to_irq(DA850_WLAN_IRQ); - - ret = wl12xx_set_platform_data(&da850_wl12xx_wlan_data); - if (ret) { - pr_err("Could not set wl12xx data: %d\n", ret); - goto free_wlan_irq; - } - - return 0; - -free_wlan_irq: - gpio_free(DA850_WLAN_IRQ); - -free_wlan_en: - gpio_free(DA850_WLAN_EN); - -exit: - return ret; -} - -#else /* CONFIG_DA850_WL12XX */ - -static __init int da850_wl12xx_init(void) -{ - return 0; -} - -#endif /* CONFIG_DA850_WL12XX */ - #define DA850EVM_SATA_REFCLKPN_RATE (100 * 1000 * 1000) static __init void da850_evm_init(void) @@ -1306,11 +1197,6 @@ static __init void da850_evm_init(void) if (ret) pr_warning("da850_evm_init: mmcsd0 registration failed:" " %d\n", ret); - - ret = da850_wl12xx_init(); - if (ret) - pr_warning("da850_evm_init: wl12xx initialization" - " failed: %d\n", ret); } davinci_serial_init(&da850_evm_uart_config); diff --git a/trunk/arch/arm/mach-davinci/da850.c b/trunk/arch/arm/mach-davinci/da850.c index 0cf0d8845422..935dbed5c541 100644 --- a/trunk/arch/arm/mach-davinci/da850.c +++ b/trunk/arch/arm/mach-davinci/da850.c @@ -535,13 +535,6 @@ static const struct mux_config da850_pins[] = { MUX_CFG(DA850, MMCSD0_DAT_3, 10, 20, 15, 2, false) MUX_CFG(DA850, MMCSD0_CLK, 10, 0, 15, 2, false) MUX_CFG(DA850, MMCSD0_CMD, 10, 4, 15, 2, false) - /* MMC/SD1 function */ - MUX_CFG(DA850, MMCSD1_DAT_0, 18, 8, 15, 2, false) - MUX_CFG(DA850, MMCSD1_DAT_1, 19, 16, 15, 2, false) - MUX_CFG(DA850, MMCSD1_DAT_2, 19, 12, 15, 2, false) - MUX_CFG(DA850, MMCSD1_DAT_3, 19, 8, 15, 2, false) - MUX_CFG(DA850, MMCSD1_CLK, 18, 12, 15, 2, false) - MUX_CFG(DA850, MMCSD1_CMD, 18, 16, 15, 2, false) /* EMIF2.5/EMIFA function */ MUX_CFG(DA850, EMA_D_7, 9, 0, 15, 1, false) MUX_CFG(DA850, EMA_D_6, 9, 4, 15, 1, false) @@ -600,8 +593,6 @@ static const struct mux_config da850_pins[] = { MUX_CFG(DA850, GPIO3_13, 7, 8, 15, 8, false) MUX_CFG(DA850, GPIO4_0, 10, 28, 15, 8, false) MUX_CFG(DA850, GPIO4_1, 10, 24, 15, 8, false) - MUX_CFG(DA850, GPIO6_9, 13, 24, 15, 8, false) - MUX_CFG(DA850, GPIO6_10, 13, 20, 15, 8, false) MUX_CFG(DA850, GPIO6_13, 13, 8, 15, 8, false) MUX_CFG(DA850, RTC_ALARM, 0, 28, 15, 2, false) #endif diff --git a/trunk/arch/arm/mach-davinci/include/mach/mmc.h b/trunk/arch/arm/mach-davinci/include/mach/mmc.h index 5ba6b22ce338..d4f1e9675069 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/mmc.h +++ b/trunk/arch/arm/mach-davinci/include/mach/mmc.h @@ -12,9 +12,6 @@ struct davinci_mmc_config { /* get_cd()/get_wp() may sleep */ int (*get_cd)(int module); int (*get_ro)(int module); - - void (*set_power)(int module, bool on); - /* wires == 0 is equivalent to wires == 4 (4-bit parallel) */ u8 wires; diff --git a/trunk/arch/arm/mach-davinci/include/mach/mux.h b/trunk/arch/arm/mach-davinci/include/mach/mux.h index a7e92fca32e6..5d4e0fed828a 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/mux.h +++ b/trunk/arch/arm/mach-davinci/include/mach/mux.h @@ -857,14 +857,6 @@ enum davinci_da850_index { DA850_MMCSD0_CLK, DA850_MMCSD0_CMD, - /* MMC/SD1 function */ - DA850_MMCSD1_DAT_0, - DA850_MMCSD1_DAT_1, - DA850_MMCSD1_DAT_2, - DA850_MMCSD1_DAT_3, - DA850_MMCSD1_CLK, - DA850_MMCSD1_CMD, - /* EMIF2.5/EMIFA function */ DA850_EMA_D_7, DA850_EMA_D_6, @@ -924,8 +916,6 @@ enum davinci_da850_index { DA850_GPIO3_13, DA850_GPIO4_0, DA850_GPIO4_1, - DA850_GPIO6_9, - DA850_GPIO6_10, DA850_GPIO6_13, DA850_RTC_ALARM, }; diff --git a/trunk/arch/arm/mach-dove/common.c b/trunk/arch/arm/mach-dove/common.c index 83dce859886d..a9e0dae86a26 100644 --- a/trunk/arch/arm/mach-dove/common.c +++ b/trunk/arch/arm/mach-dove/common.c @@ -158,7 +158,7 @@ void __init dove_spi0_init(void) void __init dove_spi1_init(void) { - orion_spi_init(DOVE_SPI1_PHYS_BASE, get_tclk()); + orion_spi_1_init(DOVE_SPI1_PHYS_BASE, get_tclk()); } /***************************************************************************** diff --git a/trunk/arch/arm/mach-exynos4/clock.c b/trunk/arch/arm/mach-exynos4/clock.c index 1561b036a9bf..86964d2e9e1b 100644 --- a/trunk/arch/arm/mach-exynos4/clock.c +++ b/trunk/arch/arm/mach-exynos4/clock.c @@ -899,8 +899,7 @@ static struct clksrc_clk clksrcs[] = { .reg_div = { .reg = S5P_CLKDIV_CAM, .shift = 28, .size = 4 }, }, { .clk = { - .name = "sclk_cam", - .devname = "exynos4-fimc.0", + .name = "sclk_cam0", .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 16), }, @@ -909,8 +908,7 @@ static struct clksrc_clk clksrcs[] = { .reg_div = { .reg = S5P_CLKDIV_CAM, .shift = 16, .size = 4 }, }, { .clk = { - .name = "sclk_cam", - .devname = "exynos4-fimc.1", + .name = "sclk_cam1", .enable = exynos4_clksrc_mask_cam_ctrl, .ctrlbit = (1 << 20), }, @@ -1160,7 +1158,7 @@ void __init_or_cpufreq exynos4_setup_clocks(void) vpllsrc = clk_get_rate(&clk_vpllsrc.clk); vpll = s5p_get_pll46xx(vpllsrc, __raw_readl(S5P_VPLL_CON0), - __raw_readl(S5P_VPLL_CON1), pll_4650); + __raw_readl(S5P_VPLL_CON1), pll_4650c); clk_fout_apll.ops = &exynos4_fout_apll_ops; clk_fout_mpll.rate = mpll; diff --git a/trunk/arch/arm/mach-exynos4/mct.c b/trunk/arch/arm/mach-exynos4/mct.c index 1ae059b7ad7b..ddd86864fb83 100644 --- a/trunk/arch/arm/mach-exynos4/mct.c +++ b/trunk/arch/arm/mach-exynos4/mct.c @@ -132,12 +132,18 @@ static cycle_t exynos4_frc_read(struct clocksource *cs) return ((cycle_t)hi << 32) | lo; } +static void exynos4_frc_resume(struct clocksource *cs) +{ + exynos4_mct_frc_start(0, 0); +} + struct clocksource mct_frc = { .name = "mct-frc", .rating = 400, .read = exynos4_frc_read, .mask = CLOCKSOURCE_MASK(64), .flags = CLOCK_SOURCE_IS_CONTINUOUS, + .resume = exynos4_frc_resume, }; static void __init exynos4_clocksource_init(void) @@ -389,9 +395,11 @@ static void exynos4_mct_tick_init(struct clock_event_device *evt) } /* Setup the local clock events for a CPU */ -void __cpuinit local_timer_setup(struct clock_event_device *evt) +int __cpuinit local_timer_setup(struct clock_event_device *evt) { exynos4_mct_tick_init(evt); + + return 0; } int local_timer_ack(void) diff --git a/trunk/arch/arm/mach-exynos4/platsmp.c b/trunk/arch/arm/mach-exynos4/platsmp.c index 7c2282c6ba81..df6ef1b2f98b 100644 --- a/trunk/arch/arm/mach-exynos4/platsmp.c +++ b/trunk/arch/arm/mach-exynos4/platsmp.c @@ -106,6 +106,8 @@ void __cpuinit platform_secondary_init(unsigned int cpu) */ spin_lock(&boot_lock); spin_unlock(&boot_lock); + + set_cpu_online(cpu, true); } int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) diff --git a/trunk/arch/arm/mach-exynos4/setup-keypad.c b/trunk/arch/arm/mach-exynos4/setup-keypad.c index 1ee0ebff111f..7862bfb5933d 100644 --- a/trunk/arch/arm/mach-exynos4/setup-keypad.c +++ b/trunk/arch/arm/mach-exynos4/setup-keypad.c @@ -19,15 +19,16 @@ void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols) if (rows > 8) { /* Set all the necessary GPX2 pins: KP_ROW[0~7] */ - s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3)); + s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3), + S3C_GPIO_PULL_UP); /* Set all the necessary GPX3 pins: KP_ROW[8~] */ - s3c_gpio_cfgrange_nopull(EXYNOS4_GPX3(0), (rows - 8), - S3C_GPIO_SFN(3)); + s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8), + S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP); } else { /* Set all the necessary GPX2 pins: KP_ROW[x] */ - s3c_gpio_cfgrange_nopull(EXYNOS4_GPX2(0), rows, - S3C_GPIO_SFN(3)); + s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows, S3C_GPIO_SFN(3), + S3C_GPIO_PULL_UP); } /* Set all the necessary GPX1 pins to special-function 3: KP_COL[x] */ diff --git a/trunk/arch/arm/mach-imx/Kconfig b/trunk/arch/arm/mach-imx/Kconfig index b4e1bf8757c7..0519dd7f034b 100644 --- a/trunk/arch/arm/mach-imx/Kconfig +++ b/trunk/arch/arm/mach-imx/Kconfig @@ -5,18 +5,6 @@ config IMX_HAVE_DMA_V1 # Some usages assume that having one of them implies not having (e.g.) ARCH_MX2. # To easily distinguish good and reviewed from unreviewed usages new (and IMHO # more sensible) names are used: SOC_IMX31 and SOC_IMX35 -config ARCH_MX1 - bool - -config MACH_MX21 - bool - -config ARCH_MX25 - bool - -config MACH_MX27 - bool - config ARCH_MX31 bool @@ -25,7 +13,6 @@ config ARCH_MX35 config SOC_IMX1 bool - select ARCH_MX1 select CPU_ARM920T select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 @@ -33,7 +20,6 @@ config SOC_IMX1 config SOC_IMX21 bool - select MACH_MX21 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 select IMX_HAVE_DMA_V1 @@ -42,7 +28,6 @@ config SOC_IMX21 config SOC_IMX25 bool - select ARCH_MX25 select CPU_ARM926T select ARCH_MXC_AUDMUX_V2 select ARCH_MXC_IOMUX_V3 @@ -50,7 +35,6 @@ config SOC_IMX25 config SOC_IMX27 bool - select MACH_MX27 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 select IMX_HAVE_DMA_V1 @@ -75,7 +59,7 @@ config SOC_IMX35 select MXC_AVIC -if ARCH_IMX_V4_V5 +if ARCH_MX1 comment "MX1 platforms:" config MACH_MXLADS @@ -103,6 +87,30 @@ config MACH_APF9328 help Say Yes here if you are using the Armadeus APF9328 development board +endif + +if ARCH_MX2 + +choice + prompt "CPUs:" + default MACH_MX21 + +config MACH_MX21 + bool "i.MX21 support" + help + This enables support for Freescale's MX2 based i.MX21 processor. + +config MACH_MX27 + bool "i.MX27 support" + help + This enables support for Freescale's MX2 based i.MX27 processor. + +endchoice + +endif + +if MACH_MX21 + comment "MX21 platforms:" config MACH_MX21ADS @@ -116,12 +124,15 @@ config MACH_MX21ADS Include support for MX21ADS platform. This includes specific configurations for the board and its peripherals. +endif + +if ARCH_MX25 + comment "MX25 platforms:" config MACH_MX25_3DS bool "Support MX25PDK (3DS) Platform" select SOC_IMX25 - select IMX_HAVE_PLATFORM_FLEXCAN select IMX_HAVE_PLATFORM_FSL_USB2_UDC select IMX_HAVE_PLATFORM_IMX2_WDT select IMX_HAVE_PLATFORM_IMXDI_RTC @@ -163,6 +174,10 @@ config MACH_EUKREA_MBIMXSD25_BASEBOARD endchoice +endif + +if MACH_MX27 + comment "MX27 platforms:" config MACH_MX27ADS @@ -470,7 +485,6 @@ config MACH_QONG bool "Support Dave/DENX QongEVB-LITE platform" select SOC_IMX31 select IMX_HAVE_PLATFORM_IMX_UART - select IMX_HAVE_PLATFORM_IMX2_WDT help Include support for Dave/DENX QongEVB-LITE platform. This includes specific configurations for the board and its peripherals. diff --git a/trunk/arch/arm/mach-imx/Makefile b/trunk/arch/arm/mach-imx/Makefile index 116d4b2d2817..e9eb36dad888 100644 --- a/trunk/arch/arm/mach-imx/Makefile +++ b/trunk/arch/arm/mach-imx/Makefile @@ -1,15 +1,16 @@ obj-$(CONFIG_IMX_HAVE_DMA_V1) += dma-v1.o -obj-$(CONFIG_SOC_IMX1) += clock-imx1.o mm-imx1.o -obj-$(CONFIG_SOC_IMX21) += clock-imx21.o mm-imx21.o +obj-$(CONFIG_ARCH_MX1) += clock-imx1.o mm-imx1.o +obj-$(CONFIG_MACH_MX21) += clock-imx21.o mm-imx21.o -obj-$(CONFIG_SOC_IMX25) += clock-imx25.o mm-imx25.o ehci-imx25.o cpu-imx25.o +obj-$(CONFIG_ARCH_MX25) += clock-imx25.o mm-imx25.o ehci-imx25.o -obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o -obj-$(CONFIG_SOC_IMX27) += clock-imx27.o mm-imx27.o ehci-imx27.o +obj-$(CONFIG_MACH_MX27) += cpu-imx27.o pm-imx27.o +obj-$(CONFIG_MACH_MX27) += clock-imx27.o mm-imx27.o ehci-imx27.o -obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o clock-imx31.o iomux-imx31.o ehci-imx31.o -obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o clock-imx35.o ehci-imx35.o +obj-$(CONFIG_SOC_IMX31) += mm-imx31.o cpu-imx31.o clock-imx31.o iomux-imx31.o ehci-imx31.o +obj-$(CONFIG_SOC_IMX35) += mm-imx35.o cpu-imx35.o clock-imx35.o ehci-imx35.o +obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o # Support for CMOS sensor interface obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o diff --git a/trunk/arch/arm/mach-imx/cache-l2x0.c b/trunk/arch/arm/mach-imx/cache-l2x0.c new file mode 100644 index 000000000000..69d1322add3c --- /dev/null +++ b/trunk/arch/arm/mach-imx/cache-l2x0.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2009-2010 Pengutronix + * Sascha Hauer + * Juergen Beisert + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License version 2 as published by the + * Free Software Foundation. + */ + +#include +#include +#include + +#include + +#include + +static int mxc_init_l2x0(void) +{ + void __iomem *l2x0_base; + void __iomem *clkctl_base; + + if (!cpu_is_mx31() && !cpu_is_mx35()) + return 0; + +/* + * First of all, we must repair broken chip settings. There are some + * i.MX35 CPUs in the wild, comming with bogus L2 cache settings. These + * misconfigured CPUs will run amok immediately when the L2 cache gets enabled. + * Workaraound is to setup the correct register setting prior enabling the + * L2 cache. This should not hurt already working CPUs, as they are using the + * same value. + */ +#define L2_MEM_VAL 0x10 + + clkctl_base = ioremap(MX35_CLKCTL_BASE_ADDR, 4096); + if (clkctl_base != NULL) { + writel(0x00000515, clkctl_base + L2_MEM_VAL); + iounmap(clkctl_base); + } else { + pr_err("L2 cache: Cannot fix timing. Trying to continue without\n"); + } + + l2x0_base = ioremap(MX3x_L2CC_BASE_ADDR, 4096); + if (IS_ERR(l2x0_base)) { + printk(KERN_ERR "remapping L2 cache area failed with %ld\n", + PTR_ERR(l2x0_base)); + return 0; + } + + l2x0_init(l2x0_base, 0x00030024, 0x00000000); + + return 0; +} +arch_initcall(mxc_init_l2x0); diff --git a/trunk/arch/arm/mach-imx/clock-imx25.c b/trunk/arch/arm/mach-imx/clock-imx25.c index b0fec74c8c91..e63e23504fe5 100644 --- a/trunk/arch/arm/mach-imx/clock-imx25.c +++ b/trunk/arch/arm/mach-imx/clock-imx25.c @@ -263,7 +263,6 @@ DEFINE_CLOCK(audmux_clk, 0, CCM_CGCR1, 0, NULL, NULL, NULL); DEFINE_CLOCK(csi_clk, 0, CCM_CGCR1, 4, get_rate_csi, NULL, &csi_per_clk); DEFINE_CLOCK(can1_clk, 0, CCM_CGCR1, 2, get_rate_ipg, NULL, NULL); DEFINE_CLOCK(can2_clk, 1, CCM_CGCR1, 3, get_rate_ipg, NULL, NULL); -DEFINE_CLOCK(iim_clk, 0, CCM_CGCR1, 26, NULL, NULL, NULL); #define _REGISTER_CLOCK(d, n, c) \ { \ @@ -311,7 +310,6 @@ static struct clk_lookup lookups[] = { _REGISTER_CLOCK("flexcan.1", NULL, can2_clk) /* i.mx25 has the i.mx35 type sdma */ _REGISTER_CLOCK("imx35-sdma", NULL, sdma_clk) - _REGISTER_CLOCK(NULL, "iim", iim_clk) }; int __init mx25_clocks_init(void) @@ -336,10 +334,6 @@ int __init mx25_clocks_init(void) /* Clock source for gpt is ahb_div */ __raw_writel(__raw_readl(CRM_BASE+0x64) & ~(1 << 5), CRM_BASE + 0x64); - clk_enable(&iim_clk); - imx_print_silicon_rev("i.MX25", mx25_revision()); - clk_disable(&iim_clk); - mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54); return 0; diff --git a/trunk/arch/arm/mach-imx/clock-imx27.c b/trunk/arch/arm/mach-imx/clock-imx27.c index 88fe00a146e3..6912b821b37b 100644 --- a/trunk/arch/arm/mach-imx/clock-imx27.c +++ b/trunk/arch/arm/mach-imx/clock-imx27.c @@ -583,7 +583,7 @@ DEFINE_CLOCK(emi_clk, 0, PCCR1, 19, NULL, NULL, &ahb_clk); DEFINE_CLOCK(dma_clk1, 0, PCCR1, 20, NULL, NULL, &ahb_clk); DEFINE_CLOCK(csi_clk1, 0, PCCR1, 21, NULL, NULL, &ahb_clk); DEFINE_CLOCK(brom_clk, 0, PCCR1, 22, NULL, NULL, &ahb_clk); -DEFINE_CLOCK(pata_clk, 0, PCCR1, 23, NULL, NULL, &ahb_clk); +DEFINE_CLOCK(ata_clk, 0, PCCR1, 23, NULL, NULL, &ahb_clk); DEFINE_CLOCK(wdog_clk, 0, PCCR1, 24, NULL, NULL, &ipg_clk); DEFINE_CLOCK(usb_clk, 0, PCCR1, 25, get_rate_usb, &usb_clk1, &spll_clk); DEFINE_CLOCK(uart6_clk1, 0, PCCR1, 26, NULL, NULL, &ipg_clk); @@ -666,7 +666,7 @@ static struct clk_lookup lookups[] = { _REGISTER_CLOCK("imx27-fec.0", NULL, fec_clk) _REGISTER_CLOCK(NULL, "emi", emi_clk) _REGISTER_CLOCK(NULL, "sahara2", sahara2_clk) - _REGISTER_CLOCK("pata_imx", NULL, pata_clk) + _REGISTER_CLOCK(NULL, "ata", ata_clk) _REGISTER_CLOCK(NULL, "mstick", mstick_clk) _REGISTER_CLOCK("imx2-wdt.0", NULL, wdog_clk) _REGISTER_CLOCK(NULL, "gpio", gpio_clk) @@ -751,8 +751,6 @@ int __init mx27_clocks_init(unsigned long fref) clk_enable(&gpio_clk); clk_enable(&emi_clk); clk_enable(&iim_clk); - imx_print_silicon_rev("i.MX27", mx27_revision()); - clk_disable(&iim_clk); #if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_ICEDCC) clk_enable(&uart1_clk); diff --git a/trunk/arch/arm/mach-imx/clock-imx31.c b/trunk/arch/arm/mach-imx/clock-imx31.c index 988a28178d4c..d973770b1f96 100644 --- a/trunk/arch/arm/mach-imx/clock-imx31.c +++ b/trunk/arch/arm/mach-imx/clock-imx31.c @@ -476,7 +476,7 @@ DEFINE_CLOCK(gpt_clk, 0, MXC_CCM_CGR0, 4, NULL, NULL, &perclk_clk); DEFINE_CLOCK(epit1_clk, 0, MXC_CCM_CGR0, 6, NULL, NULL, &perclk_clk); DEFINE_CLOCK(epit2_clk, 1, MXC_CCM_CGR0, 8, NULL, NULL, &perclk_clk); DEFINE_CLOCK(iim_clk, 0, MXC_CCM_CGR0, 10, NULL, NULL, &ipg_clk); -DEFINE_CLOCK(pata_clk, 0, MXC_CCM_CGR0, 12, NULL, NULL, &ipg_clk); +DEFINE_CLOCK(ata_clk, 0, MXC_CCM_CGR0, 12, NULL, NULL, &ipg_clk); DEFINE_CLOCK(sdma_clk1, 0, MXC_CCM_CGR0, 14, NULL, NULL, &ahb_clk); DEFINE_CLOCK(cspi3_clk, 2, MXC_CCM_CGR0, 16, NULL, NULL, &ipg_clk); DEFINE_CLOCK(rng_clk, 0, MXC_CCM_CGR0, 18, NULL, NULL, &ipg_clk); @@ -562,7 +562,7 @@ static struct clk_lookup lookups[] = { _REGISTER_CLOCK("imx-ssi.0", NULL, ssi1_clk) _REGISTER_CLOCK("imx-ssi.1", NULL, ssi2_clk) _REGISTER_CLOCK(NULL, "firi", firi_clk) - _REGISTER_CLOCK("pata_imx", NULL, pata_clk) + _REGISTER_CLOCK(NULL, "ata", ata_clk) _REGISTER_CLOCK(NULL, "rtic", rtic_clk) _REGISTER_CLOCK(NULL, "rng", rng_clk) _REGISTER_CLOCK("imx31-sdma", NULL, sdma_clk1) @@ -611,11 +611,11 @@ int __init mx31_clocks_init(unsigned long fref) clk_enable(&gpt_clk); clk_enable(&emi_clk); clk_enable(&iim_clk); - mx31_revision(); - clk_disable(&iim_clk); clk_enable(&serial_pll_clk); + mx31_read_cpu_rev(); + if (mx31_revision() >= IMX_CHIP_REVISION_2_0) { reg = __raw_readl(MXC_CCM_PMCR1); /* No PLL restart on DVFS switch; enable auto EMI handshake */ diff --git a/trunk/arch/arm/mach-imx/clock-imx35.c b/trunk/arch/arm/mach-imx/clock-imx35.c index 8116f119517d..88b62a071aea 100644 --- a/trunk/arch/arm/mach-imx/clock-imx35.c +++ b/trunk/arch/arm/mach-imx/clock-imx35.c @@ -354,7 +354,7 @@ static void clk_cgr_disable(struct clk *clk) } DEFINE_CLOCK(asrc_clk, 0, CCM_CGR0, 0, NULL, NULL); -DEFINE_CLOCK(pata_clk, 0, CCM_CGR0, 2, get_rate_ipg, NULL); +DEFINE_CLOCK(ata_clk, 0, CCM_CGR0, 2, get_rate_ipg, NULL); /* DEFINE_CLOCK(audmux_clk, 0, CCM_CGR0, 4, NULL, NULL); */ DEFINE_CLOCK(can1_clk, 0, CCM_CGR0, 6, get_rate_ipg, NULL); DEFINE_CLOCK(can2_clk, 1, CCM_CGR0, 8, get_rate_ipg, NULL); @@ -447,7 +447,7 @@ static struct clk nfc_clk = { static struct clk_lookup lookups[] = { _REGISTER_CLOCK(NULL, "asrc", asrc_clk) - _REGISTER_CLOCK("pata_imx", NULL, pata_clk) + _REGISTER_CLOCK(NULL, "ata", ata_clk) _REGISTER_CLOCK("flexcan.0", NULL, can1_clk) _REGISTER_CLOCK("flexcan.1", NULL, can2_clk) _REGISTER_CLOCK("imx35-cspi.0", NULL, cspi1_clk) @@ -537,8 +537,7 @@ int __init mx35_clocks_init() __raw_writel(cgr3, CCM_BASE + CCM_CGR3); clk_enable(&iim_clk); - imx_print_silicon_rev("i.MX35", mx35_revision()); - clk_disable(&iim_clk); + mx35_read_cpu_rev(); #ifdef CONFIG_MXC_USE_EPIT epit_timer_init(&epit1_clk, diff --git a/trunk/arch/arm/mach-imx/cpu-imx25.c b/trunk/arch/arm/mach-imx/cpu-imx25.c deleted file mode 100644 index 6914bcbf84e4..000000000000 --- a/trunk/arch/arm/mach-imx/cpu-imx25.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * MX25 CPU type detection - * - * Copyright (c) 2009 Daniel Mack - * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - */ -#include -#include -#include -#include - -static int mx25_cpu_rev = -1; - -static int mx25_read_cpu_rev(void) -{ - u32 rev; - - rev = __raw_readl(MX25_IO_ADDRESS(MX25_IIM_BASE_ADDR + MXC_IIMSREV)); - switch (rev) { - case 0x00: - return IMX_CHIP_REVISION_1_0; - case 0x01: - return IMX_CHIP_REVISION_1_1; - default: - return IMX_CHIP_REVISION_UNKNOWN; - } -} - -int mx25_revision(void) -{ - if (mx25_cpu_rev == -1) - mx25_cpu_rev = mx25_read_cpu_rev(); - - return mx25_cpu_rev; -} -EXPORT_SYMBOL(mx25_revision); diff --git a/trunk/arch/arm/mach-imx/cpu-imx27.c b/trunk/arch/arm/mach-imx/cpu-imx27.c index ff38e1505f67..3b117be37bd2 100644 --- a/trunk/arch/arm/mach-imx/cpu-imx27.c +++ b/trunk/arch/arm/mach-imx/cpu-imx27.c @@ -26,12 +26,12 @@ #include -static int mx27_cpu_rev = -1; -static int mx27_cpu_partnumber; +static int cpu_silicon_rev = -1; +static int cpu_partnumber; #define SYS_CHIP_ID 0x00 /* The offset of CHIP ID register */ -static int mx27_read_cpu_rev(void) +static void query_silicon_parameter(void) { u32 val; /* @@ -42,18 +42,20 @@ static int mx27_read_cpu_rev(void) val = __raw_readl(MX27_IO_ADDRESS(MX27_SYSCTRL_BASE_ADDR + SYS_CHIP_ID)); - mx27_cpu_partnumber = (int)((val >> 12) & 0xFFFF); - switch (val >> 28) { case 0: - return IMX_CHIP_REVISION_1_0; + cpu_silicon_rev = IMX_CHIP_REVISION_1_0; + break; case 1: - return IMX_CHIP_REVISION_2_0; + cpu_silicon_rev = IMX_CHIP_REVISION_2_0; + break; case 2: - return IMX_CHIP_REVISION_2_1; + cpu_silicon_rev = IMX_CHIP_REVISION_2_1; + break; default: - return IMX_CHIP_REVISION_UNKNOWN; + cpu_silicon_rev = IMX_CHIP_REVISION_UNKNOWN; } + cpu_partnumber = (int)((val >> 12) & 0xFFFF); } /* @@ -63,12 +65,12 @@ static int mx27_read_cpu_rev(void) */ int mx27_revision(void) { - if (mx27_cpu_rev == -1) - mx27_cpu_rev = mx27_read_cpu_rev(); + if (cpu_silicon_rev == -1) + query_silicon_parameter(); - if (mx27_cpu_partnumber != 0x8821) + if (cpu_partnumber != 0x8821) return -EINVAL; - return mx27_cpu_rev; + return cpu_silicon_rev; } EXPORT_SYMBOL(mx27_revision); diff --git a/trunk/arch/arm/mach-imx/cpu-imx31.c b/trunk/arch/arm/mach-imx/cpu-imx31.c index 3f2345f0cdaf..a3780700a882 100644 --- a/trunk/arch/arm/mach-imx/cpu-imx31.c +++ b/trunk/arch/arm/mach-imx/cpu-imx31.c @@ -13,50 +13,45 @@ #include #include #include -#include -static int mx31_cpu_rev = -1; +unsigned int mx31_cpu_rev; +EXPORT_SYMBOL(mx31_cpu_rev); static struct { u8 srev; const char *name; + const char *v; unsigned int rev; -} mx31_cpu_type[] = { - { .srev = 0x00, .name = "i.MX31(L)", .rev = IMX_CHIP_REVISION_1_0 }, - { .srev = 0x10, .name = "i.MX31", .rev = IMX_CHIP_REVISION_1_1 }, - { .srev = 0x11, .name = "i.MX31L", .rev = IMX_CHIP_REVISION_1_1 }, - { .srev = 0x12, .name = "i.MX31", .rev = IMX_CHIP_REVISION_1_1 }, - { .srev = 0x13, .name = "i.MX31L", .rev = IMX_CHIP_REVISION_1_1 }, - { .srev = 0x14, .name = "i.MX31", .rev = IMX_CHIP_REVISION_1_2 }, - { .srev = 0x15, .name = "i.MX31L", .rev = IMX_CHIP_REVISION_1_2 }, - { .srev = 0x28, .name = "i.MX31", .rev = IMX_CHIP_REVISION_2_0 }, - { .srev = 0x29, .name = "i.MX31L", .rev = IMX_CHIP_REVISION_2_0 }, +} mx31_cpu_type[] __initdata = { + { .srev = 0x00, .name = "i.MX31(L)", .v = "1.0", .rev = IMX_CHIP_REVISION_1_0 }, + { .srev = 0x10, .name = "i.MX31", .v = "1.1", .rev = IMX_CHIP_REVISION_1_1 }, + { .srev = 0x11, .name = "i.MX31L", .v = "1.1", .rev = IMX_CHIP_REVISION_1_1 }, + { .srev = 0x12, .name = "i.MX31", .v = "1.15", .rev = IMX_CHIP_REVISION_1_1 }, + { .srev = 0x13, .name = "i.MX31L", .v = "1.15", .rev = IMX_CHIP_REVISION_1_1 }, + { .srev = 0x14, .name = "i.MX31", .v = "1.2", .rev = IMX_CHIP_REVISION_1_2 }, + { .srev = 0x15, .name = "i.MX31L", .v = "1.2", .rev = IMX_CHIP_REVISION_1_2 }, + { .srev = 0x28, .name = "i.MX31", .v = "2.0", .rev = IMX_CHIP_REVISION_2_0 }, + { .srev = 0x29, .name = "i.MX31L", .v = "2.0", .rev = IMX_CHIP_REVISION_2_0 }, }; -static int mx31_read_cpu_rev(void) +void __init mx31_read_cpu_rev(void) { u32 i, srev; /* read SREV register from IIM module */ srev = __raw_readl(MX31_IO_ADDRESS(MX31_IIM_BASE_ADDR + MXC_IIMSREV)); - srev &= 0xff; for (i = 0; i < ARRAY_SIZE(mx31_cpu_type); i++) if (srev == mx31_cpu_type[i].srev) { - imx_print_silicon_rev(mx31_cpu_type[i].name, - mx31_cpu_type[i].rev); - return mx31_cpu_type[i].rev; - } + printk(KERN_INFO + "CPU identified as %s, silicon rev %s\n", + mx31_cpu_type[i].name, mx31_cpu_type[i].v); - imx_print_silicon_rev("i.MX31", IMX_CHIP_REVISION_UNKNOWN); - return IMX_CHIP_REVISION_UNKNOWN; -} + mx31_cpu_rev = mx31_cpu_type[i].rev; + return; + } -int mx31_revision(void) -{ - if (mx31_cpu_rev == -1) - mx31_cpu_rev = mx31_read_cpu_rev(); + mx31_cpu_rev = IMX_CHIP_REVISION_UNKNOWN; - return mx31_cpu_rev; + printk(KERN_WARNING "Unknown CPU identifier. srev = %02x\n", srev); } -EXPORT_SYMBOL(mx31_revision); diff --git a/trunk/arch/arm/mach-imx/cpu-imx35.c b/trunk/arch/arm/mach-imx/cpu-imx35.c index 846e46eb8cbf..6637cd819ecb 100644 --- a/trunk/arch/arm/mach-imx/cpu-imx35.c +++ b/trunk/arch/arm/mach-imx/cpu-imx35.c @@ -13,30 +13,32 @@ #include #include -static int mx35_cpu_rev = -1; +unsigned int mx35_cpu_rev; +EXPORT_SYMBOL(mx35_cpu_rev); -static int mx35_read_cpu_rev(void) +void __init mx35_read_cpu_rev(void) { u32 rev; + char *srev; rev = __raw_readl(MX35_IO_ADDRESS(MX35_IIM_BASE_ADDR + MXC_IIMSREV)); switch (rev) { case 0x00: - return IMX_CHIP_REVISION_1_0; + mx35_cpu_rev = IMX_CHIP_REVISION_1_0; + srev = "1.0"; + break; case 0x10: - return IMX_CHIP_REVISION_2_0; + mx35_cpu_rev = IMX_CHIP_REVISION_2_0; + srev = "2.0"; + break; case 0x11: - return IMX_CHIP_REVISION_2_1; + mx35_cpu_rev = IMX_CHIP_REVISION_2_1; + srev = "2.1"; + break; default: - return IMX_CHIP_REVISION_UNKNOWN; + mx35_cpu_rev = IMX_CHIP_REVISION_UNKNOWN; + srev = "unknown"; } -} - -int mx35_revision(void) -{ - if (mx35_cpu_rev == -1) - mx35_cpu_rev = mx35_read_cpu_rev(); - return mx35_cpu_rev; + printk(KERN_INFO "CPU identified as i.MX35, silicon rev %s\n", srev); } -EXPORT_SYMBOL(mx35_revision); diff --git a/trunk/arch/arm/mach-imx/devices-imx27.h b/trunk/arch/arm/mach-imx/devices-imx27.h index 2f727d7c380c..7f97a3cdd41d 100644 --- a/trunk/arch/arm/mach-imx/devices-imx27.h +++ b/trunk/arch/arm/mach-imx/devices-imx27.h @@ -76,7 +76,3 @@ extern const struct imx_spi_imx_data imx27_cspi_data[]; #define imx27_add_spi_imx0(pdata) imx27_add_cspi(0, pdata) #define imx27_add_spi_imx1(pdata) imx27_add_cspi(1, pdata) #define imx27_add_spi_imx2(pdata) imx27_add_cspi(2, pdata) - -extern const struct imx_pata_imx_data imx27_pata_imx_data; -#define imx27_add_pata_imx() \ - imx_add_pata_imx(&imx27_pata_imx_data) diff --git a/trunk/arch/arm/mach-imx/devices-imx31.h b/trunk/arch/arm/mach-imx/devices-imx31.h index 488e241a6db6..dbe940d9c53a 100644 --- a/trunk/arch/arm/mach-imx/devices-imx31.h +++ b/trunk/arch/arm/mach-imx/devices-imx31.h @@ -78,7 +78,3 @@ extern const struct imx_spi_imx_data imx31_cspi_data[]; #define imx31_add_spi_imx0(pdata) imx31_add_cspi(0, pdata) #define imx31_add_spi_imx1(pdata) imx31_add_cspi(1, pdata) #define imx31_add_spi_imx2(pdata) imx31_add_cspi(2, pdata) - -extern const struct imx_pata_imx_data imx31_pata_imx_data; -#define imx31_add_pata_imx() \ - imx_add_pata_imx(&imx31_pata_imx_data) diff --git a/trunk/arch/arm/mach-imx/devices-imx35.h b/trunk/arch/arm/mach-imx/devices-imx35.h index 7b99ef0bb501..234cbd3c18af 100644 --- a/trunk/arch/arm/mach-imx/devices-imx35.h +++ b/trunk/arch/arm/mach-imx/devices-imx35.h @@ -81,7 +81,3 @@ extern const struct imx_spi_imx_data imx35_cspi_data[]; imx_add_spi_imx(&imx35_cspi_data[id], pdata) #define imx35_add_spi_imx0(pdata) imx35_add_cspi(0, pdata) #define imx35_add_spi_imx1(pdata) imx35_add_cspi(1, pdata) - -extern const struct imx_pata_imx_data imx35_pata_imx_data; -#define imx35_add_pata_imx() \ - imx_add_pata_imx(&imx35_pata_imx_data) diff --git a/trunk/arch/arm/mach-imx/mach-apf9328.c b/trunk/arch/arm/mach-imx/mach-apf9328.c index 1e486e67dabb..a404c89485ca 100644 --- a/trunk/arch/arm/mach-imx/mach-apf9328.c +++ b/trunk/arch/arm/mach-imx/mach-apf9328.c @@ -136,7 +136,6 @@ MACHINE_START(APF9328, "Armadeus APF9328") .map_io = mx1_map_io, .init_early = imx1_init_early, .init_irq = mx1_init_irq, - .handle_irq = imx1_handle_irq, .timer = &apf9328_timer, .init_machine = apf9328_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-armadillo5x0.c b/trunk/arch/arm/mach-imx/mach-armadillo5x0.c index e008554e48bf..ede2710f8b76 100644 --- a/trunk/arch/arm/mach-imx/mach-armadillo5x0.c +++ b/trunk/arch/arm/mach-imx/mach-armadillo5x0.c @@ -314,19 +314,25 @@ static struct mtd_partition armadillo5x0_nor_flash_partitions[] = { }, }; -static const struct physmap_flash_data - armadillo5x0_nor_flash_pdata __initconst = { +static struct physmap_flash_data armadillo5x0_nor_flash_pdata = { .width = 2, .parts = armadillo5x0_nor_flash_partitions, .nr_parts = ARRAY_SIZE(armadillo5x0_nor_flash_partitions), }; -static const struct resource armadillo5x0_nor_flash_resource __initconst = { +static struct resource armadillo5x0_nor_flash_resource = { .flags = IORESOURCE_MEM, .start = MX31_CS0_BASE_ADDR, .end = MX31_CS0_BASE_ADDR + SZ_64M - 1, }; +static struct platform_device armadillo5x0_nor_flash = { + .name = "physmap-flash", + .id = -1, + .num_resources = 1, + .resource = &armadillo5x0_nor_flash_resource, +}; + /* * FB support */ @@ -508,10 +514,8 @@ static void __init armadillo5x0_init(void) imx31_add_mx3_sdc_fb(&mx3fb_pdata); /* Register NOR Flash */ - platform_device_register_resndata(NULL, "physmap-flash", -1, - &armadillo5x0_nor_flash_resource, 1, - &armadillo5x0_nor_flash_pdata, - sizeof(armadillo5x0_nor_flash_pdata)); + mxc_register_device(&armadillo5x0_nor_flash, + &armadillo5x0_nor_flash_pdata); /* Register NAND Flash */ imx31_add_mxc_nand(&armadillo5x0_nand_board_info); @@ -558,7 +562,6 @@ MACHINE_START(ARMADILLO5X0, "Armadillo-500") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &armadillo5x0_timer, .init_machine = armadillo5x0_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-bug.c b/trunk/arch/arm/mach-imx/mach-bug.c index 313f62ddc1ef..f49470553bdf 100644 --- a/trunk/arch/arm/mach-imx/mach-bug.c +++ b/trunk/arch/arm/mach-imx/mach-bug.c @@ -62,7 +62,6 @@ MACHINE_START(BUG, "BugLabs BUGBase") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &bug_timer, .init_machine = bug_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-cpuimx27.c b/trunk/arch/arm/mach-imx/mach-cpuimx27.c index a8364cc52b4d..f851fe903687 100644 --- a/trunk/arch/arm/mach-imx/mach-cpuimx27.c +++ b/trunk/arch/arm/mach-imx/mach-cpuimx27.c @@ -315,7 +315,6 @@ MACHINE_START(EUKREA_CPUIMX27, "EUKREA CPUIMX27") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &eukrea_cpuimx27_timer, .init_machine = eukrea_cpuimx27_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-cpuimx35.c b/trunk/arch/arm/mach-imx/mach-cpuimx35.c index fc4fea1d3fc7..4bd083ba9af2 100644 --- a/trunk/arch/arm/mach-imx/mach-cpuimx35.c +++ b/trunk/arch/arm/mach-imx/mach-cpuimx35.c @@ -66,7 +66,7 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { I2C_BOARD_INFO("tsc2007", 0x48), .type = "tsc2007", .platform_data = &tsc2007_info, - .irq = IMX_GPIO_TO_IRQ(TSC2007_IRQGPIO), + .irq = gpio_to_irq(TSC2007_IRQGPIO), }, }; @@ -198,7 +198,6 @@ MACHINE_START(EUKREA_CPUIMX35SD, "Eukrea CPUIMX35") .map_io = mx35_map_io, .init_early = imx35_init_early, .init_irq = mx35_init_irq, - .handle_irq = imx35_handle_irq, .timer = &eukrea_cpuimx35_timer, .init_machine = eukrea_cpuimx35_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-eukrea_cpuimx25.c b/trunk/arch/arm/mach-imx/mach-eukrea_cpuimx25.c index b05de09b1a6e..2442d5da883d 100644 --- a/trunk/arch/arm/mach-imx/mach-eukrea_cpuimx25.c +++ b/trunk/arch/arm/mach-imx/mach-eukrea_cpuimx25.c @@ -167,7 +167,6 @@ MACHINE_START(EUKREA_CPUIMX25SD, "Eukrea CPUIMX25") .map_io = mx25_map_io, .init_early = imx25_init_early, .init_irq = mx25_init_irq, - .handle_irq = imx25_handle_irq, .timer = &eukrea_cpuimx25_timer, .init_machine = eukrea_cpuimx25_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 678cf831bc31..6778f8193bc6 100644 --- a/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/trunk/arch/arm/mach-imx/mach-imx27_visstrim_m10.c @@ -279,7 +279,6 @@ MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &visstrim_m10_timer, .init_machine = visstrim_m10_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-imx27ipcam.c b/trunk/arch/arm/mach-imx/mach-imx27ipcam.c index f572ce943947..272f793e9247 100644 --- a/trunk/arch/arm/mach-imx/mach-imx27ipcam.c +++ b/trunk/arch/arm/mach-imx/mach-imx27ipcam.c @@ -75,7 +75,6 @@ MACHINE_START(IMX27IPCAM, "Freescale IMX27IPCAM") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &mx27ipcam_timer, .init_machine = mx27ipcam_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-imx27lite.c b/trunk/arch/arm/mach-imx/mach-imx27lite.c index e7fc4f044946..d81a769fe895 100644 --- a/trunk/arch/arm/mach-imx/mach-imx27lite.c +++ b/trunk/arch/arm/mach-imx/mach-imx27lite.c @@ -81,7 +81,6 @@ MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &mx27lite_timer, .init_machine = mx27lite_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c b/trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c index a65d91048348..e472a1d88058 100644 --- a/trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c +++ b/trunk/arch/arm/mach-imx/mach-kzm_arm11_01.c @@ -275,7 +275,6 @@ MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01") .map_io = kzm_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &kzm_timer, .init_machine = kzm_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx1ads.c b/trunk/arch/arm/mach-imx/mach-mx1ads.c index ebe9a29e30a6..5cd8bee46960 100644 --- a/trunk/arch/arm/mach-imx/mach-mx1ads.c +++ b/trunk/arch/arm/mach-imx/mach-mx1ads.c @@ -68,16 +68,23 @@ static const struct imxuart_platform_data uart1_pdata __initconst = { * Physmap flash */ -static const struct physmap_flash_data mx1ads_flash_data __initconst = { +static struct physmap_flash_data mx1ads_flash_data = { .width = 4, /* bankwidth in bytes */ }; -static const struct resource flash_resource __initconst = { +static struct resource flash_resource = { .start = MX1_CS0_PHYS, .end = MX1_CS0_PHYS + SZ_32M - 1, .flags = IORESOURCE_MEM, }; +static struct platform_device flash_device = { + .name = "physmap-flash", + .id = 0, + .resource = &flash_resource, + .num_resources = 1, +}; + /* * I2C */ @@ -118,9 +125,7 @@ static void __init mx1ads_init(void) imx1_add_imx_uart1(&uart1_pdata); /* Physmap flash */ - platform_device_register_resndata(NULL, "physmap-flash", 0, - &flash_resource, 1, - &mx1ads_flash_data, sizeof(mx1ads_flash_data)); + mxc_register_device(&flash_device, &mx1ads_flash_data); /* I2C */ i2c_register_board_info(0, mx1ads_i2c_devices, @@ -144,7 +149,6 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS") .map_io = mx1_map_io, .init_early = imx1_init_early, .init_irq = mx1_init_irq, - .handle_irq = imx1_handle_irq, .timer = &mx1ads_timer, .init_machine = mx1ads_init, MACHINE_END @@ -154,7 +158,6 @@ MACHINE_START(MXLADS, "Freescale MXLADS") .map_io = mx1_map_io, .init_early = imx1_init_early, .init_irq = mx1_init_irq, - .handle_irq = imx1_handle_irq, .timer = &mx1ads_timer, .init_machine = mx1ads_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx21ads.c b/trunk/arch/arm/mach-imx/mach-mx21ads.c index 43dd22b768e0..d389ecf9b5a8 100644 --- a/trunk/arch/arm/mach-imx/mach-mx21ads.c +++ b/trunk/arch/arm/mach-imx/mach-mx21ads.c @@ -309,7 +309,6 @@ MACHINE_START(MX21ADS, "Freescale i.MX21ADS") .map_io = mx21ads_map_io, .init_early = imx21_init_early, .init_irq = mx21_init_irq, - .handle_irq = imx21_handle_irq, .timer = &mx21ads_timer, .init_machine = mx21ads_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx25_3ds.c b/trunk/arch/arm/mach-imx/mach-mx25_3ds.c index bd735ad6675e..7f66a91df361 100644 --- a/trunk/arch/arm/mach-imx/mach-mx25_3ds.c +++ b/trunk/arch/arm/mach-imx/mach-mx25_3ds.c @@ -43,8 +43,6 @@ #include "devices-imx25.h" -#define MX25PDK_CAN_PWDN IMX_GPIO_NR(4, 6) - static const struct imxuart_platform_data uart_pdata __initconst = { .flags = IMXUART_HAVE_RTSCTS, }; @@ -110,11 +108,6 @@ static iomux_v3_cfg_t mx25pdk_pads[] = { /* I2C1 */ MX25_PAD_I2C1_CLK__I2C1_CLK, MX25_PAD_I2C1_DAT__I2C1_DAT, - - /* CAN1 */ - MX25_PAD_GPIO_A__CAN1_TX, - MX25_PAD_GPIO_B__CAN1_RX, - MX25_PAD_D14__GPIO_4_6, /* CAN_PWDN */ }; static const struct fec_platform_data mx25_fec_pdata __initconst = { @@ -247,9 +240,6 @@ static void __init mx25pdk_init(void) imx25_add_sdhci_esdhc_imx(0, &mx25pdk_esdhc_pdata); imx25_add_imx_i2c0(&mx25_3ds_i2c0_data); - - gpio_request_one(MX25PDK_CAN_PWDN, GPIOF_OUT_INIT_LOW, "can-pwdn"); - imx25_add_flexcan0(NULL); } static void __init mx25pdk_timer_init(void) @@ -267,7 +257,6 @@ MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)") .map_io = mx25_map_io, .init_early = imx25_init_early, .init_irq = mx25_init_irq, - .handle_irq = imx25_handle_irq, .timer = &mx25pdk_timer, .init_machine = mx25pdk_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx27_3ds.c b/trunk/arch/arm/mach-imx/mach-mx27_3ds.c index b2bc10bdf443..6fa6934ab150 100644 --- a/trunk/arch/arm/mach-imx/mach-mx27_3ds.c +++ b/trunk/arch/arm/mach-imx/mach-mx27_3ds.c @@ -359,7 +359,7 @@ static struct spi_board_info mx27_3ds_spi_devs[] __initdata = { .bus_num = 1, .chip_select = 0, /* SS0 */ .platform_data = &mc13783_pdata, - .irq = IMX_GPIO_TO_IRQ(PMIC_INT), + .irq = gpio_to_irq(PMIC_INT), .mode = SPI_CS_HIGH, }, { .modalias = "l4f00242t03", @@ -425,7 +425,6 @@ MACHINE_START(MX27_3DS, "Freescale MX27PDK") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &mx27pdk_timer, .init_machine = mx27pdk_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx27ads.c b/trunk/arch/arm/mach-imx/mach-mx27ads.c index e6d132108b2b..fc26ed71b9ed 100644 --- a/trunk/arch/arm/mach-imx/mach-mx27ads.c +++ b/trunk/arch/arm/mach-imx/mach-mx27ads.c @@ -349,7 +349,6 @@ MACHINE_START(MX27ADS, "Freescale i.MX27ADS") .map_io = mx27ads_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &mx27ads_timer, .init_machine = mx27ads_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx31_3ds.c b/trunk/arch/arm/mach-imx/mach-mx31_3ds.c index b4aa9c35bb45..c20be7530927 100644 --- a/trunk/arch/arm/mach-imx/mach-mx31_3ds.c +++ b/trunk/arch/arm/mach-imx/mach-mx31_3ds.c @@ -768,7 +768,6 @@ MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &mx31_3ds_timer, .init_machine = mx31_3ds_init, .reserve = mx31_3ds_reserve, diff --git a/trunk/arch/arm/mach-imx/mach-mx31ads.c b/trunk/arch/arm/mach-imx/mach-mx31ads.c index 13e7347e14d4..29ca8907a780 100644 --- a/trunk/arch/arm/mach-imx/mach-mx31ads.c +++ b/trunk/arch/arm/mach-imx/mach-mx31ads.c @@ -539,7 +539,6 @@ MACHINE_START(MX31ADS, "Freescale MX31ADS") .map_io = mx31ads_map_io, .init_early = imx31_init_early, .init_irq = mx31ads_init_irq, - .handle_irq = imx31_handle_irq, .timer = &mx31ads_timer, .init_machine = mx31ads_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx31lilly.c b/trunk/arch/arm/mach-imx/mach-mx31lilly.c index 070a8d1f40cc..126913ad106a 100644 --- a/trunk/arch/arm/mach-imx/mach-mx31lilly.c +++ b/trunk/arch/arm/mach-imx/mach-mx31lilly.c @@ -299,7 +299,6 @@ MACHINE_START(LILLY1131, "INCO startec LILLY-1131") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &mx31lilly_timer, .init_machine = mx31lilly_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx31lite.c b/trunk/arch/arm/mach-imx/mach-mx31lite.c index 4f66ea440742..4b47fd9fdd89 100644 --- a/trunk/arch/arm/mach-imx/mach-mx31lite.c +++ b/trunk/arch/arm/mach-imx/mach-mx31lite.c @@ -284,7 +284,6 @@ MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM") .map_io = mx31lite_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &mx31lite_timer, .init_machine = mx31lite_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx31moboard.c b/trunk/arch/arm/mach-imx/mach-mx31moboard.c index cd07ebe9b9d8..b358383120e7 100644 --- a/trunk/arch/arm/mach-imx/mach-mx31moboard.c +++ b/trunk/arch/arm/mach-imx/mach-mx31moboard.c @@ -28,9 +28,6 @@ #include #include #include -#include -#include -#include #include #include @@ -493,18 +490,6 @@ static int __init mx31moboard_init_cam(void) } -static void mx31moboard_poweroff(void) -{ - struct clk *clk = clk_get_sys("imx2-wdt.0", NULL); - - if (!IS_ERR(clk)) - clk_enable(clk); - - mxc_iomux_mode(MX31_PIN_WATCHDOG_RST__WATCHDOG_RST); - - __raw_writew(1 << 6 | 1 << 2, MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR)); -} - static int mx31moboard_baseboard; core_param(mx31moboard_baseboard, mx31moboard_baseboard, int, 0444); @@ -543,8 +528,6 @@ static void __init mx31moboard_init(void) moboard_usbh2_init(); - pm_power_off = mx31moboard_poweroff; - switch (mx31moboard_baseboard) { case MX31NOBOARD: break; @@ -589,7 +572,6 @@ MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &mx31moboard_timer, .init_machine = mx31moboard_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mx35_3ds.c b/trunk/arch/arm/mach-imx/mach-mx35_3ds.c index 5a5eb3e0f737..b3b9bd8ac2a3 100644 --- a/trunk/arch/arm/mach-imx/mach-mx35_3ds.c +++ b/trunk/arch/arm/mach-imx/mach-mx35_3ds.c @@ -221,7 +221,6 @@ MACHINE_START(MX35_3DS, "Freescale MX35PDK") .map_io = mx35_map_io, .init_early = imx35_init_early, .init_irq = mx35_init_irq, - .handle_irq = imx35_handle_irq, .timer = &mx35pdk_timer, .init_machine = mx35_3ds_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-mxt_td60.c b/trunk/arch/arm/mach-imx/mach-mxt_td60.c index d01a92f71006..c85876fed663 100644 --- a/trunk/arch/arm/mach-imx/mach-mxt_td60.c +++ b/trunk/arch/arm/mach-imx/mach-mxt_td60.c @@ -271,7 +271,6 @@ MACHINE_START(MXT_TD60, "Maxtrack i-MXT TD60") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &mxt_td60_timer, .init_machine = mxt_td60_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-pca100.c b/trunk/arch/arm/mach-imx/mach-pca100.c index 100babc71875..71083aa16038 100644 --- a/trunk/arch/arm/mach-imx/mach-pca100.c +++ b/trunk/arch/arm/mach-imx/mach-pca100.c @@ -439,7 +439,6 @@ MACHINE_START(PCA100, "phyCARD-i.MX27") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .init_machine = pca100_init, .timer = &pca100_timer, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-pcm037.c b/trunk/arch/arm/mach-imx/mach-pcm037.c index 3fb5eaa8248a..f45b7cd72c8a 100644 --- a/trunk/arch/arm/mach-imx/mach-pcm037.c +++ b/trunk/arch/arm/mach-imx/mach-pcm037.c @@ -693,7 +693,6 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &pcm037_timer, .init_machine = pcm037_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-pcm038.c b/trunk/arch/arm/mach-imx/mach-pcm038.c index dac2b790df06..2d6a64bbac44 100644 --- a/trunk/arch/arm/mach-imx/mach-pcm038.c +++ b/trunk/arch/arm/mach-imx/mach-pcm038.c @@ -353,7 +353,6 @@ MACHINE_START(PCM038, "phyCORE-i.MX27") .map_io = mx27_map_io, .init_early = imx27_init_early, .init_irq = mx27_init_irq, - .handle_irq = imx27_handle_irq, .timer = &pcm038_timer, .init_machine = pcm038_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-pcm043.c b/trunk/arch/arm/mach-imx/mach-pcm043.c index a27baa493ced..660ec3e80cf8 100644 --- a/trunk/arch/arm/mach-imx/mach-pcm043.c +++ b/trunk/arch/arm/mach-imx/mach-pcm043.c @@ -422,7 +422,6 @@ MACHINE_START(PCM043, "Phytec Phycore pcm043") .map_io = mx35_map_io, .init_early = imx35_init_early, .init_irq = mx35_init_irq, - .handle_irq = imx35_handle_irq, .timer = &pcm043_timer, .init_machine = pcm043_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-qong.c b/trunk/arch/arm/mach-imx/mach-qong.c index 4243d1f548c2..3626f486498a 100644 --- a/trunk/arch/arm/mach-imx/mach-qong.c +++ b/trunk/arch/arm/mach-imx/mach-qong.c @@ -249,7 +249,6 @@ static void __init qong_init(void) mxc_init_imx_uart(); qong_init_nor_mtd(); qong_init_fpga(); - imx31_add_imx2_wdt(NULL); } static void __init qong_timer_init(void) @@ -267,7 +266,6 @@ MACHINE_START(QONG, "Dave/DENX QongEVB-LITE") .map_io = mx31_map_io, .init_early = imx31_init_early, .init_irq = mx31_init_irq, - .handle_irq = imx31_handle_irq, .timer = &qong_timer, .init_machine = qong_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-scb9328.c b/trunk/arch/arm/mach-imx/mach-scb9328.c index 17f15fb57e1c..db2d60470e15 100644 --- a/trunk/arch/arm/mach-imx/mach-scb9328.c +++ b/trunk/arch/arm/mach-imx/mach-scb9328.c @@ -141,7 +141,6 @@ MACHINE_START(SCB9328, "Synertronixx scb9328") .map_io = mx1_map_io, .init_early = imx1_init_early, .init_irq = mx1_init_irq, - .handle_irq = imx1_handle_irq, .timer = &scb9328_timer, .init_machine = scb9328_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mach-vpr200.c b/trunk/arch/arm/mach-imx/mach-vpr200.c index 69092458f2d9..7d8e012a6335 100644 --- a/trunk/arch/arm/mach-imx/mach-vpr200.c +++ b/trunk/arch/arm/mach-imx/mach-vpr200.c @@ -162,7 +162,7 @@ static struct i2c_board_info vpr200_i2c_devices[] = { }, { I2C_BOARD_INFO("mc13892", 0x08), .platform_data = &vpr200_pmic, - .irq = IMX_GPIO_TO_IRQ(GPIO_PMIC_INT), + .irq = gpio_to_irq(GPIO_PMIC_INT), } }; @@ -319,7 +319,6 @@ MACHINE_START(VPR200, "VPR200") .map_io = mx35_map_io, .init_early = imx35_init_early, .init_irq = mx35_init_irq, - .handle_irq = imx35_handle_irq, .timer = &vpr200_timer, .init_machine = vpr200_board_init, MACHINE_END diff --git a/trunk/arch/arm/mach-imx/mm-imx3.c b/trunk/arch/arm/mach-imx/mm-imx3.c deleted file mode 100644 index 9f0e82ec3398..000000000000 --- a/trunk/arch/arm/mach-imx/mm-imx3.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (C) 1999,2000 Arm Limited - * Copyright (C) 2000 Deep Blue Solutions Ltd - * Copyright (C) 2002 Shane Nay (shane@minirl.com) - * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. - * - add MX31 specific definitions - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include - -static void imx3_idle(void) -{ - unsigned long reg = 0; - __asm__ __volatile__( - /* disable I and D cache */ - "mrc p15, 0, %0, c1, c0, 0\n" - "bic %0, %0, #0x00001000\n" - "bic %0, %0, #0x00000004\n" - "mcr p15, 0, %0, c1, c0, 0\n" - /* invalidate I cache */ - "mov %0, #0\n" - "mcr p15, 0, %0, c7, c5, 0\n" - /* clear and invalidate D cache */ - "mov %0, #0\n" - "mcr p15, 0, %0, c7, c14, 0\n" - /* WFI */ - "mov %0, #0\n" - "mcr p15, 0, %0, c7, c0, 4\n" - "nop\n" "nop\n" "nop\n" "nop\n" - "nop\n" "nop\n" "nop\n" - /* enable I and D cache */ - "mrc p15, 0, %0, c1, c0, 0\n" - "orr %0, %0, #0x00001000\n" - "orr %0, %0, #0x00000004\n" - "mcr p15, 0, %0, c1, c0, 0\n" - : "=r" (reg)); -} - -static void __iomem *imx3_ioremap(unsigned long phys_addr, size_t size, - unsigned int mtype) -{ - if (mtype == MT_DEVICE) { - /* - * Access all peripherals below 0x80000000 as nonshared device - * on mx3, but leave l2cc alone. Otherwise cache corruptions - * can occur. - */ - if (phys_addr < 0x80000000 && - !addr_in_module(phys_addr, MX3x_L2CC)) - mtype = MT_DEVICE_NONSHARED; - } - - return __arm_ioremap(phys_addr, size, mtype); -} - -void imx3_init_l2x0(void) -{ - void __iomem *l2x0_base; - void __iomem *clkctl_base; - -/* - * First of all, we must repair broken chip settings. There are some - * i.MX35 CPUs in the wild, comming with bogus L2 cache settings. These - * misconfigured CPUs will run amok immediately when the L2 cache gets enabled. - * Workaraound is to setup the correct register setting prior enabling the - * L2 cache. This should not hurt already working CPUs, as they are using the - * same value. - */ -#define L2_MEM_VAL 0x10 - - clkctl_base = ioremap(MX35_CLKCTL_BASE_ADDR, 4096); - if (clkctl_base != NULL) { - writel(0x00000515, clkctl_base + L2_MEM_VAL); - iounmap(clkctl_base); - } else { - pr_err("L2 cache: Cannot fix timing. Trying to continue without\n"); - } - - l2x0_base = ioremap(MX3x_L2CC_BASE_ADDR, 4096); - if (IS_ERR(l2x0_base)) { - printk(KERN_ERR "remapping L2 cache area failed with %ld\n", - PTR_ERR(l2x0_base)); - return; - } - - l2x0_init(l2x0_base, 0x00030024, 0x00000000); -} - -static struct map_desc mx31_io_desc[] __initdata = { - imx_map_entry(MX31, X_MEMC, MT_DEVICE), - imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED), - imx_map_entry(MX31, AIPS1, MT_DEVICE_NONSHARED), - imx_map_entry(MX31, AIPS2, MT_DEVICE_NONSHARED), - imx_map_entry(MX31, SPBA0, MT_DEVICE_NONSHARED), -}; - -/* - * This function initializes the memory map. It is called during the - * system startup to create static physical to virtual memory mappings - * for the IO modules. - */ -void __init mx31_map_io(void) -{ - iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc)); -} - -static struct map_desc mx35_io_desc[] __initdata = { - imx_map_entry(MX35, X_MEMC, MT_DEVICE), - imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED), - imx_map_entry(MX35, AIPS1, MT_DEVICE_NONSHARED), - imx_map_entry(MX35, AIPS2, MT_DEVICE_NONSHARED), - imx_map_entry(MX35, SPBA0, MT_DEVICE_NONSHARED), -}; - -void __init mx35_map_io(void) -{ - iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc)); -} - -void __init imx31_init_early(void) -{ - mxc_set_cpu_type(MXC_CPU_MX31); - mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR)); - imx_idle = imx3_idle; - imx_ioremap = imx3_ioremap; -} - -void __init imx35_init_early(void) -{ - mxc_set_cpu_type(MXC_CPU_MX35); - mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR)); - mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR)); - imx_idle = imx3_idle; - imx_ioremap = imx3_ioremap; -} - -void __init mx31_init_irq(void) -{ - mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR)); -} - -void __init mx35_init_irq(void) -{ - mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR)); -} - -static struct sdma_script_start_addrs imx31_to1_sdma_script __initdata = { - .per_2_per_addr = 1677, -}; - -static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = { - .ap_2_ap_addr = 423, - .ap_2_bp_addr = 829, - .bp_2_ap_addr = 1029, -}; - -static struct sdma_platform_data imx31_sdma_pdata __initdata = { - .fw_name = "sdma-imx31-to2.bin", - .script_addrs = &imx31_to2_sdma_script, -}; - -void __init imx31_soc_init(void) -{ - int to_version = mx31_revision() >> 4; - - imx3_init_l2x0(); - - mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0); - mxc_register_gpio("imx31-gpio", 1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0); - mxc_register_gpio("imx31-gpio", 2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0); - - if (to_version == 1) { - strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin", - strlen(imx31_sdma_pdata.fw_name)); - imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script; - } - - imx_add_imx_sdma("imx31-sdma", MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata); -} - -static struct sdma_script_start_addrs imx35_to1_sdma_script __initdata = { - .ap_2_ap_addr = 642, - .uart_2_mcu_addr = 817, - .mcu_2_app_addr = 747, - .uartsh_2_mcu_addr = 1183, - .per_2_shp_addr = 1033, - .mcu_2_shp_addr = 961, - .ata_2_mcu_addr = 1333, - .mcu_2_ata_addr = 1252, - .app_2_mcu_addr = 683, - .shp_2_per_addr = 1111, - .shp_2_mcu_addr = 892, -}; - -static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = { - .ap_2_ap_addr = 729, - .uart_2_mcu_addr = 904, - .per_2_app_addr = 1597, - .mcu_2_app_addr = 834, - .uartsh_2_mcu_addr = 1270, - .per_2_shp_addr = 1120, - .mcu_2_shp_addr = 1048, - .ata_2_mcu_addr = 1429, - .mcu_2_ata_addr = 1339, - .app_2_per_addr = 1531, - .app_2_mcu_addr = 770, - .shp_2_per_addr = 1198, - .shp_2_mcu_addr = 979, -}; - -static struct sdma_platform_data imx35_sdma_pdata __initdata = { - .fw_name = "sdma-imx35-to2.bin", - .script_addrs = &imx35_to2_sdma_script, -}; - -void __init imx35_soc_init(void) -{ - int to_version = mx35_revision() >> 4; - - imx3_init_l2x0(); - - /* i.mx35 has the i.mx31 type gpio */ - mxc_register_gpio("imx31-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0); - mxc_register_gpio("imx31-gpio", 1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0); - mxc_register_gpio("imx31-gpio", 2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0); - - if (to_version == 1) { - strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin", - strlen(imx35_sdma_pdata.fw_name)); - imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script; - } - - imx_add_imx_sdma("imx35-sdma", MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata); -} diff --git a/trunk/arch/arm/mach-imx/mm-imx31.c b/trunk/arch/arm/mach-imx/mm-imx31.c new file mode 100644 index 000000000000..b7c55e7db000 --- /dev/null +++ b/trunk/arch/arm/mach-imx/mm-imx31.c @@ -0,0 +1,91 @@ +/* + * Copyright (C) 1999,2000 Arm Limited + * Copyright (C) 2000 Deep Blue Solutions Ltd + * Copyright (C) 2002 Shane Nay (shane@minirl.com) + * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. + * - add MX31 specific definitions + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +static struct map_desc mx31_io_desc[] __initdata = { + imx_map_entry(MX31, X_MEMC, MT_DEVICE), + imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED), + imx_map_entry(MX31, AIPS1, MT_DEVICE_NONSHARED), + imx_map_entry(MX31, AIPS2, MT_DEVICE_NONSHARED), + imx_map_entry(MX31, SPBA0, MT_DEVICE_NONSHARED), +}; + +/* + * This function initializes the memory map. It is called during the + * system startup to create static physical to virtual memory mappings + * for the IO modules. + */ +void __init mx31_map_io(void) +{ + iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc)); +} + +void __init imx31_init_early(void) +{ + mxc_set_cpu_type(MXC_CPU_MX31); + mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR)); +} + +void __init mx31_init_irq(void) +{ + mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR)); +} + +static struct sdma_script_start_addrs imx31_to1_sdma_script __initdata = { + .per_2_per_addr = 1677, +}; + +static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = { + .ap_2_ap_addr = 423, + .ap_2_bp_addr = 829, + .bp_2_ap_addr = 1029, +}; + +static struct sdma_platform_data imx31_sdma_pdata __initdata = { + .fw_name = "sdma-imx31-to2.bin", + .script_addrs = &imx31_to2_sdma_script, +}; + +void __init imx31_soc_init(void) +{ + int to_version = mx31_revision() >> 4; + + mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0); + mxc_register_gpio("imx31-gpio", 1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0); + mxc_register_gpio("imx31-gpio", 2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0); + + if (to_version == 1) { + strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin", + strlen(imx31_sdma_pdata.fw_name)); + imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script; + } + + imx_add_imx_sdma("imx31-sdma", MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata); +} diff --git a/trunk/arch/arm/mach-imx/mm-imx35.c b/trunk/arch/arm/mach-imx/mm-imx35.c new file mode 100644 index 000000000000..f49bac7a1ede --- /dev/null +++ b/trunk/arch/arm/mach-imx/mm-imx35.c @@ -0,0 +1,109 @@ +/* + * Copyright (C) 1999,2000 Arm Limited + * Copyright (C) 2000 Deep Blue Solutions Ltd + * Copyright (C) 2002 Shane Nay (shane@minirl.com) + * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. + * - add MX31 specific definitions + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +static struct map_desc mx35_io_desc[] __initdata = { + imx_map_entry(MX35, X_MEMC, MT_DEVICE), + imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED), + imx_map_entry(MX35, AIPS1, MT_DEVICE_NONSHARED), + imx_map_entry(MX35, AIPS2, MT_DEVICE_NONSHARED), + imx_map_entry(MX35, SPBA0, MT_DEVICE_NONSHARED), +}; + +void __init mx35_map_io(void) +{ + iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc)); +} + +void __init imx35_init_early(void) +{ + mxc_set_cpu_type(MXC_CPU_MX35); + mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR)); + mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR)); +} + +void __init mx35_init_irq(void) +{ + mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR)); +} + +static struct sdma_script_start_addrs imx35_to1_sdma_script __initdata = { + .ap_2_ap_addr = 642, + .uart_2_mcu_addr = 817, + .mcu_2_app_addr = 747, + .uartsh_2_mcu_addr = 1183, + .per_2_shp_addr = 1033, + .mcu_2_shp_addr = 961, + .ata_2_mcu_addr = 1333, + .mcu_2_ata_addr = 1252, + .app_2_mcu_addr = 683, + .shp_2_per_addr = 1111, + .shp_2_mcu_addr = 892, +}; + +static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = { + .ap_2_ap_addr = 729, + .uart_2_mcu_addr = 904, + .per_2_app_addr = 1597, + .mcu_2_app_addr = 834, + .uartsh_2_mcu_addr = 1270, + .per_2_shp_addr = 1120, + .mcu_2_shp_addr = 1048, + .ata_2_mcu_addr = 1429, + .mcu_2_ata_addr = 1339, + .app_2_per_addr = 1531, + .app_2_mcu_addr = 770, + .shp_2_per_addr = 1198, + .shp_2_mcu_addr = 979, +}; + +static struct sdma_platform_data imx35_sdma_pdata __initdata = { + .fw_name = "sdma-imx35-to2.bin", + .script_addrs = &imx35_to2_sdma_script, +}; + +void __init imx35_soc_init(void) +{ + int to_version = mx35_revision() >> 4; + + /* i.mx35 has the i.mx31 type gpio */ + mxc_register_gpio("imx31-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0); + mxc_register_gpio("imx31-gpio", 1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0); + mxc_register_gpio("imx31-gpio", 2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0); + + if (to_version == 1) { + strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin", + strlen(imx35_sdma_pdata.fw_name)); + imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script; + } + + imx_add_imx_sdma("imx35-sdma", MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata); +} diff --git a/trunk/arch/arm/mach-imx/pm-imx27.c b/trunk/arch/arm/mach-imx/pm-imx27.c index e455d2f855bf..acf17691d2cc 100644 --- a/trunk/arch/arm/mach-imx/pm-imx27.c +++ b/trunk/arch/arm/mach-imx/pm-imx27.c @@ -11,7 +11,7 @@ #include #include #include -#include +#include static int mx27_suspend_enter(suspend_state_t state) { diff --git a/trunk/arch/arm/mach-integrator/integrator_ap.c b/trunk/arch/arm/mach-integrator/integrator_ap.c index fcf0ae95651f..8cdc730dcb3a 100644 --- a/trunk/arch/arm/mach-integrator/integrator_ap.c +++ b/trunk/arch/arm/mach-integrator/integrator_ap.c @@ -32,6 +32,7 @@ #include #include #include +#include