Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba43294d authored by Jiri Slaby's avatar Jiri Slaby Committed by Greg Kroah-Hartman
Browse files

TTY: isdn, use tty from tty_port



No recounting this time, just a plain switch.

Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Cc: Karsten Keil <isdn@linux-pingi.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1b05f030
Loading
Loading
Loading
Loading
+20 −21
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ isdn_tty_try_read(modem_info *info, struct sk_buff *skb)
	if (!info->online)
		return 0;

	tty = info->tty;
	tty = info->port.tty;
	if (!tty)
		return 0;

@@ -144,7 +144,7 @@ isdn_tty_readmodem(void)
		if ((info->vonline & 1) && (info->emu.vpar[1]))
			isdn_audio_eval_silence(info);
#endif
		tty = info->tty;
		tty = info->port.tty;
		if (tty) {
			if (info->mcr & UART_MCR_RTS) {
				/* CISCO AsyncPPP Hack */
@@ -300,7 +300,7 @@ isdn_tty_tint(modem_info *info)
	len = skb->len;
	if ((slen = isdn_writebuf_skb_stub(info->isdn_driver,
					   info->isdn_channel, 1, skb)) == len) {
		struct tty_struct *tty = info->tty;
		struct tty_struct *tty = info->port.tty;
		info->send_outstanding++;
		info->msr &= ~UART_MSR_CTS;
		info->lsr &= ~UART_LSR_TEMT;
@@ -705,7 +705,7 @@ isdn_tty_modem_hup(modem_info *info, int local)
	printk(KERN_DEBUG "Mhup ttyI%d\n", info->line);
#endif
	info->rcvsched = 0;
	isdn_tty_flush_buffer(info->tty);
	isdn_tty_flush_buffer(info->port.tty);
	if (info->online) {
		info->last_lhup = local;
		info->online = 0;
@@ -1008,15 +1008,15 @@ isdn_tty_change_speed(modem_info *info)
		quot;
	int i;

	if (!info->tty || !info->tty->termios)
	if (!info->port.tty || !info->port.tty->termios)
		return;
	cflag = info->tty->termios->c_cflag;
	cflag = info->port.tty->termios->c_cflag;

	quot = i = cflag & CBAUD;
	if (i & CBAUDEX) {
		i &= ~CBAUDEX;
		if (i < 1 || i > 2)
			info->tty->termios->c_cflag &= ~CBAUDEX;
			info->port.tty->termios->c_cflag &= ~CBAUDEX;
		else
			i += 15;
	}
@@ -1069,8 +1069,8 @@ isdn_tty_startup(modem_info *info)
	 * Now, initialize the UART
	 */
	info->mcr = UART_MCR_DTR | UART_MCR_RTS | UART_MCR_OUT2;
	if (info->tty)
		clear_bit(TTY_IO_ERROR, &info->tty->flags);
	if (info->port.tty)
		clear_bit(TTY_IO_ERROR, &info->port.tty->flags);
	/*
	 * and set the speed of the serial port
	 */
@@ -1096,7 +1096,7 @@ isdn_tty_shutdown(modem_info *info)
#endif
	isdn_unlock_drivers();
	info->msr &= ~UART_MSR_RI;
	if (!info->tty || (info->tty->termios->c_cflag & HUPCL)) {
	if (!info->port.tty || (info->port.tty->termios->c_cflag & HUPCL)) {
		info->mcr &= ~(UART_MCR_DTR | UART_MCR_RTS);
		if (info->emu.mdmreg[REG_DTRHUP] & BIT_DTRHUP) {
			isdn_tty_modem_reset_regs(info, 0);
@@ -1106,8 +1106,8 @@ isdn_tty_shutdown(modem_info *info)
			isdn_tty_modem_hup(info, 1);
		}
	}
	if (info->tty)
		set_bit(TTY_IO_ERROR, &info->tty->flags);
	if (info->port.tty)
		set_bit(TTY_IO_ERROR, &info->port.tty->flags);

	info->port.flags &= ~ASYNC_INITIALIZED;
}
@@ -1599,7 +1599,7 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
#endif
	info->port.count++;
	tty->driver_data = info;
	info->tty = tty;
	info->port.tty = tty;
	tty->port = &info->port;
	/*
	 * Start up serial port
@@ -1692,7 +1692,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
	isdn_tty_shutdown(info);
	isdn_tty_flush_buffer(tty);
	tty_ldisc_flush(tty);
	info->tty = NULL;
	info->port.tty = NULL;
	info->ncarrier = 0;
	tty->closing = 0;
	if (info->port.blocked_open) {
@@ -1719,7 +1719,7 @@ isdn_tty_hangup(struct tty_struct *tty)
	isdn_tty_shutdown(info);
	info->port.count = 0;
	info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
	info->tty = NULL;
	info->port.tty = NULL;
	wake_up_interruptible(&info->port.open_wait);
}

@@ -1894,7 +1894,6 @@ isdn_tty_modem_init(void)
		isdn_tty_modem_reset_regs(info, 1);
		info->magic = ISDN_ASYNC_MAGIC;
		info->line = i;
		info->tty = NULL;
		info->x_char = 0;
		info->isdn_driver = -1;
		info->isdn_channel = -1;
@@ -2316,7 +2315,7 @@ isdn_tty_at_cout(char *msg, modem_info *info)
	l = strlen(msg);

	spin_lock_irqsave(&info->readlock, flags);
	tty = info->tty;
	tty = info->port.tty;
	if ((info->port.flags & ASYNC_CLOSING) || (!tty)) {
		spin_unlock_irqrestore(&info->readlock, flags);
		return;
@@ -2468,12 +2467,12 @@ isdn_tty_modem_result(int code, modem_info *info)
#ifdef ISDN_DEBUG_MODEM_HUP
		printk(KERN_DEBUG "modem_result: NO CARRIER %d %d\n",
		       (info->port.flags & ASYNC_CLOSING),
		       (!info->tty));
		       (!info->port.tty));
#endif
		m->mdmreg[REG_RINGCNT] = 0;
		del_timer(&info->nc_timer);
		info->ncarrier = 0;
		if ((info->port.flags & ASYNC_CLOSING) || (!info->tty))
		if ((info->port.flags & ASYNC_CLOSING) || (!info->port.tty))
			return;

#ifdef CONFIG_ISDN_AUDIO
@@ -2606,11 +2605,11 @@ isdn_tty_modem_result(int code, modem_info *info)
		}
	}
	if (code == RESULT_NO_CARRIER) {
		if ((info->port.flags & ASYNC_CLOSING) || (!info->tty))
		if ((info->port.flags & ASYNC_CLOSING) || (!info->port.tty))
			return;

		if (info->port.flags & ASYNC_CHECK_CD)
			tty_hangup(info->tty);
			tty_hangup(info->port.tty);
	}
}

+0 −1
Original line number Diff line number Diff line
@@ -479,7 +479,6 @@ typedef struct modem_info {
  struct T30_s		*fax;		 /* T30 Fax Group 3 data/interface */
  int			faxonline;	 /* Fax-channel status             */
#endif
  struct tty_struct 	*tty;            /* Pointer to corresponding tty   */
  atemu                 emu;             /* AT-emulator data               */
  spinlock_t	        readlock;
} modem_info;