hw/dma/pl080: Provide device reset function
The PL080/PL081 model is missing a reset function; implement it. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
This commit is contained in:
parent
112a829f8f
commit
c193304d4f
@ -348,6 +348,30 @@ static const MemoryRegionOps pl080_ops = {
|
|||||||
.endianness = DEVICE_NATIVE_ENDIAN,
|
.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)
|
static void pl080_init(Object *obj)
|
||||||
{
|
{
|
||||||
SysBusDevice *sbd = SYS_BUS_DEVICE(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->vmsd = &vmstate_pl080;
|
||||||
dc->realize = pl080_realize;
|
dc->realize = pl080_realize;
|
||||||
dc->props = pl080_properties;
|
dc->props = pl080_properties;
|
||||||
|
dc->reset = pl080_reset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const TypeInfo pl080_info = {
|
static const TypeInfo pl080_info = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user