summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2002-08-17 17:21:54 +0000
committermjacob <mjacob@FreeBSD.org>2002-08-17 17:21:54 +0000
commit4b94fc7cec90e6c9a59c2e98c481e8d40b185268 (patch)
treefc780b502997a72cfa55b413c9e470f45486bca7 /sys/dev/isp
parent2acca76e3d2ed04855c222c128ab3beff314a6ff (diff)
downloadFreeBSD-src-4b94fc7cec90e6c9a59c2e98c481e8d40b185268.zip
FreeBSD-src-4b94fc7cec90e6c9a59c2e98c481e8d40b185268.tar.gz
Fix the incorrect parsing of the Risc2Host isr. For RIO_16,
fast posting command completion, and fast post CTIO completion, the upper half of Risc2Host is a copy of mailbox #1- *not* mailbox #0. MFC after: 1 day
Diffstat (limited to 'sys/dev/isp')
-rw-r--r--sys/dev/isp/isp_pci.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index 513b92f..1e60ee5 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -885,11 +885,23 @@ isp_pci_rd_isr_2300(struct ispsoftc *isp, u_int16_t *isrp,
case ISPR2HST_MBX_OK:
case ISPR2HST_MBX_FAIL:
case ISPR2HST_ASYNC_EVENT:
+ *isrp = r2hisr & 0xffff;
+ *mbox0p = (r2hisr >> 16);
+ *semap = 1;
+ return (1);
case ISPR2HST_RIO_16:
+ *isrp = r2hisr & 0xffff;
+ *mbox0p = ASYNC_RIO1;
+ *semap = 1;
+ return (1);
case ISPR2HST_FPOST:
+ *isrp = r2hisr & 0xffff;
+ *mbox0p = ASYNC_CMD_CMPLT;
+ *semap = 1;
+ return (1);
case ISPR2HST_FPOST_CTIO:
*isrp = r2hisr & 0xffff;
- *mbox0p = (r2hisr >> 16);
+ *mbox0p = ASYNC_CTIO_DONE;
*semap = 1;
return (1);
case ISPR2HST_RSPQ_UPDATE:
OpenPOWER on IntegriCloud