|
@@ -102,7 +102,6 @@
|
|
struct arc_uart_port {
|
|
struct arc_uart_port {
|
|
struct uart_port port;
|
|
struct uart_port port;
|
|
unsigned long baud;
|
|
unsigned long baud;
|
|
- int is_emulated; /* H/w vs. Instruction Set Simulator */
|
|
|
|
};
|
|
};
|
|
|
|
|
|
#define to_arc_port(uport) container_of(uport, struct arc_uart_port, port)
|
|
#define to_arc_port(uport) container_of(uport, struct arc_uart_port, port)
|
|
@@ -380,17 +379,6 @@ arc_serial_set_termios(struct uart_port *port, struct ktermios *new,
|
|
uartl = hw_val & 0xFF;
|
|
uartl = hw_val & 0xFF;
|
|
uarth = (hw_val >> 8) & 0xFF;
|
|
uarth = (hw_val >> 8) & 0xFF;
|
|
|
|
|
|
- /*
|
|
|
|
- * UART ISS(Instruction Set simulator) emulation has a subtle bug:
|
|
|
|
- * A existing value of Baudh = 0 is used as a indication to startup
|
|
|
|
- * it's internal state machine.
|
|
|
|
- * Thus if baudh is set to 0, 2 times, it chokes.
|
|
|
|
- * This happens with BAUD=115200 and the formaula above
|
|
|
|
- * Until that is fixed, when running on ISS, we will set baudh to !0
|
|
|
|
- */
|
|
|
|
- if (uart->is_emulated)
|
|
|
|
- uarth = 1;
|
|
|
|
-
|
|
|
|
spin_lock_irqsave(&port->lock, flags);
|
|
spin_lock_irqsave(&port->lock, flags);
|
|
|
|
|
|
UART_ALL_IRQ_DISABLE(port);
|
|
UART_ALL_IRQ_DISABLE(port);
|
|
@@ -512,8 +500,6 @@ arc_uart_init_one(struct platform_device *pdev, int dev_id)
|
|
if (!plat_data)
|
|
if (!plat_data)
|
|
return -ENODEV;
|
|
return -ENODEV;
|
|
|
|
|
|
- uart->is_emulated = !!plat_data[0]; /* workaround ISS bug */
|
|
|
|
-
|
|
|
|
if (is_early_platform_device(pdev)) {
|
|
if (is_early_platform_device(pdev)) {
|
|
port->uartclk = plat_data[1];
|
|
port->uartclk = plat_data[1];
|
|
uart->baud = plat_data[2];
|
|
uart->baud = plat_data[2];
|