diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2001-07-13 03:24:21 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2001-07-13 03:24:21 +0000 |
commit | 9b780008fd11a67852f11350e72d9671e4035b8e (patch) | |
tree | 493210c25b2a5370d2a107280d8b060b2d6d61dc /sys/dev | |
parent | ef4896e73139a0b31cd932f36e898c00779e7585 (diff) |
Remove static'ness of functions in line with normal OpenBSD
preferences.
Rename tul_* functions/variables iha_* for consistancy, since all are
now visible.
As updating the EEPROM did not work, don't try. Remove now unused
static dftNvram variable, and functions used only in trying to write
it to EEPROM.
Make iha_rate_tbl a const.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/ic/iha.c | 1004 | ||||
-rw-r--r-- | sys/dev/ic/iha.h | 10 | ||||
-rw-r--r-- | sys/dev/pci/iha_pci.c | 10 |
3 files changed, 424 insertions, 600 deletions
diff --git a/sys/dev/ic/iha.c b/sys/dev/ic/iha.c index 46789691ce9..9888fb4ec1e 100644 --- a/sys/dev/ic/iha.c +++ b/sys/dev/ic/iha.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.c,v 1.6 2001/07/10 23:30:39 krw Exp $ */ +/* $OpenBSD: iha.c,v 1.7 2001/07/13 03:24:20 krw Exp $ */ /* * Initio INI-9xxxU/UW SCSI Device Driver * @@ -78,7 +78,7 @@ struct scsi_device iha_dev = { * SCSI Rate Table, indexed by FLAG_SCSI_RATE field of * TCS_Flags. */ -static u_int8_t tul_rate_tbl[8] = { +static const u_int8_t iha_rate_tbl[8] = { /* fast 20 */ /* nanosecond divide by 4 */ 12, /* 50ns, 20M */ @@ -91,178 +91,95 @@ static u_int8_t tul_rate_tbl[8] = { 62 /* 250ns, 4M */ }; -static struct nvram tul_nvram; - -static u_int8_t tul_dftNvRam[64] = { - /* -- Header ------------------------------------ */ - 0x25, 0xc9, /* NVM_Signature */ - 0x40, /* NVM_Size */ - 0x01, /* NVM_Revision */ - - /* -- Host Adapter Structure -------------------- */ - 0x95, /* NVM_ModelByte0 */ - 0x00, /* NVM_ModelByte1 */ - 0x00, /* NVM_ModelInfo */ - 0x01, /* NVM_NumOfCh */ - BIOSCFG_DEFAULT, /* NVM_BIOSConfig1 */ - 0, /* NVM_BIOSConfig2 */ - 0, /* NVM_HAConfig1 */ - 0, /* NVM_HAConfig2 */ - - /* -- NVM_Scsi[0] ------------------------------- */ - 7, /* NVM_SCSI_Id */ - CFG_DEFAULT, /* NVM_SCSI_Cfg */ - 0, /* NVM_SCSI_CfgByte2 */ - 8, /* NVM_SCSI_Targets */ - /* NVM_SCSI_TargetFlags */ - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - - /* -- NVM_Scsi[1] ------------------------------- */ - 7, /* NVM_SCSI_Id */ - CFG_DEFAULT, /* NVM_SCSI_Cfg */ - 0, /* NVM_SCSI_CfgByte2 */ - 8, /* NVM_SCSI_Targets */ - /* NVM_SCSI_TargetFlags */ - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, FLAG_DEFAULT, - - 0,0,0,0,0,0,0,0,0,0, /* NVM_Reserved[10] */ - 0,0 /* NVM_CheckSum */ -}; - -static u_int8_t tul_data_over_run __P((struct iha_scsi_req_q *)); - -static void tul_push_sense_request __P((struct iha_softc *, - struct iha_scsi_req_q *)); -static void tul_timeout __P((void *)); -static int tul_alloc_scbs __P((struct iha_softc *)); - -static void tul_read_eeprom __P((bus_space_tag_t, bus_space_handle_t)); -static void tul_se2_update_all __P((bus_space_tag_t, bus_space_handle_t)); -static int tul_se2_rd_all __P((bus_space_tag_t, bus_space_handle_t)); -static void tul_se2_wr __P((bus_space_tag_t, bus_space_handle_t, - u_int8_t, u_int16_t)); -static void tul_se2_instr __P((bus_space_tag_t, bus_space_handle_t, - u_int8_t)); -static u_int16_t tul_se2_rd __P((bus_space_tag_t, bus_space_handle_t, - u_int8_t)); - -static void tul_reset_scsi_bus __P((struct iha_softc *)); -static void tul_reset_chip __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static void tul_reset_dma __P((bus_space_tag_t, bus_space_handle_t)); - -static void tul_reset_tcs __P((struct tcs *, u_int8_t)); - -static void tul_print_info __P((struct iha_softc *, int)); - -static void tul_done_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); -static void tul_exec_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); - -static void tul_main __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static void tul_scsi __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); - -static int tul_wait __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t, u_int8_t)); - -static void tul_mark_busy_scb __P((struct iha_scsi_req_q *)); - -static void tul_append_free_scb __P((struct iha_softc *, - struct iha_scsi_req_q *)); -static struct iha_scsi_req_q *tul_pop_free_scb __P((struct iha_softc *)); - -static void tul_append_done_scb __P((struct iha_softc *, - struct iha_scsi_req_q *, u_int8_t)); -static struct iha_scsi_req_q *tul_pop_done_scb __P((struct iha_softc *)); - -static void tul_append_pend_scb __P((struct iha_softc *, - struct iha_scsi_req_q *)); -static void tul_push_pend_scb __P((struct iha_softc *, - struct iha_scsi_req_q *)); -static void tul_del_pend_scb __P((struct iha_softc *, - struct iha_scsi_req_q *)); -static struct iha_scsi_req_q *tul_find_pend_scb __P((struct iha_softc *)); - -static void tul_sync_done __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static void tul_wide_done __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static void tul_bad_seq __P((struct iha_softc *)); - -static int tul_next_state __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_1 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_2 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_3 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_4 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_5 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_6 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_state_8 __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); - -static void tul_set_ssig __P((bus_space_tag_t, - bus_space_handle_t, u_int8_t, u_int8_t)); - -static int tul_xpad_in __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_xpad_out __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); - -static int tul_xfer_data __P((struct iha_scsi_req_q *, - bus_space_tag_t, bus_space_handle_t, - int direction)); - -static int tul_status_msg __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); - -static int tul_msgin __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_msgin_sdtr __P((struct iha_softc *)); -static int tul_msgin_extended __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_msgin_ignore_wid_resid __P((struct iha_softc *, - bus_space_tag_t, - bus_space_handle_t)); - -static int tul_msgout __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t, - u_int8_t)); -static int tul_msgout_extended __P((struct iha_softc *, +static struct iha_nvram iha_nvram; + +u_int8_t iha_data_over_run __P((struct iha_scsi_req_q *)); +void iha_push_sense_request __P((struct iha_softc *, struct iha_scsi_req_q *)); +void iha_timeout __P((void *)); +int iha_alloc_scbs __P((struct iha_softc *)); +void iha_read_eeprom __P((bus_space_tag_t, bus_space_handle_t)); +int iha_se2_rd_all __P((bus_space_tag_t, bus_space_handle_t)); +void iha_se2_instr __P((bus_space_tag_t, bus_space_handle_t, u_int8_t)); +u_int16_t iha_se2_rd __P((bus_space_tag_t, bus_space_handle_t, u_int8_t)); +void iha_reset_scsi_bus __P((struct iha_softc *)); +void iha_reset_chip __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +void iha_reset_dma __P((bus_space_tag_t, bus_space_handle_t)); +void iha_reset_tcs __P((struct tcs *, u_int8_t)); +void iha_print_info __P((struct iha_softc *, int)); +void iha_done_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); +void iha_exec_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); +void iha_main __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t)); +void iha_scsi __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t)); +int iha_wait __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t, + u_int8_t)); +void iha_mark_busy_scb __P((struct iha_scsi_req_q *)); +void iha_append_free_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); +struct iha_scsi_req_q *iha_pop_free_scb __P((struct iha_softc *)); +void iha_append_done_scb __P((struct iha_softc *, struct iha_scsi_req_q *, + u_int8_t)); +struct iha_scsi_req_q *iha_pop_done_scb __P((struct iha_softc *)); +void iha_append_pend_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); +void iha_push_pend_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); +void iha_del_pend_scb __P((struct iha_softc *, struct iha_scsi_req_q *)); +struct iha_scsi_req_q *iha_find_pend_scb __P((struct iha_softc *)); +void iha_sync_done __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +void iha_wide_done __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +void iha_bad_seq __P((struct iha_softc *)); +int iha_next_state __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_1 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_2 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_3 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_4 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_5 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_6 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_state_8 __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +void iha_set_ssig __P((bus_space_tag_t, + bus_space_handle_t, u_int8_t, u_int8_t)); +int iha_xpad_in __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_xpad_out __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_xfer_data __P((struct iha_scsi_req_q *, + bus_space_tag_t, bus_space_handle_t, + int direction)); +int iha_status_msg __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_msgin __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t)); +int iha_msgin_sdtr __P((struct iha_softc *)); +int iha_msgin_extended __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_msgin_ignore_wid_resid __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t)); -static void tul_msgout_abort __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t, - u_int8_t)); -static int tul_msgout_reject __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_msgout_sdtr __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_msgout_wdtr __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); - -static void tul_select __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t, - struct iha_scsi_req_q *, u_int8_t)); - -static void tul_busfree __P((struct iha_softc *, - bus_space_tag_t, bus_space_handle_t)); -static int tul_resel __P((struct iha_softc *, +int iha_msgout __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t, u_int8_t)); +int iha_msgout_extended __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t)); - -static void tul_abort_xs __P((struct iha_softc *, - struct scsi_xfer *, u_int8_t)); +void iha_msgout_abort __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t, u_int8_t)); +int iha_msgout_reject __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_msgout_sdtr __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_msgout_wdtr __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +void iha_select __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t, + struct iha_scsi_req_q *, u_int8_t)); +void iha_busfree __P((struct iha_softc *, + bus_space_tag_t, bus_space_handle_t)); +int iha_resel __P((struct iha_softc *, bus_space_tag_t, bus_space_handle_t)); +void iha_abort_xs __P((struct iha_softc *, struct scsi_xfer *, u_int8_t)); /* * iha_intr - the interrupt service routine for the iha driver @@ -290,7 +207,7 @@ iha_intr(arg) bus_space_write_1(iot, ioh, TUL_IMSK, MASK_ALL); sc->HCS_Semaph = SEMAPH_IN_MAIN; - tul_main(sc, iot, ioh); + iha_main(sc, iot, ioh); sc->HCS_Semaph = ~SEMAPH_IN_MAIN; bus_space_write_1(iot, ioh, TUL_IMSK, (MASK_ALL & ~MSCMP)); @@ -322,7 +239,7 @@ iha_scsi_cmd(xs) return (COMPLETE); } - pScb = tul_pop_free_scb(sc); + pScb = iha_pop_free_scb(sc); if (pScb == NULL) { /* XXX - different xs->error/return if * SCSI_POLL/_NOSLEEP? */ @@ -369,7 +286,7 @@ iha_scsi_cmd(xs) printf("%s: error %d loading dma map\n", sc->sc_dev.dv_xname, error); - tul_append_free_scb(sc, pScb); + iha_append_free_scb(sc, pScb); xs->error = XS_DRIVER_STUFFUP; return (COMPLETE); @@ -406,11 +323,11 @@ iha_scsi_cmd(xs) * contain garbage that confuses timeout_del() later on. * But, timeout_add() ONLY if we are not polling. */ - timeout_set(&xs->stimeout, tul_timeout, pScb); + timeout_set(&xs->stimeout, iha_timeout, pScb); if ((xs->flags & SCSI_POLL) == 0) timeout_add(&xs->stimeout, (xs->timeout/1000) * hz); - tul_exec_scb(sc, pScb); + iha_exec_scb(sc, pScb); if ((xs->flags & ITSDONE) == 0) return (SUCCESSFULLY_QUEUED); @@ -428,16 +345,16 @@ iha_init_tulip(sc) { struct iha_scsi_req_q *pScb; bus_space_handle_t ioh; - struct nvram_scsi *pScsi; + struct iha_nvram_scsi *pScsi; bus_space_tag_t iot; int i, error; iot = sc->sc_iot; ioh = sc->sc_ioh; - tul_read_eeprom(iot, ioh); + iha_read_eeprom(iot, ioh); - pScsi = &tul_nvram.NVM_Scsi[0]; + pScsi = &iha_nvram.NVM_Scsi[0]; /* * fill in the prototype scsi_link. @@ -460,7 +377,7 @@ iha_init_tulip(sc) TAILQ_INIT(&sc->HCS_PendScb); TAILQ_INIT(&sc->HCS_DoneScb); - error = tul_alloc_scbs(sc); + error = iha_alloc_scbs(sc); if (error != 0) return (error); @@ -492,7 +409,7 @@ iha_init_tulip(sc) bus_space_write_1(iot, ioh, TUL_IMSK, MASK_ALL); /* Stop any I/O and reset the scsi module */ - tul_reset_dma(iot, ioh); + iha_reset_dma(iot, ioh); bus_space_write_1(iot, ioh, TUL_SCTRL0, RSMOD); /* Program HBA's SCSI ID */ @@ -500,7 +417,7 @@ iha_init_tulip(sc) /* * Configure the channel as requested by the NVRAM settings read - * into tul_nvram by tul_read_eeprom() above. + * into iha_nvram by iha_read_eeprom() above. */ if ((pScsi->NVM_SCSI_Cfg & CFG_EN_PAR) != 0) @@ -522,10 +439,10 @@ iha_init_tulip(sc) for (i = 0; i < IHA_MAX_TARGETS; i++) { sc->HCS_Tcs[i].TCS_Flags = pScsi->NVM_SCSI_TargetFlags[i]; - tul_reset_tcs(&sc->HCS_Tcs[i], sc->HCS_SConf1); + iha_reset_tcs(&sc->HCS_Tcs[i], sc->HCS_SConf1); } - tul_reset_chip(sc, iot, ioh); + iha_reset_chip(sc, iot, ioh); bus_space_write_1(iot, ioh, TUL_SIEN, ALL_INTERRUPTS); return (0); @@ -548,10 +465,10 @@ iha_minphys(bp) } /* - * tul_reset_dma - abort any active DMA xfer, reset tulip FIFO. + * iha_reset_dma - abort any active DMA xfer, reset tulip FIFO. */ -static void -tul_reset_dma(iot, ioh) +void +iha_reset_dma(iot, ioh) bus_space_tag_t iot; bus_space_handle_t ioh; { @@ -567,10 +484,10 @@ tul_reset_dma(iot, ioh) } /* - * tul_pop_free_scb - return the first free SCB, or NULL if there are none. + * iha_pop_free_scb - return the first free SCB, or NULL if there are none. */ -static struct iha_scsi_req_q * -tul_pop_free_scb(sc) +struct iha_scsi_req_q * +iha_pop_free_scb(sc) struct iha_softc *sc; { struct iha_scsi_req_q *pScb; @@ -591,12 +508,12 @@ tul_pop_free_scb(sc) } /* - * tul_append_free_scb - append the supplied SCB to the tail of the + * iha_append_free_scb - append the supplied SCB to the tail of the * HCS_FreeScb queue after clearing and resetting * everything possible. */ -static void -tul_append_free_scb(sc, pScb) +void +iha_append_free_scb(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -646,8 +563,8 @@ tul_append_free_scb(sc, pScb) splx(s); } -static void -tul_append_pend_scb(sc, pScb) +void +iha_append_pend_scb(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -661,8 +578,8 @@ tul_append_pend_scb(sc, pScb) TAILQ_INSERT_TAIL(&sc->HCS_PendScb, pScb, SCB_ScbList); } -static void -tul_push_pend_scb(sc, pScb) +void +iha_push_pend_scb(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -681,13 +598,13 @@ tul_push_pend_scb(sc, pScb) } /* - * tul_find_pend_scb - scan the pending queue for a SCB that can be + * iha_find_pend_scb - scan the pending queue for a SCB that can be * processed immediately. Return NULL if none found * and a pointer to the SCB if one is found. If there * is an active SCB, return NULL! */ -static struct iha_scsi_req_q * -tul_find_pend_scb(sc) +struct iha_scsi_req_q * +iha_find_pend_scb(sc) struct iha_softc *sc; { struct iha_scsi_req_q *pScb; @@ -742,10 +659,10 @@ tul_find_pend_scb(sc) } /* - * tul_del_pend_scb - remove pScb from HCS_PendScb + * iha_del_pend_scb - remove pScb from HCS_PendScb */ -static void -tul_del_pend_scb(sc, pScb) +void +iha_del_pend_scb(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -758,8 +675,8 @@ tul_del_pend_scb(sc, pScb) splx(s); } -static void -tul_mark_busy_scb(pScb) +void +iha_mark_busy_scb(pScb) struct iha_scsi_req_q *pScb; { int s; @@ -776,8 +693,8 @@ tul_mark_busy_scb(pScb) splx(s); } -static void -tul_append_done_scb(sc, pScb, hastat) +void +iha_append_done_scb(sc, pScb, hastat) struct iha_softc *sc; struct iha_scsi_req_q *pScb; u_int8_t hastat; @@ -809,8 +726,8 @@ tul_append_done_scb(sc, pScb, hastat) splx(s); } -static struct iha_scsi_req_q * -tul_pop_done_scb(sc) +struct iha_scsi_req_q * +iha_pop_done_scb(sc) struct iha_softc *sc; { struct iha_scsi_req_q *pScb; @@ -831,12 +748,12 @@ tul_pop_done_scb(sc) } /* - * tul_abort_xs - find the SCB associated with the supplied xs and + * iha_abort_xs - find the SCB associated with the supplied xs and * stop all processing on it, moving it to the done * queue with the supplied host status value. */ -static void -tul_abort_xs(sc, xs, hastat) +void +iha_abort_xs(sc, xs, hastat) struct iha_softc *sc; struct scsi_xfer *xs; u_int8_t hastat; @@ -850,8 +767,8 @@ tul_abort_xs(sc, xs, hastat) TAILQ_FOREACH(pScb, &sc->HCS_PendScb, SCB_ScbList) if (pScb->SCB_Xs == xs) { - tul_del_pend_scb(sc, pScb); - tul_append_done_scb(sc, pScb, hastat); + iha_del_pend_scb(sc, pScb); + iha_append_done_scb(sc, pScb, hastat); splx(s); return; } @@ -866,7 +783,7 @@ tul_abort_xs(sc, xs, hastat) case STATUS_BUSY: case STATUS_SELECT: if (pScb->SCB_Xs == xs) { - tul_append_done_scb(sc, pScb, hastat); + iha_append_done_scb(sc, pScb, hastat); splx(s); return; } @@ -879,29 +796,29 @@ tul_abort_xs(sc, xs, hastat) } /* - * tul_bad_seq - a SCSI bus phase was encountered out of the + * iha_bad_seq - a SCSI bus phase was encountered out of the * correct/expected sequence. Reset the SCSI bus. */ -static void -tul_bad_seq(sc) +void +iha_bad_seq(sc) struct iha_softc *sc; { struct iha_scsi_req_q *pScb = sc->HCS_ActScb; if (pScb != NULL) - tul_append_done_scb(sc, pScb, HOST_BAD_PHAS); + iha_append_done_scb(sc, pScb, HOST_BAD_PHAS); - tul_reset_scsi_bus(sc); - tul_reset_chip(sc, sc->sc_iot, sc->sc_ioh); + iha_reset_scsi_bus(sc); + iha_reset_chip(sc, sc->sc_iot, sc->sc_ioh); } /* - * tul_push_sense_request - obtain auto sense data by pushing the + * iha_push_sense_request - obtain auto sense data by pushing the * SCB needing it back onto the pending * queue with a REQUEST_SENSE CDB. */ -static void -tul_push_sense_request(sc, pScb) +void +iha_push_sense_request(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -926,17 +843,17 @@ tul_push_sense_request(sc, pScb) timeout_add(&pScb->SCB_Xs->stimeout, (pScb->SCB_Timeout/1000) * hz); - tul_push_pend_scb(sc, pScb); + iha_push_pend_scb(sc, pScb); } /* - * tul_main - process the active SCB, taking one off pending and making it + * iha_main - process the active SCB, taking one off pending and making it * active if necessary, and any done SCB's created as * a result until there are no interrupts pending and no pending * SCB's that can be started. */ -static void -tul_main(sc, iot, ioh) +void +iha_main(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -944,10 +861,10 @@ tul_main(sc, iot, ioh) struct iha_scsi_req_q *pScb; for (;;) { -tul_scsi_label: - tul_scsi(sc, iot, ioh); +iha_scsi_label: + iha_scsi(sc, iot, ioh); - while ((pScb = tul_pop_done_scb(sc)) != NULL) { + while ((pScb = iha_pop_done_scb(sc)) != NULL) { switch (pScb->SCB_TaStat) { case SCSI_CMD_TERMINATED: @@ -961,8 +878,8 @@ tul_scsi_label: pScb->SCB_HaStat = HOST_BAD_PHAS; else { - tul_push_sense_request(sc, pScb); - goto tul_scsi_label; + iha_push_sense_request(sc, pScb); + goto iha_scsi_label; } break; @@ -977,27 +894,27 @@ tul_scsi_label: break; } - tul_done_scb(sc, pScb); + iha_done_scb(sc, pScb); } /* * If there are no interrupts pending, or we can't start * a pending sc, break out of the for(;;). Otherwise * continue the good work with another call to - * tul_scsi(). + * iha_scsi(). */ if (((bus_space_read_1(iot, ioh, TUL_STAT0) & INTPD) == 0) - && (tul_find_pend_scb(sc) == NULL)) + && (iha_find_pend_scb(sc) == NULL)) break; } } /* - * tul_scsi - service any outstanding interrupts. If there are none, try to + * iha_scsi - service any outstanding interrupts. If there are none, try to * start another SCB currently in the pending queue. */ -static void -tul_scsi(sc, iot, ioh) +void +iha_scsi(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1017,34 +934,34 @@ tul_scsi(sc, iot, ioh) sc->HCS_Phase = sc->HCS_JSStatus0 & PH_MASK; if ((sc->HCS_JSInt & SRSTD) != 0) { - tul_reset_scsi_bus(sc); + iha_reset_scsi_bus(sc); return; } if ((sc->HCS_JSInt & RSELED) != 0) { - tul_resel(sc, iot, ioh); + iha_resel(sc, iot, ioh); return; } if ((sc->HCS_JSInt & (STIMEO | DISCD)) != 0) { - tul_busfree(sc, iot, ioh); + iha_busfree(sc, iot, ioh); return; } if ((sc->HCS_JSInt & (SCMDN | SBSRV)) != 0) { - tul_next_state(sc, iot, ioh); + iha_next_state(sc, iot, ioh); return; } if ((sc->HCS_JSInt & SELED) != 0) - tul_set_ssig(iot, ioh, 0, 0); + iha_set_ssig(iot, ioh, 0, 0); } /* * There were no interrupts pending which required action elsewhere, so * see if it is possible to start the selection phase on a pending SCB */ - if ((pScb = tul_find_pend_scb(sc)) == NULL) + if ((pScb = iha_find_pend_scb(sc)) == NULL) return; pTcs = pScb->SCB_Tcs; @@ -1059,24 +976,24 @@ tul_scsi(sc, iot, ioh) if (((pTcs->TCS_Flags & FLAG_NO_NEG_WIDE) == 0) || ((pTcs->TCS_Flags & FLAG_NO_NEG_SYNC) == 0)) - tul_select(sc, iot, ioh, pScb, SELATNSTOP); + iha_select(sc, iot, ioh, pScb, SELATNSTOP); else if (pScb->SCB_TagMsg != 0) - tul_select(sc, iot, ioh, pScb, SEL_ATN3); + iha_select(sc, iot, ioh, pScb, SEL_ATN3); else - tul_select(sc, iot, ioh, pScb, SEL_ATN); + iha_select(sc, iot, ioh, pScb, SEL_ATN); } else { - tul_select(sc, iot, ioh, pScb, SELATNSTOP); + iha_select(sc, iot, ioh, pScb, SELATNSTOP); pScb->SCB_NxtStat = 8; } if ((pScb->SCB_Flags & SCSI_POLL) != 0) { for (; pScb->SCB_Timeout > 0; pScb->SCB_Timeout--) { - if (tul_wait(sc, iot, ioh, NO_OP) == -1) + if (iha_wait(sc, iot, ioh, NO_OP) == -1) break; - if (tul_next_state(sc, iot, ioh) == -1) + if (iha_next_state(sc, iot, ioh) == -1) break; delay(1000); /* Only happens in boot, so it's ok */ } @@ -1089,18 +1006,18 @@ tul_scsi(sc, iot, ioh) * Conversely, xs->error has not been set yet */ if (pScb->SCB_Timeout == 0) - tul_timeout(pScb); + iha_timeout(pScb); else if ((pScb->SCB_CDB[0] == INQUIRY) && (pScb->SCB_Lun == 0) && (pScb->SCB_HaStat == HOST_OK) && (pScb->SCB_TaStat == SCSI_OK)) - tul_print_info(sc, pScb->SCB_Target); + iha_print_info(sc, pScb->SCB_Target); } } /* - * tul_data_over_run - return HOST_OK for all SCSI opcodes where BufLen + * iha_data_over_run - return HOST_OK for all SCSI opcodes where BufLen * is an 'Allocation Length'. All other SCSI opcodes * get HOST_DO_DU as they SHOULD have xferred all the * data requested. @@ -1109,8 +1026,8 @@ tul_scsi(sc, iot, ioh) * found by scanning all the SCSI-3 T10 drafts. See * www.t10.org for the curious with a .pdf reader. */ -static u_int8_t -tul_data_over_run(pScb) +u_int8_t +iha_data_over_run(pScb) struct iha_scsi_req_q *pScb; { switch (pScb->SCB_CDB[0]) { @@ -1161,11 +1078,11 @@ tul_data_over_run(pScb) } /* - * tul_next_state - prcess the current SCB as requested in it's + * iha_next_state - prcess the current SCB as requested in it's * SCB_NxtStat member. */ -static int -tul_next_state(sc, iot, ioh) +int +iha_next_state(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1175,12 +1092,12 @@ tul_next_state(sc, iot, ioh) switch (sc->HCS_ActScb->SCB_NxtStat) { case 1: - if (tul_state_1(sc, iot, ioh) == 3) + if (iha_state_1(sc, iot, ioh) == 3) goto state_3; break; case 2: - switch (tul_state_2(sc, iot, ioh)) { + switch (iha_state_2(sc, iot, ioh)) { case 3: goto state_3; case 4: goto state_4; default: break; @@ -1189,13 +1106,13 @@ tul_next_state(sc, iot, ioh) case 3: state_3: - if (tul_state_3(sc, iot, ioh) == 4) + if (iha_state_3(sc, iot, ioh) == 4) goto state_4; break; case 4: state_4: - switch (tul_state_4(sc, iot, ioh)) { + switch (iha_state_4(sc, iot, ioh)) { case 0: return (0); case 6: goto state_6; default: break; @@ -1203,7 +1120,7 @@ tul_next_state(sc, iot, ioh) break; case 5: - switch (tul_state_5(sc, iot, ioh)) { + switch (iha_state_5(sc, iot, ioh)) { case 4: goto state_4; case 6: goto state_6; default: break; @@ -1212,11 +1129,11 @@ tul_next_state(sc, iot, ioh) case 6: state_6: - tul_state_6(sc, iot, ioh); + iha_state_6(sc, iot, ioh); break; case 8: - tul_state_8(sc, iot, ioh); + iha_state_8(sc, iot, ioh); break; default: @@ -1224,7 +1141,7 @@ tul_next_state(sc, iot, ioh) printf("[debug] -unknown state: %i-\n", sc->HCS_ActScb->SCB_NxtStat); #endif - tul_bad_seq(sc); + iha_bad_seq(sc); break; } @@ -1232,13 +1149,13 @@ tul_next_state(sc, iot, ioh) } /* - * tul_state_1 - selection is complete after a SELATNSTOP. If the target + * iha_state_1 - selection is complete after a SELATNSTOP. If the target * has put the bus into MSG_OUT phase start wide/sync * negotiation. Otherwise clear the FIFO and go to state 3, * which will send the SCSI CDB to the target. */ -static int -tul_state_1(sc, iot, ioh) +int +iha_state_1(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1247,7 +1164,7 @@ tul_state_1(sc, iot, ioh) struct tcs *pTcs; u_int16_t flags; - tul_mark_busy_scb(pScb); + iha_mark_busy_scb(pScb); pTcs = pScb->SCB_Tcs; @@ -1277,36 +1194,36 @@ tul_state_1(sc, iot, ioh) flags = pTcs->TCS_Flags; if ((flags & FLAG_NO_NEG_WIDE) == 0) { - if (tul_msgout_wdtr(sc, iot, ioh) == -1) + if (iha_msgout_wdtr(sc, iot, ioh) == -1) return (-1); } else if ((flags & FLAG_NO_NEG_SYNC) == 0) { - if (tul_msgout_sdtr(sc, iot, ioh) == -1) + if (iha_msgout_sdtr(sc, iot, ioh) == -1) return (-1); } } else { bus_space_write_1(iot, ioh, TUL_SCTRL0, RSFIFO); - tul_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); + iha_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); } return (3); } /* - * tul_state_2 - selection is complete after a SEL_ATN or SEL_ATN3. If the SCSI + * iha_state_2 - selection is complete after a SEL_ATN or SEL_ATN3. If the SCSI * CDB has already been send, go to state 4 to start the data * xfer. Otherwise reset the FIFO and go to state 3, sending * the SCSI CDB. */ -static int -tul_state_2(sc, iot, ioh) +int +iha_state_2(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; { struct iha_scsi_req_q *pScb = sc->HCS_ActScb; - tul_mark_busy_scb(pScb); + iha_mark_busy_scb(pScb); bus_space_write_1(iot, ioh, TUL_SCONFIG0, pScb->SCB_Tcs->TCS_SConfig0); @@ -1315,18 +1232,18 @@ tul_state_2(sc, iot, ioh) bus_space_write_1(iot, ioh, TUL_SCTRL0, RSFIFO); - tul_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); + iha_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); return (3); } /* - * tul_state_3 - send the SCSI CDB to the target, processing any status + * iha_state_3 - send the SCSI CDB to the target, processing any status * or other messages received until that is done or * abandoned. */ -static int -tul_state_3(sc, iot, ioh) +int +iha_state_3(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1339,50 +1256,50 @@ tul_state_3(sc, iot, ioh) case PHASE_CMD_OUT: bus_space_write_multi_1(iot, ioh, TUL_SFIFO, pScb->SCB_CDB, pScb->SCB_CDBLen); - if (tul_wait(sc, iot, ioh, XF_FIFO_OUT) == -1) + if (iha_wait(sc, iot, ioh, XF_FIFO_OUT) == -1) return (-1); else if (sc->HCS_Phase == PHASE_CMD_OUT) { - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } else return (4); case PHASE_MSG_IN: pScb->SCB_NxtStat = 3; - if (tul_msgin(sc, iot, ioh) == -1) + if (iha_msgin(sc, iot, ioh) == -1) return (-1); break; case PHASE_STATUS_IN: - if (tul_status_msg(sc, iot, ioh) == -1) + if (iha_status_msg(sc, iot, ioh) == -1) return (-1); break; case PHASE_MSG_OUT: flags = pScb->SCB_Tcs->TCS_Flags; if ((flags & FLAG_NO_NEG_SYNC) != 0) { - if (tul_msgout(sc, iot, ioh, MSG_NOOP) == -1) + if (iha_msgout(sc, iot, ioh, MSG_NOOP) == -1) return (-1); - } else if (tul_msgout_sdtr(sc, iot, ioh) == -1) + } else if (iha_msgout_sdtr(sc, iot, ioh) == -1) return (-1); break; default: printf("[debug] -s3- bad phase = %d\n", sc->HCS_Phase); - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } } /* - * tul_state_4 - start a data xfer. Handle any bus state + * iha_state_4 - start a data xfer. Handle any bus state * transitions until PHASE_DATA_IN/_OUT * or the attempt is abandoned. If there is * no data to xfer, go to state 6 and finish * processing the current SCB. */ -static int -tul_state_4(sc, iot, ioh) +int +iha_state_4(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1399,14 +1316,14 @@ tul_state_4(sc, iot, ioh) switch (sc->HCS_Phase) { case PHASE_STATUS_IN: if ((pScb->SCB_Flags & FLAG_DIR) != 0) - pScb->SCB_HaStat = tul_data_over_run(pScb); - if ((tul_status_msg(sc, iot, ioh)) == -1) + pScb->SCB_HaStat = iha_data_over_run(pScb); + if ((iha_status_msg(sc, iot, ioh)) == -1) return (-1); break; case PHASE_MSG_IN: pScb->SCB_NxtStat = 4; - if (tul_msgin(sc, iot, ioh) == -1) + if (iha_msgin(sc, iot, ioh) == -1) return (-1); break; @@ -1414,38 +1331,38 @@ tul_state_4(sc, iot, ioh) if ((sc->HCS_JSStatus0 & SPERR) != 0) { pScb->SCB_BufLen = 0; pScb->SCB_HaStat = HOST_SPERR; - if (tul_msgout(sc, iot, ioh, + if (iha_msgout(sc, iot, ioh, MSG_INITIATOR_DET_ERR) == -1) return (-1); else return (6); } else { - if (tul_msgout(sc, iot, ioh, MSG_NOOP) == -1) + if (iha_msgout(sc, iot, ioh, MSG_NOOP) == -1) return (-1); } break; case PHASE_DATA_IN: - return (tul_xfer_data(pScb, iot, ioh, SCSI_DATA_IN)); + return (iha_xfer_data(pScb, iot, ioh, SCSI_DATA_IN)); case PHASE_DATA_OUT: - return (tul_xfer_data(pScb, iot, ioh, SCSI_DATA_OUT)); + return (iha_xfer_data(pScb, iot, ioh, SCSI_DATA_OUT)); default: - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } } } /* - * tul_state_5 - handle the partial or final completion of the current + * iha_state_5 - handle the partial or final completion of the current * data xfer. If DMA is still active stop it. If there is * more data to xfer, go to state 4 and start the xfer. * If not go to state 6 and finish the SCB. */ -static int -tul_state_5(sc, iot, ioh) +int +iha_state_5(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1496,7 +1413,7 @@ tul_state_5(sc, iot, ioh) } if ((cnt == 1) && (sc->HCS_Phase == PHASE_DATA_OUT)) { - if (tul_wait(sc, iot, ioh, XF_FIFO_OUT) == -1) + if (iha_wait(sc, iot, ioh, XF_FIFO_OUT) == -1) return (-1); cnt = 0; @@ -1541,12 +1458,12 @@ tul_state_5(sc, iot, ioh) } /* - * tul_state_6 - finish off the active scb (may require several + * iha_state_6 - finish off the active scb (may require several * iterations if PHASE_MSG_IN) and return -1 to indicate * the bus is free. */ -static int -tul_state_6(sc, iot, ioh) +int +iha_state_6(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1554,42 +1471,42 @@ tul_state_6(sc, iot, ioh) for (;;) switch (sc->HCS_Phase) { case PHASE_STATUS_IN: - if (tul_status_msg(sc, iot, ioh) == -1) + if (iha_status_msg(sc, iot, ioh) == -1) return (-1); break; case PHASE_MSG_IN: sc->HCS_ActScb->SCB_NxtStat = 6; - if ((tul_msgin(sc, iot, ioh)) == -1) + if ((iha_msgin(sc, iot, ioh)) == -1) return (-1); break; case PHASE_MSG_OUT: - if ((tul_msgout(sc, iot, ioh, MSG_NOOP)) == -1) + if ((iha_msgout(sc, iot, ioh, MSG_NOOP)) == -1) return (-1); break; case PHASE_DATA_IN: - if (tul_xpad_in(sc, iot, ioh) == -1) + if (iha_xpad_in(sc, iot, ioh) == -1) return (-1); break; case PHASE_DATA_OUT: - if (tul_xpad_out(sc, iot, ioh) == -1) + if (iha_xpad_out(sc, iot, ioh) == -1) return (-1); break; default: - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } } /* - * tul_state_8 - reset the active device and all busy SCBs using it + * iha_state_8 - reset the active device and all busy SCBs using it */ -static int -tul_state_8(sc, iot, ioh) +int +iha_state_8(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1604,21 +1521,21 @@ tul_state_8(sc, iot, ioh) pScb = sc->HCS_ActScb; /* This SCB finished correctly -- resetting the device */ - tul_append_done_scb(sc, pScb, HOST_OK); + iha_append_done_scb(sc, pScb, HOST_OK); - tul_reset_tcs(pScb->SCB_Tcs, sc->HCS_SConf1); + iha_reset_tcs(pScb->SCB_Tcs, sc->HCS_SConf1); tar = pScb->SCB_Target; for (i = 0, pScb = sc->HCS_Scb; i < IHA_MAX_SCB; i++, pScb++) if (pScb->SCB_Target == tar) switch (pScb->SCB_Status) { case STATUS_BUSY: - tul_append_done_scb(sc, + iha_append_done_scb(sc, pScb, HOST_DEV_RST); break; case STATUS_SELECT: - tul_push_pend_scb(sc, pScb); + iha_push_pend_scb(sc, pScb); break; default: @@ -1627,19 +1544,19 @@ tul_state_8(sc, iot, ioh) sc->HCS_Flags |= FLAG_EXPECT_DISC; - if (tul_wait(sc, iot, ioh, XF_FIFO_OUT) == -1) + if (iha_wait(sc, iot, ioh, XF_FIFO_OUT) == -1) return (-1); } - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } /* - * tul_xfer_data - initiate the DMA xfer of the data + * iha_xfer_data - initiate the DMA xfer of the data */ -static int -tul_xfer_data(pScb, iot, ioh, direction) +int +iha_xfer_data(pScb, iot, ioh, direction) struct iha_scsi_req_q *pScb; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1674,8 +1591,8 @@ tul_xfer_data(pScb, iot, ioh, direction) return (0); } -static int -tul_xpad_in(sc, iot, ioh) +int +iha_xpad_in(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1691,7 +1608,7 @@ tul_xpad_in(sc, iot, ioh) else bus_space_write_4(iot, ioh, TUL_STCNT0, 1); - switch (tul_wait(sc, iot, ioh, XF_FIFO_IN)) { + switch (iha_wait(sc, iot, ioh, XF_FIFO_IN)) { case -1: return (-1); @@ -1706,8 +1623,8 @@ tul_xpad_in(sc, iot, ioh) } } -static int -tul_xpad_out(sc, iot, ioh) +int +iha_xpad_out(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1725,7 +1642,7 @@ tul_xpad_out(sc, iot, ioh) bus_space_write_1(iot, ioh, TUL_SFIFO, 0); - switch (tul_wait(sc, iot, ioh, XF_FIFO_OUT)) { + switch (iha_wait(sc, iot, ioh, XF_FIFO_OUT)) { case -1: return (-1); @@ -1741,8 +1658,8 @@ tul_xpad_out(sc, iot, ioh) } } -static int -tul_status_msg(sc, iot, ioh) +int +iha_status_msg(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1751,7 +1668,7 @@ tul_status_msg(sc, iot, ioh) u_int8_t msg; int phase; - if ((phase = tul_wait(sc, iot, ioh, CMD_COMP)) == -1) + if ((phase = iha_wait(sc, iot, ioh, CMD_COMP)) == -1) return (-1); pScb = sc->HCS_ActScb; @@ -1766,56 +1683,56 @@ tul_status_msg(sc, iot, ioh) bus_space_write_1(iot, ioh, TUL_SFIFO, MSG_PARITY_ERROR); - return (tul_wait(sc, iot, ioh, XF_FIFO_OUT)); + return (iha_wait(sc, iot, ioh, XF_FIFO_OUT)); } else if (phase == PHASE_MSG_IN) { msg = bus_space_read_1(iot, ioh, TUL_SFIFO); if ((sc->HCS_JSStatus0 & SPERR) != 0) - switch (tul_wait(sc, iot, ioh, MSG_ACCEPT)) { + switch (iha_wait(sc, iot, ioh, MSG_ACCEPT)) { case -1: return (-1); case PHASE_MSG_OUT: bus_space_write_1(iot, ioh, TUL_SFIFO, MSG_PARITY_ERROR); - return (tul_wait(sc, iot, ioh, XF_FIFO_OUT)); + return (iha_wait(sc, iot, ioh, XF_FIFO_OUT)); default: - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } if (msg == MSG_CMDCOMPLETE) { if ((pScb->SCB_TaStat & (SCSI_INTERM | SCSI_BUSY)) == SCSI_INTERM) { - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } sc->HCS_Flags |= FLAG_EXPECT_DONE_DISC; bus_space_write_1(iot, ioh, TUL_SCTRL0, RSFIFO); - return (tul_wait(sc, iot, ioh, MSG_ACCEPT)); + return (iha_wait(sc, iot, ioh, MSG_ACCEPT)); } if ((msg == MSG_LINK_CMD_COMPLETE) || (msg == MSG_LINK_CMD_COMPLETEF)) { if ((pScb->SCB_TaStat & (SCSI_INTERM | SCSI_BUSY)) == SCSI_INTERM) - return (tul_wait(sc, iot, ioh, MSG_ACCEPT)); + return (iha_wait(sc, iot, ioh, MSG_ACCEPT)); } } - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } /* - * tul_busfree - SCSI bus free detected as a result of a TIMEOUT or + * iha_busfree - SCSI bus free detected as a result of a TIMEOUT or * DISCONNECT interrupt. Reset the tulip FIFO and * SCONFIG0 and enable hardware reselect. Move any active * SCB to HCS_DoneScb list. Return an appropriate host status * if an I/O was active. */ -static void -tul_busfree(sc, iot, ioh) +void +iha_busfree(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1831,16 +1748,16 @@ tul_busfree(sc, iot, ioh) if (pScb != NULL) { if (pScb->SCB_Status == STATUS_SELECT) /* selection timeout */ - tul_append_done_scb(sc, pScb, HOST_SEL_TOUT); + iha_append_done_scb(sc, pScb, HOST_SEL_TOUT); else /* Unexpected bus free */ - tul_append_done_scb(sc, pScb, HOST_BAD_PHAS); + iha_append_done_scb(sc, pScb, HOST_BAD_PHAS); } } -static void -tul_reset_scsi_bus(sc) +void +iha_reset_scsi_bus(sc) struct iha_softc *sc; { struct iha_scsi_req_q *pScb; @@ -1849,16 +1766,16 @@ tul_reset_scsi_bus(sc) s = splbio(); - tul_reset_dma(sc->sc_iot, sc->sc_ioh); + iha_reset_dma(sc->sc_iot, sc->sc_ioh); for (i = 0, pScb = sc->HCS_Scb; i < IHA_MAX_SCB; i++, pScb++) switch (pScb->SCB_Status) { case STATUS_BUSY: - tul_append_done_scb(sc, pScb, HOST_SCSI_RST); + iha_append_done_scb(sc, pScb, HOST_SCSI_RST); break; case STATUS_SELECT: - tul_push_pend_scb(sc, pScb); + iha_push_pend_scb(sc, pScb); break; default: @@ -1866,16 +1783,16 @@ tul_reset_scsi_bus(sc) } for (i = 0, pTcs = sc->HCS_Tcs; i < IHA_MAX_TARGETS; i++, pTcs++) - tul_reset_tcs(pTcs, sc->HCS_SConf1); + iha_reset_tcs(pTcs, sc->HCS_SConf1); splx(s); } /* - * tul_resel - handle a detected SCSI bus reselection request. + * iha_resel - handle a detected SCSI bus reselection request. */ -static int -tul_resel(sc, iot, ioh) +int +iha_resel(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1886,7 +1803,7 @@ tul_resel(sc, iot, ioh) if (sc->HCS_ActScb != NULL) { if ((sc->HCS_ActScb->SCB_Status == STATUS_SELECT)) - tul_push_pend_scb(sc, sc->HCS_ActScb); + iha_push_pend_scb(sc, sc->HCS_ActScb); sc->HCS_ActScb = NULL; } @@ -1912,12 +1829,12 @@ tul_resel(sc, iot, ioh) * the tag. */ - switch (tul_wait(sc, iot, ioh, MSG_ACCEPT)) { + switch (iha_wait(sc, iot, ioh, MSG_ACCEPT)) { case -1: return (-1); case PHASE_MSG_IN: bus_space_write_4(iot, ioh, TUL_STCNT0, 1); - if ((tul_wait(sc, iot, ioh, XF_FIFO_IN)) == -1) + if ((iha_wait(sc, iot, ioh, XF_FIFO_IN)) == -1) return (-1); break; default: @@ -1929,12 +1846,12 @@ tul_resel(sc, iot, ioh) if ((msg < MSG_SIMPLE_Q_TAG) || (msg > MSG_ORDERED_Q_TAG)) goto abort; - switch (tul_wait(sc, iot, ioh, MSG_ACCEPT)) { + switch (iha_wait(sc, iot, ioh, MSG_ACCEPT)) { case -1: return (-1); case PHASE_MSG_IN: bus_space_write_4(iot, ioh, TUL_STCNT0, 1); - if ((tul_wait(sc, iot, ioh, XF_FIFO_IN)) == -1) + if ((iha_wait(sc, iot, ioh, XF_FIFO_IN)) == -1) return (-1); break; default: @@ -1951,20 +1868,20 @@ tul_resel(sc, iot, ioh) || (pScb->SCB_Lun != lun) || (pScb->SCB_Status != STATUS_BUSY)) { abort: - tul_msgout_abort(sc, iot, ioh, abortmsg); + iha_msgout_abort(sc, iot, ioh, abortmsg); return (-1); } sc->HCS_ActScb = pScb; - if (tul_wait(sc, iot, ioh, MSG_ACCEPT) == -1) + if (iha_wait(sc, iot, ioh, MSG_ACCEPT) == -1) return (-1); - return(tul_next_state(sc, iot, ioh)); + return(iha_next_state(sc, iot, ioh)); } -static int -tul_msgin(sc, iot, ioh) +int +iha_msgin(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -1979,47 +1896,47 @@ tul_msgin(sc, iot, ioh) bus_space_write_4(iot, ioh, TUL_STCNT0, 1); - phase = tul_wait(sc, iot, ioh, XF_FIFO_IN); + phase = iha_wait(sc, iot, ioh, XF_FIFO_IN); msg = bus_space_read_1(iot, ioh, TUL_SFIFO); switch (msg) { case MSG_DISCONNECT: sc->HCS_Flags |= FLAG_EXPECT_DISC; - if (tul_wait(sc, iot, ioh, MSG_ACCEPT) != -1) - tul_bad_seq(sc); + if (iha_wait(sc, iot, ioh, MSG_ACCEPT) != -1) + iha_bad_seq(sc); phase = -1; break; case MSG_SAVEDATAPOINTER: case MSG_RESTOREPOINTERS: case MSG_NOOP: - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); break; case MSG_MESSAGE_REJECT: /* XXX - need to clear FIFO like other 'Clear ATN'?*/ - tul_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); + iha_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); flags = sc->HCS_ActScb->SCB_Tcs->TCS_Flags; if ((flags & FLAG_NO_NEG_SYNC) == 0) - tul_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + iha_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); break; case MSG_EXTENDED: - phase = tul_msgin_extended(sc, iot, ioh); + phase = iha_msgin_extended(sc, iot, ioh); break; case MSG_IGN_WIDE_RESIDUE: - phase = tul_msgin_ignore_wid_resid(sc, iot, ioh); + phase = iha_msgin_ignore_wid_resid(sc, iot, ioh); break; case MSG_CMDCOMPLETE: sc->HCS_Flags |= FLAG_EXPECT_DONE_DISC; bus_space_write_1(iot, ioh, TUL_SCTRL0, RSFIFO); - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); if (phase != -1) { - tul_bad_seq(sc); + iha_bad_seq(sc); return (-1); } break; default: - printf("[debug] tul_msgin: bad msg type: %d\n", msg); - phase = tul_msgout_reject(sc, iot, ioh); + printf("[debug] iha_msgin: bad msg type: %d\n", msg); + phase = iha_msgout_reject(sc, iot, ioh); break; } @@ -2029,33 +1946,33 @@ tul_msgin(sc, iot, ioh) /* NOTREACHED */ } -static int -tul_msgin_ignore_wid_resid(sc, iot, ioh) +int +iha_msgin_ignore_wid_resid(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; { int phase; - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); if (phase == PHASE_MSG_IN) { - phase = tul_wait(sc, iot, ioh, XF_FIFO_IN); + phase = iha_wait(sc, iot, ioh, XF_FIFO_IN); if (phase != -1) { bus_space_write_1(iot, ioh, TUL_SFIFO, 0); bus_space_read_1 (iot, ioh, TUL_SFIFO); bus_space_read_1 (iot, ioh, TUL_SFIFO); - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); } } return (phase); } -static int -tul_msgin_extended(sc, iot, ioh) +int +iha_msgin_extended(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2067,14 +1984,14 @@ tul_msgin_extended(sc, iot, ioh) * read all input, discarding the excess, and then reject */ for (i = 0; i < IHA_MAX_EXTENDED_MSG; i++) { - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); if (phase != PHASE_MSG_IN) return (phase); bus_space_write_4(iot, ioh, TUL_STCNT0, 1); - if (tul_wait(sc, iot, ioh, XF_FIFO_IN) == -1) + if (iha_wait(sc, iot, ioh, XF_FIFO_IN) == -1) return (-1); sc->HCS_Msg[i] = bus_space_read_1(iot, ioh, TUL_SFIFO); @@ -2087,21 +2004,21 @@ tul_msgin_extended(sc, iot, ioh) msgcode = sc->HCS_Msg[1]; if ((msglen == MSG_EXT_SDTR_LEN) && (msgcode == MSG_EXT_SDTR)) { - if (tul_msgin_sdtr(sc) == 0) { - tul_sync_done(sc, iot, ioh); - return (tul_wait(sc, iot, ioh, MSG_ACCEPT)); + if (iha_msgin_sdtr(sc) == 0) { + iha_sync_done(sc, iot, ioh); + return (iha_wait(sc, iot, ioh, MSG_ACCEPT)); } - tul_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); + iha_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); if (phase != PHASE_MSG_OUT) return (phase); /* Clear FIFO for important message - final SYNC offer */ bus_space_write_1(iot, ioh, TUL_SCTRL0, RSFIFO); - tul_sync_done(sc, iot, ioh); /* This is our final offer */ + iha_sync_done(sc, iot, ioh); /* This is our final offer */ } else if ((msglen == MSG_EXT_WDTR_LEN) && (msgcode == MSG_EXT_WDTR)) { @@ -2111,39 +2028,39 @@ tul_msgin_extended(sc, iot, ioh) sc->HCS_Msg[2] = 0; /* Offer async xfers only */ else if (sc->HCS_Msg[2] > 2) /* BAD MSG: 2 is max value */ - return (tul_msgout_reject(sc, iot, ioh)); + return (iha_msgout_reject(sc, iot, ioh)); else if (sc->HCS_Msg[2] == 2) /* a request for 32 bit xfers*/ sc->HCS_Msg[2] = 1; /* Offer 16 instead */ else { - tul_wide_done(sc, iot, ioh); + iha_wide_done(sc, iot, ioh); if ((flags & FLAG_NO_NEG_SYNC) == 0) - tul_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); - return (tul_wait(sc, iot, ioh, MSG_ACCEPT)); + iha_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); + return (iha_wait(sc, iot, ioh, MSG_ACCEPT)); } - tul_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); + iha_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); - phase = tul_wait(sc, iot, ioh, MSG_ACCEPT); + phase = iha_wait(sc, iot, ioh, MSG_ACCEPT); if (phase != PHASE_MSG_OUT) return (phase); } else - return (tul_msgout_reject(sc, iot, ioh)); + return (iha_msgout_reject(sc, iot, ioh)); /* Send message built in sc->HCS_Msg[] */ - return (tul_msgout_extended(sc, iot, ioh)); + return (iha_msgout_extended(sc, iot, ioh)); } /* - * tul_msgin_sdtr - check SDTR msg in HCS_Msg. If the offer is + * iha_msgin_sdtr - check SDTR msg in HCS_Msg. If the offer is * acceptable leave HCS_Msg as is and return 0. * If the negotiation must continue, modify HCS_Msg * as needed and return 1. Else return 0. */ -static int -tul_msgin_sdtr(sc) +int +iha_msgin_sdtr(sc) struct iha_softc *sc; { u_int16_t flags; @@ -2152,7 +2069,7 @@ tul_msgin_sdtr(sc) flags = sc->HCS_ActScb->SCB_Tcs->TCS_Flags; - default_period = tul_rate_tbl[flags & FLAG_SCSI_RATE]; + default_period = iha_rate_tbl[flags & FLAG_SCSI_RATE]; if (sc->HCS_Msg[3] == 0) /* target offered async only. Accept it. */ return (0); @@ -2182,8 +2099,8 @@ tul_msgin_sdtr(sc) return (newoffer); } -static int -tul_msgout(sc, iot, ioh, msg) +int +iha_msgout(sc, iot, ioh, msg) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2191,50 +2108,50 @@ tul_msgout(sc, iot, ioh, msg) { bus_space_write_1(iot, ioh, TUL_SFIFO, msg); - return (tul_wait(sc, iot, ioh, XF_FIFO_OUT)); + return (iha_wait(sc, iot, ioh, XF_FIFO_OUT)); } -static void -tul_msgout_abort(sc, iot, ioh, aborttype) +void +iha_msgout_abort(sc, iot, ioh, aborttype) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; u_int8_t aborttype; { - tul_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); + iha_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); - switch (tul_wait(sc, iot, ioh, MSG_ACCEPT)) { + switch (iha_wait(sc, iot, ioh, MSG_ACCEPT)) { case -1: break; case PHASE_MSG_OUT: sc->HCS_Flags |= FLAG_EXPECT_DISC; - if (tul_msgout(sc, iot, ioh, aborttype) != -1) - tul_bad_seq(sc); + if (iha_msgout(sc, iot, ioh, aborttype) != -1) + iha_bad_seq(sc); break; default: - tul_bad_seq(sc); + iha_bad_seq(sc); break; } } -static int -tul_msgout_reject(sc, iot, ioh) +int +iha_msgout_reject(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; { - tul_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); + iha_set_ssig(iot, ioh, REQ | BSY | SEL, ATN); - if (tul_wait(sc, iot, ioh, MSG_ACCEPT) == PHASE_MSG_OUT) - return (tul_msgout(sc, iot, ioh, MSG_MESSAGE_REJECT)); + if (iha_wait(sc, iot, ioh, MSG_ACCEPT) == PHASE_MSG_OUT) + return (iha_msgout(sc, iot, ioh, MSG_MESSAGE_REJECT)); return (-1); } -static int -tul_msgout_extended(sc, iot, ioh) +int +iha_msgout_extended(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2246,16 +2163,16 @@ tul_msgout_extended(sc, iot, ioh) bus_space_write_multi_1(iot, ioh, TUL_SFIFO, sc->HCS_Msg, sc->HCS_Msg[0]+1); - phase = tul_wait(sc, iot, ioh, XF_FIFO_OUT); + phase = iha_wait(sc, iot, ioh, XF_FIFO_OUT); bus_space_write_1(iot, ioh, TUL_SCTRL0, RSFIFO); - tul_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); + iha_set_ssig(iot, ioh, REQ | BSY | SEL | ATN, 0); return (phase); } -static int -tul_msgout_wdtr(sc, iot, ioh) +int +iha_msgout_wdtr(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2266,11 +2183,11 @@ tul_msgout_wdtr(sc, iot, ioh) sc->HCS_Msg[1] = MSG_EXT_WDTR; sc->HCS_Msg[2] = MSG_EXT_WDTR_BUS_16_BIT; - return (tul_msgout_extended(sc, iot, ioh)); + return (iha_msgout_extended(sc, iot, ioh)); } -static int -tul_msgout_sdtr(sc, iot, ioh) +int +iha_msgout_sdtr(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2280,18 +2197,18 @@ tul_msgout_sdtr(sc, iot, ioh) rateindex = sc->HCS_ActScb->SCB_Tcs->TCS_Flags & FLAG_SCSI_RATE; - sync_rate = tul_rate_tbl[rateindex]; + sync_rate = iha_rate_tbl[rateindex]; sc->HCS_Msg[0] = MSG_EXT_SDTR_LEN; sc->HCS_Msg[1] = MSG_EXT_SDTR; sc->HCS_Msg[2] = sync_rate; sc->HCS_Msg[3] = IHA_MAX_TARGETS-1; /* REQ/ACK */ - return (tul_msgout_extended(sc, iot, ioh)); + return (iha_msgout_extended(sc, iot, ioh)); } -static void -tul_wide_done(sc, iot, ioh) +void +iha_wide_done(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2311,8 +2228,8 @@ tul_wide_done(sc, iot, ioh) bus_space_write_1(iot, ioh, TUL_SYNCM, pTcs->TCS_JS_Period); } -static void -tul_sync_done(sc, iot, ioh) +void +iha_sync_done(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2326,7 +2243,7 @@ tul_sync_done(sc, iot, ioh) /* pick the highest possible rate */ for (i = 0; i < 8; i++) - if (tul_rate_tbl[i] >= sc->HCS_Msg[2]) + if (iha_rate_tbl[i] >= sc->HCS_Msg[2]) break; pTcs->TCS_JS_Period |= (i << 4); @@ -2341,7 +2258,7 @@ tul_sync_done(sc, iot, ioh) } void -tul_reset_chip(sc, iot, ioh) +iha_reset_chip(sc, iot, ioh) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2356,7 +2273,7 @@ tul_reset_chip(sc, iot, ioh) sc->HCS_JSInt = bus_space_read_1(iot, ioh, TUL_SISTAT); while((sc->HCS_JSInt & SRSTD) == 0); - tul_set_ssig(iot, ioh, 0, 0); + iha_set_ssig(iot, ioh, 0, 0); /* * Stall for 2 seconds, wait for target's firmware ready. @@ -2367,8 +2284,8 @@ tul_reset_chip(sc, iot, ioh) bus_space_read_1(iot, ioh, TUL_SISTAT); /* Clear any active interrupt*/ } -static void -tul_select(sc, iot, ioh, pScb, select_type) +void +iha_select(sc, iot, ioh, pScb, select_type) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2400,12 +2317,12 @@ tul_select(sc, iot, ioh, pScb, select_type) break; default: - printf("[debug] tul_select() - unknown select type = 0x%02x\n", + printf("[debug] iha_select() - unknown select type = 0x%02x\n", select_type); return; } - tul_del_pend_scb(sc, pScb); + iha_del_pend_scb(sc, pScb); pScb->SCB_Status = STATUS_SELECT; sc->HCS_ActScb = pScb; @@ -2414,12 +2331,12 @@ tul_select(sc, iot, ioh, pScb, select_type) } /* - * tul_wait - wait for an interrupt to service or a SCSI bus phase change + * iha_wait - wait for an interrupt to service or a SCSI bus phase change * after writing the supplied command to the tulip chip. If * the command is NO_OP, skip the command writing. */ -static int -tul_wait(sc, iot, ioh, cmd) +int +iha_wait(sc, iot, ioh, cmd) struct iha_softc *sc; bus_space_tag_t iot; bus_space_handle_t ioh; @@ -2443,17 +2360,17 @@ tul_wait(sc, iot, ioh, cmd) if ((sc->HCS_JSInt & SRSTD) != 0) { /* SCSI bus reset interrupt */ - tul_reset_scsi_bus(sc); + iha_reset_scsi_bus(sc); return (-1); } if ((sc->HCS_JSInt & RSELED) != 0) /* Reselection interrupt */ - return (tul_resel(sc, iot, ioh)); + return (iha_resel(sc, iot, ioh)); if ((sc->HCS_JSInt & STIMEO) != 0) { /* selected/reselected timeout interrupt */ - tul_busfree(sc, iot, ioh); + iha_busfree(sc, iot, ioh); return (-1); } @@ -2464,7 +2381,7 @@ tul_wait(sc, iot, ioh, cmd) bus_space_write_1(iot, ioh, TUL_SCONFIG0, SCONFIG0DEFAULT); bus_space_write_1(iot, ioh, TUL_SCTRL1, EHRSL); - tul_append_done_scb(sc, sc->HCS_ActScb, HOST_OK); + iha_append_done_scb(sc, sc->HCS_ActScb, HOST_OK); sc->HCS_Flags &= ~FLAG_EXPECT_DONE_DISC; } else if ((sc->HCS_Flags & FLAG_EXPECT_DISC) != 0) { @@ -2476,7 +2393,7 @@ tul_wait(sc, iot, ioh, cmd) sc->HCS_Flags &= ~FLAG_EXPECT_DISC; } else - tul_busfree(sc, iot, ioh); + iha_busfree(sc, iot, ioh); return (-1); } @@ -2485,11 +2402,11 @@ tul_wait(sc, iot, ioh, cmd) } /* - * tul_done_scb - We have a scb which has been processed by the + * iha_done_scb - We have a scb which has been processed by the * adaptor, now we look to see how the operation went. */ -static void -tul_done_scb(sc, pScb) +void +iha_done_scb(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -2569,11 +2486,11 @@ tul_done_scb(sc, pScb) scsi_done(xs); } - tul_append_free_scb(sc, pScb); + iha_append_free_scb(sc, pScb); } -static void -tul_timeout(arg) +void +iha_timeout(arg) void *arg; { struct iha_scsi_req_q *pScb = (struct iha_scsi_req_q *)arg; @@ -2581,19 +2498,19 @@ tul_timeout(arg) struct iha_softc *sc; if (xs == NULL) - printf("[debug] tul_timeout called with xs == NULL\n"); + printf("[debug] iha_timeout called with xs == NULL\n"); else { sc = xs->sc_link->adapter_softc; sc_print_addr(xs->sc_link); printf("SCSI OpCode 0x%02x timed out\n", xs->cmd->opcode); - tul_abort_xs(xs->sc_link->adapter_softc, xs, HOST_TIMED_OUT); + iha_abort_xs(xs->sc_link->adapter_softc, xs, HOST_TIMED_OUT); } } -static void -tul_exec_scb(sc, pScb) +void +iha_exec_scb(sc, pScb) struct iha_softc *sc; struct iha_scsi_req_q *pScb; { @@ -2605,12 +2522,12 @@ tul_exec_scb(sc, pScb) if (((pScb->SCB_Flags & SCSI_RESET) != 0) || (pScb->SCB_CDB[0] == REQUEST_SENSE)) - tul_push_pend_scb(sc, pScb); /* Insert SCB at head of Pend */ + iha_push_pend_scb(sc, pScb); /* Insert SCB at head of Pend */ else - tul_append_pend_scb(sc, pScb); /* Append SCB to tail of Pend */ + iha_append_pend_scb(sc, pScb); /* Append SCB to tail of Pend */ /* - * Run through tul_main() to ensure something is active, if + * Run through iha_main() to ensure something is active, if * only this new SCB. */ if (sc->HCS_Semaph != SEMAPH_IN_MAIN) { @@ -2621,7 +2538,7 @@ tul_exec_scb(sc, pScb) sc->HCS_Semaph = SEMAPH_IN_MAIN;; splx(s); - tul_main(sc, iot, ioh); + iha_main(sc, iot, ioh); s = splbio(); sc->HCS_Semaph = ~SEMAPH_IN_MAIN;; @@ -2633,11 +2550,11 @@ tul_exec_scb(sc, pScb) /* - * tul_set_ssig - read the current scsi signal mask, then write a new + * iha_set_ssig - read the current scsi signal mask, then write a new * one which turns off/on the specified signals. */ -static void -tul_set_ssig( iot, ioh, offsigs, onsigs) +void +iha_set_ssig( iot, ioh, offsigs, onsigs) bus_space_tag_t iot; bus_space_handle_t ioh; u_int8_t offsigs, onsigs; @@ -2648,8 +2565,8 @@ tul_set_ssig( iot, ioh, offsigs, onsigs) bus_space_write_1(iot, ioh, TUL_SSIGO, (currsigs & ~offsigs) | onsigs); } -static void -tul_print_info(sc, target) +void +iha_print_info(sc, target) struct iha_softc *sc; int target; { @@ -2678,10 +2595,10 @@ tul_print_info(sc, target) /* - * tul_alloc_scbs - allocate and map the SCB's for the supplied IHA_SOFTC + * iha_alloc_scbs - allocate and map the SCB's for the supplied IHA_SOFTC */ -static int -tul_alloc_scbs(sc) +int +iha_alloc_scbs(sc) struct iha_softc *sc; { bus_dma_segment_t seg; @@ -2734,126 +2651,36 @@ tul_alloc_scbs(sc) } /* - * tul_read_eeprom - read Serial EEPROM value & set to defaults + * iha_read_eeprom - read Serial EEPROM value & set to defaults * if required. XXX - Writing does NOT work! */ void -tul_read_eeprom(iot, ioh) +iha_read_eeprom(iot, ioh) bus_space_tag_t iot; bus_space_handle_t ioh; { u_int8_t gctrl; - /*------Enable EEProm programming ---*/ + /* Enable EEProm programming */ gctrl = bus_space_read_1(iot, ioh, TUL_GCTRL0) | EEPRG; bus_space_write_1(iot, ioh, TUL_GCTRL0, gctrl); - /*------ Program default pattern ----*/ - if (tul_se2_rd_all(iot, ioh) == 0) { - tul_se2_update_all(iot, ioh); - if(tul_se2_rd_all(iot, ioh) == 0) - panic("could not program iha Tulip EEPROM\n"); - } + /* Read EEProm */ + if (iha_se2_rd_all(iot, ioh) == 0) + panic("iha: could not read EEPROM\n"); - /*------ Disable EEProm programming ---*/ + /* Disable EEProm programming */ gctrl = bus_space_read_1(iot, ioh, TUL_GCTRL0) & ~EEPRG; bus_space_write_1(iot, ioh, TUL_GCTRL0, gctrl); } /* - * tul_se2_update_all - Update SCSI H/A configuration parameters from - * serial EEPROM Setup default pattern. Only - * change those values different from the values - * in tul_nvram. - */ -void -tul_se2_update_all(iot, ioh) - bus_space_tag_t iot; - bus_space_handle_t ioh; -{ - u_int16_t *np, *np1; - u_int32_t chksum; - u_int8_t i; - - /* Enable erase/write state of EEPROM */ - tul_se2_instr(iot, ioh, ENABLE_ERASE); - bus_space_write_1(iot, ioh, TUL_NVRAM, 0); - DELAY(5); - - np = (u_int16_t *)tul_dftNvRam; - np1 = (u_int16_t *)&tul_nvram; - - for (i = 0, chksum = 0; i < 31; i++, np++, np1++) { - if (*np != *np1) - tul_se2_wr(iot, ioh, i, *np); - chksum += *np; - } - - chksum &= 0x0000ffff; - tul_se2_wr(iot, ioh, 31, chksum); - - /* Disable erase/write state of EEPROM */ - tul_se2_instr(iot, ioh, 0); - bus_space_write_1(iot, ioh, TUL_NVRAM, 0); - DELAY(5); -} - -/* - * tul_se2_wr - write the given 16 bit value into the Serial EEPROM - * at the specified offset - */ -void -tul_se2_wr(iot, ioh, addr, writeWord) - bus_space_tag_t iot; - bus_space_handle_t ioh; - u_int8_t addr; - u_int16_t writeWord; -{ - u_int8_t bit; - int i; - - /* send 'WRITE' Instruction == address | WRITE bit */ - tul_se2_instr(iot, ioh, (addr | WRITE)); - - for (i = 15; i >= 0; i--, writeWord <<= 1) { - if (writeWord & 0x8000) - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS | NVRDO); - else - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS); - DELAY(5); - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS | NVRCK); - DELAY(5); - } - - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS); - DELAY(5); - bus_space_write_1(iot, ioh, TUL_NVRAM, 0); - DELAY(5); - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS); - DELAY(5); - - for (;;) { - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS | NVRCK); - DELAY(5); - bus_space_write_1(iot, ioh, TUL_NVRAM, NVRCS); - DELAY(5); - bit = bus_space_read_1(iot, ioh, TUL_NVRAM) & NVRDI; - DELAY(5); - if (bit != 0) - break; /* write complete */ - } - - bus_space_write_1(iot, ioh, TUL_NVRAM, 0); - DELAY(5); -} - -/* - * tul_se2_rd - read & return the 16 bit value at the specified + * iha_se2_rd - read & return the 16 bit value at the specified * offset in the Serial E2PROM * */ u_int16_t -tul_se2_rd(iot, ioh, addr) +iha_se2_rd(iot, ioh, addr) bus_space_tag_t iot; bus_space_handle_t ioh; u_int8_t addr; @@ -2863,7 +2690,7 @@ tul_se2_rd(iot, ioh, addr) int i; /* Send 'READ' instruction == address | READ bit */ - tul_se2_instr(iot, ioh, (addr | READ)); + iha_se2_instr(iot, ioh, (addr | READ)); readWord = 0; for (i = 15; i >= 0; i--) { @@ -2887,39 +2714,38 @@ tul_se2_rd(iot, ioh, addr) } /* - * tul_se2_rd_all - Read SCSI H/A config parameters from serial EEPROM - * into tul_nvram static variable. + * iha_se2_rd_all - Read SCSI H/A config parameters from serial EEPROM + * into iha_nvram variable. */ int -tul_se2_rd_all(iot, ioh) +iha_se2_rd_all(iot, ioh) bus_space_tag_t iot; bus_space_handle_t ioh; { - u_int16_t *np, *np1; + u_int16_t *np; u_int32_t chksum; u_int8_t i; - np = (u_int16_t *)&tul_nvram; - np1 = (u_int16_t *)&tul_dftNvRam; + np = (u_int16_t *)&iha_nvram; - for (i = 0, chksum = 0; i < 31; i++, np++, np1++) { - *np = tul_se2_rd(iot, ioh, i); + for (i = 0, chksum = 0; i < 31; i++, np++) { + *np = iha_se2_rd(iot, ioh, i); chksum += *np; } - *np = tul_se2_rd(iot, ioh, 31); /* read checksum from eeprom */ + *np = iha_se2_rd(iot, ioh, 31); /* read checksum from eeprom */ chksum &= 0x0000ffff; /* calculated checksum is lower 16 bits of sum */ - return (tul_nvram.NVM_Signature == SIGNATURE) + return (iha_nvram.NVM_Signature == SIGNATURE) && - (tul_nvram.NVM_CheckSum == chksum); + (iha_nvram.NVM_CheckSum == chksum); } /* - * tul_se2_instr - write an octet to serial E2PROM one bit at a time + * iha_se2_instr - write an octet to serial E2PROM one bit at a time */ void -tul_se2_instr(iot, ioh, instr) +iha_se2_instr(iot, ioh, instr) bus_space_tag_t iot; bus_space_handle_t ioh; u_int8_t instr; @@ -2953,13 +2779,13 @@ tul_se2_instr(iot, ioh, instr) } /* - * tul_reset_tcs - reset the target control structure pointed + * iha_reset_tcs - reset the target control structure pointed * to by pTcs to default values. TCS_Flags * only has the negotiation done bits reset as * the other bits are fixed at initialization. */ void -tul_reset_tcs(pTcs, config0) +iha_reset_tcs(pTcs, config0) struct tcs *pTcs; u_int8_t config0; { diff --git a/sys/dev/ic/iha.h b/sys/dev/ic/iha.h index 133008149d2..c43ada91fbd 100644 --- a/sys/dev/ic/iha.h +++ b/sys/dev/ic/iha.h @@ -1,4 +1,4 @@ -/* $OpenBSD: iha.h,v 1.4 2001/07/10 23:30:39 krw Exp $ */ +/* $OpenBSD: iha.h,v 1.5 2001/07/13 03:24:20 krw Exp $ */ /* * Initio INI-9xxxU/UW SCSI Device Driver * @@ -192,7 +192,7 @@ struct iha_softc { * EEPROM for one SCSI Channel * */ -struct nvram_scsi { +struct iha_nvram_scsi { u_int8_t NVM_SCSI_Id; /* 0x00 Channel Adapter SCSI Id */ u_int8_t NVM_SCSI_Cfg; /* 0x01 Channel configuration */ #define CFG_SCSI_RESET 0x0001 /* Reset bus at power up */ @@ -201,19 +201,17 @@ struct nvram_scsi { #define CFG_ACT_TERM2 0x0008 /* Enable active term 2 */ #define CFG_AUTO_TERM 0x0010 /* Enable auto terminator */ #define CFG_EN_PWR 0x0080 /* Enable power mgmt */ -#define CFG_DEFAULT (CFG_SCSI_RESET | CFG_AUTO_TERM | CFG_EN_PAR) u_int8_t NVM_SCSI_CfgByte2; /* 0x02 Unused Channel Cfg byte 2*/ u_int8_t NVM_SCSI_Targets; /* 0x03 Number of SCSI targets */ /* 0x04 Lower bytes of targ flags*/ u_int8_t NVM_SCSI_TargetFlags[IHA_MAX_TARGETS]; -#define FLAG_DEFAULT (FLAG_NO_WIDE | FLAG_1GIGA | FLAG_EN_DISC) }; /* * Tulip (aka ini-950) Serial EEPROM Layout * */ -struct nvram { +struct iha_nvram { /* ---------- Header ------------------------------------------------*/ u_int16_t NVM_Signature; /* 0x00 NVRAM Signature */ #define SIGNATURE 0xC925 @@ -239,7 +237,7 @@ struct nvram { #define HACFG_LUNMASK 0x70 /* Boot LUN number */ #define HACFG_CHANMASK 0x80 /* Boot Channel number */ u_int8_t NVM_HAConfig2; /* 0x0b Host adapter config 2 */ - struct nvram_scsi NVM_Scsi[2]; /* 0x0c */ + struct iha_nvram_scsi NVM_Scsi[2]; /* 0x0c */ u_int8_t NVM_Reserved[10]; /* 0x34 */ /* --------- CheckSum -----------------------------------------------*/ diff --git a/sys/dev/pci/iha_pci.c b/sys/dev/pci/iha_pci.c index ddbf4fae032..f45995be5ec 100644 --- a/sys/dev/pci/iha_pci.c +++ b/sys/dev/pci/iha_pci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iha_pci.c,v 1.3 2001/06/12 15:40:32 niklas Exp $ */ +/* $OpenBSD: iha_pci.c,v 1.4 2001/07/13 03:24:19 krw Exp $ */ /* * Initio INI-9xxxU/UW SCSI Device Driver * @@ -53,14 +53,14 @@ #include <dev/ic/iha.h> -static int iha_pci_probe __P((struct device *, void *, void *)); -static void iha_pci_attach __P((struct device *, struct device *, void *)); +int iha_pci_probe __P((struct device *, void *, void *)); +void iha_pci_attach __P((struct device *, struct device *, void *)); struct cfattach iha_pci_ca = { sizeof(struct iha_softc), iha_pci_probe, iha_pci_attach }; -static int +int iha_pci_probe(parent, match, aux) struct device *parent; void *match; @@ -78,7 +78,7 @@ iha_pci_probe(parent, match, aux) return (0); } -static void +void iha_pci_attach(parent, self, aux) struct device *parent; struct device *self; |