hw/core/or-irq: Support more than 16 inputs to an OR gate
commitf81804a52b5d4609f68ea367a55a2ccb4cc99f77
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 15 Jun 2018 13:57:14 +0000 (15 14:57 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 15 Jun 2018 14:23:34 +0000 (15 15:23 +0100)
tree7fd073b56b67ac6edf5e330ace0c05858884553c
parent95f875654ae8b433b50a2bc7858e34af957cbaa4
hw/core/or-irq: Support more than 16 inputs to an OR gate

For the IoTKit MPC support, we need to wire together the
interrupt outputs of 17 MPCs; this exceeds the current
value of MAX_OR_LINES. Increase MAX_OR_LINES to 32 (which
should be enough for anyone).

The tricky part is retaining the migration compatibility for
existing OR gates; we add a subsection which is only used
for larger OR gates, and define it such that we can freely
increase MAX_OR_LINES in future (or even move to a dynamically
allocated levels[] array without an upper size limit) without
breaking compatibility.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20180604152941.20374-10-peter.maydell@linaro.org
hw/core/or-irq.c
include/hw/or-irq.h