Revision db895a1e hw/audio/gus.c
b/hw/audio/gus.c | ||
---|---|---|
251 | 251 |
PORTIO_END_OF_LIST (), |
252 | 252 |
}; |
253 | 253 |
|
254 |
static int gus_initfn (ISADevice *dev)
|
|
254 |
static void gus_realizefn (DeviceState *dev, Error **errp)
|
|
255 | 255 |
{ |
256 |
ISADevice *d = ISA_DEVICE(dev); |
|
256 | 257 |
GUSState *s = GUS (dev); |
257 | 258 |
struct audsettings as; |
258 | 259 |
|
... | ... | |
274 | 275 |
|
275 | 276 |
if (!s->voice) { |
276 | 277 |
AUD_remove_card (&s->card); |
277 |
return -1; |
|
278 |
error_setg(errp, "No voice"); |
|
279 |
return; |
|
278 | 280 |
} |
279 | 281 |
|
280 | 282 |
s->shift = 2; |
281 | 283 |
s->samples = AUD_get_buffer_size_out (s->voice) >> s->shift; |
282 | 284 |
s->mixbuf = g_malloc0 (s->samples << s->shift); |
283 | 285 |
|
284 |
isa_register_portio_list (dev, s->port, gus_portio_list1, s, "gus");
|
|
285 |
isa_register_portio_list (dev, (s->port + 0x100) & 0xf00,
|
|
286 |
isa_register_portio_list (d, s->port, gus_portio_list1, s, "gus"); |
|
287 |
isa_register_portio_list (d, (s->port + 0x100) & 0xf00, |
|
286 | 288 |
gus_portio_list2, s, "gus"); |
287 | 289 |
|
288 | 290 |
DMA_register_channel (s->emu.gusdma, GUS_read_DMA, s); |
289 | 291 |
s->emu.himemaddr = s->himem; |
290 | 292 |
s->emu.gusdatapos = s->emu.himemaddr + 1024 * 1024 + 32; |
291 | 293 |
s->emu.opaque = s; |
292 |
isa_init_irq (dev, &s->pic, s->emu.gusirq);
|
|
294 |
isa_init_irq (d, &s->pic, s->emu.gusirq); |
|
293 | 295 |
|
294 | 296 |
AUD_set_active_out (s->voice, 1); |
295 |
|
|
296 |
return 0; |
|
297 | 297 |
} |
298 | 298 |
|
299 | 299 |
static int GUS_init (ISABus *bus) |
... | ... | |
313 | 313 |
static void gus_class_initfn (ObjectClass *klass, void *data) |
314 | 314 |
{ |
315 | 315 |
DeviceClass *dc = DEVICE_CLASS (klass); |
316 |
ISADeviceClass *ic = ISA_DEVICE_CLASS (klass); |
|
317 |
ic->init = gus_initfn;
|
|
316 |
|
|
317 |
dc->realize = gus_realizefn;
|
|
318 | 318 |
dc->desc = "Gravis Ultrasound GF1"; |
319 | 319 |
dc->vmsd = &vmstate_gus; |
320 | 320 |
dc->props = gus_properties; |
Also available in: Unified diff