mirror of https://github.com/xemu-project/xemu.git
hw/dma: Pass parent object to i8257_dma_init()
Set I8257 instances parent (migration isn't affected). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20240213114426.87836-1-philmd@linaro.org>
This commit is contained in:
parent
3c5f86a226
commit
5e37bc4997
|
@ -129,7 +129,7 @@ static void i82374_realize(DeviceState *dev, Error **errp)
|
|||
error_setg(errp, "DMA already initialized on ISA bus");
|
||||
return;
|
||||
}
|
||||
i8257_dma_init(isa_bus, true);
|
||||
i8257_dma_init(OBJECT(dev), isa_bus, true);
|
||||
|
||||
portio_list_init(&s->port_list, OBJECT(s), i82374_portio_list, s,
|
||||
"i82374");
|
||||
|
|
|
@ -632,12 +632,13 @@ static void i8257_register_types(void)
|
|||
|
||||
type_init(i8257_register_types)
|
||||
|
||||
void i8257_dma_init(ISABus *bus, bool high_page_enable)
|
||||
void i8257_dma_init(Object *parent, ISABus *bus, bool high_page_enable)
|
||||
{
|
||||
ISADevice *isa1, *isa2;
|
||||
DeviceState *d;
|
||||
|
||||
isa1 = isa_new(TYPE_I8257);
|
||||
object_property_add_child(parent, "dma[*]", OBJECT(isa1));
|
||||
d = DEVICE(isa1);
|
||||
qdev_prop_set_int32(d, "base", 0x00);
|
||||
qdev_prop_set_int32(d, "page-base", 0x80);
|
||||
|
@ -646,6 +647,7 @@ void i8257_dma_init(ISABus *bus, bool high_page_enable)
|
|||
isa_realize_and_unref(isa1, bus, &error_fatal);
|
||||
|
||||
isa2 = isa_new(TYPE_I8257);
|
||||
object_property_add_child(parent, "dma[*]", OBJECT(isa2));
|
||||
d = DEVICE(isa2);
|
||||
qdev_prop_set_int32(d, "base", 0xc0);
|
||||
qdev_prop_set_int32(d, "page-base", 0x88);
|
||||
|
|
|
@ -310,7 +310,7 @@ static void pc_init1(MachineState *machine,
|
|||
qdev_prop_set_int32(DEVICE(rtc_state), "base_year", 2000);
|
||||
isa_realize_and_unref(rtc_state, isa_bus, &error_fatal);
|
||||
|
||||
i8257_dma_init(isa_bus, 0);
|
||||
i8257_dma_init(OBJECT(machine), isa_bus, 0);
|
||||
pcms->hpet_enabled = false;
|
||||
idebus[0] = NULL;
|
||||
idebus[1] = NULL;
|
||||
|
|
|
@ -739,7 +739,7 @@ static void ich9_lpc_realize(PCIDevice *d, Error **errp)
|
|||
|
||||
isa_bus_register_input_irqs(isa_bus, lpc->gsi);
|
||||
|
||||
i8257_dma_init(isa_bus, 0);
|
||||
i8257_dma_init(OBJECT(d), isa_bus, 0);
|
||||
|
||||
/* RTC */
|
||||
qdev_prop_set_int32(DEVICE(&lpc->rtc), "base_year", 2000);
|
||||
|
|
|
@ -336,7 +336,7 @@ static void pci_piix_realize(PCIDevice *dev, const char *uhci_type,
|
|||
i8254_pit_init(isa_bus, 0x40, 0, NULL);
|
||||
}
|
||||
|
||||
i8257_dma_init(isa_bus, 0);
|
||||
i8257_dma_init(OBJECT(dev), isa_bus, 0);
|
||||
|
||||
/* RTC */
|
||||
qdev_prop_set_int32(DEVICE(&d->rtc), "base_year", 2000);
|
||||
|
|
|
@ -731,7 +731,7 @@ static void via_isa_realize(PCIDevice *d, Error **errp)
|
|||
s->isa_irqs_in = i8259_init(isa_bus, *isa_irq);
|
||||
isa_bus_register_input_irqs(isa_bus, s->isa_irqs_in);
|
||||
i8254_pit_init(isa_bus, 0x40, 0, NULL);
|
||||
i8257_dma_init(isa_bus, 0);
|
||||
i8257_dma_init(OBJECT(d), isa_bus, 0);
|
||||
|
||||
/* RTC */
|
||||
qdev_prop_set_int32(DEVICE(&s->rtc), "base_year", 2000);
|
||||
|
|
|
@ -289,7 +289,7 @@ static void mips_jazz_init(MachineState *machine,
|
|||
/* ISA devices */
|
||||
i8259 = i8259_init(isa_bus, env->irq[4]);
|
||||
isa_bus_register_input_irqs(isa_bus, i8259);
|
||||
i8257_dma_init(isa_bus, 0);
|
||||
i8257_dma_init(OBJECT(rc4030), isa_bus, 0);
|
||||
pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
|
||||
pcspk = isa_new(TYPE_PC_SPEAKER);
|
||||
object_property_set_link(OBJECT(pcspk), "pit", OBJECT(pit), &error_fatal);
|
||||
|
|
|
@ -45,6 +45,6 @@ struct I8257State {
|
|||
PortioList portio_pageh;
|
||||
};
|
||||
|
||||
void i8257_dma_init(ISABus *bus, bool high_page_enable);
|
||||
void i8257_dma_init(Object *parent, ISABus *bus, bool high_page_enable);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue