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

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

TTY: 68328serial, use open/close_wait from tty_port



Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Acked-by: default avatarGreg Ungerer <gerg@uclinux.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 86264341
Loading
Loading
Loading
Loading
+6 −10
Original line number Original line Diff line number Diff line
@@ -127,8 +127,6 @@ struct m68k_serial {
	int			xmit_head;
	int			xmit_head;
	int			xmit_tail;
	int			xmit_tail;
	int			xmit_cnt;
	int			xmit_cnt;
	wait_queue_head_t	open_wait;
	wait_queue_head_t	close_wait;
};
};


#define SERIAL_MAGIC 0x5301
#define SERIAL_MAGIC 0x5301
@@ -1083,10 +1081,10 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
		if (info->close_delay) {
		if (info->close_delay) {
			msleep_interruptible(jiffies_to_msecs(info->close_delay));
			msleep_interruptible(jiffies_to_msecs(info->close_delay));
		}
		}
		wake_up_interruptible(&info->open_wait);
		wake_up_interruptible(&port->open_wait);
	}
	}
	info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
	info->flags &= ~(ASYNC_NORMAL_ACTIVE|ASYNC_CLOSING);
	wake_up_interruptible(&info->close_wait);
	wake_up_interruptible(&port->close_wait);
	local_irq_restore(flags);
	local_irq_restore(flags);
}
}


@@ -1105,7 +1103,7 @@ void rs_hangup(struct tty_struct *tty)
	info->tport.count = 0;
	info->tport.count = 0;
	info->flags &= ~ASYNC_NORMAL_ACTIVE;
	info->flags &= ~ASYNC_NORMAL_ACTIVE;
	info->tty = NULL;
	info->tty = NULL;
	wake_up_interruptible(&info->open_wait);
	wake_up_interruptible(&info->tport.open_wait);
}
}


/*
/*
@@ -1126,7 +1124,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
	 * until it's done, and then try again.
	 * until it's done, and then try again.
	 */
	 */
	if (info->flags & ASYNC_CLOSING) {
	if (info->flags & ASYNC_CLOSING) {
		interruptible_sleep_on(&info->close_wait);
		interruptible_sleep_on(&port->close_wait);
#ifdef SERIAL_DO_RESTART
#ifdef SERIAL_DO_RESTART
		if (info->flags & ASYNC_HUP_NOTIFY)
		if (info->flags & ASYNC_HUP_NOTIFY)
			return -EAGAIN;
			return -EAGAIN;
@@ -1158,7 +1156,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
	 * exit, either normal or abnormal.
	 * exit, either normal or abnormal.
	 */
	 */
	retval = 0;
	retval = 0;
	add_wait_queue(&info->open_wait, &wait);
	add_wait_queue(&port->open_wait, &wait);


	port->count--;
	port->count--;
	port->blocked_open++;
	port->blocked_open++;
@@ -1187,7 +1185,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
		tty_lock();
		tty_lock();
	}
	}
	current->state = TASK_RUNNING;
	current->state = TASK_RUNNING;
	remove_wait_queue(&info->open_wait, &wait);
	remove_wait_queue(&port->open_wait, &wait);
	if (!tty_hung_up_p(filp))
	if (!tty_hung_up_p(filp))
		port->count++;
		port->count++;
	port->blocked_open--;
	port->blocked_open--;
@@ -1301,8 +1299,6 @@ rs68328_init(void)
	    info->close_delay = 50;
	    info->close_delay = 50;
	    info->closing_wait = 3000;
	    info->closing_wait = 3000;
	    info->x_char = 0;
	    info->x_char = 0;
	    init_waitqueue_head(&info->open_wait);
	    init_waitqueue_head(&info->close_wait);
	    info->line = i;
	    info->line = i;
	    info->is_cons = 1; /* Means shortcuts work */
	    info->is_cons = 1; /* Means shortcuts work */