summaryrefslogtreecommitdiff
path: root/hw/audio
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2014-09-16 07:59:55 +0200
committerGerd Hoffmann <kraxel@redhat.com>2014-09-29 10:20:05 +0200
commit133771477c39f3716d9a85609aca0d3e5a77c55c (patch)
tree2c572da2c3096e9f7b5300bfb874c846422fb4f8 /hw/audio
parent81ab11a7a524d12412a59ef49c6b270671e62ea0 (diff)
downloadqemu-133771477c39f3716d9a85609aca0d3e5a77c55c.tar.gz
ac97: register reset via qom
So it gets properly unregistered on hot-unplug. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/audio')
-rw-r--r--hw/audio/ac97.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/audio/ac97.c b/hw/audio/ac97.c
index 0e22bb9fbd..111ec0e848 100644
--- a/hw/audio/ac97.c
+++ b/hw/audio/ac97.c
@@ -1321,9 +1321,9 @@ static const MemoryRegionOps ac97_io_nabm_ops = {
.endianness = DEVICE_LITTLE_ENDIAN,
};
-static void ac97_on_reset (void *opaque)
+static void ac97_on_reset (DeviceState *dev)
{
- AC97LinkState *s = opaque;
+ AC97LinkState *s = container_of(dev, AC97LinkState, dev.qdev);
reset_bm_regs (s, &s->bm_regs[0]);
reset_bm_regs (s, &s->bm_regs[1]);
@@ -1382,9 +1382,8 @@ static int ac97_initfn (PCIDevice *dev)
"ac97-nabm", 256);
pci_register_bar (&s->dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->io_nam);
pci_register_bar (&s->dev, 1, PCI_BASE_ADDRESS_SPACE_IO, &s->io_nabm);
- qemu_register_reset (ac97_on_reset, s);
AUD_register_card ("ac97", &s->card);
- ac97_on_reset (s);
+ ac97_on_reset (&s->dev.qdev);
return 0;
}
@@ -1413,6 +1412,7 @@ static void ac97_class_init (ObjectClass *klass, void *data)
dc->desc = "Intel 82801AA AC97 Audio";
dc->vmsd = &vmstate_ac97;
dc->props = ac97_properties;
+ dc->reset = ac97_on_reset;
}
static const TypeInfo ac97_info = {