diff options
author | wpaul <wpaul@FreeBSD.org> | 2000-10-06 22:54:41 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2000-10-06 22:54:41 +0000 |
commit | 3ecf4cf9c09890bd8fa59178d69a1d2b5b63dbc7 (patch) | |
tree | ec57a8f0b9ae02f79ace0b8f82fcb546c2a51e09 /sys | |
parent | cdfbe64542a0b3e83f9d3b59e099f27fdb103b6d (diff) | |
download | FreeBSD-src-3ecf4cf9c09890bd8fa59178d69a1d2b5b63dbc7.zip FreeBSD-src-3ecf4cf9c09890bd8fa59178d69a1d2b5b63dbc7.tar.gz |
When leaving suspend mode after enabling/disabling the promisc mode bit,
make sure the chip is restarted by issuing a start command to the command
register. Sometimes the receiver doesn't restart after leaving suspend
mode.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pci/if_pcn.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/pci/if_pcn.c b/sys/pci/if_pcn.c index 89f612a..49241bd 100644 --- a/sys/pci/if_pcn.c +++ b/sys/pci/if_pcn.c @@ -1228,6 +1228,8 @@ static int pcn_ioctl(ifp, command, data) PCN_MODE_PROMISC); PCN_CSR_CLRBIT(sc, PCN_CSR_EXTCTL1, PCN_EXTCTL1_SPND); + pcn_csr_write(sc, PCN_CSR_CSR, + PCN_CSR_INTEN|PCN_CSR_START); } else if (ifp->if_flags & IFF_RUNNING && !(ifp->if_flags & IFF_PROMISC) && sc->pcn_if_flags & IFF_PROMISC) { @@ -1237,6 +1239,8 @@ static int pcn_ioctl(ifp, command, data) PCN_MODE_PROMISC); PCN_CSR_CLRBIT(sc, PCN_CSR_EXTCTL1, PCN_EXTCTL1_SPND); + pcn_csr_write(sc, PCN_CSR_CSR, + PCN_CSR_INTEN|PCN_CSR_START); } else if (!(ifp->if_flags & IFF_RUNNING)) pcn_init(sc); } else { |