Revision 868a1a52
b/hw/ide/ich.c | ||
---|---|---|
84 | 84 |
.unmigratable = 1, |
85 | 85 |
}; |
86 | 86 |
|
87 |
static void pci_ich9_reset(void *opaque) |
|
88 |
{ |
|
89 |
struct AHCIPCIState *d = opaque; |
|
90 |
|
|
91 |
msi_reset(&d->card); |
|
92 |
ahci_reset(opaque); |
|
93 |
} |
|
94 |
|
|
87 | 95 |
static int pci_ich9_ahci_init(PCIDevice *dev) |
88 | 96 |
{ |
89 | 97 |
struct AHCIPCIState *d; |
... | ... | |
102 | 110 |
/* XXX Software should program this register */ |
103 | 111 |
d->card.config[0x90] = 1 << 6; /* Address Map Register - AHCI mode */ |
104 | 112 |
|
105 |
qemu_register_reset(ahci_reset, d);
|
|
113 |
qemu_register_reset(pci_ich9_reset, d);
|
|
106 | 114 |
|
107 | 115 |
msi_init(dev, 0x50, 1, true, false); |
108 | 116 |
d->ahci.irq = d->card.irq[0]; |
... | ... | |
133 | 141 |
d = DO_UPCAST(struct AHCIPCIState, card, dev); |
134 | 142 |
|
135 | 143 |
msi_uninit(dev); |
136 |
qemu_unregister_reset(ahci_reset, d);
|
|
144 |
qemu_unregister_reset(pci_ich9_reset, d);
|
|
137 | 145 |
ahci_uninit(&d->ahci); |
138 | 146 |
|
139 | 147 |
return 0; |
Also available in: Unified diff