aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/rio/riocmd.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2006-03-24 06:18:28 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-24 10:33:29 -0500
commit00d83a54aa824b11ebc8c66c4a879cfeb5029a22 (patch)
treec4d13bb89b7ee082439ae75a5c1ee2d9da52c3c4 /drivers/char/rio/riocmd.c
parente2b3afd676ad3e15ca2efca3b3605c7d817ec6e3 (diff)
[PATCH] rio driver rework continued #3
Second large chunk of code cleanup. The split between this and #3 and #4 is fairly arbitary and due to the message length limit on the list. These patches continue the process of ripping out macros and typedefs while cleaning up lots of 32bit assumptions. Several inlines for compatibility also get removed and that causes a lot of noise. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/rio/riocmd.c')
-rw-r--r--drivers/char/rio/riocmd.c142
1 files changed, 68 insertions, 74 deletions
diff --git a/drivers/char/rio/riocmd.c b/drivers/char/rio/riocmd.c
index 694bfb9d9378..08fcac1f12de 100644
--- a/drivers/char/rio/riocmd.c
+++ b/drivers/char/rio/riocmd.c
@@ -42,6 +42,7 @@ static char *_riocmd_c_sccs_ = "@(#)riocmd.c 1.2";
42#include <asm/system.h> 42#include <asm/system.h>
43#include <asm/string.h> 43#include <asm/string.h>
44#include <asm/semaphore.h> 44#include <asm/semaphore.h>
45#include <asm/uaccess.h>
45 46
46#include <linux/termios.h> 47#include <linux/termios.h>
47#include <linux/serial.h> 48#include <linux/serial.h>
@@ -143,17 +144,17 @@ int RIOZombieRta(struct Host *HostP, struct Map *MapP)
143 return 0; 144 return 0;
144} 145}
145 146
146int RIOCommandRta(struct rio_info *p, uint RtaUnique, int (*func) (struct Host * HostP, struct Map * MapP)) 147int RIOCommandRta(struct rio_info *p, unsigned long RtaUnique, int (*func) (struct Host * HostP, struct Map * MapP))
147{ 148{
148 uint Host; 149 unsigned int Host;
149 150
150 rio_dprintk(RIO_DEBUG_CMD, "Command RTA 0x%x func 0x%x\n", RtaUnique, (int) func); 151 rio_dprintk(RIO_DEBUG_CMD, "Command RTA 0x%lx func 0x%p\n", RtaUnique, func);
151 152
152 if (!RtaUnique) 153 if (!RtaUnique)
153 return (0); 154 return (0);
154 155
155 for (Host = 0; Host < p->RIONumHosts; Host++) { 156 for (Host = 0; Host < p->RIONumHosts; Host++) {
156 uint Rta; 157 unsigned int Rta;
157 struct Host *HostP = &p->RIOHosts[Host]; 158 struct Host *HostP = &p->RIOHosts[Host];
158 159
159 for (Rta = 0; Rta < RTAS_PER_HOST; Rta++) { 160 for (Rta = 0; Rta < RTAS_PER_HOST; Rta++) {
@@ -170,7 +171,7 @@ int RIOCommandRta(struct rio_info *p, uint RtaUnique, int (*func) (struct Host *
170 ** any connections, we can get to it. 171 ** any connections, we can get to it.
171 */ 172 */
172 for (Link = 0; Link < LINKS_PER_UNIT; Link++) { 173 for (Link = 0; Link < LINKS_PER_UNIT; Link++) {
173 if (MapP->Topology[Link].Unit <= (uchar) MAX_RUP) { 174 if (MapP->Topology[Link].Unit <= (u8) MAX_RUP) {
174 /* 175 /*
175 ** Its worth trying the operation... 176 ** Its worth trying the operation...
176 */ 177 */
@@ -184,18 +185,18 @@ int RIOCommandRta(struct rio_info *p, uint RtaUnique, int (*func) (struct Host *
184} 185}
185 186
186 187
187int RIOIdentifyRta(struct rio_info *p, caddr_t arg) 188int RIOIdentifyRta(struct rio_info *p, void * arg)
188{ 189{
189 uint Host; 190 unsigned int Host;
190 191
191 if (copyin((int) arg, (caddr_t) & IdRta, sizeof(IdRta)) == COPYFAIL) { 192 if (copy_from_user(&IdRta, arg, sizeof(IdRta))) {
192 rio_dprintk(RIO_DEBUG_CMD, "RIO_IDENTIFY_RTA copy failed\n"); 193 rio_dprintk(RIO_DEBUG_CMD, "RIO_IDENTIFY_RTA copy failed\n");
193 p->RIOError.Error = COPYIN_FAILED; 194 p->RIOError.Error = COPYIN_FAILED;
194 return -EFAULT; 195 return -EFAULT;
195 } 196 }
196 197
197 for (Host = 0; Host < p->RIONumHosts; Host++) { 198 for (Host = 0; Host < p->RIONumHosts; Host++) {
198 uint Rta; 199 unsigned int Rta;
199 struct Host *HostP = &p->RIOHosts[Host]; 200 struct Host *HostP = &p->RIOHosts[Host];
200 201
201 for (Rta = 0; Rta < RTAS_PER_HOST; Rta++) { 202 for (Rta = 0; Rta < RTAS_PER_HOST; Rta++) {
@@ -211,7 +212,7 @@ int RIOIdentifyRta(struct rio_info *p, caddr_t arg)
211 ** any connections, we can get to it. 212 ** any connections, we can get to it.
212 */ 213 */
213 for (Link = 0; Link < LINKS_PER_UNIT; Link++) { 214 for (Link = 0; Link < LINKS_PER_UNIT; Link++) {
214 if (MapP->Topology[Link].Unit <= (uchar) MAX_RUP) { 215 if (MapP->Topology[Link].Unit <= (u8) MAX_RUP) {
215 /* 216 /*
216 ** Its worth trying the operation... 217 ** Its worth trying the operation...
217 */ 218 */
@@ -249,7 +250,7 @@ int RIOIdentifyRta(struct rio_info *p, caddr_t arg)
249} 250}
250 251
251 252
252int RIOKillNeighbour(struct rio_info *p, caddr_t arg) 253int RIOKillNeighbour(struct rio_info *p, void * arg)
253{ 254{
254 uint Host; 255 uint Host;
255 uint ID; 256 uint ID;
@@ -258,7 +259,7 @@ int RIOKillNeighbour(struct rio_info *p, caddr_t arg)
258 259
259 rio_dprintk(RIO_DEBUG_CMD, "KILL HOST NEIGHBOUR\n"); 260 rio_dprintk(RIO_DEBUG_CMD, "KILL HOST NEIGHBOUR\n");
260 261
261 if (copyin((int) arg, (caddr_t) & KillUnit, sizeof(KillUnit)) == COPYFAIL) { 262 if (copy_from_user(&KillUnit, arg, sizeof(KillUnit))) {
262 rio_dprintk(RIO_DEBUG_CMD, "RIO_KILL_NEIGHBOUR copy failed\n"); 263 rio_dprintk(RIO_DEBUG_CMD, "RIO_KILL_NEIGHBOUR copy failed\n");
263 p->RIOError.Error = COPYIN_FAILED; 264 p->RIOError.Error = COPYIN_FAILED;
264 return -EFAULT; 265 return -EFAULT;
@@ -344,7 +345,7 @@ int RIOSuspendBootRta(struct Host *HostP, int ID, int Link)
344int RIOFoadWakeup(struct rio_info *p) 345int RIOFoadWakeup(struct rio_info *p)
345{ 346{
346 int port; 347 int port;
347 register struct Port *PortP; 348 struct Port *PortP;
348 unsigned long flags; 349 unsigned long flags;
349 350
350 for (port = 0; port < RIO_PORTS; port++) { 351 for (port = 0; port < RIO_PORTS; port++) {
@@ -379,10 +380,10 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
379 struct PktCmd *PktCmdP = (struct PktCmd *) PacketP->data; 380 struct PktCmd *PktCmdP = (struct PktCmd *) PacketP->data;
380 struct Port *PortP; 381 struct Port *PortP;
381 struct UnixRup *UnixRupP; 382 struct UnixRup *UnixRupP;
382 ushort SysPort; 383 unsigned short SysPort;
383 ushort ReportedModemStatus; 384 unsigned short ReportedModemStatus;
384 ushort rup; 385 unsigned short rup;
385 ushort subCommand; 386 unsigned short subCommand;
386 unsigned long flags; 387 unsigned long flags;
387 388
388 func_enter(); 389 func_enter();
@@ -395,18 +396,18 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
395 ** we can use PhbNum to get the rup number for the appropriate 8 port 396 ** we can use PhbNum to get the rup number for the appropriate 8 port
396 ** block (for the first block, this should be equal to 'Rup'). 397 ** block (for the first block, this should be equal to 'Rup').
397 */ 398 */
398 rup = RBYTE(PktCmdP->PhbNum) / (ushort) PORTS_PER_RTA; 399 rup = readb(&PktCmdP->PhbNum) / (unsigned short) PORTS_PER_RTA;
399 UnixRupP = &HostP->UnixRups[rup]; 400 UnixRupP = &HostP->UnixRups[rup];
400 SysPort = UnixRupP->BaseSysPort + (RBYTE(PktCmdP->PhbNum) % (ushort) PORTS_PER_RTA); 401 SysPort = UnixRupP->BaseSysPort + (readb(&PktCmdP->PhbNum) % (unsigned short) PORTS_PER_RTA);
401 rio_dprintk(RIO_DEBUG_CMD, "Command on rup %d, port %d\n", rup, SysPort); 402 rio_dprintk(RIO_DEBUG_CMD, "Command on rup %d, port %d\n", rup, SysPort);
402 403
403 if (UnixRupP->BaseSysPort == NO_PORT) { 404 if (UnixRupP->BaseSysPort == NO_PORT) {
404 rio_dprintk(RIO_DEBUG_CMD, "OBSCURE ERROR!\n"); 405 rio_dprintk(RIO_DEBUG_CMD, "OBSCURE ERROR!\n");
405 rio_dprintk(RIO_DEBUG_CMD, "Diagnostics follow. Please WRITE THESE DOWN and report them to Specialix Technical Support\n"); 406 rio_dprintk(RIO_DEBUG_CMD, "Diagnostics follow. Please WRITE THESE DOWN and report them to Specialix Technical Support\n");
406 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: Host number %d, name ``%s''\n", HostP - p->RIOHosts, HostP->Name); 407 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: Host number %Zd, name ``%s''\n", HostP - p->RIOHosts, HostP->Name);
407 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: Rup number 0x%x\n", rup); 408 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: Rup number 0x%x\n", rup);
408 409
409 if (Rup >= (ushort) MAX_RUP) { 410 if (Rup >= (unsigned short) MAX_RUP) {
410 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: This is the RUP for RTA ``%s''\n", HostP->Mapping[Rup].Name); 411 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: This is the RUP for RTA ``%s''\n", HostP->Mapping[Rup].Name);
411 } else 412 } else
412 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: This is the RUP for link ``%c'' of host ``%s''\n", ('A' + Rup - MAX_RUP), HostP->Name); 413 rio_dprintk(RIO_DEBUG_CMD, "CONTROL information: This is the RUP for link ``%c'' of host ``%s''\n", ('A' + Rup - MAX_RUP), HostP->Name);
@@ -421,7 +422,7 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
421 } 422 }
422 PortP = p->RIOPortp[SysPort]; 423 PortP = p->RIOPortp[SysPort];
423 rio_spin_lock_irqsave(&PortP->portSem, flags); 424 rio_spin_lock_irqsave(&PortP->portSem, flags);
424 switch (RBYTE(PktCmdP->Command)) { 425 switch (readb(&PktCmdP->Command)) {
425 case BREAK_RECEIVED: 426 case BREAK_RECEIVED:
426 rio_dprintk(RIO_DEBUG_CMD, "Received a break!\n"); 427 rio_dprintk(RIO_DEBUG_CMD, "Received a break!\n");
427 /* If the current line disc. is not multi-threading and 428 /* If the current line disc. is not multi-threading and
@@ -434,15 +435,15 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
434 break; 435 break;
435 436
436 case COMPLETE: 437 case COMPLETE:
437 rio_dprintk(RIO_DEBUG_CMD, "Command complete on phb %d host %d\n", RBYTE(PktCmdP->PhbNum), HostP - p->RIOHosts); 438 rio_dprintk(RIO_DEBUG_CMD, "Command complete on phb %d host %Zd\n", readb(&PktCmdP->PhbNum), HostP - p->RIOHosts);
438 subCommand = 1; 439 subCommand = 1;
439 switch (RBYTE(PktCmdP->SubCommand)) { 440 switch (readb(&PktCmdP->SubCommand)) {
440 case MEMDUMP: 441 case MEMDUMP:
441 rio_dprintk(RIO_DEBUG_CMD, "Memory dump cmd (0x%x) from addr 0x%x\n", RBYTE(PktCmdP->SubCommand), RWORD(PktCmdP->SubAddr)); 442 rio_dprintk(RIO_DEBUG_CMD, "Memory dump cmd (0x%x) from addr 0x%x\n", readb(&PktCmdP->SubCommand), readw(&PktCmdP->SubAddr));
442 break; 443 break;
443 case READ_REGISTER: 444 case READ_REGISTER:
444 rio_dprintk(RIO_DEBUG_CMD, "Read register (0x%x)\n", RWORD(PktCmdP->SubAddr)); 445 rio_dprintk(RIO_DEBUG_CMD, "Read register (0x%x)\n", readw(&PktCmdP->SubAddr));
445 p->CdRegister = (RBYTE(PktCmdP->ModemStatus) & MSVR1_HOST); 446 p->CdRegister = (readb(&PktCmdP->ModemStatus) & MSVR1_HOST);
446 break; 447 break;
447 default: 448 default:
448 subCommand = 0; 449 subCommand = 0;
@@ -450,10 +451,10 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
450 } 451 }
451 if (subCommand) 452 if (subCommand)
452 break; 453 break;
453 rio_dprintk(RIO_DEBUG_CMD, "New status is 0x%x was 0x%x\n", RBYTE(PktCmdP->PortStatus), PortP->PortState); 454 rio_dprintk(RIO_DEBUG_CMD, "New status is 0x%x was 0x%x\n", readb(&PktCmdP->PortStatus), PortP->PortState);
454 if (PortP->PortState != RBYTE(PktCmdP->PortStatus)) { 455 if (PortP->PortState != readb(&PktCmdP->PortStatus)) {
455 rio_dprintk(RIO_DEBUG_CMD, "Mark status & wakeup\n"); 456 rio_dprintk(RIO_DEBUG_CMD, "Mark status & wakeup\n");
456 PortP->PortState = RBYTE(PktCmdP->PortStatus); 457 PortP->PortState = readb(&PktCmdP->PortStatus);
457 /* What should we do here ... 458 /* What should we do here ...
458 wakeup( &PortP->PortState ); 459 wakeup( &PortP->PortState );
459 */ 460 */
@@ -467,7 +468,7 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
467 ** to the check for modem status change (they're just there because 468 ** to the check for modem status change (they're just there because
468 ** it's a convenient place to put them!). 469 ** it's a convenient place to put them!).
469 */ 470 */
470 ReportedModemStatus = RBYTE(PktCmdP->ModemStatus); 471 ReportedModemStatus = readb(&PktCmdP->ModemStatus);
471 if ((PortP->ModemState & MSVR1_HOST) == (ReportedModemStatus & MSVR1_HOST)) { 472 if ((PortP->ModemState & MSVR1_HOST) == (ReportedModemStatus & MSVR1_HOST)) {
472 rio_dprintk(RIO_DEBUG_CMD, "Modem status unchanged 0x%x\n", PortP->ModemState); 473 rio_dprintk(RIO_DEBUG_CMD, "Modem status unchanged 0x%x\n", PortP->ModemState);
473 /* 474 /*
@@ -514,9 +515,6 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
514 */ 515 */
515 if (PortP->State & (PORT_ISOPEN | RIO_WOPEN)) 516 if (PortP->State & (PORT_ISOPEN | RIO_WOPEN))
516 wake_up_interruptible(&PortP->gs.open_wait); 517 wake_up_interruptible(&PortP->gs.open_wait);
517#ifdef STATS
518 PortP->Stat.ModemOnCnt++;
519#endif
520 } 518 }
521 } else { 519 } else {
522 /* 520 /*
@@ -527,9 +525,6 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
527 tty_hangup(PortP->gs.tty); 525 tty_hangup(PortP->gs.tty);
528 PortP->State &= ~RIO_CARR_ON; 526 PortP->State &= ~RIO_CARR_ON;
529 rio_dprintk(RIO_DEBUG_CMD, "Carrirer just went down\n"); 527 rio_dprintk(RIO_DEBUG_CMD, "Carrirer just went down\n");
530#ifdef STATS
531 PortP->Stat.ModemOffCnt++;
532#endif
533 } 528 }
534 } 529 }
535 } 530 }
@@ -539,7 +534,7 @@ static int RIOCommandRup(struct rio_info *p, uint Rup, struct Host *HostP, PKT *
539 break; 534 break;
540 535
541 default: 536 default:
542 rio_dprintk(RIO_DEBUG_CMD, "Unknown command %d on CMD_RUP of host %d\n", RBYTE(PktCmdP->Command), HostP - p->RIOHosts); 537 rio_dprintk(RIO_DEBUG_CMD, "Unknown command %d on CMD_RUP of host %Zd\n", readb(&PktCmdP->Command), HostP - p->RIOHosts);
543 break; 538 break;
544 } 539 }
545 rio_spin_unlock_irqrestore(&PortP->portSem, flags); 540 rio_spin_unlock_irqrestore(&PortP->portSem, flags);
@@ -566,10 +561,9 @@ struct CmdBlk *RIOGetCmdBlk(void)
566{ 561{
567 struct CmdBlk *CmdBlkP; 562 struct CmdBlk *CmdBlkP;
568 563
569 CmdBlkP = (struct CmdBlk *) sysbrk(sizeof(struct CmdBlk)); 564 CmdBlkP = (struct CmdBlk *)kmalloc(sizeof(struct CmdBlk), GFP_ATOMIC);
570 if (CmdBlkP) 565 if (CmdBlkP)
571 bzero(CmdBlkP, sizeof(struct CmdBlk)); 566 memset(CmdBlkP, 0, sizeof(struct CmdBlk));
572
573 return CmdBlkP; 567 return CmdBlkP;
574} 568}
575 569
@@ -578,7 +572,7 @@ struct CmdBlk *RIOGetCmdBlk(void)
578*/ 572*/
579void RIOFreeCmdBlk(struct CmdBlk *CmdBlkP) 573void RIOFreeCmdBlk(struct CmdBlk *CmdBlkP)
580{ 574{
581 sysfree((void *) CmdBlkP, sizeof(struct CmdBlk)); 575 kfree(CmdBlkP);
582} 576}
583 577
584/* 578/*
@@ -591,7 +585,7 @@ int RIOQueueCmdBlk(struct Host *HostP, uint Rup, struct CmdBlk *CmdBlkP)
591 struct UnixRup *UnixRupP; 585 struct UnixRup *UnixRupP;
592 unsigned long flags; 586 unsigned long flags;
593 587
594 if (Rup >= (ushort) (MAX_RUP + LINKS_PER_UNIT)) { 588 if (Rup >= (unsigned short) (MAX_RUP + LINKS_PER_UNIT)) {
595 rio_dprintk(RIO_DEBUG_CMD, "Illegal rup number %d in RIOQueueCmdBlk\n", Rup); 589 rio_dprintk(RIO_DEBUG_CMD, "Illegal rup number %d in RIOQueueCmdBlk\n", Rup);
596 RIOFreeCmdBlk(CmdBlkP); 590 RIOFreeCmdBlk(CmdBlkP);
597 return RIO_FAIL; 591 return RIO_FAIL;
@@ -605,7 +599,7 @@ int RIOQueueCmdBlk(struct Host *HostP, uint Rup, struct CmdBlk *CmdBlkP)
605 ** If the RUP is currently inactive, then put the request 599 ** If the RUP is currently inactive, then put the request
606 ** straight on the RUP.... 600 ** straight on the RUP....
607 */ 601 */
608 if ((UnixRupP->CmdsWaitingP == NULL) && (UnixRupP->CmdPendingP == NULL) && (RWORD(UnixRupP->RupP->txcontrol) == TX_RUP_INACTIVE) && (CmdBlkP->PreFuncP ? (*CmdBlkP->PreFuncP) (CmdBlkP->PreArg, CmdBlkP) 602 if ((UnixRupP->CmdsWaitingP == NULL) && (UnixRupP->CmdPendingP == NULL) && (readw(&UnixRupP->RupP->txcontrol) == TX_RUP_INACTIVE) && (CmdBlkP->PreFuncP ? (*CmdBlkP->PreFuncP) (CmdBlkP->PreArg, CmdBlkP)
609 : TRUE)) { 603 : TRUE)) {
610 rio_dprintk(RIO_DEBUG_CMD, "RUP inactive-placing command straight on. Cmd byte is 0x%x\n", CmdBlkP->Packet.data[0]); 604 rio_dprintk(RIO_DEBUG_CMD, "RUP inactive-placing command straight on. Cmd byte is 0x%x\n", CmdBlkP->Packet.data[0]);
611 605
@@ -622,7 +616,7 @@ int RIOQueueCmdBlk(struct Host *HostP, uint Rup, struct CmdBlk *CmdBlkP)
622 /* 616 /*
623 ** set the command register 617 ** set the command register
624 */ 618 */
625 WWORD(UnixRupP->RupP->txcontrol, TX_PACKET_READY); 619 writew(TX_PACKET_READY, &UnixRupP->RupP->txcontrol);
626 620
627 rio_spin_unlock_irqrestore(&UnixRupP->RupLock, flags); 621 rio_spin_unlock_irqrestore(&UnixRupP->RupLock, flags);
628 622
@@ -634,20 +628,20 @@ int RIOQueueCmdBlk(struct Host *HostP, uint Rup, struct CmdBlk *CmdBlkP)
634 rio_dprintk(RIO_DEBUG_CMD, "Rup active - command waiting\n"); 628 rio_dprintk(RIO_DEBUG_CMD, "Rup active - command waiting\n");
635 if (UnixRupP->CmdPendingP != NULL) 629 if (UnixRupP->CmdPendingP != NULL)
636 rio_dprintk(RIO_DEBUG_CMD, "Rup active - command pending\n"); 630 rio_dprintk(RIO_DEBUG_CMD, "Rup active - command pending\n");
637 if (RWORD(UnixRupP->RupP->txcontrol) != TX_RUP_INACTIVE) 631 if (readw(&UnixRupP->RupP->txcontrol) != TX_RUP_INACTIVE)
638 rio_dprintk(RIO_DEBUG_CMD, "Rup active - command rup not ready\n"); 632 rio_dprintk(RIO_DEBUG_CMD, "Rup active - command rup not ready\n");
639 633
640 Base = &UnixRupP->CmdsWaitingP; 634 Base = &UnixRupP->CmdsWaitingP;
641 635
642 rio_dprintk(RIO_DEBUG_CMD, "First try to queue cmdblk 0x%x at 0x%x\n", (int) CmdBlkP, (int) Base); 636 rio_dprintk(RIO_DEBUG_CMD, "First try to queue cmdblk 0x%p at 0x%p\n", CmdBlkP, Base);
643 637
644 while (*Base) { 638 while (*Base) {
645 rio_dprintk(RIO_DEBUG_CMD, "Command cmdblk 0x%x here\n", (int) (*Base)); 639 rio_dprintk(RIO_DEBUG_CMD, "Command cmdblk 0x%p here\n", *Base);
646 Base = &((*Base)->NextP); 640 Base = &((*Base)->NextP);
647 rio_dprintk(RIO_DEBUG_CMD, "Now try to queue cmd cmdblk 0x%x at 0x%x\n", (int) CmdBlkP, (int) Base); 641 rio_dprintk(RIO_DEBUG_CMD, "Now try to queue cmd cmdblk 0x%p at 0x%p\n", CmdBlkP, Base);
648 } 642 }
649 643
650 rio_dprintk(RIO_DEBUG_CMD, "Will queue cmdblk 0x%x at 0x%x\n", (int) CmdBlkP, (int) Base); 644 rio_dprintk(RIO_DEBUG_CMD, "Will queue cmdblk 0x%p at 0x%p\n", CmdBlkP, Base);
651 645
652 *Base = CmdBlkP; 646 *Base = CmdBlkP;
653 647
@@ -664,10 +658,10 @@ int RIOQueueCmdBlk(struct Host *HostP, uint Rup, struct CmdBlk *CmdBlkP)
664*/ 658*/
665void RIOPollHostCommands(struct rio_info *p, struct Host *HostP) 659void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
666{ 660{
667 register struct CmdBlk *CmdBlkP; 661 struct CmdBlk *CmdBlkP;
668 register struct UnixRup *UnixRupP; 662 struct UnixRup *UnixRupP;
669 struct PKT *PacketP; 663 struct PKT *PacketP;
670 ushort Rup; 664 unsigned short Rup;
671 unsigned long flags; 665 unsigned long flags;
672 666
673 667
@@ -684,16 +678,16 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
684 /* 678 /*
685 ** First check for incoming commands: 679 ** First check for incoming commands:
686 */ 680 */
687 if (RWORD(UnixRupP->RupP->rxcontrol) != RX_RUP_INACTIVE) { 681 if (readw(&UnixRupP->RupP->rxcontrol) != RX_RUP_INACTIVE) {
688 int FreeMe; 682 int FreeMe;
689 683
690 PacketP = (PKT *) RIO_PTR(HostP->Caddr, RWORD(UnixRupP->RupP->rxpkt)); 684 PacketP = (PKT *) RIO_PTR(HostP->Caddr, readw(&UnixRupP->RupP->rxpkt));
691 685
692 ShowPacket(DBG_CMD, PacketP); 686 ShowPacket(DBG_CMD, PacketP);
693 687
694 switch (RBYTE(PacketP->dest_port)) { 688 switch (readb(&PacketP->dest_port)) {
695 case BOOT_RUP: 689 case BOOT_RUP:
696 rio_dprintk(RIO_DEBUG_CMD, "Incoming Boot %s packet '%x'\n", RBYTE(PacketP->len) & 0x80 ? "Command" : "Data", RBYTE(PacketP->data[0])); 690 rio_dprintk(RIO_DEBUG_CMD, "Incoming Boot %s packet '%x'\n", readb(&PacketP->len) & 0x80 ? "Command" : "Data", readb(&PacketP->data[0]));
697 rio_spin_unlock_irqrestore(&UnixRupP->RupLock, flags); 691 rio_spin_unlock_irqrestore(&UnixRupP->RupLock, flags);
698 FreeMe = RIOBootRup(p, Rup, HostP, PacketP); 692 FreeMe = RIOBootRup(p, Rup, HostP, PacketP);
699 rio_spin_lock_irqsave(&UnixRupP->RupLock, flags); 693 rio_spin_lock_irqsave(&UnixRupP->RupLock, flags);
@@ -708,7 +702,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
708 rio_spin_unlock_irqrestore(&UnixRupP->RupLock, flags); 702 rio_spin_unlock_irqrestore(&UnixRupP->RupLock, flags);
709 FreeMe = RIOCommandRup(p, Rup, HostP, PacketP); 703 FreeMe = RIOCommandRup(p, Rup, HostP, PacketP);
710 if (PacketP->data[5] == MEMDUMP) { 704 if (PacketP->data[5] == MEMDUMP) {
711 rio_dprintk(RIO_DEBUG_CMD, "Memdump from 0x%x complete\n", *(ushort *) & (PacketP->data[6])); 705 rio_dprintk(RIO_DEBUG_CMD, "Memdump from 0x%x complete\n", *(unsigned short *) & (PacketP->data[6]));
712 HostP->Copy((caddr_t) & (PacketP->data[8]), (caddr_t) p->RIOMemDump, 32); 706 HostP->Copy((caddr_t) & (PacketP->data[8]), (caddr_t) p->RIOMemDump, 32);
713 } 707 }
714 rio_spin_lock_irqsave(&UnixRupP->RupLock, flags); 708 rio_spin_lock_irqsave(&UnixRupP->RupLock, flags);
@@ -721,7 +715,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
721 break; 715 break;
722 716
723 default: 717 default:
724 rio_dprintk(RIO_DEBUG_CMD, "Unknown RUP %d\n", RBYTE(PacketP->dest_port)); 718 rio_dprintk(RIO_DEBUG_CMD, "Unknown RUP %d\n", readb(&PacketP->dest_port));
725 FreeMe = 1; 719 FreeMe = 1;
726 break; 720 break;
727 } 721 }
@@ -730,11 +724,11 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
730 rio_dprintk(RIO_DEBUG_CMD, "Free processed incoming command packet\n"); 724 rio_dprintk(RIO_DEBUG_CMD, "Free processed incoming command packet\n");
731 put_free_end(HostP, PacketP); 725 put_free_end(HostP, PacketP);
732 726
733 WWORD(UnixRupP->RupP->rxcontrol, RX_RUP_INACTIVE); 727 writew(RX_RUP_INACTIVE, &UnixRupP->RupP->rxcontrol);
734 728
735 if (RWORD(UnixRupP->RupP->handshake) == PHB_HANDSHAKE_SET) { 729 if (readw(&UnixRupP->RupP->handshake) == PHB_HANDSHAKE_SET) {
736 rio_dprintk(RIO_DEBUG_CMD, "Handshake rup %d\n", Rup); 730 rio_dprintk(RIO_DEBUG_CMD, "Handshake rup %d\n", Rup);
737 WWORD(UnixRupP->RupP->handshake, PHB_HANDSHAKE_SET | PHB_HANDSHAKE_RESET); 731 writew(PHB_HANDSHAKE_SET | PHB_HANDSHAKE_RESET, &UnixRupP->RupP->handshake);
738 } 732 }
739 } 733 }
740 } 734 }
@@ -744,7 +738,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
744 ** and it has completed, then tidy it up. 738 ** and it has completed, then tidy it up.
745 */ 739 */
746 if ((CmdBlkP = UnixRupP->CmdPendingP) && /* ASSIGN! */ 740 if ((CmdBlkP = UnixRupP->CmdPendingP) && /* ASSIGN! */
747 (RWORD(UnixRupP->RupP->txcontrol) == TX_RUP_INACTIVE)) { 741 (readw(&UnixRupP->RupP->txcontrol) == TX_RUP_INACTIVE)) {
748 /* 742 /*
749 ** we are idle. 743 ** we are idle.
750 ** there is a command in pending. 744 ** there is a command in pending.
@@ -755,7 +749,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
755 if (CmdBlkP->Packet.dest_port == BOOT_RUP) 749 if (CmdBlkP->Packet.dest_port == BOOT_RUP)
756 rio_dprintk(RIO_DEBUG_CMD, "Free Boot %s Command Block '%x'\n", CmdBlkP->Packet.len & 0x80 ? "Command" : "Data", CmdBlkP->Packet.data[0]); 750 rio_dprintk(RIO_DEBUG_CMD, "Free Boot %s Command Block '%x'\n", CmdBlkP->Packet.len & 0x80 ? "Command" : "Data", CmdBlkP->Packet.data[0]);
757 751
758 rio_dprintk(RIO_DEBUG_CMD, "Command 0x%x completed\n", (int) CmdBlkP); 752 rio_dprintk(RIO_DEBUG_CMD, "Command 0x%p completed\n", CmdBlkP);
759 753
760 /* 754 /*
761 ** Clear the Rup lock to prevent mutual exclusion. 755 ** Clear the Rup lock to prevent mutual exclusion.
@@ -782,16 +776,16 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
782 ** is idle, then process the command 776 ** is idle, then process the command
783 */ 777 */
784 if ((CmdBlkP = UnixRupP->CmdsWaitingP) && /* ASSIGN! */ 778 if ((CmdBlkP = UnixRupP->CmdsWaitingP) && /* ASSIGN! */
785 (UnixRupP->CmdPendingP == NULL) && (RWORD(UnixRupP->RupP->txcontrol) == TX_RUP_INACTIVE)) { 779 (UnixRupP->CmdPendingP == NULL) && (readw(&UnixRupP->RupP->txcontrol) == TX_RUP_INACTIVE)) {
786 /* 780 /*
787 ** if the pre-function is non-zero, call it. 781 ** if the pre-function is non-zero, call it.
788 ** If it returns RIO_FAIL then don't 782 ** If it returns RIO_FAIL then don't
789 ** send this command yet! 783 ** send this command yet!
790 */ 784 */
791 if (!(CmdBlkP->PreFuncP ? (*CmdBlkP->PreFuncP) (CmdBlkP->PreArg, CmdBlkP) : TRUE)) { 785 if (!(CmdBlkP->PreFuncP ? (*CmdBlkP->PreFuncP) (CmdBlkP->PreArg, CmdBlkP) : TRUE)) {
792 rio_dprintk(RIO_DEBUG_CMD, "Not ready to start command 0x%x\n", (int) CmdBlkP); 786 rio_dprintk(RIO_DEBUG_CMD, "Not ready to start command 0x%p\n", CmdBlkP);
793 } else { 787 } else {
794 rio_dprintk(RIO_DEBUG_CMD, "Start new command 0x%x Cmd byte is 0x%x\n", (int) CmdBlkP, CmdBlkP->Packet.data[0]); 788 rio_dprintk(RIO_DEBUG_CMD, "Start new command 0x%p Cmd byte is 0x%x\n", CmdBlkP, CmdBlkP->Packet.data[0]);
795 /* 789 /*
796 ** Whammy! blat that pack! 790 ** Whammy! blat that pack!
797 */ 791 */
@@ -810,7 +804,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
810 /* 804 /*
811 ** set the command register 805 ** set the command register
812 */ 806 */
813 WWORD(UnixRupP->RupP->txcontrol, TX_PACKET_READY); 807 writew(TX_PACKET_READY, &UnixRupP->RupP->txcontrol);
814 808
815 /* 809 /*
816 ** the command block will be freed 810 ** the command block will be freed
@@ -822,7 +816,7 @@ void RIOPollHostCommands(struct rio_info *p, struct Host *HostP)
822 } while (Rup); 816 } while (Rup);
823} 817}
824 818
825int RIOWFlushMark(int iPortP, struct CmdBlk *CmdBlkP) 819int RIOWFlushMark(unsigned long iPortP, struct CmdBlk *CmdBlkP)
826{ 820{
827 struct Port *PortP = (struct Port *) iPortP; 821 struct Port *PortP = (struct Port *) iPortP;
828 unsigned long flags; 822 unsigned long flags;
@@ -834,7 +828,7 @@ int RIOWFlushMark(int iPortP, struct CmdBlk *CmdBlkP)
834 return RIOUnUse(iPortP, CmdBlkP); 828 return RIOUnUse(iPortP, CmdBlkP);
835} 829}
836 830
837int RIORFlushEnable(int iPortP, struct CmdBlk *CmdBlkP) 831int RIORFlushEnable(unsigned long iPortP, struct CmdBlk *CmdBlkP)
838{ 832{
839 struct Port *PortP = (struct Port *) iPortP; 833 struct Port *PortP = (struct Port *) iPortP;
840 PKT *PacketP; 834 PKT *PacketP;
@@ -848,19 +842,19 @@ int RIORFlushEnable(int iPortP, struct CmdBlk *CmdBlkP)
848 put_free_end(PortP->HostP, PacketP); 842 put_free_end(PortP->HostP, PacketP);
849 } 843 }
850 844
851 if (RWORD(PortP->PhbP->handshake) == PHB_HANDSHAKE_SET) { 845 if (readw(&PortP->PhbP->handshake) == PHB_HANDSHAKE_SET) {
852 /* 846 /*
853 ** MAGIC! (Basically, handshake the RX buffer, so that 847 ** MAGIC! (Basically, handshake the RX buffer, so that
854 ** the RTAs upstream can be re-enabled.) 848 ** the RTAs upstream can be re-enabled.)
855 */ 849 */
856 rio_dprintk(RIO_DEBUG_CMD, "Util: Set RX handshake bit\n"); 850 rio_dprintk(RIO_DEBUG_CMD, "Util: Set RX handshake bit\n");
857 WWORD(PortP->PhbP->handshake, PHB_HANDSHAKE_SET | PHB_HANDSHAKE_RESET); 851 writew(PHB_HANDSHAKE_SET | PHB_HANDSHAKE_RESET, &PortP->PhbP->handshake);
858 } 852 }
859 rio_spin_unlock_irqrestore(&PortP->portSem, flags); 853 rio_spin_unlock_irqrestore(&PortP->portSem, flags);
860 return RIOUnUse(iPortP, CmdBlkP); 854 return RIOUnUse(iPortP, CmdBlkP);
861} 855}
862 856
863int RIOUnUse(int iPortP, struct CmdBlk *CmdBlkP) 857int RIOUnUse(unsigned long iPortP, struct CmdBlk *CmdBlkP)
864{ 858{
865 struct Port *PortP = (struct Port *) iPortP; 859 struct Port *PortP = (struct Port *) iPortP;
866 unsigned long flags; 860 unsigned long flags;
@@ -890,7 +884,7 @@ int RIOUnUse(int iPortP, struct CmdBlk *CmdBlkP)
890 ** When PortP->InUse becomes NOT_INUSE, we must ensure that any data 884 ** When PortP->InUse becomes NOT_INUSE, we must ensure that any data
891 ** hanging around in the transmit buffer is sent immediately. 885 ** hanging around in the transmit buffer is sent immediately.
892 */ 886 */
893 WWORD(PortP->HostP->ParmMapP->tx_intr, 1); 887 writew(1, &PortP->HostP->ParmMapP->tx_intr);
894 /* What to do here .. 888 /* What to do here ..
895 wakeup( (caddr_t)&(PortP->InUse) ); 889 wakeup( (caddr_t)&(PortP->InUse) );
896 */ 890 */