{\r
dwapb_save_out_value(up, offset, value);\r
__raw_writeb(value, up->port.membase + (offset << 2));\r
- dsb();\r
+ if (offset != UART_TX)\r
+ dsb();\r
dwapb_check_clear_ier(up, offset);\r
}\r
\r
dev_dbg(port->dev, "-%s lcr: 0x%02x\n", __func__, up->lcr);\r
}\r
\r
+#if defined(CONFIG_SERIAL_RK_CONSOLE) || defined(CONFIG_CONSOLE_POLL)\r
/*\r
* Wait for transmitter & holding register to empty\r
*/\r
udelay(1);\r
}\r
}\r
+#endif\r
\r
#ifdef CONFIG_CONSOLE_POLL\r
/*\r
(void) serial_in(up, UART_RX);\r
\r
free_irq(up->port.irq, up);\r
+ clk_disable(up->clk);\r
}\r
\r
static void\r
\r
sprintf(up->name, "rk29_serial.%d", pdev->id);\r
up->pdev = pdev;\r
-#ifdef CONFIG_ARCH_RK29\r
up->clk = clk_get(&pdev->dev, "uart");\r
if (unlikely(IS_ERR(up->clk))) {\r
ret = PTR_ERR(up->clk);\r
goto do_free;\r
}\r
-#endif\r
up->tx_loadsz = 30;\r
#if USE_DMA\r
up->prk29_uart_dma_t = &rk29_uart_ports_dma_t[pdev->id];\r