Re: [PATCH] Revert "irqchip/mbigen: Fix mbigen node address layout"

From: Yipeng Zou

Date: Tue Sep 01 2026 - 07:32:50 EST


Hi1616 is special hardware whose register layout differs from the other mbigen platforms: it does not have the clear register range fixed at [0xA000, 0xAFFF], on which the fix is based. As a result, skipping an extra node offset for node IDs greater than or equal to ten, as the fix does, makes the driver access wrong registers on Hi1616. The fix was originally introduced to address a real problem on the other platforms: each mbigen chip has its own independent set of clear registers, whose offset is fixed within the range [0xA000, 0xAFFF]. Meanwhile, mbigen allocates a consecutive 4-byte register to every hwirq for configuring the interrupt type, EOI and so on, so each 4KB node region accommodates 128 hwirqs. Before the fix, the driver calculated the register address of each interrupt from its hwirq. This works without any problem as long as the number of interrupts is below 1280, which means no more than nine mbigen nodes. Once the maximum number of interrupts of a mbigen chip exceeds 1280, however, the node register addresses reach offset 0xA000 and start to clobber the fixed clear-register range. The final solution will be worked out in cooperation with the BIOS: the firmware will pass a chip version to the driver so that it can take care of all platforms. Since this depends on the corresponding BIOS versions being adapted first, it cannot land immediately. In the meantime it is safe to revert the fix, because nobody has run into this problem for now: it can only be triggered on "new hardware" platforms, while all the platforms available today, including Hi1616, work correctly. So, let's revert this patch first. Acked-by: Yipeng Zou <zouyipeng@xxxxxxxxxx>

--
Regards,
Yipeng Zou