Message ID | 20191008142539.7793-6-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | hw: Convert various reset() handler to DeviceReset | expand |
Philippe Mathieu-Daudé <philmd@redhat.com> 于2019年10月8日周二 下午10:36写道: > The VIA82C686B IDE controller is a PCI device, it will be reset > when the PCI bus it stands on is reset. > > Convert its reset handler into a proper Device reset method. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Reviewed-by: Li Qiang <liq3ea@gmail.com> > --- > hw/ide/via.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/hw/ide/via.c b/hw/ide/via.c > index 7087dc676e..053622bd82 100644 > --- a/hw/ide/via.c > +++ b/hw/ide/via.c > @@ -29,7 +29,6 @@ > #include "migration/vmstate.h" > #include "qemu/module.h" > #include "sysemu/dma.h" > -#include "sysemu/reset.h" > > #include "hw/ide/pci.h" > #include "trace.h" > @@ -120,10 +119,10 @@ static void via_ide_set_irq(void *opaque, int n, int > level) > } > } > > -static void via_ide_reset(void *opaque) > +static void via_ide_reset(DeviceState *dev) > { > - PCIIDEState *d = opaque; > - PCIDevice *pd = PCI_DEVICE(d); > + PCIIDEState *d = PCI_IDE(dev); > + PCIDevice *pd = PCI_DEVICE(dev); > uint8_t *pci_conf = pd->config; > int i; > > @@ -172,8 +171,6 @@ static void via_ide_realize(PCIDevice *dev, Error > **errp) > pci_set_long(pci_conf + PCI_CAPABILITY_LIST, 0x000000c0); > dev->wmask[PCI_INTERRUPT_LINE] = 0xf; > > - qemu_register_reset(via_ide_reset, d); > - > memory_region_init_io(&d->data_bar[0], OBJECT(d), > &pci_ide_data_le_ops, > &d->bus[0], "via-ide0-data", 8); > pci_register_bar(dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &d->data_bar[0]); > @@ -229,6 +226,7 @@ static void via_ide_class_init(ObjectClass *klass, > void *data) > DeviceClass *dc = DEVICE_CLASS(klass); > PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); > > + dc->reset = via_ide_reset; > k->realize = via_ide_realize; > k->exit = via_ide_exitfn; > k->vendor_id = PCI_VENDOR_ID_VIA; > -- > 2.21.0 > > >
diff --git a/hw/ide/via.c b/hw/ide/via.c index 7087dc676e..053622bd82 100644 --- a/hw/ide/via.c +++ b/hw/ide/via.c @@ -29,7 +29,6 @@ #include "migration/vmstate.h" #include "qemu/module.h" #include "sysemu/dma.h" -#include "sysemu/reset.h" #include "hw/ide/pci.h" #include "trace.h" @@ -120,10 +119,10 @@ static void via_ide_set_irq(void *opaque, int n, int level) } } -static void via_ide_reset(void *opaque) +static void via_ide_reset(DeviceState *dev) { - PCIIDEState *d = opaque; - PCIDevice *pd = PCI_DEVICE(d); + PCIIDEState *d = PCI_IDE(dev); + PCIDevice *pd = PCI_DEVICE(dev); uint8_t *pci_conf = pd->config; int i; @@ -172,8 +171,6 @@ static void via_ide_realize(PCIDevice *dev, Error **errp) pci_set_long(pci_conf + PCI_CAPABILITY_LIST, 0x000000c0); dev->wmask[PCI_INTERRUPT_LINE] = 0xf; - qemu_register_reset(via_ide_reset, d); - memory_region_init_io(&d->data_bar[0], OBJECT(d), &pci_ide_data_le_ops, &d->bus[0], "via-ide0-data", 8); pci_register_bar(dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &d->data_bar[0]); @@ -229,6 +226,7 @@ static void via_ide_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); + dc->reset = via_ide_reset; k->realize = via_ide_realize; k->exit = via_ide_exitfn; k->vendor_id = PCI_VENDOR_ID_VIA;
The VIA82C686B IDE controller is a PCI device, it will be reset when the PCI bus it stands on is reset. Convert its reset handler into a proper Device reset method. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- hw/ide/via.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)