summaryrefslogtreecommitdiff
path: root/sys/dev/aha
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>1998-12-15 02:51:54 +0000
committerWarner Losh <imp@FreeBSD.org>1998-12-15 02:51:54 +0000
commitb128b9cf2adef443ee851f2290d04cfaa544fe39 (patch)
tree8694c52889d9da795b4dd8dcc2b70b796d8d6cbd /sys/dev/aha
parent53dfde793f6d3c26ed04f6e38ce0484abe038fbc (diff)
Notes
Diffstat (limited to 'sys/dev/aha')
-rw-r--r--sys/dev/aha/aha.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/aha/aha.c b/sys/dev/aha/aha.c
index 82845c2f2b31..4d9df2ffa22b 100644
--- a/sys/dev/aha/aha.c
+++ b/sys/dev/aha/aha.c
@@ -55,7 +55,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: aha.c,v 1.14 1998/12/04 22:54:44 archie Exp $
+ * $Id: aha.c,v 1.15 1998/12/13 00:05:04 gibbs Exp $
*/
#include <sys/param.h>
@@ -358,13 +358,18 @@ aha_probe(struct aha_softc* aha)
* errs on the side of conservatism. Besides, no one will
* notice a 10mS delay here, even the 1542B card users :-)
*
+ * Some compatible cards return 0 here.
+ *
* XXX I'm not sure how this will impact other cloned cards
+ *
+ * This really should be replaced with the esetup command, since
+ * that appears to be more reliable.
*/
if (aha->boardid <= 0x42) {
/* Wait 10ms before reading */
DELAY(10000);
status = aha_inb(aha, GEOMETRY_REG);
- if (status != 0xff) {
+ if (status != 0xff && status != 0x00) {
PRVERB(("%s: Geometry Register test failed\n",
aha_name(aha)));
return (ENXIO);
@@ -1357,7 +1362,7 @@ ahadone(struct aha_softc *aha, struct aha_ccb *accb, aha_mbi_comp_code_t comp_co
/* An error occured */
switch(accb->hccb.ahastat) {
case AHASTAT_DATARUN_ERROR:
- if (accb->hccb.data_len <= 0) {
+ if (aha_a24tou(accb->hccb.data_len) <= 0) {
csio->ccb_h.status = CAM_DATA_RUN_ERR;
break;
}