mirror of https://github.com/xqemu/xqemu.git
audio: es1370: add exit function
Currently the es1370 device emulation doesn't have a exit function, hot unplug this device will leak some memory. Add a exit function to avoid this. Signed-off-by: Li Qiang <liqiang6-s@360.cn> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 585200c9.a968ca0a.1ab80.4c98@mx.google.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
8becab9523
commit
069eb7b2b8
|
@ -1041,6 +1041,19 @@ static void es1370_realize(PCIDevice *dev, Error **errp)
|
||||||
es1370_reset (s);
|
es1370_reset (s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void es1370_exit(PCIDevice *dev)
|
||||||
|
{
|
||||||
|
ES1370State *s = ES1370(dev);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 2; ++i) {
|
||||||
|
AUD_close_out(&s->card, s->dac_voice[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
AUD_close_in(&s->card, s->adc_voice);
|
||||||
|
AUD_remove_card(&s->card);
|
||||||
|
}
|
||||||
|
|
||||||
static int es1370_init (PCIBus *bus)
|
static int es1370_init (PCIBus *bus)
|
||||||
{
|
{
|
||||||
pci_create_simple (bus, -1, TYPE_ES1370);
|
pci_create_simple (bus, -1, TYPE_ES1370);
|
||||||
|
@ -1053,6 +1066,7 @@ static void es1370_class_init (ObjectClass *klass, void *data)
|
||||||
PCIDeviceClass *k = PCI_DEVICE_CLASS (klass);
|
PCIDeviceClass *k = PCI_DEVICE_CLASS (klass);
|
||||||
|
|
||||||
k->realize = es1370_realize;
|
k->realize = es1370_realize;
|
||||||
|
k->exit = es1370_exit;
|
||||||
k->vendor_id = PCI_VENDOR_ID_ENSONIQ;
|
k->vendor_id = PCI_VENDOR_ID_ENSONIQ;
|
||||||
k->device_id = PCI_DEVICE_ID_ENSONIQ_ES1370;
|
k->device_id = PCI_DEVICE_ID_ENSONIQ_ES1370;
|
||||||
k->class_id = PCI_CLASS_MULTIMEDIA_AUDIO;
|
k->class_id = PCI_CLASS_MULTIMEDIA_AUDIO;
|
||||||
|
|
Loading…
Reference in New Issue