aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/mxser.c
diff options
context:
space:
mode:
authorAlan Cox <alan@linux.intel.com>2009-09-19 16:13:31 -0400
committerLive-CD User <linux@linux.site>2009-09-19 16:13:31 -0400
commitbdc04e3174e18f475289fa8f4144f66686326b7e (patch)
treec0bf03c8d6df1629bfa26b686fe65ffb0c87aeb7 /drivers/char/mxser.c
parenta2bceae065ed8c4f552b35c4dde4cc2db05ce9e3 (diff)
serial: move delta_msr_wait into the tty_port
This is used by various drivers not just serial and can be extracted as commonality Signed-off-by: Alan Cox <alan@linux.intel.com>
Diffstat (limited to 'drivers/char/mxser.c')
-rw-r--r--drivers/char/mxser.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index 30544ca5e956..37058ff7da7d 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -258,7 +258,6 @@ struct mxser_port {
258 struct mxser_mon mon_data; 258 struct mxser_mon mon_data;
259 259
260 spinlock_t slock; 260 spinlock_t slock;
261 wait_queue_head_t delta_msr_wait;
262}; 261};
263 262
264struct mxser_board { 263struct mxser_board {
@@ -818,7 +817,7 @@ static void mxser_check_modem_status(struct tty_struct *tty,
818 if (status & UART_MSR_DCTS) 817 if (status & UART_MSR_DCTS)
819 port->icount.cts++; 818 port->icount.cts++;
820 port->mon_data.modem_status = status; 819 port->mon_data.modem_status = status;
821 wake_up_interruptible(&port->delta_msr_wait); 820 wake_up_interruptible(&port->port.delta_msr_wait);
822 821
823 if ((port->port.flags & ASYNC_CHECK_CD) && (status & UART_MSR_DDCD)) { 822 if ((port->port.flags & ASYNC_CHECK_CD) && (status & UART_MSR_DDCD)) {
824 if (status & UART_MSR_DCD) 823 if (status & UART_MSR_DCD)
@@ -973,7 +972,7 @@ static void mxser_shutdown(struct tty_struct *tty)
973 * clear delta_msr_wait queue to avoid mem leaks: we may free the irq 972 * clear delta_msr_wait queue to avoid mem leaks: we may free the irq
974 * here so the queue might never be waken up 973 * here so the queue might never be waken up
975 */ 974 */
976 wake_up_interruptible(&info->delta_msr_wait); 975 wake_up_interruptible(&info->port.delta_msr_wait);
977 976
978 /* 977 /*
979 * Free the IRQ, if necessary 978 * Free the IRQ, if necessary
@@ -1762,7 +1761,7 @@ static int mxser_ioctl(struct tty_struct *tty, struct file *file,
1762 cnow = info->icount; /* note the counters on entry */ 1761 cnow = info->icount; /* note the counters on entry */
1763 spin_unlock_irqrestore(&info->slock, flags); 1762 spin_unlock_irqrestore(&info->slock, flags);
1764 1763
1765 return wait_event_interruptible(info->delta_msr_wait, 1764 return wait_event_interruptible(info->port.delta_msr_wait,
1766 mxser_cflags_changed(info, arg, &cnow)); 1765 mxser_cflags_changed(info, arg, &cnow));
1767 /* 1766 /*
1768 * Get counter of input serial line interrupts (DCD,RI,DSR,CTS) 1767 * Get counter of input serial line interrupts (DCD,RI,DSR,CTS)
@@ -2414,7 +2413,6 @@ static int __devinit mxser_initbrd(struct mxser_board *brd,
2414 info->port.close_delay = 5 * HZ / 10; 2413 info->port.close_delay = 5 * HZ / 10;
2415 info->port.closing_wait = 30 * HZ; 2414 info->port.closing_wait = 30 * HZ;
2416 info->normal_termios = mxvar_sdriver->init_termios; 2415 info->normal_termios = mxvar_sdriver->init_termios;
2417 init_waitqueue_head(&info->delta_msr_wait);
2418 memset(&info->mon_data, 0, sizeof(struct mxser_mon)); 2416 memset(&info->mon_data, 0, sizeof(struct mxser_mon));
2419 info->err_shadow = 0; 2417 info->err_shadow = 0;
2420 spin_lock_init(&info->slock); 2418 spin_lock_init(&info->slock);