Revision d88a76d1 hw/ac97.c
b/hw/ac97.c | ||
---|---|---|
1308 | 1308 |
mixer_reset (s); |
1309 | 1309 |
} |
1310 | 1310 |
|
1311 |
int ac97_init (PCIBus *bus)
|
|
1311 |
static void ac97_initfn(PCIDevice *dev)
|
|
1312 | 1312 |
{ |
1313 |
PCIAC97LinkState *d; |
|
1314 |
AC97LinkState *s; |
|
1315 |
uint8_t *c; |
|
1316 |
|
|
1317 |
if (!bus) { |
|
1318 |
AUD_log ("ac97", "No PCI bus\n"); |
|
1319 |
return -1; |
|
1320 |
} |
|
1321 |
|
|
1322 |
d = (PCIAC97LinkState *) pci_register_device (bus, "AC97", |
|
1323 |
sizeof (PCIAC97LinkState), |
|
1324 |
-1, NULL, NULL); |
|
1325 |
|
|
1326 |
if (!d) { |
|
1327 |
AUD_log ("ac97", "Failed to register PCI device\n"); |
|
1328 |
return -1; |
|
1329 |
} |
|
1313 |
PCIAC97LinkState *d = DO_UPCAST(PCIAC97LinkState, dev, dev); |
|
1314 |
AC97LinkState *s = &d->ac97; |
|
1315 |
uint8_t *c = d->dev.config; |
|
1330 | 1316 |
|
1331 |
s = &d->ac97; |
|
1332 | 1317 |
s->pci_dev = &d->dev; |
1333 |
c = d->dev.config; |
|
1334 | 1318 |
pci_config_set_vendor_id (c, PCI_VENDOR_ID_INTEL); /* ro */ |
1335 | 1319 |
pci_config_set_device_id (c, PCI_DEVICE_ID_INTEL_82801AA_5); /* ro */ |
1336 | 1320 |
|
... | ... | |
1372 | 1356 |
qemu_register_reset (ac97_on_reset, s); |
1373 | 1357 |
AUD_register_card ("ac97", &s->card); |
1374 | 1358 |
ac97_on_reset (s); |
1359 |
} |
|
1360 |
|
|
1361 |
int ac97_init (PCIBus *bus) |
|
1362 |
{ |
|
1363 |
pci_create_simple(bus, -1, "AC97"); |
|
1375 | 1364 |
return 0; |
1376 | 1365 |
} |
1366 |
|
|
1367 |
static PCIDeviceInfo ac97_info = { |
|
1368 |
.qdev.name = "AC97", |
|
1369 |
.qdev.size = sizeof(PCIAC97LinkState), |
|
1370 |
.init = ac97_initfn, |
|
1371 |
}; |
|
1372 |
|
|
1373 |
static void ac97_register(void) |
|
1374 |
{ |
|
1375 |
pci_qdev_register(&ac97_info); |
|
1376 |
} |
|
1377 |
device_init(ac97_register); |
|
1378 |
|
Also available in: Unified diff