diff options
author | mjacob <mjacob@FreeBSD.org> | 2002-08-17 17:21:54 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2002-08-17 17:21:54 +0000 |
commit | 4b94fc7cec90e6c9a59c2e98c481e8d40b185268 (patch) | |
tree | fc780b502997a72cfa55b413c9e470f45486bca7 /sys/dev/isp | |
parent | 2acca76e3d2ed04855c222c128ab3beff314a6ff (diff) | |
download | FreeBSD-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.c | 14 |
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: |