Пример #1
0
static int
ct_world_start(struct ct_softc *ct, int fdone)
{
	struct scsi_low_softc *slp = &ct->sc_sclow;
	struct ct_bus_access_handle *chp = &ct->sc_ch;

	if (ct->sc_sdp == NULL)
	{
		ct->sc_sdp = ct_make_synch_table(ct);
	}

	if (slp->sl_cfgflags & CFG_NOPARITY)
		ct->sc_creg = CR_DEFAULT;
	else
		ct->sc_creg = CR_DEFAULT_HP;

	if (ct->sc_dma & CT_DMA_DMASTART)
		(*ct->ct_dma_xfer_stop) (ct);
	if (ct->sc_dma & CT_DMA_PIOSTART)
		(*ct->ct_pio_xfer_stop) (ct);
	ct->sc_dma = 0;
	ct->sc_atten = 0;

	cthw_chip_reset(chp, NULL, ct->sc_chipclk, slp->sl_hostid);
	scsi_low_bus_reset(slp);
	cthw_chip_reset(chp, NULL, ct->sc_chipclk, slp->sl_hostid);

	return 0;
}
Пример #2
0
static int
stg_world_start(struct stg_softc *sc, int fdone)
{
	struct scsi_low_softc *slp = &sc->sc_sclow;
	int error;

	if ((slp->sl_cfgflags & CFG_NOPARITY) == 0)
		sc->sc_fcRinit |= FCTL_PARENB;
	else
		sc->sc_fcRinit &= ~FCTL_PARENB;

	if ((error = stghw_check(sc)) != 0)
		return error;

	stghw_init(sc);
	scsi_low_bus_reset(slp);
	stghw_init(sc);

	SOFT_INTR_REQUIRED(slp);
	return 0;
}