diff options
author | Jiri Slaby <jslaby@suse.cz> | 2012-04-02 13:54:28 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-09 11:28:26 -0700 |
commit | d73a4e790d05151dadf8c6de84382411a8f073fd (patch) | |
tree | 4f7962c9ad5cea39183b6df7f93ba8e35c90f143 /drivers/tty/hvc | |
parent | 5f566051fbc3e7754f903b3b4bf67a44e0ae2d1a (diff) | |
download | op-kernel-dev-d73a4e790d05151dadf8c6de84382411a8f073fd.zip op-kernel-dev-d73a4e790d05151dadf8c6de84382411a8f073fd.tar.gz |
TTY: hvsi, add tty_port
And use count from there.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/hvc')
-rw-r--r-- | drivers/tty/hvc/hvsi.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c index 4006aed42..113a09a 100644 --- a/drivers/tty/hvc/hvsi.c +++ b/drivers/tty/hvc/hvsi.c @@ -69,6 +69,7 @@ #define __ALIGNED__ __attribute__((__aligned__(sizeof(long)))) struct hvsi_struct { + struct tty_port port; struct delayed_work writer; struct work_struct handshaker; wait_queue_head_t emptyq; /* woken when outbuf is emptied */ @@ -76,7 +77,6 @@ struct hvsi_struct { spinlock_t lock; int index; struct tty_struct *tty; - int count; uint8_t throttle_buf[128]; uint8_t outbuf[N_OUTBUF]; /* to implement write_room and chars_in_buffer */ /* inbuf is for packet reassembly. leave a little room for leftovers. */ @@ -751,7 +751,7 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp) spin_lock_irqsave(&hp->lock, flags); hp->tty = tty; - hp->count++; + hp->port.count++; atomic_set(&hp->seqno, 0); h_vio_signal(hp->vtermno, VIO_IRQ_ENABLE); spin_unlock_irqrestore(&hp->lock, flags); @@ -808,7 +808,7 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp) spin_lock_irqsave(&hp->lock, flags); - if (--hp->count == 0) { + if (--hp->port.count == 0) { hp->tty = NULL; hp->inbuf_end = hp->inbuf; /* discard remaining partial packets */ @@ -841,9 +841,9 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp) spin_lock_irqsave(&hp->lock, flags); } - } else if (hp->count < 0) + } else if (hp->port.count < 0) printk(KERN_ERR "hvsi_close %lu: oops, count is %d\n", - hp - hvsi_ports, hp->count); + hp - hvsi_ports, hp->port.count); spin_unlock_irqrestore(&hp->lock, flags); } @@ -857,7 +857,7 @@ static void hvsi_hangup(struct tty_struct *tty) spin_lock_irqsave(&hp->lock, flags); - hp->count = 0; + hp->port.count = 0; hp->n_outbuf = 0; hp->tty = NULL; @@ -1228,6 +1228,7 @@ static int __init hvsi_console_init(void) init_waitqueue_head(&hp->emptyq); init_waitqueue_head(&hp->stateq); spin_lock_init(&hp->lock); + tty_port_init(&hp->port); hp->index = hvsi_count; hp->inbuf_end = hp->inbuf; hp->state = HVSI_CLOSED; |