diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-09-12 07:02:26 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-12 07:02:26 -0400 |
commit | ddd559b13f6d2fe3ad68c4b3f5235fd3c2eae4e3 (patch) | |
tree | d827bca3fc825a0ac33efbcd493713be40fcc812 /drivers/serial | |
parent | cf7a2b4fb6a9b86779930a0a123b0df41aa9208f (diff) | |
parent | f17a1f06d2fa93f4825be572622eb02c4894db4e (diff) |
Merge branch 'devel-stable' into devel
Conflicts:
MAINTAINERS
arch/arm/mm/fault.c
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/Kconfig | 9 | ||||
-rw-r--r-- | drivers/serial/Makefile | 1 | ||||
-rw-r--r-- | drivers/serial/atmel_serial.c | 2 | ||||
-rw-r--r-- | drivers/serial/bfin_sport_uart.c | 1 | ||||
-rw-r--r-- | drivers/serial/cpm_uart/cpm_uart_cpm2.c | 2 | ||||
-rw-r--r-- | drivers/serial/imx.c | 65 | ||||
-rw-r--r-- | drivers/serial/msm_serial.c | 1 |
7 files changed, 34 insertions, 47 deletions
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig index 037c1e0b7c4c..cdd552d33a78 100644 --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig | |||
@@ -459,7 +459,7 @@ config SERIAL_SAMSUNG_UARTS | |||
459 | int | 459 | int |
460 | depends on ARM && PLAT_S3C | 460 | depends on ARM && PLAT_S3C |
461 | default 2 if ARCH_S3C2400 | 461 | default 2 if ARCH_S3C2400 |
462 | default 4 if ARCH_S3C64XX || CPU_S3C2443 | 462 | default 4 if ARCH_S5PC1XX || ARCH_S3C64XX || CPU_S3C2443 |
463 | default 3 | 463 | default 3 |
464 | help | 464 | help |
465 | Select the number of available UART ports for the Samsung S3C | 465 | Select the number of available UART ports for the Samsung S3C |
@@ -533,6 +533,13 @@ config SERIAL_S3C6400 | |||
533 | Serial port support for the Samsung S3C6400 and S3C6410 | 533 | Serial port support for the Samsung S3C6400 and S3C6410 |
534 | SoCs | 534 | SoCs |
535 | 535 | ||
536 | config SERIAL_S5PC100 | ||
537 | tristate "Samsung S5PC100 Serial port support" | ||
538 | depends on SERIAL_SAMSUNG && CPU_S5PC100 | ||
539 | default y | ||
540 | help | ||
541 | Serial port support for the Samsung S5PC100 SoCs | ||
542 | |||
536 | config SERIAL_MAX3100 | 543 | config SERIAL_MAX3100 |
537 | tristate "MAX3100 support" | 544 | tristate "MAX3100 support" |
538 | depends on SPI | 545 | depends on SPI |
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile index d5a29981c6c4..97f6fcc8b432 100644 --- a/drivers/serial/Makefile +++ b/drivers/serial/Makefile | |||
@@ -43,6 +43,7 @@ obj-$(CONFIG_SERIAL_S3C2412) += s3c2412.o | |||
43 | obj-$(CONFIG_SERIAL_S3C2440) += s3c2440.o | 43 | obj-$(CONFIG_SERIAL_S3C2440) += s3c2440.o |
44 | obj-$(CONFIG_SERIAL_S3C24A0) += s3c24a0.o | 44 | obj-$(CONFIG_SERIAL_S3C24A0) += s3c24a0.o |
45 | obj-$(CONFIG_SERIAL_S3C6400) += s3c6400.o | 45 | obj-$(CONFIG_SERIAL_S3C6400) += s3c6400.o |
46 | obj-$(CONFIG_SERIAL_S5PC100) += s3c6400.o | ||
46 | obj-$(CONFIG_SERIAL_MAX3100) += max3100.o | 47 | obj-$(CONFIG_SERIAL_MAX3100) += max3100.o |
47 | obj-$(CONFIG_SERIAL_IP22_ZILOG) += ip22zilog.o | 48 | obj-$(CONFIG_SERIAL_IP22_ZILOG) += ip22zilog.o |
48 | obj-$(CONFIG_SERIAL_MUX) += mux.o | 49 | obj-$(CONFIG_SERIAL_MUX) += mux.o |
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c index 338b15c0a548..607d43a31048 100644 --- a/drivers/serial/atmel_serial.c +++ b/drivers/serial/atmel_serial.c | |||
@@ -1551,6 +1551,7 @@ static int __devinit atmel_serial_probe(struct platform_device *pdev) | |||
1551 | if (ret) | 1551 | if (ret) |
1552 | goto err_add_port; | 1552 | goto err_add_port; |
1553 | 1553 | ||
1554 | #ifdef CONFIG_SERIAL_ATMEL_CONSOLE | ||
1554 | if (atmel_is_console_port(&port->uart) | 1555 | if (atmel_is_console_port(&port->uart) |
1555 | && ATMEL_CONSOLE_DEVICE->flags & CON_ENABLED) { | 1556 | && ATMEL_CONSOLE_DEVICE->flags & CON_ENABLED) { |
1556 | /* | 1557 | /* |
@@ -1559,6 +1560,7 @@ static int __devinit atmel_serial_probe(struct platform_device *pdev) | |||
1559 | */ | 1560 | */ |
1560 | clk_disable(port->clk); | 1561 | clk_disable(port->clk); |
1561 | } | 1562 | } |
1563 | #endif | ||
1562 | 1564 | ||
1563 | device_init_wakeup(&pdev->dev, 1); | 1565 | device_init_wakeup(&pdev->dev, 1); |
1564 | platform_set_drvdata(pdev, port); | 1566 | platform_set_drvdata(pdev, port); |
diff --git a/drivers/serial/bfin_sport_uart.c b/drivers/serial/bfin_sport_uart.c index 34b4ae0fe760..c108b1a0ce98 100644 --- a/drivers/serial/bfin_sport_uart.c +++ b/drivers/serial/bfin_sport_uart.c | |||
@@ -236,7 +236,6 @@ static int sport_startup(struct uart_port *port) | |||
236 | int retval; | 236 | int retval; |
237 | 237 | ||
238 | pr_debug("%s enter\n", __func__); | 238 | pr_debug("%s enter\n", __func__); |
239 | memset(buffer, 20, '\0'); | ||
240 | snprintf(buffer, 20, "%s rx", up->name); | 239 | snprintf(buffer, 20, "%s rx", up->name); |
241 | retval = request_irq(up->rx_irq, sport_uart_rx_irq, IRQF_SAMPLE_RANDOM, buffer, up); | 240 | retval = request_irq(up->rx_irq, sport_uart_rx_irq, IRQF_SAMPLE_RANDOM, buffer, up); |
242 | if (retval) { | 241 | if (retval) { |
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c b/drivers/serial/cpm_uart/cpm_uart_cpm2.c index 141c0a3333ad..a9802e76b5fa 100644 --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c | |||
@@ -132,7 +132,7 @@ int cpm_uart_allocbuf(struct uart_cpm_port *pinfo, unsigned int is_con) | |||
132 | memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + | 132 | memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + |
133 | L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); | 133 | L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); |
134 | if (is_con) { | 134 | if (is_con) { |
135 | mem_addr = alloc_bootmem(memsz); | 135 | mem_addr = kzalloc(memsz, GFP_NOWAIT); |
136 | dma_addr = virt_to_bus(mem_addr); | 136 | dma_addr = virt_to_bus(mem_addr); |
137 | } | 137 | } |
138 | else | 138 | else |
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index 5d7b58f1fe42..7485afd0df4c 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c | |||
@@ -67,21 +67,8 @@ | |||
67 | #define UBIR 0xa4 /* BRM Incremental Register */ | 67 | #define UBIR 0xa4 /* BRM Incremental Register */ |
68 | #define UBMR 0xa8 /* BRM Modulator Register */ | 68 | #define UBMR 0xa8 /* BRM Modulator Register */ |
69 | #define UBRC 0xac /* Baud Rate Count Register */ | 69 | #define UBRC 0xac /* Baud Rate Count Register */ |
70 | #if defined CONFIG_ARCH_MX3 || defined CONFIG_ARCH_MX2 | 70 | #define MX2_ONEMS 0xb0 /* One Millisecond register */ |
71 | #define ONEMS 0xb0 /* One Millisecond register */ | 71 | #define UTS (cpu_is_mx1() ? 0xd0 : 0xb4) /* UART Test Register */ |
72 | #define UTS 0xb4 /* UART Test Register */ | ||
73 | #endif | ||
74 | #ifdef CONFIG_ARCH_MX1 | ||
75 | #define BIPR1 0xb0 /* Incremental Preset Register 1 */ | ||
76 | #define BIPR2 0xb4 /* Incremental Preset Register 2 */ | ||
77 | #define BIPR3 0xb8 /* Incremental Preset Register 3 */ | ||
78 | #define BIPR4 0xbc /* Incremental Preset Register 4 */ | ||
79 | #define BMPR1 0xc0 /* BRM Modulator Register 1 */ | ||
80 | #define BMPR2 0xc4 /* BRM Modulator Register 2 */ | ||
81 | #define BMPR3 0xc8 /* BRM Modulator Register 3 */ | ||
82 | #define BMPR4 0xcc /* BRM Modulator Register 4 */ | ||
83 | #define UTS 0xd0 /* UART Test Register */ | ||
84 | #endif | ||
85 | 72 | ||
86 | /* UART Control Register Bit Fields.*/ | 73 | /* UART Control Register Bit Fields.*/ |
87 | #define URXD_CHARRDY (1<<15) | 74 | #define URXD_CHARRDY (1<<15) |
@@ -101,12 +88,7 @@ | |||
101 | #define UCR1_RTSDEN (1<<5) /* RTS delta interrupt enable */ | 88 | #define UCR1_RTSDEN (1<<5) /* RTS delta interrupt enable */ |
102 | #define UCR1_SNDBRK (1<<4) /* Send break */ | 89 | #define UCR1_SNDBRK (1<<4) /* Send break */ |
103 | #define UCR1_TDMAEN (1<<3) /* Transmitter ready DMA enable */ | 90 | #define UCR1_TDMAEN (1<<3) /* Transmitter ready DMA enable */ |
104 | #ifdef CONFIG_ARCH_MX1 | 91 | #define MX1_UCR1_UARTCLKEN (1<<2) /* UART clock enabled, mx1 only */ |
105 | #define UCR1_UARTCLKEN (1<<2) /* UART clock enabled */ | ||
106 | #endif | ||
107 | #if defined CONFIG_ARCH_MX3 || defined CONFIG_ARCH_MX2 | ||
108 | #define UCR1_UARTCLKEN (0) /* not present on mx2/mx3 */ | ||
109 | #endif | ||
110 | #define UCR1_DOZE (1<<1) /* Doze */ | 92 | #define UCR1_DOZE (1<<1) /* Doze */ |
111 | #define UCR1_UARTEN (1<<0) /* UART enabled */ | 93 | #define UCR1_UARTEN (1<<0) /* UART enabled */ |
112 | #define UCR2_ESCI (1<<15) /* Escape seq interrupt enable */ | 94 | #define UCR2_ESCI (1<<15) /* Escape seq interrupt enable */ |
@@ -132,13 +114,9 @@ | |||
132 | #define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */ | 114 | #define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */ |
133 | #define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */ | 115 | #define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */ |
134 | #define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */ | 116 | #define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */ |
135 | #ifdef CONFIG_ARCH_MX1 | 117 | #define MX1_UCR3_REF25 (1<<3) /* Ref freq 25 MHz, only on mx1 */ |
136 | #define UCR3_REF25 (1<<3) /* Ref freq 25 MHz, only on mx1 */ | 118 | #define MX1_UCR3_REF30 (1<<2) /* Ref Freq 30 MHz, only on mx1 */ |
137 | #define UCR3_REF30 (1<<2) /* Ref Freq 30 MHz, only on mx1 */ | 119 | #define MX2_UCR3_RXDMUXSEL (1<<2) /* RXD Muxed Input Select, on mx2/mx3 */ |
138 | #endif | ||
139 | #if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3 | ||
140 | #define UCR3_RXDMUXSEL (1<<2) /* RXD Muxed Input Select, on mx2/mx3 */ | ||
141 | #endif | ||
142 | #define UCR3_INVT (1<<1) /* Inverted Infrared transmission */ | 120 | #define UCR3_INVT (1<<1) /* Inverted Infrared transmission */ |
143 | #define UCR3_BPEN (1<<0) /* Preset registers enable */ | 121 | #define UCR3_BPEN (1<<0) /* Preset registers enable */ |
144 | #define UCR4_CTSTL_32 (32<<10) /* CTS trigger level (32 chars) */ | 122 | #define UCR4_CTSTL_32 (32<<10) /* CTS trigger level (32 chars) */ |
@@ -186,12 +164,10 @@ | |||
186 | #define UTS_SOFTRST (1<<0) /* Software reset */ | 164 | #define UTS_SOFTRST (1<<0) /* Software reset */ |
187 | 165 | ||
188 | /* We've been assigned a range on the "Low-density serial ports" major */ | 166 | /* We've been assigned a range on the "Low-density serial ports" major */ |
189 | #ifdef CONFIG_ARCH_MXC | ||
190 | #define SERIAL_IMX_MAJOR 207 | 167 | #define SERIAL_IMX_MAJOR 207 |
191 | #define MINOR_START 16 | 168 | #define MINOR_START 16 |
192 | #define DEV_NAME "ttymxc" | 169 | #define DEV_NAME "ttymxc" |
193 | #define MAX_INTERNAL_IRQ MXC_INTERNAL_IRQS | 170 | #define MAX_INTERNAL_IRQ MXC_INTERNAL_IRQS |
194 | #endif | ||
195 | 171 | ||
196 | /* | 172 | /* |
197 | * This determines how often we check the modem status signals | 173 | * This determines how often we check the modem status signals |
@@ -706,11 +682,11 @@ static int imx_startup(struct uart_port *port) | |||
706 | } | 682 | } |
707 | } | 683 | } |
708 | 684 | ||
709 | #if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3 | 685 | if (!cpu_is_mx1()) { |
710 | temp = readl(sport->port.membase + UCR3); | 686 | temp = readl(sport->port.membase + UCR3); |
711 | temp |= UCR3_RXDMUXSEL; | 687 | temp |= MX2_UCR3_RXDMUXSEL; |
712 | writel(temp, sport->port.membase + UCR3); | 688 | writel(temp, sport->port.membase + UCR3); |
713 | #endif | 689 | } |
714 | 690 | ||
715 | if (USE_IRDA(sport)) { | 691 | if (USE_IRDA(sport)) { |
716 | temp = readl(sport->port.membase + UCR4); | 692 | temp = readl(sport->port.membase + UCR4); |
@@ -942,9 +918,9 @@ imx_set_termios(struct uart_port *port, struct ktermios *termios, | |||
942 | writel(num, sport->port.membase + UBIR); | 918 | writel(num, sport->port.membase + UBIR); |
943 | writel(denom, sport->port.membase + UBMR); | 919 | writel(denom, sport->port.membase + UBMR); |
944 | 920 | ||
945 | #ifdef ONEMS | 921 | if (!cpu_is_mx1()) |
946 | writel(sport->port.uartclk / div / 1000, sport->port.membase + ONEMS); | 922 | writel(sport->port.uartclk / div / 1000, |
947 | #endif | 923 | sport->port.membase + MX2_ONEMS); |
948 | 924 | ||
949 | writel(old_ucr1, sport->port.membase + UCR1); | 925 | writel(old_ucr1, sport->port.membase + UCR1); |
950 | 926 | ||
@@ -1074,17 +1050,20 @@ static void | |||
1074 | imx_console_write(struct console *co, const char *s, unsigned int count) | 1050 | imx_console_write(struct console *co, const char *s, unsigned int count) |
1075 | { | 1051 | { |
1076 | struct imx_port *sport = imx_ports[co->index]; | 1052 | struct imx_port *sport = imx_ports[co->index]; |
1077 | unsigned int old_ucr1, old_ucr2; | 1053 | unsigned int old_ucr1, old_ucr2, ucr1; |
1078 | 1054 | ||
1079 | /* | 1055 | /* |
1080 | * First, save UCR1/2 and then disable interrupts | 1056 | * First, save UCR1/2 and then disable interrupts |
1081 | */ | 1057 | */ |
1082 | old_ucr1 = readl(sport->port.membase + UCR1); | 1058 | ucr1 = old_ucr1 = readl(sport->port.membase + UCR1); |
1083 | old_ucr2 = readl(sport->port.membase + UCR2); | 1059 | old_ucr2 = readl(sport->port.membase + UCR2); |
1084 | 1060 | ||
1085 | writel((old_ucr1 | UCR1_UARTCLKEN | UCR1_UARTEN) & | 1061 | if (cpu_is_mx1()) |
1086 | ~(UCR1_TXMPTYEN | UCR1_RRDYEN | UCR1_RTSDEN), | 1062 | ucr1 |= MX1_UCR1_UARTCLKEN; |
1087 | sport->port.membase + UCR1); | 1063 | ucr1 |= UCR1_UARTEN; |
1064 | ucr1 &= ~(UCR1_TXMPTYEN | UCR1_RRDYEN | UCR1_RTSDEN); | ||
1065 | |||
1066 | writel(ucr1, sport->port.membase + UCR1); | ||
1088 | 1067 | ||
1089 | writel(old_ucr2 | UCR2_TXEN, sport->port.membase + UCR2); | 1068 | writel(old_ucr2 | UCR2_TXEN, sport->port.membase + UCR2); |
1090 | 1069 | ||
diff --git a/drivers/serial/msm_serial.c b/drivers/serial/msm_serial.c index 698048f64f5e..f7c24baa1416 100644 --- a/drivers/serial/msm_serial.c +++ b/drivers/serial/msm_serial.c | |||
@@ -730,7 +730,6 @@ static int __devexit msm_serial_remove(struct platform_device *pdev) | |||
730 | } | 730 | } |
731 | 731 | ||
732 | static struct platform_driver msm_platform_driver = { | 732 | static struct platform_driver msm_platform_driver = { |
733 | .probe = msm_serial_probe, | ||
734 | .remove = msm_serial_remove, | 733 | .remove = msm_serial_remove, |
735 | .driver = { | 734 | .driver = { |
736 | .name = "msm_serial", | 735 | .name = "msm_serial", |