Char: moxa, fix and optimise empty timer

moxa, fix and optimise empty timer

don't wait and delete empty timer in empty timer function. Also fire next
empty timer at rounded jiffies to save power.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Jiri Slaby 2007-10-18 03:06:19 -07:00 committed by Linus Torvalds
parent fc37449f79
commit c43422053b

View file

@ -1040,14 +1040,14 @@ static void check_xmit_empty(unsigned long data)
struct moxa_port *ch;
ch = (struct moxa_port *) data;
del_timer_sync(&moxa_ports[ch->port].emptyTimer);
if (ch->tty && (ch->statusflags & EMPTYWAIT)) {
if (MoxaPortTxQueue(ch->port) == 0) {
ch->statusflags &= ~EMPTYWAIT;
tty_wakeup(ch->tty);
return;
}
mod_timer(&moxa_ports[ch->port].emptyTimer, jiffies + HZ);
mod_timer(&moxa_ports[ch->port].emptyTimer,
round_jiffies(jiffies + HZ));
} else
ch->statusflags &= ~EMPTYWAIT;
}