switch (level) {
case S3C24XX_UART_PORT_SUSPEND:
- /* disable auto flow control & set nRTS for High */
- umcon = rd_regl(port, S3C2410_UMCON);
- umcon &= ~(S3C2410_UMCOM_AFC | S3C2410_UMCOM_RTS_LOW);
- wr_regl(port, S3C2410_UMCON, umcon);
+ if (!ourport->in_band_wakeup) {
+ /* disable auto flow control & set nRTS for High */
+ umcon = rd_regl(port, S3C2410_UMCON);
+ umcon &= ~(S3C2410_UMCOM_AFC | S3C2410_UMCOM_RTS_LOW);
+ wr_regl(port, S3C2410_UMCON, umcon);
+ }
uart_clock_disable(ourport);
break;
PM_QOS_CLUSTER1_FREQ_MIN, 0);
}
#endif
+ if (of_get_property(pdev->dev.of_node, "samsung,in-band-wakeup", NULL))
+ ourport->in_band_wakeup = 1;
+ else
+ ourport->in_band_wakeup = 0;
if (of_find_property(pdev->dev.of_node, "samsung,use-default-irq", NULL))
ourport->use_default_irq =1;