On Thu, 31 Dec 2020 at 11:20, BALATON Zoltan <bala...@eik.bme.hu> wrote: > > Avoid mapping multiple interrupts to the same irq. Instead map them to > the 4 PCI interrupts and use an or-gate in the board to connect them > to the interrupt controller. This does not fix any known problem but > does not seem to cause a new problem either and may be cleaner at least. > > Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu> > Tested-by: Guenter Roeck <li...@roeck-us.net>
So, this patch is a behavioural change, but I think it's probably a change to the right behaviour. The difference is relatively slight, but you would see it if there are two different PCI cards and they both assert a different PCI interrupt, and then one of them lowers the interrupt before the other: device A: _____|---------|________ device B: ________|----------|____ With the old code, the signal values as seen by the UIC look like this: UIC input: _____|---------|________ (this is because when device A says "interrupt line value 0 now" we just pass "interrupt line value 0" through to the output). and with an OR gate they look like: UIC input: _____|-------------|____ (which is probably the actual behaviour -- UIC line stays signalled until all PCI interrupts are quelled). For this to matter to a guest it would have to be doing something a bit odd in its interrupt handling code, though, I suspect (like saying "stop looking for device drivers which need to service their device once the UIC interrupt is no longer asserted"). Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM