diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-17 22:28:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-17 22:28:15 -0400 |
commit | 0df0914d414a504b975f3cc66ace0c16ef55b7f3 (patch) | |
tree | c97ffa357943a8b226cdec1b9632c4cede813205 /arch/arm/mach-omap2/serial.c | |
parent | 6899608533410557e6698cb9d4ff6df553916e98 (diff) | |
parent | 05f689400ea5fa3d71af82f910c8b140f87ad1f3 (diff) |
Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (258 commits)
omap: zoom: host should not pull up wl1271's irq line
arm: plat-omap: iommu: fix request_mem_region() error path
OMAP2+: Common CPU DIE ID reading code reads wrong registers for OMAP4430
omap4: mux: Remove duplicate mux modes
omap: iovmm: don't check 'da' to set IOVMF_DA_FIXED flag
omap: iovmm: disallow mapping NULL address when IOVMF_DA_ANON is set
omap2+: mux: Fix compile when CONFIG_OMAP_MUX is not selected
omap4: board-omap4panda: Initialise the serial pads
omap3: board-3430sdp: Initialise the serial pads
omap4: board-4430sdp: Initialise the serial pads
omap2+: mux: Add macro for configuring static with omap_hwmod_mux_init
omap2+: mux: Remove the use of IDLE flag
omap2+: Add separate list for dynamic pads to mux
perf: add OMAP support for the new power events
OMAP4: Add IVA OPP enteries.
OMAP4: Update Voltage Rail Values for MPU, IVA and CORE
OMAP4: Enable 800 MHz and 1 GHz MPU-OPP
OMAP3+: OPP: Replace voltage values with Macros
OMAP3: wdtimer: Fix CORE idle transition
Watchdog: omap_wdt: add fine grain runtime-pm
...
Fix up various conflicts in
- arch/arm/mach-omap2/board-omap3evm.c
- arch/arm/mach-omap2/clock3xxx_data.c
- arch/arm/mach-omap2/usb-musb.c
- arch/arm/plat-omap/include/plat/usb.h
- drivers/usb/musb/musb_core.h
Diffstat (limited to 'arch/arm/mach-omap2/serial.c')
-rw-r--r-- | arch/arm/mach-omap2/serial.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 32e91a9c8b6b..1ac361b7b8cb 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -486,7 +486,7 @@ static void omap_uart_idle_init(struct omap_uart_state *uart) | |||
486 | mod_timer(&uart->timer, jiffies + uart->timeout); | 486 | mod_timer(&uart->timer, jiffies + uart->timeout); |
487 | omap_uart_smart_idle_enable(uart, 0); | 487 | omap_uart_smart_idle_enable(uart, 0); |
488 | 488 | ||
489 | if (cpu_is_omap34xx()) { | 489 | if (cpu_is_omap34xx() && !cpu_is_ti816x()) { |
490 | u32 mod = (uart->num > 1) ? OMAP3430_PER_MOD : CORE_MOD; | 490 | u32 mod = (uart->num > 1) ? OMAP3430_PER_MOD : CORE_MOD; |
491 | u32 wk_mask = 0; | 491 | u32 wk_mask = 0; |
492 | u32 padconf = 0; | 492 | u32 padconf = 0; |
@@ -655,7 +655,7 @@ static void serial_out_override(struct uart_port *up, int offset, int value) | |||
655 | } | 655 | } |
656 | #endif | 656 | #endif |
657 | 657 | ||
658 | void __init omap_serial_early_init(void) | 658 | static int __init omap_serial_early_init(void) |
659 | { | 659 | { |
660 | int i = 0; | 660 | int i = 0; |
661 | 661 | ||
@@ -672,7 +672,7 @@ void __init omap_serial_early_init(void) | |||
672 | 672 | ||
673 | uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL); | 673 | uart = kzalloc(sizeof(struct omap_uart_state), GFP_KERNEL); |
674 | if (WARN_ON(!uart)) | 674 | if (WARN_ON(!uart)) |
675 | return; | 675 | return -ENODEV; |
676 | 676 | ||
677 | uart->oh = oh; | 677 | uart->oh = oh; |
678 | uart->num = i++; | 678 | uart->num = i++; |
@@ -680,7 +680,7 @@ void __init omap_serial_early_init(void) | |||
680 | num_uarts++; | 680 | num_uarts++; |
681 | 681 | ||
682 | /* | 682 | /* |
683 | * NOTE: omap_hwmod_init() has not yet been called, | 683 | * NOTE: omap_hwmod_setup*() has not yet been called, |
684 | * so no hwmod functions will work yet. | 684 | * so no hwmod functions will work yet. |
685 | */ | 685 | */ |
686 | 686 | ||
@@ -691,7 +691,10 @@ void __init omap_serial_early_init(void) | |||
691 | */ | 691 | */ |
692 | uart->oh->flags |= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET; | 692 | uart->oh->flags |= HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET; |
693 | } while (1); | 693 | } while (1); |
694 | |||
695 | return 0; | ||
694 | } | 696 | } |
697 | core_initcall(omap_serial_early_init); | ||
695 | 698 | ||
696 | /** | 699 | /** |
697 | * omap_serial_init_port() - initialize single serial port | 700 | * omap_serial_init_port() - initialize single serial port |
@@ -759,13 +762,13 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
759 | p->private_data = uart; | 762 | p->private_data = uart; |
760 | 763 | ||
761 | /* | 764 | /* |
762 | * omap44xx: Never read empty UART fifo | 765 | * omap44xx, ti816x: Never read empty UART fifo |
763 | * omap3xxx: Never read empty UART fifo on UARTs | 766 | * omap3xxx: Never read empty UART fifo on UARTs |
764 | * with IP rev >=0x52 | 767 | * with IP rev >=0x52 |
765 | */ | 768 | */ |
766 | uart->regshift = p->regshift; | 769 | uart->regshift = p->regshift; |
767 | uart->membase = p->membase; | 770 | uart->membase = p->membase; |
768 | if (cpu_is_omap44xx()) | 771 | if (cpu_is_omap44xx() || cpu_is_ti816x()) |
769 | uart->errata |= UART_ERRATA_FIFO_FULL_ABORT; | 772 | uart->errata |= UART_ERRATA_FIFO_FULL_ABORT; |
770 | else if ((serial_read_reg(uart, UART_OMAP_MVER) & 0xFF) | 773 | else if ((serial_read_reg(uart, UART_OMAP_MVER) & 0xFF) |
771 | >= UART_OMAP_NO_EMPTY_FIFO_READ_IP_REV) | 774 | >= UART_OMAP_NO_EMPTY_FIFO_READ_IP_REV) |
@@ -847,7 +850,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
847 | } | 850 | } |
848 | 851 | ||
849 | /* Enable the MDR1 errata for OMAP3 */ | 852 | /* Enable the MDR1 errata for OMAP3 */ |
850 | if (cpu_is_omap34xx()) | 853 | if (cpu_is_omap34xx() && !cpu_is_ti816x()) |
851 | uart->errata |= UART_ERRATA_i202_MDR1_ACCESS; | 854 | uart->errata |= UART_ERRATA_i202_MDR1_ACCESS; |
852 | } | 855 | } |
853 | 856 | ||