Example #1
0
static int
njs_pci_detach(device_t self, int flags)
{
	struct njsc32_pci_softc *psc = device_private(self);
	struct njsc32_softc *sc = &psc->sc_njsc32;
	int rv;

	rv = njsc32_detach(sc, flags);
	if (rv)
		return rv;

	if (sc->sc_ih)
		pci_intr_disestablish(psc->sc_pc, sc->sc_ih);

	if (sc->sc_flags & NJSC32_IO_MAPPED)
		bus_space_unmap(sc->sc_regt, sc->sc_regh, psc->sc_regmap_size);
	if (sc->sc_flags & NJSC32_MEM_MAPPED)
		bus_space_unmap(sc->sc_regt, psc->sc_regmaph,
		    psc->sc_regmap_size);

	return 0;
}
Example #2
0
static int
njs_cardbus_detach(struct device *self, int flags)
{
	struct njsc32_cardbus_softc *csc = (void *) self;
	struct njsc32_softc *sc = &csc->sc_njsc32;
	int rv;

	rv = njsc32_detach(sc, flags);
	if (rv)
		return rv;

	if (sc->sc_ih)
		cardbus_intr_disestablish(csc->sc_ct->ct_cc,
		    csc->sc_ct->ct_cf, sc->sc_ih);

	if (sc->sc_flags & NJSC32_IO_MAPPED)
		Cardbus_mapreg_unmap(csc->sc_ct, NJSC32_CARDBUS_BASEADDR_IO,
		    sc->sc_regt, sc->sc_regh, csc->sc_regmap_size);
	if (sc->sc_flags & NJSC32_MEM_MAPPED)
		Cardbus_mapreg_unmap(csc->sc_ct, NJSC32_CARDBUS_BASEADDR_MEM,
		    sc->sc_regt, csc->sc_regmaph, csc->sc_regmap_size);

	return 0;
}