Hi,

        I'm testing 4.0-rc1 kernel on my board with 8250 Designware UART.(ARM 
Cortex-a15 single core).
        
        I found if serial is busy and writes to the LCR failed after tried 1000 
times.
        The kernel will hung up.

        The system boot success after changed from:

 95 static void dw8250_serial_out(struct uart_port *p, int offset, int value)
 96 {
 97         struct dw8250_data *d = p->private_data;
 98
...
...
112                         writeb(value, p->membase + (UART_LCR << 
p->regshift));
113                 }
114                 dev_err(p->dev, "Couldn't set LCR to %d\n", value);
115         }
116 }

        to:

 95 static void dw8250_serial_out(struct uart_port *p, int offset, int value)
 96 {
 97         struct dw8250_data *d = p->private_data;
 98
...
...
112                         writeb(value, p->membase + (UART_LCR << 
p->regshift));
113                 }
114                 dev_info(p->dev, "Couldn't set LCR to %d\n", value);        
    //changed here
115         }
116 }

        The reason is serial8250_console_write can't get port->lock because 
serial8250_do_set_termios has
        got port->lock.
        So i think here we should change from dev_err to dev_info ?
        Any suggestions are welcome.

Best regards!

        

        

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to