Ticket #2180: ignore_s3c2410_serial_overruns.patch

File ignore_s3c2410_serial_overruns.patch, 907 bytes (added by Sascha, 9 years ago)
  • drivers/serial/samsung.c

    diff --git a/drivers/serial/samsung.c b/drivers/serial/samsung.c
    index 4c57146..7b73c69 100644
    a b s3c24xx_serial_rx_chars(int irq, void *dev_id) 
    239239                port->icount.rx++; 
    240240 
    241241                if (unlikely(uerstat & S3C2410_UERSTAT_ANY)) { 
    242                         printk(KERN_DEBUG "rxerr: port ch=0x%02x, rxs=0x%08x\n", 
    243                             ch, uerstat); 
     242                        printk(KERN_DEBUG "rxerr: port=%d ch=0x%02x, rxs=0x%08x\n", 
     243                            port->line, ch, uerstat); 
    244244 
    245245                        /* check for break */ 
    246246                        if (uerstat & S3C2410_UERSTAT_BREAK) { 
    s3c24xx_serial_rx_chars(int irq, void *dev_id) 
    269269                if (uart_handle_sysrq_char(port, ch)) 
    270270                        goto ignore_char; 
    271271 
    272                 uart_insert_char(port, uerstat, S3C2410_UERSTAT_OVERRUN, 
    273                                 ch, flag); 
     272                if ((uerstat & port->ignore_status_mask & ~S3C2410_UERSTAT_OVERRUN) == 0) 
     273                        tty_insert_flip_char(tty, ch, flag); 
    274274 
    275275 ignore_char: 
    276276                continue;