From 40fc6351e9bd58a6e6c6e6d7a529c8e762d18510 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 8 Sep 2011 16:39:47 -0700 Subject: [PATCH] --- yaml --- r: 263667 b: refs/heads/master c: 4fbcc42dc4d069aa941873ce28f3e98f51cb4fd3 h: refs/heads/master i: 263665: fc91ee5ae4c452a65b1da617fb93534349b7c784 263663: 975bbad7602b100d2d6d9fa9e33c89a5d339f175 v: v3 --- [refs] | 2 +- .../feature-removal-schedule.txt | 8 + trunk/Documentation/hwmon/max16065 | 7 + trunk/MAINTAINERS | 8 +- trunk/Makefile | 2 +- trunk/arch/arm/Kconfig | 12 ++ trunk/arch/arm/boot/compressed/mmcif-sh7372.c | 2 +- trunk/arch/arm/boot/compressed/sdhi-sh7372.c | 2 +- .../arm/include/asm/hardware/cache-l2x0.h | 2 +- trunk/arch/arm/include/asm/pmu.h | 10 +- trunk/arch/arm/kernel/pmu.c | 26 +-- trunk/arch/arm/kernel/relocate_kernel.S | 3 +- trunk/arch/arm/kernel/setup.c | 15 +- trunk/arch/arm/kernel/smp_twd.c | 4 +- trunk/arch/arm/mach-at91/at91sam9261.c | 2 +- .../arm/mach-ep93xx/include/mach/ts72xx.h | 26 ++- trunk/arch/arm/mach-exynos4/clock.c | 2 +- trunk/arch/arm/mach-exynos4/cpu.c | 11 +- .../arch/arm/mach-exynos4/include/mach/irqs.h | 5 +- .../arm/mach-exynos4/include/mach/regs-pmu.h | 2 + trunk/arch/arm/mach-exynos4/irq-eint.c | 7 + .../arm/mach-exynos4/mach-universal_c210.c | 4 +- trunk/arch/arm/mach-exynos4/setup-usb-phy.c | 2 +- trunk/arch/arm/mach-footbridge/Kconfig | 1 + trunk/arch/arm/mach-footbridge/dc21285.c | 1 + trunk/arch/arm/mach-imx/mach-cpuimx27.c | 2 +- trunk/arch/arm/mach-imx/mach-cpuimx35.c | 2 +- .../arch/arm/mach-imx/mach-eukrea_cpuimx25.c | 2 +- trunk/arch/arm/mach-orion5x/dns323-setup.c | 2 +- trunk/arch/arm/mach-orion5x/pci.c | 1 + .../arm/mach-realview/include/mach/system.h | 1 + trunk/arch/arm/mach-s3c64xx/pm.c | 1 + trunk/arch/arm/mach-s5p64x0/irq-eint.c | 2 +- trunk/arch/arm/mach-s5pv210/pm.c | 2 +- trunk/arch/arm/mach-shmobile/board-ag5evm.c | 3 +- trunk/arch/arm/mach-shmobile/board-mackerel.c | 4 + trunk/arch/arm/mach-shmobile/clock-sh7372.c | 29 ++- trunk/arch/arm/mach-shmobile/clock-sh73a0.c | 2 +- .../arm/mach-shmobile/include/mach/sh7372.h | 4 + trunk/arch/arm/mach-shmobile/intc-sh7372.c | 7 +- trunk/arch/arm/mach-shmobile/setup-sh7372.c | 176 ++++++++++++++++-- trunk/arch/arm/mach-vexpress/v2m.c | 7 + trunk/arch/arm/mm/proc-arm920.S | 2 +- trunk/arch/arm/mm/proc-arm926.S | 2 +- trunk/arch/arm/mm/proc-sa1100.S | 10 +- trunk/arch/arm/mm/proc-v6.S | 16 ++ trunk/arch/arm/mm/proc-v7.S | 6 +- trunk/arch/arm/mm/proc-xsc3.S | 6 +- trunk/arch/arm/plat-s5p/clock.c | 2 +- trunk/arch/arm/plat-s5p/irq-gpioint.c | 6 + .../arm/plat-samsung/include/plat/backlight.h | 2 +- trunk/arch/arm/plat-samsung/irq-vic-timer.c | 5 + trunk/arch/arm/tools/mach-types | 6 +- trunk/arch/parisc/kernel/syscall_table.S | 2 +- trunk/arch/powerpc/boot/dts/p1023rds.dts | 2 +- .../powerpc/configs/85xx/p1023rds_defconfig | 1 + .../powerpc/configs/corenet32_smp_defconfig | 1 + .../powerpc/configs/corenet64_smp_defconfig | 5 +- trunk/arch/powerpc/configs/mpc85xx_defconfig | 1 + .../powerpc/configs/mpc85xx_smp_defconfig | 1 + trunk/arch/powerpc/include/asm/systbl.h | 2 +- trunk/arch/sh/include/asm/ptrace.h | 2 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7757.c | 1 + trunk/arch/sh/kernel/idle.c | 2 +- trunk/arch/sh/kernel/traps_32.c | 37 ++++ trunk/arch/sparc/kernel/irq.h | 2 +- trunk/arch/sparc/kernel/setup_64.c | 10 +- trunk/arch/sparc/kernel/systbls_64.S | 2 +- trunk/arch/x86/include/asm/pvclock.h | 2 +- trunk/arch/x86/kernel/cpu/perf_event.c | 3 + trunk/arch/x86/xen/setup.c | 19 ++ trunk/arch/x86/xen/smp.c | 10 + trunk/arch/x86/xen/xen-asm_32.S | 8 +- trunk/drivers/bcma/main.c | 12 ++ trunk/drivers/bluetooth/ath3k.c | 1 + trunk/drivers/bluetooth/btusb.c | 13 +- trunk/drivers/clocksource/sh_cmt.c | 34 +++- trunk/drivers/gpu/drm/drm_crtc.c | 2 + trunk/drivers/gpu/drm/radeon/evergreen.c | 28 +++ trunk/drivers/gpu/drm/radeon/ni.c | 4 + trunk/drivers/gpu/drm/radeon/radeon_clocks.c | 3 + trunk/drivers/gpu/drm/radeon/radeon_combios.c | 8 + trunk/drivers/hwmon/max16065.c | 2 +- trunk/drivers/hwmon/pmbus/ucd9000.c | 6 +- trunk/drivers/hwmon/pmbus/ucd9200.c | 6 +- trunk/drivers/md/linear.h | 2 +- trunk/drivers/md/md.c | 16 +- trunk/drivers/md/raid5.c | 2 +- trunk/drivers/mtd/ubi/debug.h | 2 +- trunk/drivers/net/can/ti_hecc.c | 3 +- trunk/drivers/net/cassini.c | 3 +- trunk/drivers/net/ibmveth.c | 12 +- trunk/drivers/net/phy/national.c | 17 +- trunk/drivers/net/sh_eth.c | 1 + .../net/wireless/ath/ath9k/ar9003_eeprom.c | 2 +- trunk/drivers/net/wireless/ath/ath9k/main.c | 4 + .../drivers/net/wireless/ath/carl9170/main.c | 4 +- trunk/drivers/net/wireless/rt2x00/rt2x00usb.c | 14 +- trunk/drivers/net/wireless/wl12xx/main.c | 1 + trunk/drivers/net/wireless/wl12xx/sdio.c | 2 +- trunk/drivers/net/wireless/wl12xx/testmode.c | 45 ----- trunk/drivers/rtc/rtc-ep93xx.c | 16 +- trunk/drivers/rtc/rtc-lib.c | 2 + trunk/drivers/rtc/rtc-twl.c | 60 +++--- trunk/drivers/sh/intc/chip.c | 3 + trunk/drivers/tty/serial/sh-sci.c | 71 +++++-- trunk/fs/9p/v9fs_vfs.h | 6 +- trunk/fs/9p/vfs_file.c | 36 +++- trunk/fs/9p/vfs_inode.c | 139 ++++++++------ trunk/fs/9p/vfs_inode_dotl.c | 86 +++++++-- trunk/fs/9p/vfs_super.c | 2 +- trunk/fs/ext4/ext4.h | 1 + trunk/fs/ext4/inode.c | 3 - trunk/fs/ext4/page-io.c | 18 +- trunk/fs/ubifs/debug.h | 6 +- trunk/fs/xfs/xfs_iops.c | 14 +- trunk/fs/xfs/xfs_super.c | 36 ++-- trunk/include/linux/perf_event.h | 24 ++- trunk/include/linux/regulator/consumer.h | 2 +- trunk/include/net/9p/9p.h | 29 +++ trunk/include/net/cfg80211.h | 5 + trunk/kernel/events/core.c | 67 +++++-- trunk/kernel/sched.c | 43 +++-- trunk/kernel/time/alarmtimer.c | 18 +- trunk/lib/Makefile | 4 +- trunk/net/9p/trans_virtio.c | 17 +- trunk/net/bluetooth/af_bluetooth.c | 6 +- trunk/net/bluetooth/bnep/bnep.h | 1 + trunk/net/bluetooth/bnep/core.c | 13 +- trunk/net/bluetooth/cmtp/capi.c | 3 +- trunk/net/bluetooth/cmtp/cmtp.h | 1 + trunk/net/bluetooth/cmtp/core.c | 20 +- trunk/net/bluetooth/hci_core.c | 8 +- trunk/net/bluetooth/hidp/core.c | 19 +- trunk/net/bluetooth/l2cap_core.c | 6 +- trunk/net/bluetooth/l2cap_sock.c | 30 +-- trunk/net/bluetooth/rfcomm/core.c | 17 +- trunk/net/bluetooth/rfcomm/sock.c | 28 +-- trunk/net/bluetooth/sco.c | 28 +-- trunk/net/bridge/br_multicast.c | 21 ++- trunk/net/core/neighbour.c | 8 +- trunk/net/core/netpoll.c | 4 +- trunk/net/ipv4/igmp.c | 2 +- trunk/net/ipv6/mcast.c | 2 +- trunk/net/mac80211/main.c | 2 +- trunk/net/socket.c | 10 +- trunk/net/wireless/core.c | 7 + trunk/net/wireless/sysfs.c | 6 +- trunk/tools/perf/arch/arm/util/dwarf-regs.c | 3 + 149 files changed, 1263 insertions(+), 528 deletions(-) diff --git a/[refs] b/[refs] index 70792bb84456..54c73260481a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e33acde91140f1809952d1c135c36feb66a51887 +refs/heads/master: 4fbcc42dc4d069aa941873ce28f3e98f51cb4fd3 diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index c4a6e148732a..4dc465477665 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -592,3 +592,11 @@ Why: In 3.0, we can now autodetect internal 3G device and already have interface that was used by acer-wmi driver. It will replaced by information log when acer-wmi initial. Who: Lee, Chun-Yi + +---------------------------- +What: The XFS nodelaylog mount option +When: 3.3 +Why: The delaylog mode that has been the default since 2.6.39 has proven + stable, and the old code is in the way of additional improvements in + the log code. +Who: Christoph Hellwig diff --git a/trunk/Documentation/hwmon/max16065 b/trunk/Documentation/hwmon/max16065 index 44b4f61e04f9..c11f64a1f2ad 100644 --- a/trunk/Documentation/hwmon/max16065 +++ b/trunk/Documentation/hwmon/max16065 @@ -62,6 +62,13 @@ can be safely used to identify the chip. You will have to instantiate the devices explicitly. Please see Documentation/i2c/instantiating-devices for details. +WARNING: Do not access chip registers using the i2cdump command, and do not use +any of the i2ctools commands on a command register (0xa5 to 0xac). The chips +supported by this driver interpret any access to a command register (including +read commands) as request to execute the command in question. This may result in +power loss, board resets, and/or Flash corruption. Worst case, your board may +turn into a brick. + Sysfs entries ------------- diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 1a8cc600067d..28f65c249b97 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -2649,11 +2649,11 @@ F: drivers/net/wan/dlci.c F: drivers/net/wan/sdla.c FRAMEBUFFER LAYER -M: Paul Mundt +M: Florian Tobias Schandinat L: linux-fbdev@vger.kernel.org W: http://linux-fbdev.sourceforge.net/ Q: http://patchwork.kernel.org/project/linux-fbdev/list/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git +T: git git://github.com/schandinat/linux-2.6.git fbdev-next S: Maintained F: Documentation/fb/ F: Documentation/devicetree/bindings/fb/ @@ -4450,8 +4450,8 @@ M: "David S. Miller" L: netdev@vger.kernel.org W: http://www.linuxfoundation.org/en/Net W: http://patchwork.ozlabs.org/project/netdev/list/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git -T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git +T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git S: Maintained F: net/ F: include/net/ diff --git a/trunk/Makefile b/trunk/Makefile index c3e90c530a65..03d97aa8c73e 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 3 PATCHLEVEL = 1 SUBLEVEL = 0 -EXTRAVERSION = -rc4 +EXTRAVERSION = -rc5 NAME = "Divemaster Edition" # *DOCUMENTATION* diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 5ebc5d922ea1..3269576dbfa8 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -1271,6 +1271,18 @@ config ARM_ERRATA_754327 This workaround defines cpu_relax() as smp_mb(), preventing correctly written polling loops from denying visibility of updates to memory. +config ARM_ERRATA_364296 + bool "ARM errata: Possible cache data corruption with hit-under-miss enabled" + depends on CPU_V6 && !SMP + help + This options enables the workaround for the 364296 ARM1136 + r0p2 erratum (possible cache data corruption with + hit-under-miss enabled). It sets the undocumented bit 31 in + the auxiliary control register and the FI bit in the control + register, thus disabling hit-under-miss without putting the + processor into full low interrupt latency mode. ARM11MPCore + is not affected. + endmenu source "arch/arm/common/Kconfig" diff --git a/trunk/arch/arm/boot/compressed/mmcif-sh7372.c b/trunk/arch/arm/boot/compressed/mmcif-sh7372.c index b6f61d9a5a1b..672ae95db5c3 100644 --- a/trunk/arch/arm/boot/compressed/mmcif-sh7372.c +++ b/trunk/arch/arm/boot/compressed/mmcif-sh7372.c @@ -82,7 +82,7 @@ asmlinkage void mmc_loader(unsigned char *buf, unsigned long len) /* Disable clock to MMC hardware block */ - __raw_writel(__raw_readl(SMSTPCR3) & (1 << 12), SMSTPCR3); + __raw_writel(__raw_readl(SMSTPCR3) | (1 << 12), SMSTPCR3); mmc_update_progress(MMC_PROGRESS_DONE); } diff --git a/trunk/arch/arm/boot/compressed/sdhi-sh7372.c b/trunk/arch/arm/boot/compressed/sdhi-sh7372.c index d403a8b24d7f..d279294f2381 100644 --- a/trunk/arch/arm/boot/compressed/sdhi-sh7372.c +++ b/trunk/arch/arm/boot/compressed/sdhi-sh7372.c @@ -85,7 +85,7 @@ asmlinkage void mmc_loader(unsigned short *buf, unsigned long len) goto err; /* Disable clock to SDHI1 hardware block */ - __raw_writel(__raw_readl(SMSTPCR3) & (1 << 13), SMSTPCR3); + __raw_writel(__raw_readl(SMSTPCR3) | (1 << 13), SMSTPCR3); mmc_update_progress(MMC_PROGRESS_DONE); diff --git a/trunk/arch/arm/include/asm/hardware/cache-l2x0.h b/trunk/arch/arm/include/asm/hardware/cache-l2x0.h index 16bd48031583..bfa706ffd968 100644 --- a/trunk/arch/arm/include/asm/hardware/cache-l2x0.h +++ b/trunk/arch/arm/include/asm/hardware/cache-l2x0.h @@ -64,7 +64,7 @@ #define L2X0_AUX_CTRL_MASK 0xc0000fff #define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16 #define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17 -#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x3 << 17) +#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x7 << 17) #define L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22 #define L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT 26 #define L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT 27 diff --git a/trunk/arch/arm/include/asm/pmu.h b/trunk/arch/arm/include/asm/pmu.h index 67c70a31a1be..b7e82c4aced6 100644 --- a/trunk/arch/arm/include/asm/pmu.h +++ b/trunk/arch/arm/include/asm/pmu.h @@ -41,7 +41,7 @@ struct arm_pmu_platdata { * encoded error on failure. */ extern struct platform_device * -reserve_pmu(enum arm_pmu_type device); +reserve_pmu(enum arm_pmu_type type); /** * release_pmu() - Relinquish control of the performance counters @@ -62,26 +62,26 @@ release_pmu(enum arm_pmu_type type); * the actual hardware initialisation. */ extern int -init_pmu(enum arm_pmu_type device); +init_pmu(enum arm_pmu_type type); #else /* CONFIG_CPU_HAS_PMU */ #include static inline struct platform_device * -reserve_pmu(enum arm_pmu_type device) +reserve_pmu(enum arm_pmu_type type) { return ERR_PTR(-ENODEV); } static inline int -release_pmu(struct platform_device *pdev) +release_pmu(enum arm_pmu_type type) { return -ENODEV; } static inline int -init_pmu(enum arm_pmu_type device) +init_pmu(enum arm_pmu_type type) { return -ENODEV; } diff --git a/trunk/arch/arm/kernel/pmu.c b/trunk/arch/arm/kernel/pmu.c index 2b70709376c3..c53474fe84df 100644 --- a/trunk/arch/arm/kernel/pmu.c +++ b/trunk/arch/arm/kernel/pmu.c @@ -31,7 +31,7 @@ static int __devinit pmu_register(struct platform_device *pdev, { if (type < 0 || type >= ARM_NUM_PMU_DEVICES) { pr_warning("received registration request for unknown " - "device %d\n", type); + "PMU device type %d\n", type); return -EINVAL; } @@ -112,17 +112,17 @@ static int __init register_pmu_driver(void) device_initcall(register_pmu_driver); struct platform_device * -reserve_pmu(enum arm_pmu_type device) +reserve_pmu(enum arm_pmu_type type) { struct platform_device *pdev; - if (test_and_set_bit_lock(device, &pmu_lock)) { + if (test_and_set_bit_lock(type, &pmu_lock)) { pdev = ERR_PTR(-EBUSY); - } else if (pmu_devices[device] == NULL) { - clear_bit_unlock(device, &pmu_lock); + } else if (pmu_devices[type] == NULL) { + clear_bit_unlock(type, &pmu_lock); pdev = ERR_PTR(-ENODEV); } else { - pdev = pmu_devices[device]; + pdev = pmu_devices[type]; } return pdev; @@ -130,11 +130,11 @@ reserve_pmu(enum arm_pmu_type device) EXPORT_SYMBOL_GPL(reserve_pmu); int -release_pmu(enum arm_pmu_type device) +release_pmu(enum arm_pmu_type type) { - if (WARN_ON(!pmu_devices[device])) + if (WARN_ON(!pmu_devices[type])) return -EINVAL; - clear_bit_unlock(device, &pmu_lock); + clear_bit_unlock(type, &pmu_lock); return 0; } EXPORT_SYMBOL_GPL(release_pmu); @@ -182,17 +182,17 @@ init_cpu_pmu(void) } int -init_pmu(enum arm_pmu_type device) +init_pmu(enum arm_pmu_type type) { int err = 0; - switch (device) { + switch (type) { case ARM_PMU_DEVICE_CPU: err = init_cpu_pmu(); break; default: - pr_warning("attempt to initialise unknown device %d\n", - device); + pr_warning("attempt to initialise PMU of unknown " + "type %d\n", type); err = -EINVAL; } diff --git a/trunk/arch/arm/kernel/relocate_kernel.S b/trunk/arch/arm/kernel/relocate_kernel.S index 9cf4cbf8f95b..d0cdedf4864d 100644 --- a/trunk/arch/arm/kernel/relocate_kernel.S +++ b/trunk/arch/arm/kernel/relocate_kernel.S @@ -57,7 +57,8 @@ relocate_new_kernel: mov r0,#0 ldr r1,kexec_mach_type ldr r2,kexec_boot_atags - mov pc,lr + ARM( mov pc, lr ) + THUMB( bx lr ) .align diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 70bca649e925..e514c76043b4 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -280,18 +280,19 @@ static void __init cacheid_init(void) if (arch >= CPU_ARCH_ARMv6) { if ((cachetype & (7 << 29)) == 4 << 29) { /* ARMv7 register format */ + arch = CPU_ARCH_ARMv7; cacheid = CACHEID_VIPT_NONALIASING; if ((cachetype & (3 << 14)) == 1 << 14) cacheid |= CACHEID_ASID_TAGGED; - else if (cpu_has_aliasing_icache(CPU_ARCH_ARMv7)) - cacheid |= CACHEID_VIPT_I_ALIASING; - } else if (cachetype & (1 << 23)) { - cacheid = CACHEID_VIPT_ALIASING; } else { - cacheid = CACHEID_VIPT_NONALIASING; - if (cpu_has_aliasing_icache(CPU_ARCH_ARMv6)) - cacheid |= CACHEID_VIPT_I_ALIASING; + arch = CPU_ARCH_ARMv6; + if (cachetype & (1 << 23)) + cacheid = CACHEID_VIPT_ALIASING; + else + cacheid = CACHEID_VIPT_NONALIASING; } + if (cpu_has_aliasing_icache(arch)) + cacheid |= CACHEID_VIPT_I_ALIASING; } else { cacheid = CACHEID_VIVT; } diff --git a/trunk/arch/arm/kernel/smp_twd.c b/trunk/arch/arm/kernel/smp_twd.c index 2c277d40cee6..01c186222f3b 100644 --- a/trunk/arch/arm/kernel/smp_twd.c +++ b/trunk/arch/arm/kernel/smp_twd.c @@ -137,8 +137,8 @@ void __cpuinit twd_timer_setup(struct clock_event_device *clk) clk->max_delta_ns = clockevent_delta2ns(0xffffffff, clk); clk->min_delta_ns = clockevent_delta2ns(0xf, clk); + clockevents_register_device(clk); + /* Make sure our local interrupt controller has this enabled */ gic_enable_ppi(clk->irq); - - clockevents_register_device(clk); } diff --git a/trunk/arch/arm/mach-at91/at91sam9261.c b/trunk/arch/arm/mach-at91/at91sam9261.c index d522b47e30b5..6c8e3b5f669f 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261.c +++ b/trunk/arch/arm/mach-at91/at91sam9261.c @@ -157,7 +157,7 @@ static struct clk_lookup periph_clocks_lookups[] = { CLKDEV_CON_DEV_ID("spi_clk", "atmel_spi.1", &spi1_clk), CLKDEV_CON_DEV_ID("t0_clk", "atmel_tcb.0", &tc0_clk), CLKDEV_CON_DEV_ID("t1_clk", "atmel_tcb.0", &tc1_clk), - CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc1_clk), + CLKDEV_CON_DEV_ID("t2_clk", "atmel_tcb.0", &tc2_clk), 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), diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/ts72xx.h b/trunk/arch/arm/mach-ep93xx/include/mach/ts72xx.h index 0eabec62cd9d..f1397a13e76b 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/ts72xx.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/ts72xx.h @@ -6,7 +6,7 @@ * TS72xx memory map: * * virt phys size - * febff000 22000000 4K model number register + * febff000 22000000 4K model number register (bits 0-2) * febfe000 22400000 4K options register * febfd000 22800000 4K options register #2 * febf9000 10800000 4K TS-5620 RTC index register @@ -20,6 +20,9 @@ #define TS72XX_MODEL_TS7200 0x00 #define TS72XX_MODEL_TS7250 0x01 #define TS72XX_MODEL_TS7260 0x02 +#define TS72XX_MODEL_TS7300 0x03 +#define TS72XX_MODEL_TS7400 0x04 +#define TS72XX_MODEL_MASK 0x07 #define TS72XX_OPTIONS_PHYS_BASE 0x22400000 @@ -51,19 +54,34 @@ #ifndef __ASSEMBLY__ +static inline int ts72xx_model(void) +{ + return __raw_readb(TS72XX_MODEL_VIRT_BASE) & TS72XX_MODEL_MASK; +} + static inline int board_is_ts7200(void) { - return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7200; + return ts72xx_model() == TS72XX_MODEL_TS7200; } static inline int board_is_ts7250(void) { - return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7250; + return ts72xx_model() == TS72XX_MODEL_TS7250; } static inline int board_is_ts7260(void) { - return __raw_readb(TS72XX_MODEL_VIRT_BASE) == TS72XX_MODEL_TS7260; + return ts72xx_model() == TS72XX_MODEL_TS7260; +} + +static inline int board_is_ts7300(void) +{ + return ts72xx_model() == TS72XX_MODEL_TS7300; +} + +static inline int board_is_ts7400(void) +{ + return ts72xx_model() == TS72XX_MODEL_TS7400; } static inline int is_max197_installed(void) diff --git a/trunk/arch/arm/mach-exynos4/clock.c b/trunk/arch/arm/mach-exynos4/clock.c index 851dea018578..1561b036a9bf 100644 --- a/trunk/arch/arm/mach-exynos4/clock.c +++ b/trunk/arch/arm/mach-exynos4/clock.c @@ -520,7 +520,7 @@ static struct clk init_clocks_off[] = { .ctrlbit = (1 << 21), }, { .name = "ac97", - .id = -1, + .devname = "samsung-ac97", .enable = exynos4_clk_ip_peril_ctrl, .ctrlbit = (1 << 27), }, { diff --git a/trunk/arch/arm/mach-exynos4/cpu.c b/trunk/arch/arm/mach-exynos4/cpu.c index 2d8a40c9e6e5..746d6fc6d397 100644 --- a/trunk/arch/arm/mach-exynos4/cpu.c +++ b/trunk/arch/arm/mach-exynos4/cpu.c @@ -24,12 +24,13 @@ #include #include #include -#include #include #include #include +#include #include +#include extern int combiner_init(unsigned int combiner_nr, void __iomem *base, unsigned int irq_start); @@ -128,6 +129,11 @@ static void exynos4_idle(void) local_irq_enable(); } +static void exynos4_sw_reset(void) +{ + __raw_writel(0x1, S5P_SWRESET); +} + /* * exynos4_map_io * @@ -241,5 +247,8 @@ int __init exynos4_init(void) /* set idle function */ pm_idle = exynos4_idle; + /* set sw_reset function */ + s5p_reset_hook = exynos4_sw_reset; + return sysdev_register(&exynos4_sysdev); } diff --git a/trunk/arch/arm/mach-exynos4/include/mach/irqs.h b/trunk/arch/arm/mach-exynos4/include/mach/irqs.h index 934d2a493982..f8952f8f3757 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/irqs.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/irqs.h @@ -80,9 +80,8 @@ #define IRQ_HSMMC3 IRQ_SPI(76) #define IRQ_DWMCI IRQ_SPI(77) -#define IRQ_MIPICSI0 IRQ_SPI(78) - -#define IRQ_MIPICSI1 IRQ_SPI(80) +#define IRQ_MIPI_CSIS0 IRQ_SPI(78) +#define IRQ_MIPI_CSIS1 IRQ_SPI(80) #define IRQ_ONENAND_AUDI IRQ_SPI(82) #define IRQ_ROTATOR IRQ_SPI(83) diff --git a/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h b/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h index fa49bbb8e7b0..cdf9b47c303c 100644 --- a/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h +++ b/trunk/arch/arm/mach-exynos4/include/mach/regs-pmu.h @@ -29,6 +29,8 @@ #define S5P_USE_STANDBY_WFE1 (1 << 25) #define S5P_USE_MASK ((0x3 << 16) | (0x3 << 24)) +#define S5P_SWRESET S5P_PMUREG(0x0400) + #define S5P_WAKEUP_STAT S5P_PMUREG(0x0600) #define S5P_EINT_WAKEUP_MASK S5P_PMUREG(0x0604) #define S5P_WAKEUP_MASK S5P_PMUREG(0x0608) diff --git a/trunk/arch/arm/mach-exynos4/irq-eint.c b/trunk/arch/arm/mach-exynos4/irq-eint.c index 9d87d2ac7f68..badb8c66fc9b 100644 --- a/trunk/arch/arm/mach-exynos4/irq-eint.c +++ b/trunk/arch/arm/mach-exynos4/irq-eint.c @@ -23,6 +23,8 @@ #include +#include + static DEFINE_SPINLOCK(eint_lock); static unsigned int eint0_15_data[16]; @@ -184,8 +186,11 @@ static inline void exynos4_irq_demux_eint(unsigned int start) static void exynos4_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc) { + struct irq_chip *chip = irq_get_chip(irq); + chained_irq_enter(chip, desc); exynos4_irq_demux_eint(IRQ_EINT(16)); exynos4_irq_demux_eint(IRQ_EINT(24)); + chained_irq_exit(chip, desc); } static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) @@ -193,6 +198,7 @@ static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) u32 *irq_data = irq_get_handler_data(irq); struct irq_chip *chip = irq_get_chip(irq); + chained_irq_enter(chip, desc); chip->irq_mask(&desc->irq_data); if (chip->irq_ack) @@ -201,6 +207,7 @@ static void exynos4_irq_eint0_15(unsigned int irq, struct irq_desc *desc) generic_handle_irq(*irq_data); chip->irq_unmask(&desc->irq_data); + chained_irq_exit(chip, desc); } int __init exynos4_init_irq_eint(void) diff --git a/trunk/arch/arm/mach-exynos4/mach-universal_c210.c b/trunk/arch/arm/mach-exynos4/mach-universal_c210.c index 0e280d12301e..b3b5d8911004 100644 --- a/trunk/arch/arm/mach-exynos4/mach-universal_c210.c +++ b/trunk/arch/arm/mach-exynos4/mach-universal_c210.c @@ -79,7 +79,7 @@ static struct s3c2410_uartcfg universal_uartcfgs[] __initdata = { }; static struct regulator_consumer_supply max8952_consumer = - REGULATOR_SUPPLY("vddarm", NULL); + REGULATOR_SUPPLY("vdd_arm", NULL); static struct max8952_platform_data universal_max8952_pdata __initdata = { .gpio_vid0 = EXYNOS4_GPX0(3), @@ -105,7 +105,7 @@ static struct max8952_platform_data universal_max8952_pdata __initdata = { }; static struct regulator_consumer_supply lp3974_buck1_consumer = - REGULATOR_SUPPLY("vddint", NULL); + REGULATOR_SUPPLY("vdd_int", NULL); static struct regulator_consumer_supply lp3974_buck2_consumer = REGULATOR_SUPPLY("vddg3d", NULL); diff --git a/trunk/arch/arm/mach-exynos4/setup-usb-phy.c b/trunk/arch/arm/mach-exynos4/setup-usb-phy.c index 0883c1b824b9..39aca045f660 100644 --- a/trunk/arch/arm/mach-exynos4/setup-usb-phy.c +++ b/trunk/arch/arm/mach-exynos4/setup-usb-phy.c @@ -82,7 +82,7 @@ static int exynos4_usb_phy1_init(struct platform_device *pdev) rstcon &= ~(HOST_LINK_PORT_SWRST_MASK | PHY1_SWRST_MASK); writel(rstcon, EXYNOS4_RSTCON); - udelay(50); + udelay(80); clk_disable(otg_clk); clk_put(otg_clk); diff --git a/trunk/arch/arm/mach-footbridge/Kconfig b/trunk/arch/arm/mach-footbridge/Kconfig index dc26fff22cf0..c8e7afcf14ec 100644 --- a/trunk/arch/arm/mach-footbridge/Kconfig +++ b/trunk/arch/arm/mach-footbridge/Kconfig @@ -62,6 +62,7 @@ config ARCH_EBSA285_HOST config ARCH_NETWINDER bool "NetWinder" select CLKSRC_I8253 + select CLKEVT_I8253 select FOOTBRIDGE_HOST select ISA select ISA_DMA diff --git a/trunk/arch/arm/mach-footbridge/dc21285.c b/trunk/arch/arm/mach-footbridge/dc21285.c index 1331fff51ae2..18c32a5541d9 100644 --- a/trunk/arch/arm/mach-footbridge/dc21285.c +++ b/trunk/arch/arm/mach-footbridge/dc21285.c @@ -18,6 +18,7 @@ #include #include #include +#include