qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 21/42] esp: remove redundant pdma_start from ESPState


From: Laurent Vivier
Subject: Re: [PATCH v2 21/42] esp: remove redundant pdma_start from ESPState
Date: Tue, 2 Mar 2021 22:22:47 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0

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 <mark.cave-ayland@ilande.co.uk>
> ---
>  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 <laurent@vivier.eu>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]