diff options
Diffstat (limited to 'drivers/char/rio/riotty.c')
-rw-r--r-- | drivers/char/rio/riotty.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/drivers/char/rio/riotty.c b/drivers/char/rio/riotty.c index 6379816ed173..0ca431b4c474 100644 --- a/drivers/char/rio/riotty.c +++ b/drivers/char/rio/riotty.c | |||
@@ -136,7 +136,7 @@ extern struct rio_info *p; | |||
136 | 136 | ||
137 | int riotopen(struct tty_struct *tty, struct file *filp) | 137 | int riotopen(struct tty_struct *tty, struct file *filp) |
138 | { | 138 | { |
139 | register uint SysPort; | 139 | unsigned int SysPort; |
140 | int Modem; | 140 | int Modem; |
141 | int repeat_this = 250; | 141 | int repeat_this = 250; |
142 | struct Port *PortP; /* pointer to the port structure */ | 142 | struct Port *PortP; /* pointer to the port structure */ |
@@ -155,7 +155,6 @@ int riotopen(struct tty_struct *tty, struct file *filp) | |||
155 | 155 | ||
156 | if (p->RIOFailed) { | 156 | if (p->RIOFailed) { |
157 | rio_dprintk(RIO_DEBUG_TTY, "System initialisation failed\n"); | 157 | rio_dprintk(RIO_DEBUG_TTY, "System initialisation failed\n"); |
158 | pseterr(ENXIO); | ||
159 | func_exit(); | 158 | func_exit(); |
160 | return -ENXIO; | 159 | return -ENXIO; |
161 | } | 160 | } |
@@ -170,7 +169,6 @@ int riotopen(struct tty_struct *tty, struct file *filp) | |||
170 | */ | 169 | */ |
171 | if (SysPort >= RIO_PORTS) { /* out of range ? */ | 170 | if (SysPort >= RIO_PORTS) { /* out of range ? */ |
172 | rio_dprintk(RIO_DEBUG_TTY, "Illegal port number %d\n", SysPort); | 171 | rio_dprintk(RIO_DEBUG_TTY, "Illegal port number %d\n", SysPort); |
173 | pseterr(ENXIO); | ||
174 | func_exit(); | 172 | func_exit(); |
175 | return -ENXIO; | 173 | return -ENXIO; |
176 | } | 174 | } |
@@ -187,7 +185,6 @@ int riotopen(struct tty_struct *tty, struct file *filp) | |||
187 | */ | 185 | */ |
188 | rio_dprintk(RIO_DEBUG_TTY, "port not mapped into system\n"); | 186 | rio_dprintk(RIO_DEBUG_TTY, "port not mapped into system\n"); |
189 | func_exit(); | 187 | func_exit(); |
190 | pseterr(ENXIO); | ||
191 | return -ENXIO; | 188 | return -ENXIO; |
192 | } | 189 | } |
193 | 190 | ||
@@ -209,7 +206,6 @@ int riotopen(struct tty_struct *tty, struct file *filp) | |||
209 | */ | 206 | */ |
210 | if ((PortP->HostP->Flags & RUN_STATE) != RC_RUNNING) { | 207 | if ((PortP->HostP->Flags & RUN_STATE) != RC_RUNNING) { |
211 | rio_dprintk(RIO_DEBUG_TTY, "Host not running\n"); | 208 | rio_dprintk(RIO_DEBUG_TTY, "Host not running\n"); |
212 | pseterr(ENXIO); | ||
213 | func_exit(); | 209 | func_exit(); |
214 | return -ENXIO; | 210 | return -ENXIO; |
215 | } | 211 | } |
@@ -429,9 +425,6 @@ int riotopen(struct tty_struct *tty, struct file *filp) | |||
429 | 425 | ||
430 | rio_dprintk(RIO_DEBUG_TTY, "high level open done\n"); | 426 | rio_dprintk(RIO_DEBUG_TTY, "high level open done\n"); |
431 | 427 | ||
432 | #ifdef STATS | ||
433 | PortP->Stat.OpenCnt++; | ||
434 | #endif | ||
435 | /* | 428 | /* |
436 | ** Count opens for port statistics reporting | 429 | ** Count opens for port statistics reporting |
437 | */ | 430 | */ |
@@ -466,10 +459,10 @@ int riotclose(void *ptr) | |||
466 | rio_dprintk(RIO_DEBUG_TTY, "port close SysPort %d\n", PortP->PortNum); | 459 | rio_dprintk(RIO_DEBUG_TTY, "port close SysPort %d\n", PortP->PortNum); |
467 | 460 | ||
468 | /* PortP = p->RIOPortp[SysPort]; */ | 461 | /* PortP = p->RIOPortp[SysPort]; */ |
469 | rio_dprintk(RIO_DEBUG_TTY, "Port is at address 0x%x\n", (int) PortP); | 462 | rio_dprintk(RIO_DEBUG_TTY, "Port is at address 0x%p\n", PortP); |
470 | /* tp = PortP->TtyP; *//* Get tty */ | 463 | /* tp = PortP->TtyP; *//* Get tty */ |
471 | tty = PortP->gs.tty; | 464 | tty = PortP->gs.tty; |
472 | rio_dprintk(RIO_DEBUG_TTY, "TTY is at address 0x%x\n", (int) tty); | 465 | rio_dprintk(RIO_DEBUG_TTY, "TTY is at address 0x%p\n", tty); |
473 | 466 | ||
474 | if (PortP->gs.closing_wait) | 467 | if (PortP->gs.closing_wait) |
475 | end_time = jiffies + PortP->gs.closing_wait; | 468 | end_time = jiffies + PortP->gs.closing_wait; |
@@ -536,7 +529,6 @@ int riotclose(void *ptr) | |||
536 | 529 | ||
537 | if (!deleted) | 530 | if (!deleted) |
538 | while ((PortP->InUse != NOT_INUSE) && !p->RIOHalted && (PortP->TxBufferIn != PortP->TxBufferOut)) { | 531 | while ((PortP->InUse != NOT_INUSE) && !p->RIOHalted && (PortP->TxBufferIn != PortP->TxBufferOut)) { |
539 | cprintf("Need to flush the ttyport\n"); | ||
540 | if (repeat_this-- <= 0) { | 532 | if (repeat_this-- <= 0) { |
541 | rv = -EINTR; | 533 | rv = -EINTR; |
542 | rio_dprintk(RIO_DEBUG_TTY, "Waiting for not idle closed broken by signal\n"); | 534 | rio_dprintk(RIO_DEBUG_TTY, "Waiting for not idle closed broken by signal\n"); |
@@ -615,9 +607,6 @@ int riotclose(void *ptr) | |||
615 | */ | 607 | */ |
616 | PortP->Config &= ~(RIO_CTSFLOW | RIO_RTSFLOW); | 608 | PortP->Config &= ~(RIO_CTSFLOW | RIO_RTSFLOW); |
617 | 609 | ||
618 | #ifdef STATS | ||
619 | PortP->Stat.CloseCnt++; | ||
620 | #endif | ||
621 | /* | 610 | /* |
622 | ** Count opens for port statistics reporting | 611 | ** Count opens for port statistics reporting |
623 | */ | 612 | */ |
@@ -722,15 +711,15 @@ int RIOShortCommand(struct rio_info *p, struct Port *PortP, int command, int len | |||
722 | /* | 711 | /* |
723 | ** set the command byte and the argument byte | 712 | ** set the command byte and the argument byte |
724 | */ | 713 | */ |
725 | WBYTE(PacketP->data[0], command); | 714 | writeb(command, &PacketP->data[0]); |
726 | 715 | ||
727 | if (len == 2) | 716 | if (len == 2) |
728 | WBYTE(PacketP->data[1], arg); | 717 | writeb(arg, &PacketP->data[1]); |
729 | 718 | ||
730 | /* | 719 | /* |
731 | ** set the length of the packet and set the command bit. | 720 | ** set the length of the packet and set the command bit. |
732 | */ | 721 | */ |
733 | WBYTE(PacketP->len, PKT_CMD_BIT | len); | 722 | writeb(PKT_CMD_BIT | len, &PacketP->len); |
734 | 723 | ||
735 | add_transmit(PortP); | 724 | add_transmit(PortP); |
736 | /* | 725 | /* |