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; }
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; }