int wi_pcmcia_activate(struct device *dev, enum devact act) { struct wi_pcmcia_softc *psc = (struct wi_pcmcia_softc *)dev; struct wi_softc *sc = &psc->sc_wi; struct ifnet *ifp = &sc->sc_ic.ic_if; int s; s = splnet(); switch (act) { case DVACT_ACTIVATE: pcmcia_function_enable(psc->sc_pf); sc->sc_ih = pcmcia_intr_establish(psc->sc_pf, IPL_NET, wi_intr, sc, sc->sc_dev.dv_xname); wi_cor_reset(sc); wi_init(sc); break; case DVACT_DEACTIVATE: ifp->if_timer = 0; if (ifp->if_flags & IFF_RUNNING) wi_stop(sc); sc->wi_flags &= ~WI_FLAGS_INITIALIZED; if (sc->sc_ih != NULL) pcmcia_intr_disestablish(psc->sc_pf, sc->sc_ih); pcmcia_function_disable(psc->sc_pf); break; } splx(s); return (0); }
int wi_pcmcia_activate(struct device *dev, int act) { struct wi_pcmcia_softc *psc = (struct wi_pcmcia_softc *)dev; struct wi_softc *sc = &psc->sc_wi; struct ifnet *ifp = &sc->sc_ic.ic_if; switch (act) { case DVACT_SUSPEND: ifp->if_timer = 0; if (ifp->if_flags & IFF_RUNNING) wi_stop(sc); sc->wi_flags &= ~WI_FLAGS_INITIALIZED; if (sc->sc_ih != NULL) pcmcia_intr_disestablish(psc->sc_pf, sc->sc_ih); sc->sc_ih = NULL; pcmcia_function_disable(psc->sc_pf); break; case DVACT_RESUME: pcmcia_function_enable(psc->sc_pf); sc->sc_ih = pcmcia_intr_establish(psc->sc_pf, IPL_NET, wi_intr, sc, sc->sc_dev.dv_xname); break; case DVACT_WAKEUP: wi_pcmcia_wakeup(sc); break; case DVACT_DEACTIVATE: if (sc->sc_ih != NULL) pcmcia_intr_disestablish(psc->sc_pf, sc->sc_ih); sc->sc_ih = NULL; pcmcia_function_disable(psc->sc_pf); break; } return (0); }
static int wi_pci_suspend(device_t dev) { struct wi_softc *sc = device_get_softc(dev); WI_LOCK(sc); wi_stop(sc, 1); WI_UNLOCK(sc); return (0); }
static int wi_pci_suspend(device_t dev) { struct wi_softc *sc = device_get_softc(dev); wlan_serialize_enter(); wi_stop(sc, 1); wlan_serialize_exit(); return (0); }