diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-02-22 09:20:07 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-02-22 09:20:18 -0500 |
commit | 2daa79ec2126f8e710391e9d8e8f0d31d7c91d5f (patch) | |
tree | ab89c74c09c2986fa01c25ad8e45989a48a18899 /drivers/tty | |
parent | 7dae8c5209147ad06d424928a5f1ec45caa87691 (diff) | |
parent | 678a0222edc9da43a22145d68647500ee85e6c04 (diff) |
Merge branch 'lpc32xx/drivers' into next/drivers
* lpc32xx/drivers: (566 commits)
ARM: LPC32xx: ADC support for mach-lpc32xx
Includes an update to Linux 3.3-rc4
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/serial/8250/8250.c | 2 | ||||
-rw-r--r-- | drivers/tty/serial/m32r_sio.c (renamed from drivers/tty/serial/8250/m32r_sio.c) | 0 | ||||
-rw-r--r-- | drivers/tty/serial/m32r_sio.h (renamed from drivers/tty/serial/8250/m32r_sio.h) | 0 | ||||
-rw-r--r-- | drivers/tty/serial/m32r_sio_reg.h (renamed from drivers/tty/serial/8250/m32r_sio_reg.h) | 0 | ||||
-rw-r--r-- | drivers/tty/serial/omap-serial.c | 30 | ||||
-rw-r--r-- | drivers/tty/serial/samsung.c | 3 | ||||
-rw-r--r-- | drivers/tty/vt/vt_ioctl.c | 1 |
7 files changed, 28 insertions, 8 deletions
diff --git a/drivers/tty/serial/8250/8250.c b/drivers/tty/serial/8250/8250.c index 9f50c4e3c2be..9b7336fcfbb3 100644 --- a/drivers/tty/serial/8250/8250.c +++ b/drivers/tty/serial/8250/8250.c | |||
@@ -45,7 +45,7 @@ | |||
45 | #include "8250.h" | 45 | #include "8250.h" |
46 | 46 | ||
47 | #ifdef CONFIG_SPARC | 47 | #ifdef CONFIG_SPARC |
48 | #include "suncore.h" | 48 | #include "../suncore.h" |
49 | #endif | 49 | #endif |
50 | 50 | ||
51 | /* | 51 | /* |
diff --git a/drivers/tty/serial/8250/m32r_sio.c b/drivers/tty/serial/m32r_sio.c index 94a6792bf97b..94a6792bf97b 100644 --- a/drivers/tty/serial/8250/m32r_sio.c +++ b/drivers/tty/serial/m32r_sio.c | |||
diff --git a/drivers/tty/serial/8250/m32r_sio.h b/drivers/tty/serial/m32r_sio.h index e9b7e11793b1..e9b7e11793b1 100644 --- a/drivers/tty/serial/8250/m32r_sio.h +++ b/drivers/tty/serial/m32r_sio.h | |||
diff --git a/drivers/tty/serial/8250/m32r_sio_reg.h b/drivers/tty/serial/m32r_sio_reg.h index 4671473793e3..4671473793e3 100644 --- a/drivers/tty/serial/8250/m32r_sio_reg.h +++ b/drivers/tty/serial/m32r_sio_reg.h | |||
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index 1c2426931484..f80904145fd4 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c | |||
@@ -46,6 +46,13 @@ | |||
46 | 46 | ||
47 | #define DEFAULT_CLK_SPEED 48000000 /* 48Mhz*/ | 47 | #define DEFAULT_CLK_SPEED 48000000 /* 48Mhz*/ |
48 | 48 | ||
49 | /* SCR register bitmasks */ | ||
50 | #define OMAP_UART_SCR_RX_TRIG_GRANU1_MASK (1 << 7) | ||
51 | |||
52 | /* FCR register bitmasks */ | ||
53 | #define OMAP_UART_FCR_RX_FIFO_TRIG_SHIFT 6 | ||
54 | #define OMAP_UART_FCR_RX_FIFO_TRIG_MASK (0x3 << 6) | ||
55 | |||
49 | static struct uart_omap_port *ui[OMAP_MAX_HSUART_PORTS]; | 56 | static struct uart_omap_port *ui[OMAP_MAX_HSUART_PORTS]; |
50 | 57 | ||
51 | /* Forward declaration of functions */ | 58 | /* Forward declaration of functions */ |
@@ -129,6 +136,7 @@ static void serial_omap_enable_ms(struct uart_port *port) | |||
129 | static void serial_omap_stop_tx(struct uart_port *port) | 136 | static void serial_omap_stop_tx(struct uart_port *port) |
130 | { | 137 | { |
131 | struct uart_omap_port *up = (struct uart_omap_port *)port; | 138 | struct uart_omap_port *up = (struct uart_omap_port *)port; |
139 | struct omap_uart_port_info *pdata = up->pdev->dev.platform_data; | ||
132 | 140 | ||
133 | if (up->use_dma && | 141 | if (up->use_dma && |
134 | up->uart_dma.tx_dma_channel != OMAP_UART_DMA_CH_FREE) { | 142 | up->uart_dma.tx_dma_channel != OMAP_UART_DMA_CH_FREE) { |
@@ -151,6 +159,9 @@ static void serial_omap_stop_tx(struct uart_port *port) | |||
151 | serial_out(up, UART_IER, up->ier); | 159 | serial_out(up, UART_IER, up->ier); |
152 | } | 160 | } |
153 | 161 | ||
162 | if (!up->use_dma && pdata->set_forceidle) | ||
163 | pdata->set_forceidle(up->pdev); | ||
164 | |||
154 | pm_runtime_mark_last_busy(&up->pdev->dev); | 165 | pm_runtime_mark_last_busy(&up->pdev->dev); |
155 | pm_runtime_put_autosuspend(&up->pdev->dev); | 166 | pm_runtime_put_autosuspend(&up->pdev->dev); |
156 | } | 167 | } |
@@ -279,6 +290,7 @@ static inline void serial_omap_enable_ier_thri(struct uart_omap_port *up) | |||
279 | static void serial_omap_start_tx(struct uart_port *port) | 290 | static void serial_omap_start_tx(struct uart_port *port) |
280 | { | 291 | { |
281 | struct uart_omap_port *up = (struct uart_omap_port *)port; | 292 | struct uart_omap_port *up = (struct uart_omap_port *)port; |
293 | struct omap_uart_port_info *pdata = up->pdev->dev.platform_data; | ||
282 | struct circ_buf *xmit; | 294 | struct circ_buf *xmit; |
283 | unsigned int start; | 295 | unsigned int start; |
284 | int ret = 0; | 296 | int ret = 0; |
@@ -286,6 +298,8 @@ static void serial_omap_start_tx(struct uart_port *port) | |||
286 | if (!up->use_dma) { | 298 | if (!up->use_dma) { |
287 | pm_runtime_get_sync(&up->pdev->dev); | 299 | pm_runtime_get_sync(&up->pdev->dev); |
288 | serial_omap_enable_ier_thri(up); | 300 | serial_omap_enable_ier_thri(up); |
301 | if (pdata->set_noidle) | ||
302 | pdata->set_noidle(up->pdev); | ||
289 | pm_runtime_mark_last_busy(&up->pdev->dev); | 303 | pm_runtime_mark_last_busy(&up->pdev->dev); |
290 | pm_runtime_put_autosuspend(&up->pdev->dev); | 304 | pm_runtime_put_autosuspend(&up->pdev->dev); |
291 | return; | 305 | return; |
@@ -726,8 +740,7 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios, | |||
726 | quot = serial_omap_get_divisor(port, baud); | 740 | quot = serial_omap_get_divisor(port, baud); |
727 | 741 | ||
728 | /* calculate wakeup latency constraint */ | 742 | /* calculate wakeup latency constraint */ |
729 | up->calc_latency = (1000000 * up->port.fifosize) / | 743 | up->calc_latency = (USEC_PER_SEC * up->port.fifosize) / (baud / 8); |
730 | (1000 * baud / 8); | ||
731 | up->latency = up->calc_latency; | 744 | up->latency = up->calc_latency; |
732 | schedule_work(&up->qos_work); | 745 | schedule_work(&up->qos_work); |
733 | 746 | ||
@@ -811,14 +824,21 @@ serial_omap_set_termios(struct uart_port *port, struct ktermios *termios, | |||
811 | up->mcr = serial_in(up, UART_MCR); | 824 | up->mcr = serial_in(up, UART_MCR); |
812 | serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR); | 825 | serial_out(up, UART_MCR, up->mcr | UART_MCR_TCRTLR); |
813 | /* FIFO ENABLE, DMA MODE */ | 826 | /* FIFO ENABLE, DMA MODE */ |
814 | serial_out(up, UART_FCR, up->fcr); | 827 | |
815 | serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); | 828 | up->scr |= OMAP_UART_SCR_RX_TRIG_GRANU1_MASK; |
816 | 829 | ||
817 | if (up->use_dma) { | 830 | if (up->use_dma) { |
818 | serial_out(up, UART_TI752_TLR, 0); | 831 | serial_out(up, UART_TI752_TLR, 0); |
819 | up->scr |= (UART_FCR_TRIGGER_4 | UART_FCR_TRIGGER_8); | 832 | up->scr |= UART_FCR_TRIGGER_4; |
833 | } else { | ||
834 | /* Set receive FIFO threshold to 1 byte */ | ||
835 | up->fcr &= ~OMAP_UART_FCR_RX_FIFO_TRIG_MASK; | ||
836 | up->fcr |= (0x1 << OMAP_UART_FCR_RX_FIFO_TRIG_SHIFT); | ||
820 | } | 837 | } |
821 | 838 | ||
839 | serial_out(up, UART_FCR, up->fcr); | ||
840 | serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); | ||
841 | |||
822 | serial_out(up, UART_OMAP_SCR, up->scr); | 842 | serial_out(up, UART_OMAP_SCR, up->scr); |
823 | 843 | ||
824 | serial_out(up, UART_EFR, up->efr); | 844 | serial_out(up, UART_EFR, up->efr); |
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index f96f37b5fec6..c55e5fb16fa3 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
@@ -1593,7 +1593,8 @@ static struct s3c24xx_serial_drv_data s5pv210_serial_drv_data = { | |||
1593 | #define S5PV210_SERIAL_DRV_DATA (kernel_ulong_t)NULL | 1593 | #define S5PV210_SERIAL_DRV_DATA (kernel_ulong_t)NULL |
1594 | #endif | 1594 | #endif |
1595 | 1595 | ||
1596 | #ifdef CONFIG_CPU_EXYNOS4210 | 1596 | #if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS4212) || \ |
1597 | defined(CONFIG_SOC_EXYNOS4412) || defined(CONFIG_SOC_EXYNOS5250) | ||
1597 | static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = { | 1598 | static struct s3c24xx_serial_drv_data exynos4210_serial_drv_data = { |
1598 | .info = &(struct s3c24xx_uart_info) { | 1599 | .info = &(struct s3c24xx_uart_info) { |
1599 | .name = "Samsung Exynos4 UART", | 1600 | .name = "Samsung Exynos4 UART", |
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index 5e096f43bcea..65447c5f91d7 100644 --- a/drivers/tty/vt/vt_ioctl.c +++ b/drivers/tty/vt/vt_ioctl.c | |||
@@ -1463,7 +1463,6 @@ compat_kdfontop_ioctl(struct compat_console_font_op __user *fontop, | |||
1463 | if (!perm && op->op != KD_FONT_OP_GET) | 1463 | if (!perm && op->op != KD_FONT_OP_GET) |
1464 | return -EPERM; | 1464 | return -EPERM; |
1465 | op->data = compat_ptr(((struct compat_console_font_op *)op)->data); | 1465 | op->data = compat_ptr(((struct compat_console_font_op *)op)->data); |
1466 | op->flags |= KD_FONT_FLAG_OLD; | ||
1467 | i = con_font_op(vc, op); | 1466 | i = con_font_op(vc, op); |
1468 | if (i) | 1467 | if (i) |
1469 | return i; | 1468 | return i; |