Le 09/02/2021 à 20:29, Mark Cave-Ayland a écrit :
> Now that PDMA SCSI commands are accumulated in cmdbuf in the same way as
> normal
> commands, the existing logic for locating the start of the SCSI command in
> cmdbuf via cmdlen can be used. This enables the PDMA-specific pdma_start and
> also get_pdma_buf() to be removed.
>
> Signed-off-by: Mark Cave-Ayland
> ---
> hw/scsi/esp.c | 19 ++-
> include/hw/scsi/esp.h | 1 -
> 2 files changed, 2 insertions(+), 18 deletions(-)
>
> diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
> index 7055520a26..91f65a5d9b 100644
> --- a/hw/scsi/esp.c
> +++ b/hw/scsi/esp.c
> @@ -131,24 +131,10 @@ static void set_pdma(ESPState *s, enum pdma_origin_id
> origin,
> uint32_t index, uint32_t len)
> {
> s->pdma_origin = origin;
> -s->pdma_start = index;
> s->pdma_cur = index;
> s->pdma_len = len;
> }
>
> -static uint8_t *get_pdma_buf(ESPState *s)
> -{
> -switch (s->pdma_origin) {
> -case TI:
> -return s->ti_buf;
> -case CMD:
> -return s->cmdbuf;
> -case ASYNC:
> -return s->async_buf;
> -}
> -return NULL;
> -}
> -
> static uint8_t esp_pdma_read(ESPState *s)
> {
> uint32_t dmalen = esp_get_tc(s);
> @@ -339,7 +325,7 @@ static void s_without_satn_pdma_cb(ESPState *s)
> }
> s->do_cmd = 0;
> if (s->cmdlen) {
> -do_busid_cmd(s, get_pdma_buf(s) + s->pdma_start, 0);
> +do_busid_cmd(s, s->cmdbuf, 0);
> }
> }
>
> @@ -441,7 +427,7 @@ static void esp_dma_done(ESPState *s)
> static void do_dma_pdma_cb(ESPState *s)
> {
> int to_device = ((s->rregs[ESP_RSTAT] & 7) == STAT_DO);
> -int len = s->pdma_cur - s->pdma_start;
> +int len = s->pdma_cur;
>
> if (s->do_cmd) {
> s->ti_size = 0;
> @@ -868,7 +854,6 @@ static const VMStateDescription vmstate_esp_pdma = {
> .fields = (VMStateField[]) {
> VMSTATE_INT32(pdma_origin, ESPState),
> VMSTATE_UINT32(pdma_len, ESPState),
> -VMSTATE_UINT32(pdma_start, ESPState),
> VMSTATE_UINT32(pdma_cur, ESPState),
> VMSTATE_END_OF_LIST()
> }
> diff --git a/include/hw/scsi/esp.h b/include/hw/scsi/esp.h
> index c323d43f70..578d936214 100644
> --- a/include/hw/scsi/esp.h
> +++ b/include/hw/scsi/esp.h
> @@ -58,7 +58,6 @@ struct ESPState {
> void (*dma_cb)(ESPState *s);
> int pdma_origin;
> uint32_t pdma_len;
> -uint32_t pdma_start;
> uint32_t pdma_cur;
> void (*pdma_cb)(ESPState *s);
>
>
Reviewed-by: Laurent Vivier