WIP: vc4-kms-v3d COB and interrupt fixes
The COB allocation changes could do with some stress testing.
This PR has stemmed from testing triple head modes, and finding that the code enabling underrun interrupts was actually enabling other events for HVS channel 2, which then weren't handled and caused bad things to happen.
With these changes I've got 4k HDMI and dual DSI (800x480) running happily in X. I haven't got dual 4k monitors to hand to test.
Hold fire on these - I've just seen glitches on my 4k HDMI screen. I'm out for a week now, so it'll just have to wait.
It looks like things may just be on the edge with 4k60.
On this CM4, a standard Raspberry Pi OS image (5.15.32 kernel) is showing occasional horizontal glitched lines (generally browny noise) if running HDMI at 4k60 and running something like iPlayer video decode. Dropping to 4k30 is clean. The HVS doesn't appear to be signalling an underflow, so I couldn't say for certain whether it was HVS or V3D that is stuttering.
These changes don't alter that, and allow triple headed mode. I probably ought to test with dual 4k30 though.
It looks like my corruption was a dodgy HDMI lead! I should have thought of that one earlier.