summaryrefslogtreecommitdiffstats
path: root/sys/alpha/tc/esp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/alpha/tc/esp.c')
-rw-r--r--sys/alpha/tc/esp.c89
1 files changed, 44 insertions, 45 deletions
diff --git a/sys/alpha/tc/esp.c b/sys/alpha/tc/esp.c
index 7bba66d..99eb45f 100644
--- a/sys/alpha/tc/esp.c
+++ b/sys/alpha/tc/esp.c
@@ -46,11 +46,9 @@
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/bus.h>
-#include <sys/device.h>
#include <sys/errno.h>
/*#include <sys/ioctl.h>*/
-#include <sys/device.h>
#include <sys/buf.h>
#include <sys/proc.h>
/*#include <sys/user.h>*/
@@ -71,8 +69,8 @@
int esp_debug = 0; /*ESP_SHOWPHASE|ESP_SHOWMISC|ESP_SHOWTRAC|ESP_SHOWCMDS;*/
-/*static*/ void espattach __P((struct device *, struct device *, void *));
-/*static*/ int espmatch __P((struct device *, void *, void *));
+/*static*/ void espattach __P((device_t, device_t, void *));
+/*static*/ int espmatch __P((device_t, void *, void *));
/*static*/ int espprint __P((void *, char *));
/*static*/ u_int esp_adapter_info __P((struct esp_softc *));
/*static*/ void espreadregs __P((struct esp_softc *));
@@ -303,7 +301,7 @@ esp_reset(sc)
break;
default:
printf("%s: unknown revision code, assuming ESP100\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
ESP_WRITE_REG(sc, ESP_CFG1, sc->sc_cfg1);
ESP_WRITE_REG(sc, ESP_CCF, sc->sc_ccf);
ESP_WRITE_REG(sc, ESP_SYNCOFF, 0);
@@ -733,7 +731,7 @@ esp_done(ecb)
/*XXX - must take off queue here */
if (ecb != sc->sc_nexus) {
panic("%s: esp_sched: floating ecb %p",
- sc->sc_dev.dv_xname, ecb);
+ device_get_nameunit(sc->sc_dev), ecb);
}
TAILQ_INSERT_HEAD(&sc->ready_list, ecb, chain);
ECB_SETQ(ecb, ECB_QREADY);
@@ -774,7 +772,8 @@ esp_done(ecb)
switch (ecb->flags & ECB_QBITS) {
case ECB_QNONE:
if (ecb != sc->sc_nexus) {
- panic("%s: floating ecb", sc->sc_dev.dv_xname);
+ panic("%s: floating ecb",
+ device_get_nameunit(sc->sc_dev));
}
sc->sc_nexus = NULL;
sc->sc_state = ESP_IDLE;
@@ -790,11 +789,11 @@ esp_done(ecb)
break;
case ECB_QFREE:
panic("%s: dequeue: busy ecb on free list",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
break;
default:
panic("%s: dequeue: unknown queue %d",
- sc->sc_dev.dv_xname, ecb->flags & ECB_QBITS);
+ device_get_nameunit(sc->sc_dev),ecb->flags & ECB_QBITS);
}
/* Put it on the free list, and clear flags. */
@@ -842,7 +841,7 @@ esp_msgin(sc)
if ((ESP_READ_REG(sc, ESP_FFLAG) & ESPFIFO_FF) == 0) {
printf("%s: msgin: no msg byte available\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
return;
}
@@ -939,7 +938,7 @@ gotit:
case MSG_MESSAGE_REJECT:
if (esp_debug & ESP_SHOWMSGS)
printf("%s: our msg rejected by target\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
#if 1 /* XXX - must remember last message */
sc_print_addr(ecb->xs->sc_link); printf("MSG_MESSAGE_REJECT>>");
#endif
@@ -974,7 +973,7 @@ sc_print_addr(ecb->xs->sc_link); printf("MSG_MESSAGE_REJECT>>");
if (!ecb) {
esp_sched_msgout(SEND_ABORT);
printf("%s: no DATAPOINTERs to restore\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
break;
}
sc->sc_dp = ecb->daddr;
@@ -982,7 +981,7 @@ sc_print_addr(ecb->xs->sc_link); printf("MSG_MESSAGE_REJECT>>");
break;
case MSG_PARITY_ERROR:
printf("%s:target%d: MSG_PARITY_ERROR\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
ecb->xs->sc_link->target);
break;
case MSG_EXTENDED:
@@ -1060,7 +1059,7 @@ sc_print_addr(ecb->xs->sc_link); printf("MSG_MESSAGE_REJECT>>");
/* thanks for that ident... */
if (!MSG_ISIDENTIFY(sc->sc_imess[0])) {
ESP_MISC(("unknown "));
-printf("%s: unimplemented message: %d\n", sc->sc_dev.dv_xname, sc->sc_imess[0]);
+printf("%s: unimplemented message: %d\n", device_get_nameunit(sc->sc_dev), sc->sc_imess[0]);
ESPCMD(sc, ESPCMD_SETATN);
}
break;
@@ -1121,12 +1120,12 @@ printf("%s: unimplemented message: %d\n", sc->sc_dev.dv_xname, sc->sc_imess[0]);
}
} else {
printf("%s: bogus reselect (no IDENTIFY) %0x2x\n",
- sc->sc_dev.dv_xname, sc->sc_selid);
+ device_get_nameunit(sc->sc_dev), sc->sc_selid);
esp_sched_msgout(SEND_DEV_RESET);
}
} else { /* Neither ESP_HASNEXUS nor ESP_RESELECTED! */
printf("%s: unexpected message in; will send DEV_RESET\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_sched_msgout(SEND_DEV_RESET);
}
@@ -1308,7 +1307,7 @@ espintr(sc)
}
if (sc->sc_state != ESP_SBR) {
printf("%s: SCSI bus reset\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_init(sc, 0); /* Restart everything */
return 1;
}
@@ -1320,7 +1319,7 @@ espintr(sc)
#endif
if (sc->sc_nexus)
panic("%s: nexus in reset state",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
sc->sc_state = ESP_IDLE;
esp_sched(sc);
return 1;
@@ -1349,7 +1348,7 @@ espintr(sc)
if (sc->sc_espintr & ESPINTR_ILL) {
/* illegal command, out of sync ? */
printf("%s: illegal command: 0x%x (state %d, phase %x, prevphase %x)\n",
- sc->sc_dev.dv_xname, sc->sc_lastcmd,
+ device_get_nameunit(sc->sc_dev), sc->sc_lastcmd,
sc->sc_state, sc->sc_phase,
sc->sc_prevphase);
if (ESP_READ_REG(sc, ESP_FFLAG) & ESPFIFO_FF) {
@@ -1378,7 +1377,7 @@ espintr(sc)
(sc->sc_espstat & ESPSTAT_TC) == 0)
printf("%s: !TC [intr %x, stat %x, step %d]"
" prevphase %x, resid %x\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
sc->sc_espintr,
sc->sc_espstat,
sc->sc_espstep,
@@ -1388,7 +1387,7 @@ espintr(sc)
#if 0 /* Unreliable on some ESP revisions? */
if ((sc->sc_espstat & ESPSTAT_INT) == 0) {
- printf("%s: spurious interrupt\n", sc->sc_dev.dv_xname);
+ printf("%s: spurious interrupt\n", device_get_nameunit(sc->sc_dev));
return 1;
}
#endif
@@ -1398,7 +1397,7 @@ espintr(sc)
*/
if (sc->sc_espstat & ESPSTAT_PE) {
printf("%s: SCSI bus parity error\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
if (sc->sc_prevphase == MESSAGE_IN_PHASE)
esp_sched_msgout(SEND_PARITY_ERROR);
else
@@ -1447,7 +1446,7 @@ espintr(sc)
#if ESP_DEBUG
if ((esp_debug & 0x10000) && ecb->dleft == 0) {
printf("%s: silly disconnect (ecb %p [stat %x])\n",
- sc->sc_dev.dv_xname, ecb, ecb->stat);
+ device_get_nameunit(sc->sc_dev), ecb, ecb->stat);
}
#endif
esp_sched(sc);
@@ -1458,7 +1457,7 @@ if ((esp_debug & 0x10000) && ecb->dleft == 0) {
return 1;
}
printf("%s: DISCONNECT in IDLE state!\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
}
/* did a message go out OK ? This must be broken */
@@ -1481,7 +1480,7 @@ printf("target put in SYNC mode\n");
case ESP_SBR:
printf("%s: waiting for SCSI Bus Reset to happen\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
return 1;
case ESP_RESELECTED:
@@ -1490,7 +1489,7 @@ printf("target put in SYNC mode\n");
*/
if (sc->sc_phase != MESSAGE_IN_PHASE) {
printf("%s: target didn't identify\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_init(sc, 1);
return 1;
}
@@ -1500,7 +1499,7 @@ printf("<<RESELECT CONT'd>>");
if (sc->sc_state != ESP_HASNEXUS) {
/* IDENTIFY fail?! */
printf("%s: identify failed\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_init(sc, 1);
return 1;
}
@@ -1534,13 +1533,13 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
* Pull the brakes, i.e. reset
*/
printf("%s: target didn't identify\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_init(sc, 1);
return 1;
}
if ((ESP_READ_REG(sc, ESP_FFLAG) & ESPFIFO_FF) != 2) {
printf("%s: RESELECT: %d bytes in FIFO!\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
ESP_READ_REG(sc, ESP_FFLAG) &
ESPFIFO_FF);
esp_init(sc, 1);
@@ -1553,7 +1552,7 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
if (sc->sc_state != ESP_HASNEXUS) {
/* IDENTIFY fail?! */
printf("%s: identify failed\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_init(sc, 1);
return 1;
}
@@ -1572,19 +1571,19 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
switch (sc->sc_espstep) {
case 0:
printf("%s: select timeout/no disconnect\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_abort(sc, ecb);
return 1;
case 1:
if ((ti->flags & T_NEGOTIATE) == 0) {
printf("%s: step 1 & !NEG\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_abort(sc, ecb);
return 1;
}
if (sc->sc_phase != MESSAGE_OUT_PHASE) {
printf("%s: !MSGOUT\n",
- sc->sc_dev.dv_xname);
+ device_get_nameunit(sc->sc_dev));
esp_abort(sc, ecb);
return 1;
}
@@ -1611,7 +1610,7 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
printf("(%s:%d:%d): selection failed;"
" %d left in FIFO "
"[intr %x, stat %x, step %d]\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
sc_link->target,
sc_link->lun,
ESP_READ_REG(sc, ESP_FFLAG) & ESPFIFO_FF,
@@ -1649,7 +1648,7 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
} else {
printf("%s: unexpected status after select"
": [intr %x, stat %x, step %x]\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
sc->sc_espintr, sc->sc_espstat,
sc->sc_espstep);
ESPCMD(sc, ESPCMD_FLUSH);
@@ -1657,8 +1656,9 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
esp_abort(sc, ecb);
}
if (sc->sc_state == ESP_IDLE) {
- printf("%s: stray interrupt\n", sc->sc_dev.dv_xname);
- return 0;
+ printf("%s: stray interrupt\n",
+ device_get_nameunit(sc->sc_dev));
+ return 0;
}
break;
@@ -1671,14 +1671,14 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
if (!(sc->sc_espintr & ESPINTR_DONE)) {
printf("%s: ICCS: "
": [intr %x, stat %x, step %x]\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
sc->sc_espintr, sc->sc_espstat,
sc->sc_espstep);
}
if ((ESP_READ_REG(sc, ESP_FFLAG) & ESPFIFO_FF) != 2) {
printf("%s: ICCS: expected 2, got %d "
": [intr %x, stat %x, step %x]\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
ESP_READ_REG(sc, ESP_FFLAG) & ESPFIFO_FF,
sc->sc_espintr, sc->sc_espstat,
sc->sc_espstep);
@@ -1694,15 +1694,14 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
ecb->xs->resid = ecb->dleft = sc->sc_dleft;
} else
printf("%s: STATUS_PHASE: msg %d\n",
- sc->sc_dev.dv_xname, msg);
+ device_get_nameunit(sc->sc_dev), msg);
ESPCMD(sc, ESPCMD_MSGOK);
continue; /* ie. wait for disconnect */
}
break;
default:
panic("%s: invalid state: %d",
- sc->sc_dev.dv_xname,
- sc->sc_state);
+ device_get_nameunit(sc->sc_dev), sc->sc_state);
}
/*
@@ -1729,7 +1728,7 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
if ((sc->sc_flags & ESP_WAITI) == 0) {
printf("%s: MSGIN: unexpected FC bit: "
"[intr %x, stat %x, step %x]\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
sc->sc_espintr, sc->sc_espstat,
sc->sc_espstep);
}
@@ -1738,7 +1737,7 @@ if (sc->sc_flags & ESP_ICCS) printf("[[esp: BUMMER]]");
} else {
printf("%s: MSGIN: weird bits: "
"[intr %x, stat %x, step %x]\n",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
sc->sc_espintr, sc->sc_espstat,
sc->sc_espstep);
}
@@ -1850,7 +1849,7 @@ esp_timeout(arg)
again:
printf("%s: timed out [ecb %p (flags 0x%x, dleft %x, stat %x)], "
"<state %d, nexus %p, phase(c %x, p %x), resid %x, msg(q %x,o %x) %s>",
- sc->sc_dev.dv_xname,
+ device_get_nameunit(sc->sc_dev),
ecb, ecb->flags, ecb->dleft, ecb->stat,
sc->sc_state, sc->sc_nexus, sc->sc_phase, sc->sc_prevphase,
sc->sc_dleft, sc->sc_msgpriq, sc->sc_msgout,
OpenPOWER on IntegriCloud