diff options
author | Alan Cox <alan@linux.intel.com> | 2009-09-19 16:13:31 -0400 |
---|---|---|
committer | Live-CD User <linux@linux.site> | 2009-09-19 16:13:31 -0400 |
commit | bdc04e3174e18f475289fa8f4144f66686326b7e (patch) | |
tree | c0bf03c8d6df1629bfa26b686fe65ffb0c87aeb7 /drivers/char/mxser.c | |
parent | a2bceae065ed8c4f552b35c4dde4cc2db05ce9e3 (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.c | 8 |
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 | ||
264 | struct mxser_board { | 263 | struct 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); |