summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAaron Campbell <aaron@cvs.openbsd.org>2001-03-14 15:17:32 +0000
committerAaron Campbell <aaron@cvs.openbsd.org>2001-03-14 15:17:32 +0000
commit1ec7dacb3e39d99538acc2e58b214d6cdb3e5179 (patch)
tree07829d445986647fdfeaf0668ca8e82e3c3883db /sys
parent60127fc2905e7358cd3fefee7739df4703914438 (diff)
Disable PME mode in sis_reset() to fix a problem with the DP83815 chip on
some motherboards; from FreeBSD.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_sis.c12
-rw-r--r--sys/dev/pci/if_sisreg.h7
2 files changed, 17 insertions, 2 deletions
diff --git a/sys/dev/pci/if_sis.c b/sys/dev/pci/if_sis.c
index 8c4d5749eaa..de631e335c0 100644
--- a/sys/dev/pci/if_sis.c
+++ b/sys/dev/pci/if_sis.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_sis.c,v 1.11 2001/03/12 05:51:18 aaron Exp $ */
+/* $OpenBSD: if_sis.c,v 1.12 2001/03/14 15:17:31 aaron Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
* Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
@@ -571,6 +571,16 @@ void sis_reset(sc)
/* Wait a little while for the chip to get its brains in order. */
DELAY(1000);
+
+ /*
+ * If this is a NetSemi chip, make sure to clear
+ * PME mode.
+ */
+ if (sc->sis_type == SIS_TYPE_83815) {
+ CSR_WRITE_4(sc, NS_CLKRUN, NS_CLKRUN_PMESTS);
+ CSR_WRITE_4(sc, NS_CLKRUN, 0);
+ }
+
return;
}
diff --git a/sys/dev/pci/if_sisreg.h b/sys/dev/pci/if_sisreg.h
index 348ebce8699..ff13f207de4 100644
--- a/sys/dev/pci/if_sisreg.h
+++ b/sys/dev/pci/if_sisreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_sisreg.h,v 1.5 2001/03/12 05:51:18 aaron Exp $ */
+/* $OpenBSD: if_sisreg.h,v 1.6 2001/03/14 15:17:31 aaron Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
* Bill Paul <wpaul@ee.columbia.edu>. All rights reserved.
@@ -76,6 +76,7 @@
#define SIS_GPIO 0xB8
/* NS DP83815 registers */
+#define NS_CLKRUN 0x3C
#define NS_BMCR 0x80
#define NS_BMSR 0x84
#define NS_PHYIDR1 0x88
@@ -93,6 +94,10 @@
#define NS_PHY_SDCFG 0xF8
#define NS_PHY_TDATA 0xFC
+#define NS_CLKRUN_PMESTS 0x00008000
+#define NS_CLKRUN_PMEENB 0x00000100
+#define NS_CLNRUN_CLKRUN_ENB 0x00000001
+
#define SIS_CSR_TX_ENABLE 0x00000001
#define SIS_CSR_TX_DISABLE 0x00000002
#define SIS_CSR_RX_ENABLE 0x00000004