From df91fd4ecdc777fbf6282f99656f74a9edab69db Mon Sep 17 00:00:00 2001 From: Mark Cave-Ayland Date: Fri, 12 Jan 2024 12:53:36 +0000 Subject: [PATCH] esp.c: convert esp_reg_write() do_cmd path to check for SCSI phase instead Currently do_cmd is used to determine whether MESSAGE OUT and COMMAND phase data is being accumulated in cmdfifo. Update esp_do_dma() to check directly for these two SCSI phases instead. Signed-off-by: Mark Cave-Ayland Tested-by: Helge Deller Tested-by: Thomas Huth Message-Id: <20240112125420.514425-45-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland --- hw/scsi/esp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index 14759ada78..e679b1c39b 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c @@ -1207,7 +1207,7 @@ void esp_reg_write(ESPState *s, uint32_t saddr, uint64_t val) s->rregs[ESP_RSTAT] &= ~STAT_TC; break; case ESP_FIFO: - if (s->do_cmd) { + if (esp_get_phase(s) == STAT_MO || esp_get_phase(s) == STAT_CD) { if (!fifo8_is_full(&s->fifo)) { esp_fifo_push(&s->fifo, val); esp_fifo_push(&s->cmdfifo, fifo8_pop(&s->fifo));