Revision db895a1e hw/audio/pcspk.c

b/hw/audio/pcspk.c
163 163
    },
164 164
};
165 165

  
166
static int pcspk_initfn(ISADevice *dev)
166
static void pcspk_initfn(Object *obj)
167 167
{
168
    PCSpkState *s = PC_SPEAKER(dev);
168
    PCSpkState *s = PC_SPEAKER(obj);
169 169

  
170 170
    memory_region_init_io(&s->ioport, &pcspk_io_ops, s, "elcr", 1);
171
    isa_register_ioport(dev, &s->ioport, s->iobase);
171
}
172 172

  
173
    pcspk_state = s;
173
static void pcspk_realizefn(DeviceState *dev, Error **errp)
174
{
175
    ISADevice *isadev = ISA_DEVICE(dev);
176
    PCSpkState *s = PC_SPEAKER(dev);
174 177

  
175
    return 0;
178
    isa_register_ioport(isadev, &s->ioport, s->iobase);
179

  
180
    pcspk_state = s;
176 181
}
177 182

  
178 183
static Property pcspk_properties[] = {
......
184 189
static void pcspk_class_initfn(ObjectClass *klass, void *data)
185 190
{
186 191
    DeviceClass *dc = DEVICE_CLASS(klass);
187
    ISADeviceClass *ic = ISA_DEVICE_CLASS(klass);
188 192

  
189
    ic->init = pcspk_initfn;
193
    dc->realize = pcspk_realizefn;
190 194
    dc->no_user = 1;
191 195
    dc->props = pcspk_properties;
192 196
}
......
195 199
    .name           = TYPE_PC_SPEAKER,
196 200
    .parent         = TYPE_ISA_DEVICE,
197 201
    .instance_size  = sizeof(PCSpkState),
202
    .instance_init  = pcspk_initfn,
198 203
    .class_init     = pcspk_class_initfn,
199 204
};
200 205

  

Also available in: Unified diff