esp.c: don't use get_cmd() for CMD_SEL DMA commands
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>
This commit is contained in:
parent
3fd325a2de
commit
9ff0fd12a2
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user