qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] [PATCH 13/16] hw/dma/pl080: Provide device reset function


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-arm] [PATCH 13/16] hw/dma/pl080: Provide device reset function
Date: Fri, 10 Aug 2018 02:11:14 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 08/09/2018 10:01 AM, Peter Maydell wrote:
> The PL080/PL081 model is missing a reset function; implement it.
> 
> Signed-off-by: Peter Maydell <address@hidden>

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

> ---
>  hw/dma/pl080.c | 25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> diff --git a/hw/dma/pl080.c b/hw/dma/pl080.c
> index 8f9f3e08d9a..a7aacad74f0 100644
> --- a/hw/dma/pl080.c
> +++ b/hw/dma/pl080.c
> @@ -348,6 +348,30 @@ static const MemoryRegionOps pl080_ops = {
>      .endianness = DEVICE_NATIVE_ENDIAN,
>  };
>  
> +static void pl080_reset(DeviceState *dev)
> +{
> +    PL080State *s = PL080(dev);
> +    int i;
> +
> +    s->tc_int = 0;
> +    s->tc_mask = 0;
> +    s->err_int = 0;
> +    s->err_mask = 0;
> +    s->conf = 0;
> +    s->sync = 0;
> +    s->req_single = 0;
> +    s->req_burst = 0;
> +    s->running = 0;
> +
> +    for (i = 0; i < s->nchannels; i++) {
> +        s->chan[i].src = 0;
> +        s->chan[i].dest = 0;
> +        s->chan[i].lli = 0;
> +        s->chan[i].ctrl = 0;
> +        s->chan[i].conf = 0;
> +    }
> +}
> +
>  static void pl080_init(Object *obj)
>  {
>      SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
> @@ -393,6 +417,7 @@ static void pl080_class_init(ObjectClass *oc, void *data)
>      dc->vmsd = &vmstate_pl080;
>      dc->realize = pl080_realize;
>      dc->props = pl080_properties;
> +    dc->reset = pl080_reset;
>  }
>  
>  static const TypeInfo pl080_info = {
> 



reply via email to

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