aboutsummaryrefslogtreecommitdiff
path: root/drivers/tty/serial
AgeCommit message (Collapse)AuthorFilesLines
2014-05-28tty/serial: at91: use mctrl_gpio helpersRichard Genoud2-35/+71
On sam9x5, dedicated CTS (and RTS) pins are unusable together with the LCDC, the EMAC, or the MMC because they share the same line. Moreover, the USART controller doesn't handle DTR/DSR/DCD/RI signals, so we have to control them via GPIO. This patch permits to use GPIOs to control the CTS/RTS/DTR/DSR/DCD/RI signals. Signed-off-by: Richard Genoud <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28tty/serial: Add GPIOLIB helpers for controlling modem linesRichard Genoud4-0/+259
This patch add some helpers to control modem lines (CTS/RTS/DSR...) via GPIO. This will be useful for many boards which have a serial controller that only handle CTS/RTS pins (or even just RX/TX). Signed-off-by: Richard Genoud <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> Tested-by: Yegor Yefremov <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: sccnxp: Add IGNPAR flag handlingAlexander Shiyan1-0/+2
This patch add IGNPAR flag handling for the driver. Signed-off-by: Alexander Shiyan <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: sccnxp: Remove useless timer_pending() checkAlexander Shiyan1-3/+1
sccnxp_timer() is triggered only by timer, so there are no need to check for timer_pending(). Signed-off-by: Alexander Shiyan <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: imx: disable the receiver ready interrupt for imx_stop_rxHuang Shijie1-0/+4
This patch disables the receiver ready interrupt for imx_stop_rx. It reduces the interrupt numbers when the uart is going to close or suspend. Signed-off-by: Huang Shijie <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: imx: remove the DMA wait queueHuang Shijie1-28/+14
The DMA wait queue makes the code very complicated: For RX, the @->stop_rx hook does not really stop the RX; For TX, the @->stop_tx hook does not really stop the TX. The above make the imx_shutdown has to wait the RX/TX DMA to be finished. In order to make code more simple, this patch removes the DMA wait queue. By calling the dmaengine_terminate_all, this patch makes the RX stops immediately after we call the @->stop_rx hook, so does the TX. Signed-off-by: Huang Shijie <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: imx: remove the redundant codeHuang Shijie1-9/+0
In the imx_startup(), we will reset the uart port which will reset all the FIFOs, including the URXD. So the code to clear the RX FIFO is redundant. Just remove it. Signed-off-by: Huang Shijie <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: imx: reset the uart port all the timeHuang Shijie1-12/+10
Current code resets the uart port only when it supports the irda mode. In actually, we also need to reset the uart port in the non-irda mode. A hang was caught in the following case: UART A transmits data to the other end. But the transmission maybe terminated. In some corner case, the TX FIFO maybe not empty. The kernel will hang at the imx_set_termios(): ............................................................ while (!(readl(sport->port.membase + USR2) & USR2_TXDC)) barrier(); ............................................................ This patch resets the uart port all the time in the imx_startup(). And fix the hang. Signed-off-by: Huang Shijie <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: Add support for Advantech PCM-3614I/PCM-3618I serial expansion cardsThomee Wright1-0/+9
Add support for Advantech PCM-3614I/PCM-3618I serial expansion cards Advantech makes a variety of serial port expansion cards, including the PCM-3614 and PCM-3618 (http://www.advantech.com/products/1-2JKLU5/PCM-3618/mod_5DF8DE5A-6B49-4429-BB2F-CB35FE1D168D.aspx). They have a driver available which was forked from the kernel driver ages ago and has not been maintained in quite some time, available at http://support.advantech.com.tw/Support/DownloadSRDetail_New.aspx?SR_ID=1-1W8FZ5&Doc_Source=Download Their driver added several features to aid in communications at higher baud rates, but at normal serial port speeds, the standard 8250_pci driver functions just fine. This patch adds the necessary PCI IDs to recognize this card. See bug 75681 (https://bugzilla.kernel.org/show_bug.cgi?id=75681) Signed-off-by: Thomee Wright <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: imx: Disable new features of autobaud detectionFabio Estevam1-2/+2
Bit 7 of UCR3 is described in the i.MX reference manuals (with the exception of i.MX1) as follows: ADNIMP: Autobaud Detection Not Improved-. Disables new features of autobaud detection (See Baud Rate Automatic Detection Protocol, for more details). 0 Autobaud detection new features selected 1 Keep old autobaud detection mechanism The "new features" mechanism occasionally cause the receiver to get out of sync and continuously produce received characters of '\xff'. In order to reproduce the problem: $ stty -F /dev/ttymxc0 19200 - Change the terminal baudrate to 19200 - Type in the console and it should look good - Change the terminal baudrate back to 115200 - Type 'b' in the console, then a stream of garbage characters is seen. Also rename the bit definition as per the reference manual. Tested on mx6q, mx6dl, mx6solo and mx53. Based on a patch from Eric Nelson for U-boot. Signed-off-by: Fabio Estevam <[email protected]> Tested-by: Eric Nelson <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28parport: Add support for the WCH353 1S/1P multi-IO cardEzequiel Garcia1-0/+10
This Multi-IO card has one serial 16550-like and one parallel port connector. Here's the lspci output, after this commit is applied: 03:07.0 Serial controller: Device 4348:5053 (rev 10) (prog-if 02 [16550]) Subsystem: Device 4348:5053 Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 21 Region 0: I/O ports at cf00 [size=8] Region 1: I/O ports at ce00 [size=8] Kernel driver in use: parport_serial Kernel modules: 8250_pci, parport_serial This commit adds an entry with the device ID to the blacklist declared in 8250_pci to prevent the driver from taking ownership. Also, and as was done for the 2S/1P variant, add a quirk to skip autodetection and set the correct type to 16550A clone. Proper entries are added to parport_serial, to support the device parallel and serial ports. Cc: Gianluca Anzolin <[email protected]> Cc: Alan Cox <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: efm32: add module_exitVincent Stehlé1-0/+1
Add missing specification of efm32_uart_exit as module_exit. This fixes the following compilation warning: drivers/tty/serial/efm32-uart.c:840:123: warning: ‘efm32_uart_exit’ defined but not used [-Wunused-function] Signed-off-by: Vincent Stehlé <[email protected]> Cc: Jiri Slaby <[email protected]> Acked-by: Uwe Kleine-König <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: samsung: Neaten dbg usesJoe Perches2-26/+32
Add format and argument checking and fix misuses in the dbg macro. Add __printf Use %pR for resource Add #include guard to samsung.h Move static functions from .h to .c Use vscnprintf instead of length unguarded vsprintf Signed-off-by: Joe Perches <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28tty: serial: men_z135_uart: Don't activate TX Space available IRQ on startupJohannes Thumshirn1-3/+4
Don't activate the TX Space available IRQ on startup, or a simple $ cat /dev/ttyHSU0 will cause an endless amount of IRQs, as there is always space in the TX FIFO available if no data is going to be sent. Also correct comments for IRQ names (RX and TX swapped). Signed-off-by: Johannes Thumshirn <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: st-asc: Fix data corruption during long console burstsDaniel Thompson1-4/+4
On my test platform (B2020/STiH416) the serial port issues bad characters during the initial message avalanche as the console comes up. The problem also occurs when dense(ish) I/O is done using the polled I/O interface. The problem is fixed for me by using the FIFO half-empty bit rather than FIFO full bit. Note that using the half-empty bit causes the FIFO to be managed in a similar way to interrupt based I/O (i.e. where the hardware gets best test coverage). Running the FIFO half full will have no impact (good or bad) on console performance. The UART will still remain fully saturated and the busy-wait until the FIFO is empty in asc_console_write() will complete at the same time. Signed-off-by: Daniel Thompson <[email protected]> Acked-by: Maxime Coquelin <[email protected]> Acked-by: Srinivas Kandagatla <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28tty: serial: uartlite: Specify time for sending charsMichal Simek1-4/+13
Xilinx MDM (Microblaze Debug Module) also contains uart interface via JTAG which is compatible with uartlite driver. This interface is really slow that's why timeout is setup to 1s. Make this time delay not to be cpu speed dependent. Signed-off-by: Michal Simek <[email protected]> Acked-by: Peter Korsgaard <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: SERIAL_FSL_LPUART should depend on HAS_DMAGeert Uytterhoeven1-0/+1
If NO_DMA=y: drivers/built-in.o: In function `lpuart_dma_rx_free': fsl_lpuart.c:(.text+0x7da28): undefined reference to `dma_unmap_single' drivers/built-in.o: In function `lpuart_dma_tx_free': fsl_lpuart.c:(.text+0x7da60): undefined reference to `dma_unmap_single' drivers/built-in.o: In function `lpuart_dma_rx': fsl_lpuart.c:(.text+0x7dab8): undefined reference to `dma_sync_single_for_cpu' drivers/built-in.o: In function `lpuart_dma_tx': fsl_lpuart.c:(.text+0x7db7e): undefined reference to `dma_sync_single_for_cpu' drivers/built-in.o: In function `lpuart_copy_rx_to_tty': fsl_lpuart.c:(.text+0x7dcd4): undefined reference to `dma_sync_single_for_cpu' make[3]: *** [vmlinux] Error 1 Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: sirf: fix spinlock deadlock issueQipan Li2-33/+18
commit fb78b811422cd2d8c8605949cc4cc13618347ad5 provide a workaround for kernel panic, but bring potential deadlock risk. that is in sirfsoc_rx_tmo_process_tl while enter into sirfsoc_uart_pio_rx_chars cpu hold uart_port->lock, if uart interrupt comes cpu enter into sirfsoc_uart_isr and deadlock occurs in getting uart_port->lock. the patch replace spin_lock version to spin_lock_irq* version to avoid spinlock dead lock issue. let function tty_flip_buffer_push in tasklet outof spin_lock_irq* protect area to avoid add the pair of spin_lock and spin_unlock for tty_flip_buffer_push. BTW drop self defined unused spinlock protect of tx_lock/rx_lock. 56274.220464] BUG: spinlock lockup suspected on CPU#0, swapper/0/0 [56274.223648] lock: 0xc05d9db0, .magic: dead4ead, .owner: swapper/0/0, .owner_cpu: 0 [56274.231278] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 3.10.35 #1 [56274.238241] [<c0015530>] (unwind_backtrace+0x0/0xf4) from [<c00120d8>] (show_stack+0x10/0x14) [56274.246742] [<c00120d8>] (show_stack+0x10/0x14) from [<c01b11b0>] (do_raw_spin_lock+0x110/0x184) [56274.255501] [<c01b11b0>] (do_raw_spin_lock+0x110/0x184) from [<c02124c8>] (sirfsoc_uart_isr+0x20/0x42c) [56274.264874] [<c02124c8>] (sirfsoc_uart_isr+0x20/0x42c) from [<c0075790>] (handle_irq_event_percpu+0x54/0x17c) [56274.274758] [<c0075790>] (handle_irq_event_percpu+0x54/0x17c) from [<c00758f4>] (handle_irq_event+0x3c/0x5c) [56274.284561] [<c00758f4>] (handle_irq_event+0x3c/0x5c) from [<c0077fa0>] (handle_level_irq+0x98/0xfc) [56274.293670] [<c0077fa0>] (handle_level_irq+0x98/0xfc) from [<c0074f44>] (generic_handle_irq+0x2c/0x3c) [56274.302952] [<c0074f44>] (generic_handle_irq+0x2c/0x3c) from [<c000ef80>] (handle_IRQ+0x40/0x90) [56274.311706] [<c000ef80>] (handle_IRQ+0x40/0x90) from [<c000dc80>] (__irq_svc+0x40/0x70) [56274.319697] [<c000dc80>] (__irq_svc+0x40/0x70) from [<c038113c>] (_raw_spin_unlock_irqrestore+0x10/0x48) [56274.329158] [<c038113c>] (_raw_spin_unlock_irqrestore+0x10/0x48) from [<c0200034>] (tty_port_tty_get+0x58/0x90) [56274.339213] [<c0200034>] (tty_port_tty_get+0x58/0x90) from [<c0212008>] (sirfsoc_uart_pio_rx_chars+0x1c/0xc8) [56274.349097] [<c0212008>] (sirfsoc_uart_pio_rx_chars+0x1c/0xc8) from [<c0212ef8>] (sirfsoc_rx_tmo_process_tl+0xe4/0x1fc) [56274.359853] [<c0212ef8>] (sirfsoc_rx_tmo_process_tl+0xe4/0x1fc) from [<c0027c04>] (tasklet_action+0x84/0x114) [56274.369739] [<c0027c04>] (tasklet_action+0x84/0x114) from [<c0027db4>] (__do_softirq+0x120/0x200) [56274.378585] [<c0027db4>] (__do_softirq+0x120/0x200) from [<c0027f44>] (do_softirq+0x54/0x5c) [56274.386998] [<c0027f44>] (do_softirq+0x54/0x5c) from [<c00281ec>] (irq_exit+0x9c/0xd0) [56274.394899] [<c00281ec>] (irq_exit+0x9c/0xd0) from [<c000ef84>] (handle_IRQ+0x44/0x90) [56274.402790] [<c000ef84>] (handle_IRQ+0x44/0x90) from [<c000dc80>] (__irq_svc+0x40/0x70) [56274.410774] [<c000dc80>] (__irq_svc+0x40/0x70) from [<c0288af4>] (cpuidle_enter_state+0x50/0xe0) [56274.419532] [<c0288af4>] (cpuidle_enter_state+0x50/0xe0) from [<c0288c34>] (cpuidle_idle_call+0xb0/0x148) [56274.429080] [<c0288c34>] (cpuidle_idle_call+0xb0/0x148) from [<c000f3ac>] (arch_cpu_idle+0x8/0x38) [56274.438016] [<c000f3ac>] (arch_cpu_idle+0x8/0x38) from [<c0059344>] (cpu_startup_entry+0xfc/0x140) [56274.446956] [<c0059344>] (cpu_startup_entry+0xfc/0x140) from [<c04a3a54>] (start_kernel+0x2d8/0x2e4) Signed-off-by: Qipan Li <[email protected]> Signed-off-by: Barry Song <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: sirf: move to writel for TXFIFO instead of writebBarry Song2-3/+1
All SiRFSoC UART registers are in 32-bits. If we use writeb for TXFIFO, actually all of 32-bits are still written, for TXTIFO, only low 8-bits are valid, so in prima2&atlas6, this causes no problem. But in the new atlas7, using writeb to write UART registers will cause an imprecise data abort as HW does check the "wrong" writeb. So move to writel and this also makes the code consistent with sirfsoc_uart_pio_tx_chars() in which we use writel. Signed-off-by: Barry Song <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: add missing SERIAL_CORE dependenciesArnd Bergmann1-0/+3
Two new drivers have been added since 3.14, the MEN 16z135 uart, and the ARM semihosting console. Both are missing an explicit 'select SERIAL_CORE', which can leads build errors when no other driver selects the core, as found during ARM randconfig testing. In case of the ARM semihosting console, we also have to select SERIAL_CORE_CONSOLE. This adds the missing 'select' statements. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: sc16is7xx: dynamically allocate tx/rx bufferJon Ringle1-9/+8
This fixes the warnings: drivers/tty/serial/sc16is7xx.c: In function 'sc16is7xx_handle_rx': >> drivers/tty/serial/sc16is7xx.c:548:1: warning: 'sc16is7xx_handle_rx' uses dynamic stack allocation [enabled by default] drivers/tty/serial/sc16is7xx.c: In function 'sc16is7xx_handle_tx': >> drivers/tty/serial/sc16is7xx.c:589:1: warning: 'sc16is7xx_handle_tx' uses dynamic stack allocation [enabled by default] Signed-off-by: Jon Ringle <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-28serial: sc16is7xx: compile I2C when REGMAP_I2C is moduleJan Moskyto Matejka1-2/+0
drivers/tty/serial/sc16is7xx.c:1060:12: warning: 'sc16is7xx_probe' defined but not used [-Wunused-function] static int sc16is7xx_probe(struct device *dev, ^ drivers/tty/serial/sc16is7xx.c:1176:12: warning: 'sc16is7xx_remove' defined but not used [-Wunused-function] static int sc16is7xx_remove(struct device *dev) ^ drivers/tty/serial/sc16is7xx.c:1215:29: warning: 'regcfg' defined but not used [-Wunused-variable] static struct regmap_config regcfg = { ^ Fixed these warnings by removing the `#ifdef CONFIG_REGMAP_I2C' around their calls as this driver selects REGMAP_I2C in Kconfig. This part of driver just didn't compile at all when REGMAP_I2C configured as module (CONFIG_REGMAP_I2C is not defined, just CONFIG_REGMAP_I2C_MODULE). Signed-off-by: Jan Moskyto Matejka <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-27serial: pch_uart: Fix Kconfig dependenciesJean Delvare1-1/+1
The pch_uart driver is for a companion chip to the Intel Atom E600 series processors. These are 32-bit x86 processors so the driver is only needed on X86_32. Add COMPILE_TEST as an alternative, so that the driver can still be build-tested elsewhere. Signed-off-by: Jean Delvare <[email protected]> Cc: Jiri Slaby <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-20tty/serial: pl011: add DT based earlycon supportRob Herring1-0/+1
Enable DT based earlycon initialization for the pl011 uart. Signed-off-by: Rob Herring <[email protected]> Cc: Russell King <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Jiri Slaby <[email protected]> Acked-by: Grant Likely <[email protected]>
2014-05-20serial: earlycon: add DT supportRob Herring1-0/+28
This adds the infrastructure to generic earlycon for earlycon setup using DT. The actual setup is not enabled until a following commit to add the FDT parsing. Signed-off-by: Rob Herring <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Jiri Slaby <[email protected]> Cc: Arnd Bergmann <[email protected]> Acked-by: Grant Likely <[email protected]>
2014-05-20Merge branch 'tty-next' of ↵Rob Herring18-819/+3097
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty into for-next Conflicts: arch/arm64/kernel/early_printk.c
2014-05-16tile: serial: Use irq_alloc/free_hwirqThomas Gleixner1-4/+4
No functional change. Just convert to the new interface. Signed-off-by: Thomas Gleixner <[email protected]> Reviewed-by: Grant Likely <[email protected]> Cc: Tony Luck <[email protected]> Cc: Peter Zijlstra <[email protected]> Acked-by: Chris Metcalf <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Thomas Gleixner <[email protected]>
2014-05-03tty/serial: fix generic earlycon option parsingRob Herring1-13/+5
Commit 9aac5887595 (tty/serial: add generic serial earlycon) moved console option parsing from 8250_early.c and converted to kstrto* functions from simple_strtoul along the way. However, kstrto* functions are not equivalent in that they do not allow non-convertible characters at the end such as "115200n8". Fix this by changing back to simple_strtoul and ignore what checkpatch.pl says. Reported-by: Yinghai Lu <[email protected]> Cc: Jiri Slaby <[email protected]> Cc: [email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-03tty/serial: add back missing setup_early_serial8250_consoleRob Herring1-0/+10
Commit d2fd6810a823bcd (tty/serial: convert 8250 to generic earlycon) removed setup_early_serial8250_console, but there are still 2 callers in: arch/mips/mti-malta/malta-init.c drivers/firmware/pcdp.c Add back the function implemented as a wrapper to setup_earlycon. Reported-by: Yinghai Lu <[email protected]> Cc: Jiri Slaby <[email protected]> Cc: [email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-05-03tty: serial: 8250_core.c Bug fix for Exar chips.Michael Welling1-1/+1
The sleep function was updated to put the serial port to sleep only when necessary. This appears to resolve the errant behavior of the driver as described in Kernel Bug 61961 – "My Exar Corp. XR17C/D152 Dual PCI UART modem does not work with 3.8.0". Signed-off-by: Michael Welling <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-27Merge 3.15-rc3 into tty-nextGreg Kroah-Hartman4-32/+41
2014-04-25serial: sc16is7xx: fix implicit decl of func copy_{to,from}_userJon Ringle1-0/+1
Fix by including linux/uaccess.h: drivers/tty/serial/sc16is7xx.c: In function 'sc16is7xx_ioctl': >> drivers/tty/serial/sc16is7xx.c:861:3: error: implicit declaration of function 'copy_from_user' [-Werror=implicit-function-declaration] >> drivers/tty/serial/sc16is7xx.c:867:3: error: implicit declaration of function 'copy_to_user' [-Werror=implicit-function-declaration] Signed-off-by: Jon Ringle <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-25serial: sc16is7xx: depend on I2CJon Ringle1-0/+1
Signed-off-by: Jon Ringle <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-25serial: sc16is7xxJon Ringle3-0/+1289
The SC16IS7xx is a slave I2C-bus/SPI interface to a single-channel high performance UART. The SC16IS7xx's internal register set is backward-compatible with the widely used and widely popular 16C450. The SC16IS7xx also provides additional advanced features such as auto hardware and software flow control, automatic RS-485 support, and software reset. Signed-off-by: Jon Ringle <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24Revert "serial: sh-sci: Add device tree support for r8a7779"Greg Kroah-Hartman1-9/+1
This reverts commit fcbee4d49f30eb0eaa83a62e6a3cab5a892ed93f. It wasn't quite ready to go in yet, sorry about that. Cc: Simon Horman <[email protected]> Cc: Laurent Pinchart <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty/serial: add arm/arm64 semihosting earlyconRob Herring3-0/+72
Add earlycon support for the arm/arm64 semihosting debug serial interface. This allows enabling a debug console when early_params are processed. This is based on the arm64 earlyprintk smh support and is intended to replace it. Signed-off-by: Rob Herring <[email protected]> Cc: Jiri Slaby <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty/serial: pl011: add generic earlycon supportRob Herring2-1/+30
Add earlycon support for the pl011 serial port. This allows enabling the pl011 for console when early_params are processed. This is based on the arm64 earlyprintk support and is intended to replace it. Signed-off-by: Rob Herring <[email protected]> Cc: Russell King <[email protected]> Cc: Jiri Slaby <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty/serial: convert 8250 to generic earlyconRob Herring2-123/+16
With the generic earlycon infrastructure in place, convert the 8250 early console to use it. Signed-off-by: Rob Herring <[email protected]> Cc: Jiri Slaby <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty/serial: add generic serial earlyconRob Herring3-0/+161
This introduces generic earlycon infrastructure for serial devices based on the 8250 earlycon. This allows for supporting earlycon option with other serial devices. The earlycon output is enabled at the time early_params are processed. Only architectures that have fixmap support or have functional ioremap when early_params are processed are supported. This is the same restriction that the 8250 driver had. Signed-off-by: Rob Herring <[email protected]> Cc: Jiri Slaby <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24x86: move FIX_EARLYCON_MEM kconfig into x86Rob Herring1-5/+0
In preparation to support FIX_EARLYCON_MEM on other arches, make the option per arch. Signed-off-by: Rob Herring <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: [email protected] Cc: Jiri Slaby <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: serial: Add driver for MEN's 16z135 High Speed UART.Johannes Thumshirn3-0/+877
Add driver for MEN's 16z135 High Speed UART. The 16z135 is a memory mapped UART Core on an MCB FPGA and has 1024 byte deep FIFO buffers for the RX and TX path. It also has configurable FIFO fill level IRQs and data copied to and from the hardware has to be acknowledged. Signed-off-by: Johannes Thumshirn <[email protected]> Reviewed-by: Alan Cox <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Rebrand driver as Cadence UARTSoren Brinkmann2-447/+470
Zynq's UART is Cadence IP. Make this visible in the prompt in kconfig and additional comments in the driver. This also renames functions and symbols, as far as possible without breaking user space API, to reflect the Cadence origin. This is achieved through simple search and replace: - s/XUARTPS/CDNS_UART/g - s/xuartps/cdns_uart/g The only exceptions are PORT_XUARTPS and the driver name, which stay as is, due to their exposure to user space. As well as the - no legacy - compatibility string 'xlnx,xuartps' Signed-off-by: Soren Brinkmann <[email protected]> Tested-by: Michal Simek <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Don't write IRQ disable register to enable interruptsSoren Brinkmann1-5/+1
A comment states, that, according to the data sheet, to enable interrupts the disable register should be written, but the enable register could be left untouched. And it suspsects a HW bug requiring to write both. Reviewing the data sheet, these statements seem wrong. Just as one would expect. Writing to the enable/disable register enables/disables interrupts. Hence the misleading comment and needless write to the disable register are removed from the enable sequence. Signed-off-by: Soren Brinkmann <[email protected]> Tested-by: Michal Simek <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Refactor read-modify-writesSoren Brinkmann1-28/+24
A lot of read-modify-write sequences used a one-line statement which nests a readl() within a writel(). Convert this into code sequences that make the three steps more obvious. Signed-off-by: Soren Brinkmann <[email protected]> Tested-by: Michal Simek <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Print warning in clock notifierSoren Brinkmann1-1/+3
Print a warning if the clock notifier rejects a clock frequency change to facilitate debugging (see: http://thread.gmane.org/gmane.linux.ports.arm.kernel/304329/focus=304379) Signed-off-by: Soren Brinkmann <[email protected]> Tested-by: Michal Simek <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Clean upSoren Brinkmann1-136/+74
This is all white space and comment clean up. Mostly reformatting comments. Signed-off-by: Soren Brinkmann <[email protected]> Tested-by: Michal Simek <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Initialize ports according to aliasesMichal Simek1-8/+16
Register port numbers according to order in DT aliases. If aliases are not defined, order in DT is used. If aliases are defined, register port id based on that. This patch ensures proper ttyPS0/1 assignment. [soren]: Combined integer declarations in probe(), removed warning message if no alias is found. Signed-off-by: Michal Simek <[email protected]> Signed-off-by: Soren Brinkmann <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: xuartps: Fix kernel-doc errors in the driverMichal Simek1-60/+49
No functional changes. Signed-off-by: Michal Simek <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: serial: omap: fix Sparse warningsFelipe Balbi1-2/+2
Fix the following Sparse warnings: drivers/tty/serial/omap-serial.c:1418:49: warning: incorrect \ type in argument 2 (different address spaces) drivers/tty/serial/omap-serial.c:1418:49: expected void const \ [noderef] <asn:1>*from drivers/tty/serial/omap-serial.c:1418:49: got struct serial_rs485 \ *<noident> drivers/tty/serial/omap-serial.c:1426:35: warning: incorrect \ type in argument 1 (different address spaces) drivers/tty/serial/omap-serial.c:1426:35: expected void [noderef] \ <asn:1>*to drivers/tty/serial/omap-serial.c:1426:35: got struct serial_rs485 \ *<noident> Reported-by: Nishanth Menon <[email protected]> Signed-off-by: Felipe Balbi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2014-04-24tty: serial: omap: remove unneeded singlethread workqueueFelipe Balbi1-3/+0
it wasn't used by anything, just remove it. Signed-off-by: Felipe Balbi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>