Hello!
It sounds like 2.2.x is relying on BIOS setup of PCI space even for the PCI_DIRECT case.
Of course, the direct mode modifies only the way of accessing the configuration registers, not how does the kernel interpret their contents.
2.3.x might do better, but only for resources (and only in simple cases -- it doesn't know how to allocate space to bus bridges if the BIOS forgets to do it), not for IRQ's.
It is likely that 2.3.x needs this as well to some extent, but I can almost promise you that 2.3.x will behave more sanely when faced with the lack of BIOS setup... The 2.3.x kernel PCI code has a ton of fixup-handling code already, which would be very similar to handling the completely-lack-of-BIOS case. It shouldn't be very hard at all to get the PCI code completely independent of BIOS PCI setup -- if that hasn't happened already, that is.
If you want, I can look at the OpenBIOS and write some PCI setup code for it.
Have a nice fortnight