summaryrefslogtreecommitdiffstats
path: root/sys/i4b
diff options
context:
space:
mode:
authorgj <gj@FreeBSD.org>2004-07-18 20:13:31 +0000
committergj <gj@FreeBSD.org>2004-07-18 20:13:31 +0000
commitca2f9ba7d2d8f9ebcf63adba3aa7596655c34c36 (patch)
tree1ed8eda21ae6fc178cd0e3ffa9f22bc617028579 /sys/i4b
parent63066bad3b7293a7d1084c4ca76eace14ac927ce (diff)
downloadFreeBSD-src-ca2f9ba7d2d8f9ebcf63adba3aa7596655c34c36.zip
FreeBSD-src-ca2f9ba7d2d8f9ebcf63adba3aa7596655c34c36.tar.gz
Fix a possible hang which apparently occurs during a warm boot (cold boot
does not display the symptom). Evidently the ifpi2 controller needs to be massaged more than it was. Note that this does not close the PR since it was filed against 4.9. MFC: 5 days PR: kern/68756 Submitted by: Ari Suutari <ari.suutari@syncrontech.com>
Diffstat (limited to 'sys/i4b')
-rw-r--r--sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c b/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c
index 3f83859..89a7c14 100644
--- a/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c
+++ b/sys/i4b/layer1/ifpi2/i4b_ifpi2_pci.c
@@ -148,6 +148,7 @@ struct l1_softc *ifpi2_scp[IFPI2_MAXUNIT];
/*
* AVM PCI Status Latch 0 read only bits
*/
+#define ASL_RESET 0x01
#define ASL_TIMERRESET 0x04
#define ASL_ENABLE_INT 0x08
@@ -559,6 +560,13 @@ avma1pp2_attach_avma1pp(device_t dev)
printf("avma1pp2_attach: 1 HSCX_STAT %x\n", v);
#endif
+ bus_space_write_1(btag, bhandle, STAT0_OFFSET, 0);
+ DELAY(SEC_DELAY/100); /* 10 ms */
+ bus_space_write_1(btag, bhandle, STAT0_OFFSET, ASL_RESET);
+ DELAY(SEC_DELAY/100); /* 10 ms */
+ bus_space_write_1(btag, bhandle, STAT0_OFFSET, 0);
+ DELAY(SEC_DELAY/100); /* 10 ms */
+
bus_space_write_1(btag, bhandle, STAT0_OFFSET, ASL_TIMERRESET);
DELAY(SEC_DELAY/100); /* 10 ms */
bus_space_write_1(btag, bhandle, STAT0_OFFSET, ASL_ENABLE_INT);
OpenPOWER on IntegriCloud