Commit 942e6612 authored by Kai Germaschewski's avatar Kai Germaschewski

ISDN: Remove delayed ttyI xmit

There's really no good reason to delay sending out data on a ttyI, ISDN
is slow enough anyway ;)
  
(There is one reason, i.e. allowing to coalesce multiple chars, but
that is better fixed by having the upper levels (tty) send larger
buffers)
parent a4426b1f
......@@ -1160,8 +1160,6 @@ isdn_timer_funct(ulong dummy)
if (tf & ISDN_TIMER_FAST) {
if (tf & ISDN_TIMER_MODEMREAD)
isdn_tty_readmodem();
if (tf & ISDN_TIMER_MODEMXMIT)
isdn_tty_modem_xmit();
}
if (tf)
{
......
......@@ -26,6 +26,7 @@
/* Prototypes */
static void isdn_tty_modem_xmit(struct modem_info *info);
static int isdn_tty_edit_at(const char *, int, modem_info *, int);
static void isdn_tty_escape_timer(unsigned long data);
static void isdn_tty_ring_timer(unsigned long data);
......@@ -1312,11 +1313,7 @@ isdn_tty_write(struct tty_struct *tty, int from_user, const u_char * buf, int co
}
atomic_dec(&info->xmit_lock);
if ((info->xmit_count) || (skb_queue_len(&info->xmit_queue))) {
if (m->mdmreg[REG_DXMT] & BIT_DXMT) {
isdn_tty_senddown(info);
isdn_tty_tint(info);
}
isdn_timer_ctrl(ISDN_TIMER_MODEMXMIT, 1);
isdn_tty_modem_xmit(info);
}
out:
if (from_user)
......@@ -1384,7 +1381,7 @@ isdn_tty_flush_chars(struct tty_struct *tty)
if (isdn_tty_paranoia_check(info, tty->device, "isdn_tty_flush_chars"))
return;
if ((info->xmit_count) || (skb_queue_len(&info->xmit_queue)))
isdn_timer_ctrl(ISDN_TIMER_MODEMXMIT, 1);
isdn_tty_modem_xmit(info);
}
/*
......@@ -3999,25 +3996,11 @@ isdn_tty_ring_timer(unsigned long data)
mod_timer(&info->ring_timer, jiffies + RING_TIMEOUT);
}
/*
* For all online tty's, try sending data to
* the lower levels.
*/
void
isdn_tty_modem_xmit(void)
static void
isdn_tty_modem_xmit(struct modem_info *info)
{
int ton = 1;
int i;
for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
modem_info *info = &isdn_mdm.info[i];
if (info->online) {
ton = 1;
isdn_tty_senddown(info);
isdn_tty_tint(info);
}
}
isdn_timer_ctrl(ISDN_TIMER_MODEMXMIT, ton);
isdn_tty_senddown(info);
isdn_tty_tint(info);
}
static void
......@@ -4031,3 +4014,4 @@ isdn_tty_connect_timer(unsigned long data)
isdn_tty_modem_hup(info, 1);
}
}
......@@ -98,7 +98,6 @@
((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
(info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS2))
extern void isdn_tty_modem_xmit(void);
extern int isdn_tty_init(void);
extern void isdn_tty_readmodem(void);
extern int isdn_tty_find_icall(struct isdn_slot *slot, setup_parm *setup);
......
......@@ -238,8 +238,7 @@ typedef struct {
/* Timer-delays and scheduling-flags */
#define ISDN_TIMER_RES 4 /* Main Timer-Resolution */
#define ISDN_TIMER_MODEMREAD 1
#define ISDN_TIMER_MODEMXMIT 8
#define ISDN_TIMER_FAST (ISDN_TIMER_MODEMREAD | ISDN_TIMER_MODEMXMIT)
#define ISDN_TIMER_FAST (ISDN_TIMER_MODEMREAD)
/* GLOBAL_FLAGS */
#define ISDN_GLOBAL_STOPPED 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment