Author: yongari
Date: Mon Dec  5 22:22:39 2011
New Revision: 228292
URL: http://svn.freebsd.org/changeset/base/228292

Log:
  Implement suspend/resume methods.  Driver has no issue with
  suspend/resume.

Modified:
  head/sys/dev/et/if_et.c

Modified: head/sys/dev/et/if_et.c
==============================================================================
--- head/sys/dev/et/if_et.c     Mon Dec  5 22:09:07 2011        (r228291)
+++ head/sys/dev/et/if_et.c     Mon Dec  5 22:22:39 2011        (r228292)
@@ -87,6 +87,8 @@ static int    et_probe(device_t);
 static int     et_attach(device_t);
 static int     et_detach(device_t);
 static int     et_shutdown(device_t);
+static int     et_suspend(device_t);
+static int     et_resume(device_t);
 
 static int     et_miibus_readreg(device_t, int, int);
 static int     et_miibus_writereg(device_t, int, int, int);
@@ -169,6 +171,8 @@ static device_method_t et_methods[] = {
        DEVMETHOD(device_attach,        et_attach),
        DEVMETHOD(device_detach,        et_detach),
        DEVMETHOD(device_shutdown,      et_shutdown),
+       DEVMETHOD(device_suspend,       et_suspend),
+       DEVMETHOD(device_resume,        et_resume),
 
        DEVMETHOD(miibus_readreg,       et_miibus_readreg),
        DEVMETHOD(miibus_writereg,      et_miibus_writereg),
@@ -2451,3 +2455,29 @@ et_setup_rxdesc(struct et_rxbuf_data *rb
        bus_dmamap_sync(rx_ring->rr_dtag, rx_ring->rr_dmap,
                        BUS_DMASYNC_PREWRITE);
 }
+
+static int
+et_suspend(device_t dev)
+{
+       struct et_softc *sc;
+
+       sc = device_get_softc(dev);
+       ET_LOCK(sc);
+       if ((sc->ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+               et_stop(sc);
+       ET_UNLOCK(sc);
+       return (0);
+}
+
+static int
+et_resume(device_t dev)
+{
+       struct et_softc *sc;
+
+       sc = device_get_softc(dev);
+       ET_LOCK(sc);
+       if ((sc->ifp->if_flags & IFF_UP) != 0)
+               et_init_locked(sc);
+       ET_UNLOCK(sc);
+       return (0);
+}
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to