Hi Robert, On 04/16/2015 03:50 AM, Robert Baldyga wrote: > This patch fixes problems with serial console break. When function > s3c64xx_serial_startup() was started while serial console has been working, > it caused lose of characters written to TX FIFO. This effect was particularly > observable with systemd, which closes serial port every time when it's > not currently needed, hence function s3c64xx_serial_startup() is called > quite often there. To fix this problem we avoid resetting TX FIFO. > > Example of broken console log: > > [ 1086.7 Expecting device dev-ttySAC1.device... > [ 1086.[ OK ] Reached target Paths. > [ 1086.756416] s[ OK ] Reached target Swap. > [ 1086.776413] systemd[1]: Reached target Swap. > [ 1086.776642] systemd[1]: Starting Root Slice. > [ 5.53403[ OK ] Created slice Root Slice. > [ 5.548433] systemd[1]: Create[ OK ] Created slice User and Session Slice. > [ 5.568414] sys[ OK ] Listening on /dev/initctl Compatibility Named Pipe. > [ 5.588388] s[ OK ] Listening on Delayed Shutdown Socket. > [ 5.608376] sy[ OK ] Listening on Journal Socket (/dev/log). > [ 5.628361] [ OK ] Listening on udev Kernel Socket. > [ 5.648357] s[ OK ] Listening on udev Control Socket. > [ 5.668353] s[ OK ] Listening on Journal Socket. > [ 5.688366] systemd[1]: Listeni[ OK ] Created slice System Slice. > [ 5.708393] Mounting Temporary Directory... > [ 7139.067436] Starting prepare device daemon... > [ 7139.091726] sy Starting Generate environment from /etc/profile.d... > [ 5.792867] system Starting Create Static Device Nodes in /dev... > [ 7848.718 Mounting Debug File System... > [ 7848.7384 Mounting Configuration File System... > [ 5.852 Starting Apply Kernel Variables... > [ 5.8720 Starting Setup Virtual Console... > [ 7848.798 Starting udev Coldplug all Devices... > [ 7848.817 Starting Journal Service... > [ OK ] Started Journal Service. > [ 7848.854222] s[ OK ] Reached target Slices. > Starting Remount Root and Kernel File Systems... > [ OK ] Mounted Configuration File System. > > Reported-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx> > Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx> > --- > drivers/tty/serial/samsung.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c > index cf08876..19b8fa6 100644 > --- a/drivers/tty/serial/samsung.c > +++ b/drivers/tty/serial/samsung.c > @@ -1068,8 +1068,7 @@ static int s3c64xx_serial_startup(struct uart_port *port) > spin_lock_irqsave(&port->lock, flags); > > ufcon = rd_regl(port, S3C2410_UFCON); > - ufcon |= S3C2410_UFCON_RESETRX | S3C2410_UFCON_RESETTX | > - S5PV210_UFCON_RXTRIG8; > + ufcon |= S3C2410_UFCON_RESETRX | S5PV210_UFCON_RXTRIG8; This should reset tx if the port is not the console; something like this: ufcon |= S3C2410_UFCON_RESETRX | S5PV210_UFCON_RXTRIG8; if (!uart_console(port)) ufcon |= S3C2410_UFCON_RESETTX; > wr_regl(port, S3C2410_UFCON, ufcon); > > enable_rx_pio(ourport); > -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html