From 4d4fe456e4248f3c21088c61bbb15558db359d9d Mon Sep 17 00:00:00 2001 From: Andrei Emeltchenko Date: Tue, 30 Nov 2010 14:11:49 -0800 Subject: [PATCH] --- yaml --- r: 226434 b: refs/heads/master c: 498cb95175c29ed96bf32f30df2d11ec1c7f3879 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/edac.txt | 8 +- trunk/Documentation/networking/ip-sysctl.txt | 1 + trunk/MAINTAINERS | 2 + trunk/Makefile | 2 +- trunk/arch/arm/mach-omap1/board-ams-delta.c | 3 +- trunk/arch/arm/mach-omap1/devices.c | 1 - trunk/arch/arm/mach-omap1/flash.c | 1 - trunk/arch/arm/mach-omap1/mailbox.c | 5 +- trunk/arch/arm/mach-omap1/mcbsp.c | 2 +- trunk/arch/arm/mach-omap1/mux.c | 2 +- trunk/arch/arm/mach-omap1/serial.c | 8 +- trunk/arch/arm/mach-omap1/time.c | 1 - trunk/arch/arm/mach-omap2/pm24xx.c | 7 + trunk/arch/arm/mach-omap2/pm34xx.c | 10 + trunk/arch/arm/mach-omap2/serial.c | 22 +- trunk/arch/arm/mach-omap2/timer-gp.c | 3 +- trunk/arch/arm/mach-s3c2410/h1940-bluetooth.c | 8 +- trunk/arch/arm/mach-s3c2416/irq.c | 5 +- trunk/arch/arm/mach-s3c2443/irq.c | 5 +- trunk/arch/arm/mach-s3c64xx/mach-mini6410.c | 2 +- trunk/arch/arm/mach-s3c64xx/mach-real6410.c | 2 +- trunk/arch/arm/mach-s5pv210/mach-smdkc110.c | 1 + trunk/arch/arm/mach-s5pv210/mach-smdkv210.c | 1 + trunk/arch/arm/mach-shmobile/board-ap4evb.c | 147 +- trunk/arch/arm/mach-shmobile/clock-sh7372.c | 33 +- trunk/arch/arm/plat-omap/dma.c | 2 +- .../arm/plat-omap/include/plat/omap-serial.h | 3 - trunk/arch/arm/plat-omap/sram.c | 2 +- trunk/arch/arm/plat-pxa/include/plat/sdhci.h | 3 + .../arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c | 6 +- .../arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c | 6 +- .../arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c | 6 +- trunk/arch/powerpc/mm/pgtable.c | 2 +- trunk/arch/s390/kernel/nmi.c | 10 +- trunk/arch/s390/lib/delay.c | 14 +- trunk/arch/tile/Kconfig | 12 + trunk/arch/tile/include/asm/cacheflush.h | 52 + trunk/arch/tile/include/asm/io.h | 15 +- trunk/arch/tile/include/asm/pci-bridge.h | 117 - trunk/arch/tile/include/asm/pci.h | 107 +- trunk/arch/tile/include/asm/processor.h | 10 + trunk/arch/tile/include/hv/drv_xgbe_impl.h | 300 ++ trunk/arch/tile/include/hv/drv_xgbe_intf.h | 615 ++++ trunk/arch/tile/include/hv/netio_errors.h | 122 + trunk/arch/tile/include/hv/netio_intf.h | 2975 +++++++++++++++++ trunk/arch/tile/kernel/Makefile | 1 + trunk/arch/tile/kernel/pci.c | 621 ++++ trunk/arch/tile/kernel/setup.c | 2 +- trunk/arch/tile/lib/memchr_32.c | 35 +- trunk/arch/tile/lib/spinlock_32.c | 29 +- trunk/arch/x86/Kconfig | 2 +- trunk/arch/x86/include/asm/msr-index.h | 2 +- trunk/arch/x86/include/asm/paravirt.h | 10 +- trunk/arch/x86/include/asm/uv/uv_hub.h | 4 + trunk/arch/x86/include/asm/uv/uv_mmrs.h | 19 +- trunk/arch/x86/kernel/apic/hw_nmi.c | 7 +- trunk/arch/x86/kernel/apic/x2apic_uv_x.c | 25 +- trunk/arch/x86/kernel/cpu/perf_event.c | 20 + trunk/arch/x86/kernel/entry_32.S | 2 +- trunk/arch/x86/kernel/entry_64.S | 2 + trunk/arch/x86/kernel/hw_breakpoint.c | 4 + trunk/arch/x86/kernel/mmconf-fam10h_64.c | 64 +- trunk/arch/x86/mm/tlb.c | 5 +- trunk/arch/x86/platform/uv/tlb_uv.c | 2 +- trunk/arch/x86/platform/uv/uv_time.c | 4 +- trunk/arch/x86/xen/enlighten.c | 2 - trunk/arch/x86/xen/mmu.c | 69 +- trunk/arch/x86/xen/setup.c | 1 - trunk/block/blk-throttle.c | 2 +- trunk/drivers/block/amiflop.c | 2 +- trunk/drivers/block/ataflop.c | 2 +- trunk/drivers/block/cciss.c | 3 +- trunk/drivers/block/xen-blkfront.c | 55 +- trunk/drivers/char/tpm/tpm_tis.c | 24 + trunk/drivers/edac/Makefile | 8 +- trunk/drivers/edac/mce_amd_inj.c | 2 +- trunk/drivers/firewire/net.c | 160 +- trunk/drivers/hwmon/i5k_amb.c | 2 + trunk/drivers/hwmon/lis3lv02d_i2c.c | 10 +- trunk/drivers/isdn/icn/icn.c | 7 +- trunk/drivers/mmc/core/core.c | 2 +- trunk/drivers/mmc/core/mmc.c | 8 +- trunk/drivers/mmc/core/sdio.c | 51 +- trunk/drivers/mmc/core/sdio_bus.c | 33 +- trunk/drivers/mmc/host/omap_hsmmc.c | 2 +- trunk/drivers/mmc/host/sdhci-esdhc-imx.c | 12 +- trunk/drivers/mmc/host/sdhci-pci.c | 31 +- trunk/drivers/mmc/host/sdhci-pxa.c | 4 + trunk/drivers/mmc/host/sdhci.c | 54 +- trunk/drivers/mmc/host/sdhci.h | 9 +- trunk/drivers/mmc/host/ushc.c | 30 +- trunk/drivers/mtd/ubi/scan.c | 16 +- trunk/drivers/net/Kconfig | 18 +- trunk/drivers/net/Makefile | 1 + trunk/drivers/net/au1000_eth.c | 10 +- trunk/drivers/net/cxgb4vf/cxgb4vf_main.c | 73 +- trunk/drivers/net/cxgb4vf/t4vf_hw.c | 94 +- trunk/drivers/net/ehea/ehea_main.c | 18 +- trunk/drivers/net/pch_gbe/pch_gbe_main.c | 6 +- trunk/drivers/net/pch_gbe/pch_gbe_param.c | 8 +- trunk/drivers/net/ppp_generic.c | 43 +- trunk/drivers/net/tile/Makefile | 10 + trunk/drivers/net/tile/tilepro.c | 2406 +++++++++++++ trunk/drivers/net/ucc_geth.h | 3 +- trunk/drivers/net/usb/hso.c | 10 +- trunk/drivers/net/wan/x25_asy.c | 11 +- trunk/drivers/net/wireless/ath/ath9k/recv.c | 2 +- .../drivers/net/wireless/ath/carl9170/main.c | 2 +- trunk/drivers/net/wireless/b43/sdio.c | 1 + trunk/drivers/pci/Makefile | 1 + trunk/drivers/pci/quirks.c | 18 + trunk/drivers/s390/cio/qdio_thinint.c | 2 +- trunk/drivers/serial/omap-serial.c | 6 +- trunk/drivers/ssb/b43_pci_bridge.c | 1 + trunk/drivers/vhost/net.c | 5 +- trunk/fs/btrfs/compression.c | 15 +- trunk/fs/btrfs/ctree.h | 6 +- trunk/fs/btrfs/disk-io.c | 38 +- trunk/fs/btrfs/export.c | 76 + trunk/fs/btrfs/extent-tree.c | 2 +- trunk/fs/btrfs/extent_io.c | 77 +- trunk/fs/btrfs/extent_io.h | 3 + trunk/fs/btrfs/file.c | 7 + trunk/fs/btrfs/inode.c | 294 +- trunk/fs/btrfs/ioctl.c | 31 +- trunk/fs/btrfs/ordered-data.c | 67 + trunk/fs/btrfs/ordered-data.h | 3 + trunk/fs/btrfs/super.c | 41 +- trunk/fs/btrfs/transaction.c | 5 +- trunk/fs/btrfs/tree-log.c | 21 +- trunk/fs/gfs2/quota.c | 15 +- trunk/fs/ioprio.c | 31 +- trunk/fs/nfs/dir.c | 62 +- trunk/fs/nfs/direct.c | 2 +- trunk/fs/nfs/internal.h | 9 + trunk/fs/nfs/nfs2xdr.c | 4 +- trunk/fs/nfs/nfs3xdr.c | 4 +- trunk/fs/nfs/nfs4xdr.c | 6 +- trunk/fs/nilfs2/dat.c | 2 +- trunk/fs/nilfs2/ioctl.c | 4 +- trunk/fs/pipe.c | 14 +- trunk/fs/splice.c | 24 +- trunk/include/linux/dmar.h | 17 +- trunk/include/linux/hw_breakpoint.h | 4 + trunk/include/linux/mmc/host.h | 1 + trunk/include/linux/nfs_xdr.h | 1 + trunk/include/linux/pci_ids.h | 2 + trunk/include/linux/perf_event.h | 30 +- trunk/include/linux/pipe_fs_i.h | 1 + trunk/include/linux/serial_reg.h | 12 + trunk/include/net/af_unix.h | 2 + trunk/include/sound/sh_fsi.h | 6 +- trunk/kernel/hw_breakpoint.c | 3 +- trunk/kernel/irq_work.c | 4 +- trunk/kernel/module.c | 12 + trunk/kernel/perf_event.c | 93 +- trunk/kernel/posix-cpu-timers.c | 12 +- trunk/kernel/sched_fair.c | 8 +- trunk/kernel/trace/trace.c | 19 + trunk/lib/debug_locks.c | 2 - trunk/net/ceph/Makefile | 22 - trunk/net/dccp/input.c | 3 +- trunk/net/decnet/af_decnet.c | 2 + trunk/net/econet/af_econet.c | 91 +- trunk/net/ipv4/inet_hashtables.c | 3 +- trunk/net/ipv4/sysctl_net_ipv4.c | 6 +- trunk/net/ipv4/tcp.c | 2 +- trunk/net/ipv4/tcp_ipv4.c | 4 +- trunk/net/sunrpc/clnt.c | 24 +- trunk/net/unix/af_unix.c | 37 +- trunk/net/unix/garbage.c | 9 +- trunk/sound/pci/hda/patch_realtek.c | 56 +- trunk/sound/soc/atmel/sam9g20_wm8731.c | 9 +- trunk/sound/soc/atmel/snd-soc-afeb9260.c | 1 - trunk/sound/soc/codecs/max98088.c | 3 + trunk/sound/soc/codecs/stac9766.c | 1 + trunk/sound/soc/codecs/tlv320aic3x.c | 6 +- trunk/sound/soc/codecs/tpa6130a2.c | 4 +- trunk/sound/soc/codecs/wm8523.c | 1 - trunk/sound/soc/codecs/wm8904.c | 2 + trunk/sound/soc/codecs/wm8961.c | 4 +- trunk/sound/soc/codecs/wm8994.c | 4 + trunk/sound/soc/davinci/davinci-vcif.c | 3 + trunk/sound/soc/ep93xx/simone.c | 18 +- trunk/sound/soc/fsl/efika-audio-fabric.c | 1 + trunk/sound/soc/fsl/mpc5200_dma.c | 1 - trunk/sound/soc/fsl/pcm030-audio-fabric.c | 1 + trunk/sound/soc/imx/imx-ssi.c | 15 +- trunk/sound/soc/imx/phycore-ac97.c | 28 +- trunk/sound/soc/nuc900/nuc900-ac97.c | 2 +- trunk/sound/soc/omap/omap3pandora.c | 1 + trunk/sound/soc/omap/osk5912.c | 11 +- trunk/sound/soc/pxa/Kconfig | 1 + trunk/sound/soc/s3c24xx/smdk_spdif.c | 4 +- trunk/sound/soc/sh/fsi.c | 25 +- trunk/sound/soc/sh/ssi.c | 2 +- trunk/tools/perf/builtin-record.c | 17 +- trunk/tools/perf/util/symbol.c | 4 +- 199 files changed, 9275 insertions(+), 1118 deletions(-) delete mode 100644 trunk/arch/tile/include/asm/pci-bridge.h create mode 100644 trunk/arch/tile/include/hv/drv_xgbe_impl.h create mode 100644 trunk/arch/tile/include/hv/drv_xgbe_intf.h create mode 100644 trunk/arch/tile/include/hv/netio_errors.h create mode 100644 trunk/arch/tile/include/hv/netio_intf.h create mode 100644 trunk/arch/tile/kernel/pci.c create mode 100644 trunk/drivers/net/tile/Makefile create mode 100644 trunk/drivers/net/tile/tilepro.c diff --git a/[refs] b/[refs] index 609b696d3d12..e3e8dd452789 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2862945bf5262d516583477ce420a2f122306f43 +refs/heads/master: 498cb95175c29ed96bf32f30df2d11ec1c7f3879 diff --git a/trunk/Documentation/edac.txt b/trunk/Documentation/edac.txt index 0b875e8da969..9ee774de57cd 100644 --- a/trunk/Documentation/edac.txt +++ b/trunk/Documentation/edac.txt @@ -196,7 +196,7 @@ csrow3. The representation of the above is reflected in the directory tree in EDAC's sysfs interface. Starting in directory /sys/devices/system/edac/mc each memory controller will be represented -by its own 'mcX' directory, where 'X" is the index of the MC. +by its own 'mcX' directory, where 'X' is the index of the MC. ..../edac/mc/ @@ -207,7 +207,7 @@ by its own 'mcX' directory, where 'X" is the index of the MC. .... Under each 'mcX' directory each 'csrowX' is again represented by a -'csrowX', where 'X" is the csrow index: +'csrowX', where 'X' is the csrow index: .../mc/mc0/ @@ -232,7 +232,7 @@ EDAC control and attribute files. In 'mcX' directories are EDAC control and attribute files for -this 'X" instance of the memory controllers: +this 'X' instance of the memory controllers: Counter reset control file: @@ -343,7 +343,7 @@ Sdram memory scrubbing rate: 'csrowX' DIRECTORIES In the 'csrowX' directories are EDAC control and attribute files for -this 'X" instance of csrow: +this 'X' instance of csrow: Total Uncorrectable Errors count attribute file: diff --git a/trunk/Documentation/networking/ip-sysctl.txt b/trunk/Documentation/networking/ip-sysctl.txt index fe95105992c5..3c5e465296e1 100644 --- a/trunk/Documentation/networking/ip-sysctl.txt +++ b/trunk/Documentation/networking/ip-sysctl.txt @@ -144,6 +144,7 @@ tcp_adv_win_scale - INTEGER Count buffering overhead as bytes/2^tcp_adv_win_scale (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), if it is <= 0. + Possible values are [-31, 31], inclusive. Default: 2 tcp_allowed_congestion_control - STRING diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 98fc0450d7e1..b3be8b3d0437 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -5839,6 +5839,8 @@ M: Chris Metcalf W: http://www.tilera.com/scm/ S: Supported F: arch/tile/ +F: drivers/char/hvc_tile.c +F: drivers/net/tile/ TLAN NETWORK DRIVER M: Samuel Chessman diff --git a/trunk/Makefile b/trunk/Makefile index b31d21377e4c..9e3c89030f5c 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 37 -EXTRAVERSION = -rc3 +EXTRAVERSION = -rc4 NAME = Flesh-Eating Bats with Fangs # *DOCUMENTATION* diff --git a/trunk/arch/arm/mach-omap1/board-ams-delta.c b/trunk/arch/arm/mach-omap1/board-ams-delta.c index 1948cd3ee500..1d4163b9f0b7 100644 --- a/trunk/arch/arm/mach-omap1/board-ams-delta.c +++ b/trunk/arch/arm/mach-omap1/board-ams-delta.c @@ -28,7 +28,6 @@ #include #include -#include #include #include #include @@ -317,7 +316,7 @@ static void __init ams_delta_init(void) static struct plat_serial8250_port ams_delta_modem_ports[] = { { - .membase = IOMEM(AMS_DELTA_MODEM_VIRT), + .membase = (void *) AMS_DELTA_MODEM_VIRT, .mapbase = AMS_DELTA_MODEM_PHYS, .irq = -EINVAL, /* changed later */ .flags = UPF_BOOT_AUTOCONF, diff --git a/trunk/arch/arm/mach-omap1/devices.c b/trunk/arch/arm/mach-omap1/devices.c index 86ad38a20c3e..e7f9ee63dce5 100644 --- a/trunk/arch/arm/mach-omap1/devices.c +++ b/trunk/arch/arm/mach-omap1/devices.c @@ -17,7 +17,6 @@ #include #include -#include #include #include diff --git a/trunk/arch/arm/mach-omap1/flash.c b/trunk/arch/arm/mach-omap1/flash.c index acd161666408..0b07a78eeaa7 100644 --- a/trunk/arch/arm/mach-omap1/flash.c +++ b/trunk/arch/arm/mach-omap1/flash.c @@ -11,7 +11,6 @@ #include #include -#include void omap1_set_vpp(struct map_info *map, int enable) { diff --git a/trunk/arch/arm/mach-omap1/mailbox.c b/trunk/arch/arm/mach-omap1/mailbox.c index c0e1f48aa119..1a85a421007f 100644 --- a/trunk/arch/arm/mach-omap1/mailbox.c +++ b/trunk/arch/arm/mach-omap1/mailbox.c @@ -133,18 +133,19 @@ static struct omap_mbox1_priv omap1_mbox_dsp_priv = { }, }; -static struct omap_mbox mbox_dsp_info = { +struct omap_mbox mbox_dsp_info = { .name = "dsp", .ops = &omap1_mbox_ops, .priv = &omap1_mbox_dsp_priv, }; -static struct omap_mbox *omap1_mboxes[] = { &mbox_dsp_info, NULL }; +struct omap_mbox *omap1_mboxes[] = { &mbox_dsp_info, NULL }; static int __devinit omap1_mbox_probe(struct platform_device *pdev) { struct resource *mem; int ret; + int i; struct omap_mbox **list; list = omap1_mboxes; diff --git a/trunk/arch/arm/mach-omap1/mcbsp.c b/trunk/arch/arm/mach-omap1/mcbsp.c index 372ea711faee..b3a796a6da03 100644 --- a/trunk/arch/arm/mach-omap1/mcbsp.c +++ b/trunk/arch/arm/mach-omap1/mcbsp.c @@ -174,7 +174,7 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { #define OMAP16XX_MCBSP_REG_NUM 0 #endif -static int __init omap1_mcbsp_init(void) +int __init omap1_mcbsp_init(void) { if (cpu_is_omap7xx()) { omap_mcbsp_count = OMAP7XX_MCBSP_PDATA_SZ; diff --git a/trunk/arch/arm/mach-omap1/mux.c b/trunk/arch/arm/mach-omap1/mux.c index 5fdef7a34828..7835add00344 100644 --- a/trunk/arch/arm/mach-omap1/mux.c +++ b/trunk/arch/arm/mach-omap1/mux.c @@ -343,7 +343,7 @@ MUX_CFG("Y14_1610_CCP_DATAM", 9, 21, 6, 2, 3, 1, 2, 0, 0) #define OMAP1XXX_PINS_SZ 0 #endif /* CONFIG_ARCH_OMAP15XX || CONFIG_ARCH_OMAP16XX */ -static int __init_or_module omap1_cfg_reg(const struct pin_config *cfg) +int __init_or_module omap1_cfg_reg(const struct pin_config *cfg) { static DEFINE_SPINLOCK(mux_spin_lock); unsigned long flags; diff --git a/trunk/arch/arm/mach-omap1/serial.c b/trunk/arch/arm/mach-omap1/serial.c index 0845fbbf155e..c73d1b77b364 100644 --- a/trunk/arch/arm/mach-omap1/serial.c +++ b/trunk/arch/arm/mach-omap1/serial.c @@ -27,8 +27,6 @@ #include #include -#include "pm.h" - static struct clk * uart1_ck; static struct clk * uart2_ck; static struct clk * uart3_ck; @@ -54,9 +52,11 @@ static inline void omap_serial_outp(struct plat_serial8250_port *p, int offset, */ static void __init omap_serial_reset(struct plat_serial8250_port *p) { - omap_serial_outp(p, UART_OMAP_MDR1, 0x07); /* disable UART */ + omap_serial_outp(p, UART_OMAP_MDR1, + UART_OMAP_MDR1_DISABLE); /* disable UART */ omap_serial_outp(p, UART_OMAP_SCR, 0x08); /* TX watermark */ - omap_serial_outp(p, UART_OMAP_MDR1, 0x00); /* enable UART */ + omap_serial_outp(p, UART_OMAP_MDR1, + UART_OMAP_MDR1_16X_MODE); /* enable UART */ if (!cpu_is_omap15xx()) { omap_serial_outp(p, UART_OMAP_SYSC, 0x01); diff --git a/trunk/arch/arm/mach-omap1/time.c b/trunk/arch/arm/mach-omap1/time.c index 7f75bc614ec0..1be6a214d88d 100644 --- a/trunk/arch/arm/mach-omap1/time.c +++ b/trunk/arch/arm/mach-omap1/time.c @@ -52,7 +52,6 @@ #include #include -#include #define OMAP_MPU_TIMER_BASE OMAP_MPU_TIMER1_BASE #define OMAP_MPU_TIMER_OFFSET 0x100 diff --git a/trunk/arch/arm/mach-omap2/pm24xx.c b/trunk/arch/arm/mach-omap2/pm24xx.c index a40457d81927..c85923e56b85 100644 --- a/trunk/arch/arm/mach-omap2/pm24xx.c +++ b/trunk/arch/arm/mach-omap2/pm24xx.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -118,6 +119,10 @@ static void omap2_enter_full_retention(void) if (omap_irq_pending()) goto no_sleep; + /* Block console output in case it is on one of the OMAP UARTs */ + if (try_acquire_console_sem()) + goto no_sleep; + omap_uart_prepare_idle(0); omap_uart_prepare_idle(1); omap_uart_prepare_idle(2); @@ -131,6 +136,8 @@ static void omap2_enter_full_retention(void) omap_uart_resume_idle(1); omap_uart_resume_idle(0); + release_console_sem(); + no_sleep: if (omap2_pm_debug) { unsigned long long tmp; diff --git a/trunk/arch/arm/mach-omap2/pm34xx.c b/trunk/arch/arm/mach-omap2/pm34xx.c index 75c0cd13ad8e..0ec8a04b7473 100644 --- a/trunk/arch/arm/mach-omap2/pm34xx.c +++ b/trunk/arch/arm/mach-omap2/pm34xx.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -385,6 +386,12 @@ void omap_sram_idle(void) omap3_enable_io_chain(); } + /* Block console output in case it is on one of the OMAP UARTs */ + if (per_next_state < PWRDM_POWER_ON || + core_next_state < PWRDM_POWER_ON) + if (try_acquire_console_sem()) + goto console_still_active; + /* PER */ if (per_next_state < PWRDM_POWER_ON) { omap_uart_prepare_idle(2); @@ -463,6 +470,9 @@ void omap_sram_idle(void) omap_uart_resume_idle(3); } + release_console_sem(); + +console_still_active: /* Disable IO-PAD and IO-CHAIN wakeup */ if (omap3_has_io_wakeup() && (per_next_state < PWRDM_POWER_ON || diff --git a/trunk/arch/arm/mach-omap2/serial.c b/trunk/arch/arm/mach-omap2/serial.c index becf0e38ef7e..fa9806250b50 100644 --- a/trunk/arch/arm/mach-omap2/serial.c +++ b/trunk/arch/arm/mach-omap2/serial.c @@ -27,6 +27,7 @@ #include #include #include +#include #ifdef CONFIG_SERIAL_OMAP #include @@ -168,9 +169,9 @@ static inline void serial_write_reg(struct omap_uart_state *uart, int offset, static inline void __init omap_uart_reset(struct omap_uart_state *uart) { - serial_write_reg(uart, UART_OMAP_MDR1, 0x07); + serial_write_reg(uart, UART_OMAP_MDR1, UART_OMAP_MDR1_DISABLE); serial_write_reg(uart, UART_OMAP_SCR, 0x08); - serial_write_reg(uart, UART_OMAP_MDR1, 0x00); + serial_write_reg(uart, UART_OMAP_MDR1, UART_OMAP_MDR1_16X_MODE); } #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) @@ -246,9 +247,10 @@ static void omap_uart_restore_context(struct omap_uart_state *uart) uart->context_valid = 0; if (uart->errata & UART_ERRATA_i202_MDR1_ACCESS) - omap_uart_mdr1_errataset(uart, 0x07, 0xA0); + omap_uart_mdr1_errataset(uart, UART_OMAP_MDR1_DISABLE, 0xA0); else - serial_write_reg(uart, UART_OMAP_MDR1, 0x7); + serial_write_reg(uart, UART_OMAP_MDR1, UART_OMAP_MDR1_DISABLE); + serial_write_reg(uart, UART_LCR, 0xBF); /* Config B mode */ efr = serial_read_reg(uart, UART_EFR); serial_write_reg(uart, UART_EFR, UART_EFR_ECB); @@ -267,11 +269,13 @@ static void omap_uart_restore_context(struct omap_uart_state *uart) serial_write_reg(uart, UART_OMAP_SCR, uart->scr); serial_write_reg(uart, UART_OMAP_WER, uart->wer); serial_write_reg(uart, UART_OMAP_SYSC, uart->sysc); + if (uart->errata & UART_ERRATA_i202_MDR1_ACCESS) - omap_uart_mdr1_errataset(uart, 0x00, 0xA1); + omap_uart_mdr1_errataset(uart, UART_OMAP_MDR1_16X_MODE, 0xA1); else /* UART 16x mode */ - serial_write_reg(uart, UART_OMAP_MDR1, 0x00); + serial_write_reg(uart, UART_OMAP_MDR1, + UART_OMAP_MDR1_16X_MODE); } #else static inline void omap_uart_save_context(struct omap_uart_state *uart) {} @@ -406,7 +410,7 @@ void omap_uart_resume_idle(int num) struct omap_uart_state *uart; list_for_each_entry(uart, &uart_list, node) { - if (num == uart->num) { + if (num == uart->num && uart->can_sleep) { omap_uart_enable_clocks(uart); /* Check for IO pad wakeup */ @@ -807,6 +811,8 @@ void __init omap_serial_init_port(int port) oh->dev_attr = uart; + acquire_console_sem(); /* in case the earlycon is on the UART */ + /* * Because of early UART probing, UART did not get idled * on init. Now that omap_device is ready, ensure full idle @@ -831,6 +837,8 @@ void __init omap_serial_init_port(int port) omap_uart_block_sleep(uart); uart->timeout = DEFAULT_TIMEOUT; + release_console_sem(); + if ((cpu_is_omap34xx() && uart->padconf) || (uart->wk_en && uart->wk_mask)) { device_init_wakeup(&od->pdev.dev, true); diff --git a/trunk/arch/arm/mach-omap2/timer-gp.c b/trunk/arch/arm/mach-omap2/timer-gp.c index f9052e1c6936..e13c29eecf2b 100644 --- a/trunk/arch/arm/mach-omap2/timer-gp.c +++ b/trunk/arch/arm/mach-omap2/timer-gp.c @@ -203,7 +203,7 @@ static struct clocksource clocksource_gpt = { static void __init omap2_gp_clocksource_init(void) { static struct omap_dm_timer *gpt; - u32 tick_rate; + u32 tick_rate, tick_period; static char err1[] __initdata = KERN_ERR "%s: failed to request dm-timer\n"; static char err2[] __initdata = KERN_ERR @@ -216,6 +216,7 @@ static void __init omap2_gp_clocksource_init(void) omap_dm_timer_set_source(gpt, OMAP_TIMER_SRC_SYS_CLK); tick_rate = clk_get_rate(omap_dm_timer_get_fclk(gpt)); + tick_period = (tick_rate / HZ) - 1; omap_dm_timer_set_load_start(gpt, 1, 0); diff --git a/trunk/arch/arm/mach-s3c2410/h1940-bluetooth.c b/trunk/arch/arm/mach-s3c2410/h1940-bluetooth.c index 8aa2f1902a94..6b86a722a7db 100644 --- a/trunk/arch/arm/mach-s3c2410/h1940-bluetooth.c +++ b/trunk/arch/arm/mach-s3c2410/h1940-bluetooth.c @@ -77,13 +77,13 @@ static int __devinit h1940bt_probe(struct platform_device *pdev) /* Configures BT serial port GPIOs */ s3c_gpio_cfgpin(S3C2410_GPH(0), S3C2410_GPH0_nCTS0); - s3c_gpio_cfgpull(S3C2410_GPH(0), S3C_GPIO_PULL_NONE); + s3c_gpio_setpull(S3C2410_GPH(0), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S3C2410_GPH(1), S3C2410_GPIO_OUTPUT); - s3c_gpio_cfgpull(S3C2410_GPH(1), S3C_GPIO_PULL_NONE); + s3c_gpio_setpull(S3C2410_GPH(1), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S3C2410_GPH(2), S3C2410_GPH2_TXD0); - s3c_gpio_cfgpull(S3C2410_GPH(2), S3C_GPIO_PULL_NONE); + s3c_gpio_setpull(S3C2410_GPH(2), S3C_GPIO_PULL_NONE); s3c_gpio_cfgpin(S3C2410_GPH(3), S3C2410_GPH3_RXD0); - s3c_gpio_cfgpull(S3C2410_GPH(3), S3C_GPIO_PULL_NONE); + s3c_gpio_setpull(S3C2410_GPH(3), S3C_GPIO_PULL_NONE); rfk = rfkill_alloc(DRV_NAME, &pdev->dev, RFKILL_TYPE_BLUETOOTH, diff --git a/trunk/arch/arm/mach-s3c2416/irq.c b/trunk/arch/arm/mach-s3c2416/irq.c index 084d121f368c..00174daf1526 100644 --- a/trunk/arch/arm/mach-s3c2416/irq.c +++ b/trunk/arch/arm/mach-s3c2416/irq.c @@ -168,12 +168,11 @@ static struct irq_chip s3c2416_irq_dma = { static void s3c2416_irq_demux_uart3(unsigned int irq, struct irq_desc *desc) { - s3c2416_irq_demux(IRQ_S3C2443_UART3, 3); + s3c2416_irq_demux(IRQ_S3C2443_RX3, 3); } #define INTMSK_UART3 (1UL << (IRQ_S3C2443_UART3 - IRQ_EINT0)) -#define SUBMSK_UART3 (0xf << (IRQ_S3C2443_RX3 - S3C2410_IRQSUB(0))) - +#define SUBMSK_UART3 (0x7 << (IRQ_S3C2443_RX3 - S3C2410_IRQSUB(0))) static void s3c2416_irq_uart3_mask(unsigned int irqno) { diff --git a/trunk/arch/arm/mach-s3c2443/irq.c b/trunk/arch/arm/mach-s3c2443/irq.c index 0e0d693f3974..893424767ce1 100644 --- a/trunk/arch/arm/mach-s3c2443/irq.c +++ b/trunk/arch/arm/mach-s3c2443/irq.c @@ -166,12 +166,11 @@ static struct irq_chip s3c2443_irq_dma = { static void s3c2443_irq_demux_uart3(unsigned int irq, struct irq_desc *desc) { - s3c2443_irq_demux(IRQ_S3C2443_UART3, 3); + s3c2443_irq_demux(IRQ_S3C2443_RX3, 3); } #define INTMSK_UART3 (1UL << (IRQ_S3C2443_UART3 - IRQ_EINT0)) -#define SUBMSK_UART3 (0xf << (IRQ_S3C2443_RX3 - S3C2410_IRQSUB(0))) - +#define SUBMSK_UART3 (0x7 << (IRQ_S3C2443_RX3 - S3C2410_IRQSUB(0))) static void s3c2443_irq_uart3_mask(unsigned int irqno) { diff --git a/trunk/arch/arm/mach-s3c64xx/mach-mini6410.c b/trunk/arch/arm/mach-s3c64xx/mach-mini6410.c index 249c62956471..89f35e02e883 100644 --- a/trunk/arch/arm/mach-s3c64xx/mach-mini6410.c +++ b/trunk/arch/arm/mach-s3c64xx/mach-mini6410.c @@ -45,7 +45,7 @@ #include