tty: Replace ASYNC_CHECK_CD and update atomically
Replace ASYNC_CHECK_CD bit in the tty_port::flags field with TTY_PORT_CHECK_CD bit in the tty_port::iflags field. Introduce helpers tty_port_set_check_carrier() and tty_port_check_carrier() to abstract the atomic bit ops. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
807c8d81f4
commit
2d68655d15
@@ -999,7 +999,7 @@ void ircomm_tty_check_modem_status(struct ircomm_tty_cb *self)
|
||||
if (status & IRCOMM_DCE_DELTA_ANY) {
|
||||
/*wake_up_interruptible(&self->delta_msr_wait);*/
|
||||
}
|
||||
if ((self->port.flags & ASYNC_CHECK_CD) && (status & IRCOMM_DELTA_CD)) {
|
||||
if (tty_port_check_carrier(&self->port) && (status & IRCOMM_DELTA_CD)) {
|
||||
pr_debug("%s(), ircomm%d CD now %s...\n", __func__ , self->line,
|
||||
(status & IRCOMM_CD) ? "on" : "off");
|
||||
|
||||
@@ -1255,7 +1255,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
|
||||
seq_printf(m, "%cASYNC_CTS_FLOW", sep);
|
||||
sep = '|';
|
||||
}
|
||||
if (self->port.flags & ASYNC_CHECK_CD) {
|
||||
if (tty_port_check_carrier(&self->port)) {
|
||||
seq_printf(m, "%cASYNC_CHECK_CD", sep);
|
||||
sep = '|';
|
||||
}
|
||||
|
@@ -968,7 +968,7 @@ static int ircomm_tty_state_ready(struct ircomm_tty_cb *self,
|
||||
ircomm_tty_next_state(self, IRCOMM_TTY_SEARCH);
|
||||
ircomm_tty_start_watchdog_timer(self, 3*HZ);
|
||||
|
||||
if (self->port.flags & ASYNC_CHECK_CD) {
|
||||
if (tty_port_check_carrier(&self->port)) {
|
||||
/* Drop carrier */
|
||||
self->settings.dce = IRCOMM_DELTA_CD;
|
||||
ircomm_tty_check_modem_status(self);
|
||||
|
@@ -96,10 +96,7 @@ static void ircomm_tty_change_speed(struct ircomm_tty_cb *self,
|
||||
} else {
|
||||
self->settings.flow_control &= ~IRCOMM_RTS_CTS_IN;
|
||||
}
|
||||
if (cflag & CLOCAL)
|
||||
self->port.flags &= ~ASYNC_CHECK_CD;
|
||||
else
|
||||
self->port.flags |= ASYNC_CHECK_CD;
|
||||
tty_port_set_check_carrier(&self->port, ~cflag & CLOCAL);
|
||||
#if 0
|
||||
/*
|
||||
* Set up parity check flag
|
||||
|
Reference in New Issue
Block a user