diff options
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 4 | ||||
-rw-r--r-- | drivers/tty/serial/omap-serial.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 7aefca4..7341eff 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -1355,7 +1355,7 @@ static void _enable_sysc(struct omap_hwmod *oh) sf = oh->class->sysc->sysc_flags; clkdm = _get_clkdm(oh); - if (strcmp(oh->name, "uart3") && sf & SYSC_HAS_SIDLEMODE) { + if (sf & SYSC_HAS_SIDLEMODE) { if (oh->flags & HWMOD_SWSUP_SIDLE || oh->flags & HWMOD_SWSUP_SIDLE_ACT) { idlemode = HWMOD_IDLEMODE_NO; @@ -1439,7 +1439,7 @@ static void _idle_sysc(struct omap_hwmod *oh) v = oh->_sysc_cache; sf = oh->class->sysc->sysc_flags; - if (strcmp(oh->name, "uart3") && sf & SYSC_HAS_SIDLEMODE) { + if (sf & SYSC_HAS_SIDLEMODE) { if (oh->flags & HWMOD_SWSUP_SIDLE) { idlemode = HWMOD_IDLEMODE_FORCE; } else { diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c index f589111..9cc8942 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -307,7 +307,6 @@ static void transmit_chars(struct uart_omap_port *up, unsigned int lsr) } if (uart_circ_empty(xmit) || uart_tx_stopped(&up->port)) { serial_omap_stop_tx(&up->port); - serial_omap_set_forceidle(up); return; } count = up->port.fifosize / 4; @@ -325,6 +324,8 @@ static void transmit_chars(struct uart_omap_port *up, unsigned int lsr) spin_lock(&up->port.lock); } + if (uart_circ_empty(xmit)) + serial_omap_stop_tx(&up->port); } static inline void serial_omap_enable_ier_thri(struct uart_omap_port *up) |