Revision afe3ef1d
b/hw/piix_pci.c | ||
---|---|---|
281 | 281 |
(pic_irq * PIIX_NUM_PIRQS)))); |
282 | 282 |
} |
283 | 283 |
|
284 |
static void piix3_set_irq_level(PIIX3State *piix3, int pirq, int level, |
|
285 |
bool propagate) |
|
284 |
static void piix3_set_irq_level(PIIX3State *piix3, int pirq, int level) |
|
286 | 285 |
{ |
287 | 286 |
int pic_irq; |
288 | 287 |
uint64_t mask; |
... | ... | |
296 | 295 |
piix3->pic_levels &= ~mask; |
297 | 296 |
piix3->pic_levels |= mask * !!level; |
298 | 297 |
|
299 |
if (propagate) { |
|
300 |
piix3_set_irq_pic(piix3, pic_irq); |
|
301 |
} |
|
298 |
piix3_set_irq_pic(piix3, pic_irq); |
|
302 | 299 |
} |
303 | 300 |
|
304 | 301 |
static void piix3_set_irq(void *opaque, int pirq, int level) |
305 | 302 |
{ |
306 | 303 |
PIIX3State *piix3 = opaque; |
307 |
piix3_set_irq_level(piix3, pirq, level, true);
|
|
304 |
piix3_set_irq_level(piix3, pirq, level); |
|
308 | 305 |
} |
309 | 306 |
|
310 | 307 |
/* irq routing is changed. so rebuild bitmap */ |
... | ... | |
315 | 312 |
piix3->pic_levels = 0; |
316 | 313 |
for (pirq = 0; pirq < PIIX_NUM_PIRQS; pirq++) { |
317 | 314 |
piix3_set_irq_level(piix3, pirq, |
318 |
pci_bus_get_irq_level(piix3->dev.bus, pirq), |
|
319 |
false); |
|
315 |
pci_bus_get_irq_level(piix3->dev.bus, pirq)); |
|
320 | 316 |
} |
321 | 317 |
} |
322 | 318 |
|
Also available in: Unified diff