On Wed, Jun 22, 2011 at 11:43:27AM +0000, Thomas Gerlach wrote:
> ...crap! sorry, something went wrong here. :(

I'm not sure what you mean went wrong.

But in an effort to try to wrap this up, can you please try -current
with just this diff and report back if that works? Thanks!

Index: xl.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/xl.c,v
retrieving revision 1.101
diff -u -p -r1.101 xl.c
--- xl.c        17 Apr 2011 20:52:43 -0000      1.101
+++ xl.c        22 Jun 2011 13:10:24 -0000
@@ -2373,9 +2373,13 @@ xl_stop(struct xl_softc *sc)
        xl_freetxrx(sc);
 
 #ifndef SMALL_KERNEL
-       /* Call upper layer WOL power routine if WOL is enabled. */
-       if ((sc->xl_flags & XL_FLAG_WOL) && sc->wol_power)
+       /* Re-enable RX and call upper layer WOL power routine
+        * if WOL is enabled. */
+       if ((sc->xl_flags & XL_FLAG_WOL) && sc->wol_power) {
+               CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_ENABLE);
+               xl_wait(sc);
                sc->wol_power(sc->wol_power_arg);
+       }
 #endif
 }

Reply via email to