[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 51/88] esp.c: don't use get_cmd() for CMD_SEL DMA commands
From: |
Mark Cave-Ayland |
Subject: |
[PULL 51/88] esp.c: don't use get_cmd() for CMD_SEL DMA commands |
Date: |
Tue, 13 Feb 2024 19:40:15 +0000 |
This can now be done using the existing logic in esp_do_dma() and
do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Tested-by: Helge Deller <deller@gmx.de>
Tested-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20240112125420.514425-52-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
hw/scsi/esp.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
index 9f787d12a8..3cf8b2b4eb 100644
--- a/hw/scsi/esp.c
+++ b/hw/scsi/esp.c
@@ -396,8 +396,6 @@ static void handle_satn(ESPState *s)
static void handle_s_without_atn(ESPState *s)
{
- int32_t cmdlen;
-
if (s->dma && !s->dma_enabled) {
s->dma_cb = handle_s_without_atn;
return;
@@ -406,17 +404,17 @@ static void handle_s_without_atn(ESPState *s)
if (esp_select(s) < 0) {
return;
}
- cmdlen = get_cmd(s, ESP_CMDFIFO_SZ);
- if (cmdlen > 0) {
- s->cmdfifo_cdb_offset = 0;
- do_cmd(s);
- } else if (cmdlen == 0) {
- if (s->dma) {
- esp_raise_drq(s);
+
+ esp_set_phase(s, STAT_CD);
+ s->rregs[ESP_RSEQ] = SEQ_CD;
+ s->cmdfifo_cdb_offset = 0;
+
+ if (s->dma) {
+ esp_do_dma(s);
+ } else {
+ if (get_cmd(s, ESP_CMDFIFO_SZ)) {
+ do_cmd(s);
}
- /* Target present, but no cmd yet - switch to command phase */
- s->rregs[ESP_RSEQ] = SEQ_CD;
- esp_set_phase(s, STAT_CD);
}
}
--
2.39.2
- [PULL 45/88] esp.c: remove do_cmd from ESPState, (continued)
- [PULL 45/88] esp.c: remove do_cmd from ESPState, Mark Cave-Ayland, 2024/02/13
- [PULL 42/88] esp.c: convert do_dma_pdma_cb() do_cmd path to check for SCSI phase instead, Mark Cave-Ayland, 2024/02/13
- [PULL 49/88] esp.c: move CMD_SELATN end of message phase detection to esp_do_dma() and do_dma_pdma_cb(), Mark Cave-Ayland, 2024/02/13
- [PULL 46/88] esp.c: untangle MESSAGE OUT and COMMAND phase logic in esp_do_dma(), Mark Cave-Ayland, 2024/02/13
- [PULL 47/88] esp.c: untangle MESSAGE OUT and COMMAND phase logic in do_dma_pdma_cb(), Mark Cave-Ayland, 2024/02/13
- [PULL 69/88] esp.c: consolidate end of command sequence after ICCS command, Mark Cave-Ayland, 2024/02/13
- [PULL 70/88] esp.c: ensure that STAT_INT is cleared when reading ESP_RINTR, Mark Cave-Ayland, 2024/02/13
- [PULL 81/88] esp.c: remove redundant n variable in PDMA COMMAND phase, Mark Cave-Ayland, 2024/02/13
- [PULL 78/88] esp.c: consolidate DMA and PDMA logic in DATA OUT phase, Mark Cave-Ayland, 2024/02/13
- [PULL 64/88] esp.c: don't raise INTR_BS interrupt in DATA IN phase until TI command issued, Mark Cave-Ayland, 2024/02/13
- [PULL 51/88] esp.c: don't use get_cmd() for CMD_SEL DMA commands,
Mark Cave-Ayland <=
- [PULL 57/88] esp.c: rename data_in_ready to to data_ready, Mark Cave-Ayland, 2024/02/13
- [PULL 79/88] esp.c: consolidate DMA and PDMA logic in DATA IN phase, Mark Cave-Ayland, 2024/02/13
- [PULL 71/88] esp.c: don't clear the SCSI phase when reading ESP_RINTR, Mark Cave-Ayland, 2024/02/13
- [PULL 65/88] esp.c: move non-DMA TI logic to separate esp_nodma_ti_dataout() function, Mark Cave-Ayland, 2024/02/13
- [PULL 73/88] esp.c: remove restriction on FIFO read access when DMA memory routines defined, Mark Cave-Ayland, 2024/02/13
- [PULL 54/88] esp.c: move CMD_ICCS command logic to esp_do_dma(), Mark Cave-Ayland, 2024/02/13
- [PULL 87/88] esp.c: switch TypeInfo registration to use DEFINE_TYPES() macro, Mark Cave-Ayland, 2024/02/13
- [PULL 67/88] esp.c: replace get_cmd() with esp_do_nodma(), Mark Cave-Ayland, 2024/02/13
- [PULL 53/88] esp.c: replace do_dma_pdma_cb() with esp_do_dma(), Mark Cave-Ayland, 2024/02/13
- [PULL 88/88] esp.c: add my copyright to the file, Mark Cave-Ayland, 2024/02/13