summaryrefslogtreecommitdiffstats
path: root/sys/dev/aha/aha_isa.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2005-01-11 01:17:07 +0000
committerimp <imp@FreeBSD.org>2005-01-11 01:17:07 +0000
commit3fba2d8bb33bb85c7359fa9087c8cae7ae40ce99 (patch)
treed9c503660176819f41671dc63d86053c8feaa5f1 /sys/dev/aha/aha_isa.c
parent66b769150f0ef4785bd03079a94eccdadd165fcb (diff)
downloadFreeBSD-src-3fba2d8bb33bb85c7359fa9087c8cae7ae40ce99.zip
FreeBSD-src-3fba2d8bb33bb85c7359fa9087c8cae7ae40ce99.tar.gz
Final attempt to make aha 1542A working. If not, oh well, I don't
have the card and no way to reproduce problems. We do this by applying the workaround to firmware revsion 0. PR: 14334
Diffstat (limited to 'sys/dev/aha/aha_isa.c')
-rw-r--r--sys/dev/aha/aha_isa.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/dev/aha/aha_isa.c b/sys/dev/aha/aha_isa.c
index ba27bc5..a9a36ca 100644
--- a/sys/dev/aha/aha_isa.c
+++ b/sys/dev/aha/aha_isa.c
@@ -265,8 +265,18 @@ aha_isa_attach(device_t dev)
bus_release_resource(dev, SYS_RES_DRQ, aha->drqrid, aha->drq);
aha_free(aha);
return (ENOMEM);
+ }
+ /*
+ * The 1542A and B look the same. So we guess based on
+ * the firmware revision. It appears that only rev 0 is on
+ * the A cards.
+ */
+ if (aha->boardid <= BOARD_1542 && aha->fw_major == 0) {
+ device_printf(dev, "154xA may not work\n");
+ aha->ccb_sg_opcode = INITIATOR_SG_CCB;
+ aha->ccb_ccb_opcode = INITIATOR_CCB;
}
-
+
error = aha_attach(aha);
if (error) {
device_printf(dev, "attach failed\n");
OpenPOWER on IntegriCloud