diff --exclude=CVS -uNr src.orig/sys/dev/pci/if_vge.c src/sys/dev/pci/if_vge.c --- src.orig/sys/dev/pci/if_vge.c 2008-12-07 01:00:25.000000000 +0900 +++ src/sys/dev/pci/if_vge.c 2009-02-08 22:10:37.000000000 +0900 @@ -967,6 +967,9 @@ } aprint_normal_dev(&sc->sc_dev, "interrupting at %s\n", intrstr); + /* Clear sticky bits */ + CSR_CLRBIT_1(sc, VGE_PWRSTAT, VGE_PWRSTAT_DS0|VGE_PWRSTAT_DS1); + /* Reset the adapter. */ vge_reset(sc); diff --exclude=CVS -uNr src.orig/sys/dev/pci/if_vgereg.h src/sys/dev/pci/if_vgereg.h --- src.orig/sys/dev/pci/if_vgereg.h 2006-10-31 23:13:30.000000000 +0900 +++ src/sys/dev/pci/if_vgereg.h 2009-02-08 22:10:50.000000000 +0900 @@ -540,6 +540,10 @@ #define VGE_TXBLOCK_128PKTS 0x08 #define VGE_TXBLOCK_8PKTS 0x0C +/* power state shadow register */ +#define VGE_PWRSTAT_DS0 0x01 +#define VGE_PWRSTAT_DS1 0x02 + /* EEPROM control/status register */ #define VGE_EECSR_EDO 0x01 /* data out pin */