|
@@ -559,11 +559,15 @@ static void s3c24xx_serial_pm(struct uart_port *port, unsigned int level,
|
|
|
unsigned int old)
|
|
unsigned int old)
|
|
|
{
|
|
{
|
|
|
struct s3c24xx_uart_port *ourport = to_ourport(port);
|
|
struct s3c24xx_uart_port *ourport = to_ourport(port);
|
|
|
|
|
+ int timeout = 10000;
|
|
|
|
|
|
|
|
ourport->pm_level = level;
|
|
ourport->pm_level = level;
|
|
|
|
|
|
|
|
switch (level) {
|
|
switch (level) {
|
|
|
case 3:
|
|
case 3:
|
|
|
|
|
+ while (--timeout && !s3c24xx_serial_txempty_nofifo(port))
|
|
|
|
|
+ udelay(100);
|
|
|
|
|
+
|
|
|
if (!IS_ERR(ourport->baudclk))
|
|
if (!IS_ERR(ourport->baudclk))
|
|
|
clk_disable_unprepare(ourport->baudclk);
|
|
clk_disable_unprepare(ourport->baudclk);
|
|
|
|
|
|