summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_pci.c
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2006-12-16 05:54:29 +0000
committermjacob <mjacob@FreeBSD.org>2006-12-16 05:54:29 +0000
commitfd764f04247f7e3d8cde039e223356e4bbe14a6c (patch)
treea4538fc4cfc9dc15d1498e901d15aa6687fe9e64 /sys/dev/isp/isp_pci.c
parentda4cb165a04fbbbbf5fb4639e4de39d45c2efe3f (diff)
downloadFreeBSD-src-fd764f04247f7e3d8cde039e223356e4bbe14a6c.zip
FreeBSD-src-fd764f04247f7e3d8cde039e223356e4bbe14a6c.tar.gz
Implement ISP_RESET0 for PCI and SBUS attachments- isp_reset has
been modified to call ISP_RESET0 if it fails to do a reset. This gives us a chance to disable interrupts.
Diffstat (limited to 'sys/dev/isp/isp_pci.c')
-rw-r--r--sys/dev/isp/isp_pci.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index 6edffb1..cb4588f 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -81,6 +81,7 @@ static void
isp_pci_dmateardown(ispsoftc_t *, XS_T *, uint32_t);
+static void isp_pci_reset0(ispsoftc_t *);
static void isp_pci_reset1(ispsoftc_t *);
static void isp_pci_dumpregs(ispsoftc_t *, const char *);
@@ -91,7 +92,7 @@ static struct ispmdvec mdvec = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
isp_pci_dumpregs,
NULL,
@@ -105,7 +106,7 @@ static struct ispmdvec mdvec_1080 = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
isp_pci_dumpregs,
NULL,
@@ -119,7 +120,7 @@ static struct ispmdvec mdvec_12160 = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
isp_pci_dumpregs,
NULL,
@@ -133,7 +134,7 @@ static struct ispmdvec mdvec_2100 = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
isp_pci_dumpregs
};
@@ -145,7 +146,7 @@ static struct ispmdvec mdvec_2200 = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
isp_pci_dumpregs
};
@@ -157,7 +158,7 @@ static struct ispmdvec mdvec_2300 = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
isp_pci_dumpregs
};
@@ -169,7 +170,7 @@ static struct ispmdvec mdvec_2400 = {
isp_pci_mbxdma,
isp_pci_dmasetup,
isp_pci_dmateardown,
- NULL,
+ isp_pci_reset0,
isp_pci_reset1,
NULL
};
@@ -2882,6 +2883,12 @@ isp_pci_dmateardown(ispsoftc_t *isp, XS_T *xs, uint32_t handle)
static void
+isp_pci_reset0(ispsoftc_t *isp)
+{
+ ISP_DISABLE_INTS(isp);
+}
+
+static void
isp_pci_reset1(ispsoftc_t *isp)
{
if (!IS_24XX(isp)) {
OpenPOWER on IntegriCloud