audio: rework pcspk_init()

Instead of creating and returning the pc speaker accept it as argument.
That allows to rework the initialization workflow in followup patches.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20200702132525.6849-16-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2020-07-02 15:25:20 +02:00
parent dea1fb887c
commit 525d654d7a
4 changed files with 4 additions and 8 deletions

View File

@ -1219,7 +1219,7 @@ void pc_basic_device_init(struct PCMachineState *pcms,
/* connect PIT to output control line of the HPET */ /* connect PIT to output control line of the HPET */
qdev_connect_gpio_out(hpet, 0, qdev_get_gpio_in(DEVICE(pit), 0)); qdev_connect_gpio_out(hpet, 0, qdev_get_gpio_in(DEVICE(pit), 0));
} }
pcspk_init(isa_bus, pit); pcspk_init(isa_new(TYPE_PC_SPEAKER), isa_bus, pit);
} }
i8257_dma_init(isa_bus, 0); i8257_dma_init(isa_bus, 0);

View File

@ -102,7 +102,7 @@ static void i82378_realize(PCIDevice *pci, Error **errp)
pit = i8254_pit_init(isabus, 0x40, 0, NULL); pit = i8254_pit_init(isabus, 0x40, 0, NULL);
/* speaker */ /* speaker */
pcspk_init(isabus, pit); pcspk_init(isa_new(TYPE_PC_SPEAKER), isabus, pit);
/* 2 82C37 (dma) */ /* 2 82C37 (dma) */
isa_create_simple(isabus, "i82374"); isa_create_simple(isabus, "i82374");

View File

@ -250,7 +250,7 @@ static void mips_jazz_init(MachineState *machine,
isa_bus_irqs(isa_bus, i8259); isa_bus_irqs(isa_bus, i8259);
i8257_dma_init(isa_bus, 0); i8257_dma_init(isa_bus, 0);
pit = i8254_pit_init(isa_bus, 0x40, 0, NULL); pit = i8254_pit_init(isa_bus, 0x40, 0, NULL);
pcspk_init(isa_bus, pit); pcspk_init(isa_new(TYPE_PC_SPEAKER), isa_bus, pit);
/* Video card */ /* Video card */
switch (jazz_model) { switch (jazz_model) {

View File

@ -31,18 +31,14 @@
#define TYPE_PC_SPEAKER "isa-pcspk" #define TYPE_PC_SPEAKER "isa-pcspk"
static inline ISADevice *pcspk_init(ISABus *bus, ISADevice *pit) static inline void pcspk_init(ISADevice *isadev, ISABus *bus, ISADevice *pit)
{ {
DeviceState *dev; DeviceState *dev;
ISADevice *isadev;
isadev = isa_new(TYPE_PC_SPEAKER);
dev = DEVICE(isadev); dev = DEVICE(isadev);
qdev_prop_set_uint32(dev, "iobase", 0x61); qdev_prop_set_uint32(dev, "iobase", 0x61);
object_property_set_link(OBJECT(dev), OBJECT(pit), "pit", NULL); object_property_set_link(OBJECT(dev), OBJECT(pit), "pit", NULL);
isa_realize_and_unref(isadev, bus, &error_fatal); isa_realize_and_unref(isadev, bus, &error_fatal);
return isadev;
} }
#endif /* HW_PCSPK_H */ #endif /* HW_PCSPK_H */