From 6674865c56fe428ae6501a0a5b7b1e519a1392fd Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 17 Oct 2017 01:35:41 +0200 Subject: [PATCH] The AHA and BusLogic controller reset now resets less things, fixes NT 3.1 Setup hanging after detecting the AHA-1542CF with BIOS enabled. --- src/scsi/scsi_aha154x.c | 14 -------------- src/scsi/scsi_x54x.c | 13 +++++++------ 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/src/scsi/scsi_aha154x.c b/src/scsi/scsi_aha154x.c index b0ac065c3..12565ba8e 100644 --- a/src/scsi/scsi_aha154x.c +++ b/src/scsi/scsi_aha154x.c @@ -444,19 +444,6 @@ aha_setup_data(void *p) } -static void -aha_reset(void *p) -{ - x54x_t *dev = (x54x_t *)p; - - dev->Lock = 0; - dev->shram_mode = 0; - dev->MailboxIsBIOS = 0; - dev->BIOSMailboxCount = 0; - dev->BIOSMailboxOutPosCur = 0; -} - - static void aha_do_bios_mail(x54x_t *dev) { @@ -798,7 +785,6 @@ aha_init(device_t *info) dev->get_ven_param_len = aha_param_len; dev->ven_cmds = aha_cmds; dev->get_ven_data = aha_setup_data; - dev->ven_reset = aha_reset; strcpy(dev->vendor, "Adaptec"); diff --git a/src/scsi/scsi_x54x.c b/src/scsi/scsi_x54x.c index 451c6aa30..b52d332e1 100644 --- a/src/scsi/scsi_x54x.c +++ b/src/scsi/scsi_x54x.c @@ -1233,7 +1233,10 @@ x54x_mbo_process(x54x_t *dev) } } - dev->MailboxReq--; + if (dev->MailboxIsBIOS) + dev->BIOSMailboxReq--; + else + dev->MailboxReq--; return 1; } @@ -1406,6 +1409,7 @@ x54x_in(uint16_t port, void *priv) break; } + x54x_log("%s: Read Port 0x%02X, Value %02X\n", dev->name, port, ret); return(ret); } @@ -1459,13 +1463,12 @@ x54x_reset_poll(void *priv) static void x54x_reset(x54x_t *dev) { + clear_irq(dev); dev->Geometry = 0x80; dev->Command = 0xFF; dev->CmdParam = 0; dev->CmdParamLeft = 0; - dev->IrqEnabled = 1; - dev->MailboxCount = 0; - dev->MailboxOutPosCur = 0; + dev->Mbx24bit = 1; dev->MailboxInPosCur = 0; dev->MailboxOutInterrupts = 0; dev->PendingInterrupt = 0; @@ -1473,8 +1476,6 @@ x54x_reset(x54x_t *dev) if (dev->ven_reset) { dev->ven_reset(dev); } - - clear_irq(dev); }