Revision db895a1e hw/ide/isa.c

b/hw/ide/isa.c
65 65
    }
66 66
};
67 67

  
68
static int isa_ide_initfn(ISADevice *dev)
68
static void isa_ide_realizefn(DeviceState *dev, Error **errp)
69 69
{
70
    ISADevice *isadev = ISA_DEVICE(dev);
70 71
    ISAIDEState *s = ISA_IDE(dev);
71 72

  
72
    ide_bus_new(&s->bus, DEVICE(dev), 0, 2);
73
    ide_init_ioport(&s->bus, dev, s->iobase, s->iobase2);
74
    isa_init_irq(dev, &s->irq, s->isairq);
73
    ide_bus_new(&s->bus, dev, 0, 2);
74
    ide_init_ioport(&s->bus, isadev, s->iobase, s->iobase2);
75
    isa_init_irq(isadev, &s->irq, s->isairq);
75 76
    ide_init2(&s->bus, s->irq);
76
    vmstate_register(&dev->qdev, 0, &vmstate_ide_isa, s);
77
    return 0;
77
    vmstate_register(dev, 0, &vmstate_ide_isa, s);
78 78
};
79 79

  
80 80
ISADevice *isa_ide_init(ISABus *bus, int iobase, int iobase2, int isairq,
......
113 113
static void isa_ide_class_initfn(ObjectClass *klass, void *data)
114 114
{
115 115
    DeviceClass *dc = DEVICE_CLASS(klass);
116
    ISADeviceClass *ic = ISA_DEVICE_CLASS(klass);
117
    ic->init = isa_ide_initfn;
116

  
117
    dc->realize = isa_ide_realizefn;
118 118
    dc->fw_name = "ide";
119 119
    dc->reset = isa_ide_reset;
120 120
    dc->props = isa_ide_properties;

Also available in: Unified diff